Mal*_*ist 22 linux lvm snapshot
我试图弄清楚 LVM 快照是如何工作的,以便我可以在我的文件服务器上实现它,但是我很难在谷歌上找到任何解释它如何工作的东西,而不是如何将它用于基本备份系统。
从我读过的内容来看,我认为它的工作原理是这样的:
有人可以纠正我的错误。充其量,我猜,我在谷歌上找不到任何东西。
视频显示
obu1:/home/jail/home/qps/backup/D# vgdisplay --- 卷组 --- VG 名称文件服务器LVM 系统标识 格式lvm2 元数据区 1 元数据序列号 3 VG 访问读/写 VG 状态可调整大小 最大低压 0 当前 LV 2 打开 LV 2 最大 PV 0 当前 PV 1 法案 PV 1 VG 大小 931.51 GB PE 大小 4.00 MB 总PE 238467 分配 PE / 大小 238336 / 931.00 GB 免费 PE / 大小 131 / 524.00 MB VG UUID qSGaG1-SQYO-D2bm-ohDf-d4eG-oGCY-4jOegU
sys*_*138 36
正如 Evan 所说,LVM 快照是写时复制快照解决方案的一个示例。它的工作原理与 Evan 暗示的有点不同,但相差不大。
当您有一个没有快照的 LVM 卷时,会按您的预期写入该卷。一个块被改变了,就是这样。
创建快照后,LVM 会立即创建一个块池。此池还包含卷的 LVM 元数据的完整副本。当对主卷进行写入(例如更新 inode)时,将被覆盖的块复制到这个新池中,并将新块写入主卷。这就是“写时复制”。因此,在拍摄快照和主卷的当前状态之间更改的数据越多,该快照池消耗的空间就越多。
挂载快照时,拍摄快照时写入的元数据允许将快照池块映射到卷(或更高级别的快照)中已更改的块。这样,当访问特定块时,LVM 知道访问哪个块。就该卷上的文件系统而言,没有快照。
詹姆斯指出了这个系统的缺陷之一。当您有同一个卷的多个快照时,每次写入主卷中的块时,您可能会触发每个快照中的写入。这是因为每个快照都维护自己的已更改块池。此外,对于长快照树,访问快照会导致服务器上的大量计算来确定需要为访问提供服务的确切块。
当您处理快照时,LVM 只会删除快照池并根据需要更新快照树。如果删除的快照是快照树的一部分,则一些块将被复制到较低级别的快照。如果它是最低的快照(或唯一的),则池将被删除并且操作非常快。
一些文件系统确实提供文件系统内快照,ZFS 和 BTRFS 只是两个比较知名的。它们的工作方式类似,但文件系统本身管理已更改/未更改的映射。这可以说是一种更好的方法,因为您可以 fsck 整个快照系列以保持一致性,这是直接使用 LVM 无法做到的。
Eva*_*son 34
LVM 快照是基本的“写时复制”快照解决方案。快照实际上只不过是要求 LVM 为您提供一个指向文件系统当前状态的“指针”,并将快照后所做的更改写入指定区域。
LVM 快照在托管受快照影响的卷的卷组内“实时”生成,而不是另一个卷。您的陈述“......很多未分配的可用空间而不是分区”听起来像是您的想法是快照在受快照影响的卷组之外“存在”,这并不准确。您的卷组位于硬盘分区中,该卷受快照以及您在该卷组中拍摄的任何快照的影响。
LVM 快照的正常使用方式不是用于长期存储,而是用于获取文件系统的一致“图片”,以便可以进行备份。备份完成后,快照将被丢弃。
创建 LVM 快照时,您可以指定一定量的空间来保存快照处于活动状态时所做的任何更改。如果所做的更改多于您为快照指定的空间,则该空间将变得不可用且必须丢弃。您不想留下快照,因为 (a) 它们会被填满并变得无法使用,以及 (b) 当快照处于活动状态时系统的性能会受到影响 - 事情变得更慢。
编辑:
Microsoft 卷影复制服务和 LVM 快照的作用并没有太大不同。Microsoft 的解决方案更全面一些(就像 Microsoft 的典型情况一样——无论好坏,他们的工具和产品通常寻求解决相当大的问题,而不是专注于一件事)。
VSS 是一种更全面的解决方案,它将对支持快照和基于软件的快照的硬件设备的支持统一到一个 API 中。此外,VSS 具有 API 以允许通过快照 API 使应用程序静止,而 LVM 快照仅与快照有关——任何静止的应用程序都是您的问题(将数据库置于“备份”状态等)。
| 归档时间: |
|
| 查看次数: |
53855 次 |
| 最近记录: |