创新路
我们一直在努力

RAID–磁盘阵列的学习

磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,英翻中的意思是:容错式廉价磁盘阵列。 RAID 可以透过一个技术(软件或硬件),将多个较小的磁碟整合成为一个较大的磁碟装置; 而这个较大的磁碟功能可不止是储存而已,他还具有数据保护的功能呢。整个 RAID 由於选择的等级 (level) 不同,而使得整合后的磁碟具有不同的功能, 基本常见的 level 有这几种:

  • RAID-0 (等量模式, stripe):效能最佳

    这种模式如果使用相同型号与容量的磁碟来组成时,效果较佳。这种模式的 RAID 会将磁碟先切出等量的区块 (举例来说, 4KB), 然后当一个文件要写入 RAID 时,该文件会依据区块的大小切割好,之后再依序放到各个磁碟里面去。由於每个磁碟会交错的存放数据, 因此当你的数据要写入 RAID 时,数据会被等量的放置在各个磁碟上面。举例来说,你有两颗磁碟组成 RAID-0 , 当你有 100MB 的数据要写入时,每个磁碟会各被分配到 50MB 的储存量。如图

 RAID-0 的磁碟写入示意图

上图的意思是,在组成 RAID-0 时,每颗磁碟 (Disk A 与 Disk B) 都会先被区隔成为小区块 (chunk)。 当有数据要写入 RAID 时,数据会先被切割成符合小区块的大小,然后再依序一个一个的放置到不同的磁碟去。 由於数据已经先被切割并且依序放置到不同的磁碟上面,因此每颗磁碟所负责的数据量都降低了!照这样的情况来看, 越多颗磁碟组成的 RAID-0 效能会越好,因为每颗负责的数据量就更低了! 这表示我的数据可以分散让多颗磁碟来储存,当然效能会变的更好啊!此外,磁碟总容量也变大了! 

只是使用此等级你必须要自行负担数据损毁的风险,由上图我们知道文件是被切割成为适合每颗磁盘分区区块的大小, 然后再依序放置到各个磁碟中。想一想,如果某一颗磁碟损毁了,那么文件数据将缺一块,此时这个文件就损毁了。 由於每个文件都是这样存放的,因此RAID-0 只要有任何一颗磁碟损毁,在 RAID 上面的所有数据都会遗失而无法读取。

  • RAID-1 (映射模式, mirror):完整备份

这种模式也是需要相同的磁碟容量的,最好是一模一样的磁碟啦!如果是不同容量的磁碟组成 RAID-1 时,那么总容量将以最小的那一颗磁碟为主!这种模式主要是『让同一份数据,完整的保存在两颗磁碟上头』。举例来说,如果我有一个 100MB 的文件,且我仅有两颗磁碟组成 RAID-1 时, 那么这两颗磁碟将会同步写入 100MB 到他们的储存空间去。 因此,整体 RAID 的容量几乎少了 50%

 RAID-1 的磁碟写入示意图

如上图所示,一份数据传送到 RAID-1 之后会被分为两股,并分别写入到各个磁碟里头去。 由於同一份数据会被分别写入到其他不同磁碟,因此如果要写入 100MB 时,数据传送到 I/O 汇流排后会被复制多份到各个磁碟, 结果就是数据量感觉变大了!因此在大量写入 RAID-1 的情况下,写入的效能可能会变的非常差。

由于两颗磁碟内的数据一模一样,所以任何一颗硬盘损毁时,你的数据还是可以完整的保留下来的! 所以我们可以说, RAID-1 最大的优点大概就在於数据的备份吧!不过由於磁碟容量有一半用在备份, 因此总容量会是全部磁碟容量的一半而已。虽然 RAID-1 的写入效能不佳,不过读取的效能则还可以。这是因为数据有两份在不同的磁碟上面,如果多个 processes 在读取同一笔数据时, RAID 会自行取得最佳的读取平衡。

  • RAID 0+1,RAID 1+0

RAID-0 的效能佳但是数据不安全,RAID-1 的数据安全但是效能不佳,那么能不能将这两者整合起来配置 RAID 呢? 可以啊!那就是 RAID 0+1 或 RAID 1+0。所谓的 RAID 0+1 就是: (1)先让两颗磁碟组成 RAID 0,并且这样的配置共有两组; (2)将这两组 RAID 0 再组成一组 RAID 1。这就是 RAID 0+1。

 RAID-0+1 的磁碟写入示意图

如上图所示,Disk A + Disk B 组成第一组 RAID 0,Disk C + Disk D 组成第二组 RAID 0, 然后这两组再整合成为一组 RAID 1。如果我有 100MB 的数据要写入,则由於 RAID 1 的关系, 两组 RAID 0 都会写入 100MB,但由於 RAID 0 的关系,因此每颗磁碟仅会写入 50MB 而已。 如此一来不论哪一组 RAID 0 的磁碟损毁,只要另外一组 RAID 0 还存在,那么就能够透过 RAID 1 的机制来回复数据。

由於具有 RAID 0 的优点,所以效能得以提升,由於具有 RAID 1 的优点,所以数据得以备份。 但是也由於 RAID 1 的缺点,所以总容量会少一半用来做为备份。

  • RAID 5:效能与数据备份的均衡考量

RAID-5 至少需要三颗以上的磁碟才能够组成这种类型的磁盘阵列。这种磁盘阵列的数据写入有点类似 RAID-0 , 不过每个循环的写入过程中,在每颗磁碟还加入一个同位检查数据 (Parity) ,这个数据会记录其他磁碟的备份数据, 用於当有磁碟损毁时的救援。

 RAID-5 的磁碟写入示意图

如上图所示,每个循环写入时,都会有部分的同位检查码 (parity) 被记录起来,并且记录的同位检查码每次都记录在不同的磁碟, 因此,任何一个磁碟损毁时都能够藉由其他磁碟的检查码来重建原本磁碟内的数据喔!不过需要注意的是, 由於有同位检查码,因此 RAID 5 的总容量会是整体磁碟数量减一颗。以上图为例, 原本的 3 颗磁碟只会剩下 (3-1)=2 颗磁碟的容量。而且当损毁的磁碟数量大於等於两颗时,这整组 RAID 5 的数据就损毁了。 因为 RAID 5 默认仅能支持一颗磁碟的损毁情况。



客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机