1. 查看集群的状态
1 | ceph -w |
或:
1 | ceph status |
2. Pool相关
1 | rados lspools |
获得特定Pool的数据
1 | rados -p .rgw ls |
3. 容量相关
获得当前OSD所用容量
1 | rados df |
创建Buck
1 | ceph osd tree |
移动Rack
1 | ceph osd crush move rack01 root=default |
4. Object操作
创建Pool
1 | ceph osd pool create web-services 128 128 |
添加Object
1 | echo "Hello Ceph, You are Awesome like MJ" > /tmp/helloceph |
查看Object
1 | cd /var/lib/ceph/osd/ |
修改Image大小
增加Image大小可以直接使用 resize 子命令,如果缩小就需要添加 –allow-shrink 参数保证安全
1 | rbd --image test_image resize --size 2000 |
5. 使用Image
通过 map 子命令可以把镜像映射成本地块设备,然后就可以格式化和 mount 了
1 | rbd map test_image |
移除Image
1 | umount /dev/rbd0 |
删除Image
删除和Linux类似使用 rm 命令即可。
1 | rbd --image test_image rm |
6. RBD快照
创建快照
通过 snap 子命令可以创建和查看快照。
1 | rbd snap create --image test_image --snap test_snap |
快照回滚
使用 snap rollback 就可以回滚快照,由于快照命名是镜像名后面加@,我们还可以下面的简便写法。
1 | rbd snap rollback --image test_image --snap test_snap |
删除快照
删除快照也很简单,使用 rm 子命令,如果想清理所有快照可以使用 purge 子命令,注意Ceph删除是异步的不会立即释放空间。
1 | rbd snap rm --image test_image --snap test_snap |
保护快照
保护快照可以防止用户误删数据,这是clone前必须做的。
1 | rbd snap protect --image test_image --snap test_snap |
要想不保护快照也很容易,使用 unprotect 子命令即可。
1 | rbd snap unprotect --image test_image --snap test_snap |
7. RBD克隆
创建clone
RBD克隆就是通过快照克隆出新的可读可写的Image,创建前需要创建format为2的镜像快照。
1 | rbd create test_image2 --size 1024 --image-format 2 |
通过 clone 子命令就可以创建clone了。
1 | rbd clone --image test_image2 --snap test_snap2 test_clone |
列举clone
通过 children 子命令可以列举这个快照的所有克隆。
1 | rbd children --image test_image2 --snap test_snap2 |
填充克隆
填充克隆也就是把快照数据flatten到clone中,如果你想删除快照你需要flatten所有的子Image。
1 | rbd flatten --image test_clone |
8. RBD和Qemu
使用Qemu
官方Qemu已经支持librbd,使用Qemu创建镜像前需要安装工具。
1 | apt-get install -y qemu-utils |
创建镜像
创建镜像非常简单,使用 qemu-img 命令,注意目前RBD只支持raw格式镜像。
1 | qemu-img create -f raw rbd:rbd/test_image3 1G |
修改镜像大小
修改镜像大小可以使用 resize 子命令。
1 | qemu-img resize rbd:rbd/test_image3 2G |
查看镜像信息
通过 info 可以获取Qemu镜像信息。
1 | qemu-img info rbd:rbd/test_image3 |
ceph-rest-api
Ceph-rest-api是Ceph官方提供的RESTful API接口,启动其进程后我们可以通过HTTP接口来收集Ceph集群状态与数据,并且进行起停OSD等管理操作。
详细的API文档可参考 https://dmsimard.com/2014/01/01/documentation-for-ceph-rest-api/ 。
ceph-web
为了不增加API的复杂性,ceph-web遵循官方ceph-rest-api的接口,只是提供HTTP服务器并展示Ceph的数据,开源地址 https://github.com/tobegit3hub/ceph-web
1 | docker run -d --net=host tobegit3hub/ceph-w |
接口来收集Ceph集群状态与数据,并且进行起停OSD等管理操作。
详细的API文档可参考 https://dmsimard.com/2014/01/01/documentation-for-ceph-rest-api/