LVM快照是以空间换时间时间的方式制作的lvm卷副本。它只在lvm中工作,并只在源逻辑卷发生改变时占用快照卷的空间。如果源卷的变化达到1GB这么大,快照卷同样也会产生这样大的改变。因而,对于空间有效利用的最佳途径,就是总是进行小的修改。如果快照将存储空间消耗殆尽,我们可以使用lvextend来扩容。而如果我们需要缩减快照所占用卷的大小,可以使用lvreduce。
在LVM中录制快照
如果我们在创建快照后意外地删除了无论什么文件,我们没有必要担心,因为快照里包含了我们所删除的文件的原始文件。创建快照时,很有可能文件已经存在了。不要改变快照卷,保持创建时的样子,因为它用于快速恢复。
快照不可以用于备份选项。备份是某些数据的基础副本,因此我们不能使用快照作为备份的一个选择。
前置阅读
我的服务器设置
操作系统 — 安装有LVM的CentOS 6.5
服务器IP — 192.168.0.200
步骤1: 创建LVM快照
首先,使用‘vgs’命令检查卷组中的空闲空间以创建新的快照。
# vgs# lvs
检查LVM磁盘空间
正如你所见,在vgs命令输出中,我们可以看到有8GB的剩余空闲空间。所以,让我们为我的名为tecmint_datas的卷创建快照。处于演示的目的,我将会使用以下命令来创建1GB的快照卷。
# lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas
或者
# lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas
上面的两个命令都是干得同一件事:
-s – 创建快照
-n – 为快照命名
创建LVM快照
此处,是对上面高亮要点的说明。
我在此创建的快照的大小。
创建快照。
创建快照名。
新的快照名。
要创建快照的卷。
如果你想要移除快照,可以使用‘lvremove’命令。
# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap
移除LVM快照
现在,使用以下命令列出新创建的快照。
# lvs
验证LVM快照
上面的你看到了吧,成功创建了一个快照。上面我用箭头标出了快照创建的源,它就是tecmint_datas。是的,因为我已经为tecmint_datas l-volume创建了一个快照。
检查LVM快照空间
让我们添加一些新文件到tecmint_datas里头。现在卷里大概有650MB左右的数据,而我我们的快照有1GB大。因此,有足够的空间在快照卷里备份我们的修改。这里我们可以使用下面的命令来查看到,我们的快照当前的状态。
# lvs
检查快照状态
你看到了,现在已经用掉了51%的快照卷,你要对你的文件作更多的修改都没有问题。使用下面的命令来查看更多详细信息。
# lvdisplay vg_tecmint_extra/tecmint_data_snap
查看快照信息
再来对上面图片中高亮的要点作个清楚的说明。
快照逻辑卷名称。
当前使用的卷组名。
读写模式下的快照卷,我们甚至可以挂载并使用该卷。
快照创建时间。这个很重要,因为快照将跟踪此时间之后的每个改变。
该快照属于tecmint_datas逻辑卷。
逻辑卷在线并可用。
我们录制快照的源卷大小。
写时复制表大小,Cow = copy on Write,这是说对tecmint_data卷所作的任何改变都会写入此快照。
当前使用的快照大小,我们的tecmintdata有10GB,而我们的快照大小是1GB,这就意味着我们的数据大概有650MB。所以,如果tecmintdatas中的文件增长到2GB,现在的51%中的内容将增加到超过所分配的快照的大小,当然,我们在创建快照时会出现问题。这就意味着我们需要扩展逻辑卷大小(快照逻辑卷)
给出快照组块的大小。
现在,让我们复制超过1GB的文件到tecmint_datas。让我们看看会发生什么。如果你那么做了,你将会见到‘Input/output error’这样的错误信息,它告诉你快照超出空间大小了。
添加文件到快照
如果该逻辑卷满了,它就会自动丢失新的数据,我们就不能再使用了,就算我们去扩展快照卷的大小也不行。最好的方法就是在创建快照时,创建一个和源一样大小的快照卷。tecmint_datas的大小是10GB,如果我们创建一个10GB大小的快照,它就永远都不会像上面那样超载,因为它有足够的空间来录制你的逻辑卷的快照。
编译自:http://www.tecmint.com/take-snapshot-of-logical-volume-and-restore-in-lvm/作者: Babin Lonston
原创:LCTT https://linux.cn/article-4145-1.html译者: joeren