v-box里面新建一个centos7.3的服务器

v-box中增加4块8GB容量的硬盘.(我增加的是nvme的ssd硬盘,普通硬盘也没有问题,容量大代表你需要等待的时间长,所以小点容量最好)

创建raid

[root@bogon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 : 8G disk
nvme0n2 : 8G disk
nvme0n3 : 8G disk
nvme0n4 : 8G disk
[root@bogon ~]# yum -y install mdadm
[root@bogon ~]# mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/nvme0n[1,2,3,4]
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
说明:
-C:创建模式
-a {yes|no}:自动创建对应的设备,yes表示会自动在/dev下创建RAID设备
-l #:指明要创建的RAID的级别(-l 0 表示创建RAID0)
-n #:使用#个块设备来创建此RAID(-n 3 表示用3块硬盘来创建这个RAID)(这里总共4块盘,3块用来做raid5,所以总容量只有3块盘的2/3,还有一块盘用来做热备)
-x #:当前阵列中热备盘只有#块(-x 1 表示热备盘只有1块)
[root@bogon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0    8G  0 disk
└─md5         9:5    0   16G  0 raid5
nvme0n2     259:1    0    8G  0 disk
└─md5         9:5    0   16G  0 raid5
nvme0n3     259:2    0    8G  0 disk
└─md5         9:5    0   16G  0 raid5
nvme0n4     259:3    0    8G  0 disk
└─md5         9:5    0   16G  0 raid5
[root@bogon ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 nvme0n3[4] nvme0n4[3](S) nvme0n2[1] nvme0n1[0]
      16758784 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
[root@bogon ~]# mdadm -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time :
        Raid Level : raid5
        Array Size : 16758784 (15.98 GiB 17.16 GB)
     Used Dev Size : 8379392 (7.99 GiB 8.58 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent
       Update Time :
             State : clean
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1
            Layout : left-symmetric
        Chunk Size : 512K
Consistency Policy : unknown
              Name : bogon:5  (local to host bogon)
              UUID : 3ff040bd:c1ad0eb3:d98015e1:e53b682c
            Events : 18
    Number   Major   Minor   RaidDevice State
       0     259        0        0      active sync   /dev/nvme0n1
       1     259        1        1      active sync   /dev/nvme0n2
       4     259        2        2      active sync   /dev/nvme0n3
       3     259        3        -      spare   /dev/nvme0n4
实验环境的硬盘比较小,所以立马创建完成,可以看出spare /dev/nvme0n4为热备盘.
添加raid5到raid配置文件中/etc/mdadm.conf(默认此文件不存在)
echo DEVICE /dev/nvme0n[1,2,3,4] >> /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf
然后格式化raid磁盘
[root@bogon ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5               isize=512    agcount=16, agsize=261760 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=4188160, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@bogon ~]# mkdir /mnt/data
[root@bogon ~]# mount /dev/md5 /mnt/data/
[root@bogon ~]# echo "/dev/md5 /mnt/data xfs defaults 0 0" >> /etc/fstab

模拟磁盘故障

[root@bogon ~]# mdadm /dev/md5 -f /dev/nvme0n3
mdadm: set /dev/nvme0n3 faulty in /dev/md5
[root@bogon ~]# cat /proc/mdstat
md5 : active raid5 nvme0n3[4](F) nvme0n4[3] nvme0n2[1] nvme0n1[0]
      16758784 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [===>.................]  recovery = 16.8% (1413632/8379392) finish=0.5min speed=201947K/sec
unused devices: <none>

当某个磁盘出现故障时,相应的设备方括号标记(F),如上nvme0n3[4](F)
其中[3/2]的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,因为当前有一个设备故障,所以第二位数为2,此时阵列以降级模式运行,虽然阵列仍然可用,但是不具有数据冗余
[UU_]表示正常使用的设备是/dev/nvme0n1,/dev/nvme0n2,假如这里是/dev/nvme0n2出现故障,则变成[U_U]

重建完成后查看阵列状态,此时raid恢复正常(故障盘还未修复)

[root@bogon ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 nvme0n3[4](F) nvme0n4[3] nvme0n2[1] nvme0n1[0]
      16758784 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
[root@bogon ~]# mdadm -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Thu Nov 29 01:03:42 2018
        Raid Level : raid5
        Array Size : 16758784 (15.98 GiB 17.16 GB)
     Used Dev Size : 8379392 (7.99 GiB 8.58 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent
       Update Time : Thu Nov 29 01:09:26 2018
             State : clean
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 1
     Spare Devices : 0
            Layout : left-symmetric
        Chunk Size : 512K
Consistency Policy : unknown
              Name : bogon:5  (local to host bogon)
              UUID : 3ff040bd:c1ad0eb3:d98015e1:e53b682c
            Events : 37
    Number   Major   Minor   RaidDevice State
       0     259        0        0      active sync   /dev/nvme0n1
       1     259        1        1      active sync   /dev/nvme0n2
       3     259        3        2      active sync   /dev/nvme0n4
       4     259        2        -      faulty   /dev/nvme0n3

接下来移除故障的磁盘

[root@bogon ~]# mdadm /dev/md5 -r /dev/nvme0n3
mdadm: hot removed /dev/nvme0n3 from /dev/md5
[root@bogon ~]# mdadm -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Thu Nov 29 01:03:42 2018
        Raid Level : raid5
        Array Size : 16758784 (15.98 GiB 17.16 GB)
     Used Dev Size : 8379392 (7.99 GiB 8.58 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent
       Update Time : Thu Nov 29 01:12:10 2018
             State : clean
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0
            Layout : left-symmetric
        Chunk Size : 512K
Consistency Policy : unknown
              Name : bogon:5  (local to host bogon)
              UUID : 3ff040bd:c1ad0eb3:d98015e1:e53b682c
            Events : 38
    Number   Major   Minor   RaidDevice State
       0     259        0        0      active sync   /dev/nvme0n1
       1     259        1        1      active sync   /dev/nvme0n2
       3     259        3        2      active sync   /dev/nvme0n4

因为刚才模拟损坏了一块盘,所以当前阵列没有热备盘了,所以我们需要在添加一块新的热备盘,这里为了方便,直接将刚才模拟损坏的硬盘再次添加到raid5中

[root@bogon ~]# mdadm /dev/md5 -a /dev/nvme0n3
mdadm: added /dev/nvme0n3
[root@bogon ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Thu Nov ::
Raid Level : raid5
Array Size : (15.98 GiB 17.16 GB)
Used Dev Size : (7.99 GiB 8.58 GB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent
Update Time : Thu Nov ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices :
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : unknown
Name : bogon: (local to host bogon)
UUID : 3ff040bd:c1ad0eb3:d98015e1:e53b682c
Events :
Number Major Minor RaidDevice State
active sync /dev/nvme0n1
active sync /dev/nvme0n2
active sync /dev/nvme0n4
- spare /dev/nvme0n3

此时/dev/nvme0n3变成了热备盘,故障测试结束。

软raid增加硬盘

软raid使用了一段时间后,发现磁盘空间不足了,此时就需要向当前软RAID中增加新的磁盘,提高RAID的空间

关闭当前系统,增加磁盘,因为我是vm实验环境,关闭虚拟机后直接添加硬盘即可,我骚气的使用了nvme接口,结果nvme最多支持4块硬盘,没办法,只能添加sas硬盘来顶一下啦!

[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb : 8G disk
nvme0n1 : 8G disk
└─md5 : 16G raid5 /mnt/data
nvme0n2 : 8G disk
└─md5 : 16G raid5 /mnt/data
nvme0n3 : 8G disk
└─md5 : 16G raid5 /mnt/data
nvme0n4 : 8G disk
└─md5 : 16G raid5 /mnt/data
[root@localhost ~]# mdadm /dev/md5 -a /dev/sdb
mdadm: added /dev/sdb
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Thu Nov ::
Raid Level : raid5
Array Size : (15.98 GiB 17.16 GB)
Used Dev Size : (7.99 GiB 8.58 GB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent
Update Time : Thu Nov ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices :
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : unknown
Name : bogon:
UUID : 3ff040bd:c1ad0eb3:d98015e1:e53b682c
Events :
Number Major Minor RaidDevice State
active sync /dev/nvme0n1
active sync /dev/nvme0n2
active sync /dev/nvme0n4
- spare /dev/nvme0n3
- spare /dev/sdb

刚才向RAID中增加的磁盘,会被当作热备盘,还需要把热备盘加入到RAID的活动盘中

[root@localhost ~]# mdadm -G /dev/md5 -n4
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Thu Nov ::
Raid Level : raid5
Array Size : (15.98 GiB 17.16 GB)
Used Dev Size : (7.99 GiB 8.58 GB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent
Update Time : Thu Nov ::
State : clean, reshaping
Active Devices :
Working Devices :
Failed Devices :
Spare Devices :
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : unknown
Reshape Status : % complete
Delta Devices : , (->)
Name : bogon:
UUID : 3ff040bd:c1ad0eb3:d98015e1:e53b682c
Events :
Number Major Minor RaidDevice State
active sync /dev/nvme0n1
active sync /dev/nvme0n2
active sync /dev/nvme0n4
active sync /dev/sdb
- spare /dev/nvme0n3

上图可以看到,刚新加的/dev/sdb已经变成了活动盘,但是Array Size : 16758784 (15.98 GiB 17.16 GB)并没有变大,那是因为构建没有完成。
等cat /proc/mdstat构建完成,RAID的容量就会变成(4-1)x8G,下图是已经构建完成后的RAID状态,可以看到Array Size :25138176 (23.97 GiB 25.74 GB)增加了

[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Thu Nov ::
Raid Level : raid5
Array Size : (23.97 GiB 25.74 GB)
Used Dev Size : (7.99 GiB 8.58 GB)
Raid Devices :
Total Devices :
Persistence : Superblock is persistent
Update Time : Thu Nov ::
State : clean
Active Devices :
Working Devices :
Failed Devices :
Spare Devices :
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : unknown
Name : bogon:
UUID : 3ff040bd:c1ad0eb3:d98015e1:e53b682c
Events :
Number Major Minor RaidDevice State
active sync /dev/nvme0n1
active sync /dev/nvme0n2
active sync /dev/nvme0n4
active sync /dev/sdb
- spare /dev/nvme0n3
[root@localhost ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/md5 xfs 16G 34M 16G % /raid5

但是通过上面的df -Th查看文件系统容量发现大小并没有改变,所以还需要对文件系统扩容,根据磁盘大小,扩容时间也不相同,所以扩容时耐心等待

因为我使用了nvme磁盘和sas磁盘,磁盘的super-block可能不同,导致演示失败。

[root@localhost ~]# resize2fs /dev/md5
resize2fs 1.42. (-Dec-)
resize2fs: Bad magic number in super-block while trying to open /dev/md5
Couldn't find valid filesystem superblock.

不过正常情况下,执行完resize2fs /dev/md5就可以看到df -Th显示正常大小了。

然后修改RAID的配置文件vi /etc/mdadm.conf,

DEVICE /dev/nvme0n1 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/xxxx

最后reboot重启系统,确认RAID是否正常

删除raid

[root@bogon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 : 500G disk
└─md127 : .8G raid5
nvme0n2 : 500G disk
└─md127 : .8G raid5
nvme0n3 : 500G disk
└─md127 : .8G raid5
nvme0n4 : 500G disk
└─md127 : .8G raid5
[root@bogon ~]# mdadm /dev/md127 --fail /dev/nvme0n1 --remove /dev/nvme0n1
mdadm: set /dev/nvme0n1 faulty in /dev/md127
mdadm: hot removed /dev/nvme0n1 from /dev/md127
[root@bogon ~]# mdadm /dev/md127 --fail /dev/nvme0n2 --remove /dev/nvme0n2
mdadm: set /dev/nvme0n2 faulty in /dev/md127
mdadm: hot removed /dev/nvme0n2 from /dev/md127
[root@bogon ~]# mdadm /dev/md127 --fail /dev/nvme0n3 --remove /dev/nvme0n3
mdadm: set /dev/nvme0n3 faulty in /dev/md5
mdadm: hot removed /dev/nvme0n3 from /dev/md5
[root@bogon ~]# mdadm /dev/md127 --fail /dev/nvme0n4 --remove /dev/nvme0n4
mdadm: set /dev/nvme0n4 faulty in /dev/md5
mdadm: hot removed /dev/nvme0n4 from /dev/md5
[root@bogon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
md5 : .8G raid5
nvme0n1 : 500G disk
nvme0n2 : 500G disk
nvme0n3 : 500G disk
nvme0n4 : 500G disk
[root@bogon ~]# mdadm -S /dev/md5
mdadm: stopped /dev/md5
[root@bogon ~]# mdadm --misc --zero-superblock /dev/nvme0n1
[root@bogon ~]# mdadm --misc --zero-superblock /dev/nvme0n2
[root@bogon ~]# mdadm --misc --zero-superblock /dev/nvme0n3
[root@bogon ~]# mdadm --misc --zero-superblock /dev/nvme0n4

其他参考命令

mdadm --stop /dev/md0
mdadm --remove /dev/md0

CentOS 配置软raid的更多相关文章

  1. CentOS 6.3下配置软RAID(Software RAID)

    一.RAID 简介 RAID 是英文Redundant Array of Independent Disks 的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array). ...

  2. (转)CentOS 6下配置软RAID图文详解

    CentOS 6下配置软RAID图文详解 原文:http://blog.51cto.com/hujiangtao/1929620 一.RAID 简介 RAID 是英文Redundant Array o ...

  3. 华为服务器XH628配置软RAID

    1.       硬RAID 1.1.       配置准备 本机型号为华为XH628,配有两块400GSSD,12块1.2TSAS盘.其中2块SSD做RAID1为系统盘,12块SAS盘做RAID5, ...

  4. Liunx软Raid实现

    Liunx软Raid实现 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在配置软Raid之前,我们首先要了解一下什么是Raid,Raid又分哪几个系列?哪个又是最靠谱的组合?我们生 ...

  5. linux磁盘管理系列-软RAID的实现

    1 什么是RAID RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. R ...

  6. linux磁盘管理系列二:软RAID的实现

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  7. LINUX中软RAID的实现方案

    转自linux就该这么学 应用场景 Raid大家都知道是冗余磁盘的意思(Redundant Arrays of Independent Disks,RAID),可以按业务系统的需要提供高可用性和冗余性 ...

  8. Raid 介绍以及软raid的实现

    RAID: old Redundant Arrays of Inexpensive Disks (廉价磁盘冗余阵列) new Redundant Arrays of Independent Disks ...

  9. ☆RHEL6创建软raid的使用☆——经典之作

    raid主要的种类 1.raid0  扩展卷   raid 0又称Stripee或Striping,中文译为集带工作方式, 有时也可以理解为拼凑. 它是将要存取的数据以条带状的形式尽量平均分配到多个硬 ...

随机推荐

  1. vector容器的用法以及动态数组

    vector容器不必去管大小 string申明的数组已经是动态的了 若是int类型的话,需要 cin>>N: int a[N]会出错 ,必须是int *p = new int[N] 然后再 ...

  2. selinux操作

    setenforce 0 关闭SELinux setenforce 1 临时打开SELinux getenforce 查看SELinux状态 永久关闭SELinux : # cat /etc/seli ...

  3. MySQL--增加或修改列注释

    ##=============================================## ## 在创建表的时候为字段添加注释 ## CREATE TABLE TB003 ( ID INT P ...

  4. mysql 变量名称的使用不当的一个错误

    对于开发来说重要的是按照规范进行开发. 昨天自己在进行开发测试的时候,编写mysql 的一个存储过程 ,代码是比较简单的 就是根据名称查询对应的数据并返回 DELIMITER // CREATE PR ...

  5. 引用,引用形參,指针形參与指向指针的引用形參,内存泄露及free相关

    (另:关于"引用"更具体的讨论.见此.) 由做UVa133引发的一系列问题及讨论 1.引用类型    C++ Primer P51 引用就是对象的还有一个名字,使用多个变量名指向同 ...

  6. 【转】每天一个linux命令(11):nl命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件 ...

  7. 关于事件委托的整理 ,另附bind,live,delegate,on区别

    随着DOM结构的复杂化和Ajax等动态脚本技术的运用导致如今的js界里最火热的一项技术应该是‘事件委托(event delegation)’了,什么是事件委托呢?小七给你娓娓道来,说白了就是想给子元素 ...

  8. Tomcat 自动化部署

    Tomcat 自动化部署脚本 使用方法: ./autodeploy.sh test 其中autodeploy.sh 为脚本的文件名, test为war的文件名. #!/bin/sh now=`date ...

  9. IPv6调用java后端接口报错:java.net.SocketException: Protocol family unavailable

    目前需求是java后端的接口需要支持IPv6.先确认linux机器已经绑定了IPv6: CMREAD-SV43 apache-tomcat/bin> ifconfig eth0 Link enc ...

  10. DEDECMS ShowMsg()样式修改 提示信息的修改以及美化

    织梦DedeCMS系统,处处都在用到提示信息,但是这个提示框,前台后台一层不变,太死板了,可能有很多人都有过去修改它的想法,只是苦于不知道去哪里 改.今天我就来说说这个吧,DedeCMS的所有提示信息 ...