PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

仙仙科普系列之Raid

[复制链接]
仙賢戀軒 发表于 2013-4-3 21:55 | 显示全部楼层 |阅读模式
点击数:8282|回复数:33
1.        什么是Raid


Raid旧称Redundant Array of Inexpensive Disks,即廉价磁盘冗余阵列;现称Redundant Array of Independent Disks,即独立磁盘冗余阵列,简称为磁盘阵列。其基本的思想是把多个相对廉价的磁盘进行组合成为一个磁盘阵列组,以达到甚至超越一个价格相对昂贵,容量相对大的磁盘。根据Raid版本的不同,Raid相对于散列的磁盘可以提供多方面的优势:更强的容错功能、更快的读写速度、更高的资料整合度等等……
简单来说,Raid的效果是把多个磁盘组成一个逻辑区域,因此系统只会将其视作一块磁盘。以往,Raid主要出现在服务器领域,而随着技术的不断发展,Raid也逐渐进入了玩家的世界。


Raid可以分为三种:纯软件Raid,半软件半硬件Raid和纯硬件Raid。
纯软件Raid是指程序运行在操作系统中且没有其他额外硬件参与的Raid模式。在这种模式下磁盘通常直接连接至计算机的I/O接口或是没有经过处理器的HBA。这样只有在操作系统加载了Raid驱动软件之后,整个阵列才会变成活动对象。这样的Raid模式通常被当作操作系统的一项额外附加值赠送给用户,其最大的特色就是低廉的成本。
半软件半硬件Raid是指通过一些硬件帮助Raid软件完成其薄弱环节的模式。在这种模式下通常会有一些额外的硬件参与其中(比如带有Raid BIOS的HBA或直接在主板上加入Raid BIOS芯片等)。这颗额外的BIOS可以使得系统通电后阵列就能成为活动对象,在启动的过程中提供冗余。除此以外,大多数的类似方案还提供一个BIOS软件使得维护阵列可以不用启动操作系统。而且,这种硬件辅助的Raid通常都拥有跨平台的驱动,因此其相比于纯软件Raid更不依赖于操作系统。
纯硬件Raid可以是指一张独立的Raid卡或者基于RoC(Raid on Chip)技术的硬件方案。Raid卡通常内置了Raid处理器(I/O)处理器并且拥有自己的驱动接口(I/O控制器)。比较常见的是通过主板上的PCI或者PCI-e接口与系统进行连接。Raid卡通常是非常昂贵的,但也是最灵活和高效的解决方案。在这种情况下Raid的运行是完全独立于操作系统的。这样Raid处理器将可以提供最好的磁盘性能并且完全释放计算机硬件的负担。在RoC方案中,Raid控制器,缓存控制器,I/O面板甚至缓存都被聚集在一块芯片上。这样的芯片可以是整体安装在主板上或者安装在一块独立的PCB上,其中最常见于服务器主板上。


2.        常见Raid
2.1        JBOD
JBOD,Just a Bunch of Disks,从某种程度上来说,JBOD并不能算作一种Raid,只是将多个磁盘的空间合并成一个连续的更大的逻辑磁盘。数据的存放原理是由第一块磁盘开始按顺序往后存储。如果磁盘发生损坏,那么该磁盘上的数据无法挽救;如果第一块磁盘发生损坏,通常会失去磁盘分割信息(大部分JBOD方案将磁盘分割信息存在第一块磁盘上),那么所有数据都无法挽救。其工作原理如下:



2.2        Raid 0
Raid 0是将多个磁盘直接合并成一个大的磁盘,并行I/O,没有冗余。在存放数据的时候,控制器将数据按照磁盘个数进行分段,并同时将这些分段写入相对应的磁盘之中。这样做的好处是Raid 0在所有的阵列之中拥有最快的读写速率,然而由于Raid 0并不具有冗余功能,只要有任意一块磁盘发生损坏,那么所有磁盘上的数据都会丢失。理论上Raid 0的效能就是单磁盘效能与磁盘数的乘积,但受制于I/O瓶颈以及环境影响,其实际效能也会遵从边际效应。也就是说,随着磁盘数的增加,带来的效能提升会逐渐减小。其工作原理如下:



2.3        Raid 1
Raid 1是将多个磁盘进行互相镜像。在数据写入的时候,控制器将数据同时写入所有磁盘,因此只有在所有的磁盘都发生损坏的情况下才会丢失数据。另外,由于所有的磁盘中都写有相同的数据,因此在读取数据的时候可以通过多线程达到很好的读取速度。当主磁盘发生损坏时,镜像磁盘可以直接代替主磁盘继续工作,故Raid 1拥有所有Raid中最好的安全性。但是无论用多少磁盘组建Raid 1,都只有一块磁盘的容量,且实际可用空间是所有磁盘中容量最小的尺寸,因此Raid 1也是所有Raid中磁盘利用率最低的一个级别。其工作原理如下:



