*本章重点:了解各RAID级别的原理优缺点及常用级别实现,企业中厂商大多提供了硬RAID方案。
"RAID"一词是由David Patterson, Garth A. Gibson, Randy Katz 于1987年在加州大学伯克利分校发明的。在1988年6月SIGMOD会议上提交的论文"A Case for Redundant Arrays of Inexpensive Disks”"中提出,当时性能最好的大型机不断增长的个人电脑市场开发的一系列廉价驱动器的性能所击败。尽管故障与驱动器数量的比例会上升,但通过配置冗余,阵列的可靠性可能远远超过任何大型单个驱动器的可靠性
独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列,简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。
RAID 层级不同,数据会以多种模式分散于各个硬盘,RAID 层级的命名会以 RAID 开头并带数字,例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种等级都有其理论上的优缺点,不同的等级在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器(群)读写性能。
简单来说,RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为普通用户的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。
RAID功能:
实现方式:
硬件RAID缺点:根据各个厂商有关,配置方式和界面差别很大。
级别:多块磁盘组织在一起的的工作方式有所不同。
常见的类型如下:
RAID0:条带卷,strip
RAID1:镜像卷,mirror
...
RAID5
RAID6
RAID10
RAID50
RAID01
...
以chunk单位读写数据,因为读写时都可以并行处理,所以在所有的级别中,RAID0的速度是最快的,但是RAID0既没有冗余功能,假如一个硬盘损坏,所有是数据都会丢失。
要求:多块物理盘(至少两块)硬盘通过软件或者硬件方式串联在一起组成一个集合卷组,并将数据依次写入到各个物理硬盘中。大小相同,组合后系统只能识别组合后的一个逻辑盘,空间变大(两个盘之和),如上图,数据写入不同的硬盘设备中,即disk0,disk1分别保存数据,最终实现提升读取、写入速度的效果。
通俗来说:RIAD0技术能够有效提升硬盘数据IO速度,但是不具备数据冗余和纠错能力。
实现:假如一个文件有1G,会分成若干个chunk(单位)可以理解为存放数据的数据块,假设是64K,如果存放?A1 B2 A3 B4 A5...
A代表硬盘1,B代表硬盘2 ,按顺序存放, 两块可以同时写入50%数据,理论上性能提升了50%,所以硬盘越多,同时读写的速度较快。致命缺点就是一块损坏,全部数据丢失。
企业中很少用,没有容错冗余性!!!
简称:镜像卷(同步)。针对RAID0的缺陷,RAID1可以解决。
原理:两组以上的N个磁盘相互做镜像,在一些多线程操作系统中有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID0相同。另外写入速度有微小降低。
读性能提升、写性能略有下降
可用空间:1*min(S1,S2,...)
磁盘利用率 50%
有冗余能力
最少磁盘数:2+
简单来说:RAID1技术注重安全性,是因为在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率就得以下降。从理论上来说,2块硬盘的利用率就是50%,3块硬盘的可用率就是33%,以此类推,无疑是一定程度上增大了系统计算的负载。
代价:空间换冗余。
RAID1+0,即RAID1和RAID0的组合,先把两组硬盘分别作为RAID1,然后把组合好的两组RAID1组合成RAID0。
读、写性能提升。
可用空间:N/2
有容错能力:每组镜像最多只能坏一块。
最少磁盘数:4,4+
这也是目前存储厂商最推荐的方法。
RAID0+1,顾名思义就是先把两组硬盘组合成RAID0之后,再把两组RAID0组合成RAID1.
同时含有1和0的特性。
读写提升,同一时刻,只能坏一组RAID0硬盘(2块),组1和组2不能同时坏其中一个,否则全部丢失。
无校验,无容错。
利用率好,有冗余能力,至少3块硬盘才能实现。
多块数据盘异或运算值存于专用校验盘。最后一块硬盘存放其他几块硬盘的校验位。
4块硬盘的可用率,就是75%,最后一块做校验盘。
N-1/N <==利用率
只能坏一块硬盘,企业不常用,校验盘常坏。
改进版的RAID4,计算的校验位存放在不同的盘上,坏的几率一样。
读写效率提升了,可用空间也是N-1/N,有容错能力,允许最多一块硬盘损坏。
最少磁盘数:>=3
兼顾,成本、安全性、读写三大指标。
RAID5的读写性能跟RAID0有得比,不过写的性能就不见得能够增加,原因为多了一条CRC计算,会占用CPU资源,因此性能方面还需评估。
双份校验位,算法更复杂
读、写性能提升
可用空间:(N-2)*min(S1,S2,...)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+
成本就提升了,容错能力加强。 空间换容错。
成本更高。冗余性,安全性更高。利用率低。
最少磁盘数:6
最少磁盘是8块。
成本最高,最稳定,安全性最好,利用率最低。
JBOD:Just a Bunch Of Disks 只是一堆磁盘
功能:将多块磁盘的空间合并在一个大的连续空间使用
第一块磁盘存放所有磁盘的分段信息,整个阵列会失败,后续磁盘损坏只会影响本块磁盘的数据。
可用空间:sum(S1,S2...)
RAID7 非标,专利
非公开标准,性能最好的,RAID7是以RAID3和4为基础发展,经过强化原来的一些限制。可同时处理大量IO要求,所以性能超越其他级别,成本非常高昂,可以理解为一个独立存储计算机,自带OS及tools,可独立运行,理论上性能最高的RAID模式,不通用!一般企业不适用。