RAID(Redundant Array of Independent Disks)独立磁盘冗余阵列
就是通过一些手段把多个完全相同的硬盘组合起来成为一个逻辑扇区称为硬盘阵列组,使性能、可靠性超过普通硬盘。操作系统只会把它当做一个硬盘。需要特别说明一点是RAID卡在使用时发热量巨大,这是组装服务器必须考虑到的一点。我经常使用的RAID卡是LSI公司的,给出阵列卡链接在此可以下载产品说明书查看阵列卡的相关性能参数 https://www.broadcom.cn/products/storage/raid-controllers/
RAID分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。 在实际应用中,可以依据自己的实际需求选择不同的RAID方案,下面介绍几种常用等级RAID工作原理。
RAID 0
称为条带化(Striping)存储
把file1=100M 的文件存储在RAID 0 上的硬盘时,会把file1分成多个相同大小的chunk,然后会并行均匀存储在Disk 0 和Disk 1 硬盘上。由于读写时均可以并行处理,因此其读写速率为单个磁盘的N倍(N为组成RAID0的磁盘个数)。
优点:速度快。
缺点:只要有一块硬盘损坏,数据就不完整。安全性太差。
最少硬盘数:2
RAID 1
镜像存储(mirroring)。数据被同等地写入两个或多个磁盘中,写入速度会比较慢,但读取速度会比较快。读取速度可以接近所有磁盘吞吐量的总和,写入速度受限于最慢的磁盘。 RAID1是磁盘利用率最低的一个。如果用两个不同大小的磁盘建立RAID1,可以用空间较小的那一个,较大的磁盘多出来的部分可以作他用,不会浪费。
提醒一点:镜像存储是防止数据物理损坏,当你在服务器上删除数据时互为镜像的硬盘上数据都会删除,别想着恢复。
优点:互为镜像的硬盘可以坏N-1块,安全性提升。
缺点:硬盘空间利用率低。
最少硬盘数:2
RAID 5
把数据和相对应的奇偶校验信息(XOR)(下图中的Ap)分别存储于组成RAID5的各个磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说消耗相当于一块磁盘容量的空间用于存储奇偶校验信息保证数据的安全性。因此当RAID5的一块磁盘发生损坏后,只要替换掉坏掉的硬盘RAID会利用其余硬盘上的数据和奇偶校验信息重建此磁盘上的数据。
RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢。
优点:读性能提升,安全性提升,允许一块硬盘损坏。
缺点:消耗一块硬盘的空间用来存放奇偶校验信息。
最少硬盘数:3
RAID 6
类似RAID5,但是增加了第二个独立的奇偶校验信息块,两个独立的奇偶系统使用不同的算法, 数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息相当于两块硬盘的空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。每个硬盘上除了都有同级数据XOR校验区外,还有一个针对每个数据 块的XOR校验区。
伴随着硬盘容量的增长,RAID6已经变得越来越重要。TB级别的硬盘上更容易造成数据丢失, 数据重建过程(比如RAID5,只允许一块硬盘损坏)也越来越长,甚至到数周,这是完全不可接受的。而RAID6允许两 块硬盘同时发生故障,所以渐渐受到人们的青睐。
优点:可以坏2快硬盘。
缺点:奇偶校验信息损失两块磁盘空间,对写速度也有一定影响。
最少硬盘数:4
RAID 01 和RAID 10
数字读法是yi ling不是shi。顾名思义RAID01是RAID0和RAID1的结合。先做条带(0)再做镜像(1),RAID10是先做镜像(1)再做条带(0)。RAID01和RAID10非常相似,二者在读写性能上没有什么差别。但是在安全性RAID10要好于 RAID01。如图中所示,假设DISK0损坏,在RAID10中,在剩下的3块盘中,只有当DISK1故障, 整个RAID才会失效。但在RAID01中,DISK0损坏后,DISK1失效,在剩下的3块硬盘中只要DISK2或DISK3两个盘中任何一个损坏,都会导致RAID失效,所以使用RAID10。
RAID10优点:安全性更高。至于读写性能,与cache有很大关联,最好根据实际情况测试比较选择。
缺点:空间利用率低,磁盘利用率N/2。