前言
環境已經配置好了osd,想增加opencas的緩存加速,因為opencas支持在lvm之上部署,也支持在opencas上面創建lvm,而已經部署好osd的場景是屬於前面的一種情況,也就是已經有lvm 的情況再加緩存加速
因為ceph有自己的掛載邏輯,所以這里需要梳理一下,把整個啟動路徑給屏蔽掉,然后加入自己的啟動邏輯
本篇是講的沒有單獨的db wal的部署緩存加速的方式
操作方法
創建一個緩存設備
casadm -S -i 1 -d /dev/disk/by-id/nvme-A6F1600_SW20B27P7040007-part2 -c wb
opencas的配置邏輯是創建緩存設備,然后把需要加速的設備加入到緩存設備里面,然后生成新的路徑,使用新的路徑即可,上面就是創建了編號為1的wb模式的緩存設備
創建好了以后寫配置文件/etc/opencas/opencas.conf
[caches]
## Cache ID Cache device Cache mode Extra fields (optional)
## Uncomment and edit the below line for cache configuration
1 /dev/disk/by-id/nvme-A6F1600_SW20B27P7040007-part2 WB
默認ceph啟動邏輯
正常的啟動是lvm設備形成以后通過ceph-volume進行啟動,然后進行掛載,ceph-volume實際上就是去掛載目錄的操作,這兩步我們需要屏蔽掉
禁用自啟動部分
我們舉例osd編號為3
[root@node153 ~]# systemctl stop ceph-osd@3
[root@node153 ~]# umount /var/lib/ceph/osd/ceph-3/
獲取osd uuid
[root@node153 ~]# ceph osd dump|grep osd.3
[root@node153 ~]# systemctl disable ceph-volume@lvm-3-de370e9a-6f2c-4584-9d3d-0b6e4c891ae2
Removed symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-3-de370e9a-6f2c-4584-9d3d-0b6e4c891ae2.service.
[root@node153 ~]# systemctl disable ceph-osd@3
[root@node153 ~]# umount /var/lib/ceph/osd/ceph-3
上面的操作以后,osd.3 的自掛載,自啟動就去掉了
添加緩存設備
獲取到osd.3 的lvm的路徑(取osd uuid前幾位grep)
ls /dev/mapper/ceph--|grep de370e9a
添加后端設備到緩存設備
casadm -A -d /dev/mapper/ceph--81296ca1--c3f9--403c--974d--0058f9eba49a-osd--block--de370e9a--6f2c--4584--9d3d--0b6e4c891ae2 -i 1 -j 3
注意后面的-j是后端設備的id,這個可以設置為osd的id,方便后面查找
添加配置文件到/etc/opencas/opencas.conf
[cores]
## Cache ID Core ID Core device
## Uncomment and edit the below line for core configuration
1 3 /dev/mapper/ceph--81296ca1--c3f9--403c--974d--0058f9eba49a-osd--block--de370e9a--6f2c--4584--9d3d--0b6e4c891ae2
手動啟動緩存加速之后的設備
mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-3
restorecon /var/lib/ceph/osd/ceph-3
chown -R ceph:ceph /var/lib/ceph/osd/ceph-3
ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/cas1-3 --path /var/lib/ceph/osd/ceph-3
chown -h ceph:ceph /var/lib/ceph/osd/ceph-3/block
chown -R ceph:ceph /dev/cas1-3
chown -R ceph:ceph /var/lib/ceph/osd/ceph-3
systemctl start ceph-osd@3
然后就啟動了
上面的操作寫成腳本
綁定部分的處理
#! /bin/sh
for osd in 5 8 11
do
systemctl stop ceph-osd@$osd
umount /var/lib/ceph/osd/ceph-$osd
osdid=`ceph osd dump|grep osd.|awk -v A=osd.$osd '{if($1==A) print $19}'`
systemctl disable ceph-volume@lvm-$osd-$osdid
systemctl disable ceph-osd@$osd
osdpathprefix=`echo $osdid|cut -d "-" -f 1`
osdpath=`ls /dev/mapper/ceph--*|grep $osdpathprefix`
casadm -A -d $osdpath -i 1 -j $osd
echo "1 $osd $osdpath"
done
會輸出幾行對應關系,拷貝到配置文件
#! /bin/sh
# start osd.5 osd.8 osd.11
for osd in 5 8 11
do
mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-$osd
restorecon /var/lib/ceph/osd/ceph-$osd
chown -R ceph:ceph /var/lib/ceph/osd/ceph-$osd
ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/cas1-$osd --path /var/lib/ceph/osd/ceph-$osd
chown -h ceph:ceph /var/lib/ceph/osd/ceph-$osd/block
chown -R ceph:ceph /dev/cas1-$osd
chown -R ceph:ceph /var/lib/ceph/osd/ceph-$osd
systemctl start ceph-osd@$osd
done
啟動osd的腳本
如果重啟機器,等opencas自帶的服務啟動好了,只用執行上面的啟動osd的腳本即可
總結
本篇記錄了配置過程,未涉及參數調優,模式改變等等,都是默認配置