Linux学习-软件磁盘阵列的设定(mdadm)
2018-02-25 18:20
211 查看
Software RAID--磁盘阵列有硬件磁盘阵列和软件磁盘阵列,硬件磁盘阵列使用磁盘阵列卡来达成效果,使多个磁盘组成一个大的磁盘,对操作系统而言,只能看见这个大的磁盘却看不见那些小的磁盘,但是磁盘阵列卡造价昂贵,普通用户在学习过程中无法实现硬件磁盘阵列;因此出现了用软件来实现磁盘阵列的功能,操作系统将多个小的磁盘组成一个大的虚拟磁盘,同时操作系统可以看得见每个小的磁盘.
目录
Software RAID的创建(mdadm --create | -C)
Software RAID仿真错误(mdadm --manage)
如何开机挂载RAID
如何彻底关闭RAID
共享热备盘的实现
案例
******************一 Software RAID的创建(mdadm --create|-C)********************
-a yes 自动创建后面接着的raid设备/dev/mdX
-n (--raid-devices=) num 阵列中磁盘的数量
-x (--spare-devices=) num 热备盘的数量
-l (--level=) [015] 设定磁盘阵列的等级,通常为raid 0,raid 1,raid 5
最后必须列出创建磁盘阵列用到的各个磁盘
![](http://s1.51cto.com/images/20180225/1519538970857099.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
另外 cat /proc/mdstat 可以查看全部的raid信息
![](http://s1.51cto.com/images/20180225/1519539144333434.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
******************二 Software RAID仿真错误(mdadm --manage)******************
mdadm (--manage) /dev/md1 -f /dev/sdf 将md1中的sdf设置为坏的设备,--manage加不加无所谓,下同mdadm (--manage) /dev/md1 -r /dev/sdf 将md1中的sdf从raid成员中删除mdadm (--manage) /dev/md1 -a /dev/sdf 向md1中增加新成员sdf mdadm -G /dev/md1 -n 3 -a /dev/sdh 将raid1 md1的成员数量改为3,并加入新的成员(不是加为热备盘)
![](http://s1.51cto.com/images/20180225/1519542902216425.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://s1.51cto.com/images/20180225/1519542959796005.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
可以发现-a的作用是:
会根据一开始创建RAID设定的raid-devices=num的值变化;
如果RAID中原本的num个磁盘都完好,-a只是增加热备盘
如果RAID中能使用的磁盘数不足num,-a会补充组成raid-device
****************************三 如何开机挂载RAID***************************
这和之前磁盘分区的挂载完全一样,把RAID当做一个磁盘处理就是了
1 修改raid的配置文件/etc/mdadm.conf
mdadm -D -s > /etc/mdadm.conf
2 修改配置文件/etc/fstab(相信大家很熟悉了)
/dev/md0 /mnt/raid ext4 defaults 1 2
将上面的一行加入该配置文件
3 挂载mount -a
重启之后查看
![](http://s1.51cto.com/images/20180225/1519552692507181.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
****************************四 如何彻底关闭RAID****************************
mdadm -S(--stop) /dev/md0 停止raid
mdadm -A /dev/md0 /dev/sdc /dev/sdd /dev/sde 开启raid
![](http://s1.51cto.com/images/20180225/1519541613121689.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
mdadm -D -s
![](http://s1.51cto.com/images/20180225/1519541763663332.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
mdadm -D -s > /etc/mdadm.conf 将raid信息保存至该文件
mdadm -A -s 自动激活/etc/mdadm.conf中的所有raid设备
-------------------------------------------------------------------------------
彻底关闭raid并且之后也不会再激活的方法:
mdadm -S /dev/mdX
将/etc/mdadm.conf中的内容去掉
mdadm --zero-superblock /dev/sdM(RAID device) 关键
****************************五 共享热备盘的实现****************************
①mdadm -D -s > /etc/mdadm.conf
②在需要共享的多组raid信息最后分别都写上spare-group=任意名
③然后再加一新行,顶头写MAILADDR .(一定要有空格)
![](http://s1.51cto.com/images/20180225/1519549260835018.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
④service mdmonitor start
⑤测试
查看之前的两个RAID的状态
![](http://s1.51cto.com/images/20180225/1519549883395448.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://s1.51cto.com/images/20180225/1519550217175174.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
结果/dev/md1下的热备盘/dev/sdh自动替换/dev/md0下的损坏的/dev/sdc
************************************** 六 案例 **************************************
1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,开机可自动挂载至/backup目录
目录
Software RAID的创建(mdadm --create | -C)
Software RAID仿真错误(mdadm --manage)
如何开机挂载RAID
如何彻底关闭RAID
共享热备盘的实现
案例
******************一 Software RAID的创建(mdadm --create|-C)********************
~]# mdadm -C -a yes /dev/md0 -n 2 -l 0 /dev/sdc /dev/sdd ~]# mdadm -C -a yes /dev/md1 -n 2 -l 1 /dev/sde /dev/sdf ~]# mdadm -C -a yes /dev/md1 -n 2 -l 1 -x 1 /dev/sd{e,f,g}-C 创建raid
-a yes 自动创建后面接着的raid设备/dev/mdX
-n (--raid-devices=) num 阵列中磁盘的数量
-x (--spare-devices=) num 热备盘的数量
-l (--level=) [015] 设定磁盘阵列的等级,通常为raid 0,raid 1,raid 5
最后必须列出创建磁盘阵列用到的各个磁盘
~]# mdadm -D /dev/md0-D (--detail) 后面接设定的磁盘阵列装置名,查看raid信息
![](http://s1.51cto.com/images/20180225/1519538970857099.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
另外 cat /proc/mdstat 可以查看全部的raid信息
![](http://s1.51cto.com/images/20180225/1519539144333434.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
******************二 Software RAID仿真错误(mdadm --manage)******************
mdadm (--manage) /dev/md1 -f /dev/sdf 将md1中的sdf设置为坏的设备,--manage加不加无所谓,下同mdadm (--manage) /dev/md1 -r /dev/sdf 将md1中的sdf从raid成员中删除mdadm (--manage) /dev/md1 -a /dev/sdf 向md1中增加新成员sdf mdadm -G /dev/md1 -n 3 -a /dev/sdh 将raid1 md1的成员数量改为3,并加入新的成员(不是加为热备盘)
![](http://s1.51cto.com/images/20180225/1519542902216425.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://s1.51cto.com/images/20180225/1519542959796005.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
可以发现-a的作用是:
会根据一开始创建RAID设定的raid-devices=num的值变化;
如果RAID中原本的num个磁盘都完好,-a只是增加热备盘
如果RAID中能使用的磁盘数不足num,-a会补充组成raid-device
****************************三 如何开机挂载RAID***************************
这和之前磁盘分区的挂载完全一样,把RAID当做一个磁盘处理就是了
1 修改raid的配置文件/etc/mdadm.conf
mdadm -D -s > /etc/mdadm.conf
2 修改配置文件/etc/fstab(相信大家很熟悉了)
/dev/md0 /mnt/raid ext4 defaults 1 2
将上面的一行加入该配置文件
3 挂载mount -a
重启之后查看
![](http://s1.51cto.com/images/20180225/1519552692507181.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
****************************四 如何彻底关闭RAID****************************
mdadm -S(--stop) /dev/md0 停止raid
mdadm -A /dev/md0 /dev/sdc /dev/sdd /dev/sde 开启raid
![](http://s1.51cto.com/images/20180225/1519541613121689.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
mdadm -D -s
![](http://s1.51cto.com/images/20180225/1519541763663332.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
mdadm -D -s > /etc/mdadm.conf 将raid信息保存至该文件
mdadm -A -s 自动激活/etc/mdadm.conf中的所有raid设备
-------------------------------------------------------------------------------
彻底关闭raid并且之后也不会再激活的方法:
mdadm -S /dev/mdX
将/etc/mdadm.conf中的内容去掉
mdadm --zero-superblock /dev/sdM(RAID device) 关键
****************************五 共享热备盘的实现****************************
# 创建raid 1和raid 5,其中只有raid 5有热备盘 ~]# mdadm -C --auto=yes /dev/md0 -n 2 -l 1 /dev/sd{c,d} ~]# mdadm -C --auto=yes /dev/md1 -n 3 -x 1 -l 5 /dev/sd{e..h}实现/dev/md0 和/dev/md1 之间仅有的一个热备盘共同使用
①mdadm -D -s > /etc/mdadm.conf
②在需要共享的多组raid信息最后分别都写上spare-group=任意名
③然后再加一新行,顶头写MAILADDR .(一定要有空格)
![](http://s1.51cto.com/images/20180225/1519549260835018.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
④service mdmonitor start
⑤测试
查看之前的两个RAID的状态
![](http://s1.51cto.com/images/20180225/1519549883395448.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# 损坏/dev/md0中的磁盘/dev/sdc(注意/dev/md0中并没有热备盘) ~]# mdadm /dev/md0 -f /dev/sdc mdadm: set /dev/sdc faulty in /dev/md0
![](http://s1.51cto.com/images/20180225/1519550217175174.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
结果/dev/md1下的热备盘/dev/sdh自动替换/dev/md0下的损坏的/dev/sdc
************************************** 六 案例 **************************************
1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,开机可自动挂载至/backup目录
新加入两个1G大小的硬盘 echo '- - -' > /sys/class/scsi_host/host0/scan lsblk 或 cat /proc/partitions 或 ll /dev/sd* mdadm --create --auto=yes /dev/md0 --level 1 -n 2 /dev/sd{c,d} mdadm -D /dev/md0 mkfs.ext4 /dev/md0 blkid /dev/md0 mkdir /backup mount /dev/md0/backup2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录
新创建三个2G大小的硬盘 echo '- - -' > /sys/class/scsi_host/host0/scan mdadm --create --auto=yes /dev/md1 --level=5 --chunk=256K -n 3 /dev/sd{e,f,g} mkfs.ext4 /dev/md1 mkdir /mydata mount /dev/md1 /mydata
相关文章推荐
- 【Linux入门学习之】Ubuntu常用软件
- Linux学习笔记--mdadm命令
- Linux学习--RPM软件包管理、YUM软件管理
- Linux学习之软件包管理--简介
- 实验楼Linux学习笔记(十二)之软件安装管理
- linux 音频子系统学习及软件安装
- Linux中用mdadm管理软件raid
- 嵌入式Linux软件开发学习计划
- Linux课程开启前学习软件准备及学习方法概述01
- linux下面安装软件学习流程
- 嵌入式linux软件开发学习笔记--uboot
- linux学习入门20——RPM软件包管理(linuxcast.net)(rpm 安装,验证等)
- Linux学习日志(基础篇)----压缩包的管理(补充)、软件的安装与卸载、VIM的基本操作
- 网络学习(三十二)基于Windows Server 2003下的软件RAID(磁盘阵列)
- Linux学习笔记之软件安装管理
- Linux + javaEE 学习笔记---Linux常用命令设定运行级别
- 软件文件linux学习感悟(持续更新中)
- Linux Ubuntu学习笔记_软件管理
- Linux学习之软件包管理--yum在线管理
- [Linux学习日记]Ubuntu推荐软件以及简单脚本编写