简介:快照
快照是一个镜像在某一个特定时间点的只读拷贝。其中Ceph块设备的高级功能是能够创建快照保留镜像的历史状态。Ceph支持快照分层,允许快速克隆镜像。 Ceph还支持使用RDB和如KVM,libvirt等创建快照。当做快照时需要停止I/O。如果镜像包含文件系统,文件系统必须在做快照前保持一致性。
本文档主要从以下几个方面进行测试:
1:快照、创建、查询、删除、清理;
2:快照clone、增量快照、保护快照;
3:image导入、导出;
4:利用ceph存储快照功能,做数据备份、数据恢复;
5:image 空间resize(xfs、ext4文件系统);
6:pool快照创建、pool copy、pool快照查看、删除;
文档内容初步整理,后续将不断完善,内容有误的地方欢迎留言指正,我会及时更新修正。
##############测试目的#############
1:image快照如何创建、删除、查询;
2:快照回滚、数据恢复;
#############步骤1~15##############
1:创建一个pool
[root@node241 ~]# ceph osd pool create mypool 24
pool 'mypool' created
2:要创建一个新的RBD镜像为10GB
rbd -p mypool create myimage --size 10240
或者:
rbd create mypool/myimage --size 10240
3:再新建一个镜像、做快照导入测试使用
rbd create mypool/myimage1 --size 10240
4:查看镜像
[root@node242 ~]# rbd --pool mypool ls
myimage
myimage1
5:映射镜像 myimage
[root@node242 ~]# rbd map mypool/myimage
/dev/rbd0
6:格式化
mkfs.xfs /dev/rbd0
7:建立挂载点、挂载磁盘
mkdir /myimage
mount /dev/rbd0 /myimage/
8:映射镜像 myimage1
[root@node242 ~]# rbd map mypool/myimage1
/dev/rbd1
9:格式化
mkfs.xfs /dev/rbd1
10:建立挂载点、挂载磁盘
mkdir /myimage1
mount /dev/rbd1 /myimage1/
11:验证查看挂载分区
[root@node242 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
。。。。。。。。。。。。。。。
/dev/rbd0 xfs 10G 33M 10G 1% /myimage
/dev/rbd1 xfs 10G 33M 10G 1% /myimage1
[root@node242 ~]#
12:myimage目录创建测试文件
touch /myimage/{1..10}myimage.data.txt
查看数据生成
ll /myimage
total 0
-rw-r--r-- 1 root root 0 Oct 9 12:24 10myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 1myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 2myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 3myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 4myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 5myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 6myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 7myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 8myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 9myimage.data.txt
13:myimge创建一个快照:
[root@node242 ~]# rbd snap create mypool/myimage@myimagesnap
14:查看快照信息
[root@node242 ~]# rbd snap ls mypool/myimage
SNAPID NAME SIZE
2 myimagesnap 10240 MB
15:验证数据回滚
15.1:然后删除所有创建的文件
[root@node242 ~]# rm -rf /myimage/*
[root@node242 ~]# ll /myimage
total 0
15.2:回滚快照,
注意:回滚快照就是将当前镜像的数据用快照重新替换。回滚的执行时间随着镜像大小的增加而增加。克隆将会比回滚快照更花时间。
使用RBD命令回滚快照,指定snap rollback选项,指定池名称,镜像名称和单元名称。
[root@node242 ~]# rbd snap rollback mypool/myimage@myimagesnap
Rolling back to snapshot: 100% complete...done.
用于回滚部分,你要注意回滚意味着从快照中的数据覆盖当前版本,需要更长的时间与较大的镜像。因此,克隆是可取的快速恢复。
注意: 镜像快照回滚意味着从快照覆盖原快照当时版本的镜像数据。执行回滚所花费的时间与镜像的大小有关。快照克隆比快照回滚恢复得更快,它是返回到一个预先存在的状态优选的方法。
15.3:卸载挂载目录
[root@node242 ~]# umount /myimage
15.4:重新挂载
[root@node242 ~]# mount /dev/rbd0 /myimage
15.5:查看数据,已经恢复
[root@node242 ~]# ll /myimage
total 0
-rw-r--r-- 1 root root 0 Oct 9 12:24 10myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 1myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 2myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 3myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 4myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 5myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 6myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 7myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 8myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 9myimage.data.txt
##############测试目的#############
1:image导入、导出,数据备份恢复;
2:导出image信息、导入到其它pool;
#############步骤16##############
16:###导出、导入镜像
16.1: 把ceph pool中的一个镜像导出
[root@node242 ~]# rbd export -p mypool --image myimage /tmp/exportmyimage.img
Exporting image: 100% complete...done
16.2:验证查看导出文件
[root@node242 ~]# ll /tmp/exportmyimage.img
-rw-r--r-- 1 root root 10737418240 Oct 9 13:29 /tmp/exportmyimage.img
16.3:把一个镜像导入ceph中
导入镜像名,不能与现有pool中的image重名
[root@node242 ~]# rbd import /tmp/exportmyimage.img -p mypool --image myimage2
Importing image: 100% complete...done.
16.4:验证查看导入镜像文件
[root@node242 ~]# rbd -p mypool ls
myimage
myimage1
myimage2
16.7:映射导入挂载镜像
[root@node242 ~]# rbd map mypool/myimage2
/dev/rbd2
16.8:挂载报错
[root@node242 ~]# mount -t xfs /dev/rbd2 /myimage3
mount: wrong fs type, bad option, bad superblock on /dev/rbd2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
16.9:排查发现新导入的镜像的uuid和之前只做image 的uuid 一样,看来本机挂载需要修改硬盘的uuid 才行
[root@node242 ~]# blkid
。。。。。。。。。。。。。。。。。。。。
/dev/rbd0: UUID="517f2923-04eb-4168-ac0d-229a90e17534" TYPE="xfs" ????
/dev/rbd1: UUID="aea281df-22e6-4411-a98c-688de1b45500" TYPE="xfs"
/dev/rbd2: UUID="517f2923-04eb-4168-ac0d-229a90e17534" TYPE="xfs" ????
[root@node242 ~]#
16.10:换另外一台服务器试一下
先查看镜像是否存在
[root@node245 ~]# rbd -p mypool ls
myimage
myimage1
myimage2
16.11:做镜像映射
[root@node245 ~]# rbd map mypool/myimage2
/dev/rbd0
16.12:创建挂载目录
[root@node245 ~]# mkdir /myimage2
16.13:挂载分区
[root@node245 ~]# mount /dev/rbd0 /myimage2/
16.14:验证数据与到在源镜像导出时数据一致
[root@node245 ~]# ll /myimage2/
total 0
-rw-r--r--. 1 root root 0 Oct 9 00:24 10myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 1myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 2myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 3myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 4myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 5myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 6myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 7myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 8myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 9myimage.data.txt
16.15:查看uuid 与源id一致
[root@node245 myimage2]# blkid
。。。。。。。。。。。。。。。。。
/dev/rbd0: UUID="517f2923-04eb-4168-ac0d-229a90e17534" TYPE="xfs"
16.16: 总结
导出的镜像文件导入集群后生成的硬盘UUID和之前的源镜像一致,挂载磁盘使用不能挂载再同一台主机。
##############测试目的#############
1:查看快照;
2:删除快照;
3:删除写保护的快照;
4:清除所有快照;
#############步骤17~19##############
17:查看快照
[root@node245 ~]# rbd snap ls mypool/myimage
SNAPID NAME SIZE
2 myimagesnap 10240 MB
18:要删除一个快照:
[root@node245 ~]# rbd snap rm mypool/myimage@myimagesnap
删除snap 删除snap报(rbd: snapshot 'snapshot-xxxx' is protected from removal.)写保护 ,使用 rbd snap unprotect volumes/snapshot-xxx' 解锁,然后再删除
注意: Ceph的OSDs删除数据不同步,所以删除快照的磁盘空间不会立即释放。
19:清除快照
19.1:用RBD删除所有快照镜像,指定snap purge选项和映像名称。
rbd --pool {pool-name} snap purge {image-name}
19.2:查看
[root@node243 t1image]# rbd snap ls mypool/myimage1
SNAPID NAME SIZE
3 myimage1snap 10240 MB
5 myimage1snap1 10240 MB
6 myimage1snap2 10240 MB
7 myimage1snap3 10240 MB
8 myimage1snap4 10240 MB
19.3:清除所有快照
[root@node243 t1image]# rbd snap purge mypool/myimage1
Removing all snapshots: 100% complete...done.
19.4:再次查看所有快照已经被删除
[root@node243 t1image]# rbd snap ls mypool/myimage1
##############RBD -管理RADOS块设备(RBD)的镜像,增量快照功能演示#############
##############测试目的###########
1:快照使用简介;
1:快照相关参数详解;
1:快照相关命令详解;
#############步骤1~3#############
1:简介
rbd [-c ceph.conf][-m monaddr][-p| -pool pool][-size size][-order bits][command...]
说明
rbd是一个实用程序,用于操纵rados块设备(RBD)的镜像,QEMU/KVM就是使用的Linux rbd驱动和rbd存储驱动。RBD镜像是分在对象和存储在RADOS对象存储中的简单的块设备。则散置对象镜像的大小必须是2的幂。
选项
-c ceph.conf, -- conf ceph.conf
使用ceph.conf配置文件,而不是默认的/etc/ceph/ceph.conf文件在启动过程中确定监控地址。
-m monaddress [:port]
连接到指定的监视地址上(而不是ceph.conf)。
-P pool, --pool pool
与池进行交互。大多数命令是必需的。
--no-progress
不输出进度信息(默认情况下,某些命令输出标准错误)
2:参数
--image-format format
指定使用对象布局。默认值是1。
format 1 - 一个新的RBD镜像使用原始的格式。所有版本的librbd和RBD内核模块理解这种格式,但不支持新的功能,如克隆。
format 2- 使用的第二个的RBD格式,这是在这个时候由librbd(但不包括RBD内核模块)支持。这增加了支持克隆和更容易扩展,让更多的功能,在未来的。
--snap snap
指定快照名称具体操作。
3:命令
clone [ parent-snapname ] [ image-name ]
将会创建一个父类快照的克隆(子类的副本) 。对象命令将会与父类镜像相同,除非指定。否则 大小将会与父类快照相同。
父类快照必须要被保护 (参阅 rbd snap protect).。这需要format 2。
flatten [image-name]
如果镜像是被克隆的,从父类快照福之所有共享的块并且让子类独立于父类, 切断子类与父类快照的链接。如果没有依赖的克隆,父类快照能被不保护并且能被删除。这需要format 2。
children [image-name]
列出给定的快照中镜像的克隆。这检查了每个池,输出池名/镜像名的结果。
export [image-name] [dest-path]
导出至dest-path路径的镜像(在stdout中使用 )。
import [path] [dest-path]
创建一个新的镜像,并导入其数据路径(使用-for 标准输出)。导入操作,如果可能的话,将尝试创建稀少RBD镜像。进口从标准输入,稀少化单元目标镜像数据块大小(1
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com