You are on page 1of 4

SNIA 对快照(Snapshot)的定义是:关于指定数据集合的一个完全可用拷贝,该拷贝

包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的
一个副本,也可以是数据的一个复制品。实际的技术实现:基于时间点的卷逻辑映像,在逻
辑上等同于一个完整物理拷贝(主机是这样认为的),实质上是一个指针表,并非实际的数
据卷,占用空间极少。

快照的定义与作用
SNIA(存储网络行业协会)对快照(Snapshot)的定义是:关于指定数据集合的一个
完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可
以是其所表示的数据的一个副本,也可以是数据的一个复制品。而从具体的技术细节来讲
快照是指向保存在存储设备中的数据的引用标记或指针。我们可以这样理解,快照有点像
是详细的目录表,但它被计算机作为完整的数据备份来对待。

快照有三种基本形式:基于文件系统式的、基于子系统式的和基于卷管理器/虚拟化式的,
而且这三种形式差别很大。市场上已经出现了能够自动生成这些快照的实用工具,比如有
代表性的有 NetApp 的存储设备基于文件系统实现,高中低端设备使用共同的操作系统,
都能够实现快照应用;HP 的 EVA、HDS 通用存储平台以及 EMC 的高端阵列则实现了子系
统式快照;而 Veritas 则通过卷管理器实现快照。

快照的作用主要是能够进行在线数据恢复,当存储设备发生应用故障或者文件损坏时可
以进行及时数据恢复,将数据恢复成快照产生时间点的状态。快照的另一个作用是为存储
用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数
据,还可以利用快照进行测试等工作。因此,所有存储系统,不论高中低端,只要应用于
在线系统,那么快照就成为一个不可或缺的功能。

目前有两大类存储快照,一种叫做即写即拷(copy-on-write)快照,另一种叫做分割
镜像快照。
即写即拷快照可以在每次输入新数据或已有数据被更新时生成对存储数据改动的快照。这
样做可以在发生硬盘写错误、文件损坏或程序故障时迅速地恢复数据。但是,如果需要对网
络或存储媒介上的所有数据进行完全的存档或恢复时,所有以前的快照都必须可供使用。
即写即拷快照是表现数据外观特征的“照片”。这种方式通常也被称为“元数据”拷贝,即所有
的数据并没有被真正拷贝到另一个位置,只是指示数据实际所处位置的指针被拷贝。在使
用这项技术的情况下,当已经有了快照时,如果有人试图改写原始的 LUN 上的数据,快照
软件将首先将原始的数据块拷贝到一个新位置(专用于复制操作的存储资源池),然后再
进行写操作。以后当你引用原始数据时,快照软件将指针映射到新位置,或者当你引用快
照时将指针映射到老位置。
分割镜像快照引用镜像硬盘组上所有数据。每次应用运行时,都生成整个卷的快照,而不
只是新数据或更新的数据。这种使离线访问数据成为可能,并且简化了恢复、复制或存档一
块硬盘上的所有数据的过程。但是,这是个较慢的过程,而且每个快照需要占用更多的存
储空间。分割镜像快照也叫作原样复制,由于它是某一 LUN 或文件系统上的数据的物理拷
贝 , 有 的 管 理 员 称 之 为 克 隆 、 映 像 等 。 原 样 复 制 的 过 程 可 以 由 主 机 ( Windows 上 的
MirrorSet、Veritas 的 Mirror 卷等)或在存储级上用硬件完成(Clone、BCV、ShadowImage
等)。
三种使用方法
具体使用快照时,可以有三种形式,即冷快照拷贝、暖快照拷贝和热快照拷贝。
冷快照拷贝
进行冷快照拷贝是保证系统可以被完全恢复的最安全的方式。在进行任何大的配置变化
或维护过程之前和之后,一般都需要进行冷拷贝,以保证完全的恢复原状( rollback)。冷
拷贝还可以与克隆技术相结合复制整个服务器系统,以实现各种目的,如扩展、制作生产
系统的复本供测试/开发之用以及向二层存储迁移。

