获取映像列表
要挂载块设备映像,先罗列出所有的映像。
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