1、什么是RAID?
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。
2、RAID的优点?
提高IO 能力:
磁盘并行读写
提高耐用性:
磁盘冗余来实现
3、RAID 实现的方式:
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID :主板集成RAID 控制器
安装OS 前在BIOS 里配置
Software RAID:软件实现的RAID
4、RAID级别:多块磁盘组织在一起的工作方式有所不同
0:条带
性能提升:读和写
冗余能力(容错能力):无
空间利用率:nS
至少需要2块硬盘
1:镜像
性能提升:写性能下降,读性能提升
冗余能力:有
空间利用率:1/2
至少需要2块硬盘
2-4:现在不做使用
5:
性能提升:读 写
冗余能力:有
空间利用率:(n-1)/n
至少需要3块硬盘
6:
性能提升:读 写
冗余能力:有,最多支持两块硬盘同时损坏
空间利用率:(n-2)/n
至少需要4块磁盘
7:
可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID
组合RAID
10:
性能提升:读 写
冗余能力:有
空间利用率:1/2
至少需要4块硬盘
01:
性能提升:读 写
冗余能力:有
空间利用率:1/2
至少需要4块硬盘
50:
性能提升:读 写
冗余能力:有
空间利用率:(n-2)/n
至少需要6块硬盘
jbod:
性能提升:无提升
冗余能力:无
空间利用率:100%
至少需要2块硬盘
常用级别:RAID-0, RAID-1, RAID-5, RAID-10,RAID-50, JBOD
5、利用软件实现RAID
mdadm:模式化的工具
支持的RAID 级别:LINEAR, RAID0, RAID1, RAID4,RAID5, RAID6, RAID10
语法:mdadm [mode] <raiddevice> [options] <component-devices>
模式化的命令:
创建模式
-C 设备
专用选项
-n #: 使用#个块设备来创建此RAID;
-l #:指明要创建的RAID的级别;
-a {yes|no}:自动创建目标RAID设备的设备文件;
-c CHUNK_SIZE: 指明块大小;
-x #: 指明空闲盘的个数;
管理模式
–add(-a) eg:mdadm /dev/md# -a /dev/sda9 将磁盘sda9添加的md#阵列中,新添加硬盘要与原先的硬盘的储存空间相同
–remove(-r) eg:madam /dev/md# -r /dev/sda8 移除md#下的sda8磁盘
–fail(-f) eg:mdadm /dev/md# –fail /dev/sda7 模拟损坏的md#下的sda7磁盘
监控模式
-F
-D /dev/md1 显示/dev/md1 的所有的磁盘信息
增长模式
-G
装配模式
-A mdadm -A /dev/md# /dev/sda7 /dev/sda9 将sda7和sda9装配到md#下
停止阵列:
mdadm -S /dev/md# 停止/dev/md#的磁盘阵列
观察md的状态:
cat /proc/mdstat
6.软RAID配置实例
使用mdadm创建并定义RAID设备
#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
用文件系统对每个RAID 设备进行格式化
#mke2fs -j /dev/md0
测试RAID 设备
mdadm 允许检查RAID 设备的状况
#mdadm –detail|D /dev/md0
增加新的成员
#mdadm –G /dev/md0 –n4 -a /dev/sdf1
7.软RAID测试和修复
模拟磁盘故障
#mdadm /dev/md0 -f /dev/sda1
移除磁盘
#mdadm /dev/md0 –r /dev/sda1
从软件RAID磁盘修复磁盘故障,替换出故障的磁盘然后开机
在备用驱动器上重建分区
#mdadm /dev/md0 -a /dev/sda1
mdadm /proc/mdstat 及系统日志信息
8、软RAID管理
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停服务:mdadm –S /dev/md0
激活:mdadm –A –s /dev/md0 激活
删除raid信息:mdadm –zero-superblock /dev/sdb1
9、RAID实战演练
(1)创建2G RAID0
2G 2个1G的 分区
mdadm -C /dev/md0 创建一个设备
fdisk /dev/sda 查看一下/dev/sda
n +1G n +1G 创建两个为sda5 sda6的分区
t 5 fd t 6 fd 将这两个分区的格式更改为Linux Raid auto
w 保存退出
partprobe /dev/sda 重新读取一下硬盘分区
cat /proc/partitions 查看所有的Raid
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda5 /dev/sda6 创建/dev/md0 自动为其创建文件,创建的级别为0 设备个数为2
cat /proc/mdstat 查看所有的Raid
mke2fs -j /dev/md0 格式化md0,不能格式化sda5 sda6
mount /dev/md0 /mnt 将md0挂载到/mnt
(2)创建2G RAID1
因为磁盘的利用率为1/2,要想创建一个2G的RAID1需要创建两个2G的分区
mdadm -C /dev/md1 创建一个设备
fdisk /dev/sda 查看一下/dev/sda
n +2G n +2G 创建两个为sda7 sda8的分区
t 7 fd t 8 fd 将这两个分区的格式更改为Linux Raid auto
w 保存退出
partprobe /dev/sda 重新读取一下硬盘分区
cat /proc/partitions 查看所有的Raid
mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sda7 /dev/sda8 创建/dev/md1 自动为其创建文件,创建的级别为0 设备个数为2
cat /proc/mdstat 查看所有的Raid
mke2fs -j /dev/md1 格式化md1,不能格式化sda7 sda8
mount /dev/md1 /mnt 将md1挂载到/mnt
(3)实现软件raid
①将已经存在的或者新建的多块磁盘分区同意调整为 fd Linux raid auto 模式
fdisk /dev/sd# n p +10G t fd w
磁盘的建议块数,RAID5为例 需要5块磁盘左右
②创建RAID设备
mdadm -C /dev/md0 -a yes -l 5 -n 4 -x 1 /dev/sd{b,c,d,e,f}
创建的RAID的设备的文件名为md0,自动创建设备文件(-a yes),创建的级别为RAID5(-l 5),设备的个数为4个(-n 4),创建空闲盘的合数为1个(-x 1),创建的真实的磁盘为/dev/sd{b,c,d,e,f}
③查看已经创建的RAID设备是否存在
mdadm -D /dev/md0
cat /proc/mdstat
④为创建好的RAID设备设定文件类型,以ext4文件系统为例
mkfs.ext4 /dev/md0
⑤将已经创建好的RAID设备,设置开机自动挂载,设置挂载点和挂载类型等
vim /etc/fstab
UUID="b92ddd51-c555-4948-b1d5-8563b697a2f1" /mnt/raid ext4 defaults 0 0
⑥将设备的配置信息,写入到文件中,生成配置文件
mdadm -Ds /dev/md0 > /etc/mdadm.conf
⑦启动与停止RAID
mdadm -A /dev/md0 启动RAID
mdadm -S /dev/md0 停止RAID(注意:停止RAID之前,应该先卸载RAID,mount /dev/md0,之后使用-S卸载,否则会报错)
⑧模拟RAID在日常生活中出现的错误
mdadm /dev/md0 -f /dev/sdf1 模拟损坏
mdadm /dev/md0 -r /dev/sdf1 删除成员
mdadm /dev/md0 -a /dev/sdf1 增加
mdadm -G /dev/md0 -n 6 -a /dev/sdd4 增加成员
⑨删除RAID
umount /mnt/md# 卸载RAID的挂载
mdadm -S /dev/md0 停止RAID的使用
rm -f /etc/mdadm.conf 删除RAID配置文件
vi /etc/fstab 将RAID的默认挂载取消掉
fdisk /dev/sda 删除新建的RAID分区
mdadm –zero-superblock /dev/sdd1 将磁盘中的超级块信息取消掉
原创文章,作者:sjsir,如若转载,请注明出处:http://www.178linux.com/42327
评论列表(1条)
内容总结的很好,可以通过图片来展示各raid级别的工作模式会更直观哦