34.第九章 磁盘存储和文件系统管理(四)

3.RAID

3.1 什么是RAID

34.第九章 磁盘存储和文件系统管理(四)
"RAID"一词是由David Patterson, Garth A. Gibson, Randy Katz 于1987年在加州大学伯克利分校发明的。在1988年6月SIGMOD会议上提交的论文"A Case for Redundant Arrays of Inexpensive Disks”"中提出,当时性能最好的大型机不断增长的个人电脑市场开发的一系列廉价驱动器的性能所击败。尽管故障与驱动器数量的比例会上升,但通过配置冗余,阵列的可靠性可能远远超过任何大型单个驱动器的可靠性

独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。

RAID 层级不同,数据会以多种模式分散于各个硬盘,RAID 层级的命名会以 RAID 开头并带数字,例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种等级都有其理论上的优缺点,不同的等级在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器(群)读写性能。

简单来说,RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为普通用户的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。

34.第九章 磁盘存储和文件系统管理(四)
RAID功能实现

  • 提高IO能力,磁盘并行读写
  • 提高耐用性,磁盘冗余算法来实现

RAID实现的方式

  • 外接式磁盘阵列:通过扩展卡提供适配能力
  • 内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
  • 软件RAID:通过OS实现,比如:群晖的NAS

3.2 RAID级别

级别:多块磁盘组织在一起的工作方式有所不同

RAID-0:条带卷,strip

RAID-1:镜像卷,mirror

RAID-2

RAID-5

RAID-6

RAID-10

RAID-01

3.2.1 RAID-0

以 chunk 单位,读写数据

34.第九章 磁盘存储和文件系统管理(四)
读、写性能提升

可用空间:N*min(S1,S2,…)

无容错能力

最少磁盘数:1+

3.2.2 RAID-1

34.第九章 磁盘存储和文件系统管理(四)
读性能提升、写性能略有下降

可用空间:1*min(S1,S2,…)

有冗余能力

最少磁盘数:2, 2N

3.2.3 RAID-4

34.第九章 磁盘存储和文件系统管理(四)
多块数据盘异或运算值存于专用校验盘

磁盘利用率 (N-1)/N

有冗余能力

至少3块硬盘才可以实现

3.2.4 RAID-5

34.第九章 磁盘存储和文件系统管理(四)
读、写性能提升

可用空间:(N-1)*min(S1,S2,…)

有容错能力:允许最多1块磁盘损坏

最少磁盘数:3, 3+

3.2.5 RAID-6

34.第九章 磁盘存储和文件系统管理(四)
读、写性能提升

可用空间:(N-2)*min(S1,S2,…)

有容错能力:允许最多2块磁盘损坏

最少磁盘数:4, 4+

3.2.6 RAID-10

34.第九章 磁盘存储和文件系统管理(四)
读、写性能提升

可用空间:N*min(S1,S2,…)/2

有容错能力:每组镜像最多只能坏一块

最少磁盘数:4, 4+

3.2.7 RAID-01

34.第九章 磁盘存储和文件系统管理(四)
多块磁盘先实现RAID0,再组合成RAID1

3.2.8 RAID-50

34.第九章 磁盘存储和文件系统管理(四)
多块磁盘先实现RAID5,再组合成RAID0

3.2.9 其它级别

3.2.9.1 JBOD:Just a Bunch Of Disks

34.第九章 磁盘存储和文件系统管理(四)
功能:将多块磁盘的空间合并一个大的连续空间使用

可用空间:sum(S1,S2,…)

3.2.9.2 RAID7

RAID 7并非公开的RAID标准,而是美国公司的Storage Computer Corporation的专利硬件产品名称,RAID 7是以RAID 3及RAID 4为基础所发展,但是经过强化以解决原来的一些限制。另外,在实现中使用大量的缓冲存储器以及用以实现异步数组管理的专用即时处理器,使得RAID 7可以同时处理大量的IO要求,所以性能甚至超越了许多其他RAID标准的实际产品。但也因为如此,在价格方面非常的高昂.RAID7 可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式

3.2.10 RAID 总结

常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50,RAID-60
34.第九章 磁盘存储和文件系统管理(四)
磁盘阵列比较表

RAID等级 最少硬盘 最大容错 可用容量 读取性能 写入性能 安全性 目的 应用场景
单一硬盘 (参考) 0 1 1 1
JBOD 1 0 n 1 1 无(同RAID0) 增加容量 个人(暂时)存储备份
0 1 0 n n n 一个硬盘异常,全部硬盘都会异常 追求最大容量、速度 影片剪接缓存用途
1 2 n-1 1 n 1 高,一个正常即可 追求最大安全性 个人、企业备份
5 3 1 n-1 n-1 n-1 追求最大容量、最小预算 个人、企业备份
6 4 2 n-2 n-2 n-2 安全性较RAID5高 同RAID 5,但较安全 个人、企业备份
10 4 综合RAID 0/1优点,理论速度较快 大型数据库、服务器
50 6 提升数据安全
60 8 提升数据安全

3.3 实现软RAID

mdadm工具:为软RAID提供管理界面,为空余磁盘添加冗余,结合内核中的md(multi devices)RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等

mdadm:模式化的工具,支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

命令的语法格式:

mdadm [mode] <raiddevice> [options] <component-devices>

常用选项说明

模式:
    创建:-C
    装配:-A
    监控:-F
    管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式
    -n #: 使用#个块设备来创建此RAID
    -l #:指明要创建的RAID的级别
    -a {yes|no}:自动创建目标RAID设备的设备文件
    -c CHUNK_SIZE: 指明块大小,单位k
    -x #: 指明空闲盘的个数
-D:显示raid的详细信息
    mdadm -D /dev/md#

管理模式:
    -f: 标记指定磁盘为损坏
    -a: 添加磁盘
    -r: 移除磁盘

观察md的状态: cat /proc/mdstat

范例:

#使用mdadm创建并定义RAID设备
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1
#用文件系统对每个RAID设备进行格式化
mkfs.xfs /dev/md0

#使用mdadm检查RAID设备的状况
mdadm --detail|D /dev/md0
#增加新的成员
mdadm -G /dev/md0 -n4 -a /dev/sdf1
#模拟磁盘故障
mdadm /dev/md0 -f /dev/sda1
#移除磁盘
mdadm /dev/md0 -r /dev/sda1

#在备用驱动器上重建分区
mdadm /dev/md0 -a /dev/sda1

#系统日志信息
cat /proc/mdstat

生成配置文件:

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

3.4 练习

1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录

上一篇:linux d10 RAID LVM


下一篇:RAID