1. 創(chuàng)建塊設(shè)備映像
rbd create --size {megabytes} {pool-name}/{image-name}
創(chuàng)建塊設(shè)備映射之前需要?jiǎng)?chuàng)建對(duì)應(yīng)的存儲(chǔ)池
2. 調(diào)整塊設(shè)備映像大小
rbd resize --size 2048 foo (to increase)
rbd resize --size 2048 foo --allow-shrink (to decrease)
3. 刪除塊設(shè)備映像
rbd rm {rbdname }
rbd rm {pool_name}/{rbd_name}
4. 映射塊設(shè)備
sudo rbd map {pool-name}/{image-name} --id {user-name}
出現(xiàn)這個(gè)報(bào)錯(cuò)的原因是和Linux內(nèi)核版本和rbd映像格式有關(guān)
創(chuàng)建rbd的時(shí)候可以加上
-image-feature=layering
rbd create --size {megabytes} {pool-name}/{image-name} --image-feature=layering
例:
rbd create --size 10T test_1/rbd_s1 --image-feature=layering
rbd支持兩種鏡像格式 --image-format
format 1 已經(jīng)棄用, 為一個(gè)新的鏡像使用原始的格式。這個(gè)格式可以被所有的librbd版本和內(nèi)核rbd模塊所理解桶唐,但是不支持最新的特性
format 2 rbd格式第二版,被librbd和3.1內(nèi)核版本以上支持景殷。這個(gè)格式支持克隆年鸳,在將來(lái)更容易擴(kuò)展支持更多的特性
--image-feature 可以指定rbd format2特性啟用或者禁用
rbd format2 支持的屬性有
layering BIT碼為1
striping BIT碼為2
exclusive-lock BIT碼為4
object-map BIT碼為8
fast-diff BIT碼為16
deep-flatten BIT碼為32
查看當(dāng)前ceph集群版本支持的rbd 的屬性
ceph --show-config|grep rbd|grep features
rbd_default_features = 61
61=32+16+8+4+1 即默認(rèn)支持layering,exclusive-lock,object-map,fast-diff,deep-flatten
前面的報(bào)錯(cuò)中顯示不支持的代號(hào)是0x3c, 這是十六進(jìn)制妖枚,換算成10進(jìn)制就是60运提。也就是不支持后面4種特性
查看當(dāng)前使用的鏡像屬性
rbd info foo
rbd image 'foo':
size 1024 MB in 256 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.855f2ae8944a
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
flags:
可以關(guān)閉后面4個(gè)特性
rbd feature disable rbd/foo exclusive-lock, object-map, fast-diff, deep-flatten
再掛載試試
rbd map rbd/foo
/dev/rbd0
掛載成功
再查看foo的特性
rbd info foo
rbd image 'foo':
size 1024 MB in 256 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.855f2ae8944a
format: 2
features: layering
flags:
發(fā)現(xiàn)只有一個(gè)laytering特性了。
這樣每次創(chuàng)建一個(gè)鏡像都這樣啟動(dòng)和關(guān)閉特性比較麻煩改含,可以修改ceph.conf文件
rbd_default_features = 3
5. 格式化
lsblk |grep rbd
mkfs.xfs -K /dev/rbd2