什么是快照?

17 Mar 2025 | 5 分钟阅读

引言

快照可以定义为计算机系统中特定时间点的系统状态。快照一词是借鉴摄影中的**类比**引入的。快照可以指某些系统提供的功能,或指系统状态的快照副本。

硬盘快照高效地包含硬盘的目录结构,以及硬盘上的每个文件和文件夹。这种备份类型也可以称为“**磁盘映像**”。

磁盘映像允许在主磁盘发生故障时完整恢复整个磁盘。创建快照的许多磁盘程序允许通过快照恢复特定文件,而无需恢复整个备份。

然而,快照可用于各种备份。将快照存储在任何可移动驱动器、第二硬盘或光盘媒体(如 DVD 和 CD)上都是很好的做法。

快照映像

What is Snapshot

快照被定义为撤销更改或进行版本控制的能力。快照映像是卷内容在任何特定时间捕获的逻辑副本。快照映像的存储空间占用量最小。

快照如何工作?

如果我们随时进行快照,例如,我们可以将我们所有的文件夹或文件恢复到该状态。因此,如果我们感染了任何病毒,我们可以将我们的整个卷、文件夹或文件恢复到感染病毒之前的状态。

快照与备份有何不同?

备份可以定义为我们**数据的完整副本**。例如,如果我们有 6TB 数据,那么每个副本将占用额外的 6TB 数据。如果我们每小时备份一次,那么 10 小时后,我们的备份将占用 60TB 空间。因此,存储备份的多个副本并不常见。备份不适合版本控制。

快照适合版本控制,因为它不是备份。它可以拥有多个版本而无需占用太多存储空间。快照需要保存足够的数据来撤销任何修改,因此与任何备份相比,它占用的空间有限。

原理

对大型数据集进行完整备份可能需要很长时间才能完成。在多用户或多任务处理系统上,在备份数据时可能会有写入操作。

这会阻止备份成为原子操作,并导致版本不一致,从而可能导致数据泄露。例如,当用户将文件移动到已备份的目录时,该文件将完全丢失在备份媒体上。

由于文件添加操作发生在备份操作之前。此外,版本不一致可能导致在读取过程中修改其内容或大小的各种文件出现损坏。

安全备份活动数据的一种方法是在备份期间暂时禁用信息写入权限,方法是使用锁定 API 或停止操作系统提供的应用程序访问以仅强制读取访问。

这对于所有**低可用性系统**(如工作组服务器和台式计算机,其中每天停机是可以容忍的)是可以接受的。

  • 然而,24/7 高可用性系统无法承受服务中断。
  • 高可用性系统可能更倾向于通过快照而不是备份来实现,以避免停机——在任何时间点冻结的数据集的只读副本,并允许所有应用程序继续写入数据。
  • 大多数快照实现都是高效的,可以在 O(1) 时间内创建快照。
  • 此外,创建快照所需的 I/O 和时间不会随着数据集大小的增加而增加。
  • 相比之下,直接备份所需的 I/O 和时间将与数据集大小成正比。
  • 一旦获取了数据集的初始系统映像,后续快照仅复制修改过的数据,并使用指针系统引用初始快照。
  • 这种基于指针的快照方法比重复克隆数据集占用的磁盘空间更少。

快照实现

What is Snapshot

卷管理器

一些 Unix 系统包含可快照的逻辑卷管理器。它们通过在父卷被覆盖之前将修改过的块复制到其他存储上来对整个块设备执行写时复制。

因此,它保留了块设备的任何自一致的先前映像。在这些类型的快照映像上,文件系统稍后可以像在只读媒体上一样进行修复。
一些卷管理器允许创建可写快照,并通过将快照中更改的块与实际卷中的父块分开来扩展写时复制方法。此外,这样的方案可以被指定为实现由快照触发的各种写入所触发的附加写时复制操作。

**逻辑卷管理器** (LVM) 允许在 Linux 上创建读写和只读快照。可写快照是在 LVM2 (LVM 版本 2) 中定义的。

文件系统

一些文件系统,如 Bell Labs 的 ODS-5、fossil 和 plan 9,内部跟踪以前的文件版本,并通过唯一的命名空间创建快照。其他文件系统,如 UFS2,则提供 OS API 来访问文件历史记录。

在 Windows Server 2003 和 Windows XP 中,通过卷影复制服务 (VSS) 以及 Windows Vista 中的 Shadow Copy,可以访问 NTFS 中的各种快照。

自 4.11 版本以来,Novell Storage Services 文件系统在 NetWare 和 Linux 环境中的 Open Enterprise Server 单元中也一直存在快照。Melio FS 通过与 VSS 类似的接口为分布式存储提供快照。

  • Time Machine 不是快照方案,而是 Apple 的 Mac OS X 10.5 版本操作系统中包含的一个系统级附加备份服务。
  • 它只是定期监视固定卷的副本和更改,并将修改后的文件通过硬链接复制到专门设计的卷中。
  • 这是因为 HFS Plus 文件系统没有快照功能。
  • 此外,Apple 新的 APFS 文件系统引入了此类功能。
  • Sun Microsystems ZFS 包含一个混合实现。
  • 在块级别,它可以跟踪读写快照。
  • 然而,它会创建类似于克隆的分支文件集,这些文件集对于用户应用程序来说是显著的。
  • OCFS2 和 Btrfs 文件系统可以在 Linux 上支持单个文件的克隆(快照)创建。
  • Btrfs 还支持子卷的快照创建。
  • JFS2 也支持 AIX 上的快照。

操作系统

Phantom OS 依赖于快照的概念。它通过布局保存每个应用程序的状态。


下一个主题电池类型