Last active
          February 22, 2019 12:50 
        
      - 
      
- 
        Save jasonrm/5b887d78b0b58dc06f1809830b358562 to your computer and use it in GitHub Desktop. 
    ceph encrypted bluestore osd
  
        
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | 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) | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | 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 | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | 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 | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | 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