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镜像到客户端)的主要内容,如果未能解决你的问题,请参考以下文章

[ ceph ] 基本介绍及硬件配置

ceph里相关名词解释

ceph分布式存储实战——从0开始创建第一个ceph集群

004 ceph存储池

ceph分布式存储-常见 PG 故障处理

ceph分布式存储实战——ceph集群测试主机规划