设为首页 收藏本站
查看: 875|回复: 0

[经验分享] CentOS 6.3下配置软RAID

[复制链接]

尚未签到

发表于 2016-5-10 10:57:50 | 显示全部楼层 |阅读模式
一、RAID 简介
RAID 是英文Redundant Array of Independent Disks 的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array)。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份的技术。
组成磁盘阵列的不同方式称为RAID级别(RAID Levels),常见的RAID Level 包括raid0, raid1, raid5, raid10。各level 对比如下:
RAID等级最少硬盘最大容错可用容量读取性能写入性能安全性目的应用产业
020nnn一个硬盘异常,全部硬盘都会异常追求最大容量、速度3D产业实时渲染、视频剪接高速缓存
12n-11n1最高,一个正常即可追求最大安全性个人、企业备份
531n-1n-1n-1追求最大容量、最小预算个人、企业备份
104n/2n/2nn/2安全性高综合RAID 0/1优点,理论速度较快大型数据库、服务器
说明:n 代表硬盘总数
关于RAID的详细介绍,请参考:http://zh.wikipedia.org/wiki/RAID
二、系统环境
实验环境:Oracle VM VirtualBox
系统平台:CentOS release 6.3 (Final)
mdadm 版本:mdadm - v3.2.6 - 25th October 2012
三、设置磁盘
在Oracle VM VirtualBox 里模拟物理增加磁盘,在这篇文章中,我们将创建RAID0, RAID1, RAID5分区,RAID0 需要两块硬盘,RAID1 需要两块硬盘,RAID5需要四块硬盘,所以在这里添加了八块物理硬盘,每块5.00 GB.
DSC0000.jpg
在Linux 系统里使用fdisk –l 命令查看。
DSC0001.jpg
四、安装mdadm
mdadm 是multiple devices admin 的简称,它是Linux下的一款标准的软件RAID 管理工具。
4.1 查看是否安装了mdadm软件
# rpm -qa|grep mdadm
DSC0002.jpg
4.2 如果未安装,则使用yum 方式安装。
DSC0003.jpg
准备工作完毕,下面可以着手创建raid 了。
五、创建RAID0
5.1 新建分区
创建RAID0 需要两块硬盘,所以我们拿/dev/sdb 和/dev/sdc 来实验。
# fdisk /dev/sdb        //对sdb 进行分区
输入"m", 获取帮助,输入"p", 查看分区前磁盘状态,其他Command action 具体含义请自行Google, Baidu。
DSC0004.jpg
输入"n" 新建分区,这里我们将整个磁盘都划分成一个分区,然后输入"p" 查看分区情况。
DSC0005.jpg
5.2 修改分区类型
默认新建分区的类型是Linux,代号83,我们需要将其修改为raid 类型。输入"t" ,然后输入"L" 列出所有的文件格式,这里我们选择"fd Linux raid auto", 输入"fd",然后再输入"p" 查看分区情况,这是分区格式已经变成了Linux raid autodetect.
DSC0006.jpg
5.3 保存分区
输入"w" 保存分区。
DSC0007.jpg
使用同样方法对/dev/sdc 进行分区操作。
5.4 同步分区情况
使用partprobe 命令同步分区情况。
DSC0008.jpg
5.5 查看现在的状态
# fdisk -l /dev/sdb /dev/sdc
DSC0009.jpg
5.6 开始创建RAID0
# mdadm -C /dev/md0 -ayes -l0 -n2 /dev/sd[b,c]1
DSC00010.jpg
说明:
-C  --create   创建阵列;
-a  --auto    同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;
-l   --level   阵列模式,支持的阵列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;
-n     --raid-devices    阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;
/dev/md0     阵列的设备名称;
/dev/sd{b,c}1  参与创建阵列的磁盘名称;
5.7 查看raid0 状态
# cat /proc/mdstat
# mdadm -D /dev/md0
DSC00011.jpg
说明:Raid Level : 阵列级别; 
   Array Size : 阵列容量大小;
   Raid Devices : RAID成员的个数;
   Total Devices : RAID中下属成员的总计个数,因为还有冗余硬盘或分区,也就是spare,为了RAID的正常运珩,随时可以推上去加入RAID的;
   State : clean, degraded, recovering 状态,包括三个状态,clean 表示正常,degraded 表示有问题,recovering 表示正在恢复或构建;
   Active Devices : 被激活的RAID成员个数;
   Working Devices : 正常的工作的RAID成员个数;
   Failed Devices : 出问题的RAID成员;
   Spare Devices : 备用RAID成员个数,当一个RAID的成员出问题时,用其它硬盘或分区来顶替时,RAID要进行构建,在没构建完成时,这个成员也会被认为是spare设备;
   UUID : RAID的UUID值,在系统中是唯一的;
