Answers:
LVM快照旨在以冻结状态捕获文件系统。 它们本身并不能作为备份。但是,它们对于获取一致的备份映像很有用,因为冻结的映像在备份过程中不能也不会更改。 因此,尽管您不会直接使用它们进行长期备份,但它们在您决定使用的任何备份过程中都将具有巨大的价值。
有几个步骤可以实现快照。首先是必须分配新的逻辑卷。该卷的目的是提供一个记录文件系统增量(更改)的区域。这允许原始卷继续运行而不会中断任何现有的读/写访问。缺点是快照区域的大小是有限的,这意味着在忙于写入的系统上,快照区域可以很快填满。对于具有大量写活动的卷,您将需要增加快照的大小,以便为记录所有更改留出足够的空间。如果快照溢出(填满),则两个快照都将停止并标记为不可用。如果发生这种情况,您将需要释放快照,以便使原始卷恢复在线。发布完成后,您将
发生的第二件事是LVM现在“交换”了有关卷的真正目的。您会认为,新分配的快照将是查找文件系统任何更改的地方,毕竟,这是所有写操作要去的地方,对吗?不,这是另一回事。文件系统已安装到LVM卷名,因此从系统其余部分的下面换出该名称将是不可以的(因为快照使用了不同的名称)。因此,这里的解决方案很简单:访问原始卷名时,它将继续引用您为其做快照的卷的实时(读/写)版本。您创建的快照卷将引用冻结的您打算备份的卷的(只读)版本。刚开始时有些混乱,但这很有道理。
所有这些都在不到2秒的时间内完成。系统的其余部分甚至都没有注意到。当然,除非您在快照溢出之前不释放快照...
在某些时候,您将需要释放快照以回收其占用的空间。发布完成后,快照卷将释放回该卷中,并且原始卷仍然保留。
我不建议将此作为长期备份策略。您仍将数据托管在可能发生故障的同一物理驱动器上,并且从发生故障的驱动器恢复文件系统根本就没有备份。
因此,简而言之:
LVM快照非常适合能够在不脱机的情况下备份服务器。如上所述,LVM快照几乎是即时副本。使用lvcreate
命令创建它们的方式与创建LV本身的方式相同,只是给它提供了--snapshot
选项和原始LV而不是VG。例如:
lvcreate -L <LV size> -s -n <snapshot name> /dev/<VG name>/<LV name>
这将创建具有指定快照名称的给定LV的快照,然后您可以安装该快照并使用该快照LV执行备份,而不必担心文件正在被积极使用。如果您尝试备份活动的数据库服务器,这将特别有用。
从快照备份完成后,您希望将其删除以减少任何其他I / O开销或其他性能问题,就像其他人提到的那样:
lvremove /dev/<VG name>/<snapshot name>
虽然LVM快照对于生成可靠的数据库(如数据库)备份非常有用,而且您通常希望关闭备份以免文件争用,但它们不适合作为快速恢复的长期操作。
IMO,这不是一个好主意。
快照以写时复制的方式实现,因此您可以将每次写入转换为一次读取和两次写入(要更新到的块首先从主卷中读取,并在将新数据放入其中之前存储在快照卷中)。它的位置),因此如果在VM上进行大量写入操作,您将看到性能下降。
此外,IIRC,如果快照卷已满,则可以毫不客气地将其删除。这不利于备份!因此,如果您尝试将其作为备份方法,请确保使快照卷足够大,以处理快照有效期内将发生的所有更改。当然,如果您知道并监视大小问题,而性能问题对您来说不是问题,那么您提出的建议可能会对您现有的其他备份过程有所帮助。
LVM快照在备份过程中非常有用(拍摄快照,将快照备份到其他位置以确保备份一致,而不必禁用对“实际”卷的更新,然后删除快照),避免其他事情,但不能单独用作备份工具。
在外观漂亮的东西下面,LVM实际上只是“设备映射器”的把戏。使用lvcreate创建快照仅是一些dmsetup东西的包装。包装器从一个旧卷(原始lv)和一个新卷(写时复制卷)创建一个新设备(快照卷)。同时,原始LV被重命名为-real(请参见下文,即dmsetup ls --tree输出)。该实际LV同时映射到快照卷和原始卷,因此可以在两个地方使用。写入时复制卷充当-real LV的覆盖。-snap LV向您显示写时复制卷和-real卷的组合。这确实会产生一些性能开销。
Volume00-snap (253:11)
|-Volume00-snap-cow (253:13)
| `- (104:2)
`-Volume00-LogVol01-real (253:12)
`- (104:2)
Volume00-LogVol01 (253:5)
`-Volume00-LogVol01-real (253:12)
`- (104:2)
删除快照时,会再次发生一些重命名和映射。之后,情况将再次看起来像
Volume00-LogVol01 (253:5)
`- (104:2)
至于在多大程度上这是一种备份材料的好方法:可以的是,如果考虑到这将(1)对虚拟机RAM没有帮助,(2)造成性能损失,并且(3)将快照的图像存储在其他位置。
顺便说一下,VMware VCB也可以使用快照,尽管不是LVM快照。
即使快照不会对性能造成任何影响,您也必须了解:快照只不过是备份到同一磁盘上另一个文件夹的副本而已,而不仅仅是备份。
如果磁盘制动,则数据和备份都将丢失。即使将快照区域分配给VG中的另一个PE,它也仅包含自快照以来修改的数据。
备份意味着至少要复制到完全独立的驱动器。