您的位置:首页 > 大数据 > 人工智能

软件磁盘阵列(Software RAID)

2015-11-16 18:20 621 查看
    一块新增的7G硬盘,将其分成6个分区,每个分区1G空间。sdb{1,2,3,5,6,7}就是我们接下来实现RAID所要用到的分区。用sdb{1,2,3,5}四个分区组成RAID5,利用sdb6作为sparedisk,sdb7作为备用分区。



    一、 mdadm命令创建RAID

    1.mdadm命令用于创建软件磁盘阵列,命令格式为:mdadm [模式选项] [RAID设备名] [子选项…] [组件设备名…]



--create为mdadm的创建模式

md0为创建的磁盘阵列名

--level=[015]设置磁盘阵列的等级,我们这里设置为5

--raid-devices=N表明使用几块磁盘作为磁盘阵列使用的设备,我们这里使用了4块,也就是sdb{1,2,3,5}

--spare-devices=N表明使用几块磁盘作为备用设备,我们这里使用了一块,也就是sdb6

    2.查看md0阵列的详细信息

[root@minimal ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 21 11:36:44 2015
Raid Level : raid5
Array Size : 3176448 (3.03 GiB 3.25 GB)
Used Dev Size : 1058816 (1034.17 MiB 1084.23 MB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent

Update Time : Wed Oct 21 11:36:58 2015
State : clean
Active Devices : 4
Working Devices : 5
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Name : minimal:0  (local to host minimal)
UUID : f99d657f:0db77911:9870b07b:92c4c1d9
Events : 18

Number   Major   Minor   RaidDevice State
0       8       17        0      active sync   /dev/sdb1
1       8       18        1      active sync   /dev/sdb2
2       8       19        2      active sync   /dev/sdb3
5       8       21        3      active sync   /dev/sdb5

4       8       22        -      spare   /dev/sdb6


    3.格式化并且挂载RAID





    4.记录阵列信息,防止系统重启后阵列丢失

[root@minimal ~]# mdadm -Ds >> /etc/mdadm.conf


    5.查看配置文件里面的信息

[root@minimal ~]# cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 spares=1 name=minimal:0 UUID=f99d657f:0db77911:9870b07b:92c4c1d9


    二、模拟磁盘阵列出错并且恢复

    1.设置sdb5出错

[root@minimal ~]# mdadm --manage /dev/md0 --fail /dev/sdb5

    2.查看磁盘阵列当前信息

[root@minimal ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 21 11:36:44 2015
Raid Level : raid5
Array Size : 3176448 (3.03 GiB 3.25 GB)
Used Dev Size : 1058816 (1034.17 MiB 1084.23 MB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent

Update Time : Wed Oct 21 12:02:50 2015
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 1
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Rebuild Status : 61% complete

Name : minimal:0  (local to host minimal)
UUID : f99d657f:0db77911:9870b07b:92c4c1d9
Events : 29

Number   Major   Minor   RaidDevice State
0       8       17        0      active sync   /dev/sdb1
1       8       18        1      active sync   /dev/sdb2
2       8       19        2      active sync   /dev/sdb3
4       8       22        3      spare rebuilding   /dev/sdb6

5       8       21        -      faulty   /dev/sdb5
快速输入mdadm命令可以看到sdb6正在重建数据。如果过一段时间再使用mdadm查看的话会产生下面的结果。
[root@minimal ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 21 11:36:44 2015
Raid Level : raid5
Array Size : 3176448 (3.03 GiB 3.25 GB)
Used Dev Size : 1058816 (1034.17 MiB 1084.23 MB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent

Update Time : Wed Oct 21 12:02:56 2015
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 1
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 512K

Name : minimal:0  (local to host minimal)
UUID : f99d657f:0db77911:9870b07b:92c4c1d9
Events : 37

Number   Major   Minor   RaidDevice State
0       8       17        0      active sync   /dev/sdb1
1       8       18        1      active sync   /dev/sdb2
2       8       19        2      active sync   /dev/sdb3
4       8       22        3      active sync   /dev/sdb6

5       8       21        -      faulty   /dev/sdb5


    3.删除出错的磁盘并且加入新的磁盘

[root@minimal ~]# mdadm --manage /dev/md0 --remove /dev/sdb5 --add /dev/sdb7

     命令执行成功后状态:



    4.查看当前磁盘阵列信息

[root@minimal ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 21 11:36:44 2015
Raid Level : raid5
Array Size : 3176448 (3.03 GiB 3.25 GB)
Used Dev Size : 1058816 (1034.17 MiB 1084.23 MB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent

Update Time : Wed Oct 21 12:08:34 2015
State : clean
Active Devices : 4
Working Devices : 5
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Name : minimal:0  (local to host minimal)
UUID : f99d657f:0db77911:9870b07b:92c4c1d9
Events : 39

Number   Major   Minor   RaidDevice State
0       8       17        0      active sync   /dev/sdb1
1       8       18        1      active sync   /dev/sdb2
2       8       19        2      active sync   /dev/sdb3
4       8       22        3      active sync   /dev/sdb6

5       8       23        -      spare   /dev/sdb7


    三、磁盘阵列扩容

    1.向raid5中添加新设备(分区或者磁盘)

[root@minimal ~]# mdadm /dev/md0 --add /dev/sdb5
mdadm: added /dev/sdb5


    2.改变raid5工作盘的个数

[root@minimal ~]# mdadm --grow /dev/md0 --raid-devices=5
mdadm: Need to backup 6144K of critical section..


    3.调整文件系统大小

[root@minimal ~]# resize2fs /dev/md0
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/md0 is mounted on /mnt/raid; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/md0 to 1058816 (4k) blocks.
The filesystem on /dev/md0 is now 1058816 blocks long.
使用df查看挂载设备,会发现md0已经增加了1G的空间
[root@minimal ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_minimal-LogVol00
18G  1.5G   15G   9% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             477M   61M  391M  14% /boot
/dev/md0              4.0G  6.1M  3.8G   1% /mnt/raid




    4.查看当前磁盘阵列信息

[root@minimal ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 21 11:36:44 2015
Raid Level : raid5
Array Size : 3176448 (3.03 GiB 3.25 GB)
Used Dev Size : 1058816 (1034.17 MiB 1084.23 MB)
Raid Devices : 5
Total Devices : 6

4000
Persistence : Superblock is persistent

Update Time : Wed Oct 21 12:31:14 2015
State : clean, reshaping
Active Devices : 5
Working Devices : 6
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Reshape Status : 33% complete
Delta Devices : 1, (4->5)

Name : minimal:0  (local to host minimal)
UUID : f99d657f:0db77911:9870b07b:92c4c1d9
Events : 67

Number   Major   Minor   RaidDevice State
0       8       17        0      active sync   /dev/sdb1
1       8       18        1      active sync   /dev/sdb2
2       8       19        2      active sync   /dev/sdb3
4       8       22        3      active sync   /dev/sdb6
6       8       21        4      active sync   /dev/sdb5

5       8       23        -      spare   /dev/sdb7


或者也可以查阅mdstat文件来获取磁盘阵列的信息:

[root@minimal ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdb5[6] sdb7[5](S) sdb6[4] sdb3[2] sdb2[1] sdb1[0]
4235264 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]

unused devices: <none>

    四、关闭软件磁盘阵列

    1.卸载磁盘并且删除与磁盘挂载的内容

[root@minimal ~]# umount /dev/md0
    如果设置了磁盘整列开机自动挂载的话,还需要进入/etc/fstab删除自动挂载的内容

    2.停止磁盘阵列服务

[root@minimal ~]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
    3.删除磁盘阵列配置文件

[root@minimal ~]# vim /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 spares=1 name=minimal:0 UUID=f99d657f:0db77911:9870b07b:92c4c1d9    #删除或者注释掉
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux raid mdadm