初试Ceph RBD

前提

在公司的BCLinux 7.2 (CentOS 7.2)安装单节点Ceph。

部署完成,ceph -s查看系统处于active+clean状态


阶段1

ceph osd pool create rbd 64 64

rbd create foo --size 1G

rbd map foo --name client.admin

报错一

在执行第三部时,系统报错如下:

报错一

通过/var/log/messages查看日志,信息如下:

初试Ceph RBD_第1张图片
日志

解决

网上查阅一大堆资料,比较有用的是,内核版本问题。

查看内核版本uname -r ,发现版本是3.10.*,于是尝试升级内核。

升级步骤如下:

1.导入key

rpm --importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2.安装elrepo的yum源

rpm -Uvhhttp://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

3. 安装内核

yum --enablerepo=elrepo-kernelinstallkernel-ml-devel kernel-ml -y

4.查看设置默认启动顺序

awk-F\' '$1=="menuentry "{print $2}' /etc/grub2.cfg,显示结果应该是升级后的最新版本的内核在上面,执行以下命令:

grub2-set-default 0

5.重启

reboot


阶段2

报错二

恢复集群后,执行阶段1中的创建块步骤,依然报错:

报错二

学习后发现,RBD块Ceph支持两种格式:

format 1:新建RBD镜像时使用最初的格式,此格式兼容所有版本的librbd和内核模块,但是不支持较新的功能,像克隆。

format 2:使用第二版rbd格式,librbd和3.11版以上内核模块才支持(除非是拆分的模块)。此格式增加了克隆支持,使得扩展更容易,还允许以后增加新功能。

解决

rbd create rbd/test1 --size 10G --image-format 2 --image-feature  layering

rbd ls

rbd map rbd/test1

终于map成功了。


总结

1.J版本Ceph,使用RBD时,需要关注下内核版本。

2.如果内核版本是比较高的,则注意下新建镜像的format格式。

你可能感兴趣的:(初试Ceph RBD)