对象存储系统的数据保护方案
2015-04-10 TechTarget中国 编辑:Julian
对象存储系统被设计为长时间保存海量数据的一种经济有效的方案。然而,这却使得传统备份异常困难,有时甚至不可能。为了确保数据不会因为磁盘故障和损坏而丢失,厂商使用了复制或纠删码(或两种技术相结合)。
即使你不考虑使用对象存储,了解这些数据保护技术之间的差异也是非常重要的,因为越来越多的主存储阵列都开始使用它们。我们将探讨每种方法的利弊,使你能判定哪种方法最适合你的数据中心。
横向扩展基础
大多数对象存储系统,以及融合系统,依赖于横向扩展的存储架构。这些架构都围绕由一批服务器组成的集群,对外提供存储容量和性能。每次一个新的节点加入集群,集群的性能和总体容量都会增加。
这种系统要求实现跨多个存储节点的冗余,这样当一个节点发生故障时,数据仍然可以访问。典型的RAID级别如RAID5和RAID 6由于重建时间缓慢,特别不适用于这种多节点数据分布的配置。
复制的优缺点
复制在早期对象存储系统中是最普遍的数据保护方式,并且成为融合基础设施中常用的数据保护技术。
在这种保护方案中,每一个对象会被复制若干次,并分布到一定数目的节点之上,其中复制次数和它们是如何分布的(有多少节点会收到同一个副本)是通过手动或基于策略设置的。很多这种产品还能够控制接收副本的节点的位置。它们可以位于不同机架,不同的行,当然还可以是,不同的数据中心。
复制的优点是,它是一个相对轻量的实现过程,其中没有任何复杂的计算(与纠删编码相比)。此外,它创建的是完全可用的独立的副本,并不依赖于任何其他数据集。在融合或超融合架构里,复制有利于获得更好的虚拟机性能,因为所有数据可以放在本地。
复制最明显的缺点也是生成了完全的副本,每个冗余副本都会消耗更多的存储容量。对于小型环境,这可能是个小问题。对于存储PB级别信息量的大型环境,这可能是个非常现实的问题。例如,在比较常见的三副本策略下,5 PB的信息可能需要15 PB的总容量。
纠删码是什么
纠删编码是类似RAID5和RAID6的一种基于奇偶校验的数据保护方案,但纠删编码作用于细粒度的对象。在RAID 5和RAID6中,常见的最小分母是卷,而对于纠删编码,这个最小分母是单个对象。这意味着如果发生驱动器故障或节点故障,只需这个驱动器或这个节点上的对象被重新创建,而不需要重建整个卷。
与复制相似,纠删编码可以手动或通过策略设置来确保一定数量的节点故障不会引起数据丢失。许多系统可将纠删编码延伸到数据中心之间,使得数据可以在数据中心之间和节点之间被自动分布。
由于基于奇偶校验,纠删编码不会像复制那样,创建数据的多个冗余副本。这意味着纠删编码的额外容量“开销”仅仅是主数据集的一部分,而不是整数倍。举个例子,要实现3倍复制方法所能保障的故障节点数,纠删编码方法大约只需要25%的开销,而不是300%。
纠删编码的不足之处在于,与复制相比,它不是轻量级的实现。它往往需要更多的CPU和RAM资源来管理和计算奇偶校验。更重要的是,每次数据访问都要求数据进行重组(因为纠删码的重新计算和跨节点存储导致块增量的变化)。这个过程在通过存储网络后很可能会陷入瘫痪,与之相反,复制却可以被设计为只需很少甚至完全无需存储网络流量。对额外网络流量的需求在WAN或基于云的实现中尤为麻烦,因为WAN对每次访问都会产生延迟。
混合模式
为了能提供两全其美的解决方案,一些厂商创建了混合模式。第一种形式就是在数据中心内部使用复制的方法,这样可以使从存储端发出的数据访问都能达到类似局域网的性能。然后,纠删编码用于将数据分配到组织中的各个数据中心之上。尽管容量需求仍然偏高,但数据完整性水平一样很高。
另一种混合模式则仅仅使用了纠删编码,但纠删编码被数据中心作了划定。这种模式下,擦除编码在本地和通过WAN都有使用,所有数据的一个拷贝会保留在一个最需要它的数据中心里。然后数据再通过纠删编码分布到客户生态系统其它远程数据中心。虽然这种方法比普通纠删编码要消耗更多存储容量,但它仍然比其他混合模式更有效。
数据保护的最优方法
正如通常情况一样,答案是,“视具体情况而定。”很多人还是很喜欢复制的简单性。它非常适用于数据量少于25 TB的数据中心。但随着数据的增长,继续采用复制这种数据保护策略会越来越难以为继。
对于大型数据中心,从容量消耗的角度看,复制已经显得过于昂贵。如果数据中心有高带宽或者彼此间互联的距离较短,那么纠删编码可以提供出色的存储效率以及理想的数据分布。对于有时延问题的数据中心应该考虑混合模式的某一种;其中最有可能的是第二种模式,它能够为每天的数据访问提供几乎一样好的访问效率,并能消除网络延迟的问题。