RAID(独立磁盘冗余阵列)是当下使用较多的磁盘存储技术。其向下隐藏了磁盘的组合方式,向上提供了相对于单块物理磁盘更加优秀的虚拟磁盘。根据其组合方式不同,逻辑磁盘在可靠性,IO速度,磁盘容量等方面有不同的表现。以下介绍几种常见的RAID阵列。
- RAID0:此种磁盘阵列也称为数据条带化,最小磁盘数量为2。在IO操作时,数据同时从不同的磁盘中进行读写,由于CPU处理速度显著大于磁盘IO速度,故该逻辑磁盘实际读写速度基本为所有磁盘IO速度之和。鉴于其不设校验块和冗余数据,逻辑磁盘没有损失容量,为所有物理磁盘之和,作为代价,其数据较为脆弱,任一磁盘损坏都将导致该磁盘阵列损坏。
- RAID1:又名磁盘镜像化,最小磁盘数量为2并且磁盘数量必须为偶数。其将物理磁盘分为数量相同的2组,两组间的磁盘一一对应,若磁盘容量不同则以小的为准。在IO操作时,数据在两组磁盘中存放相同的数据,互为备份。此种方式牺牲了一半磁盘容量,并且在读速度无提升,写速度减半,但其保证了数据的安全可靠,在一份数据损坏的前提下仍可以正常读写。
- RAID3:其最小磁盘数量为3。其中一块磁盘用来存放数据的校验块,除校验磁盘以外的磁盘均为数据盘。在某一块盘发生故障时,可通过校验盘和其他数据盘中的数据倒推出故障盘中的数据,有力地保障了数据安全性。由于校验块的存在,读写速度介于RAID0与RAID1之间。但是每次写数据都会进行数据校验,对校验盘的读写压力较大,校验盘容易成为性能瓶颈。
- RAID5:其最小磁盘数量为3。其中每块磁盘都会留存出一定的空间存放数据校验块,不设置单独的数据校验盘,当某块盘发生故障时,盘上的数据可通过其他盘上的数据校验块倒推而得,读写速度同样介于RAID0与RAID1之间。但由于校验数据块分散在不同的磁盘中,单块盘IO压力较小,写速度较RAID3略高。
- RAID6:其最小磁盘数量为4。其主要解决了RAID5在某块磁盘损坏时系统较为脆弱,无法再承担磁盘损坏风险的问题。其每块磁盘留出两份数据校验的空间用于存放两种不同算法校验块。在某一次磁盘损坏时,得益于校验块的冗余,阵列仍可承担一块磁盘的损坏,提升了系统的可靠性。
- RAID10:其最小磁盘数量为4,并必须为偶数。将磁盘每两个分为一组,每一组先做数据镜像(RAID1),后将每个组为一个单位做数据条带化(RAID1)。这样既可以保证数据的IO速度,也可以保证数据的安全性。
- RAID01:其最小磁盘数量为4,并必须为偶数。将磁盘分为两组,每一组先做数据条带化(RAID0),后将两组磁盘互做镜像(RAID0)。其性能与RAID10并无区别,但是在可靠性上优于Raid10。例如在一块磁盘损坏时,RAID10一旦损坏与该坏盘不同组的任何一块磁盘就会出现异常,而RAID01除非与该坏盘对应的那块盘损坏以外,仍可以承担至少一块坏盘的损失。
最后列出一个表格,直观地展示不同RAID方式的差异。
阵列方式 |
IO速度 |
容量 |
可靠性 |
RAID0 |
非常快 |
无损失 |
差 |
RAID1 |
一般 |
一半容量损失 |
非常好 |
RAID3 |
较快 |
一块磁盘容量损失 |
较好 |
RAID5 |
快 |
一块磁盘容量损失 |
好 |
RAID6 |
快 |
两块磁盘容量损失 |
非常好 |
RAID01 |
非常快 |
一半容量损失 |
非常好 |
RAID10 |
非常快 |
一半容量损失 |
好 |