混合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*
) * 1024*1024*1024
2%
- 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
-
block分区
sgdisk --typecode=1:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -- /dev/sdb
-
db分
sgdisk --typecode=2:30cd0809-c2b2-499c-8879-2d6b78529876 -- /dev/sdb
-
wal分区
sgdisk --typecode=4:5ce17fce-4087-4169-b7ff-056cc58473f9 -- /dev/sdb
查看指定磁盘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验证
-
加回认证
ceph auth add osd.12 osd 'allow *' mon 'allow rwx' mgr 'allow profile osd' -i /var/lib/ceph/osd/ceph-12/keyring
-
添加到host中,如果两个host都有的话需要添加两次
ceph osd crush add osd.15 3.61327 root=hdd_bucket host=host6
-
设置osd设备属性
ceph osd crush set-device-class ssd osd.${num}
测试OSD压力
ceph tell osd.id bench