中国科学院计算技术研究所数据存储技术研究中心

存储科普 当前位置 >> 存储研究中心 >> 存储科普

讲解Raid类型及利弊权衡

发布日期:2011-09-05

什么是磁盘条带化(RAID)

    通过使用磁盘条带,存储系统硬件可以同时且独立地从多个磁盘读写数据。磁盘条带化通过允许若干读/写磁头同时执行来增强性能。 从每个磁盘读取或向其写入的信息量组成了条带元素大小。条带大小等于条带元素大小乘以组中的磁盘数。例如:假设条带元素大小 (Stripe element size)为128个扇区(默认)。如果组中有5个磁盘,则用5*条带元素大小128=640个扇区。在大多数RAID 类型中,存储系统均使用磁盘条带化。

    什么是镜像:镜像维护了逻辑磁盘映像的拷贝,可 以在无法访问source image时继续提供访问。镜像包括硬件镜像(SP同步磁盘映像)和软件镜像(操作系统同步映像)。但操作系统同步映像会占用 服务器资源。在存储系统中,可以通过将磁盘绑定为RAID1镜像对或RAID1/0组来创建硬件镜像。对于任一RAID类型的LUN,存储系统可以使用 MirrorView软件维护远程拷贝。

RAID类型 RAID 5组(单个存取阵列)

    RAID 5组通常包括5个磁盘,但也可以包含3-16块磁盘,RAID 5使用磁盘条带化。使用RAID5组最多可以创建32个RAID 5 LUN,以将磁盘空间分配给不同的用户、服务器及应用。

    存储系统将写入奇偶校验信息,以在组中某个磁盘出现故障时能够继续运行。更换故障磁盘后,SP使用存储在正常工作磁盘上的信息来重建组。在重建过程中,系统性能会降低。但是,存储系统可以继续运行,并且用户可以访问所有数据(包括存储在故障磁盘上的数据)

 
    上图显示了5个磁盘的RAID5组,具有缺省条带元素大小(Stripe element size)的用户数据和奇偶校验数据。条带大小是所有条带元素的总和,注意:条带元素大小缺省为128个扇区,即65536字节。另外RAID5组具有优异的读取性能和良好的写入性能。优异的写入性能主要得益于存储系统缓存。

RAID 3组(并行存储阵列)

    RAID3组由5个或9个磁盘组成。硬件始终从所有磁盘中读写数据。RAID3组使用磁盘条带化。为了维护RAID3的性能,你可以为每个RAID3组仅创建一个LUN。

    存储系统将写入奇偶校验信息,以在组中某个磁盘出现故障时能够继续运行。更换故障磁盘后,SP使用存储在正常工作磁盘上的信息来重建组。在重建过程中,系统 性能会降低。但是,存储系统可以继续运行,并且用户可以访问所有数据(包括存储在故障磁盘上的数据),这与RAID5相同。

 
如上图显示了RAID3组中数据块大小为2KB的用户数据和奇偶校验数据。RAID3和RAID5的不同点在于:

1.RAID3组中,硬件顺序处理磁盘请求,而RAID5组中,硬件可以间隔处理磁盘请求。

2.RAID3组中,奇偶校验信息存储在一个磁盘上,而RAID5组中,奇偶校验信息存储在所有磁盘上。

3.RAID3组中,每个磁盘的I/O仅在较小单位(一个扇区)内进行。

    另外,每个RAID3组均需要一些专用SP内存(建议每组为6MB)。此内存在创建组时进行分配,不能再用于存储系统缓存。为了获得最佳性能,建议不要把RAID3组和RAID5、RAID1/0或RAID0组同时使用,但因为RAID1和单个单元所需占用的SP处理能力较少,所以可以与RAID3配合工作。

 

RAID1镜像

    RAID1组由两个被存储系统硬件自动镜像的磁盘组成,可以使用RAID1组创建多个RAID1 LUN,以将磁盘空间分配给不同的用户、服务器和应用。

    存储系统中的RAID1硬件镜像与软件镜像、远程镜像或其它磁盘类型的硬件镜像不同。从功能上,区别在于不能手动停止RAID1的镜像,因此也不能单独访问 其中一个映像。如果要单独使用此类镜像中的一个磁盘,必须对镜像解除绑定(将丢失所有数据),再重新绑定为其它类型。

