获取映像列表

要挂载块设备映像,先罗列出所有的映像。

rbd list

映射块设备

用 rbd 把映像名映射为内核模块。必须指定映像名、存储池名、和用户名。若 RBD 内核模块尚未加载, rbd

sudo rbd map {pool-name}/{image-name} --id {user-name}

例如:

sudo rbd map rbd/myimage --id admin

如果你启用了 cephx 认证,还必须提供密钥,可以用密钥环或密钥文件指定密钥。

sudo rbd map rbd/myimage --id admin --keyring /path/to/keyring
sudo rbd map rbd/myimage --id admin --keyfile /path/to/file

查看已映射块设备¶

可以用 rbd 命令的 showmapped

rbd showmapped

取消块设备映射

要取消块设备映射,用 rbd 命令、指定 unmap

sudo rbd unmap /dev/rbd/{poolname}/{imagename}

例如:

sudo rbd unmap /dev/rbd/rbd/foo

 

创建块设备映像

要想把块设备加入某节点,你得先在 Ceph 存储集群中创建一个映像,使用下列命令:

rbd create --size {megabytes} {pool-name}/{image-name}

例如,要在 swimmingpool 这个存储池中创建一个名为 bar

rbd create --size 1024 swimmingpool/bar

如果创建映像时不指定存储池,它将使用默认的 rbd 存储池。例如,下面的命令将默认在 rbd 存储池中创建一个大小为 1GB 、名为 foo

rbd create --size 1024 foo

Note

指定此存储池前必须先创建它,详情见存储池。

罗列块设备映像

要列出 rbd 存储池中的块设备,可以用下列命令(即 rbd

rbd ls

用下列命令罗列某个特定存储池中的块设备,用存储池的名字替换 {poolname}

rbd ls {poolname}

例如:

rbd ls swimmingpool

检索映像信息

用下列命令检索某个特定映像的信息,用映像名字替换 {image-name}

rbd info {image-name}

例如:

rbd info foo

用下列命令检索某存储池内的映像的信息,用映像名字替换 {image-name} 、用存储池名字替换 {pool-name}

rbd info {pool-name}/{image-name}

例如:

rbd info swimmingpool/bar

调整块设备映像大小

Ceph 块设备映像是精简配置,只有在你开始写入数据时它们才会占用物理空间。然而,它们都有最大容量,就是你设置的 --size

rbd resize --size 2048 foo (to increase)
rbd resize --size 2048 foo --allow-shrink (to decrease)

删除块设备映像

可用下列命令删除块设备,用映像名字替换 {image-name}

rbd rm {image-name}

例如:

rbd rm foo

用下列命令从某存储池中删除一个块设备,用要删除的映像名字替换 {image-name} 、用存储池名字替换 {pool-name}

rbd rm {pool-name}/{image-name}

例如:

rbd rm swimmingpool/bar

调整RBD镜像大小

在上面的映射完块设备格式化挂载后,使用resize命令调整RBD,然后用XFS在线调整特性扩容文件系统。

rbd resize volume/rbd_test  --size 20
xfs_growfs -d /mnt/rbd_test