专家博客:选择快照技术需要注意的因素

本文作者Howard Marks是Networks Are Our Lives公司的首席科学家。这家公司总部位于新泽西州霍博肯,从事顾问工作。1987年以来,他一直专注于系统的分析和写作。 

DOSTOR存储在线10月11日国际报道:在过去十年时间中,快照已经成为磁盘阵列、卷管理器、文件系统甚至PCI RAID(独立磁盘冗余阵列)控制器的标准配置功能。生产这些产品的厂商的调子都一样:"通过我们的技术,你可以在一秒钟时间内获得一个快照,同时这个快照只会承载变化的块,相比全副本能够大大节约磁盘空间。"虽然这种声明可能是真实的,但是在快照实施之间也有很大的差异

在你考虑快照技术的时候,你可以向你的厂商询问下面这几个问题:

1. 你使用的是什么技术?写入复制、写入重定向、黑魔法?

2. 如果一个卷有5个快照,我的性能会受到什么影响?如果有20个呢?

3. 我是否需要提前将一些空间设置为快照专用?

4. 第一个快照需要多少空间?

5. 你的快照技术的块粒度是多少?

最大的需要考虑的差异点就是底层技术。当一个应用程序使用最普通的快照技术,即写入复制,向磁盘写入数据的时候,快照提供商的产品将把正在被覆盖写入的块的内容复制到快照文件中的一个新地方。写入复制要求针对当前块内容的一个写入-到-读取执行3个I/O(输入/输出),写入新数据和将旧数据写入快照。至于采用写入重定向技术的产品,比如NetApp的任意位置写入文件布局(WAFL)和ZFS,它们是将新数据写入到磁盘上的自由空间,并更新文件系统或卷、元数据,使其包含当前数据集中的新块和快照中的旧块。

写入复制技术要求每个写入执行三个I/O,而写入重定向技术就像没有快照的系统一样仍然只需要执行一个I/O。这两种技术都要求更新元数据,但是它们对系统性能的影响并不显著,因为它们始终是得到高速缓存的。写入复制技术快照通常可以传送到一个不同的RAID集或磁盘层,而写入重定向快照通常需要和底层数据处在同一个存储层。

然后是VMware的日志文件快照。这些快照在一个日志文件中存储着块的变化部分,将原始数据冻结在虚拟机磁盘(VMDK)中。虽然这个技术能够很快创建快照,而且很有空间效率,但是它意味着所有的磁盘I/O必须检查每个快照以判断快照是否是磁盘块的最新版本。如果你保持快照的时候过长或在一个虚拟机中创建两个或三个以上的快照,那么VMware快照会拖慢系统的速度。

有些时候,一些阵列厂商看起来是想通过快照来向客户销售更多的容量来保护他们的数据。最明显的一个例子就是一家主要厂商的"统一"存储系统–我的一个客户几年前曾经想购买过。在这个系统上,iSCSI(互联网小型计算机系统接口)LUN(逻辑单元号)的第一个快照实际上是LUN数据的副本。因此存储1TB的数据和合理数量的快照可能需要2.5到3TB的磁盘空间。一个更有效的系统只需要1.5TB。

按卷来分配或预留快照空间是另一件头疼的事情。和胖配置一样,快照空间预留会带来无效的磁盘空间利用,因为它是根据预期的峰值使用情况来分配磁盘空间,而不是根据实际需求。我希望快照提供商能够利用来自自由存储池的空间来存储快照,同时能够让我自己来设定每个快照在空间使用上的上限。

最后一个问题就是快照需要使用多大的块。许多存储人员听到块就想到512字节,但是我所知的存储系统没有一个使用这么小的块来分配空间或管理快照。NetApp的WAFL在4K的块段中管理数据,而还看到其他系统使用页面甚至章节大小的块(32K到512K字节)来管理数据。如果你在512KB章节的系统上用4K或8K页面来承载数据库,比起使用64K页面的情况,你的快照所需要的空间是64K情况下的好几倍。

如果你所使用的系统在远程复制上需要依赖快照,比如那些戴尔/EqualLogic和Overland的低端系统,那么分配大小会成为更大的问题。因为4K更新会产生256K复制,你会发现自己的站点和DR(灾难恢复)站点之间需要更大的WAN(广域网)连接。

如果你只是使用快照来存储数据的持续镜像,同时你有进行备份工作,你不需要太多地担心你的存储系统是如何创建和管理快照的。如果你想扩展生产服务器上的测试副本,你可以复制你的快照,或者将几个快照作为RTO(恢复点目标)恢复点保存好几天,原始快照和后来的快照之间会有很大的差别。