个人工具

Quick HOWTO : Ch26 : Linux Software RAID/zh

来自Ubuntu中文

Lipeng8413讨论 | 贡献2008年6月5日 (四) 14:54的版本 将RAID配置为单用户模式

跳转至: 导航, 搜索


简介

使用独立磁盘冗余阵列(RAID)的主要目的是提高磁盘数据处理能力和提供数据冗余。

RAID既能通过操作系统来设置(软件式RAID),也可以在不设置操作系统的情况下通过专用RAID控制卡来实现(硬件式RAID)。这章将向您解释如何在Redhat/Fedora linux下配置软件式RAID结构。

为简洁起见,本章的重点是:在没有/boot或/文件系统的分区上进行RAID设置。

RAID 类型

不管是硬件式或软件式,冗余磁盘阵列RAID能用很多不同的标准来配置,下面我们看看最流行的几种配置方式

线性RAID

在线性RAID中,RAID控制器将RAID集(set)视为一个磁盘链。当前一个磁盘空间被填满后,数据顺序写入磁盘链中的下一个磁盘。 线性RAID的目的是容纳跨磁盘的超大文件系统,而且没有数据冗余性。驱动器故障将损坏您的数据。

Fedora Linux不支持此方式的RAID。

RAID 0

在RAID 0下,RAID控制器试图将数据平均的写入RAID集(set)中的所有磁盘。

将磁盘视为盘子,将数据视为蛋糕。假设你有四个蛋糕-巧克力味、香草味、樱桃味、草莓味-和四个盘子。RAID 0初始操作是将蛋糕切成片,然后将这些片放到每个盘子里。RAID 0 驱动器让操作系统觉得蛋糕是完整的,而且是放到了一个大盘子里。例如,4个9GB的硬盘,配置成RAID 0集的话,操作系统将它们视为一个36GB的硬盘

和线性RAID相似,RAID 0也是为了容纳跨磁盘的超大容量文件系统,并没有数据冗余性。RAID 0的优点是数据访问速度。一个文件分放在四个磁盘上能以四倍于一个磁盘的读取速度读取出来。记住RAID 0常被称为条带集

RAID 0允许磁盘的空间大小不同。当RAID使用完最小磁盘上的条带空间时,它继续使用剩余磁盘的可用空间作为条带集。当这种情况发生时,这部分数据的访问速度将变慢,因为RAID驱动器的数量减少了。所以,RAID 0 最好使用同容量的磁盘。

Fedora Linux支持RAID 0 ,图26.1说明了RAID 0的数据分配过程

RAID 1

在RAID 1方式下,数据被复制放到另一磁盘上。这种RAID方式因此经常被称之为磁盘镜像。想像一下,您将一个同样的故事说给两个人挺,这样的话,如果其中一个人忘记了故事的情节,您可以让另一个来告诉您。

当RAID 1集中的一个磁盘坏了的话,剩下的那个磁盘仍然能够工作。当坏的磁盘被更换后,数据能够自动的从剩下的那个好的磁盘上复制到新磁盘上。在任一主RAID磁盘发生故障时,RAID 1还可以将数据自动的复制到一个热备的空磁盘上。

RAID 1提供了数据冗余性,但没有RAID 0的速度优点。软件式的RAID 1的一个缺点是服务器不得不将数据写入两次以便写入每个镜像磁盘。这回占用数据总线和cpu资源。在硬件式RAID 1下,服务器cpu只需将数据传给RAID磁盘控制器一次,剩下的工作就由磁盘控制器来完成了。这使得在实现RAID 1时,优先选用能提供RAID的磁盘控制器

RAID 1 的一个限制是总的RAID集大小等于磁盘集中容量最小的那块磁盘。这跟RAID 0不同,较大磁盘中剩余部分的磁盘空间会浪费掉。

Fedora Linux支持RAID 1。 图26.1说明了RAID 1方式下的数据分发过程

图26.1 RAID 0和RAID 1 的工作方式

Raid0.gif

RAID 4

RAID 4和RAID 0工作方式一样,但增加了错误纠正或奇偶校验。为达到这个目的,需要再增加一块磁盘

RAID 4需要最少3块磁盘才能组成RAID集,而且它能在其中一个磁盘坏掉的情况下恢复数据。当其中一个磁盘坏掉时,在奇偶校验磁盘的帮助下,数据能够被重建。当坏掉的磁盘被更换后,在奇偶校验磁盘的帮助下丢失的数据在新磁盘中重建

RAID 4既有RAID 0的高访问速度也有RAID 1的数据冗余性。他的最大缺点是数据被条带化(striped)了,但奇偶校验信息没有。换句话说,任何数据在写入RAID集中数据的任何位置时,必须更新奇偶校验磁盘中的数据。奇偶校验磁盘因此成为了瓶颈。因此,RAID 4并不常用。

