首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

超能课堂:磁盘阵列RAID是什么?

对于RAID这个词玩电脑的人其实应该都听过,然而好像对自己来说又不太会接触到的东西,其实随着SSD的普及,RAID这个东西离普通个人消费者好像越来越远了, 因为现在SSD的性能对绝大多数人来说已经足够快了,而且嫌弃SATA SSD不够快的话还有更快的PCI-E NVMe可选,现在部分高端OEM主机或游戏笔记本会使用两个SSD组RAID 0应该是最常见RAID组合了。

然而这对于注重数据安全的企业、工作站和数据中心来说RAID是相当重要的,也会有个人用户为了保护重要数据也会选择组建RAID 1阵列,多盘位NAS也会自动或者推荐用户组RAID来保护数据,今天的超能课堂就来说说这个RAID是什么东西。

RAID的全称是Redundant Array of Independent Disks独立硬盘冗余阵列,简称磁盘阵列,基本上就是把多个 相对便宜的硬盘组合起来,让他们变成一个 硬盘阵列组,使性能和容量达到甚至超过那些更为昂贵、巨大的硬盘,组建磁盘阵列的多个物理硬盘会被组合成一个逻辑扇区,在操作系统里面看只会被识别成一个硬盘。

另外RAID有多个不同的等级,不同等级的RAID的组建方式与功能都不同,较单一硬盘相比会有以下一个或多个方面的好处:更大的容量,更强的容错能力,更快的速度与更大的吞吐量。

标准RAID有:RAID 0、RAID 1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6,此外还有混合RAID包括:RAID 10/01、RAID 30、RAID 50、RAID 53、RAID 60,其中较为常见的有RAID 0、RAID 1、RAID 5、RAID 6和RAID 10,其他的都比较少用,本文只会介绍这几个常用的,其他的简单带过。

常用的RAID等级对比

首先要说明一下的是JBOD其实并不算RAID, 它只是简单的把几个硬盘的空间合并变成一个大的逻辑硬盘,容量等于所有硬盘之和,数据的存放与写入是从第一个硬盘开始按硬盘的顺序来进行的,每次读写操作只是作用与数据所在的硬盘,所以并没有增强读写性能的作用,读写性能和单一硬盘无异,而且也没有错误备份的机制,一旦出现错误那么这块硬盘上的数据就将丢失,如果是第一颗硬盘损坏的话那么整个阵列的数据可能都会丢失,因为通常来说磁盘分区表就在第一个硬盘上,不过对未损坏硬盘进行数据恢复的话那些数据是有可能恢复的。

RAID 0

图片取自维基百科RAID条目

RAID 0是最早出现的RAID模式,也称为Striping(条带)存储,实现起来的方式也非常简单,只需要两块或以上的硬盘就可组建,它将磁盘并列起来组成一个大容量磁盘,数据是分段后分散存储在各个磁盘之中,读写操作都会涉及到各个硬盘,读写性能等于所有硬盘性能之和,所以RAID 0的速度是最快的,而且没有任何容错备份,所以磁盘可用空间也是最大的,空间利用率达到100%,然而就是因为没有容错能力这使得整个阵列变得非常不靠谱,如果有一个硬盘损坏的话所有数据都会丢失,而且因为RAID 0的数据是分散布置的,所有数据恢复几乎是不可能的。RAID 0主要应用在对性能有要求然而对数据安全性没要求的场合,比如个人电脑的系统盘,视频制作的系统盘和缓存盘等,重要数据不要保存在RAID 0的阵列组里面。

RAID 1

RAID 1又称为mirroring(镜像)存储,与RAID 0这种要性能不要安全的方式不同,RAID 1的原理是把一个硬盘里的数据完全镜像到另一个硬盘上,两个硬盘保持完全一样的数据,RAID 1的数据安全性是最好的,只要有一个硬盘还健在数据就安全,然而空间利用率也是最低的,无论你拿多少个硬盘来组RAID 1,磁盘阵列组的容量也只等于容量最小的那个硬盘,其他硬盘空余的空间可以分区独立使用不会浪费,写入速度也等于写入速度最慢那个硬盘,数据读取速度倒是等于硬盘数量的倍数。RAID 1主要应用在保存关键性重要数据的场合,或者NAS盘位不足够组RAID 5的场合,对,就是指那些双盘位NAS。

RAID 5

RAID 1虽然对数据有良好的保护性,但是磁盘空间利用率太低了,不适合组建大容量的磁盘阵列,这时候就需要RAID 5出场了,RAID 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。组建RAID 5至少需要三块硬盘,它使用的是Disk Striping(硬盘分区)技术 ,并不是对存储数据进行备份,而是把数据和对应的奇偶校验信息分散存放到各个硬盘上,当阵列组里面的一个硬盘发生故障后,可以利用剩下的数据和奇偶校验信息去恢复损坏的数据。

RAID 5可以说是RAID 0与RAID 1的折中方案,假设用n个硬盘组建RAID 5阵列,读写性能和磁盘可用空间都等于n-1个硬盘之和,性能和空间利用率相对RAID 0来说是要低一点,数据安全性也没RAID 1那么高,然而综合来说RAID 5应该来说是最好的,而且存储成本相对便宜。

