随着云计算应用渗透到人们工作、生活的方方面面,基于云计算、大数据的应用业务已经大规模的落地实施,作为数据存储中心的海量存储系统有力的支撑了云计算业务的应用和快速发展,海量存储系统平台也就成为云计算建设过程中必须规划、并首先要落地实施的工作。
相比于传统的应用环境,云计算环境中的应用业务数量更多、对存储系统性能的要求也存在着多样性的差异,这也就使得面向云计算、大数据的海量存储系统必须能够提供差异化的IO存储服务、以及持续的在线运行和高效、可靠的容错机制。其中海量数据的冗余保护机制是面向云计算的海量存储系统必须拥有的一个重要特征。
传统数据冗余保护不适于云计算时代的海量数据存储需求
传统的存储阵列所采取的数据冗余技术主要包括RAID技术、副本、快照、镜像、数据同步等方式,这些技术分别具备独有的特点,适用于不同的应用场景。
副本,是最简单的数据冗余策略,即统一存储系统中存储同一份数据的多个相同拷贝,只要这些拷贝中的一个有效,就能访问该数据。数据的副本越多、数据的可用性越高、可靠性越高,存储空间的利用率也就越低。
快照,是关于特定数据集的一个拷贝,该拷贝包括相应数据在某个时间点的映像。根据实现方式分为全拷贝快照、差分快照、增量快照。全拷贝快照数据可用性好,但是存储空间利用效率低;差分快照和增量快照存在着“空窗期”。
镜像,存储系统在接受数据写入时执行的是写入两份操作,即同一份数据分别写入两个存储设备中。根据写入的策略不同,分为同步镜像、异步镜像。数据镜像能够提供较好的数据冗余、也给存储带来两倍的压力,而且存储系统只有50%的空间利用率。
数据同步,是在主存储系统和备份存储系统之间实行的数据拷贝操作,数据同步的写入操作存在较大的时间延迟,较大的限制了其部署环境。
RAID技术,是把多块独立的存储磁盘按不同的方式组合起来形成一个存储磁盘组,提供比单个硬盘更高的存储性能和数据冗余保护。根据组成磁盘组的方式差异,设定了RAID级别。RAID技术提高了存储空间资源的利用率,只能提供单点存储系统的数据保护,不能满足大容量、分布式存储系统的应用。
RAID技术是在1GB驱动器出现前发明的,随着磁盘存储密度的提高,企业级存储磁盘容量已经达到2TB、3TB、4TB ,并出现6TB磁盘。采用高存储密度构建的RAID磁盘组,出现磁盘故障需要修正TB级别的数据时重建过程需要的时间较长,常常需要一天或者更长的时间;特别是在生产系统中,重建时间更长。在长时间重建大容量存储内容时,组成RAID组的第二个磁盘、第三个磁盘出现故障的可能性会大大增加;在重建过程中,一个磁盘故障明显加大了其它磁盘的访问负载,使得其它磁盘故障出现的概率急剧增加,较大的影响了存储系统的可用性。
针对传统数据冗余保护技术在大容量磁盘存储系统中所表现出的不足,以分布式、大规模、大容量磁盘存储为特点的海量存储系统中出现了一种更加高效的数据冗余技术——纠删码。
云时代的数据冗余保护机制——纠删码
纠删码起源于通信传输领域,目前逐渐出现在大规模存储系统中,特别是分布式存储环境,用于实现数据的冗余保护。纠删码冗余保护技术解决了传统冗余保护技术不适于分布式生产存储系统的问题。
纠删码技术基本思想是将一份数据划分为k块原始的数据,基于k块原始数据冗余计算获得m块冗余数据。对于这k+m块数据,其中任意的m块元素出错时,存储系统均可以通过重构算法恢复出原来的k块数据,如下图所示。
基于纠删码的方法与传统的镜像、副本技术相比,具有冗余度低、磁盘利用率高等优点。针对云计算、大数据业务对海量存储系统的多样性、大规模存储容量需求,浪潮推出了面向云计算、大数据的高性能、统一存储系统AS13000,AS13000海量存储系统所采用纠删码技术能够较好的适应云计算数据的分布式存储应用环境。
AS13000存储系统支持N+M格式的纠删码,级别有:N+1、N+2、N+3和N+4,在这种N+M数据模型中,N代表原始数据块数量,M代表在不发生数据丢失的前提下海量存储系统所允许发生的同时故障的数据块数目。如,N+2允许海量存储中丢失两个数据块、或者同时丢失两个节点。如下图。