VMware Linux RAID5 介绍

VMware Linux RAID5 配置
VM环境:VMware Workstation
OS环境:CentOS 7

一、在VM中,软RAID 设备是/dev/md*, md (Multiple Devices)
二、在RAID5中,至少要有3块硬盘,因为有差错检验.
三、在软RAID5中,实际的硬盘大小应该为实际硬盘数减一,即(N-1),减去的那块空间奇偶校验.这个空间是分散到每个磁盘上的.
四、在软RAID5中,实际的每块硬盘的大小,由最小的那块硬盘来决定.因为数据会拆开平均分配给每块硬盘.
五、所有实际RAID硬盘大小应该是(硬盘数or硬盘的分区数-1)*最小的那个硬盘大小or分区大小
六、因为adadm是个工具,并没服务进程去读取/etc/mdadm.conf文件,所以,这个/etc/mdadm.conf文件是系统kernel默认读取的
RAID模块为kernel支持模块,/etc/mdadm.conf作为默认的配置文件,系统启动时加载RAID模块读默认配置文件/etc/mdadm.conf,与/etc/hosts,/etc/resolv.conf之类一 样。

实验

首先在VM上的Linux安装4块硬盘,/dev/sdb /dev/sdc /dev/sdd /dev/sde 每块硬盘20G

#fdisk -l 

VMware Linux RAID5 介绍
1.首选把这4块硬盘合并成raid.

#mdadm -Cv  /dev/md0  -l5  --raid-devices=4  /dev/sdb /dev/sdc /dev/sdd /dev/sde
 #  C 为创建RAID
 #  v 为显示创建信息
 #  /dev/md0 为软raid设备
 # --raid-devices  为几块硬盘

VMware Linux RAID5 介绍

  1. 这时你可以用mdadm -D /dev/md0 参看RAID创建情况
#mdadm -D /dev/md0 

VMware Linux RAID5 介绍
下面是CentOS 5效果图
VMware Linux RAID5 介绍
这时,还在编译,都它编译好了.就可以用了

  1. 就创建了一个/dev/md0的raid了.但它的大小是(硬盘数or硬盘的分区数-1)*最小的那个硬盘大小or分区大小
#fdisk -l

VMware Linux RAID5 介绍
4.如果要使用,还必须指定/dev/md0的文件格式

  # mkfs.ext3 /dev/md0

VMware Linux RAID5 介绍
5.这个时候,我们就要使用fdisk /dev/md0 重新对新的/dev/md0进行分区

#fdisk /dev/md0

VMware Linux RAID5 介绍
6.如果想控制页面的大小就需要加 -c32 (32标识每个页面32K,默认是64K),页面大小直接影响到IO
mdadm -Cv /dev/md0 -c32 -l5 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
通过mdadm -D /dev/md0就可以看到

#mdadm -Cv /dev/md0 -c32 -l5 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

VMware Linux RAID5 介绍
7. mdadm -Cv /dev/md0 -l5 --raid-devices=4 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

这个是建立一个热备磁盘,如果某个磁盘坏了.可以自动顶上去.

#mdadm -Cv  /dev/md0  -l5  --raid-devices=4  --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

VMware Linux RAID5 介绍
模拟一个磁盘坏了,查看raid信息

[root@localhost MegaRAID]# mdadm /dev/md0 -f /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md0
[root@localhost MegaRAID]# mdadm -D /dev/md0

VMware Linux RAID5 介绍
8、查看raid信息

#cat /proc/mdstat

VMware Linux RAID5 介绍
格式化

mkfs.ext4 -j -b 4096 /dev/md0

挂载 (硬盘挂载到data目录成功)
mkdir /data
mount /dev/md1 /data
echo "/dev/md1 /data                       ext4     defaults        0 0" >> /etc/fstab

VMware Linux RAID5 介绍
写数据

mkdir /data/abc && touch /data/abc/123
mdadm -D /dev/md0     查看是否有坏的硬盘

VMware Linux RAID5 介绍
VMware Linux RAID5 介绍
新增磁盘设备,添加到md1

#mdadm /dev/md1 -a /dev/sdb
mdadm: Cannot open /dev/sdb: Device or resource busy

VMware Linux RAID5 介绍
软Raid创建的时候出现mdadm: Cannot open /dev/sde1: Device or resource busy

用一下命令可以解决:mdadm --stop /dev/md1

[root@localhost ~]# mdadm --stop /dev/md0
mdadm: Cannot get exclusive access to /dev/md0:Perhaps a running process, mounted filesystem or active volume group?

意思就是停止Raid,停止先前创建的,

停止Raid后不提示就用上面的命令 md_d1是生成Raid重启后有的
VMware Linux RAID5 介绍
VMware Linux RAID5 介绍
VMware Linux RAID5 介绍
四个硬盘,一个模拟坏盘,三个是磁盘正在运行,一个是刚刚挂载的data
VMware Linux RAID5 介绍
报错:系统正在使用中。
解决办法 :添加完硬盘后,需要重启才能识别这些硬盘设备。

