揭秘VxFS中的检查点和快照技术

罗庆超

快照(Snapshot)这个在数据保护领域耳熟能详的技术,早已深入人心。在各种备份应用中,通过制作一个基于时间点的快照来进行备份,是保证业务连续性的核心技术。随着法规遵从的逐步展开,不管在企业级的数据中心,还是中小型企业业务(Small Medium Business),基于快照的数据备份技术将会大行其道。

一、技术应用场景

VxFS是Symantec (原Veritas) 旗舰产品Storage Foundation里面的一个产品,它被广泛地应用到世界各地的数据中心。它提供了许多针对数据管理的特性,并针对不同的应用场景进行组合;如针对数据库的快速I/O,不仅提高了数据库的性能,同时提供良好的备份能力;而将它和其他一些产品组合(VxVM和VCS),就能提供高可靠性的CFS。

而专门针对备份技术,它提供了两种特性来解决满足用户的需求,一种是快照,另外一种是检查点(Checkpoint)。对于备份技术来说,其中一个最基本的实现方法就是“检查文件系统里面每个文件的更新时间,从而对更新的文件做备份”。由于实时备份,要实现业务的连续性,就不能停止当前运行的应用,因此需要对此应用在当前文件系统中的缓冲区数据进行适当的处理,以避免数据备份出现一致性问题。正是由于Symantec自己设计VxFS,它能清晰的了解文件系统中缓冲区的情况,并结合写拷贝 (Copy on Write) 技术,因此实现了快照和检查点特性。

在VxFS中,对一个文件系统做快照,就是对该文件系统在某一时间点做实时的映像,从而备份操作就可以在此映像上完成,而且该映像是只读的;对于一个文件系统来说,可以在不同的时间点做映像,但是却不能对一个映像再次做映像,就像对一个人可以从不同角度投射灯光,而得到多个影子,却不能再对影子投射出影子。

对于快照来说,它是一个暂时的映像,在装载(mount)时它存在,而在卸载(umount)时它就消失了;针对这个情况,VxFS提供了一个持续的映像,就是检查点映像,即使系统重新启动或者崩溃,它也仍然存在;通过写拷贝技术,检查点只需要维护文件系统中被修改数据块的信息,从而大大地减少了I/O负载。

通过上面的简介,对于快照和检查点有了基本的概念,但是究竟技术的深层次里面到底是如何,是通过什么样的方式实现这些特色的呢,下面将为你揭开其神秘面纱。

二、探寻技术内幕

在存储系统中,卷管理器(在PC环境下,分区和卷基本上是同一概念)和文件系统设计密不可分,通常文件系统都要在某个卷上来创建;也就是说,卷是文件系统存在的基石,通过分层设计,将存储系统分为文件和数据块进行处理,两者相互协调,从而提供更好的灵活性。下面将通过文件系统和卷的处理,来解释快照和检查点的技术细节。

2.1 深入检查点内幕

对于检查点技术来说,在对当前文件运行系统创建检查点时,并不会把原有文件系统做一个完整的拷贝;而只是在检查点文件集(Checkpoint Fileset)中,创建一些元数据(Metadata)信息;对于每个具体的文件,就是文件本身的信息(如inode信息),而该文件对应的真实数据是通过指向原文件集(Primary Fileset)中的数据得到,从而提高存储空间的利用率。

揭秘VxFS中的检查点和快照技术_第1张图片

图-1 检查点设计

正如图-1所示,原文件集和检查点文件集是在同一卷内,它保证“检查点文件集”能够持续存在,即使系统重启它也不会消失;另一方面,它也占用了卷的存储空间。因此为了有效的利用存储空间,VxFS提供了四种类型的检查点:

a) 数据型 — 它是原文件集的完整映像,也就包含里面所有的数据;

b) 非数据型 — 它只包含原文件集的元数据信息,而不包含真实数据,从而可以节约存储空间;

c) 可删除型 — 在系统空间不足时,将首先删除这种检查点;

d) 不可Mount型 — 它不能被某些命令装载 (mount) ;

因为检查点采用了写拷贝技术,所以在并不会带来很大的性能影响,用户只要根据自己的需求来设计不同类型的检查点。

