查看其它 1 个回答Jerry Miku的回答

Jerry MikuJerry Miku  其它 , The Global 500

对于备份网络负载的优化并不是一朝一夕的事,但一般情况下最简单的方式便是采用重复数据删除技术,大幅减少备份网络上的数据传输以及后端备份存储的压力。

不少企业在备份恢复系统建立之初,也采用了重复数据删除技术进行备份恢复,为什么重删效率不理想,网络压力依旧高呢?重删技术的实际性能表现主要由两大方面决定:首先是数据源的数据类型,其次是重删配置参数的调优。对于重复数据删除技术,本人在此前的交流活动中分享了非常完善的原理剖析,若有兴趣可进行拓展。

附:重复数据删除技术原理分析

近几年CPU、内存、硬盘、闪存等制造工艺的发展,重复数据删除(以下简称“重删”)技术突飞猛进。对于备份恢复系统而言,重删技术是一项核心技术,面对大数据的侵袭,重删技术不仅能够有效减少系统的数据传输负载,还能大幅提供备份存储的利用率。按照不同的分类标准,重删技术又有不同的定义:按照重删基准分类可以分为基于物理硬件设备的重删和基于纯软件的重删,基于物理硬件设备的重删一般依靠物理硬件的CPU、内存等资源进行计算、比对后进行重删,基于纯软件的重删一般单纯的依靠高效算法对数据进行去重处理;按照重删方式或目标可以分为源端在线重删和目标端线下重删。在线和线下主要强调数据进行重删过程发生的时间,数据备份时进行重删操作称为在线重删,数据备份完成后进行重删称为线下重删,一般情况下在线重删比线下重删对整体性能最友好。源端重删和目标端重删主要强调数据进行重删过程发生的地点,在数据源端进行重删称为源端消重,在备份存储上进行重删称为目标端消重。机械磁盘、磁带、光盘这类传统存储介质的性能虽然没有突破性进展,但CPU、内存的性能相对过去的境况却有了相当的进步,计算处理能力提升明显,在重删技术领域,目前业界较为主流的是基于CPU、内存强大性能直接快速运算来进行消重,数据在CPU和内存间的交互多,很少在磁盘上流动,因此重删效率和重删性能非常客观。其次是各大厂商具有重删技术的虚拟磁带库产品。具有重删技术的虚拟磁带库在数据落到磁盘上开始消重,其性能主要取决于磁盘存储整体性能与节点的计算能力。最后则是各大厂商的软件消重引擎,通过安装客户端软件或插件来实现数据消重,经过长久的发展,纯软件的消重也获得不错的性能表现。

  1. 重复数据删除技术简介

    随着大数据的普及,数据的潜在价值越来越受到决策者的关注,在接下来的若干年里数据中心存储的数据量级将会出现质地飞跃。对于备份容灾系统而言,面对的大数据保护的压力也大幅提升,在当前信息化发展境况下,除了改良物理设备(如磁盘、磁带、光盘、控制器等)的综合性能,剩下有效措施就是想方设法提高对数据的处理能力。因此,在保护的数据量级逐渐提升的情况,重复数据删除技术将扮演越来越重要的角色。
    此前我们简单介绍了重复数据删除技术,接下来深入了解重复数据删除技术的机制。重复数据删除技术的工作原理和杀毒技术的工作原理类似:杀毒软件主要通过读取文件、计算特征码、对比特征码、智能判断这四大步骤来判断文件是病毒源还是正常文件, 重复数据删除技术也采用了类似的过程来实现数据块重删功能。从这四个处理过程来看,重复数据删除技术的性能主要取决于读取文件、计算特征码、对比特征码这三个步骤的速度。在磁盘存储上频繁读写文件数据再计算特征值的速度,明显没有将文件数据读到内存中再计算特征值的速度快,尤其是面对持续大数据量冲击两种方式的差距更加一目了然。因此重删过程尽量保持在CPU和内存这类高速设备中、减少数据落盘能够显著提升重删性能,这也是此类产品系列在重复数据删除领域独占鳌头的主要原因。

  2. 重复数据删除技术原理解析

    重复数据删除技术是一门相当复杂的技术,尤其是重删过程中的切片算法,切片算法的优劣极大程度的决定了重复数据删除技术实现的整体性能。在重复数据删除产品领域,目前较为优异的切片处理为基于CPU和内存的4-12kb可变长动态切片处理技术(精度小、切片长度可变、动态处理)。接下来通过一款该产品的工作原理图来聊聊基于CPU和内存的重复数据删除产品是如何实现数据重删功能。

