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

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-23 09:03:47 | 显示全部楼层 |阅读模式
一、RAID 简介

    RAID 是英文Redundant Array of IndependentDisks 的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array)。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份的技术。
组成磁盘阵列的不同方式称为RAID级别(RAID Levels),常见的RAID Level 包括raid0, raid1, raid5, raid10。各level 对比如下:
RAID等级
最少硬盘
最大容错
可用容量
读取性能
写入性能
安全性
目的
应用产业
0
2
0
n
n
n
一个硬盘异常,全部硬盘都会异常
追求最大容量、速度
3D产业实时渲染、视频剪接高速缓存
1
2
n-1
1
n
1
最高,一个正常即可
追求最大安全性
个人、企业备份
5
3
1
n-1
n-1
n-1
追求最大容量、最小预算
个人、企业备份
10
4
n/2
n/2
n
n/2
安全性高
综合RAID 0/1优点,理论速度较快
大型数据库、服务器
说明:n 代表硬盘总数

二、系统环境

实验环境:Oracle VM VirtualBox
系统平台:CentOS release 6.3 (Final)
mdadm 版本:mdadm - v3.2.6 - 25th October 2012

三、设置磁盘

    在OracleVM VirtualBox 里模拟物理增加磁盘,在这篇文章中,我们将创建RAID0, RAID1, RAID5分区,RAID0 需要两块硬盘,RAID1 需要两块硬盘,RAID5需要四块硬盘,所以在这里添加了八块物理硬盘,每块5.00 GB.
wKiom1WGwAuRBbUxAAJHeJeK91s198.jpg
在Linux系统里使用fdisk –l 命令查看。
wKiom1WGwFLwDr3mAALN80xvdM8546.jpg

四、安装mdadm

    mdadm 是multiple devices admin 的简称,它是Linux下的一款标准的软件RAID 管理工具。
4.1 查看是否安装了mdadm软件
1
# rpm -qa|grep mdadm



wKiom1WGwMSiNca9AAAiYgN33mw265.jpg

4.2 如果未安装,则使用yum 方式安装。

wKiom1WGwOuRrTgQAAI-jdJgECA015.jpg

准备工作完毕,下面可以着手创建raid 了。

五、创建RAID0
5.1 新建分区
创建RAID0 需要两块硬盘,所以我们拿/dev/sdb 和/dev/sdc 来实验。
1
# fdisk /dev/sdb



//对sdb 进行分区

输入"m", 获取帮助,输入"p", 查看分区前磁盘状态,其他Command action 具体含义请自行Google, Baidu。

wKioL1WGwvyDWZoyAAM0bnrUtdg362.jpg

输入"n" 新建分区,这里我们将整个磁盘都划分成一个分区,然后输入"p"查看分区情况。

wKiom1WGwXPT2UFOAAFwrjFPWEg083.jpg

5.2 修改分区类型
    默认新建分区的类型是Linux,代号83,我们需要将其修改为raid类型。输入"t" ,然后输入"L"列出所有的文件格式,这里我们选择"fd Linux raid auto", 输入"fd",然后再输入"p" 查看分区情况,这是分区格式已经变成了Linux raid autodetect.

wKioL1WGw2bhDBpiAASC7OYp57Y094.jpg

5.3 保存分区
输入"w" 保存分区。

wKiom1WGwdyANaE8AABa2NNLOO0677.jpg

使用同样方法对/dev/sdc 进行分区操作。

5.4 同步分区情况
使用partprobe 命令同步分区情况。

wKioL1WGw8OCNzb1AAB97kfsutM680.jpg

5.5 查看现在的状态
1
# fdisk -l /dev/sdb /dev/sdc



wKiom1WGwkyzpycFAAHC_uWjBg4704.jpg

5.6 开始创建RAID0
1
# mdadm -C /dev/md0 -ayes -l0 -n2 /dev/sd[b,c]1



wKioL1WGxR6AkxNpAABbLEa9x9Y804.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 状态
1
2
# cat /proc/mdstat
# mdadm -D /dev/md0



wKiom1WGw8jBOepoAAG_21ymgfw201.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
1
2
# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf



5.8.2 修改配置文件
    当前生成的/etc/mdadm.conf 文件内容并不符合所规定的格式,所以也是不生效的,这时需要手工修改该文件内容为如下格式:
1
2
3
# cat /etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1
ARRAY /dev/md0 level=raid0 num-devices=2UUID=5160ea40:cb2b44f1:c650d2ef:0db09fd0



5.9 格式化磁盘阵列
1
# mkfs.ext4 /dev/md0



wKioL1WGxnej2UffAAH7XbBmeQ8974.jpg


5.10 建立挂载点并挂载
1
2
# mkdir /raid0
# mount /dev/md0 /raid0/



wKiom1WGxPrg763pAAC8CcCQ83k107.jpg

可以看到,/dev/md0 的可用大小为9.9G。

