RAID 独立磁盘冗余阵列 - redundant array of independent disks
raid:
raid全称是独立磁盘冗余阵列(redundant array of independent disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高。
raid分为几个不同的等级,各个不同的等级均在数据可靠性及读写性能做了不同的权衡。实际工作中根据自己的业务需求选择不同的raid方案。
raid 的实现方式:
- 外接式磁盘阵列:通过扩展卡提供适配能力;硬raid通常支持热交换技术,在系统运行下更换故障磁盘;
- 内接式raid:主板集成raid控制器安装os前,在bios中配置;
- 软件raid: 通过os来实现;软raid配置管理和数据恢复都比较简单,但是raid所有的任务完全由cpu完成。如计算校验值,所以效率比较低下,这种方式需要消耗大量的运算资源;对于部分操作系统来说,软件raid的配置信息保存在操作系统中,而不是磁盘上。这样系统崩溃的时候,raid信息就可能丢失。
raid的种类:
raid0:raid0称为条带化存储,将数据分段存储在各个磁盘中,读写均可以并行处理,因此读写速率为单个磁盘的n倍,没有冗余功能,任何一个磁盘的损坏就会导致的数据不可用。
raid1:radi1是镜像存储,没有数据校验,数据被同等的写入到2个或者多个磁盘中,写入速度相对慢, 但是读取速度比较快。
raid4:radi4在raid1的基础上,n个盘用于数据存储,另外加入了1个磁盘作为校验盘。一共n+1个盘,任何一个盘坏掉也不影响数据的访问。
raid5:raid5在raid4的基础上,由原来的一个盘来存储校验数据,改为每个盘都有数据和校验信息的。
带有分散校验的数据条带;
raid01:先组成raid0,然后组成raid1.
raid10:先组成raid1,然后组成raid0
raid2:raid2 称为纠错海明码磁盘阵列,其设计思想是利用海明码实现数据校验冗余。海明码是一种在原始数据中加入若干校验码来进行错误检测和纠正的编码技术,其中第 2n 位( 1, 2, 4, 8, … )是校验码,其他位置是数据码。因此在 raid2 中,数据按位存储,每块磁盘存储一位数据编码,磁盘数量取决于所设定的数据存储宽度,可由用户设定。图 4 所示的为数据宽度为 4 的 raid2 ,它需要 4 块数据磁盘和 3 块校验磁盘。如果是 64 位数据宽度,则需要 64 块 数据磁盘和 7 块校验磁盘。可见, raid2 的数据宽度越大,存储空间利用率越高,但同时需要的磁盘数量也越多。海明码自身具备纠错能力,因此 raid2 可以在数据发生错误的情况下对纠正错误,保证数据的安全性。它的数据传输性能相当高,设计复杂性要低于后面介绍的 raid3 、 raid4 和 raid5 。但是,海明码的数据冗余开销太大,而且 raid2 的数据输出性能受阵列中最慢磁盘驱动器的限制。再者,海明码是按位运算, raid2 数据重建非常耗时。由于这些显著的缺陷,再加上大部分磁盘驱动器本身都具备了纠错功能,因此 raid2 在实际中很少应用,没有形成商业产品,目前主流存储磁盘阵列均不提供 raid2 支持。
带有专用位校验的数据条带;
raid4:raid4 与 raid3 的原理大致相同,区别在于条带化的方式不同。 raid4 (图 6 )按照 块的方式来组织数据,写操作只涉及当前数据盘和校验盘两个盘,多个 i/o 请求可以同时得到处理,提高了系统性能。 raid4 按块存储可以保证单块的完整性,可以避免受到其他磁盘上同条带产生的不利影响。
raid4 在不同磁盘上的同级数据块同样使用 xor 校验,结果存储在校验盘中。写入数据时, raid4 按这种方式把各磁盘上的同级数据的校验值写入校验 盘,读取时进行即时校验。因此,当某块磁盘的数据块损坏, raid4 可以通过校验值以及其他磁盘上的同级数据块进行数据重建。
raid4 提供了 非常好的读性能,但单一的校验盘往往成为系统性能的瓶颈。对于写操作, raid4 只能一个磁盘一个磁盘地写,并且还要写入校验数据,因此写性能比较差。而且随着成员磁盘数量的增加,校验盘的系统瓶颈将更加突出。正是如上这些限制和不足, raid4 在实际应用中很少见,主流存储产品也很少使用 raid4 保护。
带有专用块级校验的数据条带;
raid6:前面所述的各个 raid 等级都只能保护因单个磁盘失效而造成的数据丢失。如果两个磁盘同时发生故障,数据将无法恢复。 raid6 (如图 8 )引入双重校验的概念,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。 raid6 等级是在 raid5 的基础上为了进一步增强数据保护而设计的一种 raid 方式,它可以看作是一种扩展的 raid5 等级。
raid6 不仅要支持数据的恢复,还要支持校验数据的恢复,因此实现代价很高,控制器的设计也比其他等级更复杂、更昂贵。 raid6 思想最常见的实现方式是采用两个独立的校验算法,假设称为 p 和 q ,校验数据可以分别存储在两个不同的校验盘上,或者分散存储在所有成员磁盘中。当两个磁盘同时失效时,即可通过求解两元方程来重建两个磁盘上的数据。
raid6 具有快速的读取性能、更高的容错能力。但是,它的成本要高于 raid5 许多,写性能也较差,并有设计和实施非常复杂。因此, raid6 很少得到实际应用,主要用于对数据安全等级要求非常高的场合。它一般是替代 raid10 方案的经济性选择。
带有双重分散校验的数据条带
资源来源自网络,本文章只是简单进行了解,并进行备注。更多内容请参考如下链接;
(较为详细,推荐阅读)