2.2 详解快照

快照和检查点技术类似,都是采用写拷贝技术来完成,但是快照技术却不像检查点那样持续存在,它只是在装载(mount)时存在,一旦卸载(umount)或者重新启动后,它便不再存在。

通过图-2的框图,就可以了解个中原因。和图-1相比,快照和检查点的重大区别就在于“快照是采用新的卷(如图中的快照卷,Snapshot Volume)来做存储介质”;因此快照技术,不会占用原卷的存储空间,和检查点一样它对系统的性能不会有太大的性能影响。所以,可以对原卷做多个快照进行备份,而不必像检查点那样担心占用太多的存储空间。

值得注意的是,VxFS中的快照和VxVM中的快照是有差别的。一个是基于文件系统的块,而另一个是基于设备卷的数据块。

揭秘VxFS中的检查点和快照技术_第2张图片

图-2 快照设计

快照技术不仅应用在存储软件里面,在很多硬件中 (比如阵列或者NAS里面,都引入了快照),尽管各个厂家在实现上可能有细微的区别,但是原理上都是类似的。

2.3写拷贝机制

不管是检查点还是快照,都是在写拷贝的基础上实现。其原理如图-3所示,在操作更新前,采用地址来指向数据块;当要用数据块B’来更新数据块B时,将指向原数据块B的地址改变为真正的数据块,其内容为B;此后,就可以将数据块B’写入到原数据块B中。

揭秘VxFS中的检查点和快照技术_第3张图片

图-3 写拷贝

因为写拷贝在更新前,只是记录地址,所以它能够保证系统的性能;同时,只有在要更新时,才分配新的存储空间来保存数据,从而达到了节约存储空间的目的。正是因为它是一种空间和性能都兼顾的解决方案,才被广泛地接受和采用。

三、特性对比

检查点和快照是很相近的技术,都是写拷贝技术的延伸;通过上面的分析,也会发现它们也有细微的区别,表-1就是它们特性的对比。

检查点

快照

在同一存储设备上

需要单独的存储设备

可以是只读或者读写属性

只读属性

持续存在

临时存在

长期存在,而且可以被装载

卸载后不再存在

跟踪文件系统中每个文件的块变化

跟踪文件级的块变化

表-1 检查点和快照的对比

四、业界同类技术

由于快照技术在数据保护上的优势,该技术被在不同的平台上不断繁衍和发展。Microsoft Windows提供的VSS (Volume Shadow copy Service),就提供了快照解决方案的框架;如图-4所示,当Requestor(通常是备份软件)请求做给予时间点的快照时,VSS就会和Writers(通常为数据库应用,或者电子邮件之类的应用)协调,将这些应用阻塞,将缓冲区中的数据写入存储介质;然后和各种Provider通信(比如System Provider, Software Provider, Hardware Provide),生成快照;当然各个Provider在实现的细节上可能有细微的差别,但是在VSS整个框架内实现,其基本原理大都类似。

揭秘VxFS中的检查点和快照技术_第4张图片

图-4 Windows VSS技术

在Windows XP的一些SP版本,Windows 2k3和Vista里面,就加入了该VSS服务,用户可以选择“我的电脑 (右键)-->管理-->服务”里头,找到Volume Shadow Copy服务。

五、总结和展望

VxFS是在企业级存储中,被广泛接受的文件系统;它提供的快照和检查点技术,在实现实时数据备份过程中,扮演着至关重要的角色。随着IT的飞速发展,信息的海量增长,电子数据的重要性,日益深入人心,并且政府也制定了相关的法规准从来保护电子资料。可以相信,它的前景是光明的。

同时,随着对信息技术需求的多元化,在数据保护领域也出现了一些新技术,比如CDP(Continuous data protection,持续数据保护);顾名思义,它不仅仅纪录某个时间点的变化,而是纪录数据的持续变化,也就是说数据的整个变化过程都能够被找回来;其实,它就是在快照的思想上的进一步延伸,把作快照的粒度处理的更细。但是,它也引入了性能和存储空间的问题,其前景究竟如何,我们拭目以待!