使用不安装 Ceph-common 的方式映射 Rbd Kernel

laurentbarbe

要能够映射 Rbd 块设备,不一定需要安装 Ceph 二进制文件(尤其是 ceph-common),您也可以使用 rbd 模块提供的内核路径 /sys/bus/rbd。

$ modprobe rbd
$ echo "192.168.0.1,192.168.0.2,192.168.0.3 name=admin,secret=AQBG5SlSmLELKBAA6sKvuJyRWUmFl2R5E1ukTw== rbd testrbd" > /sys/bus/rbd/add

启动 rc 脚本

要在启动时映射 rbd 并在关闭时取消映射,可以使用此修改后的 rc 脚本 http://cephnotes.ksperis.com/downloads/rbdmap

您不需要 ceph-common

$  apt-cache policy ceph-common
ceph-common:
  Installed: (none)
  Candidate: 0.67.4-0ubuntu2
  Version table:
     0.67.4-0ubuntu2 0
        500 http://fr.archive.ubuntu.com/ubuntu/ saucy/main amd64 Packages

您需要一个带有 mon_host 变量的 ceph.conf 文件

$ egrep 'mon[ _]host' /etc/ceph/ceph.conf
mon_host = 192.168.0.1,192.168.0.2,192.168.0.3

以及格式如下的 /etc/ceph/rbdmap 文件

$ cat /etc/ceph/rbdmap
rbd/testrbd id=admin,secret=AQBG5SlSmLELKBAA6sKvuJyRWUmFl2R5E1ukTw==

小心使用“id=”和“secret=”(而不是 user、key 或 keyfile…)。然后,下载此修改后的 rc 脚本

$ wget http://cephnotes.ksperis.com/downloads/rbdmap -O /etc/init.d/rbdmap
$ chmod +x /etc/init.d/rbdmap
$ update-rc.d rbdmap defaults

测试

$ /etc/init.d/rbdmap start
* Starting RBD Mapping             [ OK ]
* Mounting all filesystems...      [ OK ]

$ ls /dev/rbd/*
testrbd

$ /etc/init.d/rbdmap stop
* Stopping RBD Mapping             [ OK ]

$ ls /dev/rbd/*
ls: cannot access /dev/rbd/*: No such file or directory