RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,用多个独立的磁盘组成一个大的磁盘系统,目的实现比单块磁盘更好的存储性能和更高的可靠性。
RAID方案常见的可以分为:
- RAID0
- RAID1
- RAID5
- RAID6
- RAID10
RAID0
将数据分为N份,以独立并行实现N块磁盘的读写,那么这N份数据会同时并发的写到磁盘中,因此写数据性能非常的高。
RAID0的问题是,它并不提供数据校验或冗余备份,因此一旦某块磁盘损坏了,其他磁盘的数据就不完整,导致全部数据直接丢失,无法恢复。
RAID1
RAID1其实与RAID0效果刚好相反。
RAID1 写数据的时候,将同一份数据无差别分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用。空间利用率不高。
数据有一个冗余备份,读数据时太繁忙可从镜像盘读取,读性能也较好;假如任何一块磁盘损坏,还可以从另外一块磁盘恢复,数据的可靠性强。
RAID5
RAID5之前,先了解一下不常用的RAID3:在RAID0前提下,增加第N块磁盘用记录校验码数据。当某块数据盘坏掉,可以可以利用其它的N-1块磁盘去恢复数据。
第N块磁盘是校验码磁盘,任何数据的写入都会要去更新这块磁盘,导致这块磁盘的读写是最频繁的,也就非常的容易损坏。
RAID5中,不再单独设置校验码磁盘。而把校验码信息分布到各个磁盘上。
RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。
这是目前用的最多的一种方式。RAID5 将 存储性能、数据安全、存储成本 兼顾。
RAID6
RAID6在RAID5的基础上再次改进,引入了双重校验的概念。在两块磁盘同时损坏时,也能恢复数据。
RAID6除了每块磁盘上都有同级数据XOR校验区以外,还有每个数据块的XOR校验区,相当于每个数据块有两个校验保护,数据的冗余性更高。
但是RAID6的设计也带来了很高的复杂度,虽然数据冗余性好,读取的效率也比较高,但是写数据的性能就很差。因此RAID6在实际中应用的比较少。(可用于仓库数据,读多写少时)
RAID10
RAID10其实就是RAID1与RAID0的一个合体。
首先基于RAID1模式将磁盘分为2份,写数据的时候,将同一份数据无差别的写两份到磁盘。得到一个RAID1。
再将这样的N个RAID1组RAID0,以独立并行实现这N个RAID1的读写。每个RAID1中都不是完整数据。
RAID10也有一半磁盘空间用于存储冗余数据的,相比与RAID1性能有提升但利用率仍然不高。