探索中国CIO人才现状 | 第四季调研报告
RAID大起底:哪些优势多少类型?
2015-06-29  来源:techtarget

RAID用来代表廉价冗余磁盘阵列。今天这个术语已经被更新为独立冗余磁盘阵列。RAID是将独立的物理驱动器组织在一起形成一个更大的驱动器的方式,这被称为RAID集。 RAID可以使许多小磁盘合并成一个大的磁盘分配给服务器。 RAID集将所有较小的物理驱动器作为一个逻辑磁盘映射到你的服务器。逻辑磁盘称为LUN或逻辑单元号。使用RAID有两个主要优势。更好的性能和更高的可用性,这意味着它会更快,更不容易损坏。

RAID优势

性能得到提升,这是因为服务器在从磁盘访问数据时,有更多的磁盘参与读写。

可用性得到提升,是因为RAID控制器可以从奇偶校验信息中重建丢失的数据。什么是奇偶校验位?校验位是写入磁盘数据的一个奇偶校验值,它沿着原始数据的写入而得到校验值。RAID可以在主机上以软件形式实现,例如windows的FtdISK卷,或者可以由存储控制器上的硬件实现。使用硬件RAID的服务器永远不会知道它使用的RAID中有一块磁盘损坏。当硬盘损坏时,控制器通过尚存在RAID集上的校验信息来重建这份数据。

有许多不同的方式将驱动器组织在一起形成RAID集。这些组织硬盘不同的方法被称为RAID类型。 RAID类型是从0到5中的数字编号表示正在使用的RAID的级别。 RAID级别中0,1和5是最常见的。不同RAID类型的组合可在一起使用。例如,您可以创建两个RAID0,然后再将两个RAID0组合为一个RAID1。这将从根本上给你RAID0的性能优势和RAID1的可用性优势。

为了在一个RAID10中允许多个驱动器故障,您应该创建多个RAID1镜像,然后跨镜像使用RAID0做条带,只要多个驱动器故障发生在不同的镜像中,RAID集仍然可用。如果你创建两个RAID0条带集,然后将它们做镜像,同一条带内失去单个磁盘,那么所有访问将转移到镜像的条带集中。

你需要哪个RAID级别取决于你服务器上运行的应用类型。RAID0是最快的。RAID1有最高的可用性,RAID5处于两者之间。

RAID类型

以下是在SAN存储阵列中用到的不同RAID类型的描述。并不是所有的存储阵列厂商都支持所有类型的RAID。你的供应商支持什么样的RAID类型?

RAID0:RAID0叫做磁盘条带。所有数据都分散RAID集所有磁盘中的块上。RAID0具有出色的性能,因为你将负荷分散到多个物理驱动器上。RAID 0没有生成的奇偶校验位。因此写入到RAID0磁盘时,没有任何的写惩罚。 RAID0可以获得更好的性能,但不是为高可用性设计,因为没有为RAID0没有校验信息。 RAID0至少需要两个物理磁盘。

RAID1:RAID1称为磁盘镜像。所有数据都被写入到至少两块独立的物理磁盘。磁盘基本上互为镜像。如果一个磁盘发生故障,另一个可以用来检索数据。磁盘镜像对于读操作来说是十分适合的。写入磁盘时,由于需要的数据将被写入两次,所以它的速度会更慢。 RAID1至少需要两个物理磁盘。

RAID1+0:RAID1+0,也称之为RAID10,将镜像磁盘结合在一起做条带化。数据通常都是先做镜像然后再做条带。镜像条带集来完成相同的任务,但比条带镜像集有更少的容错。如果你失去了在条带集中的一个驱动器,所有的数据访问必须从其他条带集,因为条带集没有校验。 RAID 1 + 0最少需要四个物理磁盘。

RAID2:RAID2不再被使用。

RAID3:RAID3使用单独的磁盘来存储RAID控制器生成的校验信息,它将校验信息和数据盘分离,而非采用RAID5一样的条带存储校验信息。该RAID类型现在不是很常用,因为当有很多小数据请求时,它的性能非常差,例如数据库应用。这种类型在大数据块顺序数据传输应用下表现良好。视频服务器类的应用使用这个RAID类型会比较好。RAID3最少需要3块物理磁盘。

RAID4:RAID4对于顺序数据访问非常好,但不是经常用到。

RAID5:RAID5使用带校验的磁盘条带。数据在所有RAID集上的磁盘做条带,并把需要的校验信息进行条带存放,当磁盘损坏时用于恢复数据。RAID5是最常用的数据类型,因为它在性能和可用性上有很好的平衡。RAID5至少需要3块物理磁盘。

自适应RAID:RAID自适应RAID让控制器弄清楚如何在磁盘上存储奇偶校验信息。它将在RAID 3和RAID 5之间做选择,取决于哪个RAID在数据写入时表现更好。

RAID6:RAID6通过两次奇偶校验来提升可用性,它允许一个RAID组损坏两块磁盘而不丢失数据。RAID6被视为应用于SATA环境,要求数据长时间保留的解决方案,例如数据归档和基于磁盘的备份。

RAID级别的最小磁盘数和重建

关于在一个RAID集中使用比最小磁盘数更多的磁盘,这将会有更多的可用存储空间和更多的驱动器给操作系统使用。大多数RAID阵列在一个RAID集中最多使用16个驱动器,由于当驱动器个数很高时,将会带来较高的开销,性能会出现递减情况。对于RAID5和RAID10来说,最多八个驱动器看起来是一个好的规则。如果你需要更多的空间,你可以使用其他磁盘创建另一个RAID集。根据经验,另一个规则,尽量保持不同的工作负载类型的数据运行在不同的RAID集。您可以在任何场景下使用RAID10以获得最佳性能,但大多数预算规定使用RAID5来作为数据库的数据卷,用RAID1或RAID10作为数据库日志卷。

重建时间取决于RAID类型。如果您使用的是基于软件的RAID,在RAID组内更多的驱动器意味着更长的重建时间。如果它是基于硬件的RAID,则重建时间通常由驱动器本身的容量所决定,由于硬件通常将备用盘放在RAID集内部或外部。146 GB的驱动器的重建时间要比73GB的驱动器长。