5.11 写入/etc/fstab

为了下次开机还能正常使用我们的RAID设备,需要将挂载的信息写入/etc/fstab 文件中。

wKioL1WGxwfTFvExAAFb-tf1Rr0009.jpg

然后reboot 测试开机是否自动挂载,raid0 创建完毕。

六、创建RAID1
和创建raid0 类似,我们拿/dev/sdd 和/dev/sde 这两块硬盘来做实验。

6.1 新建分区并修改分区类型

wKiom1WGxcKTf_okAANpOdF-99c876.jpg

使用同样方法对/dev/sde 进行分区操作,分区结果如下:

wKioL1WGx6WR1M1FAAHD3Lpn36s316.jpg

6.2 开始创建RAID1
1
# mdadm -C /dev/md1 -ayes -l1 -n2 /dev/sd[d,e]1



wKiom1WGxs2xjNHBAADlbL5ihfs959.jpg

6.3 查看raid1 状态
1
2
# cat /proc/mdstat
# mdadm -D /dev/md1



wKioL1WGyLPxWl6yAAL2Z651uh4510.jpg

说明:
Used Dev Size : RAID单位成员容量大小,也就是构成RAID的成员硬盘或分区的容量的大小;
可以看到,raid1 正在创建,待创建完毕,状态如下:

wKiom1WGxzigdvT8AAKpxbbd0kM675.jpg

6.4 添加raid1 到RAID配置文件/etc/mdadm.conf 并修改
1
2
# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf



wKioL1WGySWyYrXIAACkveFCPv0790.jpg

6.5 格式化磁盘阵列
1
# mkfs.ext4 /dev/md1



wKiom1WGx6uxkJ_uAAHVjYdMqSo533.jpg

6.6 建立挂载点并挂载
1
2
# mkdir /raid1
# mount /dev/md1 /raid1/



wKioL1WGyZaByBvYAADFnz3fklk202.jpg

可以看到,/dev/md1 的可用大小为4.9G。

6.7 写入/etc/fstab

wKiom1WGyBWRjGgUAAGGYDakO1s244.jpg

然后reboot 测试开机是否自动挂载,raid1 创建完毕。

七、创建RAID5
    RAID5 至少需要三块硬盘,我们拿/dev/sdf, /dev/sdg,/dev/sdh, /dev/sdi 这四块硬盘来做实验,三块做为活动盘,另一块做为热备盘。

7.1 新建分区并修改分区类型
分区结果如下:

wKioL1WGyhCSpU2mAANzvxyQEGE920.jpg

7.2 开始创建RAID5
1
# mdadm -C /dev/md5 -ayes -l5 –n3 -x1 /dev/sd[f,g,h,i]1



wKiom1WGyLHzDjtvAABff4ERs8o700.jpg

说明:"-x1" 或"--spare-devices=1"表示当前阵列中热备盘只有一块,若有多块热备盘,则将"--spare-devices" 的值设置为相应的数目。

7.3 查看raid5 状态
1
2
# cat /proc/mdstat
# mdadm -D /dev/md5



wKioL1WGze2QZc-LAALl9YiQcuQ723.jpg

说明:Rebuild Status : RAID 的构建进度;
         4 8 113 2 spare rebuilding /dev/sdh1 注:未被激活,正在构建中的成员,正在传输数据;
         3 8 129 - spare /dev/sdi1 热备盘
raid5 正在创建,而且速度很慢,待创建完毕,状态如下:

wKiom1WGzHGwkkHkAAKLeHeN3BY917.jpg

7.4 添加raid5 到RAID配置文件/etc/mdadm.conf 并修改
1
2
# echo DEVICE /dev/sd{f,g,h,i}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf



wKiom1WGzKHRRt9CAADy1bBz9rE337.jpg

7.5 格式化磁盘阵列
1
# mkfs.ext4 /dev/md5



wKiom1WGzM7z-_aoAAHhQuwZrFI908.jpg

7.6 建立挂载点并挂载
1
2
# mkdir /raid5
# mount /dev/md5 /raid5/



wKioL1WGzriC9iF4AADY21uXMp0116.jpg

raid5 的可用大小为9.9G,即(3-1)x 5G.
向/raid5 里面写入测试数据:
1
2
3
# touch test_raid5.failed
# touch test_raid5.fail
# ls



wKiom1WGzTKxYSOWAABpRQL6jBg794.jpg

7.7 写入 /etc/fstab

wKioL1WGzw-iCH9VAAGhFthdZH0822.jpg

然后reboot 测试开机是否自动挂载,raid5 创建完毕。

八、RAID维护
    RAID 做好之后,还需要进行日常的维护操作,比如其中一块物理硬盘损坏,我们需要进行更换故障磁盘的操作,下面我们将模拟raid5 中磁盘损坏来讲解软RAID 的维护操作。