Fedora Linux不支持RAID 4

RAID 5

RAID 5 改进了RAID 4的工作方式,它将奇偶校验数据条带到RAID集中的所有磁盘上。这就避免了奇偶校验磁盘的瓶颈效应,而保留了RAID 0的高速和RAID 1 的数据冗余性。和RAID 4 一样,RAID 5只能在其中一块磁盘故障时恢复数据。

Fedora Linux支持RAID 5。图26.2说明了RAID 5的数据分放方式

Linux RAID 5需要最少三个磁盘或分区。

图26.2 RAID 5的工作方式

Raid5.gif

前言

专用硬件式RAID磁盘控制器对IDE和SCSI驱动器都是可用的。通常情况下它们有自己的bios,因此在系统开机自检(POST)后你可以手动配置它们。系统可以完全控制硬件式RAID;RAID磁盘控制器来完成所有工作

如果您不能使用硬件式RAID,那么您该了解以下基础知识,按照它们来设置软件式RAID。

IDE驱动器

为了节省开支,许多小公司会使用IDE磁盘,可是IDE磁盘有一些缺点。

  • IDE数据线的总长度只有几英尺长,这样IDE磁盘只能用在小公司
  • IDE磁盘没有交换分区(swap),你不能在系统运行时更换它们
  • 一个IDE控制器上只能接两个IDE设备
  • 当接上第二块IDE设备时,IDE总线的性能会下降
  • IDE总线上一个设备的故障经常导致第二个设备也不能工作。如果你将同一数据线的两个IDE磁盘设置了RAID集的话,这将是致命的。

由于这些原因,当您设置RAID时,我建议您一个控制器上只使用一个IDE磁盘,特别是在公司环境下。在家里或soho办公时,IDE软件式RAID是够用的。

SATA 驱动器

串行ATA类型的驱动器正在迅速的取代IDE或ultra ATA驱动器成为首选的入门级磁盘存储,它有以下优势:

  • 数据线长度能达1m,相比之下,IDE只有18英寸
  • 有更好的错误检测功能
  • 1根数据线只有一个驱动器,并且支持热交换分区(hot swap),即在系统运行时都能更换它,而不用担心它会影响在数据总线上的其它设备。
  • 串行ATA驱动器不用设置跳线来区别主从关系,这使得它更易配置
  • IDE驱动器的数据传输率为133M/s,而串行ATA最初速率是150M/s,最终能够达到600M/s

如果你能买得起更贵但更快的SCSI驱动器,串行ATA设备将是你设置软件式和硬件式RAID的首选。

SCSI驱动器

SCSI磁盘的一些特性使得它们比IDE或串行ATA驱动器更适于设置RAID

  • SCSI控制器具有更强的磁盘容错性能。单个磁盘故障不会引起总线上剩余磁盘故障
  • SCSI数据线可以达到25m长,这使它们非常适合数据中心使用
  • 一条SCSI数据线上可以接上两个以上的设备。它能容纳7个单端SCSI设备或15个其它SCSI类型的设备
  • 一些型号的SCSI设备支持热交换分区(hot swap),这使得您可以在系统运行时更换它们
  • SCSI目前支持640M/s的传输率,这使的它们非常适用于数据传输率要求高的场合

但是SCSI驱动器比IDE驱动器贵很多,这使得它们对家庭用户没有太多吸引力

我应该用软件式RAID分区还是整个磁盘?

磁盘上同时有RAID分区和非RAID分区显然不是个好主意。理由狠明显:磁盘故障将使系统不可用。

如果你决定使用RAID,每个RAID磁盘上的所有分区应该都是RAID集的一部分。为了简化这一问题,许多人将RAID集中的每个磁盘只分一个区。

第一是备份你的系统

软件式RAID产生了一个RAID虚拟磁盘,它由所有形成它的普通分区组成。您必须先格式化这个RAID虚拟磁盘,您的linux才能在上面存放文件。但是格式化操作将会使您失去原磁盘上的旧数据。所以最好先将要设置RAID的分区上的数据备份下来。一个小的错误即有可能意外地损坏您的有效数据。

将RAID配置为单用户模式

由于您会修改系统的磁盘结构,您应该在单用户模式下进行RAID配置。这样系统中的大部分应用程序和网络服务会被关闭,而且其它用户不能访问系统。这会降低配置过程中产生数据损失的风险。

[root@bigboy tmp]# init 1

一旦完成配置,输入exit命令,您的系统会按/etc/inittab文件中的默认启动级别启动。