天天看點

ceph osd 相關指令

混合osd的部署

先部署所有的ssd

在/etc/ceph.conf中最後添加ssd做osd的block大小如下:

比如部署中有兩個ssd,則添加

[osd.0]

bluestore_block_size = xxxx

[osd.1]

bluestore_block_size = xxx

如上的size大小計算如下,如ssd容量為800G,預設分給hdd的db,wal分别為20G,10G,則:

bluestore_block_size = (800 - 120 - 800*​​

​2%​

​) * 1024*1024*1024
  • ssd的分區劃分
sgdisk -n 1:+2G:+sizeG /dev/sdb //該size為以上(800 - 120)的容量
sgdisk -n 2:0:+20G /dev/sdb #db 
sgdisk -n 4:0:+10G /dev/sdb #wal      
  • 修改分區權限

    ​​

    ​for i in {1..3};do chmod 660 /dev/sdb$i;chown ceph:ceph /dev/sdb$i;done​

  • 激活第一個sdd
ceph-disk -v prepare /dev/sdb1
ceph-disk -v activate /dev/sdb1      
部署hdd

将db,wal分區放置在ssd上

ceph-disk -v prepare /dev/sdc --block.db /dev/sdb2 --block.wal /dev/sdb4
ceph-disk -v activate /dev/sdc1      

手動劃分分區需要修改udev規則,來讓裝置重新開機或者插拔盤觸發udev規則之後讓分區的typecode産生修改并且修改裝置使用者所屬為ceph以及裝置檔案權限,防止重新開機後查找不到udev規則,進而使用預設uuid來配置設定裝置檔案的屬性導緻重新開機之後osd無法起來。此時需要手動更改如下:

隻針對SSD

  1. ​sgdisk --typecode=1:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -- /dev/sdb​

    ​block分區
  2. ​sgdisk --typecode=2:30cd0809-c2b2-499c-8879-2d6b78529876 -- /dev/sdb​

    ​db分
  3. ​sgdisk --typecode=4:5ce17fce-4087-4169-b7ff-056cc58473f9 -- /dev/sdb​

    ​wal分區

檢視指定磁盤udev相關的uuid

​blkid -o udev -p /dev/sdc1​

普通OSD的部署

  • 建立rule規則并修改osd 的type

    ​​

    ​ceph osd crush rule create-simple rule_rep deafult osd​

    ​​

    ​ceph osd pool create rep_pool 128 128 rule_rep​

  • 移除規則下的osd

    ​​

    ​ceph osd crush rm osd.id​

  • 從某個節點上移除osd

    ​​

    ​ceph osd crush rm osd.id $node​

  • 設定size 和min_size
ceph osd pool set pool_name size xx
ceph osd pool set pool_name min_size xx      

當OSD被踢出叢集但是挂載點還在,為osd添加id驗證

  1. 加回認證

    ​ceph auth add osd.12 osd 'allow *' mon 'allow rwx' mgr 'allow profile osd' -i /var/lib/ceph/osd/ceph-12/keyring​

  2. 添加到host中,如果兩個host都有的話需要添加兩次

    ​​

    ​ceph osd crush add osd.15 3.61327 root=hdd_bucket host=host6​

  3. 設定osd裝置屬性

    ​​

    ​ceph osd crush set-device-class ssd osd.${num}​

測試OSD壓力

​ceph tell osd.id bench​

Mark osd 為down

OSD重構速度