对于存储系统,RAID1硬件镜像具有以下优点:

1.自动运行,无需发出命令来启动它

2.映像的物理复制

3.可以选择重建时段,在此期间SP可以在出现故障后重新创建次映像。

对于RAID1,存储系统向两个磁盘写入相同的数据。

 
RAID0(非固定阵列)

    RAID0组由3-16个磁盘组成。RAID0组使用磁盘条带化,使用这种技术硬件可以同时向多个磁盘读写数据。每个RAID0组最多可以创建32个LUN

    使用RAID0时,硬件不在任何磁盘上维护奇偶校验信息,此类型本身没有数据冗余。RAID0通过对不同磁盘同时进行I/O来提高性能。

RAID 1/0组(镜像的RAID0组)

    RAID1/0 可以由4/6/7/10/12/14/16个磁盘组成,这些磁盘构成两个镜像映像,每个映像包含2-8个磁盘,RAID1/0使用磁盘条带化。它综合了 RAID0的速度优势和镜像的冗余优势。使用RAID1/0组最多可以创建32个RAID1/0 LUN。

 
    上图显示了6个磁盘的RAID1/0组,RAID1/0组可以在多个磁盘出现故障后继续运行,前提是每个映像对中有一个磁盘能够正常运行。 单个磁盘单元

    单个磁盘单元是独立于机柜中任何其他磁盘的绑定磁盘,它本身没有高可用性,可通过软件镜像将它和其它单个单元配合使用来提高可用性。没个单个磁盘单元可以创建一个LUN 热备盘(hoyspare)

    热备盘是专用的备用磁盘,用户不能在此磁盘上存储信息,热备盘具有全局性,如果RAID5组、RAID3组、RAID1或RAID1/0组中任一磁盘出现故 障,SP可以在热备盘上自动重建出现故障的磁盘的结构。SP完成重建后,磁盘组将使用热备盘替代出现故障的磁盘正常运行。更换故障磁盘后,SP会将数据从 热备盘拷贝到替换磁盘上。拷贝完成后,磁盘组将使用原插槽中的磁盘,并且SP将自动停止使用热备盘。注意:如果热备盘的容量小于RAID组中故障磁盘的容量,则RAID组将无法使用热备盘。如果使用不同容量的多块热备盘,存储系统将自动使用适合大小的热备盘替换出现故障的磁盘。

 RAID利弊权衡

    下表比较了各种RAID类型读写性能和每GB的相对成本。表中数据为理论最大值。

性能方面考虑:

1. RAID5具有单个存取功能,允许对组中的每个磁盘同时进行读取,可提供较高的读吞吐量。如果存储系统使用写缓存,RAID5将具有优异的写入性能。

2. RAID3 具有病行存取功能,可以为连续的大块(大于 64 KB 的块)请求提供较高的吞吐量。使用 RAID 3 时,系统将在每个请求中访问所有五个磁盘,但 是在写入前无需读取数据和奇偶校验 - 这对大块请求来说是一个优点,但对小块请求则不是。RAID 3 使用 SP 内存时无需缓存,这意味着您不必使 用缓存所需的次 SP 和 BBU。通常,I/O 请求大小越大,RAID 3 组的性能越好。当读取请求达到 1MB 时,读取性能将快速增强。当写入 请求为大于 256 KB 的连续写入请求时,写入性能将大大增强。对于发出极大 I/O 请求的应用,RAID 3 LUN 提供的写入性能明显高 于 RAID 5 LUN。

3. RAID 1 镜像对将其磁盘锁定为同步状态,但是 SP 可以从读 / 写磁头相距较近的磁盘读取数据。因此,RAID 1 的读取性能是单个磁盘读取性能的两倍,而其写入性能与单个磁盘的写入性能相同。

4. RAID 0 组 (非冗余单个存取阵列)或 RAID 1/0 组(镜像 RAID 0组)可以同时执行的 I/O 操作数量与组中的磁盘数量相同。由于RAID 1 /0 锁定 RAID 0 磁盘对的方式与 RAID 1 相同,因此 RAID1/0 的性能等于磁盘对的数量乘以 RAID 1 的性能数值。如果对 某一特定 LUN 要求较高的吞吐量,请使用 RAID 1/0 或 RAID 0 组。RAID1/0 组至少需要四个磁盘; RAID 0 组至少需 要三个磁盘。