8.1 模拟磁盘损坏
在实际中,当软RAID 检测到某个磁盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作。在这里我们将/dev/sdh1 模拟为出现故障的磁盘,命令如下:
1
# mdadm /dev/md5 -f /dev/sdh1



wKiom1WGza-yo07JAAA7nDLKTsQ142.jpg

8.2 查看重建状态
    在上面创建RAID 5过程中,我们设置了一个热备盘,所以当有标记为故障磁盘的时候,热备盘会自动顶替故障磁盘工作,阵列也能够在短时间内实现重建。通过查看"/proc/mdstat" 文件可以看到当前阵列的状态,如下:

wKiom1WGzeLh-ofyAALnd73Bphs826.jpg


    以上信息表明阵列正在重建,当一个设备出现故障或被标记故障时,相应设备的方括号后将被标以(F),如 "sdh1[4](F)"。
    其中 "[3/2]" 的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,因为目前有一个故障设备,所以第二位数为2;
    这时的阵列以降级模式运行,虽然该阵列仍然可用,但是不具有数据冗余;
而"[UU_]" 表示当前阵列可以正常使用的设备是/dev/sdf1 和/dev/sdg1,如果是设备 “/dev/sdf1” 出现故障时,则将变成[_UU]。

8.3 查看之前写入的测试数据是否还在

wKioL1WGz_WTpLFpAAA3Be1t1ww222.jpg

数据正常,未丢失。

8.4 重建完毕后查看阵列状态

wKioL1WG0BrgAsvAAAD1vCu5ass884.jpg

当前的RAID 设备又恢复了正常。

8.5 移除损坏的磁盘
移除刚才模拟出现故障的/dev/sdh1,操作如下:

wKiom1WGzo7hFGnZAABDt5lNlSs079.jpg

8.6 再次查看md5的状态

wKioL1WG0G2gUqVfAAKC-cvL9JI578.jpg

/dev/sdh1 已经移除了。

8.7 新加热备磁盘
    如果是实际生产中添加新的硬盘,同样需要对新硬盘进行创建分区的操作,这里我们为了方便,将刚才模拟损坏的硬盘再次新加到raid5 中。

wKiom1WGzvzz0XLDAAA6Q42OGrY646.jpg

8.8 查看raid5 阵列状态

wKiom1WGzxuzyBv_AALuanj_hmc681.jpg

/dev/sdh1 已经变成了热备盘。

8.9 查看测试数据

wKioL1WG0P_yYZKkAAA17j_7f1k008.jpg

数据正常,未丢失。故障切换测试完毕。

九、向RAID中增加存储硬盘
    如果现在已经做好的RAID 空间还是不够用的话,那么我们可以向里面增加新的硬盘,来增加RAID 的空间。

9.1 在虚拟机中添加物理硬盘
    上面我们已经在虚拟机中添加了八块硬盘,这里需要模拟新增硬盘,所以首先将虚拟机关闭,然后在存储里再次新增一块5GB的硬盘。然后分区等等操作,这里不再赘述。

wKiom1WGz4yzKL67AAJByfNeB5c064.jpg

9.2 向RAID 中新加一块硬盘
1
# mdadm /dev/md5 -a /dev/sdj1



wKioL1WG0XqT7-KiAAA_rLGtp48151.jpg

查看此时的RAID 状态

wKiom1WGz-fCMtnDAAGud-mS0Ps702.jpg

    默认情况下,我们向RAID 中增加的磁盘,会被默认当作热备盘,我们需要把热备盘加入到RAID 的活动盘中。

9.3 热备盘转换成活动盘
1
# mdadm -G /dev/md5 -n4



wKioL1WG0emQBBEbAAA6B0KnVno630.jpg

查看此时RAID 状态

wKiom1WG0FiBM2DSAAHd-TI2K2w441.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.

wKioL1WG0kbCHAwRAAL79Y5koMY809.jpg

构建完毕后的RAID 状态:

wKiom1WG0Max1qidAALBcM-UGLM334.jpg

Array Size : 15697920 (14.97 GiB 16.07 GB),磁盘容量已经增加了。

9.4 扩容文件系统
    RAID 构建完毕后,阵列容量增加,但是文件系统还没有增加,这时我们还需要对文件系统进行扩容。
1
2
3
# df –TH
# resize2fs /dev/md5
# df –TH



wKioL1WG0r_DAeRbAAJt7wViLEw094.jpg

文件系统已经扩容到15G,而且测试数据正常,未丢失,新增物理硬盘成功。

9.5 修改RAID 配置文件/etc/mdadm.conf

wKiom1WG0TKSdRPGAAD4PJHCLNI842.jpg

9.6 reboot 测试

wKioL1WG0xHwe_cKAAHa4E-S82E045.jpg

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



运维网声明 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-79656-1-1.html 上篇帖子: centos 6.5 安装桌面环境 下篇帖子: LVM 逻辑卷管理 Software
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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