系统快照为何这么小?

系统快照为何这么小?

假设有一个名为的文件,bob大小为 10GB /home。我制作了快照/home并删除了原始bob文件。但是我仍然可以访问 bob 文件,因为我有它的快照。我的问题是,如果我多次这样做,硬盘驱动器怎么不会满了?因为快照的大小非常小。

答案1

如果你说的是 LVM 快照,那么这很好地解释

LVM 提供的一项出色功能是“快照”。这允许管理员创建一个新的块设备,该设备提供某个逻辑卷的精确副本,并在某个时间点冻结​​。

如果您了解文件系统的工作原理,您就会明白,当您从系统中删除某个文件(例如bob)时,文件本身不会被删除。而是删除该文件的 inode 条目。数据仍存在于卷上。快照会获取该时间点的 LVM 表的冻结图像,并且(这是关键)它会记录使用的 inode 条目。

这意味着当您通过快照访问数据时,它实际上只是将 LVM 元数据重新映射到与该源数据相关的 inode。并且由于快照后您将无法访问系统在之前的快照中使用的 inode,因此这些数据仍保留在深层文件系统级别。

因此,LVM 快照本质上是文件系统在过去某个状态下与当前状态相比的“增量”,并且以确保保留对过去数据的任何“回滚”的方式完成。

答案2

如果您保留一个或多个文件的快照,则它们不会被复制。所有快照都引用同一个数据副本,直到您尝试更改版本,然后您才会获得新数据。因此称为“写入时复制”。

相关内容