暖快照拷贝
暖快照拷贝利用服务器的挂起功能。当执行挂起行动时,程序计数器被停止,所有的活
动内存都被保存在引导硬盘所在的文件系统中的一个临时文件(.vmss 文件)中,并且暂停
服务器应用。在这个时间点上,复制整个服务器(包括内存内容文件和所有的 LUN 以及相
关的活动文件系统)的快照拷贝。在这个拷贝中,机器和所有的数据将被冻结在完成挂起
操作时的处理点上。
当快照操作完成时,服务器可以被重新启动,在挂起行动开始的点上恢复运行。应用程
序和服务器过程将从同一时间点上恢复运行。从表面上看,就好像在快照活动期间按下了
一个暂停键一样。对于服务器的网络客户机看来,就好像网络服务暂时中断了一下一样。对
于适度加载的服务器来说,这段时间通常在 30 到 120 秒。

热快照拷贝
在这种状态下,发生的所有的写操作都立即应用在一个虚硬盘上,以保持文件系统的高
度的一致性。服务器提供让持续的虚拟硬盘处于热备份模式的工具,以通过添加 REDO 日
志文件在硬盘子系统层上复制快照拷贝。
一旦 REDO 日志被激活,复制包含服务器文件系统的 LUN 的快照是安全的。在快照操作
完成后,可以发出另一个命令,这个命令将 REDO 日志处理提交给下面的虚拟硬盘文件。
当提交活动完成时,所有的日志项都将被应用,REDO 文件将被删除。在执行这个操作过程
中,会出现处理速度的略微下降,不过所有的操作将继续执行。但是,在多数情况下,快
照进程几乎是瞬间完成的,REDO 的创建和提交之间的时间非常短。
热快照操作过程从表面上看基本上察觉不到服务器速度下降。在最差情况下,它看起来就
是网络拥塞或超载的 CPU 可能造成的一般服务器速度下降。在最好情况下,不会出现可察
觉到的影响。

与镜像、复制的区别
在与广大存储管理员进行交流时,他们问到最多的一个问题是:快照与镜像以及复制的
区别有哪些呢?

镜像是通过从一个 I/O 创建两个 I/O 来复制数据。磁盘镜像通过 OS 或卷管理软件在主系


统上创建。磁盘镜像是依靠平台和本地连接特性的本地选件。镜像可用于 DAS 和 SAN 并且
大多数 NAS 支持它。存储转发式镜像磁盘子系统(例如, EMC SRDF, IBM PPRC, Hitachi
TrueCopy)主要用于 SAN 产品。
复制是通过网络传输数据对象(文件、表格等)。传输是从系统到系统进行的,而不是在
存储设备之间或子系统之间进行。复制一般也针对具体平台,因此用于 Windows 2000 复制
产品的运行方式与 Unix 平台存在很大不同。
用户选择快照时要考虑的问题

1、 创建快照是否对性能产生影响?
2、 每个快照需要多少存储空间?
3、 每个卷能够最多产生多少快照?
4、 对快照的管理使用是否方便?
5、 有无有效的集成快照管理工具?
6、 是否支持各种类型快照功能?

Snapshot,也就是快照技术,在 backup 时被广泛采用。很早就被应用到阵列和主机中,主要


采用 Copy on Write 的算法。这些详细的技术细节,可以去 snia.org 上查找。通常,他们都是
基于卷,在 block 级别进行处理。各种大型的 array 中都有支持,主机 OS 上的卷管理器,如
VxVM 上就可以做快照。
SNIA 对快照(Snapshot)的定义是:关于指定数据集合的一个完全可用拷贝,该拷贝包
括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一
个副本,也可以是数据的一个复制品。
快照其实是指向保存在存储设备中的数据的引用标记或指针,说穿了就是数据在某一时
刻的状况,其工作原理核心就是是建立一个指针列表,指示读取数据的地址,提供一个瞬
时数据的影像,当数据有改变时,再进行复制。
快照大致分为 2 种,一种叫做即写即拷(copy-on-write)快照,通常也会叫作指针型快
照,VSS 即属于这一种,另一种叫做分割镜像快照,常叫做镜像型快照。指针型快照占用
空间小,对系统性能影响较小,但如果没有备份而原数据盘坏了,数据就无法恢复了;而
镜像型快照实际就是当时数据的全镜像,会对系统性能造成一定负荷,但即使原数据损坏
也不会有太大影响,不过要占用到相等容量的空间。
snapshot 是 STK(storagetek)为其 SVA(shared virtual array)系列磁盘开发的一项技术,后来
STK 又把这项技术运用与其中低端的磁盘上,但是在非 SVA 磁盘上这项技术实现起来有点
别扭.snapshot 与其他的磁盘快速拷贝技术 (如:IBM 的 flashcopy,EMC 的 timefinder,hds 的
shadowimage 等)有本质的区别.

