xen domU 的定期 LVM 快照作为备份策略的可行性如何?优点,缺点,有什么问题吗?
对我来说,这似乎是快速、无脑恢复的完美解决方案。任何调查都可以在 domU 成功运行而没有中断的情况下对损坏的逻辑卷进行。
编辑:
这就是我现在在做完整系统备份时所处的位置。
现在我需要自动化这个。
Ave*_*yne 35
LVM 快照旨在捕获处于冻结状态的文件系统。 它们本身并不意味着成为备份。但是,它们对于获取一致的备份映像很有用,因为冻结的映像在备份过程中不能也不会更改。 因此,虽然您不会直接使用它们来进行长期备份,但它们在您决定使用的任何备份过程中都将具有重要价值。
有几个步骤可以实现快照。第一个是必须分配一个新的逻辑卷。该卷的目的是提供一个记录文件系统增量(更改)的区域。这允许原始卷继续运行而不会中断任何现有的读/写访问。这样做的缺点是快照区域的大小是有限的,这意味着在写入繁忙的系统上,它可能会很快填满。对于具有大量写入活动的卷,您需要增加快照的大小,以便为记录所有更改留出足够的空间。如果您的快照溢出(填满),则快照将停止并被标记为不可用。如果发生这种情况,您将需要发布您的快照,以便您可以使原始卷重新联机。一旦发布完成,你
发生的第二件事是 LVM 现在“交换”了相关卷的真正目的。您会认为新分配的快照将是查找文件系统任何更改的地方,毕竟,这是所有写入的地方,对吧?不,它是相反的。文件系统挂载到 LVM 卷名称,因此从系统其余部分下面换出名称将是禁忌(因为快照使用不同的名称)。所以这里的解决方案很简单:当您访问原始卷名称时,它将继续引用您对其进行快照的卷的实时(读/写)版本。您创建的快照卷将引用冻结的您要备份的卷的(只读)版本。一开始有点混乱,但它会是有道理的。
所有这一切都在不到 2 秒的时间内发生。系统的其余部分甚至没有注意到。当然,除非您在快照溢出之前不释放它...
在某些时候,您会想要释放快照以回收它占用的空间。释放完成后,快照卷将释放回卷中,而原始卷仍保留。
我不建议将此作为长期备份策略。您仍然在可能发生故障的同一物理驱动器上托管数据,从发生故障的驱动器恢复文件系统根本就没有备份。
所以,简而言之:
Jer*_*use 12
LVM 快照非常适合无需脱机即可备份您的服务器。如前所述,LVM 快照几乎是即时副本。您可以使用lvcreate命令创建它们,就像创建 LV 本身一样,只是您给它--snapshot选项和原始 LV 而不是 VG。例如:
lvcreate -L <LV size> -s -n <snapshot name> /dev/<VG name>/<LV name>
Run Code Online (Sandbox Code Playgroud)
这将使用指定的快照名称创建给定 LV 的快照,然后您可以挂载该快照并使用此快照 LV 执行备份,而无需担心文件被主动使用。如果您尝试备份活动数据库服务器,这将特别有用。
从快照备份完成后,您可能希望删除它以减少任何额外的 I/O 开销或其他性能问题,正如其他人提到的那样:
lvremove /dev/<VG name>/<snapshot name>
Run Code Online (Sandbox Code Playgroud)
虽然 LVM 快照在为数据库等系统生成可靠备份方面非常宝贵,并且您通常希望关闭备份以避免文件争用,但它们并不适合作为快速恢复的长期操作。
不是一个好主意,海事组织。
快照以写时复制的方式实现,因此您可以将每次写入转换为一次读取和两次写入(您要更新到的块首先从主卷读取并存储在快照卷中,然后再将新数据放入它的位置)所以如果大量写入在 VM 上很常见,你会看到一些性能下降。
此外,IIRC,如果快照卷已满,它会被毫不客气地丢弃。这不利于备份目的!因此,如果您确实尝试将此作为备份方法,请确保使快照卷足够大以处理在快照的使用寿命期间发生的所有更改。当然,如果您知道并监控大小问题并且性能问题对您来说不是问题,那么您的建议可能会对您现有的其他备份过程有用。
LVM 快照作为备份过程的一部分非常有用(拍摄快照,将快照备份到其他地方以确保备份一致,而不必禁用对“真实”卷的更新,然后删除快照),除此之外,还有其他事情,但不打算作为自己的备份设施。
在创建快照之前,您需要确保磁盘上的数据处于一致状态。例如,mysql 可能将数据缓存在内存中,需要通过转储数据库或将其关闭来强制写入磁盘。有关详细信息,请参阅您的应用程序手册。
在看起来很聪明的东西下面,LVM 实际上“只是”一个设备映射器技巧。使用 lvcreate 创建快照只不过是一些 dmsetup 内容的包装器。包装器从一个旧卷(原始 lv)和一个新设备(写时复制卷)创建一个新设备(快照卷)。与此同时,原始 LV 被重命名为 -real(见下文,这是 dmsetup ls --tree 输出)。这个 -real 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)
Run Code Online (Sandbox Code Playgroud)
删除快照时,会再次发生一些重命名和映射。之后,情况将再次看起来像
Volume00-LogVol01 (253:5)
`- (104:2)
Run Code Online (Sandbox Code Playgroud)
至于在多大程度上这是一种备份东西的好方法:它可以,如果你考虑到这将 (1) 对虚拟机 RAM 没有帮助,(2) 造成性能损失,(3) 你将需要将快照的图像存储在别处。
VMware VCB 也适用于快照,顺便说一句,尽管不是 LVM 的。
| 归档时间: |
|
| 查看次数: |
31237 次 |
| 最近记录: |