一. 创建镜像:
1、创建存储池:
- [root@node2 ~]# ceph osd pool create cephrbd 128
-
-
- 这里,cephrbd 是存储池的名称。
-
- 通常在创建pool之前,需要覆盖默认的pg_num,官方推荐:
- 若少于5个osD,设置 pg_num 为128。
- 5~10个oSD,设置 pg_num 为512。
- 10~50个osD,设置 pg_num 为4096。
- 超过50个osD,可以参考pgcalc计算。
创建默认的rbd池:
- [root@node2 ~]# ceph osd pool create rbd 128
-
- ## 启动存储出
- [rootenode2 ~]# ceph osd pool application enable rbd(存储池名称) rbd
- (存储池关联的应用类型)
-
- 存储池关联的应用类型: rbd表示块设备存储类型
- cephfs表示文件存储类型
- rgw表示对象存储类型
2、查看存储池:
- [root@node2 ~]# ceph osd lspools
-
- [root@node2 ~]# ceph osd pool ls
-
- ## 获取池用量统计数据
- [root@node2 ~]# ceph df
-
- ## 获取osd上磁盘使用量统计数据
- [root@node2 ~]# ceph osd df
-
- ## 获取池性能统计数据
- [root@node2 ~]# ceph osd pool stats
3. 删除存储池:
- #ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-really-mean-it]
-
- ## 删除池,池的名字要写两次
- [root@node2 ~]# ceph osd pool delete rbd rbd --yes-i-really-really-mean-it
-
- ## 在ceph配置文件中加一个参数在[global]标签下
- [root@node2 ~]# vim /etc/ceph/ceph.conf
- [global]
- mon_allow_pool_delete = true
-
- ## 重启ceph-mon.target服务
- [root@node2 ~]# systemctl restart ceph-mon.target
4. 重命名存储池:
[root@node2 ~]# ceph osd pool rename {current-pool-name} {new-poo1-name}
5. 修改池参数:
- ## 修改池参数
- [root@node2 ~]# ceph osd pool set pool-name parameter(参数名) value(参数值)
-
- ## 获取池参数
- [root@node2 ~]# ceph osd pool get pool-name parameter(参数名)
-
- ## 列出所有参数及其值
- [root@node2 ~]# ceph osd pool get pool-name all
6. 创建名为image的镜像:
- 语法格式:
- rbd create --size {megabytes} {pool-name}/{image-name}
-
- ## RBD创建示例1,如果不指定存储池,默认为rbd
- [root@node2 ~]# rbd create -p rbd --image rbd-demo.img --image-feature layering --size 10G
-
- ## RBD创建示例2,存储池名/镜像名
- [root@node2 ~]# rbd create rbd/rbd-demo2.img --image-feature layerfing --size 10G
7. 查看块设备镜像:
- [root@node2 ~]# rbd list
-
- [root@node2 ~]# rbd ls
-
- [root@node2 ~]# rbd info rbd/rbd-demo.img
8. 删除块设备镜像:
- 语法格式:
- rbd rm {pool-name}/{image-name}
-
- [root@node2 ~]# rbd rm rbd/rbd-demo2.img
二. 动态调整:
1. 扩充镜像容量:
- [root@node2 ~]# rbd resize --size 15G rbd-demo.img
-
- [root@node2 ~]# rbd info rbd-demo.img
2. 缩减镜像容量:
- [root@node2 ~]# rbd resize --size 10G rbd-demo.img --allow-shrink
-
- [root@node2 ~]# rbd info rbd-demo.img
3. 复制镜像:
[root@node2 ~]# rbd cp src-image-name(源镜像名) des-image-name(目标镜像名)
4. 移动镜像,类似于重命名:
[root@node2 ~]# rbd mv src-image-name des-image-name
5. RBD的删除与回复:
- ## 删除RBD可以先将其移动到回收站
- [root@node2 ~]# rbd trash mv [pool-name]/image-name
-
- ## 从回收站删除RBD
- [root@node2 ~]# rbd trash rm [pool-name]/image-name
-
- ## 从回收站恢复RBD
- [root@node2 ~]# rbd trash restore image-id
-
- ## 查看当前回收站中的RBD,可以查看到镜像的id
- [root@node2 ~]# rbd trash ls [pool-name]
三. 客户端访问:
1. 客户端需要安装ceph-common软件包:
- [root@client ~]# yum install ceph-common
-
- [root@client ~]# ls /etc/ceph/
- ceph.client.admin.keyring ceph.conf rbdmap tmp_o0jaD
2. 将块设备映射到系统内核,所有的映射都要在客户端进行:
- [root@client ~]# rbd device map rbd-demo1.img
- /dev/rbd0
-
- [root@client ~]# lsblk
-
- ## 取消映射
- [root@client ~]# rbd device unmap rbd-demo1.img
3. 查看映射:
[root@client ~]# rbd showmapped
4. 客户端格式化,挂载分区:
- [root@client ~]# mkfs.xfs /dev/rbd0
-
- [root@client -]# mkdir /mnt/ceph-block
-
- [root@client ~]# mount /dev/rbd0 /mnt/ceph-block
-
- [root@client ~]# echo "test">/mnt/ceph-block/test.txt
四. 创建镜像快照:
1. 查看镜像快照:
[root@node2 ~]# rbd snap ls image
2. 给镜像创建快照:
- [root@node2 ~]# rbd snap create rbd/rbd-demo.img --snap snep1(快照名)
-
- ## 查看镜像快照
- [root@node2 ~]# rbd snap ls rbd/rbd-demo.img
3. 删除客户端写入的测试文件:
- [root@client ~]# rm -f /mnt/ceph-bock/test.txt
-
- [root@client ~]# umount /mnt/ceph-block
4. 还原快照:
- [root@node2 ~]#rbd snap rollback rbd/rbd-demo.img --snap snap1
-
- ## 客户端重新挂载
- [root@client ~]# mount /dev/rbd0 /mnt/ceph-block/
-
- ## 检查文件
- [root@client ~]# ls /mnt/ceph-block
- test.txt
五. 创建快照克隆:
1. 克隆快照,用快照克隆新的镜像,首先保护快照,防止误删:
- [root@node2 ~]# rbd snap protect rbd/rbd-demo.img --snap snap1
- 一旦将快照保护起来,就不能再删除了
-
- ## 克隆镜像
- [root@node2 ~]# rbd clone rbd/rbd-demo.img --snap snap1 image-clone(克隆后的镜像名)
- --image-feature layering
2. 查看克隆镜像与父镜像快照关系:
[root@node2 ~]# rbd info image-clone
3. 如果希望克隆镜像可以独立工作,就需要将父快照中的数据,全部拷贝一份,但比较耗时:
- [root@node2 ~]# rbd flatten image-clone
-
- ## 再次查看克隆镜像信息
- [root@node2 ~]# rbd info image-clone
4. 取消快照保护:
- [root@node2 ~]# rbd snap unprotect rbd/rbd-demo.img --snap snap1
-
- ## 删除快照
- [root@node2 ~]# rbd snap rm rbd/rbd-demo.img --snap snap1