mdadm创建raid5实战

1、新加一块盘,我这边新加后/dev/sdb

格式化成一个扩展分区,然后对扩展分区分成5个逻辑分区,具体如下。

直接使用fdisk /dev/sdb即可,不在赘述。主要要修改分区的system ID

[root@srcxtts ~]# fdisk /dev/sdb -l

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 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: 0x0a31f03b

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+   5  Extended
/dev/sdb5               1         132     1060227   8e  Linux LVM
/dev/sdb6             133         264     1060258+  8e  Linux LVM
/dev/sdb7             265         396     1060258+  8e  Linux LVM
/dev/sdb8             397         528     1060258+  8e  Linux LVM
/dev/sdb9             529         652      995998+  8e  Linux LVM
[root@srcxtts ~]# 

2、通过mdadm创建磁盘阵列

mdadm --create --auto=yes /dev/md0 --level=5 \
--raid-devices=4 --spare-devices=1 /dev/sdb{5,6,7,8,9}

--create :为新建的raid的参数

--auto=yes :决定后面接的软件磁盘阵列设备,即/dev/md0,/dev/md1等

--raid-devices=N:使用几个磁盘作为磁盘阵列的设备。

--spare-devices=N:使用几个磁盘作为备用(spare)设备。

--level=[015]:设置这组磁盘这列的等级。支持很多,不过建议只要用0/1/5即可。

--detail:后面所接的那个磁盘阵列的详细信息。

[root@srcxtts ~]# mdadm --create --auto=yes /dev/md0 --level=5 \
> --raid-devices=4 --spare-devices=1 /dev/sdb{5,6,7,8,9}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@srcxtts ~]# 

可以查看详情

mdadm --detail /dev/md0

[root@srcxtts ~]# mdadm --detail /dev/md0
/dev/md0:                                          ==>raid设备文件名
        Version : 1.2
  Creation Time : Tue May  8 11:10:17 2018            ==>raid创建时间
     Raid Level : raid5                                ==>raid等级为raid5
     Array Size : 3081216 (2.94 GiB 3.16 GB)            ==>此raid可用磁盘大小
  Used Dev Size : 1027072 (1003.17 MiB 1051.72 MB)        ==>每个设备可用容量
   Raid Devices : 4                            ==>用作raid的设备数量
  Total Devices : 5                            ==>全部的设备数量
    Persistence : Superblock is persistent        

    Update Time : Tue May  8 11:10:33 2018
          State : clean     
 Active Devices : 4                                    ==>启动的raid磁盘数量
Working Devices : 5                                    ==>可动作的磁盘数量
 Failed Devices : 0                                    ==>故障磁盘数量
  Spare Devices : 1                                    ==>预备的磁盘数量
    
         Layout : left-symmetric
     Chunk Size : 512K

           Name : srcxtts:0  (local to host srcxtts)
           UUID : d08c1706:4c7f5d64:8e110d2e:b65f057d             ==>此设备(raid)的标识符
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       1       8       22        1      active sync   /dev/sdb6
       2       8       23        2      active sync   /dev/sdb7
       5       8       24        3      active sync   /dev/sdb8

       4       8       25        -      spare   /dev/sdb9
[root@srcxtts ~]# 

最后五行就是这五个设备的目前情况,包括四个active sync和一个spare。至于raiddevice指的是此raid内的磁盘顺序。

下面是本次实验希望做成的raid5的环境:

a、利用4个分区组成raid5.

b、每个分区约为1gb大小,需确定每个分区一样大较好。

c、利用1个分区设置为sparedisk;

d、这个sparedisk的大小跟其它raid分区的大小一致。

e、将此raid5设备挂载到/mnt/raid目录下。

除了上面的命令之外,还可以通过下面的文件来查看系统软件磁盘阵列的情况:

