1、快照(计算机存储)来自维基百科,开放性的百科全书(译者:闫斌)在计算机系统中,快照是系统在某个时间点的状态。该术语的产生源于类似摄影中的快照。它可以指系统状态的实际副本或由某些系统提供的功能。目录1. 原理2. 实现2.1 卷管理器2.2 文件系统2.3 在数据库中的应用2.4 在虚拟化中的应用2.5 其他应用3. 参见4. 注意5. 外部链接原理要完成一份大数据集的完整备份可能会花去大量时间。 在多任务或多用户系统中,当数据正在备份时,可能会有数据写入数据集。这就阻碍了备份的原子性,并引入了版本不一致,这可能会导致数据损坏。例如,如果一个用户移动一个文件到一个已经备份的文件夹中,那么这个文件
2、在备份介质上会完全丢失,因为在添加文件前备份操作已经发生。版本不一致也可能导致文件损坏,例如在读取文件时改变文件的大小和内容。一个安全备份实时数据的方法是在备份过程中使写访问失效,或者停止正在访问数据的应用程序,或者使用操作系统提供的加锁应用程序接口(locking API)强制执行只读访问。这对于低可用性系统(台式电脑和小型工作组服务器,常规的停机时间是可以接收的)可以容忍。但是高可用性系统不能容忍业务停止。为避免停机时间,高可用性系统可能转为采用执行基于快照(在某个时间点上数据集的只读副本)的备份,并允许应用程序继续写入数据。大多数快照实现是高效的,可以在 O(1)时间内创建快照。换句话说
3、,创建快照所需要的时间和 I/O 不会随着数据集合的大小而增加,而直接备份则会随着数据集合的大小按相应比例的增加备份时间和 I/O。 在某些系统中,一旦数据集合进行了初始快照,随后的快照仅复制更改的数据,并使用系统初始快照的指针引用。这种基于指针的机制比数据重复克隆消耗更少的磁盘容量。读写快照有时也被称为分支快照,因为它们隐式地创建了数据集的分支版本。除了备份和数据恢复,由于读写快照在管理大的文件集合变更方面的非常有用,它经常用在虚拟化、沙盒以及虚拟主机安装领域。实现卷管理器一些 Unix 系统具有快照功能的逻辑卷管理器,这些逻辑卷管理器通过复制更改的块在这些块被重写前到其他存储位置 实现写时
4、复制,从而保留了一个自身一致的过去的块设备镜像。镜像上的文件系统可以在之后被装载,就像在只读介质上一样。文件系统一些文件系统,例如 WAFLnote 1 , Plan 9 from Bell Labs(是一个免费的软件分布式操作系统) 的 fossil 文件系统,ODS-5(即 Files-11, Hewlett-Packards OpenVMS 操作系统使用的文件系统) ,从内部跟踪文件的旧版本,并通过一个特殊的命名空间使快照可以使用。其他的文件系统,像 UFS2,提供一个操作系统应用程序接口(API)访问文件历史记录。NTFS文件系统,通过 Windows XP 和 Windows 200
5、3 中提供的卷影复制服务访问快照的,在Windows Vista 则使用影子复制。快照也在自 NetWare 4.11 平台上的 NSS(Novell Storage Services)文件系统中可用,最近更多的用在了开放的企业级服务器产品中(Open Enterprise Server)的 Linux 平台上。OMC 的 lsilon OneFS 集群存储平台实现了一个单独可扩展的文件系统,支持文件和或目录级的只读快照。该文件系统中的任何文件或目录都可以创建快照,并且系统将动态的依据对系统最佳的方法,执行写时复制(Copy-on-Write)和时间点(Point-in-time)快照。在 L
6、inux 系统中,Btrfs 和 OCFS2 文件系统支持创建单个文件的快照(克隆)。另外,Btrfs 也支持创建子卷快照。Sun Microsystems ZFS 有一个混合的实现,该实现在块级别上跟踪读写快照,但可使分支文件集合对于用户应用程序可命名,如”克隆”。时间机器(Time Machine),包含于苹果的 Mac OS X v10.5 操作系统中,不是一个快照方案,而是一个系统级别的增量备份服务:它仅仅监视挂载卷的变化,并周期性地使用硬链接复制这些更改的文件到一个专门指定的卷。在数据库中的应用SQL 规范规定了四个级别的事务隔离。最高级别事务隔离中,可序列化的,在每个事务的开始隐式
7、地创建了一个快照。许多流行的 SQL 数据库的备份工具使用该特性生成自身一致的表数据的转储。在虚拟化中的应用系统模拟器(仿真器)寄主一个来宾操作系统在虚拟机中;一些系统模拟器(包括VMware,VirtualBox,Parallel Desktop,QEMU 和 VirtualPC)通过转储整个机器状态到一个备份文件或者重定向将来的来宾系统写入第二个文件(作为一个写时复制表)来执行整个系统的快照。其他应用软件事务内存(Software transactional memory)是一个案例,它在内存中的数据结构应用了相同的概念。参见系统镜像LVM 快照(Linux)R1Soft 热拷贝(Linu
8、x)微软卷影复制存储管理程序注释:1. WAFL 不是文件系统。它是一种文件布局,提供使各种文件系统和技术能够访问磁盘块的机制。外部链接 Garimella, Neeta (2006-04-26). “Understanding and exploiting snapshot technology for data protection, Part 1: Snapshot technology overview“. http:/ Harwood, Mike (2003-09-24). “Storage Basics: Backup Strategies“. http:/ 1 Project web page of rsnapshot注: 翻译的不是非常专业,望读者见谅。