(一)COW快照
COW称为写时拷贝,或者写前拷贝。创建快照以后,如果源卷的数据发生了变化,那么快照系统会首先将原始数据拷贝到快照卷上对应的数据块中,然后再对源卷进行改写。
首次写入时需要完成:
一个读操作(读取源位置的数据)
两个写操作(写原位置和写快照预留空间)。
写操作
如下图所示,快照创建以后,上层业务每下发一个数据块,存储上,发生了两次写操作:一次是源卷将数据写入快照卷(即图中Y),一次是上层业务将数据写入源卷(即图中X)。同时,生成一张映射表,表中一列记录源卷上数据变化的逻辑地址,另一列记录快照卷上数据变化的逻辑地址。
图1 COW写操作
读操作:
如下图,针对快照进行读操作时,首先由快照系统判断,上层业务需要读取的数据是否在快照卷中,若在,直接从快照卷读取,若不在,则查询映射表,去对应源卷的逻辑地中读取(读重定向)。针对源卷进行读操作时,与快照卷没有数据交互。
图2 COW读操作
COW的优缺点
优势:COW 在进行快照操作之前,不会占用任何的存储资源,也不会影响系统性能。因为快照卷只需要保留发生过变化的数据块,与数据卷相比要小得多。
劣势:
降低源数据卷的写性能。当修改源数据时,会发生三次读写操作;
如果主机写入数据频繁,那么这种方式将非常消耗I/O。
无法得到完整的物理副本。快照卷仅仅保存了源数据卷的部分原始数据。
拷贝到快照卷中的数据量超过了保留空间,快照就将失效。
(三)实验过程
1.关机状态下给虚拟机添加6块20GB硬盘,以创建硬盘域
2.查看硬盘情况
查看结果
4.检查工具齐备否
[root@tile-service ~]# rpm -qa|grep lvm udisks2-lvm2-2.9.0-7.el8.x86_64 |
5.创建pv→vg→lv
创建vg时,可以指定PE的大小
6.格式化lv
7.装载LV并使用
8.创建mylv的快照
查看lv的情况
9.往mylv里面写数据,观察cow区域的变化
①另开一个终端监视窗口,通过SSH登录,实时观察存储区域变化
②往mylv里填充数据块
③观察cow区域,发生了变化
④再往mylv里写一个文件
10.观察快照目录
创建新文件夹mysnap,并将快照挂载到该文件夹下
可以发现,mylv下的内容,与mylvsnap01下内容不同,创建快照后在mylv填充的内容,在mylvsnap01中没有。
11.从快照还原数据
①创建一个临时文件夹/mytemp
②安装dump
③还原数据
11.删除本实验的数据(恢复目录/mytemp、快照、lv、myvg等)
#rm –rf /mytemp #umount /mnt #umount /mysnap #lvremove /dev/myvg/mylv #lvremove /dev/myvg/mylvsnap01 #vgremove /dev/myvg |
二、Raid 5磁盘阵列热备盘设置
1.安装mdadm
# yum install -y mdadm
2.以sde1/sde2/sde3/sde5创建名称为myraid5的raid5阵列,阵列工作盘数目为3,热备盘为1
4.格式化并挂载
5.使用阵列
6.模拟硬盘sde1损坏并修复
文件内容也还在