5.8 创建RAID 配置文件/etc/mdadm.conf
RAID 的配置文件为/etc/mdadm.conf,默认是不存在的,需要手工创建。
该配置文件的主要作用是系统启动的时候能够自动加载软RAID,同时也方便日后管理。但不是必须的,推荐对该文件进行配置。
我们这里需要创建这个文件,测试中发现,如果没有这个文件,则reboot 后,已经创建好的md0 会自动变成md127。
/etc/mdadm.conf 文件内容包括:
由DEVICE 选项指定用于软RAID的所有设备,和ARRAY 选项所指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号。
5.8.1 创建/etc/mdadm.conf
# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
5.8.2 修改配置文件
当前生成的/etc/mdadm.conf 文件内容并不符合所规定的格式,所以也是不生效的,这时需要手工修改该文件内容为如下格式:
# cat /etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1
ARRAY /dev/md0 level=raid0 num-devices=2 UUID=5160ea40:cb2b44f1:c650d2ef:0db09fd0
5.9 格式化磁盘阵列
# mkfs.ext4 /dev/md0
DSC00012.jpg
5.10 建立挂载点并挂载
# mkdir /raid0
# mount /dev/md0 /raid0/
DSC00013.jpg
可以看到,/dev/md0 的可用大小为9.9G。
5.11 写入/etc/fstab
为了下次开机还能正常使用我们的RAID设备,需要将挂载的信息写入/etc/fstab 文件中。
DSC00014.jpg
然后reboot 测试开机是否自动挂载,raid0 创建完毕。
六、创建RAID1
和创建raid0 类似,我们拿/dev/sdd 和/dev/sde 这两块硬盘来做实验。
6.1 新建分区并修改分区类型
DSC00015.jpg
使用同样方法对/dev/sde 进行分区操作,分区结果如下:
DSC00016.jpg
6.2 开始创建RAID1
# mdadm -C /dev/md1 -ayes -l1 -n2 /dev/sd[d,e]1
DSC00017.jpg
6.3 查看raid1 状态
# cat /proc/mdstat
# mdadm -D /dev/md1
DSC00018.jpg
说明:Used Dev Size : RAID单位成员容量大小,也就是构成RAID的成员硬盘或分区的容量的大小;
可以看到,raid1 正在创建,待创建完毕,状态如下:
DSC00019.jpg
6.4 添加raid1 到RAID 配置文件/etc/mdadm.conf 并修改
# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
DSC00020.jpg
6.5 格式化磁盘阵列
# mkfs.ext4 /dev/md1
DSC00021.jpg
6.6 建立挂载点并挂载
# mkdir /raid1
# mount /dev/md1 /raid1/
DSC00022.jpg
可以看到,/dev/md1 的可用大小为4.9G。
6.7 写入/etc/fstab
DSC00023.jpg
然后reboot 测试开机是否自动挂载,raid1 创建完毕。
七、创建RAID5
RAID5 至少需要三块硬盘,我们拿/dev/sdf, /dev/sdg, /dev/sdh, /dev/sdi 这四块硬盘来做实验,三块做为活动盘,另一块做为热备盘。
7.1 新建分区并修改分区类型
分区结果如下:
DSC00024.jpg
7.2 开始创建RAID5
# mdadm -C /dev/md5 -ayes -l5 –n3 -x1 /dev/sd[f,g,h,i]1
DSC00025.jpg
说明:"-x1" 或"--spare-devices=1" 表示当前阵列中热备盘只有一块,若有多块热备盘,则将"--spare-devices" 的值设置为相应的数目。
7.3 查看raid5 状态
# cat /proc/mdstat
# mdadm -D /dev/md5
DSC00026.jpg
说明:Rebuild Status : RAID 的构建进度;
         4 8 113 2 spare rebuilding /dev/sdh1 注:未被激活,正在构建中的成员,正在传输数据;
         3 8 129 - spare /dev/sdi1 热备盘
raid5 正在创建,而且速度很慢,待创建完毕,状态如下:
DSC00027.jpg
7.4 添加raid5 到RAID配置文件/etc/mdadm.conf 并修改
# echo DEVICE /dev/sd{f,g,h,i}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
DSC00028.jpg
7.5 格式化磁盘阵列
# mkfs.ext4 /dev/md5
DSC00029.jpg
7.6 建立挂载点并挂载
# mkdir /raid5
# mount /dev/md5 /raid5/
DSC00030.jpg
raid5 的可用大小为9.9G,即(3-1)x 5G.
向 /raid5 里面写入测试数据:
# touch test_raid5.failed 
# touch test_raid5.fail 
# ls

