Linux软件RAID(磁盘冗余阵列)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux软件RAID(磁盘冗余阵列)相关的知识,希望对你有一定的参考价值。

一、LVM与RAID特点对比

LVM RAID
LVM实现动态扩容 RAID支持动态扩容
LVM不支持磁盘加速 RAID支持磁盘加速
LVM不支持冗余(数据备份) RAID支持冗余

二、RAID(磁盘冗余阵列)

(1)硬件:磁盘阵列卡、磁盘阵列柜

(2)软件:mdadm

三、RAID级别

(1)RAID 0:需两块硬盘以上,一般为偶数磁盘数量,磁盘容量为多块磁盘的和(致命缺点:数据无冗余效果),提升磁盘I/O(读取、写入)、不允许磁盘损坏

(2)RAID 1:需两块硬盘以上,一般为偶数磁盘数量,磁盘容量为多块磁盘的一半,提升数据的可靠性(致命缺点:磁盘浪费严重)、允许磁盘坏掉一半

(3)RAID 5:需三块硬盘以上,一般为奇数磁盘数量,磁盘容量为多块磁盘-1,提升部分磁盘速度及冗余效果(致命缺点:生成校验和时占用额外计算资源)、允许损坏一块硬盘

(4)RAID 6:需四块硬盘以上,一般为偶数磁盘,磁盘容量为多块磁盘-2,相当于RAID 5提升了磁盘速度及冗余效果(允许损坏两块磁盘)

(5)RAID 1+0:需四块硬盘以上,一般为偶数磁盘,磁盘容量为多块磁盘的一半,综合了RAID 0+RAID 1的特性

(6)RAID 5+0:需六块磁盘以上,一般为偶数磁盘,磁盘容量为每三块磁盘-1,综合了RAID 5+RAID 0的特性

(7)RAID 6+0:需八块磁盘以上,一般为偶数磁盘,磁盘容量为每四块磁盘-2,综合了RAID 6+RAID 0的特性

组成RAID时,一般磁盘容量相等

四、RAID 5案例:

1.查看系统中的磁盘设备fdisk -l

技术分享图片

2.使用命令mdadm创建raid

如果没有请先安装mdadm软件包(rpm -qa |grep mdadm
技术分享图片
命令参数

-A  =  --assemble      //激活
-S  =  --stop           //停止
-D  =  --detail          //查看raid详细信息
-C  =  -- create         //建立raid设备
-v  =  --verbose        //显示建立过程的详细信息
-l  =  --level            //raid的级别
-n  =  --raid-devices    //raid设备数
-s  =  --scan            //扫描raid设备
-f  =  --fail              //标示坏的硬盘
-a  =  --add             //添加硬盘
-r  =  -remove           //移除坏的硬盘

:RHEL 的光盘中有这个包

3.创建raid5阵列

mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]
可以缩写为:mdadm –C –a yes /dev/md0 –l5 –n3 –x1 /dev/sd[b-e]

技术分享图片
参数解释

-create               //表示要创建raid
--auto=yes /dev/md0    //是否自动检测,新建立的软件磁盘陈列设备为md0,md序号可以为0-9
--level=5               //磁盘阵列的等级,这里是raid5
-raid-devices           //所需使用的磁盘数量
--spare-devices          //添加作为预备(spare)磁盘的块数
/dev/sd[b-e]           //磁盘阵列所使用的设备,还可以写成“/dev/sdb /dev/sdc /dev/sdd /dev/sde”

4.查看RAID是否成功的创建是否运行的正常

(1)查看详细信息:mdadm  - -detail  /dev/md0命令查看RAID的详细信息

技术分享图片
技术分享图片

(2)较为简单的查看:可以直接查看cat  /proc/mdstat的文件看到RAID运行的情况

技术分享图片

**注**:U代表没有问题、_则表示不正常;磁盘后面的(S)表示作为预备

5.格式化并且挂载和使用创建的RAID

