本文共 1866 字,大约阅读时间需要 6 分钟。
Ceph存储作为块存储时,有时候需要将其挂载到本地作为文件系统使用,为了满足这样的需求,请看下面的操作:
在这里我使用本地的节点来当作客户端,就是使用我的ceph集群里面的192.168.1.220(mon节点)挂载ceph的块存储,下面所有的操作都是在我的mon节点上,其实我只是把mon节点当作客户端而已,挂载在它的本地目录下,当然换一台主机当客户端也是一样的: 1、首先在mon节点创建一个存储池pool 命令:rados mkpool test 2、在刚刚创建的pool中创建image,作为磁盘文件 命令: rbd create test-image –image-format 1 –size 8192 –pool test -m 192.168.1.220 解释:上面的ip就是mon节点的ip地址, –image-format 1 原来没加这个参数,出现过一次错误,后来把这个参数定为1就好了,出现的错误在这附上: 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 解释一下:经过查看ceph文档rbd 块镜像有支持两种格式: –image-format format-id , format-id取值为1或2,默认为 2。format 1 - 新建 rbd 映像时使用最初的格式。此格式兼容所有版本的 librbd 和内核模块,但是不支持较新的功能,像克隆。 format 2 - 使用第二版 rbd 格式, librbd 和 3.11 版以上内核模块才支持(除非是分拆的模块)。此格式增加了克隆支持,使得扩展更容易,还允许以后增加新功能。 3、我们可以使用下面这个命令来查看一下: [root@node1 ceph]# rbd –image test-image info –pool test rbd image ‘test-image’: size 8192 MB in 2048 objects order 22 (4096 kB objects) block_name_prefix: rb.0.378f.2ae8944a format: 1 4、我们将image挂载到本地,同时修改image中的一些信息,这就需要用到了map操作.首先我们需要在内核中载入rbd模块: modprobe rbd rbd map test-image –pool test –id admin 执行上面前两条命令后,执行第三条命令后可以使用rbd showmapped 查看一下。 [root@node1 ~]# rbd showmapped id pool image snap device 0 test test-image - /dev/rbd05 格式化/dev/rbd0 然后将其挂载到 /mnt/ceph-rdb
mkfs.ext4 /dev/rbd0 //格式化 mkdir /mnt/ceph-rdb //新建挂载目录 mount /dev/rbd0 /mnt/ceph-rdb //挂载 然后可以查看一下: [root@node1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda2 28G 3.0G 25G 11% / devtmpfs 488M 0 488M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 51M 447M 11% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/vdc1 30G 36M 30G 1% /srv/node/vdc1 /dev/vda1 197M 144M 54M 73% /boot tmpfs 100M 0 100M 0% /run/user/0 /dev/rbd0 7.8G 36M 7.3G 1% /mnt/ceph-rdb转载地址:http://arvmb.baihongyu.com/