通过本篇您可以了解到:今天的RAID系统,较上世纪80年代设定各RAID级别时,已经发生了天翻地覆地改变。同时还会了解为什么诸如宽条带化、存储虚拟化技术和纠删编码会逐渐改变RAID的最初设定。
可能没有哪种技术像RAID那样和企业级存储行业紧密相关。这是因为将诸多物理磁盘驱动器组合成一个单独的虚拟驱动器可以大大改善性能和可靠性。在2011年的RAID系统已与传统的磁盘配置大相径庭,或称为RAID级别,该名称出现在1988年的一份具有奠基意义的文件里“一个独立磁盘冗余阵列,Redundant Arrays of Independent Disks ,简称RAID。”
过时的RAID概念
在当时的背景下,1988年文件中将RAID作为解决“常被挂起的I/O冲突”问题。那时表现不佳而且昂贵的硬盘驱动器成为了影响处理器和内存性能的瓶颈。RAID被设计用以将廉价的PC硬盘驱动器作为那时大型机中独立、大容量而昂贵的硬盘的替代品。直至今日,5种RAID级别中的2种依旧应用广泛:数据镜像RAID 1,以及将数据和奇偶校验码分布在不同磁盘上的RAID 5。不过,RAID 3和RAID 4也有具体的使用。其使用某一块磁盘存放校验码,而将数据分布存放在不同的磁盘上。
所有这5种最初的RAID级别都有一些共同点。他们都是将数据硬盘驱动器封装成一体,使用其全部容量;各驱动器组之间完全独立,也不灵活;并且所用的算法非常简单,占用相当少的计算资源。这些都是上世纪90年代时非常合理的设计决定,不过时至今日,处理器运算能力和存储容量成倍增长。处理器运算能力的增长方面我们可以看到:单独的与或运算曾经是一项挑战,而今天控制器可以实时地处理里德.索罗门码(一种纠错码)。硬盘驱动器的性能的发展远落后于其在容量方面的发展;在之前二十年中,每MB的吞吐量和每MB的IOPS都下降了超过一千倍。
这一核心问题是RAID数据保护方式的系统之后要去解决的:现代系统的要求已经和RAID最初设计时的初衷大相径庭。今天的企业级存储系统完全不是一个使用100块小型驱动器和简单控制器的大型机系统,其具备惊人的处理能力,可同时满足成百客户端对SAN或NAS网络的访问。死板的硬盘驱动器设定在现代数据中心中并无多大意义。
RAID的下一步发展:宽条带化、存储虚拟化技术和纠删编码
存储生产商们已经快速地修正改善RAID级别,来满足其客户的需要。宽条带化、存储虚拟化技术和纠删编码等技术正逐渐改变着RAID的最初设定。然而,很多这方面的工作没有被正式宣布,对客户保持透明,并保留原有的相关术语。
EMC、HP和其它的一些厂商完全摒弃了上世纪90年代中整个磁盘的理念,在分布在诸多驱动器之间的容量分割区里设定RAID 1和RAID5。本世纪诸如3PAR和Compellent等公司更进一步,其宽条带化技术在每个硬盘驱动器中都只存放很少的数据。且将数据分散在各不同的驱动器之间提高了平均性能,而且这样在发生故障时,降低了重构RAID所需的时间。虽然许多阵列仍依赖严格的磁盘组的定义,不过很多高端设备已经将数据更广泛地分布。
和服务器虚拟化类似,存储虚拟化打破了物理和逻辑系统的严格联接。虚拟化的阵列将磁盘和文件系统提供给主机端,而不考虑后端特定磁盘组。这使得数据可以在各RAID组、硬盘驱动器、闪存存储、甚至各阵列之间灵活地移动。在较低的层面,传统意义上的RAID依旧被使用着,不过存储虚拟化克服了其不灵活的布局以及性能上的限制。
正如我在八月份的一篇技巧中提到的,纠删编码远不像典型的RAID系统中使用的简单的奇偶校验那样,而是一种全新的数据保护函数。虽然经常被看作是“双奇偶校验”,绝大部分的RAID 6部署其实是采用了里德.索罗门码,较之于基本的奇偶校验更具优势。这样的系统可以不仅恢复丢失的数据,而且可以检测数据的不一致性。一些系统将数据分布在各驱动器之间、各存储节点之间、甚至各地之间以获取更高级别的可靠性。虽然这些计算方式在上世纪80年代就已经被广泛了解,但计算能力的不足使得其难以利用在存储阵列上。
后RAID时代
今天企业级存储系统更希望将这些现代化的数据保护技术应用在其传统RAID级别里,而且至少会使用到一定的虚拟化技术。数据存储购买者往往会面对诸多新技术概念而变得难以进行评估。因此有必要抛弃过时的RAID经验主义而关注现实工作中系统所需的性能和可管理性。以往要获取高性能的唯一途径就是将数据条带化(或称为RAID 0)和RAID 1结合,形成RAID 0+1或称RAID 10系统。而在现代系统中则可配置DRAM和闪存,无需用RAID 1牺牲50%的存储容量,宽条带化和自动分级即可以提供更高的性能。相类似的,数据库管理员也因为传统部署上性能的局限而不愿意采用RAID 5。但今天的系统已经可以克服这些问题,提供较基本的镜像更高的性能,以满足数据库管理员的要求。
各种新的技术使得RAID技术更为普及,但并不是说所有的RAID系统都是一样的。阵列中处理器的运算能力和缓存的容量可以在布置硬盘驱动器外提供更多性能。硬盘驱动器日益增大的容量可以使得小型阵列作为大型系统的不错的替代品,当然性能上会差一些。简而言之,没有人能假定一个系统的实际性能。
对存储采购者而言,最佳的策略是检测实际工作环境中存储设备的性能而非根据RAID级别进行推算。他们可以向供应商索取各种参考信息,并检验这样的一个系统是否能支撑其应用。RAID并非已经淘汰,不过企业级存储中的关键问题已经远远超过了RAID。