细说Linux系统管理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 RAID(磁盘阵列)

LVM最大的优势在于可以在不卸载分区和不损坏数据的情况下进行分区容量的调整,但是万一硬盘损坏了,那么数据一定会丢失。我们现在要说的RAID(磁盘阵列)的优势在于硬盘读写性能更好,而且具有一定的数据冗余功能。

1.3.1 RAID简介

RAID(Redundant Arrays of Inexpensive Disks,磁盘阵列),翻译过来就是廉价的、具有冗余功能的磁盘阵列。其原理是通过软件或硬件将多块较小的硬盘或分区组合成一个容量较大的磁盘组。这个较大的磁盘组读写性能更好,更重要的是具有数据冗余功能。那什么是数据冗余呢?从字面上理解,冗余就是多余的、重复的。在磁盘阵列中,冗余是指由多块硬盘组成一个磁盘组,在这个磁盘组中,数据存储在多块硬盘的不同地方,这样即使某块硬盘出现问题,数据也不会丢失,也就是磁盘数据具有了保护功能。RAID的组成可以是几块硬盘,也可以是几个分区,而硬盘更加容易理解,所以我们在讲解原理时使用硬盘举例,但是大家要知道不同的分区也可以组成RAID。

常见的RAID有这样几种级别。

1.RAID 0

RAID 0也叫Stripe或Striping(带区卷),是RAID级别中存储性能最好的一个。RAID 0最好由相同容量的两块或两块以上的硬盘组成。如果组成RAID 0的两块硬盘大小不一致,则会影响RAID 0的性能。在这种模式下会先把硬盘分隔出大小相等的区块,当有数据需要写入硬盘时,会把数据也切割成相同大小的区块,然后分别写入各块硬盘。这样就相当于把一个文件分成几个部分同时向不同的硬盘中写入,数据的读/写速度当然就会非常快。从理论上讲,由几块硬盘组成RAID 0,比如由3块硬盘组成RAID 0,数据的写入速度就是同样的数据向一块硬盘中写入速度的3倍。我们画一张RAID 0的示意图,如图1-12所示。

图1-12 RAID 0示意图

解释一下这张示意图。我们准备了3块硬盘组成了RAID 0,每块硬盘都划分了相等的区块。当有数据要写入RAID 0时,首先把数据按照区块大小进行分割,然后再把数据依次写入不同的硬盘。每块硬盘负责的数据写入量都是整体数据的1/3,当然写入时间也只有原始时间的1/3。所以,从理论上讲,由几块硬盘组成RAID 0,数据的写入速度就是数据只写入一块硬盘速度的几倍。

RAID 0的优点如下:

· 通过把多块硬盘合并成一块大的逻辑硬盘,实现了数据跨硬盘存储。

· 通过把数据分割成等大小的区块,分别存入不同的硬盘,加快了数据的读/写速度。数据的读/写性能是几种RAID中最好的。

· 多块硬盘合并成RAID 0,几块小硬盘组成了更大容量的硬盘,而且没有容量损失。RAID 0的总容量就是几块硬盘的容量之和。

RAID 0也有一个明显的缺点,那就是没有数据冗余功能,RAID 0中的任何一块硬盘损坏,RAID 0中所有的数据都将丢失。也就是说,由几块硬盘组成RAID 0,数据的损毁概率就是只写入一块硬盘的几倍。

我们刚刚说了,组成RAID 0的硬盘的大小最好都是一样的。那有人说我只有两块不一样大小的硬盘,难道就不能组成RAID 0吗?答案是可以的。假设我有两块硬盘,一块大小是100GB,另一块大小是200GB。由这两块硬盘组成RAID 0,那么当最初的200GB数据写入时,是分别存放在两块硬盘当中的;但是当数据大于200GB之后,第一块硬盘就写满了,以后的数据就只能写入第二块硬盘中,读/写性能也就随之下降了。

一般不建议企业用户使用RIAD 0,因为数据损毁的概率更高。如果对数据的读/写性能要求非常高,但对数据安全要求不高时,RAID 0就非常合适了。

2.RAID 1

RAID 1也叫Mirror或Mirroring(镜像卷),由两块硬盘组成。两块硬盘的大小最好一致,否则总容量以容量小的那块硬盘为主。RAID 1就具备了数据冗余功能,因为这种模式是把同一份数据同时写入两块硬盘。比如我有两块硬盘,组成了RAID 1,当有数据写入时,相同的数据既写入硬盘1,也写入硬盘2。这样相当于给数据做了备份,所以任何一块硬盘损坏,数据都可以在另一块硬盘中找回。RAID 1的示意图如图1-13所示。