RAID 6

RAID 6与RAID 5其实是比较相似的,它增加了第二个独立的奇偶校验信息块,两个独立的奇偶校验系统使用不同的算法,数据的可靠性比RAID 5更高,可容许两块硬盘故障而保持数据的完整性,不过由于RAID 6需要比RAID 5更多的磁盘空间去存储另一个奇偶校验系统的数据,所以需要N+2个硬盘,组建RAID 6至少得4个硬盘才行,另外RAID 6阵列的数据传输需要大量的I/O和计算量,所以基本上不会去用软件实现的,现在的主板也很少支持RAID 6,通常都需要专用RAID卡来实现,另外由于写入操作时需要进行大量的奇偶校验计算,所以写入性能也不算好。

基本上就只有那些对数据安全要求的应用才会用到RAID 6,比如数据中心、信息中心等,其他大多数情况下用RAID 5就已经足够了。

RAID 10

RAID 1+0是一种混合RAID,现在都简称成RAID 10,它是RAID 0与RAID 1的混合体,继承了RAID 0的性能与RAID 1的安全,然而也继承了RAID 1的低磁盘可用空间,组建RAID 1+0至少需要4个硬盘,磁盘空间可用率最高只有50%,RAID 1+0是先把硬盘分成两组分别组建RAID 1阵列,然后在把这两组RAID 1阵列组建RAID 0,也就是组建了两层RAID,它的读取性能基本就是阵列组内硬盘总数n,写入速度则是n/2,数据的安全性也很好,即使阵列组内的一个硬盘故障整个阵列组也可以正常工作,只要不是整组RAID 1挂掉数据就是安全的。

当需要更换RAID 10中硬盘的时候,只需要直接更换损坏的那个硬盘就可以了,然后把那组RAID 1阵列中的另一个硬盘上的数据恢复过去就行了,在数据恢复的过程中整个RAID 10阵列依然是可以运作的。

另外还有一个RAID 0+1的组合,就是先组建RAID 0再组建RAID 1,然而这种组合的可靠性比RAID 1+0要低,因为只要有一个硬盘出现故障同组的RAID 0就会整体停止工作,只剩下另一组单独工作,当然了数据还是安全的,实际应用中RAID 1+0也比RAID 0+1更为常用,现在的主板基本都是支持RAID 1+0而不是支持RAID 0+1。

介绍完RAID 10/01之后大家应该都能推理出其他的复合RAID如:RAID 50、RAID 53这些结构是怎么样的了,数字在前的那个就是低层磁盘阵列,在后面的就是高层磁盘阵列,所以其他的复合RAID就不展开说了。

那些不太常用的RAID:

RAID 2:是RAID 0的改良版,其实就是带汉明码校验的RAID 0,将数据条块分布在不同的硬盘上,条块以位或者字节为单位,并使用汉明码技术来提供错误检查及恢复,由于这一技术的加入使得磁盘阵列能允许一个硬盘的故障并保持数据完整,由于需汉明码的加入使得数据的整体数据会比原来的大一些,组建RAID 2至少需要3个硬盘,而且由于汉明码的特性导致系统花销过大。

RAID 3:它采用Bit-interleaving(数据交错存储)技术,RAID 3可以理解为带奇偶校验的RAID 0,组建RAID 3至少需要三个硬盘,其中两个的运行方式其实就是RAID 0,另外一个是用来存放奇偶校验数据的,就是RAID 0外加一个奇偶校验盘,RAID 3容许单盘出错,损坏硬盘里的数据可以根据奇偶校验盘和其他硬盘里的信息进行恢复,如果坏掉的是存放奇偶校验数据的盘的话,其实不会对数据有任何影响,其实它和RAID 5很像,只不过RAID 3是把奇偶校验数据单独存放在一个硬盘里,而RAID 5是把奇偶校验数据分散在各个硬盘里。

RAID 4:结构与RAID 3类似,也带有独立的奇偶校验盘,不过所用技术是Block interleaving(块交织技术),在数据分割上RAID 3对数据的访问是按位进行的,RAID 4是以数据块为单位(可以把一个文件理解成一个数据块),RAID 4的好处就是读取数据时不同硬盘可以执行不同的读取命令,不像其他RAID 0/3/5那样读取一个文件都要动用到全部硬盘,然而写入文件时会受制于奇偶校验盘的性能,同一时间只能做一次写入操作,另外数据恢复也比RAID 3大得多。

上面这三种RAID现在基本上都被RAID 5所取代了,不过RAID 4在某些商用设备上还能见得到,比如NetApp公司的NAS。

RAID 7:它并非公开的RAID标准,现已经成为Storage Computer Corporation专利硬件产品的名称,它其实是一套独立的存储计算机系统,自带操作系统和管理工具,能够独立运行,性能上超越了其他RAID标准的产品,然而价格也相当的贵。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180111A0N4IN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券