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. ZOJ 17届校赛 Knuth-Morris-Pratt Algorithm( 水题)

    In computer science, the Knuth-Morris-Pratt string searching algorithm (or KMP algorithm) searches f ...

  2. Pandas 命令整理

    在网上看到一个整理的很好的pandas命令合集,转一份供自己查找与参考

  3. jmeter随笔(34)-WebSocket协议接口测试实战

    2017年春节结束了,一切再次回归到正轨,我们飞测也开始继续分享,小怪在这里预祝大家在2017年工作顺利,满满的收获. 背景:今天研发哥们QQ我,请教websocket协议的接口测试,这哥们自己开发了 ...

  4. OC基础:类和对象 分类: ios学习 OC 2015-06-12 18:55 17人阅读 评论(0) 收藏

    OC:Objective-c     面向对象的c语言,简称obj-c或者OC OC和C的区别 1.OC是C语言的超集,OC是在C语言的基础上结合smalltalk的优点,开发出来的语言.oc兼容所有 ...

  5. Vue2.0 分页插件pagination使用详细说明

    Vue2.0 分页pagination使用 插件下载地址:Vue_Pagination 插件描述:基于jQuery的分页插件大家都用过很多了吧,今天分享一下基于Vue的分页插件pagination.j ...

  6. 判断颜色信息-RGB2HSV

    前言 项目车号识别过程中,车体有三种颜色黑车黑底白字.红车红底白字.绿车黄底绿字,可以通过判断车体的颜色信息,从而判断二值化是否需要反转,主要是基于rgb2hsv函数进行不同颜色的阈值判断. MATL ...

  7. Redis的持久化策略

    Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...

  8. [LeetCode&Python] Problem 461. Hamming Distance

    The Hamming distance between two integers is the number of positions at which the corresponding bits ...

  9. ClickHouse 简单试用

    ClickHouse 具有强劲的数据分析能力,同时支持标准sql 查询,内置了好多聚合参数 同时可以方便的使用表函数连接不同的数据源(url,jdbc,文件目录...) 测试使用docker安装 参考 ...

  10. docker 方式运行drill

    drill 1.14 版本已经官方支持使用docker 直接运行可,还是比较方便的,尽管镜像 有点大,但是实际测试使用还是比较方便的,实际上自己做一个也比较简单. 下载镜像 docker pull d ...