RAID 各级别特性
既然要说明RAID 各级别特性,那么首先要明白RAID是个玩意?
RAID是什么?
RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。
RAID磁盘阵列(Redundant Array of Independent Disks)
简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用,其特色是N台硬盘同时读取速度加快及提供容错性Fault Tolerant,所以RAID是当成平时主要访问数据的Storage不是Backup Solution。
搜狗百科对RAID的定义
RAID的级别及各级别特性
RAID由于选择的等级(level)不同,故而使得整合后的磁盘具有不同的特性。
RAID常见的等级
RAID-6
预备磁盘的功能
RAID-0(等量模式,stripe)
这种模式的会将磁盘先切出等量的区块,然后当一个文件要写入RAID时,该文件会依据块的大小切割好,之后在依序放到各个磁盘里去。
如图所示,RAID-0在写入数据时会将数据按区块,依序一个一个放置到不同的磁盘上。因此,由于数据会先被分成区块并且将依序存放到不同的磁盘上面,故而每块磁盘所负责的数据量就降低了。既数据分散存储到各磁盘上。
由于RAID-0将数据分散存储到各磁盘上,那么如果某块磁盘挂掉的话,也就意味着整个RAID-0完蛋了。因此你如果要使用RAID-0的话需要自行承担数据损毁的风险。
RAID-0的可用空间计算方法:可用空间:N*min(S1,S2,...)。
RAID-1(镜像模式,mirror):完整备份
RAID-1的存储模式是将数据等量的同步的保存在多块磁盘上。
如图所示,某一文件传送到RAID-1中时,会被分成两股(一模一样)别写入到俩块磁盘中去。
由于RAID-1在存储数据时会先将数据多股一样的数据,再写入到多块磁盘上,因此如果使用软件磁盘整列性能会比较差(主板只有一块南桥芯片),所以建议大家尽量使用硬件磁盘整列卡。
RAID-1最大的有点再于数据备份。虽然RAID-1的写入性能不佳,但读取性能还不错,这是因为数据有多份存储在不同额磁盘上,如果有多个进程在读取同一条数据时,RAID会自行取得最佳的读取平衡。
RAID-5 性能与数据备份的均衡考虑
RAID-5 至少需要三颗以上的磁盘才能够组成这种类型的磁盘阵列。这种磁盘阵列的数据写入有点类似
RAID-0,不过每个循环的写入过程中,在每颗磁盘还加入一个同位检查数据 (Parity) ,这个数据会记
录其他磁盘的备份数据, 用于当有磁盘损毁时的救援。RAID-5 读写的情况有点像底下图这样:,
如上图所示,每个循环写入时,都会有部分的同位检查码 (parity) 被记录起来,并且记录的同位检查码
每次都记录在不同的磁盘, 因此,任何一个磁盘损毁时都能够藉由其他磁盘的检查码来重建原本磁盘内
的数据喔!不过需要注意的是, 由于有同位检查码,因此 RAID 5 的总容量会是整体磁盘数量减一颗。
以上图为例, 原本的 3 颗磁盘只会剩下 (3-1)=2 颗磁盘的容量。而且当损毁的磁盘数量大于等于两颗
时,这整组 RAID 5 的资料就损毁了。 因为 RAID 5 预设仅能支持一颗磁盘的损毁情况。
在读写效能的比较上,读取的效能还不赖!与 RAID-0 有的比!不过写的效能就不见得能够增加很多!
这是因为要写入 RAID 5 的数据还得要经过计算同位检查码 (parity) 的关系。由于加上这个计算的动
作, 所以写入的效能与系统的硬件关系较大!尤其当使用软件磁盘阵列时,同位检查码是透过 CPU 去
计算而非专职的磁盘阵列卡, 因此效能方面还需要评估。
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 1+0 就是先组成 RAID-1 再组成 RAID-0 的意思。
如上图所示,左边的两组磁盘组成第一组 RAID 0 ,右边的两组磁盘成第二组 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-6
RAID-6是RAID-5的升级版,
这个RAID-6使用两颗磁盘的容量作为 parity 的储存,虽然因此整体的磁盘容量少两颗,但是允许出错的磁盘数量就可以达到两颗了! 也就是在 RAID 6 的情况下,同时两颗磁盘损毁时,数据还是可以救回来!
预备磁盘
Spare Disk :预备磁盘的功能:
当磁盘阵列的磁盘损毁时,就得要将坏掉的磁盘拔除,然后换一颗新的磁盘。换成新磁盘并且顺利启动
磁盘阵列后, 磁盘阵列就会开始主动的重建 (rebuild) 原本坏掉的那颗磁盘数据到新的磁盘上!然后你
磁盘阵列上面的数据就复原了! 这就是磁盘阵列的优点。不过,我们还是得要动手拔插硬盘,此时通常
得要关机才能这么做。
为了让系统可以实时的在坏掉硬盘时主动的重建,因此就需要预备磁盘 (spare disk) 的辅助。 所谓的
spare disk 就是一颗或多颗没有包含在原本磁盘阵列等级中的磁盘,这颗磁盘平时并不会被磁盘阵列所
使用, 当磁盘阵列有任何磁盘损毁时,则这颗 spare disk 会被主动的拉进磁盘阵列中,并将坏掉的那
颗硬盘移出磁盘阵列! 然后立即重建数据系统。如此你的系统则可以永保安康啊!若你的磁盘阵列有支
持热拔插那就更完美了! 直接将坏掉的那颗磁盘拔除换一颗新的,再将那颗新的设定成为 spare
disk,就完成了!
以上内容整理自鸟哥的LINUX私房菜与马哥笔记,相关版权归原作者所有。