Redundant Arrays of Independent
磁盘阵列(Redundant Arrays of Independent Drives,RAID),中文的意思是独立的冗余磁盘阵列
RAID
:
RAID可以通过(软件或硬件)技术将多个磁盘整合成一个较大的磁盘设备,而这个磁盘不仅只有数据存储的功能,也能通过做成不同RAID
级别达到提升IO性能、数据保护(备份)功能
RAID-0
:
RAID-0称作等量模式,IO性能是最好的,这种模式是将相同型号及等量磁盘组成一个大的磁盘,在RAID时,会将磁盘切割成大小相同的数据块(chunk),当一个文件要写入RAID时,会将文件数据切割成等分,然后分别交叉写入磁盘当中,也就是说一个200M的数据,每个磁盘存放100M的数据。
两个磁盘做成RAID-0之后,其IO性能也大大的提升,因为每个磁盘存储的数据降低了,从而性能也就大大提升,同时也增大了磁盘的存储量。
RAID-0的弊端
:
RAID-0是将数据切割成等量分别交叉存储在每块磁盘上,这样每块磁盘存储的数据都不是完成的数据,一旦其中一块磁盘发生故障,那么整个的数据都无法恢复(即没有冗余能力),这就等于数据丢失,所以RAID-0的IO性能很好,但数据安全相对无法保障(如图)
RAID-1:
相比RAID-0,RAID-1的优势就是有
冗余能力
,对磁盘要求也是2块或2块磁盘以上,RAID-1在存储数据方式是将原数据同时存储在各个磁盘上,相对来说有数据备份的功能,假如其中一块磁盘损坏可以从另一块磁盘中恢复,但RAID-1的读性能
提升,写性能
略微下降,但总体性能还是不错,同时RAID-1磁盘空间使用率则是1*min(disk_number),disk_number以最小磁盘来计算。RAID-1特性:
1)有冗余能力
2)读性能提升、写性能略微下降
3)可用空间2*(disk_number.....)
4)最少磁盘数2、2+
RAID-1.png
RAID-4:
RAID-4与前两者的不同在于,硬盘数量要求在3或者3块硬盘以上,其中一块硬盘用做存储硬盘1
与硬盘2
的校验码,例如:硬盘1存储的数据为1001,硬盘2存储数据是0011,那第三块硬盘存储的则是硬盘1
与硬盘2
异或数据(第3块硬盘存储的则为0101),这样的好处在于,如果其中一块磁盘坏了,可以通过第三块硬盘校验码推算出另一块硬盘的数据,但RAID-4的劣势在于,读写性能都大大下降,并且在读取数据都要去访问校验盘,这无疑加大了系统压力,故在使用的RAID-4时并不像想象的那么好,假如说在恢复数据的过程中另一块硬盘也突然坏了,那么整个数据就无法恢复。
RAID-5
:
RAID-5的主要机制是,硬盘之间循环存储校验码,例如:硬盘1存第一块数据,硬盘2存第二块数据,第3快盘存数据1与数据2的校验码,而后,硬盘1存储数据3,硬盘3存储数据4,硬盘2存储数据3与数据4的校验码,当然,RAID-5只允许坏一块硬盘。
RAID-5特性:
1)读写性能提升
2)有冗余能力
3)存储空间(N-1)*min(最小磁盘容量)
4)最少磁盘3、3+
RAID-10:
RAID-10,RAID-10就是将
RAID-1
与RAID-0
结合起来做成RAID-10
,先做RAID-1
后做RAID-0
,其读写性能都有提升,最大磁盘容错率为n/2,但空间利用率下降一半RAID-10特性:
1)读写性能提升
2)磁盘利用率N*min(最小磁盘容量)/2
3)有冗余能力
4)磁盘数,4、4+
RAID-10.png
RAID-01:
RAID-01与RAID-10差不多,RAID-01是先做RAID-0后做RAID-1,但RAID-01并不常用,首先一块数据在RAID-1上要chunk成2分大小相同的数据,然后在RAID-0上再将数据切割成等量数据分别存储到各个磁盘中,显得过于麻烦,且磁盘容错率为n/2,但不允许每组硬盘同时损坏一块磁盘,磁盘空间利用率为N*min(最小磁盘容量)/2