前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实战RAID5

实战RAID5

作者头像
DataScience
发布2020-01-01 17:46:09
7150
发布2020-01-01 17:46:09
举报
文章被收录于专栏:A2DataA2Data

本文标识 : L00026

本文编辑 : 灭霸 编程工具 : redhat7 阅读时长 : 11分钟

RAID5

实现raid5创建RAID:

1.创建raid设备md5,RAID级别5,可用设备3个,热备设备1个.分别为/dev/sdc1,/dev/sdc2,/dev/sdc3

mdadm –C /dev/md5 –l 5 –n 3 –x 1 /dev/sdc{1,2,3,4}

代码语言:javascript
复制
[root@localhost /]# mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sdc{1,2,3,4}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

2.创建RAID5

注:sdc1、sdc2、sdc3共同组成RAID5,sdc4为热备盘。并确认处于umount状态

格式化RAID 阵列

mkfs.xfs /dev/md5

代码语言:javascript
复制
[root@localhost dev]# mkfs.xfs /dev/md5 
meta-data=/dev/md5               isize=256    agcount=8, agsize=130944 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=1047552, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
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

3、查看 RAID 的创建过程:

#mdadm –D /dev/md5

代码语言:javascript
复制
[root@localhost dev]# mdadm -D /dev/md5 
/dev/md5:
        Version : 1.2
  Creation Time : Sun Nov 17 21:43:02 2019
     Raid Level : raid5
     Array Size : 4190208 (4.00 GiB 4.29 GB)
  Used Dev Size : 2095104 (2046.34 MiB 2145.39 MB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sun Nov 17 21:44:33 2019
          State : clean 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost.localdomain:5  (local to host localhost.localdomain)
           UUID : 74fee35b:fc982c15:881cd1ff:1532dd5d
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2
       4       8       35        2      active sync   /dev/sdc3

       3       8       36        -      spare   /dev/sdc4

创建 /dev/md5 的挂载点,写入 /etc/fstab 文件

mount –a 测试 /etc/fstab 文件的正确性。

下面挂载磁盘

代码语言:javascript
复制
[root@localhost mnt]# mount /dev/md5 aa/
[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 11月 17 21:44 aa
[root@localhost mnt]# cd aa/
[root@localhost aa]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda5        12G  2.9G  8.3G   27% /
devtmpfs        979M     0  979M    0% /dev
tmpfs           993M  144K  993M    1% /dev/shm
tmpfs           993M  9.0M  984M    1% /run
tmpfs           993M     0  993M    0% /sys/fs/cgroup
/dev/sda3       797M   36M  761M    5% /home
/dev/sda1       297M  130M  168M   44% /boot
tmpfs           199M   12K  199M    1% /run/user/0
/dev/sr0        3.8G  3.8G     0  100% /run/media/root/RHEL-7.2 Server.x86_64
/dev/md5        4.0G   33M  4.0G    1% /mnt/aa

当创建一个新阵列或者阵列重构时,设备需要进行同步操作,这一过程需要一定时间,可以通过查看/proc/mdstat文件,来显示阵列的当前状态以及同步进度、所需时间等。

查看数据同步过程:

cat /proc/mdstat

代码语言:javascript
复制
[root@localhost proc]# cat mdstat 
Personalities : [raid6] [raid5] [raid4] 
md5 : active raid5 sdc3[4] sdc4[3](S) sdc2[1] sdc1[0]
      4190208 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices: <none>

可以很清楚地看出当前阵列的状态,各部分所代表的意思如下:

“[3/3]”中的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,如果有一个设备损坏,则第二位数将减1;

“[UUU]”标记当前阵列可以正常使用的设备情况,现假设/dev/sdb1出现故障,则该标记将变成[_UU],这时的阵列以降级模式运行,即该阵列仍然可用,但是不再具有任何冗余;

“sdc3[4]”指阵列所包含的设备数为n,若方括号内的数值小于n,则表示该设备为活动设备,若数值大于等于n,则该设备为备份设备,当一个设备

出现故障的时候,相应设备的方括号后将被标以(F)。

RAID5故障模拟

将 /dev/sdb1 标记为已损坏的设备

mdadm /dev/md5 -f /dev/sdb1

代码语言:javascript
复制
[root@localhost proc]# mdadm /dev/md5  -f /dev/sdc1 
mdadm: set /dev/sdc1 faulty in /dev/md5
[root@localhost proc]# mdadm -D /dev/md5 
/dev/md5:
        Version : 1.2
  Creation Time : Sun Nov 17 21:43:02 2019
     Raid Level : raid5
     Array Size : 4190208 (4.00 GiB 4.29 GB)
  Used Dev Size : 2095104 (2046.34 MiB 2145.39 MB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sun Nov 17 21:55:51 2019
          State : clean 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost.localdomain:5  (local to host localhost.localdomain)
           UUID : 74fee35b:fc982c15:881cd1ff:1532dd5d
         Events : 37

    Number   Major   Minor   RaidDevice State
       3       8       36        0      active sync   /dev/sdc4
       1       8       34        1      active sync   /dev/sdc2
       4       8       35        2      active sync   /dev/sdc3

       0       8       33        -      faulty   /dev/sdc1

移除损坏的设备

mdadm /dev/md5 -r /dev/sdb1

查看 sdb1 是否存在 RAID 列表中

#mdadm -D /dev/md5

代码语言:javascript
复制
[root@localhost proc]# mdadm /dev/md5  -r /dev/sdc1 
mdadm: hot removed /dev/sdc1 from /dev/md5
[root@localhost proc]# mdadm -D /dev/md5 
/dev/md5:
        Version : 1.2
  Creation Time : Sun Nov 17 21:43:02 2019
     Raid Level : raid5
     Array Size : 4190208 (4.00 GiB 4.29 GB)
  Used Dev Size : 2095104 (2046.34 MiB 2145.39 MB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Sun Nov 17 21:56:40 2019
          State : clean 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost.localdomain:5  (local to host localhost.localdomain)
           UUID : 74fee35b:fc982c15:881cd1ff:1532dd5d
         Events : 38

    Number   Major   Minor   RaidDevice State
       3       8       36        0      active sync   /dev/sdc4
       1       8       34        1      active sync   /dev/sdc2
       4       8       35        2      active sync   /dev/sdc3

4.将新设备添加到阵列

1)清空/dev/sdb1的superblcok标记(修复)

#mdadm --misc --zero-superblock -f/dev/sdb1

2)把新的/dev/sdb1添加至RAID列表中

# mdadm /dev/md5 -a /dev/sdb1

代码语言:javascript
复制
[root@localhost proc]# mdadm --misc --zero-superblock -f /dev/sdc1
[root@localhost proc]# mdadm /dev/md5  -a /dev/sdc1 
mdadm: added /dev/sdc1

停止 ( 删除 ) 阵列

umount / 挂载点

mdadm -S /dev/md5显示指定阵列的详细信息

mdadm -D /dev/md5

修改/etc/fstab 等配置文件,把相关的地方去掉

最后,用 fdisk 对磁盘进行重新分区即可。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataScience 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RAID5
  • RAID5故障模拟
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档