RAID
RAID
Redundant Arrays of Inexpensive( Independent) Disks
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或 者两者都提供
RAID功能
提高IO能力:
磁盘并行读写
提高耐用性;
磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现的方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器(安装OS前在BIOS里配置)
软件RAID:通过OS实现
RAID级别
RAID-0:
条带卷,strip
读、写性能提升;
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2
RAID-1:
镜像卷,mirror
读性能提升、写性能略有下降;
可用空间:1*min(S1,S2,...) 有冗余能力
最少磁盘数:2, 2N
RAID-4:
多块数据盘异或运算值,存于专用校验盘
RAID-5:
读、写性能提升
可用空间:(N-1)*min(S1,S2,...)
有容错能力:允许最多1块磁盘损坏 最少磁盘数:3, 3+
RAID-6:
读、写性能提升
可用空间:(N-2)*min(S1,S2,...)
有容错能力:允许最多2块磁盘损坏 最少磁盘数:4, 4+
RAID-10:
读、写性能提升
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块 最少磁盘数:4,4+
RAID-01、RAID-50
RAID7:
可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用
可用空间:sum(S1,S2,...)
常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
软件RAID
mdadm:为软RAID提供管理界面
为空余磁盘添加冗余
结合内核中的md(multi devices)
RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、 /dev/md3等
软件RAID的实现
mdadm:模式化的工具
命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
[made]模式:
创建:-C
装配: -A
监控: -F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式
-n #: 使用#个块设备来创建此RAID
-l #:指明要创建的RAID的级别
-a {yes|no}:自动创建目标RAID设备的设备文件
-c CHUNK_SIZE: 指明块大小
-x #: 指明空闲盘的个数
-D:显示raid的详细信息;
mdadm -D /dev/md#
管理模式:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
观察md的状态:
cat /proc/mdstat
软件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
软件RAID测试和修复
模拟磁盘故障:
mdadm /dev/md0 -f /dev/sda1
移除磁盘:
mdadm /dev/md0 –r /dev/sda1
从软件RAID磁盘修复磁盘故障
• 替换出故障的磁盘然后开机
• 在备用驱动器上重建分区
• mdadm /dev/md0 -a /dev/sda1
mdadm、/proc/mdstat及系统日志信息
软件RAID管理
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停止设备:mdadm –S /dev/md0
激活设备:mdadm –A –s /dev/md0 激活
强制启动:mdadm –R /dev/md0
删除raid信息:mdadm --zero-superblock /dev/sdb1
实验:创建RAID5
实验环境
在centos7.3上,添加四块硬盘,四块硬盘分别提供10G的空间来创建可用空间为20G的RAID5设备(三块活动空间,一块备用空间),文件系统为ext4,开机自动挂载/mnt/md0目录
实验步骤:
1、添加四块硬盘(b,c,d,e),四块硬盘上分别划分一个10G的分区,配置如下图
参照/dev/sdb分别配置/dev/sdc,/dev/sdd,/dev/sde
2、配置RAID5
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x1 /dev/sd{b1,c1,d1,e1}
3、查看raid状态
mdadm -D /dev/md0
cat /proc/mdstat
4、生成raid配置文件
mdadm -Ds /dev/md0 > /etc/mdadm.conf
5、创建文件系统
mkfs.ext4 /dev/md0
6、建立挂载
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
7、编写/etc/fstab
vim /etc/fstab
UUID
用VIM编辑文件/etc/fstab,添加如上图内容
实验结果测试:
写速度:
dd if=/dev/zero of=/mnt/md0/c bs=1M count=1024
dd if=/dev/zero of=c bs=1M count=1024
读速度:
dd if=/mnt/md0/c of=/dev/zero bs=1M count=1024
dd if=c of=/dev/zero bs=1M count=1024
由上可见使用RAID5的读写速度明显提升
实验收尾工作
删除RAID设备
1、取消挂载
umount /dev/md0
2、停止RAID设备
mdadm -S /dev/md0
3、删除配置文件
rm /etc/mdadm.conf
4、VIM编辑/etc/fstab去掉mdadm配置选项
5、清除RAID设备上的RAID元数据
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1
mdadm --zero-superblock /dev/sdd1
mdadm --zero-superblock /dev/sde1
6、重启检测系统中是否还存在RAID相关数据,若还存在,以上步骤再执行一遍