mkfs.exe4  /dev/md0             //格式化   raid5磁盘为 md0

技术分享图片

mkdir  /raid

技术分享图片

mount  /dev/md0  /raid      //将md0 挂载到/raid目录下查看一下挂载情况
df  –hT

技术分享图片
试一下新加上的RAID是不是可以使用,向里面写入文件
技术分享图片

6.设置开机自动启动RAID以及自动挂载

让RAID开机自启动,RIAD配置文件名字为mdadm.conf 这个文件默认是不存在的,要自己建立.该配置文件存在的主要作用是系统启动的时候能够自动加载软RAID,同时也方便日后管理. 说明下mdadm.conf文件主要由以下部分组成

DEVICES选项制定组成RAID所有设备,
ARRAY选项指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号

注意此文件如果不创建下次开机重启后/dev/md0将会被系统自动识别为其他非/dev/md0名称的设备,对于实现开机挂载和使用都不方便
(1)先建立/etc/mdadm.conf 这个文件

mdadm  --detail  --scan > /etc/mdadm.conf  //将raid信息导入配置文件

技术分享图片
(2)要对这个文件做一下改动:将组成RAID5的设备名全部追加到配置文件中
技术分享图片
(3)在设置RAID的自动挂载

vim  /etc/fstab     //修改挂载文件
/dev/md0   /raid     ext4     defaults    0   0     //在文件中添加

技术分享图片

7.模拟RAID5中的磁盘损坏

(1)验证spare磁盘的功能(在raid5中允许一块磁盘的损坏,也就是我们设置的spare磁盘会立即的替换坏掉的磁盘进行raid的重建,保障数据的安全性)

mdadm  --manage  /dev/md0  --fail /dev/sdd  //使用此命令设置sdd成为出错的状态(或可简写为mdadm  /dev/md0  -f  /dev/sdd)

技术分享图片
(2)查看一下磁盘的信息:mdadm --detail /dev/md0
技术分享图片
技术分享图片
(3)简单的查看一下RAID的情况
技术分享图片
(4)创建完成也就是说明raid5 已经自动的恢复了!查看一下raid5是不是可以正常使用!
往里面新建文件写入数据,这时可以发现,RAID5还可正常使用,对数据不造成任何影响

技术分享图片

Active  sync  /dev/sdb1   # raid的真成员
spare  /dev/sdc1            #raid备用成员

(5)重新添加/dev/sdd进RAID5,可做以下操作:

mdadm  /dev/md0  --remove  /dev/sdd      //将坏掉的磁盘sdd从raid中移除

技术分享图片

mdadm  /dev/md0  -a  /dev/sdd             //将/dev/sdd加入阵列

技术分享图片
(6)查看状态
技术分享图片
技术分享图片

mdadm  --zero-superblock  --force  /dev/sdd(可选)    //可修复硬盘将模
拟损坏的硬盘重新添加

技术分享图片
(7)再模拟损坏掉一块硬盘,验证硬盘是否还可正常工作
技术分享图片
(8)再次查看硬盘状态
技术分享图片
技术分享图片
技术分享图片

8.关闭RAID的方法

直接卸载/dev/md0,并且注释掉/etc/fstab文件中的配置

umount  /dev/md0                  //解除挂接

技术分享图片

vim  /etc/fstab                     //将fstab里面的开机自动挂载注释掉
#/dev/md0     /var/www/html     ext4     defaults         0   0

技术分享图片

mdadm --stop /dev/md0           //停止md0磁盘服务

技术分享图片

以上是关于Linux软件RAID(磁盘冗余阵列)的主要内容,如果未能解决你的问题,请参考以下文章

linux-RAID磁盘阵列进程管理日志管理systemctl控制

linux[基础]-23-[磁盘冗余阵列]-[RAID]-[01]

Linux系统的RAID磁盘阵列

linux之磁盘阵列实战

Linux的RAID磁盘阵列与阵列卡

linux系统中RAID10磁盘冗余阵列配置