DSC00031.jpg
7.7 写入 /etc/fstab
DSC00032.jpg
然后reboot 测试开机是否自动挂载,raid5 创建完毕。
八、RAID维护
RAID 做好之后,还需要进行日常的维护操作,比如其中一块物理硬盘损坏,我们需要进行更换故障磁盘的操作,下面我们将模拟raid5 中磁盘损坏来讲解软RAID 的维护操作。
8.1 模拟磁盘损坏
在实际中,当软RAID 检测到某个磁盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作。在这里我们将/dev/sdh1 模拟为出现故障的磁盘,命令如下:
# mdadm /dev/md5 -f /dev/sdh1
DSC00033.jpg
8.2 查看重建状态
在上面创建RAID 5过程中,我们设置了一个热备盘,所以当有标记为故障磁盘的时候,热备盘会自动顶替故障磁盘工作,阵列也能够在短时间内实现重建。通过查看"/proc/mdstat" 文件可以看到当前阵列的状态,如下:
DSC00034.jpg
以上信息表明阵列正在重建,当一个设备出现故障或被标记故障时,相应设备的方括号后将被标以(F),如 "sdh1[4](F)"。
其中 "[3/2]" 的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,因为目前有一个故障设备,所以第二位数为2;
这时的阵列以降级模式运行,虽然该阵列仍然可用,但是不具有数据冗余;
而 "[UU_]" 表示当前阵列可以正常使用的设备是/dev/sdf1 和/dev/sdg1,如果是设备 “/dev/sdf1” 出现故障时,则将变成[_UU]。
8.3 查看之前写入的测试数据是否还在
DSC00035.jpg
数据正常,未丢失。
8.4 重建完毕后查看阵列状态
DSC00036.jpg
当前的RAID 设备又恢复了正常。
8.5 移除损坏的磁盘
移除刚才模拟出现故障的/dev/sdh1,操作如下:
DSC00037.jpg
8.6 再次查看md5的状态
DSC00038.jpg
/dev/sdh1 已经移除了。
8.7 新加热备磁盘
如果是实际生产中添加新的硬盘,同样需要对新硬盘进行创建分区的操作,这里我们为了方便,将刚才模拟损坏的硬盘再次新加到raid5 中。
DSC00039.jpg
8.8 查看raid5 阵列状态
DSC00040.jpg
/dev/sdh1 已经变成了热备盘。
8.9 查看测试数据
DSC00041.jpg
数据正常,未丢失。故障切换测试完毕。
九、向RAID中增加存储硬盘
如果现在已经做好的RAID 空间还是不够用的话,那么我们可以向里面增加新的硬盘,来增加RAID 的空间。
9.1 在虚拟机中添加物理硬盘
上面我们已经在虚拟机中添加了八块硬盘,这里需要模拟新增硬盘,所以首先将虚拟机关闭,然后在存储里再次新增一块5GB的硬盘。然后分区等等操作,这里不再赘述。
DSC00042.jpg
9.2 向RAID 中新加一块硬盘
# mdadm /dev/md5 -a /dev/sdj1
DSC00043.jpg
查看此时的RAID 状态
DSC00044.jpg
默认情况下,我们向RAID 中增加的磁盘,会被默认当作热备盘,我们需要把热备盘加入到RAID 的活动盘中。
9.3 热备盘转换成活动盘
# mdadm -G /dev/md5 -n4
DSC00045.jpg
查看此时RAID 状态
DSC00046.jpg
/dev/sdj1 已经变成了活动盘,但是Array Size : 10465280 (9.98 GiB 10.72 GB) 并没有变大,这是因为构建没有完成,图中也可以看出Status 为clean, reshaping。
等RAID 完成构建后,RAID的容量就会改变为(4-1)x 5GB,查看进度可以参考Reshape Status,也可以参考/proc/mdstat.
DSC00047.jpg
构建完毕后的RAID 状态:
DSC00048.jpg
Array Size : 15697920 (14.97 GiB 16.07 GB),磁盘容量已经增加了。
9.4 扩容文件系统
RAID 构建完毕后,阵列容量增加,但是文件系统还没有增加,这时我们还需要对文件系统进行扩容。
# df –TH
# resize2fs /dev/md5
# df –TH
DSC00049.jpg
文件系统已经扩容到15G,而且测试数据正常,未丢失,新增物理硬盘成功。
9.5 修改RAID 配置文件/etc/mdadm.conf

9.6 reboot 测试

重启系统后,一切正常,Linux下配置软RAID成功。
 
参考资料

  • 羽飞博客:http://www.opsers.org/base/learning-linux-the-day-that-the-system-configuration-in-the-rhel6-disk-array-raid.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-215105-1-1.html 上篇帖子: centos下samba服务器的安装 下篇帖子: CentOS的文件权限与目录配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表