linux-磁盘管理与文件系统-RAID配置实战
Posted 可乐卷儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-磁盘管理与文件系统-RAID配置实战相关的知识,希望对你有一定的参考价值。
文章目录
一、RAID磁盘阵列介绍
1、简介
- RAID:redundant array of independent disks,独立冗余磁盘阵列
- 磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上
2、与LVM的区别
- RAID:提升存储性能(硬盘的读写效率),提供数据备份技术;按照不同方式组合形成一个硬盘组
- LVM:只是提高磁盘管理的灵活性,并不能提升硬盘的读写效率和提供数据备份技术
3、RAID级别
- RAID0:又称条带卷;是一种简单的、无数据校验的数据条带化技术。实际上不是一种真正的 RAID ,因为它并不提供任何形式的冗余策略
- RAID1:又称为镜像卷;它将数据完全一致地分别写到工作磁盘和镜像磁盘上
- RAID5:应该是目前最常见的 RAID 等级
- RAID6:引入双重校验的概念,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失;RAID5的扩展版
- RAID10:是先做镜像再作条带化,是对虚拟磁盘实现镜像;缺点是成本高
二、阵列卡简介
1、概念
是用来实现RAID功能的板卡,分为硬RAID和软RAID。现在RAID卡基本上支持各种RAID等级,常用的接口类型 SCSI SATA SAS 接口,IDE接口已经没有了。
2、硬RAID和软RAID的区别
- 硬RAID:在硬件层面上通过阵列卡实现RAID功能,实现步骤如下:
- 在服务器上面插入磁盘阵列卡
- 阵列卡上面插入磁盘
- 开机–配置RAID–安装系统
- RAID卡有自己的处理器CPU
- 软RAID:在系统层面上,通过mdadm管理工具进行管理,实现RAID功能
三、构建软RAID磁盘阵列-mdadm命令
1、mdadm软件简介
mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具;最小化默认不安装,需要yum安装;
mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动。
mdadm程序是一个独立的程序,能完成所有软件RAID的管理功能,主要有7种使用模式
2、配置文件
- mdadm的配置文件:/etc/mdadm.conf
- /proc/mdstat : 当前md(软RAID)的状态信息
四、mdadm软件创建RAID
1、配置RAID 0
第一步、创建md0
- rpm -q mdadm:先查询系统是否安装mdadm
- mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]:在分区/dev/sdb sdc 创建md0
- -C:创建
- -v:显示详情
- /dev/md0:为磁盘阵列名称
- -l:指定raid级别 level;有0,1,5,10,50等
- -n2:2块磁盘
- /devsd[b-c]:磁盘的位置
- mdadm: chunk size defaults to 512K //这样显示即为成功
第二步、查看创建是否成功
- mdadm -D /dev/md0:查看详情
第三步、写入配置文件
- mdadm -Ds /dev/md0:扫描查看/dev/md0详情
- mdadm -Dsv /dev/md0 > /etc/mdadm.conf:生成配置文件
- -D:查询
- -s:扫描
- -v:详情:级别、磁盘
- 若有多个RAID生成配置文件追加方法:mdadm -Dsv /dev/md0 >>etc/mdadm.conf
第四步、格式化
mkfs.xfs /dev/mdo
第五步、挂载:mount
mkdir /raid0
mount /dev/md0 /raid0
2、配置RAID 1
2.1、配置步骤
第一步、创建md1
mdadm -C -v /dev/md1 -l1 -n2 /dev/sdc /dev/sdd:创建md0
第二步、查询
mdadm -D /dev/md1:查询md1详情;查看文件容量和读数据不受影响
第三步、格式化:mkfs.xfs /dev/md1
第四步、挂载
mkdir /raid1
mount /dev/md1 /raid1
2.2、模拟破坏硬盘md1并移除
第一步、先拷贝一份文件:cp -p /etc/passwd /raid1
第二步、移除分区:mdadm /dev/md1 -f /dev/sdc
查询详情:mdadm -D /dev/md1:其中一个硬盘faulty
cat /proc/mdstat:查看当前md时时状态
cat /raid1/passwd
虽然md1删除了,但是内容还可以看
移除损坏的硬盘 md1:也可以合并成一个命令
mdadm -r /dev/md1 /dev/sdc
2.3、增加一个磁盘
第一步、增加磁盘:mdadm -a /dev/md1 /dev/sde
第二步、查看是否创建成功:mdadm -D /dev/md1
查看状态会发现需要一点时间同步,具体看下两图
第三步、同步配置文件:mdadm -Dvs /dev/md11 > /etc/mdadm.conf
为了防止这种情况,还可以在一开始创建Raid1的时候就指定热备盘
- mdadm -C -v /dev/md11 -l1 -n3 -x1 /dev/sd[f-h]:创建一块热备盘(若有磁盘损坏可以顶替工作)
- -x:热备份;一块磁盘备份
- 实例:创建raid11
mdadm -C -v /dev/md11 -l1 -n2 -x1 /dev/sdf[f-h]创建md11,一块是热备盘,两块硬盘
这是我们可以看一下raid11内删除硬盘盒增加硬盘属性的变化
查询创建结果:mdadm -D /dev/md11
mdadm -D /dev/md11:删除md11内的sdf盘
发现sdf变成faulty;sdg自动上位,无须重新设置
2.4、模拟损坏其中一块观察raid状态
破坏和移除磁盘:mdadm /dev/md11 -f /dev/sdf -r /dev/sdf
这时移除被磨坏的sdf盘,新增一个sdi盘,增加至md11内,发现是备用盘
3、配置RAID 5
第一步、创建raid 5
mdadm -C -v /dev/md5 -l5 -n3 -x1 /dev/sd[b,c,d,e] //3块盘做raid5,1块盘做热备
第二步、查看状态
查看状态:mdadm -D /dev/md5;同步需要时间
第三步、写入RAID配置文件:mdadm -Dvs > /etc/mdadm.conf
第四步、格式化:mkfs.xfs /dev/md5
第五步、挂载
mkdir /raid5
mount /dev/md5 /raid5/
拓展:
watch -n 0.5 ‘mdadm -D /dev/md5’:每0.5s监控一次
watch -n 0.5 'mdadm -D /dev/md5 | tail ‘:每0.5秒监控一次,看后面状态10条
3.1、模拟损坏硬盘并移除
mdadm /dev/md5 -f /dev/sdb -r /dev/sdb:损坏硬盘并移除
cat /proc/mdstat:查看md时时状态
mdadm -Dvs /dev/md5 > /etc/mdadm.conf :损坏之后先更新
3.2、添加硬盘
- -G:前提是存在热备份的时候才可以使用 //需要先-a添加磁盘
在raid5中把原来的备份盘变成正式盘:
mdadm -G /dev/md5 -n 4 //原来3块现在变成4块
4、停止阵列
- 若有挂载需要先卸载挂载umount /dev/md5
- mdadm -s /dev/md5:删除md5;ls /dev/md5
测试结果:
ls: 无法访问/dev/md5: 没有那个文件或目录
我们要注意的是
cat /etc/mdadm.conf //配置文件还有便于恢复
ARRAY /dev/md5 level=raid5 num-devices=3 metadata=1.2 name=localhost.localdomain:5 UUID=19141953:15e712a3:70fc1faa:220b06c7
devices=/dev/sdc,/dev/sdd,/dev/sde
cat /proc/mdstat //内存中已经读不到了
Personalities : [raid6] [raid5] [raid4]
unused devices: <none>
删除raid不用了,磁盘做其他用(也要先卸载)
umount /dev/md5
mdadm -S /dev/md5
5、激活阵列
- 激活:mdadm -As//s表示恢复的时候会去配置文件中扫描
- 彻底删除RAID:
- rm -rf /etc/mdamd.conf:删除配置文件
- 再清除superblock
- mdadm --zero-surpeblock /dev/sdb:擦除设备中MD超级块
五、实操
实验要求:RAID 10与LVM结合
添加四块硬盘
创建RAID10和写入配置文件
创建PV物理卷
创建VG LV
格式化 xfs
挂载
以上是关于linux-磁盘管理与文件系统-RAID配置实战的主要内容,如果未能解决你的问题,请参考以下文章
Linux :linux系统磁盘(fdiskpartprobemkfsmountdfsortswapinodeblock)