图1-13 RAID 1示意图

RAID 1具有了数据冗余功能,但是硬盘的容量却减少了50%,因为两块硬盘当中保存的数据是一样的,所以两块硬盘实际上只保存了一块硬盘这么多的数据,这也是我们把RAID 1称作镜像卷的原因。

RAID 1的优点如下:

· 具备了数据冗余功能,任何一块硬盘出现故障,数据都不会丢失。

· 数据的读取性能虽然不如RAID 0,但是比单一硬盘要好,因为数据有两份备份在不同的硬盘上,当多个进程读取同一数据时,RAID会自动分配读取进程。

RAID 1的缺点也同样明显:

· RAID 1的容量只有两块硬盘容量的50%,因为每块硬盘中保存的数据都一样。

· 数据写入性能较差,因为相同的数据会写入两块硬盘当中,相当于写入数据的总容量变大了。虽然CPU的速度足够快,但是负责数据写入的南桥芯片只有一个。

3.RAID 10或RAID 01

我们发现,RAID 0虽然数据读/写性能非常好,但是没有数据冗余功能;而RAID 1虽然具有了数据冗余功能,但是数据写入速度实在是太慢了(尤其是软RAID)。那么,我们能不能把RAID 0和RAID 1组合起来使用?当然可以,这样我们就既拥有了RAID 0的性能,又拥有了RAID 1的数据冗余功能。

我们先用两块硬盘组成RAID 1,再用两块硬盘组成另一个RAID 1,最后把这两个RAID 1组成RAID 0,这种RAID方法我们就称作RAID 10。那先组成RAID 0,再组成RAID 1的方法我们就称作RAID 01。我们通过示意图1-14来看看RAID 10。

图1-14 RAID 10示意图

我们把硬盘1和硬盘2组成了第一个RAID 1,把硬盘3和硬盘4组成了第二个RAID 1,这两个RAID 1组成了RAID 0。因为先组成RAID 1,再组成RAID 0,所以这个RAID是RAID 10。当有数据写入时,首先写入的是RAID 0(RAID 0后组成,所以数据先写入),所以数据1和数据3写入了第一个RAID 1,而数据2和数据4写入了第二个RAID 1。当数据1和数据3写入第一个RAID 1时,因为写入的是RAID 1,所以在硬盘1和硬盘2中各写入了一份。数据2和数据4也一样。

这样的组成方式,既有了RAID 0的性能优点,也有了RAID 1的数据冗余优点。但是大家要注意,虽然我们有了4块硬盘,但是由于RAID 1的缺点,所以真正的容量只有4块硬盘的50%,另外的一半是用来备份的。

4.RAID 5

RAID 5最少需要由3块硬盘组成,当然硬盘的容量也应当一致。当组成RAID 5时,同样需要把硬盘分隔成大小相同的区块。当有数据写入时,数据也被划分成等大小的区块,然后循环向RAID 5中写入。不过每次循环写入数据的过程中,在其中一块硬盘中加入一个奇偶校验值(Parity),这个奇偶校验值的内容是这次循环写入时其他硬盘数据的备份。当有一块硬盘损坏时,采用这个奇偶校验值进行数据恢复。通过示意图来看看RAID 5的存储过程,如图1-15所示。

图1-15 RAID 5示意图

在这张示意图中,我们使用三块硬盘组成了RAID 5。当有数据循环写入时,每次循环都会写入一个奇偶校验值(Parity),并且每次奇偶校验值都会写入不同的硬盘。这个奇偶校验值就是其他两块硬盘中的数据经过换算之后产生的。因为每次奇偶校验值都会写入不同的硬盘,所以任何一块硬盘损坏之后,都可以依赖其他两块硬盘中保存的数据恢复这块损坏的硬盘中的数据。

不过需要注意,每次数据循环写入时,都会有一块硬盘用来保存奇偶校验值,所以在RAID 5中可以使用的总容量是硬盘总数减去一块的容量之和。比如,在这张示意图中,由三块硬盘组成了RAID 5,但是真正可用的容量是两块硬盘的容量之和,也就是说,越多的硬盘组成RAID 5,损失的容量占比越小,因为不管由多少块硬盘组成RAID 5,奇偶校验值加起来只占用一块硬盘。而且还要注意,RAID 5不管是由几块硬盘组成的,只有损坏一块硬盘的情况才能恢复数据,因为奇偶校验值加起来只占用了一块硬盘,如果损坏的硬盘超过一块,那么数据就不能再恢复了。

