读数据保护:工作负载的可恢复性08去重技术(下)
1. 目标去重技术
1.1. 目标去重(也叫目标端的去重)系统是在接到备份之后删除其中重复数据的去重系统
1.2. 通常在某个设备里面运行,该设备是所有备份的目标设备,因此,这样的去重系统叫作目标去重系统
-
1.2.1. 一般通过NFS或SMB与备份软件相连,然而也可以作为VTL(Virtual Tape Library,虚拟磁带柜)来连接
-
1.2.2. 备份服务器还可以通过某种专门的协议跟目标去重设备通信,这样更安全、更高效
1.3. 目标去重系统在最近20年变得相当流行
-
1.3.1. 只要求负责备份的人稍作配置。你只需要换掉磁带柜,接上新的目标去重系统并将其设为备份目标
-
1.3.2. 并非所有的目标去重系统都由一台(不了解去重工作的)备份服务器与一台负责去重的设备构成
-
1.3.3. 运行在备份服务器或介质服务器里的某些备份软件,也可以执行目标端的去重工作
1.4. 目标去重系统通常还能够把备份复制到同品牌的另一个目标去重系统上,这样我们无须接触磁带就能拥有现场备份与离场备份
-
1.4.1. 愿意采用一种混合的方案,也就是用目标去重系统做现场备份,用磁带做离场备份
-
1.4.2. 先使用目标去重系统做备份,然后用备份系统把这些备份复制到磁带柜,以创建离场的副本
-
1.4.3. 数据流以足够快的速度发给磁带机,那么它们就能够运作得相当高效
-
1.4.3.1. 目标去重系统对于磁带系统来说相当于一个巨大的缓存库
-
1.4.3.2. 把目标去重系统里的备份复制到磁带上时,磁带机能够全速运行,因此效率会很高
-
1.5. 当场去重
-
1.5.1. 采用当场去重(inline deduplication,也叫在线去重/即时去重),那么去重系统会先利用CPU对内存中的数据去重,然后再将其写入磁盘
-
1.5.2. 如果去重设备做的是当场去重,那就不用把已经判定为重复的那些数据,再写入磁盘之中,因而能够节省一些I/O操作
-
1.5.3. 为了在接收备份数据的同时对其去重,你必须给去重设备安装强大的CPU,否则就会导致该设备无法将它所接收到的备份数据及时去重,从而拖慢工作进度
-
1.5.4. 如果你想让去重过程尽量与备份过程一起结束(而不愿意先写入备份,然后再去重),想让去重系统能够把刚写入磁盘的备份尽快复制到其他地方,那么就应该考虑当场去重
1.6. 后置去重
-
1.6.1. 采用后置去重(post-process deduplication,也叫后去重/后处理去重),那么去重系统会先把数据写入磁盘,然后再去重,这种去重方式又称为异步去重(asynchronous deduplication)
-
1.6.1.1. 如果用的是后置去重,那么在把备份写入磁盘之后,还必须执行其他一些操作才行
-
1.6.1.2. 如果去重设备做的是后置去重,那必须先把收到的数据写入暂存区(landing zone)
-
-
1.6.2. 去重方式在处理已写入磁盘的备份时依然能够接收外界传入的备份,但它并不会直接(或者说当场)给那些备份去重,而是要等它们也像前者一样写入磁盘之后,再做去重
-
1.6.3. 去重方式是异步的,而不是同步的
-
1.6.4. 让去重流程从其中读取备份,并去除其中的重复内容,然后将其作为已去重的备份,写入保存成品备份数据的那个区域
-
1.6.5. 暂存区的第二个用途:如果你需要把这个备份里的数据恢复或复制出来,那么速度会比采用当场去重技术所写入的那种备份要快,因为后者必须对去重之后的备份做reduplicate,也就是将其中已经去除的重复数据补回来,只有这样,才能从备份里恢复或复制数据,这个填补缺失数据的操作,又称为rehydrate
-
1.6.6. 如果你要随机读写数据,那么把最近制作的那个备份保存成原始格式尤其方便
-
1.6.7. 在读取备份时用的都是顺序访问模式,这是因为早年在读取磁带里面的数据时,只能按照先后顺序来读取
-
1.6.8. 即时恢复,为了使用该功能,你需要把备份挂载成读写模式
- 1.6.8.1. 采用当场去重技术的系统做不到这种即时恢复的效果,因为它们在恢复数据时的速度比较慢
-
1.6.9. 必须花费一定的成本来构建暂存区
- 1.6.9.1. 后置去重需要先把备份全都写到暂存区里,然后从暂存区中读出备份,并把其中的许多重复内容删掉,最后写入成品区,这一系列步骤必须执行大量的I/O操作才能完成,这个数量可能远超当场去重所要执行的I/O操作数
-
1.6.10. 如果你更关心的是如何尽快把备份制作出来,或者想要频繁地执行即时恢复,那么后置去重更加合适
1.7. 目标去重设备所具备的能力让它可以进入任何一个数据中心,因为无论其中用的是什么备份系统,这种技术几乎都能与之结合
-
1.7.1. 必须把自己收到的备份数据剖开,这意味着,它需要打开存放备份数据的这个容器
-
1.7.2. 要求我们必须把完全备份以及全文件式的增量备份通过网络发给它,这会无谓地占用很多带宽
2. 源端去重技术
2.1. 源端去重(source deduplication)又称来源端的去重或客户端去重,这种去重是在备份流程刚启动时就开始执行的
- 2.1.1. 去重必须由备份软件自己执行
2.2. 首先要求备份软件必须尽量降低它交给去重系统的数据量,这通常意味着备份系统应该采用那种从刚开始就一直做增量备份的办法,并且只在必要时才做普通的增量备份
2.3. 目标去重最大的优点在于它采用全新的方式去重,不需要大幅调整现有系统,而源端去重则需要对现有系统做较大的改动
-
2.3.1. 为了发挥源端去重的优势,你很有可能要把目前使用的备份软件与磁盘换掉,对于像备份系统这么重要的系统来说,这是一个相当大的变动
-
2.3.2. 目标去重所要做的变化通常很小,你只需要扔掉那个(你可能很厌烦的)磁带柜就行了(或者至少可以说,你不再把磁带柜当成首要的备份目标)
2.4. 源端去重是由备份软件本身完成的,它们能够直接操纵有待去重的文件、镜像、字节或二进制位
2.5. 源端去重只需要把接下来的这次增量备份所包含的文件与镜像切割成chunk,并去除其中的重复内容,而不像目标去重那样,必须把以前已经做好的备份打开,才能知道目前要做的这个备份里有哪些内容是跟原来重复的
2.6. 要求用户必须大幅调整现有的系统
2.7. 要求有待备份的系统必须执行其他一些操作,以配合这个去重的过程
- 2.7.1. 系统必须把增量备份的数据切割成chunk,然后计算每个chunk的哈希码,并根据这个哈希码在哈希表中查找
3. 混合去重
3.1. 混合去重(hybrid dedupe)并不是公认的术语
3.2. 让你在有待备份的站点那里给备份客户端安装一个特别的驱动程序,这个驱动程序会创建一个指向备份的虚拟设备
3.3. 驱动程序就能够先对备份客户端做源端去重,然后再把数据通过网络发给备份目标
3.4. 由于目标去重系统还要对这些数据做目标去重,因此称为混合去重
3.5. 备份软件必须支持这个特殊的设备,而且操作系统也必须能够安装这个特殊的驱动程序
3.6. 如果你已经有了目标去重系统,而且想给源端添加去重功能,那么可以考虑运用该技术
3.7. 架构要通过特殊的设备传输数据,而这些数据,本来应该是由备份客户端传输的,备份软件通常会针对这样的用法收取更多的费用,这会让成本变高
4. 选择合适的去重方式
4.1. 做选择之前,首先要核实备份软件的制作方能否在他们所制作的产品里支持源端去重或目标去重
4.2. 想拿备份挂载大量的虚拟机,那就应该考虑后置去重
4.3. BaaS(Backup-as-a-Service,备份即服务)式的产品
4.4. 要做全面测试
- 4.4.1. 除了数据保护领域,IT界还没有哪个领域的测试结果会根据产品的使用环境而发生如此大的变化