ceph版本:12.2.1
部署好Ceph环境,并创建出6+6的ec pool之后想要在ec_pool的基础上创建rbd
rbd create rbd_test -p ec_data
出现了这样的错误
rbd: create error: (95) Operation not supported
librbd: error adding image to directory: (95) Operation not supported
原因是纠删码不支持部分写功能,但是已经支持完全覆盖写功能,所以不能将rbd的元数据存放在ec_pool中,可以将ec_pool设置为rbd的数据pool就可以
执行ceph osd pool set ec_data allow _ec_overwrite true
设置ec_pool的覆盖写属性,再创建一个3+1的副本资源池meta_pool
执行rbd create rbd_test -p meta_pool --size 10T --data-pool ec_data
即可创建成功
创建好rbd之后将他通过内核rbd驱动将存储池容量映射到rbd上,即可作为普通磁盘使用
执行rbd map rbd_test -p meta_pool
出现
modinfo:ERROR:Module rbd not found
modprobe:FATAL:Module rbd not fount
这个问题是当前系统内核没有rbd.ko,加载不到,所以这里是需要升级系统内核,将3.10.0-123.el7.x86_64
内核小版本升级到862及以上版本可以参考Module rbd not found或者重装系统为centos7.6
因为公司yum源并没有内核相关的库,自己编译内核又耗时太久。所以这里选择直接重装系统快一点
使用ultraIso刻录好centos7.6的启动盘之后,引导服务器启动过程中发现系统一直卡在dracut-initqueue timeout地方,发现大家都踩过这个坑,原因是启动的时候操作系统找不到我们的安装文件,所以这里需要我们手动更改指定启动时的加载安装文件位置为我们的U盘
#先找到我们U盘的盘符
dracut:/# cd /dev
dracut:/# ls sd*
sda sda1 sda2 sda3 sda4 sdb sdb4
我们的U盘一般为sdb,这里如果存在sdb的分区如上sdb4,则U盘启动盘为我们的sdb4分区
执行dracut:/# reboot
重启
在install
界面中按tab
键后按e进入设置系统查找安装文件的配置设置中
修改这一行配置
vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
为
vmlinuz initrd=initrd.img inst.stage2=hd:/sdv/sdb4 quiet
即可,让系统从我们指定的sdb4中加载安装文件,按ctrl+x
执行配置,接下来就可走正常安装流程了
安装好操作系统之后将我们提前编译好的12.2.1版本的RPM包拷贝到本设备
执行rpm -ivh *
,执行过程中需要安装一些依赖库,这里可以通过yum install
将缺少的依赖库一一安装,然后重新配置一下ceph即可