RAID 5的优点如下:

· 因为奇偶校验值的存在,RAID 5具有了数据冗余功能。

· 硬盘容量损失比RAID 1小,而且组成RAID 5的硬盘数量越多,容量损失占比越小,因为奇偶校验值加起来只占用一块硬盘。

· RAID 5的数据读/写性能要比RAID 1更好,但是在数据写入性能上比RAID 0差。

RAID 5的缺点如下:

· 不管由多少块硬盘组成RAID 5,只支持一块硬盘损坏之后的数据恢复。

· RAID 5的实际容量是组成RAID 5的硬盘总数减去一块的容量之和。也就是有一块硬盘用来保存奇偶校验值,但不能保存数据。

从总体上来说,RAID 5更像RAID 0和RAID 1的折中,性能比RAID 1好,但是不如RAID 0;数据冗余比RAID 0好,而且不像RAID 1那样浪费了50%的硬盘容量。

5.软RAID和硬RAID

我们要想在服务器上实现RAID,可以采用磁盘阵列卡(RAID卡)来组成RAID,也就是硬RAID。RAID卡上有专门的芯片负责RAID任务,因此性能要好得多,而且不占用系统性能,缺点是RAID卡比较昂贵。如果我们既不想花钱又想使用RAID,那就只能使用软RAID了。软RAID是指通过软件实现RAID功能,没有多余的费用,但是更加耗费服务器系统性能,而且数据的写入速度也较硬RAID慢。硬RAID是通过不同厂商的RAID卡实现的,每种RAID卡的系统都不太一样,需要参考各个RAID卡厂商的说明。我们接下来要讲解的是通过Linux系统实现的软RAID。和LVM一样,软RAID可以在安装系统的同时配置,也可以在安装完成之后通过系统命令配置。

1.3.2 图形界面安装系统时配置RAID

RAID配置起来要比LVM方便,因为它不像LVM那样分了物理卷、卷组和逻辑卷三层,而且每层都需要配置。我们在图形安装界面中配置RAID 1和RAID 5,先来看看RAID 1的配置方法。

1.RAID 1配置

配置RAID 1时同样需要启动图形安装程序,在分区界面进行配置,如图1-16所示。

图1-16 选择驱动器

我们已经知道,可以使用相同大小的硬盘配置RAID,也可以使用相同大小的分区配置RAID,方法都是一样的。我们在实验中就使用相同大小的两个分区创建RAID 1吧。在选择驱动器界面单击“创建”按钮,进入“生成存储”界面,如图1-17所示。

图1-17 生成存储

在“生成存储”界面中,在“创建软件RAID”选项组中选择“RAID分区”单选按钮,单击“创建”按钮,进入“添加分区”界面,如图1-18所示。

图1-18 添加分区

我们要创建两个2GB大小的分区,用来组成RAID 1。所以,在“添加分区”界面中,文件系统类型选择“software RAID(软RAID)”,分区大小指定为2GB。单击“确定”按钮后,第一个RAID分区就建立完成了。第二个RAID分区也这样建立。两个RAID分区都建立完成后,如图1-19所示。

图1-19 RAID分区建立完成

这时再单击“创建”按钮,进入“生成存储”界面,如图1-20所示。

图1-20 生成RAID存储

这时我们发现刚刚是灰色的不能选择的“RAID设备”单选按钮已经可以选择了,证明我们现有的RAID分区具备了组成RAID设备的条件。我们选择“RAID设备”单选按钮,然后单击“创建”按钮,就进入“创建RAID设备”界面,如图1-21所示。

图1-21 创建RAID设备

在这里,挂载点选择“/”分区,也就是说/分区是由两个等大小的分区组成的RAID 1设备,文件系统类型选择“ext4”,RAID设备选择“md0”(第一个RAID设备),RAID级别选择“RAID 1”,同时记得勾选组成RAID 1的两个分区sda1和sda2。单击“确定”按钮,RAID 1就建立完成了,如图1-22所示。

图1-22 RAID 1建立完成

这里需要注意,只有/分区是RAID 1,其他分区还没有分配。而且要想正确地安装Linux,最少还需要分配swap分区。

2.RAID 5配置

RAID 5的配置和RAID 1的配置一致,只不过RAID 1只需要两个等大小的RAID分区,而RAID 5却需要最少三个等大小的RAID分区。我们先建立三个等大小的RAID分区,如图1-23所示。

