目录
一、概述:
RAID( Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。 RAID 的基本思想是把多个便宜的小磁盘组合到一起,组合为一个大磁盘组,使性能达到或超过一个容量巨大、价格昂贵、读写速度快的磁盘。
目前 RAID 技术主要分为两种:基于硬件的RAID技术和基于软件的RAID 技术。
在 Linux 系统中通过自带的软件就能模拟实现 RAID 功能,这样可省去购买昂贵的硬件 RAID 控制器的费用,便可极大地增强磁盘的 IO 性能和可靠性。
由于是用软件去模拟实现的 RAID 功能,所以它的配置灵活、管理方便。同时使用软件 RAID,还可以实现将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的。
当然基于硬件的 RAID 解决方案比基于软件 RAID 技术在性能上会胜一筹,具体表现在检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面。
二、RAID 级别介绍
随着 RAID 技术经过不断的发展,现已有 RAID 0 到 RAID 6 七种基本的 RAID 级别,同时还有 RAID 0+RAID 1 的组合形式,称为RAID10,还有 RAID 0+RAID 5 的组合形式,称为RAID50。当然级别并不能代表技术的高低,其中 RAID 2-RAID 4 基本上不再使用了。
目前这些常用的 RAID 级别 Linux 内核都能够支持,在 Linux 2.6 内核中的软 RAID 可支持以下级别: RAID 0、 RAID 1、RAID 4、 RAID 5 以及 RAID 6 等。 Linux 2.6 的内核除支持以上几种 RAID 级别外,还可支持 LINEAR(线性模式)的软 RAID,线性模式是将两个或更多的磁盘组合到一个物理设备中,磁盘不必具有相同的大小,在写入 RAID 设备时会首先填满磁盘 A,然后是磁盘 B,以此类推。
RAID 0
也称为条带模式(striped),即把连续的数据分散到多个磁盘上存取。
当系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用磁盘总线的带宽,显著提高磁盘整体存取性能。
因为读取和写入是在设备上并行完成的,读取和写入性能将会增加,这通常是运行 RAID 0 的主要原因。
但 RAID 0 没有数据冗余,如果其中一个硬盘出现故障,那么将无法恢复任何数据。
RAID 1
RAID 1 又称为镜像( Mirroring),一个具有全冗余的模式。
RAID 1 可以用于两个或 2xN 个磁盘,并使用 0 块或更多的备用磁盘,每次写数据时会同时写入镜像盘。
这种阵列可靠性很高,但其有效容量会减小到总容量的一半, 同时这些磁盘的大小应该相等,否则总容量只具有最小磁盘的大小。
RAID 4
创建 RAID 4 需要三块或更多的磁盘,它在一个磁盘上保存校验信息,并以 RAID 0 方式将数据写入其它磁盘。因为一块磁盘是为校验信息保留的,所以阵列的空间大小是( N-l)*S,其中S 是阵列中最小磁盘的大小。就像在 RAID 1 那样,磁盘的大小应该相等。
如果一个磁盘出现故障,那么可以使用校验信息及另一个磁盘来重建数据。如果两个磁盘出现故障,那么所有数据都将丢失。不经常使用这个级别的原因是校验信息存储在一个磁盘上。每次写入其它磁盘时,都必须更新这些信息。
因此,在大量写入数据时很容易造成校验磁盘的瓶颈,所以目前这个级别的 RAID 很少使用了。
RAID 5
在希望结合大量物理磁盘并且仍然保留一些冗余时, RAID 5 可能是最有用的 RAID 模式。 RAID 5可以用在三块或更多的磁盘上,并使用0 块或更多的备用磁盘。就像 RAID 4 一样,RAID5 设备的大小是(N-1)*S。
RAID5 与 RAID4 之间最大的区别就是校验信息均匀分布在各个驱动器上,这样就避免了 RAID 4 中出现的瓶颈问题。如果其中一块磁盘出现故障,那么由于有校验信息,所以所有数据仍然可以保持不变。如果可以使用备用磁盘,那么在设备出现故障之后,将立即开始往备用磁盘上同步数据。如果两块磁盘同时出现故障,那么所有数据都会丢失。
RAID 6
RAID 6 是在 RAID 5 基础上扩展而来的。与 RAID 5 一样,数据和校验码都是被分成数据块然后分别存储到磁盘阵列的各个硬盘上。
只是RAID 6 中多增加一块校验磁盘,用于备份分布在各个磁盘上的校验码,这样 RAID 6 磁盘阵列就允许两个磁盘同时出现故障,所以RAID 6 的磁盘阵列最少需要四块硬盘。
RAID1+0:
N(偶数,N>=4)块盘两两镜像后,在组合成一个RAID 0。容量为N/2,N/2块盘同时写入,写速度一般,N快盘同时读取,读速度较快。性能高,可靠性高。
RAID0 | RAID1 | RAID5 | RAID6 | RAID10 | RAID50 | |
特点 | 并行执行 读写速度快 | 数据完全冗余 | 读写速度快 数据有校验 | 读写速度快 数据有校验,冗余性高 | 读写速度更快 数据有校验高 | 读写速度更快 数据有校验高 |
缺点 | 数据无冗余 | 读写速度慢 | 磁盘数量太多 | 磁盘数量太多 | 磁盘数量太多 | |
磁盘数 | 1 | 2 | 3 | 4 | 4 | 6 |
故障 磁盘数 | 0 | 1 | 1 | 2 | 2 | 2 |
空间 | 总和 | 1/2 | (N-1)*S | (N-2)*S | 1/2 | (N-2)*S |
场景 | 大空间测试 | 系统 | 常规服务 | 数据库 |