EMC产品分析介绍(三):备份领域的引领者DataDomain (1)

Contents

1、概述...

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

3、重复数据删除...

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

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

6、CPU-Centric存储系统...

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

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

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

1、概述

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

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

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

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

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

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

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

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

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

因此,当引入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,如果系统设计合理,那么是可以做到在线重复数据删除的。

EMC产品分析介绍(三):备份领域的引领者DataDomain (1),布布扣,bubuko.com

时间: 2024-10-08 23:04:30

EMC产品分析介绍(三):备份领域的引领者DataDomain (1)的相关文章

EMC产品分析介绍(三):备份领域的引领者DataDomain (2)

Contents 1.概述... 2.开创磁盘备份的新模式... 3.重复数据删除... 4.破解磁盘瓶颈点... 5.全局数据消重文件系统DDFS. 6.CPU-Centric存储系统... 7.数据无损体系结构... 8.备份与归档一体化... 9.高效的远程数据复制... 4.破解磁盘瓶颈点 基于磁盘做重复数据删除是有挑战的,最大的挑战在于如何快速的进行重复数据查找.从原理上来讲,重复数据删除很简单,通常通过SHA1算法(一种HASH算法)得出每个数据块的fingerprint(HASH值

国内外三个领域巨头告诉你Redis怎么用

随着数据体积的激增,MySQL+memcache已经满足不了大型互联网类应用的需求,许多机构也纷纷选择Redis作为其架构上的补充.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践. 新浪微博:史上最大的Redis集群 Tape is Dead,Disk is Tape,Flash is Disk,RAM Locality is King. — Jim Gray Redis不是比较成熟的memcache或者Mysql的替代品,是

Lucene.Net 2.3.1开发介绍 —— 三、索引(五)

原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(五) 话接上篇,继续来说权重对排序的影响.从上面的4个测试,只能说是有个直观的理解了.“哦,是!调整权重是能影响排序了,但是好像没办法来分析到底怎么调啊!”.似乎是这样,现在需要把问题放大,加大索引的内容.到博客园新闻区,用zzk找了4篇内容包含“测试”的文章.代码变成 2.1.5 代码2.1.5  1using System;  2using System.Collections.Generic;  3using Lucene.N

linux程序分析工具介绍(三)——sar

本文要介绍的sar,是linux下用来分析系统本身运行情况的非常有用的工具.我们知道,程序在操作系统上要运行,要关注的点不外乎内存,CPU和IO(包括磁盘IO和网络IO).我们的应用程序在操作系统中运行前,我们需要了解系统当前的内存,cpu和IO的使用状况,还需要明白我们的应用程序运行时自身所需要的内存,cpu和IO资源的情况.只有操作系统剩余的内存,cpu和IO资源能够满足应用程序所需要的,才能保证应用程序在操作系统中正常的运行.sar就是用来帮助我们了解操作系统当前内存,cpu和IO等资源的

Lucene.Net 2.3.1开发介绍 —— 三、索引(四)

原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(四) 4.索引对搜索排序的影响 搜索的时候,同一个搜索关键字和同一份索引,决定了一个结果,不但决定了结果的集合,也确定了结果的顺序.那个这个结果是怎么得出来的?这个顺序又是怎么排的呢?这两个问题不是本节讨论的重点,但是这两个问题却关系到本节要讨论的,索引对结果的影响问题.在不使用字段排序的情况下,Lucene.Net默认是按文档的得分来排序的,这个公式看着很复杂,感觉像是大学时高数书上的那些个公式,其实说清楚了也简单. 关于文档排序

Lucene.Net 2.3.1开发介绍 —— 三、索引(七)

原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(七) 5.IndexWriter 索引这部分最后讲的是IndexWriter.如果说前面提到的都是数据的结构,那么IndexWriter就是业务的封装.无论述Document,Field还是看不见的Segment,Term都是对数据存储逻辑的抽象,IndexWriter包装了操作的过程. 当然,这里不会讨论IndexWriter的每个细节,这里主要介绍IndexWriter的常用法和实际使用中遇到的部署问题. 5.1 IndexWr

Lucene.Net 2.3.1开发介绍 —— 三、索引(六)

原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(六) 2.2 Field的Boost 如果说Document的Boost是一条线,那么Field的Boost则是一个点.怎么理解这个点呢?设置Document的Boost会影响所有字段.在搜索的过程中,一般至少会搜索两个Field,比如同时搜索标题和内容.而Document的Boost将同时影响标题和内容的搜索得分,但是设置Field的Boost则不会有那么大的影响,Field的Boost只会影响一个点.那这个点有什么用呢? 现在来

领域驱动设计系列:三种领域逻辑组织模式的本质

企业应用架构模式中明确提出了三种领域逻辑组织模式:事务脚本.领域模型和表模块.不少人看的云里雾里的,不少人说的似懂非懂的,主要原因是没有从项目的级别的分析和设计经验,只有单个项目模块的开发经验的人很难理解到位. 1.事务脚本: 事务脚本的理解其实最简单,但是很多人说不清,觉得比领域模型还难理解,也对应不到代码.但这只是幻觉,怎么可能最简单的领域逻辑模式都不懂,反而对最复杂的领域模型模式懂了呢. 我们看企业应用架构模式中强调的一句话"使用过程来组织领域逻辑",其实事务脚本就是从过程的角度

红黑树详细介绍三

根据之前红黑树的原理和<算法导论>上面的伪代码,我用代码将增加和调整的代码实现了一下,如有不对请大家指正.代码可以结合前两篇文章看. 红黑树的详细介绍一 红黑树详细介绍二 /* * ===================================================================================== * * Filename: rbtree->h * * Description: red black tree * * Version: