启动/关闭时映射/取消映射 RBD 设备

shan

关于在启动和关闭期间映射/取消映射 RBD 设备的快速操作指南。

我们将使用 ceph 包提供的启动脚本。 在启动序列期间,启动脚本首先查看 /etc/rbdmap 并相应地映射设备。 然后,它将触发 mount -a。 只要系统停止或重新启动,脚本就会取消挂载和取消映射设备。

由于您将不会从 Ceph 节点之一映射/取消映射 RBD 设备,因此您需要下载启动脚本并在客户端机器上安装它。

下载启动脚本并将其添加到启动序列

1
2
3
4
5
6
7
8
9
10
11
12
$ sudo wget https://raw.github.com/ceph/ceph/a4ddf704868832e119d7949e96fe35ab1920f06a/src/init-rbdmap -O /etc/init.d/rbdmap
$ sudo chmod +x /etc/init.d/rbdmap
$ sudo update-rc.d rbdmap defaults
 Adding system startup for /etc/init.d/rbdmap ...
   /etc/rc0.d/K20rbdmap -> ../init.d/rbdmap
   /etc/rc1.d/K20rbdmap -> ../init.d/rbdmap
   /etc/rc6.d/K20rbdmap -> ../init.d/rbdmap
   /etc/rc2.d/S20rbdmap -> ../init.d/rbdmap
   /etc/rc3.d/S20rbdmap -> ../init.d/rbdmap
   /etc/rc4.d/S20rbdmap -> ../init.d/rbdmap
   /etc/rc5.d/S20rbdmap -> ../init.d/rbdmap
$ sudo apt-get install ceph-common -y

创建设备

1
$ sudo rbd -p leseb create boot --size 10240

假设池 leseb 可以被用户 leseb 读取和写入,该用户拥有相应的密钥。

编辑 /etc/ceph/rbdmap

# RbdDevice     Parameters
leseb/boot        id=leseb,keyring=/etc/ceph/ceph.client.leseb.keyring

格式化您的设备

1
2
3
4
5
6
7
8
9
10
11
$ sudo mkfs.xfs /dev/rbd/leseb/boot
log stripe unit (4194304 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/rbd/rbd/boot      isize=256    agcount=17, agsize=162816 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=1024   swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

然后使用以下内容编辑您的 fstab

/dev/rbd/leseb/boot /mnt/  xfs defaults,_netdev        0       0

手动测试

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

验证

1
2
3
4
5
6
$ sudo rbd showmapped
id pool   image snap device
1  leseb  boot  - /dev/rbd1

$ sudo mount | grep mnt
/dev/rbd1 on /mnt type xfs (rw,_netdev)

显然,您绝对想重新启动系统来试用它:)