[root@srcxtts ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdb8[5] sdb9[4](S) sdb7[2] sdb6[1] sdb5[0]
      3081216 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      
unused devices: <none>
[root@srcxtts ~]# 

第二行指明了md0使用了raid5,并且使用了sdb8/sdb9/sdb7/sdb6/sdb5五块磁盘设备。每个磁盘后面[]内的数据指明了该磁盘在raid中的raiddevice;至于sdb9后面的(S)则代表是sparedisk;

下面表示此磁盘阵列一共有3081216个block(每个block单位为1k),所以总容量约为3GB。使用raid5等级,写入磁盘的小区块(chunk)大小为512k,使用algorithm 2磁盘阵列算法。[m/n]代表此数组需要m个设备,且n个设备是正常运行的。因此本md0需要4个设备且这4个设备正常运行。后面的[UUUU]代表的是四个所需的设备启动情况。U代表正常运作。若为_则代表不正常。

3、格式化与挂载使用raid。

mkfs -t ext3 /dev/md0

mkdir -p /mnt/raid
mount /dev/md0 /mnt/raid



cp -a /var/log /mnt/raid
df -h

可以查看下挂载后的文件系统情况。

4、仿真raid错误的救援模式。

mdadm --manage /dev/md[0-9] [--add 设备] [--remove 设备] \

[--fail 设备]

参数:

--add:会将后面的设备加入到这个md中。

--remove:会将后面这个设备从这个md中移除。

--fail:会将后面的设备设置成为出错的状态。

下面我们认为的构建错误让sparedisk自动开始重建系统。

a、先复制一些东西到/mnt/raid中去,假设这个raid已经在用了。(上面已经复制过了)

b、使某块分区出错

mdadm --manage /dev/md0 --fail /dev/sdb7

[root@srcxtts raid]# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue May  8 11:10:17 2018
     Raid Level : raid5
     Array Size : 3081216 (2.94 GiB 3.16 GB)
  Used Dev Size : 1027072 (1003.17 MiB 1051.72 MB)
   Raid Devices : 4
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Tue May  8 11:32:44 2018
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 1
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : srcxtts:0  (local to host srcxtts)
           UUID : d08c1706:4c7f5d64:8e110d2e:b65f057d
         Events : 37

    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       1       8       22        1      active sync   /dev/sdb6
       4       8       25        2      active sync   /dev/sdb9
       5       8       24        3      active sync   /dev/sdb8

       2       8       23        -      faulty spare   /dev/sdb7
[root@srcxtts raid]# 

发现failed devices变成了1,而spare devices变成了0。在线磁盘个数还是4.

通过/proc/mdstat看到的情况也是一样。

说明一旦某块磁盘失败,并不会影响raid5的功能,并且sparedisk会自动加入raid中。

4、将出错的盘删除,并新增sparedisk。

本例为了简单,不在新增磁盘或者分区,直接使用失败的sdb7分区移除后重新加入:

[root@srcxtts raid]# mdadm --manage /dev/md0 --remove /dev/sdb7
mdadm: hot removed /dev/sdb7 from /dev/md0
[root@srcxtts raid]# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue May  8 11:10:17 2018
     Raid Level : raid5
     Array Size : 3081216 (2.94 GiB 3.16 GB)
  Used Dev Size : 1027072 (1003.17 MiB 1051.72 MB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Tue May  8 11:38:09 2018
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : srcxtts:0  (local to host srcxtts)
           UUID : d08c1706:4c7f5d64:8e110d2e:b65f057d
         Events : 38

    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       1       8       22        1      active sync   /dev/sdb6
       4       8       25        2      active sync   /dev/sdb9
       5       8       24        3      active sync   /dev/sdb8

mdadm --manage /dev/md0 --add /dev/sdb7

[root@srcxtts raid]# mdadm --manage /dev/md0 --add /dev/sdb7
mdadm: added /dev/sdb7
[root@srcxtts raid]# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue May  8 11:10:17 2018
     Raid Level : raid5
     Array Size : 3081216 (2.94 GiB 3.16 GB)
  Used Dev Size : 1027072 (1003.17 MiB 1051.72 MB)
   Raid Devices : 4
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Tue May  8 11:38:29 2018
          State : clean 
 Active Devices : 4
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

           Name : srcxtts:0  (local to host srcxtts)
           UUID : d08c1706:4c7f5d64:8e110d2e:b65f057d
         Events : 39

    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       1       8       22        1      active sync   /dev/sdb6
       4       8       25        2      active sync   /dev/sdb9
       5       8       24        3      active sync   /dev/sdb8

       6       8       23        -      spare   /dev/sdb7
[root@srcxtts raid]#

5、开机自动启动raid并自动挂载。

mdadm --detail /dev/md0 |grep -i uuid
a、先查出md0设备的UUID
[root@srcxtts ~]# mdadm --detail /dev/md0 |grep -i uuid
           UUID : d08c1706:4c7f5d64:8e110d2e:b65f057d
[root@srcxtts ~]# 
b、修改mdadm默认的配置文件,没有就新增;新建配置文件,写入下面的内容:
vi /etc/mdadm.conf
[root@srcxtts ~]# cat /etc/mdadm.conf
ARRAY 	/dev/md0	UUID=d08c1706:4c7f5d64:8e110d2e:b65f057d
[root@srcxtts ~]# 
c、修改自动挂载配置文件fstab,开机自动挂载
vi /etc/fstab
/dev/md0		/mnt/raid		ext3	defaults	1 2
d、因为修改了fstab,防止改错导致下次开机无法启动,需要手工umount然后在mount -a全量挂载一遍。
umount /dev/md0; mount -a
e、查询文件系统,看挂载是否成功。
df /mnt/raid
[root@srcxtts ~]# df /mnt/raid
文件系统	         1K-块      已用      可用 已用% 挂载点
/dev/md0               3032784     73228   2805496   3% /mnt/raid
[root@srcxtts ~]# 

6、关闭软件raid。

a、先卸载并且删除配置文件内与这个/dev/md0有关的设置:

umount /dev/md0

vi /etc/fstab

去掉/dev/md0自动挂载的内容:

/dev/md0		/mnt/raid		ext3	defaults	1 2

b、直接关闭/dev/md0

mdadm --stop /dev/md0
[root@srcxtts ~]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
[root@srcxtts ~]# 

c、查看/proc/mdstat

[root@srcxtts ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
unused devices: <none>  ==>确实没有任何数组设备了
[root@srcxtts ~]#

d、修改/etc/mdadm.conf内容

删除或者注释掉与/dev/md0有关的内容即可:

ARRAY 	/dev/md0	UUID=d08c1706:4c7f5d64:8e110d2e:b65f057d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值