作用:结合特定应用程序,方便备份数据。
基于cow(copy on write 写时复制)机制
在创建逻辑卷快照的时候,如果不去设置逻辑卷快照的权限的话,那么这个逻辑卷的权限就是可读可写,
创建逻辑卷快照的命令
逻辑卷快照容量的意义。
如上图所示,当你创建一个逻辑卷快照的时候,你需要根据公司的监控系统,去观察总结在你备份数据的这一时间段,我公司的服务器上关于数据的变化量是多少,以此来规定逻辑卷快照的容量大小,比如你定义逻辑卷快照的容量是500MB,所以原来服务器在旧逻辑卷上操作的数据不能超过500MB,如果数据的变化超过500MB。逻辑卷快照报废。那这次的数据备份就是一个失败的备份。
逻辑卷快照的使用流程。
1.首先去创建一个逻辑卷快照。
如上图所示,可以使用lvcreate -s -p r -n 快照名称 -L 容量 逻辑卷名称
此时使用lvscan来查看当前系统的逻辑卷,会发现snapshot快照以及它的逻辑卷来源。
2.随后将这个逻辑卷快照挂载到一个空目录上。
如上图所示,使用逻辑卷快照的方法就是将逻辑卷快照挂载到一个空目录上,并且系统体制这个逻辑卷快照只能以只读的方式打开。
随后也可以去查看这个挂载目录中的内容,实际上就是逻辑卷快照中的内容,
如上图所示,当在原来的逻辑卷中进行数据的操作的时候,逻辑卷快照中的数据是不会更新的。
3.使用逻辑卷快照进行数据备份。
现在快照已经挂载,你可以像处理普通文件系统一样进行备份操作。这可以是使用rsync
,tar
或其他备份工具。
1sudo rsync -aHAXx /mnt/snapshot/ /backup/
如上所示,是将/mnt/snapshot/中的数据,通过rsync这个备份工具,将数据备份到/backup/。
4.使用逻辑卷快照去恢复逻辑卷中的数据
如果你想从快照恢复数据,可以先卸载原始逻辑卷,然后使用lvconvert
命令将快照合并到主逻辑卷中,这会将快照时的数据状态应用到主逻辑卷。
1sudo umount /mount_point_of_original_lv
2sudo lvconvert --merge /dev/vg_data/data_snap
如上所示,如果想从快照中去恢复数据的话,就可以先使用umount命令去卸载原始逻辑卷,然后使用lvconvert
命令将快照合并到主逻辑卷中,这会将快照时的数据状态应用到主逻辑卷。
5.删除逻辑卷快照
如上图所示,卸载逻辑卷快照的方式就是umount 逻辑卷快照名称
那么如何删除逻辑卷快照呢?
使用lvremove 逻辑卷快照名称
随后使用lvscan,来查看删除逻辑卷快照后的结果。
逻辑卷快照的底层原理
使用cow(写时复制的原理)
在对逻辑卷创建快照的时候,并不是将逻辑卷中的数据复制到逻辑卷快照中,而是将逻辑卷数据的指针保存到逻辑卷快照中。也就是说逻辑卷快照中的数据的指向保存到快照中。
再说大白话,就是将逻辑卷中数据的存放位置保存到了逻辑卷快照当中,也就是说将逻辑卷中数据的元数据信息保存到了逻辑卷快照当中。
但是逻辑卷快照中并不是保存的单纯的指针,逻辑卷快照借助的是写时复制的机制,当原逻辑卷的数据发生变化的时候,在这一时刻,原来逻辑卷中发生变化的数据的原数据被复制到了逻辑卷快照中.
而逻辑卷快照的容量就表示在这个逻辑卷快照中所储存真实数据的时候,真实数据的空间大小。
创建快照的时候,快照中只保存数据的指针信息,(元数据信息),只有当原逻辑卷数据发生变化时,才会将真实的数据复制到快照中来。
如上图所示,创建一个逻辑卷快照容量是100MB,但是我对原来逻辑卷中去创建一个大小为200MB的文件这时,再去查看逻辑卷快照的挂载目录发现,没有文件可以被查看了,而且使用lvscan查看系统中的逻辑卷,发现逻辑卷快照处于inactive状态,证明此次逻辑卷数据备份失败。
如上图所示,在逻辑卷快照处于inactive的状态之后,再次使用mount命令将逻辑卷快照挂载到目录/mnt/中,发现/mnt/依然没有文件可以被查看,这时使用lvremove -f命令将逻辑卷快照删除即可。
基于快照备份数据
如上图所示,对逻辑卷/data/web/创建快照,/dev/data/web
使用mount命令去挂载逻辑卷快照/dev/data/web到目录/mnt/中,随后使用tar -czf来对逻辑卷快照中的数据进行打包备份。
如上图所示,使用逻辑卷快照来备份数据后,就可以使用umount 命令将逻辑卷快照进行卸载的操作,然后就可以使用lvremove命令来将逻辑卷进行删除的操作,这时就使用lvscan命令来查看当前系统中关于逻辑卷快照的查看。验证逻辑卷快照是否删除成功。