5.单个单元的每个读取或写入操作只能进行一个 I/O 操作。

    存储灵活性方面考虑:某些RAID 组类型(RAID 5、RAID 1、RAID 1/0 和 RAID 0)允许在每个组中最多创建 32 个 LUN。这可以增加灵活 性,特别是对于较大的磁盘,因为这使您可以将不同大小的 LUN 分配给不同的服务器、应用和用户。相反,使用 RAID 3 时,每个 RAID 组只 能有一个LUN,并且组中必须包含五个或九个磁盘,对一个服务器、应用或用户来说这是相当大的存储块。但是,RAID 3 的属性使其成为单线程类型应用 的理想类型。

    数据可用性和磁盘空间使用率方面考虑:如果数据可用性至关重要,并且您无法花费大量时间用于更换磁盘、重新绑定磁盘、使操作系统可以访问磁盘以及从备份载入信息等操作,请使用冗余 RAID 组:RAID 5、RAID 3、RAID 1 镜像对或RAID 1/0。如果数据可用性不太重要,或磁盘空间使用率很重要,请绑定单个单元。

    RAID 1 镜像对或 RAID 1/0 组可以提供非常高的数据可用性。它们比RAID 5 或 RAID 3 组更昂贵,因为只有磁盘总容量的 50% 可用于用户数据。

    RAID 5 或 RAID 3 组 可以提供较高的数据可用性,但是比镜像对需要更多的磁盘数。在五磁盘的 RAID 5 或 RAID 3 组中,80% 的磁盘空间可用于用户数据。因 此 RAID 5 和 RAID 3 组的磁盘空间使用率高于镜像对。对于数据高可用性、良好的性能和高磁盘空间使用率同等重要的应 用, RAID 5 或 RAID 3 组通常比 RAID 1 镜像对更为适合。对于任一 RAID 组中的 LUN,您可以通过在远程站点建立远程镜 像来提供灾难恢复功能。

 


RAID组原则

    要确定何时使用 RAID 5 组、RAID 3 组或镜像(即 RAID 1 镜像对、RAID 1/0 组、RAID 0 组、单个磁盘单元或热备盘),您需要权衡以下因素:

1.数据可用性的重要性

2.性能的重要性

3.数据存储量

4.磁盘空间的成本 1.适合使用 RAID 5 组(单个存取阵列)的应用

◆ 数据可用性非常重要。

◆ 需要存储大量数据。

◆ 多任务应用使用不同大小的 I/O 转移。

◆ 需要优异的读取性能和良好的写入性能(使用写缓存时写入性能极好)。

◆ 需要每个 RAID 组多个 LUN 的灵活性。 2.适合使用 RAID 3 组(并行存取阵列)的应用

◆ 数据可用性非常重要。

◆ 需要存储大量数据。

◆ 使用较大 I/O 转移(大于 64 KB)的单任务应用。操作系统必须允许从磁盘地址是 2 KB 的倍数处(从 LUN 起始地址开始计算)开始进行转移。 3.适合使用 RAID 1 镜像对的应用

◆ 数据可用性非常重要。

◆ 写访问速率很重要,并且写入活动很多。 4.适合使用 RAID 1/0 组(镜像非冗余阵列)的应用

◆ 数据可用性至关重要。

◆ 整体性能非常重要。 5.适合使用 RAID 0 组(非冗余单个存取阵列)的应用

◆ 高可用性不重要。

◆ 在单个磁盘出现故障时,可以承受无法访问存储在 LUN 上的数据

所带来的损失。

◆ 整体性能非常重要。 6.适合使用单个单元的应用

◆ 高可用性不重要。

◆ 写访问速率有点重要。 7.适合使用热备盘的情况

◆ 在任何 RAID 5、RAID 3、RAID 1/0 或 RAID 1 组中,高可用性非常重要,因此要求 RAID 组中任一磁盘出现故障时无需人为干预即可迅速恢复数据冗余。

◆ 将由于 RAID 5 或 RAID 3 组中磁盘出现故障而导致性能降低的情况降至最低十分重要。