Skip to content

Instantly share code, notes, and snippets.

@jasonrm
Last active February 22, 2019 12:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save jasonrm/5b887d78b0b58dc06f1809830b358562 to your computer and use it in GitHub Desktop.
Save jasonrm/5b887d78b0b58dc06f1809830b358562 to your computer and use it in GitHub Desktop.
ceph encrypted bluestore osd
mkdir -p /var/lib/ceph/mds/ceph-$(hostname -s)/
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-$(hostname -s)/keyring --gen-key -n mds.$(hostname -s)
ceph auth add mds.$(hostname -s) osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-$(hostname -s)/keyring
sudo chown -R ceph:ceph /var/lib/ceph
systemctl enable ceph-mds@$(hostname -s)
systemctl start ceph-mds@$(hostname -s)
mkdir -p /etc/luks/
DRIVES=(sdc sdd sde sdf)
for DRIVE in $DRIVES; do
sgdisk --zap-all /dev/${DRIVE}
sleep 5
sgdisk --new 1:0:+128M --typecode 1:FD00 /dev/${DRIVE}
sgdisk --new 2:0:0 --typecode 1:FD00 /dev/${DRIVE}
sleep 5
partprobe
sleep 5
OSD_NUM=$(ceph osd create)
for PART_NUM in 1 2; do
PART_UUID=$(blkid /dev/${DRIVE}${PART_NUM} -s PARTUUID -o value)
dd bs=512 count=4 if=/dev/urandom of=/etc/luks/${PART_UUID}.key
cryptsetup luksFormat --batch-mode --key-file=/etc/luks/${PART_UUID}.key /dev/disk/by-partuuid/${PART_UUID}
cryptsetup luksOpen --batch-mode --key-file=/etc/luks/${PART_UUID}.key /dev/disk/by-partuuid/${PART_UUID} osd-${OSD_NUM}-${PART_NUM}
echo "osd-${OSD_NUM}-${PART_NUM} PARTUUID=${PART_UUID} /etc/luks/${PART_UUID}.key luks,timeout=180" >> /etc/crypttab
if [ $PART_NUM -eq 1 ]; then
mkfs.xfs /dev/mapper/osd-${OSD_NUM}-${PART_NUM}
mkdir -p /var/lib/ceph/osd/ceph-${OSD_NUM}
echo "/dev/mapper/osd-${OSD_NUM}-${PART_NUM} /var/lib/ceph/osd/ceph-${OSD_NUM} xfs defaults 0 2" >> /etc/fstab
fi
done
cat >> /etc/ceph/ceph.conf <<DELIM
[osd.${OSD_NUM}]
host = $(hostname -s)
osd data = /var/lib/ceph/osd/ceph-${OSD_NUM}
bluestore block path = /dev/mapper/osd-${OSD_NUM}-2
DELIM
done
mkdir -p /etc/luks/
DRIVES=(sdd sde)
for DRIVE in $DRIVES; do
sgdisk --zap-all /dev/${DRIVE}
sgdisk --new 1:0:+128M --typecode 1:FD00 /dev/${DRIVE}
sgdisk --new 2:0:+20G --typecode 1:FD00 /dev/${DRIVE}
sgdisk --new 3:0:+1G --typecode 1:FD00 /dev/${DRIVE}
sgdisk --new 4:0:0 --typecode 1:FD00 /dev/${DRIVE}
sleep 1
partprobe
OSD_NUM=$(ceph osd create)
for PART_NUM in 1 2 3 4; do
PART_UUID=$(blkid /dev/${DRIVE}${PART_NUM} -s PARTUUID -o value)
dd bs=512 count=4 if=/dev/urandom of=/etc/luks/${PART_UUID}.key
cryptsetup luksFormat --batch-mode --key-file=/etc/luks/${PART_UUID}.key /dev/disk/by-partuuid/${PART_UUID}
cryptsetup luksOpen --batch-mode --key-file=/etc/luks/${PART_UUID}.key /dev/disk/by-partuuid/${PART_UUID} osd-${OSD_NUM}-${PART_NUM}
echo "osd-${OSD_NUM}-${PART_NUM} PARTUUID=${PART_UUID} /etc/luks/${PART_UUID}.key luks,timeout=180" >> /etc/crypttab
if [ $PART_NUM -eq 1 ]; then
mkfs.xfs /dev/mapper/osd-${OSD_NUM}-${PART_NUM}
mkdir -p /var/lib/ceph/osd/ceph-${OSD_NUM}
echo "/dev/mapper/osd-${OSD_NUM}-${PART_NUM} /var/lib/ceph/osd/ceph-${OSD_NUM} xfs defaults 0 2" >> /etc/fstab
fi
done
cat >> /etc/ceph/ceph.conf <<DELIM
[osd.${OSD_NUM}]
host = $(hostname -s)
osd data = /var/lib/ceph/osd/ceph-${OSD_NUM}
bluestore block path = /dev/mapper/osd-${OSD_NUM}-4
bluestore block db path = /dev/mapper/osd-${OSD_NUM}-2
bluestore block wal path = /dev/mapper/osd-${OSD_NUM}-3
DELIM
done
DRIVES=(sde)
for DRIVE in $DRIVES; do
sgdisk --zap-all /dev/${DRIVE}
sgdisk \
--new 1:0:+128M --typecode 1:8300 \
--new 2:0:+20G --typecode 2:fd00 \
--new 3:0:+1G --typecode 3:fd00 \
--new 4:0:0 --typecode 4:fd00 \
/dev/${DRIVE}
sleep 5
# OSD_NUM=13
OSD_NUM=$(ceph osd create)
for PART_NUM in 1 2 3 4; do
PART_UUID=$(blkid /dev/${DRIVE}${PART_NUM} -s PARTUUID -o value)
if [ $PART_NUM -eq 1 ]; then
mkfs.xfs -f /dev/disk/by-partuuid/${PART_UUID}
mkdir -p /var/lib/ceph/osd/ceph-${OSD_NUM}
echo "PARTUUID=${PART_UUID} /var/lib/ceph/osd/ceph-${OSD_NUM} xfs defaults 0 2" >> /etc/fstab
fi
done
PART_UUID_BLOCK=$(blkid /dev/${DRIVE}4 -s PARTUUID -o value)
PART_UUID_DB=$(blkid /dev/${DRIVE}2 -s PARTUUID -o value)
PART_UUID_WAL=$(blkid /dev/${DRIVE}3 -s PARTUUID -o value)
cat >> /etc/ceph/ceph.conf <<DELIM
[osd.${OSD_NUM}]
host = $(hostname -s)
osd data = /var/lib/ceph/osd/ceph-${OSD_NUM}
osd objectstore = bluestore
bluestore block path = /dev/disk/by-partuuid/${PART_UUID_BLOCK}
bluestore block db path = /dev/disk/by-partuuid/${PART_UUID_DB}
bluestore block wal path = /dev/disk/by-partuuid/${PART_UUID_WAL}
DELIM
#ceph-osd -i ${OSD_NUM} --mkfs --mkkey
#ceph auth add osd.${OSD_NUM} osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/ceph-${OSD_NUM}/keyring
#ceph osd crush add osd.${OSD_NUM} 1.0 host=$(hostname -s)
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment