Contents

1、概述... 

2、开创磁盘备份的新模式... 

3、重复数据删除... 

4、破解磁盘瓶颈点... 

5、全局数据消重文件系统DDFS

6CPU-Centric存储系统... 

7、数据无损体系结构... 

8、备份与归档一体化... 

9、高效的远程数据复制... 

 

 

1、概述

 

长期以来备份存储领域被磁带所统治,其主要原因有两个方面。第一,磁带相对于磁盘介质而言,具有很好的价格优势;第二,备份存储主要是顺序写操作,只有在数据恢复的时候,才需要从磁带上读取数据。这两个特征就决定了磁带在数据备份领域的地位,特别是数据归档领域至今还存在着一席之地。

10年磁盘容量发展迅速。还记得2000年初,我自己攒了人生中的第一台电脑,赛扬CPU30GB 的迈拓IDE硬盘。在那个年代,30GB硬盘是大容量硬盘,花了将近1250元人民币。时至今日,4TB的硬盘即将成为主流,容量翻了近140多倍。得益于巨磁阻技术的发展,磁盘容量在近几年一直高歌猛进;在未来充氦技术成熟之后,磁盘容量还会持续增长。磁盘容量的增长,单位存储价格的下跌,导致磁盘技术对数据备份领域产生了巨大的冲击。在这次革命的引领中,DataDomain算是一个非常成功的革命者。

2009DataDomainEMC收购,至此DataDomain变成了EMC旗下的一员猛将。DataDomain是一种目的端数据去重的设备,和Avamar之类的源端去重设备结合起来,将可以打造令人满意的磁盘备份系统。

 

wKioL1Nnr9nCVUrsAABspUMGWbI364.jpg

 

在此,本文对DataDomain的存储设备进行分析,一窥其中的奥秘。

2、开创磁盘备份的新模式

 

wKiom1NnsB7gsyvvAAE-72lhENs660.jpg

 

从上图中我们可以知道,在整个IT结构中,Primary Storage的数据通过备份服务器进行数据备份,或者通过Archive服务器进行数据归档操作。备份和归档的存储介质通常是磁带。DataDomain设备的出现正好是替代了传统磁带的位置,从而使得Primary Storage的数据直接或者通过备份服务软件备份到DataDomain设备。DataDomain设备无论在性能还是在数据去重效率方面都是首屈一指的,可以说DataDomain开创了磁盘备份的新模式。

总的来说,DataDomain的成功源自于将磁盘存储技术成功的应用于备份领域,并且成功的替换了体积庞大、性能低下的传统带库技术,从而使得磁盘备份成为数据备份领域的主力军。

 

wKioL1NnsAuAUKilAACX_pJpniI302.jpg

 

大家知道,传统的带库体积庞大,需要采用机械手装置加载磁带。由于磁带本身不具备随机读写能力,因此,在顺序写的情况下表现尚可,但是,一旦需要随机读取时,就显得非常力不从心。另外,磁带存储管理非常麻烦,占用大量的空间。和磁带技术相比,磁盘存储体积小,随机读写能力强,因此,在不考虑成本的情况下,磁盘是磁带的完美替代者。

当磁盘替代磁带之后,备份、归档都可以在磁盘上完成。在数据的整个生命周期内,都可以做到数据的磁盘存储。这种好处是显而易见的,可以大大降低系统体积,简化系统管理。

 

wKioL1NnsCTjaWAvAACbqsG0OiI312.jpg

 

因此,当引入DataDomain设备之后,所有应用的数据都可以通过备份服务器备份至DataDomain的设备,多台DataDomain设备之间并且可以进行远程数据复制,从而可以提高数据的容灾水平。当数据需要进行长期保存时,DataDomain设备提供了Archive的功能,可以将备份数据封存起来,进行长期存放。

DataDomain在引入磁盘备份的时候,引入了一个非常重要的核心技术:重复数据删除。其实,在那个年代,Datadomain不是唯一一家针对备份领域从事磁盘备份的厂商,也不是唯一一家从事重复数据删除的备份厂商。但是,DataDomain如今是单机性能最佳,市场占有率最高的基于重复数据删除的磁盘备份厂商。这其中的原因是为什么呢?在对比其他存储厂商的设计之后,我们可以发现DataDomain的设计避免了当时客观条件的限制,并且将其性能最大化,从而超越了其他厂商,从而独霸天下。

3、重复数据删除

 

提到DataDomain就不能不提重复数据删除技术。在2006年左右一直有很多人在争议是否可以在磁盘级别很好的实现在线重复数据删除?实际上,在Primary Storage中,现在还不能很好的做到在磁盘系统中实现在线重复数据删除。其原因很简单,就是在线重复数据删除需要很强的CPU能力,以及很强的随机IO读写能力,否则性能会很差。

在深入探索重复数据删除时,首先可以看一下块级重复数据删除的原理。总体还是比较简单的。首先将输入数据进行自动分段,自动分段的目的在于实现变长数据块,提高重复数据删除效率。得到分段块之后,对这个数据块计算一个HASH值,具体算法可以采用SHA1。这个HASH值可以被称之为这个数据块的Fingerprint(指纹)。当得到这个数据块的指纹信息之后,需要在当前系统内查找是否存在与其匹配的指纹信息,如果能够找到匹配的指纹,说明当前系统中已经存储了输入的数据块,那么可以直接丢弃该输入数据块,不进行存储;反之,需要需要将输入数据块写入存储系统中,进行持久化保存。从这个过程来看,重复数据删除主要分成两大步骤:第一步是计算指纹信息;第二步是查找指纹信息。

仔细分析,上述重复数据删除其实还存在一定的漏洞。如果不同的数据存在相同的指纹信息怎么办?虽然这是小概率事件,但是并不意味着不发生,从技术的角度出发,这是完全可能的。为了解决这个小概率事件问题,行业内通常有两种解决方案,一种是再为数据块计算一种HASH值或者校验码,当指纹信息匹配之后,还需要校验信息完全匹配。从概率的角度来看,不同的数据块具有相同的指纹信息和校验信息是不可能的,通过这种方式可以有效避免HASH碰撞。另外一种方法是直接将数据读出来进行比对,这种方法会产生很多的额外的IO请求,对系统的性能产生极大的影响。

DataDomain作为一种备份系统,具有很好的IO Pattern。基本上都是顺序IO操作,并且在备份过程中基本上都是写操作,即使有读操作,其和写操作也具有很强的IO局部性。对于这样的IO Pattern,如果系统设计合理,那么是可以做到在线重复数据删除的。