首页 » 技术文章 » 云灾备关键技术

云灾备关键技术

作者:  时间:2010-12-17 14:36  来源:EDN

  随着社会信息化程度的提高和企事业单位对信息系统依赖性的增强,信息系统的容灾备份成为灾难发生时确保业务连续性和数据可用性的重要手段。

  云灾作为灾备领域的一个新兴概念,它的出现为企业提供了一个行之有效的解决方案。云灾备是指将灾备看做一种服务,由客户付费使用灾备服务提供商提供的灾备服务的模式。采用这种模式,客户可以利用服务提供商的优势技术资源、丰富的灾备项目经验和成熟的运维管理流程,快速实现客户的灾备目标,降低客户的运维成本和工作强度,降低灾备系统的总体拥有成本。

  云灾备模式之所以被提出并逐渐得到应用,相关技术的发展起到了至关重要的作用。

  1 重复数据删除技术

  重复数据删除技术是指将存储系统中存在的大量内容相同的数据删除,只保留其中一份,从而缩减存储空间的技术。在云灾备中,该技术既能大幅减少灾备中心存储的数据量,降低灾备中心的建设和运维成本,又能大幅减少数据备份和恢复过程中用户和灾备提供商间的数据传输量,提高备份和恢复的性能,是一项十分重要的技术。

  按照检查重复数据的粒度不同,重复数据删除技术可以分为对象/文件级和块级的重复数据删除。文件级删重技术是在文件级别的粒度下查找重复数据的方法。该技术计算速度快,但粒度太粗,即使不同文件内部存在很多相同的数据,也不能被检测并实现冗余消除。块级别的重复数据删除根据切分数据块方法的不同,又可分为固定分块和可变分块的删重技术。固定分块技术是使用固定大小的分块策略在存储系统中识别相同数据的一种方法,可以提供很高的处理速度,但是对编辑和修改的序列很敏感,处理效率低。变长分块是一种基于内容技术的分块方法。与固定分块不同的是它的块断点不以一个预设值来确定,而是以其文件内容进行计算,当满足一定的标准之后方认为其为块断点。其优点是对于插入问题和删除问题处理高效。无论是插入还是删除一小部分字节,只会影响一到两个块,其余的块保持不变。其主要缺点是计算开销较大和检测重复块时指纹值索引查找的开销较大。由于其对数据变化的低敏感性,变长分块逐渐成为重复数据删除技术的主流。

  随着灾备中心的规模不断增大,存储的数据量和访问量不断增加,单一节点上的重复数据删除方法已不能满足性能和容量的需求。除上述基本重复数据删除技术外,一些优化和改进技术对云灾备是至关重要的,包括高性能、可扩展的、分布式的重复数据删除技术,以及为提高灾备中心数据可靠性的高可靠重复数据删除技术。

  1.1 高性能可扩展重复数据删除技术

  在提高重复数据删除性能方面,可以使用减轻磁盘瓶颈技术。在重复数据删除系统中,为了节约成本,一些系统仅具有少量的内存,因而不能支持所有的数据索引一次性地进入内存进行检测,从而导致了大量的磁盘访问,这成为性能下降的最主要因素。针对这种情况,Data Domain重复数据删除文件系统中采用了减轻磁盘瓶颈的3种技术,它们分别是:

  (1)摘要向量,一种内存中紧凑的数据结构,用于辨别新的块。

  (2)基于流的块排列,一种用于提高磁盘上的被连续访问块的访问局部性的数据排列方法。

  (3)局部性保持,保持了重复块的指纹值的局部性从而达到缓存的高命中率。

  应用这3种技术,可实现高吞吐率、低开销的相同块删除存储系统。

  在提高重复数据删除可扩展性方面,Extreme Binning技术利用文件的相似性,可以将每个文件的磁盘访问次数降至一次,达到较好的吞吐率。在具有多个节点的系统中,每个文件通过一个路由算法分配到唯一的一个节点。每个节点是与其他节点相独立的自治节点,从而允许查找相似文件的操作最大地并行化。当数据量增大时,吞吐率也会随着节点数目的增多而增大。

  1.2 高可靠重复数据删除技术

  在高可靠性重复数据删除方面,R-ADMAD高可靠性提供机制将变长数据块打包成定长对象,利用纠错码对将象编码后分存到一个冗余组中的多个存储节点上。冗余组是根据系统的当前状态和失效域动态创建的。R-ADMAD还提出了一个分布式和动态的恢复过程。

  2 云存储安全技术

  在云灾备应用环境中,用户的数据存放在由云服务提供商管理和维护的服务器上,不再受用户的直接控制,增加了数据的潜在风险。各种因素,如云服务提供商的系统故障、服务器被攻击、云服务提供商内部人员的泄密或蓄意破坏等,都有可能造成用户数据的泄密、损坏或丢失。

  可以说,数据安全已成为限制云灾备在企业中进一步推广和应用的关键因素,而云存储安全技术则试图解决云灾备服务模式带来的种种数据安全问题。云灾备环境由3个参与方组成:用户(云灾备服务的使用者)、云服务提供商、可信第三方。

   2.1 完整性检查和持有性证明技术

  完整性检查是指检查从CSP读回的数据和之前写入的数据是否一致,即数据是否被篡改。基本方法是写文件时使用某种单向哈希函数对数据计算得到一个哈希值,存放在本地可靠存储中。读文件时进行同样计算得到哈希值并和本地的哈希值比较。为了降低完整性检查的复杂度,可以采用Merkle哈希树的方法,将文件分成若干数据块,最底层的树叶节点对应数据块的哈希值,次底层节点是每两个哈希值的哈希值,由此逐层递归构造出一个二叉树,根节点对应最终的哈希值。此时检查一个数据块完整性的复杂度由O(n)降为O(log n),其中n为数据块个数。

  上述方法可以验证CSP返回的数据的完整性。然而在很多情况下用户需要知道其数据是否始终由CSP完好保存并可获取。当用户在云中存储大量数据时,如果用户每次将所有数据下载到本地,用上述完整性验证方法检查数据是否完好,这种做法显然是不可行的。为此研究者提出了持有性证明,即CSP可以通过某种方法向用户证明其仍然完好的持有用户数据,并且数据是可获取的,而不需要提供完整数据。

  这些方法可以分为两类:基于RSA公钥密码算法的和基于对称密码算法的。基于RSA的方法利用了基于RSA的哈希函数的同态性。令N=pq为一RSA模数,其中pq为大质数,F为代表文件的大整数,用户保存k=F mod Φ(N ),其中Φ(N )=(p-1)(q-1)。在一次挑战-应答过程中,用户发送ZN中的随机元素gCSP返回s=g F mod N,用户验证是否g F mod N="s"。这类方法的最大优点是允许用户发起无限次的检查,缺点是由于需要进行有限域上以文件数据块为指数的指数运算,计算开销较大,尤其在文件预处理阶段。

  基于对称密码算法的持有性证明的基本思想是首先将文件加密并用纠错码编码,然后在编码后的文件的一些随机位置插入和文件数据不可区分的岗哨。用户在挑战时要求CSP返回在这些随机位置的岗哨,可以证明只要CSP以大于一定值的概率做出有效应答,则文件是可恢复的。该类方法的优点是计算开销小,但只适用于加密的文件,并且只允许用户进行有限次的检查。

  除上述基本方法外,为了解决持有性证明在实际应用中面临各种问题,还提出了多种扩展和增强的持有性证明方法。这些扩展和增强对提供安全可靠的云灾备服务是至关重要的,包括:对公开审计的支持,由可信的第三方代替用户行使验证数据完好的职能,减轻用户的负担,同时保持数据对第三方的机密性;对动态数据的支持,从而允许用户对数据(文件)进行增、删、改等操作;对分布式存储和数据冗余编码的支持,当用户通过持有性证明发现某些节点的数据损坏时,能及时通过存储在其他节点的冗余数据进行恢复。

相关推荐

云灾备关键技术

在线研讨会
焦点