此产品支持全局重复数据删除技术,即可以跨越多个Controller进行数据重删(入门级产品仅配置一个Controller,中高端产品才有多个Controller配置)。重复数据删除过程主要覆盖两个部分:客户端的重复数据删除区和产品端全局重删系统。其中Chunking(第一次)、Routing、Chunking(第二次)以及部分Filting过程主要发生在客户端的重复数据删除区里,另一部分Filting及DataSave过程发生在全局重删系统。在整个消重过程中,除了DataSave部分将消重数据块落盘存储,其他部分均在CPU与内存之间完成交互,因此相对于其他重复数据删除产品在整体性能几乎没有瓶颈。此产品在执行重复数据删除过程中,由于是CPU与内存承担主要任务高而磁盘阵列的IO较低,如果此时向其他设备进行复制克隆任务,复制克隆任务整体效率将显著降低。

接下来我们逐步分析在全局重复数据删除过程中每一个步骤及其功能:

Initializtion
在执行重复数据删除任务前,客户端合与此产品控制器进行通讯交互,分布式块处理进程DSP(Deduplicated Segment Process)进入初始化,客户端会开辟一部分内存空间用于缓存,同时分配一小部分硬盘空间用于暂存Hash表,Controller将加载对应Hash表为重删过程做准备。在一切准备条件完成后,重复数据删除系统即接收数据流。

Chunking(第一次)
当数据流进入客户端的重复数据删除区, 分布式块处理进程DSP会根据数据流特征进行切片处理,数据流会被切片为平均长度为1 MB的数据块。首次Chunking是基于数据流CONTENT PATTERNS并不是基于BLOCK或FILE,在此之后大型数据流会被分解为数据片段,减轻重删压力。

Routing
经过Chunking后的数据片段,分布式块处理进程DSP再根据数据片段内数据结构进行分配映射,确保类似的数据块均被映射相同处理进程上并和对应的Controller联合进行重复数据删除处理。Routing之后,数据片段分门别类,相似的数据片段尽量保持在相同的进程及Controller上处理,大幅提高了处理效率。

Chunking(第二次)
分布式块处理进程DSP将映射过来的数据片段再次进行切片处理,所有的数据片段将基于4-12 kb粒度进行可变长动态切片。可变长动态分片技术是重复数据删除的核心,分片最小精度为4kb,最大精度是12kb,切片精度越小获得重复数据片段的几率越大,重复数据删除效率越高。经过Chunking- Routing- Chunking后的数据片段已经充分处理,相似度极高,下一步即将开始Filting。

Filting
在客户端上分布式块处理进程DSP开始处理经过两次Chunking的数据片段,为所有数据片段计算指纹ID(或块ID)。每一片指纹ID通过网络传输至Controller处理进程上,进程开始将此指纹ID与产品终端上已存储的指纹ID集进行对比,如果指纹ID集内已存在,则原指纹ID及其所对应的数据片段将被标记、指针处理后抛弃;若指纹ID为新,则原指纹ID将在产品终端上存储的指纹ID集更新,其所对应的数据片段就通过LZ、GZ、Gzfast等压缩技术准备存储,所有相关的元数据经过处理准备存储。

DataSave
全局重删系统将新的数据片段(经过压缩后)及其相关指纹ID、元数据进行存储,同步更新所有日志等。

  1. 重复数据删除的期望收益

相比于基于纯软件的重复数据删除技术或目标端线下重删技术, 分布式块处理进程DSP带来了诸多收益:
1, 更高效的CPU和内存利用率
在CPU和内存间进行交互提高了重复数据删除整体效率,减少了其他软硬件因素的制约。
2, 大幅提高网络带宽利用率,减少网络资源消耗
相对于其他重复数据删除技术实现,客户端与产品之间网络仅传输指纹ID、非重复数据片段等,网络占用低,不会形成大流量网络冲击影响业务性能。
3, 任务重启后耗时短
数据保护任务再次重启时,未变更的数据片段仅进行计算对比后就被抛弃,网络间不进行传输,耗时短,若重复命中率高,速度会更进一步提高;已变更的数据片段经过重删过程后即被压缩存储。重启任务时整体效率提升显著。
数据保护任务失败时,重启该任务后已经成功处理的数据仅在DSP内进行短时间的计算对比后抛弃,数据不会传输到产品内部。不仅缩短了重启任务耗时,还减少了网络负载提高了任务期间整体吞吐效率。
4, 更平衡的工作负载
相对于其他重复数据删除产品的实现,Controller和重复数据删除系统将任务的负载压力更科学的平衡在客户端与重复数据删除系统之间,提高了多个物理设备的整体利用率。

IT其它 · 2019-07-17
浏览1524

回答者

Jerry Miku
其它The Global 500
擅长领域: 存储备份灾备

Jerry Miku 最近回答过的问题

回答状态

  • 发布时间:2019-07-17
  • 关注会员:3 人
  • 回答浏览:1524
  • X社区推广