实战RAID5

本文标识 : 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}

[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

[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

[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 文件的正确性。

下面挂载磁盘

[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

[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

[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

[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

[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 对磁盘进行重新分区即可。