简单分析服务器不同Raid级别的容错能力,IO性能和存储容量

RAID基本概念

磁盘组和虚拟磁盘

由于现代数据中心业务量的与日俱增,单台服务器上需要运行的数据也日益增多。当单个物理磁盘在容量和安全性上不足以支持系统业务时,就需要将多个磁盘以某种特定方式组合起来,对外作为一个可见的磁盘来使用,才可满足实际需要。磁盘组,就是将一组物理磁盘组合起来,作为一个整体对外体现,是虚拟磁盘的基础。

虚拟磁盘,即使用磁盘组划分出来的连续的数据存储单元,相当于一个个独立的磁盘,通过一定的配置,使其能满足业务对容量、安全性、冗余性的要求。

一个虚拟磁盘可以是:

● 一个完整的磁盘组。

● 多个完整的磁盘组。

● 一个磁盘组的一部分。

● 多个磁盘组的一部分(每个磁盘组划分一部分,共同组成虚拟磁盘)。

在下文的描述中:

● 磁盘组一般会表述为“Drive Group”(简称“DG”)、“Array”、RAID组。

● 虚拟磁盘一般会表述为“Virtual Drive”、“Virtual Disk”(简称“VD”)、“Volume”、“Logical Device”(简称“LD”)等。

RAID级别分类

RAID(Redundant Arrays of Independent Disks)是将多块物理磁盘通过RAID控制器组合成虚拟的单块大容量磁盘使用,从而提供比单个磁盘更高的存储性能、更高的I/O性能及可靠性。

● RAID 0

● RAID 1

● RAID 1ADM

● RAID 5

● RAID 6

● RAID 10

● RAID 10ADM

● RAID 1E

● RAID 50

● RAID 60

● 容错能力

● IO性能

存储容量

RAID级别就不详细介绍了,想了解的可以搜一下,网上有很多说明!

容错能力

● RAID 0:不提供容错功能。任意一个成员盘出现故障,都会导致数据丢失。通过条带化方式同时在多个成员盘中写入数据。RAID 0对于需要高性能但不需要容错的应用场景非常理想。

● RAID 1:提供100%的数据冗余能力。当一个成员盘故障时,可以使用RAID组中对应的其他磁盘的数据来运行系统,并重构故障盘。因为一个成员盘的内容会完全备份写入另一个磁盘, 所以如果其中一个成员盘出现故障, 则不会丢失任何数据。成对的成员盘在任何时候都包含相同的数据。RAID 1组是需要最大容错能力和最小容量要求的应用场景的理想选择。

● RAID 1ADM:提供100%的数据冗余能力。当一个成员盘故障时,可以使用RAID组中对应的其他磁盘的数据来运行系统,并重构故障盘。因为一个成员盘的内容会完全备份写入另两个磁盘, 所以如果其中一个成员盘出现故障, 则不会丢失任何数据。其他的成员盘在任何时候都包含相同的数据。RAID 1ADM组是需要最大容错能力和最小容量要求的应用场景的理想选择。

● RAID 5:结合了分布式奇偶校验和磁盘条带化。奇偶校验在不需要备份全部磁盘内容的情况下,为1个磁盘提供了冗余特性。当其中一个成员盘故障时,RAID控制卡使用奇偶校验数据来重构所有丢失的信息。RAID 5使用较小的系统开销为系统提供了足够的容错能力。

● RAID 6:结合了分布式奇偶校验和磁盘条带化。奇偶校验在不需要备份全部磁盘内容的情况下,为2个磁盘提供了冗余特性。当其中一个成员盘故障时,RAID控制卡使用奇偶校验数据来重构所有丢失的信息。RAID 6使用较小的系统开销为系统提供了足够的容错能力。

● RAID 10:使用多个RAID 1提供完整的数据冗余能力。RAID 10对所有需要通过镜像磁盘组提供100% 冗余能力的场景都适用。