图1-23 选择驱动器

接下来单击“创建”按钮,进入“生成存储”界面,如图1-24所示。

图1-24 生成存储

在这里同样需要选择“RAID设备”单选按钮,然后单击“创建”按钮,进入“创建RAID设备”界面,如图1-25所示。

图1-25 创建RAID设备

在“创建RAID设备”界面中,挂载点仍然选择/分区,不过RAID级别选择的是RAID 5,同时勾选组成RAID 5的三个分区,单击“确定”按钮,RAID 5的/分区就建立完成了。

1.3.3 命令模式配置RAID 5

图形界面确实方便,不过RAID和LVM一样,主要的应用还是在命令行当中,因为如果硬盘出现了数据损坏,总不能重新安装吧!那么我们学习在命令行界面中如何分配和使用RAID,这次我们仍然使用相同大小的分区配置最为常见的RAID 5。

1.建立三个2GB大小的分区和一个2GB大小的备份分区

我们还是建立三个2GB大小的分区,构建RAID 5。不过我们多建立了一个2GB大小的分区,这个分区用作备份分区。

这个备份分区的作用是什么呢?RAID最大的好处就是具有数据冗余功能,当有一块硬盘或分区损坏时,数据不会丢失,只要插入新的硬盘或分区,依赖其他分区就会主动重建损坏的硬盘或分区中的数据。不过这仍然需要关闭服务器,手工插拔硬盘。如果在组成RAID的时候就加入了备份硬盘或备份分区,那么当硬盘或分区损坏时,RAID会自动用备份硬盘或备份分区代替损坏的硬盘或分区,然后立即重建数据,而不需要人为手工参与。这样就避免了服务器停机和人为手工参与,非常方便,唯一的问题就是需要多余的硬盘或分区作为备份设备。

也就是说,我们在这个实验中需要4个2GB大小的分区,其中3个组成RAID 5,1个作为备份分区。建立分区的过程这里不再详细解释,建立完分区之后,可以使用fdisk -l命令查看。命令如下:

    [root@localhost ~]# fdisk –l
    …省略部分输出…
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xba384969

      Device Boot     Start        End     Blocks   Id  System
    /dev/sdb1             1       2610   20964793+   5  Extended
    /dev/sdb5             1        262    2104452   83  Linux
    /dev/sdb6           263        524    2104483+  83  Linux
    /dev/sdb7           525        786    2104483+  83  Linux
    /dev/sdb8           787       1048    2104483+  83  Linux

我们建立了/dev/sdb5、/dev/sdb6、/dev/sdb7和/dev/sdb8共4个2GB大小的分区。

2.建立RAID 5

建立RAID使用mdadm命令,命令格式如下:

    [root@localhost ~]# mdadm [模式] [RAID设备文件名] [选项]
    模式:
        Assemble:加入一个已经存在的阵列
        Build:创建一个没有超级块的阵列
        Create:创建一个阵列,每个设备都具有超级块
        Manage:管理阵列,如添加设备和删除损坏设备
        Misc:允许单独对阵列中的设备进行操作,如停止阵列
        Follow or Monitor:监控RAID状态
        Grow:改变RAID的容量或阵列中的数目
    选项:
        -s, --scan:扫描配置文件或/proc/mdstat文件,发现丢失的信息
        -D, --detail:查看磁盘阵列详细信息
        -C, --create:建立新的磁盘阵列,也就是调用Create模式
        -a, --auto=yes:采用标准格式建立磁盘阵列
        -n, --raid-devices=数字:使用几块硬盘或分区组成RAID
        -l, --level=级别:创建RAID的级别,可以是0,1,5
        -x, --spare-devices=数字:使用几块硬盘或分区组成备份设备
        -a, --add设备文件名:在已经存在的RAID中加入设备
        -r, --remove设备文件名名:在已经存在的RAID中移除设备
        -f, --fail设备文件名:把某个组成RAID的设备设置为错误状态
        -S, --stop:停止RAID设备
        -A, --assemble:按照配置文件加载RAID

我们准备创建的是RAID 5,所以使用以下命令创建:

    [root@localhost ~]# mdadm --create --auto=yes /dev/md0--level=5  \
    --raid-devices=3--spare-devices=1 /dev/sdb5 /dev/sdb6 /dev/sdb7 /dev/sdb8