1、工作原理
首先,Snapshot 会占用磁盘空间,占用空间的多少是由变化数据的多少决定;极端情况
下,所有的数据都有变化,就需要有与 Target Lun 一样大小的 Lun。Snapshot 开始工作的时
候,在 RAID 控制器的 Cache 中建立一个数据区域指针,与 Target 的 Block 一一对应;当某
一个 Block 的数据中要变化,Controller 先将原始数据复制到 Snapshot Lun 中,同时修改指
针,指向 Snapshot Lun 中的 Block。 当 Host 需要读 Target Lun 中数据的时候,直接读取
Targe Lun;如果读取 Snapshot Lun 中的数据,现查询内存指针;数据没有改变,就直接读
取 Target LUn 中的 Block,如果改变,就直接读取 Snapshot Lun 中的 Block。 也就是说,
Snapshot 的核心是建立一个指针列表,指示读取数据的地址,提供一个瞬时数据的影像。只
有当数据要改变时,才复制到一个新的 Lun 中;数据在一段时间内的变化不是太频繁,就
不会占用太多的空间。
2、工作方式
snapshot 有两种方式,一种是将目标 LUN 的数据完全复制一份,要占用相等地磁盘空
间,典型的是 EMC TIMEFINDER。另一种是对指针的复制,占用空间很少。管理指针也与
两种方式,一种是在原数据被修改前,现将原数据复制到特定的快照区域(有有两种方式
一种在单独的磁盘分区,一种是在原文件系统占用的空间),在修改快照中的指针,这样
可以不改变原文件系统的指针结构,可以减少磁盘碎片,大多数快照都是这么做的;另一
种是修改的数据继续写到同文件系统的空余空间,修改文件系统原来的指针,而不是修改
快照的指针。我知道的只有 NETAPP 这么做,但他的特殊文件系统结构可以做的很好,因
为有 NVRAM 参与。 指针玩的最好的是 Veritas 的 CheckPoint,HP 的 EVA 盘阵(来自
COMPAQ)和 NetApp WAFL

其实 snapshot 意思就是“快照”,是数据在某一时刻的状况。进行 snapshot 可以用磁盘阵列


内的软件进行,例如 EMC 的 timefiner,IBM 的 Flashcopy,HDS 的 ShadowImage;也可以
在操作系统级利用 volume manager 软件或 file system 的技术实现。实现方式也有两种,一种
是镜像型的,也就是所有数据 copy 一份;另一种是指针型,上面谈了很多了。例如
VERITAS 的 volume manager snapshot 是镜像型的,而 file system snapshot 是指针型的。IBM
的 FlashCopy 好像也有两种方式,IBM 的 flashcopy 分为前台和后台拷贝两种方式,前台拷
贝是实际完全拷贝,后台就是说的那种建立指针的方式。后台方式下,如果你访问备份卷
的数据,发现不是最新的,就会先去从原卷上执行 COPY 工作,达到访问 数据的正确行。
后台拷贝对系统性能影响小一些。

一般指针型的 snapshot 是只读的。指针型的 snapshot,如果没有备份而原盘坏了,数据应


该是无法恢复的;而镜像型的 snapshot 本身就是当时时刻的数据的全 copy,所以原数据坏
对它是没有影响的。

You might also like