ceph存储集群实战——ceph存储配置(映射RBD镜像到客户端)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ceph存储集群实战——ceph存储配置(映射RBD镜像到客户端)相关的知识,希望对你有一定的参考价值。
块设备(rbd) 1、块设备可以应用为: 1、作为额外的磁盘使用 2、可以作为裸设备使用 3、可以格式化成文件系统,然后挂载给虚拟机或者物理服务器使用 2、创建块设备(可以在任意一台ceph节点上创建) 下面的命令创建一个名为ceph-client1-rbd1、大小为10G的RBD设备 [[email protected] ~]# rbd create ceph-client1-rbd1 --size 10240 注意:默认情况下rbd镜像会保存在ceph集群的rbd池中,可以使用-p参数改变池 3、列出rbd设备镜像(可在任意一台节点上列出) [[email protected] ~]# rbd ls ceph-client1-rbd1 4、查看创建后的块设备的信息(可以在任意一台ceph节点上查看) [[email protected] ~]# rbd --image ceph-client1-rbd1 info rbd image 'ceph-client1-rbd1': size 10240 MB in 2560 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.857a238e1f29 format: 2 features: layering, exclusive-lock, object-map, fast-diff, deep-flatten flags: 5、创建ceph客户端 安装一台虚拟机或者用一台物理机来作为cpeh客户端进行测试,操作系统需要是linux(我的环境是centos7) 需要注意: 1、linux内核从2.6.32版本开始支持ceph 2、建议使用2.6.34以及以上的内核版本 查看内核版本命令:uname -rbd 检查是否支持rbd命令: modprobe rbd 安装完客户端的操作系统之后,记得将ceph集群的IP地址和主机名添加到hosts文件中: 192.168.89.101 ceph-node1 192.168.89.102 ceph-node2 192.168.89.103 ceph-node3 192.168.89.139 ceph-client1 6、映射rados块设备给客户端 在映射之前,需要授权给客户端访问ceph集群的权限,需要下面两个步骤,添加秘钥环(客户端与ceph集群之间的身份验证就是基于这个秘钥环)和添加ceph配置文件 1、在管理节点(ceph-deploy)上通过ceph-deploy工具给ceph-client1安装ceph包 deploy install ceph-client1-rbd1 2、在管理节点上(ceph-deploy)上通过ceph-deploy工具给ceph-client1客户端下发秘钥环和ceph配置文件 用于授予客户端访问ceph集群的权限 ceph-deploy admin ceph-client1 3、登录ceph-client1客户端检查秘钥文件和配置文件是否下发成功 进入/ect/ceph/目录 [[email protected] ceph]# ls -l -rw------- 1 root root 129 Jan 6 22:51 ceph.client.admin.keyring #这是下发后的秘钥文件 -rw-r--r-- 1 root root 234 Jan 6 22:51 ceph.conf #这是下发后的配置文件 -rw-r--r-- 1 root root 92 Oct 4 10:50 rbdmap -rw------- 1 root root 0 Jan 6 22:51 tmpUcImw6 4、在ceph-client1客户端上查询ceph集群的RBD镜像 [[email protected] ~]# rbd ls #列出rbd列表 ceph-client1-rbd1 [[email protected] ~]# rbd info --image ceph-client1-rbd1 #查看rbd镜像详细信息 rbd image 'ceph-client1-rbd1': size 10240 MB in 2560 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.857a238e1f29 format: 2 features: layering, exclusive-lock, object-map, fast-diff, deep-flatten flags: 5、授权之后,就在ceph-client1客户端上映射名为'ceph-client1-rbd1'的rbd镜像: rbd map --image ceph-client1-rbd1 执行上述映射命令后发生如下错误: [[email protected] log]# rbd map --image ceph-client1-rbd1 rbd: sysfs write failed RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable". In some cases useful info is found in syslog - try "dmesg | tail" or so. rbd: map failed: (6) No such device or address 遇到问题:rbd镜像的一些特性,OS kernel并不支持,所以映射失败 查看下该镜像支持了哪些特性 [[email protected] ~]# rbd info ceph-client1-rbd1 rbd image 'ceph-client1-rbd1': size 10240 MB in 2560 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.857a238e1f29 format: 2 features: layering, exclusive-lock, object-map, fast-diff, deep-flatten flags: 可以看到特性feature一栏,由于我OS的kernel只支持layering,其他都不支持,所以需要把部分不支持的特性disable掉。 以下方法根据实际情况选其一即可! 方法一:直接diable这个rbd镜像的不支持的特性: $ rbd feature disable docker_test exclusive-lock object-map fast-diff deep-flatten [[email protected] ~]# rbd info ceph-client1-rbd1 #关闭后查看 rbd image 'ceph-client1-rbd1': size 10240 MB in 2560 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.857a238e1f29 format: 2 features: layering #仅剩一个特性 flags: 方法二:创建rbd镜像时就指明需要的特性,如: $ rbd create --size 4096 docker_test --image-feature layering 方法三:修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增加 rbd_default_features = 1 再创建rdb镜像。 $ rbd create --size 4096 docker_test 6、解决上述问题之后,再次尝试映射 [[email protected] ~]# rbd map --image ceph-client1-rbd1 /dev/rbd0 此刻,映射成功 7、查看映射信息 [[email protected] ~]# rbd showmapped id pool image snap device 0 rbd ceph-client1-rbd1 - /dev/rbd0 8、如需指定RBD镜像所属池的名称(这是可选的操作)可以执行以下命令: rbd map rbd/ceph-client1-rbd1 10、格式化映射之后的RBD镜像,并创建文件系统 [[email protected] ~]# fdisk -l /dev/rbd0 Disk /dev/rbd0: 10.7 GB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 4194304 bytes / 4194304 bytes [[email protected] ~]# mkfs.xfs /dev/rbd0 [[email protected] ~]# mkdir /mnt/ceph-vol1 [[email protected] ~]# mount /dev/rbd0 /mnt/ceph-vol1/ [[email protected] ~]# df -H Filesystem Size Used Avail Use% Mounted on devtmpfs 494M 0 494M 0% /dev tmpfs 507M 0 507M 0% /dev/shm tmpfs 507M 6.9M 500M 2% /run tmpfs 507M 0 507M 0% /sys/fs/cgroup /dev/mapper/cl-root 8.6G 1.6G 7.0G 19% / /dev/sda1 1.1G 195M 869M 19% /boot tmpfs 102M 0 102M 0% /run/user/0 /dev/rbd0 11G 35M 11G 1% /mnt/ceph-vol1 #这个是挂载后的以上是关于ceph存储集群实战——ceph存储配置(映射RBD镜像到客户端)的主要内容,如果未能解决你的问题,请参考以下文章