RAID:独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive 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 0
RAID 0可用于两个或更多硬盘或SSD。目标是提高读的性能。
数据以特定大小(通常为64KB)的块写入,并在可用驱动器中平均分配。下图显示了带有三个硬盘的RAID 0阵列的示意图。RAID控制器将第一个数据块写入硬盘1,第二个数据块写入硬盘2,第三个数据块写入硬盘3,第四个数据块再次写入硬盘1,以此类推,RAID 0中的三个1TB硬盘提供3TB的存储空间。
由于数据分布均匀,所以在访问的时候会从硬盘1~硬盘3提取数据,然后拼接在一起就是一个完整的数据。理论上从3个硬盘的RAID 0阵列读取数据比从一个硬盘读取要快3倍,换言之,使用RAID 0读数据的能力跟磁盘数量成正比。
RAID 0也有缺点:如果其中一个磁盘出现故障,从其他磁盘上的数据拼起来就不再是一个完整的数据了。另外,磁盘越多,则发生磁盘故障的可能性也越高。所以如果磁盘阵列里包含着对您来说很重要的数据,则最好创建频繁的备份。
RAID 1
RAID 1用于创建数据的自动副本。RAID 1会将同一份数据写入两个单独的磁盘,如果A盘出现故障,仍然可以在B磁盘上读取所有数据,当然这是比较壕的,毕竟做一件事用了两块盘。这里要注意!镜像和备份可不是一样!!!如果你不小心从一个磁盘A上删除了一个文件,或者某个文件被病毒侵蚀了,那它再另一个磁盘B上也是一样的待遇。只有真正的备份才能使所有文件保持其保存状态。因此,如果想不让宝贵数据陷入灾难,创建频繁的备份是必须的。
RAID 1中的读性能通常与单独的硬盘差不多—-从A和B里一起读数据,谁出数据快就采用谁的,写的话就是要同时写到两个盘里去。因此,使用RAID 1来获得额外更多的读写性能是不太可能的。以下是RAID 1的工作原理图,如果HDD1坏了,那么HDD2直接上任,若HDD1里的东西被删除了,那么HDD2也会被删除,即使它上任了也是坏的。
RAID 5
这是目前用的最多的一种方式。 因为 RAID5 是一种将存储性能、数据安全、存储成本 兼顾的一种方案。 RAID5模式中,不再需要用单独的磁盘写校验码了。它把校验码信息分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。
RAID5校验位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算) RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。
RAID 10和RAID 01
所谓RAID 10,其实就是磁盘阵列先RAID 1,后RAID 0
,同理,RAID 01也是先RAID 0,后RAID 1
。无论是1+0还是0+1,都至少需要4个硬盘。
就像图里说的“在六个硬盘列里,RAID 10比RAID 01更安全”。的确,RAID 10也凭借很棒的容错能力和恢复能力当选了大多数的RAID配置,为什么不要RAID 01呢?那就是如果在RAID 0那一步磁盘就坏了,那RAID 1那步就没有意义了,因为生成的镜像全是坏镜像。
总结:
1. n代表硬盘总数
2. JBOD(Just a Bunch Of Disks)指将数个物理硬盘,在操作系统中合并成一个逻辑硬盘,以直接增加容量
3.依不同 RAID 厂商实现算法对于性能表现会有不同,性能公式仅供参考
4.RAID 10、50、60 依实现 Parity 不同公式也不同