2.4        Raid 5
Raid 5是一种兼顾存储效能、安全性以及利用率的存储方案,主要是建立在Disk Striping技术上实现的。Raid 5在存储时把数据和相应的奇偶校验信息存储到Raid 5的各个磁盘上,并且把奇偶校验信息和数据分别存于不同的磁盘上。这样当Raid 5中发生一个磁盘损坏的时候,可以利用剩下的磁盘和奇偶校验数据计算恢复损坏的数据。Raid 5可以理解成Raid 0和Raid 1的折中方案,Raid 5提供了接近Raid 0的磁盘读取性能且比Raid 0更高的安全保障。然而由于Raid 5中数据都拥有校验信息,当更改数据时校验会严重影响磁盘的写入性能。Raid 5的写入过程非常繁杂:当新数据进入时,控制器会先读取需要更新扇区上的数据,读出校验数据,写入新数据,写入新校验数据。也就是说,写入新数据这一步需要通过4个动作完成。这个问题通过Raid控制器的缓存可以得到有效改善。其工作原理如下:



3.        罕见Raid
3.1        Raid 2
Raid 2是Raid 0的改良版,在Raid 0的基础上增加了基于Hamming Code的错误修正码(ECC,Error Correction Code)。磁盘组中序号为2的幂的磁盘(第1个、第2个、第4个、第8个……)为校验盘,用于存储校验信息。从这个特征中我们很容易就可以得到一个结论:阵列中的磁盘总数越多,校验磁盘所占的比例越低,磁盘空间利用率越高。组建Raid 2需要至少3个磁盘,其工作原理如下:



3.2        Raid 3
Raid 3与Raid 2非常类似,其区别在于完全使用一个磁盘存储校验信息,实际可用容量是所有磁盘容量的总和减去一块磁盘。这样做的好处是,当某块数据磁盘发生损坏时,可以通过其他数据磁盘和校验磁盘算出损失的数据;而当校验磁盘发生损坏时,数据磁盘也依旧可以进行工作并可以重新生成校验数据。而Raid 3的性能主要由容错算法和分块大小所决定。组建Raid 3至少需要3块磁盘,其工作原理如下:



3.3        Raid 4
Raid 4是一种思路与Raid 3非常相似的方案。其与Raid 3的不同就在于,Raid 4是将数据按区块为单位进行分割的,每次的数据读写过程中都必须从校验磁盘中取出相应的校验进行核对,这样可能带来的隐患是,校验磁盘会由于过度频繁的使用导致损耗率提高。Raid 4的工作原理如下:



3.4        Raid 6
Raid 6是一种与Raid 5思路非常相似的方案。其与Raid 5的不同点在于,Raid 6增加了第二个独立的奇偶校验块,两个独立的奇偶校验使用不同的算法,相比Raid 5而言进一步提高了数据安全性,允许最多两块磁盘同时发生损坏。然而相比于Raid 5,其缺点也是非常明显的:由于多了一个独立的奇偶校验,磁盘利用率相比Raid 5更低;且两种不同的校验算法同时存在导致磁盘的写入性能进一步降低,这也是其极少被实际应用的原因。建立Raid 6需要至少4个磁盘,Raid 6的工作原理如下:



4.        复合Raid
4.1        Raid 10
Raid 10,亦称Raid 1+0,是将所有的磁盘分成两组,每组先进行Raid 1阵列,然后将两个Raid 1阵列再进行Raid 0阵列。其工作原理如下:



4.2        Raid 01
Raid 01,亦称Raid 0+1,与Raid 10恰恰相反,是将每组磁盘先进行Raid 0阵列再进行Raid 1阵列。由于Raid 10相较于其有更好的安全性和适用性,通常主板只会支持Raid 10而不支持Raid 01。Raid 01的工作原理如下:



4.3        Raid 50
Raid 50,亦称Raid 5+0,类似于Raid 10和Raid 01,是将磁盘分为两组,每组磁盘先进行Raid 5阵列,再进行Raid 0阵列。这样做的目的在于提高Raid 5的写入性能。Raid 50的工作原理如下:



5.        总结
这里,我们总结一下常见Raid的一些主要信息对比:

Raid技术在其建立之初并不是为了消费级市场而诞生的,然而随着技术的进步、存储价格的下降、使用观念的变化等等因素,Raid技术也逐渐在普通玩家中被广泛的了解和使用。是否需要Raid、选择何种Raid等等问题,要总和玩家自身的实际需求以及经济能力等诸多情况综合考量,毕竟,适合自己的,够用的,才是最好的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 4活跃度 +20 收起 理由
哇噻噻 + 5 很给力!
rushmytowers + 5 神马甲
donnyng + 5 是仙达让我变得更坚强
einstein86 + 5 我很赞同

