一、在线调整Ceph RBD的容量大小
1、支持调整ceph RBD的容量大小的底层文件系统
自由的增加或者减少RBD的容量,需要底层文件系统的支持,支持的文件系统有
1、XFS
2、EXT
3、Btrfs
4、ZFS
2、将RBD镜像ceph-client1-rbd1原始容量是10G扩容为20G,(在ceph集群中任意一台节点上)执行的命令如下:
rbd resize rbd/ceph-client1-rbd1 --size 20480
[[email protected] ~]# rbd info ceph-client1-rbd1
rbd image 'ceph-client1-rbd1':
size 20480 MB in 5120 objects #已经扩容为20G
order 22 (4096 kB objects)
block_name_prefix: rbd_data.857a238e1f29
format: 2
features: layering
flags:
3、在客户端上检查新的容量是否已经被内核所接受
[[email protected] ceph-vol1]# xfs_growfs -d /mnt/ceph-vol1/
meta-data=/dev/rbd0 isize=512 agcount=17, agsize=162816 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=1024 swidth=1024 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2621440 to 5242880
[[email protected] ceph-vol1]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 471M 0 471M 0% /dev
tmpfs 483M 0 483M 0% /dev/shm
tmpfs 483M 6.6M 477M 2% /run
tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/mapper/cl-root 8.0G 1.5G 6.5G 19% /
/dev/sda1 1014M 186M 829M 19% /boot
tmpfs 97M 0 97M 0% /run/user/0
/dev/rbd0 20G 134M 20G 1% /mnt/ceph-vol1 #已经是20G
二、创建Ceph RBD快照
1、在/mnt/ceph-vol1目录下创建一个文件,用于演示
[[email protected] ceph-vol1]# cd /mnt/ceph-vol1
[[email protected] ceph-vol1]# vi file_1
#文件内容如下:
hello world 1
2、创建快照
[[email protected] ceph-vol1]# rbd snap create rbd/[email protected] #快照名字:snap1
3、查看镜像的快照
[[email protected] ceph-vol1]# rbd snap ls rbd/ceph-client1-rbd1
SNAPID NAME SIZE
4 snap1 20480 MB
4、演示恢复快照的效果,删除原来的文件,并再次创建一个文件
[[email protected] ceph-vol1]# rm -rf file_1
[[email protected] ceph-vol1]# ls -l
total 8
-rw-r--r-- 1 root root 13 Jan 7 22:32 file_2
这时候有一个文件file_2,记住刚才做快照的时候,是file_1文件,但是目前被删除了,并且误创建了一个file_2文件
也就是说恢复快照之后会恢复回原来的file_1文件
5、恢复快照(在生产环境中,请谨慎操作,)
[[email protected] ceph-vol1]# rbd snap rollback rbd/[email protected]
Rolling back to snapshot: 100% complete...done.
快照回滚操作完成后,重新挂载文件系统以刷新文件系统状态
umount /mnt/ceph-vol1
mount /dev/rbd0 /mnt/ceph-vol1
6、快照的删除,删除指定的快照
rbd snap rm rbd/ceph-[email protected]
7、一次性删除所有快照
[[email protected] ~]# rbd snap purge rbd/ceph-client1-rbd1
8、如果需要删除RBD镜像,命令如下
rbd rm ceph-client1-rbd1 -p rbd
三、复制Ceph RBD
cow副本:
ceph存储集群可以从rbd的快照中创建写时复制副本(cow副本),这就是ceph的快照分层。
RBD父快照是只读的,再从这个RBD父快照创建cow副本,那么cow副本是可读可写的
注意:
rbd镜像分为两种类型,分别是format-1,还有format-2,这两种类型都支持快照的特性
但是,只有format-2类型支持分层的特性(cow赋值特性),如果在创建rbd镜像时,没有明确指定属于哪种类型
那么默认是format-1类型。因此,
1、创建属于format-2类型的rbd镜像
[[email protected] my-cluster]# rbd create ceph-client1-rbd2 --size 5024 --image-feature layering --image-format 2
2、创建快照
[[email protected] my-cluster]# rbd snap create rbd/[email protected]_for_clone
3、要创建cow副本之前,将快照设置为保护状态(预防被误删,导致cow分层快照无法使用)
[[email protected] my-cluster]# rbd snap protect rbd/[email protected]_for_clone
4、开始创建cow副本
注意:
赋值快照需要父存储池,RBD镜像以及快照的名称,对于子实例来说,它需要池以及RBD镜像的名称
[[email protected] my-cluster]# rbd clone rbd/[email protected]_for_clone rbd/ceph-client1-cow-rbd3
5、查看cown副本信息
[[email protected] my-cluster]# rbd --pool rbd --image ceph-client1-cow-rbd3 info
rbd image 'ceph-client1-cow-rbd3':
size 5024 MB in 1256 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.197553d1b58ba
format: 2
features: layering
flags:
parent: rbd/[email protected]_for_clone #父镜像是rbd/[email protected]_for_clone
overlap: 5024 MB
到此,就已经克隆了一个RBD镜像
6、扁平化该镜像(可选操作)
说明:
如果想让克隆出来的快照不依赖它的父镜像,那么就需要扁平化。
这样的话,克隆出来的RBD镜像就和它的父镜像快照没有任何依赖了
6.1 启动扁平化
[[email protected] my-cluster]# rbd flatten ceph-client1-cow-rbd3
Image flatten: 100% complete...done.
6.2 查看cow快照
[[email protected] my-cluster]# rbd --pool rbd --image ceph-client1-cow-rbd3 info
rbd image 'ceph-client1-cow-rbd3':
size 5024 MB in 1256 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.197553d1b58ba
format: 2
features: layering
flags:
发现没有了parent:选项,已经变成了一个独立的镜像
7、删除父镜像快照
7.1 删除之前首先解除保护状态
[[email protected] my-cluster]# rbd snap unprotect rbd/[email protected]_for_clone
7.2 开始删除
[[email protected] my-cluster]# rbd snap rm rbd/[email protected]_for_clone
原文地址:http://blog.51cto.com/freshair/2058990