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] [options]
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

[made]模式:

创建:-C
装配: -A
监控: -F
管理:-f, -r, -a

: /dev/md#
: 任意块设备

-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的分区,配置如下图


RAID_第1张图片
参照/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}


RAID_第2张图片

3、查看raid状态
mdadm -D /dev/md0

cat /proc/mdstat


RAID_第3张图片

4、生成raid配置文件
mdadm -Ds /dev/md0 > /etc/mdadm.conf

5、创建文件系统
mkfs.ext4 /dev/md0
RAID_第4张图片

6、建立挂载
mkdir /mnt/md0

mount /dev/md0 /mnt/md0


RAID_第5张图片

7、编写/etc/fstab
vim /etc/fstab
UUID
RAID_第6张图片
用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
RAID_第7张图片

由上可见使用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相关数据,若还存在,以上步骤再执行一遍

你可能感兴趣的:(RAID)