因为 rbd 的命令和子命令非常多, 要记住所有的比较困难, 可以 通过 help 命令查寻相应命令的使用方法.
1 2 3 4
### Usage [ceph@ceph0 ~]$ rbd help <command> [<subcommand>] ### e.g. [ceph@ceph0 ~]$ rbd help snap llist
创建一个块设备池
在使用块设备客户端前, 必须有一个 rbd 类型的池存在并且被初始化了.创建一个 rbd Pool, 可以使用如下命令:
1 2 3 4
[ceph@ceph0 ~]$ ceph osd pool create {pool-name} {pg-num} {pgp-num} ### set rbd property for pool [ceph@ceph0 ~]$ ceph osd pool application enable {pool-name} rbd [ceph@ceph0 ~]$ rbd pool init -p {pool-name}
创建块设备镜像
使用如下命令 创建一个块设备镜像:
1 2 3 4
### Usage: [ceph@ceph0 ~]$ rbd create --pool {pool-name} {image-name} --size {megabytes} ### e.g. create a rbd image named data of size 1GB stored in a pool named volumes [ceph@ceph0 ~]$ rbd create -p volumes data --size 1024
创建的时候有一些选项:
--order n, 创建的RBD的条带大小为 2^n bytes, 如 –order 24` 为 16M
### Usage: list rbd pool if pool name is absent [ceph@ceph0 ~]$ rbd ls [{pool-name}] ### e.g. list images of pool volumes [ceph@ceph0 ~]$ rbd ls volumes
获取镜像信息
列出 Pool 内的镜像后, 我们可能对某一个镜像感兴趣, 可通过如下命令获取其信息:
1 2 3 4 5 6 7 8
### Usage: image-name in rbd if pool-name is absent [ceph@ceph0 ~]$ rbd [{pool-name}] info --image {image-name} ### e.g. retriving information of image data in pool rbd [ceph@ceph0 ~]$ rbd info --image data ### e.g. retriving information of image data in pool volumes [ceph@ceph0 ~]$ rbd info -p volumes --image data ### or simply [ceph@ceph0 ~]$ rbd info volumes/data
### Usage: resize image-name in rbd pool if pool-name is absent [ceph@ceph0 ~]$ rbd resize --image <image-name> --size <size> [--pool <pool-name>] ### e.g. cresize data in volumes pool from original to 60G [ceph@ceph0 ~]$ rbd resize volumes/data --size 60G
### Usage: remove image image-name in pool rbd if pool-name is absent [ceph@ceph0 ~]$ rbd rm [--pool {pool-name}] rm {image-name} ### e.g. remove an image bar from pool volumes [ceph@ceph0 ~]$ rbd rm volumes/bar ### or [ceph@ceph0 ~]$ rbd rm -p volumes bar