查看全部评分

einstein86 发表于 2013-4-3 21:56 | 显示全部楼层
R5实践体验ing……
rushmytowers 发表于 2013-4-3 22:04 | 显示全部楼层
记得以前公司的服务器是3片st sas 320g raid5让我照顾到不能自理,挂掉1片。。。
ryoma1836 发表于 2013-4-3 22:06 | 显示全部楼层
先顶后看
Ramaxel 发表于 2013-4-3 22:07 | 显示全部楼层
矮油,仙仙也开始玩科普了
wsy2220 发表于 2013-4-3 22:26 | 显示全部楼层
单硬盘的钓丝表示raid离我很远
Ramaxel 发表于 2013-4-3 23:37 | 显示全部楼层
wsy2220 发表于 2013-4-3 22:26
单硬盘的钓丝表示raid离我很远

雅梦谦虚了
贱狗在飞啊 发表于 2013-4-4 07:40 | 显示全部楼层
仙仙是何方神聖?!。
zhubo88597171 发表于 2013-4-4 08:39 | 显示全部楼层
学习了
LZ辛苦了
大D来了 发表于 2013-4-4 10:27 发自PCEVA移动客户端 | 显示全部楼层
科普好骗精华呀!!哈哈!仙胖莫怪!
XEON16 发表于 2013-4-4 14:34 | 显示全部楼层
详细,清楚。
haierccc 发表于 2013-4-4 16:25 | 显示全部楼层
还是上图看得清楚明了。
很多原来阳春白雪,只存在于企业的应用,现在都转移到家庭用户了。RAID就是代表。
nighttob 发表于 2013-4-4 16:31 | 显示全部楼层
对JBOD存疑,我一直的理解就是字面意思,一个箱子里复数多磁盘,只通过单一一条线路对外连接,每块磁盘都是以独立设备被主机识别。就比如那些JBOD阵列柜,对外两个SFF-8088连接到主机HBA/RAID卡,然后由主机做RAID。还有一些外置多盘位的SATA硬盘盒,背后就一个eSATA口,有JBOD模式连接到主机eSATA,还需要额外支持PM才能认每块盘。
仙仙说的这个我一直是当“串接”,就跟磁带一样,一盘接一盘。
仙賢戀軒  楼主| 发表于 2013-4-4 16:42 | 显示全部楼层
nighttob 发表于 2013-4-4 16:31
对JBOD存疑,我一直的理解就是字面意思,一个箱子里复数多磁盘,只通过单一一条线路对外连接,每块磁盘都是 ...

这里的JBOD=span
nighttob 发表于 2013-4-4 16:45 | 显示全部楼层
仙賢戀軒 发表于 2013-4-4 16:42
这里的JBOD=span

好吧我理解。
我刚还google了一下,结果就是这两种说法的都有,特别是中文wiki的也是span的这个解释。

反正我自己清楚我要找的东西是啥就行了。

BTW,DIY JBOD阵列柜这个想法太蛋疼了,我不打算实践了……
仙賢戀軒  楼主| 发表于 2013-4-4 16:57 | 显示全部楼层
nighttob 发表于 2013-4-4 16:45
好吧我理解。
我刚还google了一下,结果就是这两种说法的都有,特别是中文wiki的也是span的这个解释。

JBOD本来实际应用就不多把。。。

再DIY一个机柜专门跑JBOD。。。确实蛋疼。
kiQ 发表于 2013-4-5 10:23 | 显示全部楼层
2硬盘 raid0 实用性最好,容量不损失,声音不大,容量也够了。
r0没ecc,盘挂是小事,啥盘挂了数据都没,re4的盘面比绿盘好。

如果不是要连续速度很高,单盘用,别折腾什么raid。
烧主板或烧电源r几安全?
tedorg 发表于 2013-4-5 13:17 | 显示全部楼层
四盘raid0用了快2年的撸过...
tedorg 发表于 2013-4-5 13:19 | 显示全部楼层
kiQ: 2硬盘 raid0 实用性最好,容量不损失,声音不大,容量也够了。r0没ecc,盘挂是小事,啥盘挂了数据都没,re4的盘面比绿盘好。如果不是要连续速度很高, ...

我四盘raid0用了2年,不安全断电好多次,哪有什么掉数据...
FreeMyHerar 发表于 2013-4-5 15:55 | 显示全部楼层
tedorg 发表于 2013-4-5 13:19
我四盘raid0用了2年,不安全断电好多次,哪有什么掉数据...

你的数据不怕丢,运气又好当然不怕。我手上坏过起码3块盘,每次都有东西找不回来,打死我也没胆子用raid0。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部