其中,/dev/md0是第一个RAID设备的设备文件名,如果还有RAID设备,则可以使用/dev/md[0~9]来代表。我们建立了RAID 5,使用了三个分区,并建立了一个备份分区。先查看一下新建立的/dev/md0,命令如下:

    [root@localhost ~]# mdadm --detail /dev/md0
    /dev/md0:                                       ←设备文件名
          Version : 1.2
      Creation Time : Tue Apr 23 23:13:482013     ←创建时间
        Raid Level : raid5                         ←RAID级别
        Array Size : 4206592 (4.01 GiB 4.31 GB)   ←RAID总容量
      Used Dev Size : 2103296 (2.01 GiB 2.15 GB)   ←每个分区的容量
      Raid Devices : 3                             ←组成RAID的设备数
      Total Devices : 4                             ←总设备数
        Persistence : Superblock is persistent

        Update Time : Tue Apr 23 23:14:522013
            State : clean
     Active Devices : 3                             ←激活的设备数
    Working Devices : 4                            ←可用的设备数
     Failed Devices : 0                             ←错误的设备数
      Spare Devices : 1                             ←备份设备数

            Layout : left-symmetric
        Chunk Size : 512K

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 15026b78:126a4930:89d8cf54:5bcb7e95
            Events : 18

        Number   Major   Minor   RaidDevice State
          0      8      21       0     active sync   /dev/sdb5
          1      8      22       1     active sync   /dev/sdb6
          4      8      23       2     active sync   /dev/sdb7
        #三个激活的分区

          3      8      24       -     spare   /dev/sdb8
        #备份分区

再查看一下/proc/mdstat文件,这个文件中也保存了RAID的相关信息。命令如下:

    [root@localhost ~]# cat /proc/mdstat
    Personalities : [raid6] [raid5] [raid4]
    md0 : active raid5 sdb9[4](S) sdb5[0] sdb8[3] sdb6[1]
    #RAID名  级别     组成RAID的分区,[数字]是此分区在RAID中的顺序
    #(S)代表备份分区
          4206592 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
    #  总block数          等级是5   区块大小   阵列算法 [组成设备数/正常设备数]
    unused devices: <none>

3.格式化与挂载RAID

RAID 5已经创建,但是要想正常使用,也需要格式化和挂载。格式化命令如下:

    [root@localhost ~]# mkfs -t ext4 /dev/md0

挂载命令如下:

    [root@localhost ~]# mkdir /raid
    #建立挂载点
    [root@localhost ~]# mount /dev/md0 /raid/
    #挂载/dev/md0
    [root@localhost ~]# mount
    …省略部分输出…
    /dev/md0 on /raid type ext4 (rw)
    #查看一下,已经正常挂载

4.生成mdadm配置文件

在CentOS 6.x中,mdadm配置文件并不存在,需要手工建立。我们使用以下命令建立/etc/mdadm.conf配置文件:

    [root@localhost ~]# echo Device /dev/sdb[5-8] >> /etc/mdadm.conf
    #建立/etc/mdadm.conf配置文件,并把组成RAID的分区的设备文件名写入
    #注意:如果有多个RAID,则要把所有组成RAID的设备都放入配置文件中;否则RAID设备重启后会丢失
    #比如组成RAID 10,就既要把分区的设备文件名放入此文件中,也要把组成RAID 0的RAID 1设备文件
    #名放入
    [root@localhost ~]# mdadm -Ds >>  /etc/mdadm.conf
    #查询和扫描RAID信息,并追加进/etc/mdadm.conf文件
    [root@localhost ~]# cat /etc/mdadm.conf
    Device /dev/sdb5 /dev/sdb6 /dev/sdb7 /dev/sdb8
    ARRAY  /dev/md0  metadata=1.2  spares=1  name=localhost.localdomain:0  UUID=
    dd821fe5:8597b126:460a3afd:857c7989
    #查看文件内容

5.设置开机后自动挂载

自动挂载也要修改/etc/fstab配置文件,命令如下:

    [root@localhost ~]# vi /etc/fstab
    /dev/md0              /raid                 ext4   defaults       1 2
    #加入此行

如果要重新启动,则一定要在这一步完成之后再进行,否则会报错。

6.启动或停止RAID

RAID设备生效后,不用手工启动或停止。但是,如果需要卸载RAID设备,就必须手工停止RAID。这里我们学习一下启动和停止RAID的方法。先看看停止命令:

    [root@localhost ~]# mdadm –S /dev/md0
    #停止/dev/md0设备

