在监控项目的存储过程中,磁盘阵列是经常使用的技术。那么,什么是磁盘阵列?为什么需要使用磁盘阵列呢?Raid1、Raid2、Raid5、Raid6和Raid10各自有什么优势?本期我们来详细了解下。

一、Raid是什么?它有什么作用?

1. 什么是Raid

Raid指的是冗余磁盘阵列,它是通过阵列控制器管理多个硬盘驱动器组成存储系统。最初,研发Raid的目的是为了用成本较低的小磁盘替代昂贵的大磁盘,从而降低成本。随着技术的发展,现在的磁盘阵列采用了冗余信息的方式,从而具备了数据保护功能。

2. 服务器为什么要使用磁盘阵列?它有两个主要作用:

提供容错功能

普通的磁盘驱动器无法提供容错功能,而磁盘阵列可以通过数据校验提供容错功能。服务器会将数据写入多个磁盘,以保证数据的可用性,即使其中某个磁盘出现故障,重要数据也不会丢失。

提高传输速率

磁盘阵列将多个磁盘组成一个阵列,在数据读取和写入时可以同时操作多个磁盘,从而大幅减少数据存储时间,并提高使用效率。

二、常用Raid的优缺点

Raid 0:需要至少一块硬盘

优势:数据读取和写入速度最快,同时提高了硬盘的总容量。例如,使用3块80G硬盘组成Raid0后,总容量为240G,即利用率达到100%,速度也相对较快。缺点:无冗余能力,一块硬盘损坏,数据将全部丢失。

建议:适用于对数据安全性要求不高的项目。

Raid 1:至少需要2块硬盘

优势:具备镜像备份功能,提高了数据的安全性。一块硬盘正常运行,另外一块硬盘镜像备份数据,保障数据的安全。如果一块硬盘损坏,另一块硬盘还有完整的数据,因此安全性很高。缺点:性能提升不明显,硬盘利用率只有50%,有些浪费。建议:适用于对数据安全性要求较高的项目。

Raid5:至少需要3块硬盘

优势:Raid5同时兼顾了Raid0和Raid1的优势。RAID5至少需要三块硬盘,通常使用四块硬盘,其中一块硬盘用来做数据冗余备份。如果一块硬盘出现故障,我们只需要更换故障的硬盘,系统会自动进行数据同步。

可用容量:单块磁盘容量(n-1),这里n是磁盘数量。

在数据安全性方面,Raid1最高,Raid5次于Raid1。

缺点:只允许单盘故障,一旦出现硬盘故障,必须尽快处理。若有硬盘坏掉,Raid5的IO/CPU性能会显著下降,性能也会急剧降低。

建议:如果磁盘数量有限,并对数据安全性和性能要求较高,可以选择Raid5;如果磁盘较多,可考虑使用Raid10。

Raid6:至少需要4块硬盘

优势:Raid6是在Raid5的基础上设计的,可以提供更高的数据保护性能。它可以允许有两块硬盘损坏,可用容量为C=(N-2)×D (C为可用容量,N为磁盘数量,D为单个磁盘容量)。

例如,4块1T硬盘组成Raid6,可用容量为:(4-2)×1000GB=2000GB=2T。

缺点:性能提升不是很明显。建议:适用于对数据安全性要求高,对性能要求不高的项目。

Raid10:至少需要4块硬盘

Raid10是Raid1和Raid0的结合体,利用奇偶校验实现条带集镜像,因此既具备了Raid0的速度,又具备了Raid1的安全性。

优势:兼顾了安全性和速度。在有4块硬盘的情况下,Raid10允许两块硬盘发生故障。随着硬盘数量的增加,容错量也会相应提升,这是Raid5所无法做到的。缺点:对硬盘数量的要求较高,硬盘利用率只有50%。

建议:如果有足够数量的硬盘,建议选择Raid10。

还有Raid50、Raid60等其他类型的Raid,这里就不一一介绍了。

三、Raid5与Raid10的选择

关于RAID5与RAID10的选择一直存在争议,那么Raid5与Raid10哪个更好呢?

1、安全性方面的比较

RAID10的安全性高于RAID5。通过简单的分析:当盘1损坏时,对于RAID10,只有当盘1对应的镜像盘也损坏,才会导致RAID失效。但是对于RAID5,剩下的3块盘中,任何一块盘出现故障,都将导致RAID失效。

2、空间利用率的比较

RAID10的利用率是50%,RAID5的利用率是75%。随着硬盘数量的增加,RAID5的空间利用率也会增加。

3、读写性能方面的比较

RAID10和RAID5在读操作方面,性能基本一致。因为RAID10和RAID5在提供有效数据读取方面的性能指标相似。

4、特殊情况下:有坏盘,无热备RAID5的CPU和IO性能会显著下降。因为数据不完整,在特殊软件下,RAID5的性能会受到极大影响。而RAID10是条带化+镜像,坏盘影响读性能,不会影响写性能,无需重构。此时的RAID10要强过RAID5。

四、Raid应用的选择

RAID 等级的选择主要考虑三个因素,即数据可用性、I/O 性能和成本。当前,主流的RAID等级有RAID0、RAID1、RAID5、RAID6和RAID10。根据项目的具体要求,如数据特点、性能、磁盘数量等,选择合适的RAID等级。

RAID 等级技术对比图:

在实际应用中,应根据数据的特点和具体情况,综合考虑数据可用性、性能和成本,选择合适的RAID等级。

如果对数据可用性要求不高,选择RAID0获得高性能。

如果可用性和性能重要,可以选择RAID1根据磁盘数量。

如果可用性、性能和成本都很重要,则可以选择RAID5根据一般的数据传输和磁盘数量选择。

如果可用性和安全性很重要,可选用RAID10。