删除已损坏的硬盘

#mdadm /dev/md0 -r /dev/sdc
mdadm: hot remove failed for /dev/sdc: Device or resource busy
#/dev/sdc正在使用中

#mdadm -D /dev/md0        #查看损坏的硬盘,是否被删除。

VMware Linux RAID5 介绍
停止md1磁盘

#mdadm --stop /dev/md1

mdadm: Cannot get exclusive access to /dev/md1:Perhaps a running process, mounted filesystem or active volume group?

VMware Linux RAID5 介绍
VMware Linux RAID5 介绍
查看状态,一切正常:

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]

md1 : active raid5 sdf[4] sdg[3] sdi[2] sdj[1] sdh[0]

     3907045376 blocks super 1.2 level 5, 256k chunk, algorithm 2 [5/5] [UUUUU]

unused devices: <none>

VMware Linux RAID5 介绍
查看挂载点,也未发现有mount;也没有使用LVM管理该设备。
查看是否有用户正在使用该设备:

#fuser -vm /dev/md1

VMware Linux RAID5 介绍
显示root用户正在操作该设备,kill掉该进程,再次stop该设备成功。

扩展

LINUX下彻底关闭某个RAID磁盘阵列
1、查看RAID磁盘阵列信息,确认一下要关闭哪个。如:关闭md0这个阵列

[root@godben ~]# cat /proc/mdstat 

Personalities : [raid6] [raid5] [raid4] 

2、卸载md0这个阵列的挂载点:

[root@godben ~]# umount /mnt/raid5

3、停止md0这个阵列,并释放与该阵列相关的所有资源:

[root@godben ~]# mdadm -S /dev/md0

mdadm: stopped /dev/md0

注意:如果在停止md0的阵列前,却没有把它卸载(umount)掉,会出现如下提示:

[root@godben ~]# mdadm -S /dev/md0

mdadm: Cannot get exclusive access to /dev/md0:Perhaps a running process, mounted filesystem or active volume group?

4、清除成员磁盘当中阵列的超级块信息,这一步很重要!

[root@godben ~]# mdadm --zero-superblock /dev/sdb[1-3,5]

5、删除或注释/etc/fstab上的挂载信息

[root@godben ~]# vim /etc/fstab 

#UUID=796a27da-d899-4e64-a3bd-b468fb0c4f37      /mnt/raid5       ext4    defaults       0     0

6、删除或注释/etc/mdadm.conf对应的RAID信息:

[root@godben ~]# vim /etc/mdadm.conf

#ARRAY /dev/md0 metadata=1.2 spares=1 name=kashu.localdomain:0 UUID=3895d28e:bdcaed28:136b4cf6:d2a858f5

7、如果做完上面所有的操作后,发现/dev/下还有md0这个设备文件存在,直接rm -f /dev/md0即可

#rm -f /dev/md0

注:
用/dev/md0 的软raid设备生成的磁盘整列.无法进行分区.
mdadm -Cv /dev/md0 -l5 -c32 --raid-devices=5 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg

这里,无法对/dev/md0分区后的设备进行mkfs.ext* 操作,无法创建分区的格式.所以挂载md0分区后的设备

例如 mkfs.ext3 /etc/md0p1 // error

所以需要

创建md设备时,用/dev/md_d0替代/dev/md0,才能对MD设备进行分区。
mdadm -Cv --auto=mdp /dev/md_d0 -l5 -c32 --raid-devices=5 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg

基本操作
mdadm -S /dev/md0 #关闭raid
mdadm -A /dev/md0 #启动raid
mdadm -E /dev/sdb #如果你不知道哪个分区属于哪个磁盘整列,可以用这个命令.
#UUID就是这个磁盘整列的唯一标识符.
VMware Linux RAID5 介绍
VMware Linux RAID5 介绍
mdadm -Av /dev/md0 --uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8 # 获得UUID后,也可以这样激活阵列

mdadm /dev/md0 --fail /dev/sdb --remove /dev/sdb # 删除某个硬盘或分区.如果有一份热备用盘.如果删除.热备份盘会自动启动.

mdadm /dev/md0 --add /dev/sdb # 新加一块硬盘.

重启后,使RAID从内核启动.

mdadm --detail --scan >> /etc/mdadm.conf # 放入配置文件.再次重启raid还是存在

VMware Linux RAID5 介绍

参考链接 :

CENTOS 7安装MEGACLI
https://www.freesion.com/article/88151145481/

https://blog.csdn.net/weixin_50355475/article/details/110530929

https://blog.csdn.net/m582445672/article/details/7600798?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control

虚拟机上创建RAID01 :https://blog.csdn.net/qq_41524362/article/details/88902264?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param

mdadm删除RAID失败的解决方法 :https://www.it610.com/article/3160808.htm

Linux下彻底关闭某个RAID磁盘阵列 : https://blog.51cto.com/godben/1708634

https://blog.csdn.net/u011442726/article/details/101475738

上一篇:Centos 软raid摘要


下一篇:敖丙跟你聊聊MySQL安全的那些事