当然,如果要删除RAID,则要非常小心,要把所有和RAID相关的内容全部删除,才能保证系统不报错。需要进行的步骤如下:

    [root@localhost ~]# umount /dev/md0
    #卸载RAID
    [root@localhost ~]# vi /etc/fstab
    /dev/md0              /raid                 ext4   defaults       1 2
    #删除此行
    [root@localhost ~]# mdadm -S /dev/md0
    mdadm: stopped /dev/md0
    #停止RAID
    [root@localhost ~]# vi /etc/mdadm.conf
    ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=dd821fe5:
    8597b126:460a3afd:857c7989
    #删除或者注释此行

如果仅仅是停止,而不是删除,就没有这么麻烦了,只需先卸载,再停止即可。那停止完成之后,怎么再启动呢?启动RAID的命令如下:

    [root@localhost ~]# mdadm -As /dev/md0
    mdadm: /dev/md0 has been started with 3 drives and 1 spare.
    #启动/dev/md0
    [root@localhost ~]# mount /dev/md0 /raid/
    #启动RAID后,记得挂载

7.模拟分区出现故障

我们的RAID虽然配置完成了,但是它真的生效了吗?我们模拟磁盘报错,看看备份分区是否会自动代替错误分区。mdadm命令有一个选项-f,这个选项的作用就是把一块硬盘或分区变成错误状态,用来模拟RAID报错。命令如下:

    [root@localhost ~]# mdadm /dev/md0-f /dev/sdb7
    mdadm: set /dev/sdb7 faulty in /dev/md0
    #模拟/dev/sdb7分区报错
    [root@localhost ~]# mdadm -D /dev/md0
    /dev/md0:
    …省略部分输出…
    Active Devices : 2
    Working Devices : 3
     Failed Devices : 1                        ←一个设备报错了
      Spare Devices : 1

    …省略部分输出…
        Number   Major   Minor   RaidDevice State
          0      8      21       0     active sync   /dev/sdb5
          1      8      22       1     active sync   /dev/sdb6
          3      8      24       2     spare rebuilding   /dev/sdb8
        #/dev/sdb8分区正在准备修复
          4      8      23       -     faulty spare   /dev/sdb7
        #/dev/sdb7已经报错了

要想看到上面的效果,查看时要快一点,否则修复就可能完成了。因为有备份分区的存在,所以分区损坏了,是不用管理员手工参与的。如果修复完成,再查看,就会出现下面的情况:

    [root@localhost ~]# mdadm -D /dev/md0
        Number   Major   Minor   RaidDevice State
          0      8      21       0     active sync   /dev/sdb5
          1      8      22       1     active sync   /dev/sdb6
          3      8      24       2     active sync   /dev/sdb8

          4      8      23       -     faulty spare   /dev/sdb7

备份分区/dev/sdb8已经被激活,但是/dev/sdb7分区失效了。

8.移除错误分区

既然分区已经报错了,我们就把/dev/sdb7分区从RAID中删除。如果这是硬盘,就可以进行更换硬盘的处理了。移除命令如下:

    [root@localhost ~]# mdadm /dev/md0  --remove /dev/sdb7
    mdadm: hot removed /dev/sdb7 from /dev/md0

9.添加新的备份分区

既然分区已经报错,那么我们还需要加入一个新的备份分区,以备下次硬盘或分区出现问题。既然要加入新的备份分区,当然还需要再划分出一个2GB大小的分区出来,命令如下:

    [root@localhost ~]# fdisk –l
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x151a68a9
    Device Boot     Start        End     Blocks   Id  System
  /dev/sdb1             1       2610   20964793+   5  Extended
  /dev/sdb5             1        262    2104452   83  Linux
  /dev/sdb6           263        524    2104483+  83  Linux
  /dev/sdb7           525        786    2104483+  83  Linux
  /dev/sdb8           787       1048    2104483+  83  Linux
  /dev/sdb9          1049       1310    2104483+  83  Linux

我们新建了/dev/sdb9分区,然后把它加入/dev/md0作为备份分区,命令如下:

    [root@localhost ~]# mdadm /dev/md0--add /dev/sdb9
    mdadm: added /dev/sdb9
    #把/dev/sdb9加入/dev/md0
    [root@localhost ~]# mdadm -D /dev/md0
    …省略部分输出…
        Number   Major   Minor   RaidDevice State
          0      8      21       0     active sync   /dev/sdb5
          1      8      22       1     active sync   /dev/sdb6
          3      8      24       2     active sync   /dev/sdb8

          4      8      25       -     spare   /dev/sdb9
    #查看一下,/dev/sdb9已经变成了备份分区