Red Hat Enterprise Linux 6.4网络操作系统详解
上QQ阅读APP看书,第一时间看更新

6.4 任务4 在Linux中配置软RAID

RAID(Redundant Array of Inexpensive Disks,独立磁盘冗余阵列)用于将多个廉价的小型磁盘驱动器合并成一个磁盘阵列,以提高存储性能和容错功能。RAID可分为软RAID和硬RAID,软RAID是通过软件实现多块硬盘冗余的。而硬RAID一般是通过RAID卡来实现RAID的。前者配置简单,管理也比较灵活,对于中小企业来说不失为一种最佳选择。硬RAID在性能方面具有一定优势,但往往花费比较多。

RAID作为高性能的存储系统,已经得到了越来越广泛的应用。RAID的级别从RAID概念的提出到现在,已经发展了六个级别,其级别分别是0、1、2、3、4、5。但是最常用的是0、1、3、5四个级别。

(1)RAID0:RAID 0也称为带区集。它是将多个磁盘并列起来,合成一个大硬盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中。

在所有的级别中,RAID0的速度是最快的,它可以进行并行I/O操作。但是RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。

(2)RAID1:把磁盘阵列中的硬盘分成相同的两组,互为镜像,当任一磁盘介质出现故障时,可以利用其镜像上的数据恢复,从而提高系统的容错能力。对数据的操作仍采用分块后并行传输的方式。所有RAID1不仅提高了读写速度,也加强了系统的可靠性。但其缺点是硬盘的利用率低,只有50%。

(3)RAID3:RAID3存放数据的原理和RAID0、RAID1不同。RAID3是以一个硬盘来存放数据的奇偶校验位,数据则分段存储于其余硬盘中。它像RAID0一样以并行的方式来存放数据,但速度没有RAID0快。如果数据盘(物理)损坏,只要将坏的硬盘换掉,RAID控制系统会根据校验盘的数据校验位在新盘中重建坏盘上的数据。不过,如果校验盘(物理)损坏,则全部数据都无法使用。利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为n-1。

(4)RAID5:向阵列中的磁盘写数据,奇偶校验数据存放在阵列中的各个盘上,允许单个磁盘出错。RAID5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样任何一个硬盘损坏,都可以根据其他硬盘上的校验位来重建损坏的数据。硬盘的利用率为n-1。

Red Hat Enterprise Linux 6.4提供了对软RAID技术的支持。在Linux系统中建立软RAID可以使用mdadm工具建立和管理RAID设备。

6.4.1 子任务1 创建与挂载RAID设备

下面以4块硬盘/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde为例来讲解RAID5的创建方法。(利用VMware虚拟机,事先安装四块SCSI硬盘。)

1.创建4个磁盘分区

使用fdisk命令创建4个磁盘分区/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1,并设置分区类型id为fd(Linux raid autodetect),分区结果如下所示:

        [root@RHEL6~]#fdisk -l
        Disk /dev/sdb: 536 MB, 536870912 bytes
        64 heads, 32 sectors/track, 512 cylinders
        Units =cylinders of 2048* 512 =1048576 bytes
        Device Boot      Start        End      Blocks   Id  System
        /dev/sdb1          1          512      524272   fd  Linux raid autodetect
        Disk /dev/sdc: 536 MB, 536870912 bytes
        64 heads, 32 sectors/track, 512 cylinders
        Units =cylinders of 2048* 512 =1048576 bytes
        Device Boot      Start        End      Blocks   Id  System
        /dev/sdc1          1          512      524272   fd  Linux raid autodetect
        Disk /dev/sdd: 536 MB, 536870912 bytes
        64 heads, 32 sectors/track, 512 cylinders
        Units =cylinders of 2048* 512 =1048576 bytes
        Device Boot      Start        End      Blocks   Id  System
        /dev/sdd1         1           512      524272   fd  Linux raid autodetect
        Disk /dev/sde: 536 MB, 536870912 bytes
        64 heads, 32 sectors/track, 512 cylinders
        Units =cylinders of 2048* 512 =1048576 bytes
        Device Boot      Start        End      Blocks   Id  System
        /dev/sde1          1          512      524272   fd  Linux raid autodetect

2.使用mdadm命令创建RAID5

RAID设备名称为/dev/mdX。其中X为设备编号,该编号从0开始。

            [root@RHEL6~]#mdadm --create /dev/md0--level=5--raid-devices=3--
        spare-devices=1 /dev/sd[b-e]1
            mdadm: array /dev/md0 started.

上述命令中指定RAID设备名为/dev/md0,级别为5,使用3个设备建立RAID,空余一个留做备用。上面的语法中,最后面是装置文件名,这些装置文件名可以是整个磁盘,例如/dev/sdb;也可以是磁盘上的分区,例如/dev/sdbl之类。不过,这些装置文件名的总数必须要等于--raid-devices与--spare-devices的个数总和。此例中,/dev/sd[b-e]1是一种简写,表示/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1,其中/dev/sde1为备用。

3.为新建立的/dev/md0中建立类型为ext3的文件系统

        [root@RHEL6~]mkfs -t ext3-c /dev/md0

4.查看建立的RAID5的具体情况

        [root@RHEL6~]mdadm --detail /dev/md0
        /dev/md0:
                Version: 00.90.01
          Creation Time: Mon Oct  1 16:23:432007
            Raid Level : raid5
            Array Size : 1048320 (1023.75 MiB 1073.48 MB)
            Device Size: 524160 (511.88 MiB 536.74 MB)
          Raid Devices : 3
          Total Devices: 4
        Preferred Minor: 0
            Persistence: Superblock is persistent
            Update Time: Mon Oct  1 16:25:262007
                  State : clean
         Active Devices: 3
        Working Devices: 4
         Failed Devices: 0
          Spare Devices: 1
                Layout : left-symmetric
            Chunk Size : 64K
            Number   Major   Minor   RaidDevice State
              0      8      17        0      active sync   /dev/sdb1
              1      8      33        1      active sync   /dev/sdc1
              2      8      49        2      active sync   /dev/sdd1
              3      8      65      -1      spare        /dev/sde1
                  UUID : 89b765ed:48c01ab9:e4cffb5b:ce142051
                Events : 0.10

5.将RAID设备挂载

将RAID设备/dev/md0挂载到指定的目录/media/md0中,并显示该设备中的内容。

        [root@RHEL6~]#mount /dev/md0 /media/md0 ;  ls  /media/md0
        lost+found

6.4.2 子任务2 RAID设备的数据恢复

如果RAID设备中的某个硬盘损坏,系统会自动停止这块硬盘的工作,让后备的那块硬盘代替损坏的硬盘继续工作。例如,假设/dev/sdc1损坏,更换损坏的RAID设备中成员的方法如下。

(1)将损坏的RAID成员标记为失效。

        [root@RHEL6~]#mdadm  /dev/md0  --fail  /dev/sdc1

(2)移除失效的RAID成员。

        [root@RHEL6~]#mdadm  /dev/md0  --remove  /dev/sdc1

(3)更换硬盘设备,添加一个新的RAID成员。

        [root@RHEL6~]#mdadm  /dev/md0  --add  /dev/sde1

说明:mdadm命令参数中凡是以“--”引出的参数选项,与“-”加单词首字母的方式等价。例如“--remove”等价于“-r”,“--add”等价于“-a”。

当不再使用RAID设备时,可以使用“mdadm-S/dev/mdX”命令的方式停止RAID设备。