● RAID 10ADM:使用多个RAID 1ADM提供完整的数据冗余能力。RAID 10ADM对所有需要通过镜像磁盘组提供100% 冗余能力的场景都适用。

● RAID 1E:使用多个RAID 1提供完整的数据冗余能力。RAID 1E对所有需要通过镜像磁盘组提供100% 冗余能力的场景都适用。

● RAID 50:使用多个RAID 5的分布式奇偶校验提供数据冗余能力。在保证数据完整性的情况下,每个RAID 5子组允许1个成员盘故障。

● RAID 60:使用多个RAID 6的分布式奇偶校验提供数据冗余能力。在保证数据完整性的情况下,每个RAID 6子组允许2个成员盘故障。

IO性能

RAID组可作为一个单独的存储单元或多个虚拟单元被系统使用。由于可以同时访问多个磁盘,使得针对RAID组的I/O读写速率较普通磁盘更高。

● RAID 0:提供优异的性能。RAID 0将数据分割为较小的数据块并写入到不同的磁盘中,由于可以同时对多个磁盘进行读写,RAID 0提升了IO性能。

● RAID 1:由于RAID组中的硬盘都是成对出现,写数据时也必须同时写入2份,从而占用更多的时间和资源,导致性能降低。

● RAID 1ADM:由于RAID组中的硬盘都是三块出现,写数据时也必须同时写入3份,从而占用更多的时间和资源,导致性能降低。

● RAID 5:提供了较高的数据吞吐能力。由于成员盘上同时保留常规数据和校验数据,每个成员盘都可以独立读写,再加上完善的Cache算法,使得RAID 5在很多应用场景中都有出色的性能表现。

● RAID 6:在需要高可靠性、高响应率、高传输率的场景下,RAID 6是较为适合的RAID级别,其提供了高数据吞吐量、数据冗余性和较高的IO性能。由于RAID 6需要为每个成员盘写入2套校验数据,导致其在写操作期间性能降低。

● RAID 10:由RAID 0子组提供高数据传输率的同时,RAID 10在数据存储方面表现优异。IO性能随着子组数量的增加而提升。

● RAID 10ADM:由RAID 0子组提供高数据传输率的同时,RAID 10ADM在数据存储方面表现优异。IO性能随着子组数量的增加而提升。

● RAID 1E:允许使用更多的物理硬盘,至少由三个硬盘组成。提供了数据冗余功能及较高的性能。

● RAID 50:在需要高可靠性、高响应率、高传输率的场景下,RAID 50表现最好。IO性能随着子组数量的增加而提升。

● RAID 60:使用场景与RAID 50类似,但是由于每个成员盘必须写入2组奇偶校验数据,使得在写操作中性能降低,因此RAID 60不适用于大量写入任务。

存储容量

在选择RAID级别时,其存储容量也是一个重要参数。

● RAID 0:在指定一组磁盘后,同等情况下,RAID 0可以提供个最大的存储容量,可用容量=成员盘容量之和。

● RAID 1:由于对一个磁盘进行写入时,必须同时写入另一个磁盘,导致存储空间损耗。可用容量=成员盘最小容量。

● RAID 1ADM:由于对一个磁盘进行写入时,必须同时写入另两个磁盘,导致存储空间损耗。可用容量=成员盘最小容量。

● RAID 5:校验数据块与常规数据块隔离,因此整体上来说,校验数据会占用1个成员盘的容量。可用空间=成员盘最小容量x(成员盘个数-1)。

● RAID 6:由于2个独立的校验数据块与常规数据块隔离,整体上来说,校验数据会占用2个成员盘的容量。可用空间=成员盘最小容量x(成员盘个数-2)。

● RAID 10:可用容量=子组容量之和。

● RAID 10ADM:可用容量=子组容量之和。

● RAID 1E:由于对一个磁盘进行写入时,数据是镜像的,导致存储空间损耗。可用容量=成员盘容量之和x1/2。

● RAID 50:可用容量=子组容量之和。

● RAID 60:可用容量=子组容量之和。