1. 基本介绍:
(1)RAID磁盘阵列(Redundant Array of Independent Disks)简称为独立冗余磁盘阵列。
(2)磁盘阵列:其实就是把多块独立的硬盘组合成一个容量巨大的硬盘组,利用个别硬盘提 供数据所产生加成效果提升整个硬盘系统效能,并通过存储冗余数据增加容错能力。 磁盘阵列在电脑中被成为RAID,将电脑里的多块硬盘组建成RAID之后,你的电脑里 就只会看到一个RAID阵列盘。你可以像使用普通硬盘一样使用它。
(3)常见的RAID组合方式为:RAID0,RAID1,RAID5,RAID6,RAID1+0,RAID0+1
2. RAID0
(1)RAID0 俗称“条带”,它将两个或者多个硬盘组成一个逻辑硬盘,容量是所有硬盘之和。Raid0最低需要两块硬盘,它把数据分散到每块硬盘上进行存储,所以raid0拥有所有 raid种类中最强的存储性能。
而raid0的总可用空间容量就是硬盘数量乘以最低容量硬盘的容量
,连续读写性能就是单盘的倍数。
(2)总结:
特点:
数据条带化,无校验,不提供数据保护;数据并发写入多个硬盘。
优点:
RAID读写性能最高,100%的磁盘空间利用率。
缺点:
此方式硬盘数据没有冗余,没有容错,一旦一个物理硬盘损坏,则所有数据均丢失。
适用:RAID0 适合于对数据量大,但安全性要求不高的场景,比如音像、视频文件的存储等。
3. RAID1
(1)RAID1俗称“镜像”,它最少由两个硬盘组成,而且两个硬盘上存储的数据均相同,以实现数据冗余。容错性是所有组合中方式里最好的,只要有一块硬盘正常,则能继续保持正常工作。
但它对磁盘利用率只有50%。RAID1只支持两块硬盘组RAID阵列,而实际容量只有最小的那块硬盘的容量,原因是RAID1只提高了数据的安全性。但是RAID1不等于数据备份。
(2)总结:
特点:
数据镜像,无校验(检查)。一半的空间存储冗余数据,但是在所有的RAID中数据安全性 最高。
优点:
所有的RAID中安全性能最高,即使一块磁盘发生故障,仍能正常运转。镜像磁盘没有完全 故障,数据就不会丢失。
缺点:
一半的磁盘空间用于存储冗余数据,磁盘空间利用率50%
适用:
数据安全性要求比较高的场景
,如邮件系统,数据库等。
4. RAID5
(1)最少由三个硬盘组成。
它将数据分散储存在阵列的每个磁盘,并且还伴有一个数据校验位,数据位与校验位通过算法能相互验证,当丢失其中的一位时,RAID控制器能通过算法,利用其它两位数据将丢失的数据进行计算还原。
因而RAID5最多只允许一个硬盘损坏,有容错性。
(2)RAID5采用硬盘分割的技术,最少需要三块硬盘才可以组建RAID5阵列,
它没有数据冗余,而是把数据奇偶校验的方式存储到每块硬盘上,而其中一块硬盘用于备用(即用于数据校验的),支持在线更换。
RAID5允许一块硬盘损坏或者离线,这时候阵列依旧可以读取,但是处于降级状态,需要重建。
(3)总结:
特点:
数据条带化,校验数据均匀分布在每个物理磁盘上。当某个物理磁盘发生故障十五,可根 据同一条带的其他数据块和对应的校验数据来重建损坏的数据。
优点:
允许1个物理磁盘发生故障,而不丢失数据。读取性能相对较高,磁盘空间利用率大于 RAID1+0
缺点:
写入性能相对低。重建数据时,性能会受到较大的影响。
适用:RAID5可理解为RAID0和RAID1折中方案,兼顾储存性能,数据安全和存储成本等因素。
5. RAID5工作原理
RAID5是一种储存性能,数据安全和存储成本兼顾的存储解决方案。以四个硬盘组成的RAID5为例,其数据存储方式如图所示:图中,P0为D0,D1和D2的奇偶校验信息,P1为D3,D4,D5的奇偶校验信息,以此类推。由图中可以看出,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID 5的 各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
6. RAID5奇偶校验信息——异或运算
(1)异或的逻辑符号:^
(2)异或的逻辑定义:同则假,异则真(0^0=0,1^1=0,0^1=1,1^0=1)
(3)计算机中的逻辑运算用1表示为真,0表示为假。
(4)例如:3块硬盘HD1,HD2,HD3的数据信息全通过校验盘HD4存放校验信息。
7. RAID6
(1)在RAID5的基础上改良而成的,RAID6再将数据校验位增加一位,所以允许损坏的硬盘数量为两个。由于同一阵列中两个硬盘同时损坏的概率非常少,所以RAID6 用增加一块硬盘的代价,换来了比 RAID5 更高的数据安全性。
RAID6 即带有两种分布存储的奇偶校验码的独立磁盘结构, 主要是用于要求数据绝对不能出错的场合,使用了二种奇偶校验值,所以需要 N+2 个磁盘,
同时对控制器的设计变得十分复杂,写入速度也不好,用于计算奇偶校验值 和验证数据正确性所花费的时间比较多,造成了不必须的负载,很少人用。
(2)总结:
特点:
数据条带化,校验数据(2组)均匀分布在每个物理磁盘上。即使有两个磁盘同时故障,也 可通过2组校验数据来重建两个磁盘上损坏的数据。
优点:
允许两个物理磁盘发生故障,而不丢失数据。读取性较高。
缺点:
成本高于RAID 5,写入性能较低(低于RAID 5)。
适用:RAID 6主要用于对数据安全要求非常高、成本同样重要的场景,它一般是替代RAID 10经 济性选择。
如金融、数据库等。
8. RAID10
(1)RAID10是先将数据进行镜像操作,然后再对数据进行分组。RAID 1 在这里就是一个冗余的 备份阵列,而 RAID 0 则负责数据的读写阵列。至少要四块盘,两块做 raid0,另两块 做 raid1,RAID 10 对存储容量的利用率和 RAID 1 一样低,只有 50%.。Raid1+0 方 案造成了 50%的磁盘浪费,
但是它提供了 200%的速度和单磁盘损坏的数据安全性
, 并且当同时损坏的磁盘不在同一 Raid1 中,就能保证数据安全性。
(2)总结:
特点:RAID1与RAID0的结合,先创建RAID1,再创建RAID0
优点:
读取性能仅次于RAID0。镜像中的磁盘没有全部故障,数据就不会丢失。一半的物理磁盘 发生故障时,仍可以运转。
缺点:
成本高。磁盘利用率50%,一半的空间用于冗余数据。
适用:
适用于读写性能要求高,数据安全大于磁盘成本的场景。
如银行、数据库等。
9. RAID01
(1)raid01是先做条带再做镜像,这种架构的安全性低于raid10,而两者由于IO数量一致。读写速度相同,使用的硬盘数量也一致。
(2)当有磁盘发生故障时,RAID10工作能力高于RAID01
10. 软RAID和硬RAID
(1)软RAID
软RAID很简单,就是由操作系统来构建的RAID阵列。软RAID会吃掉一部分的主机CPU资源用于RAID阵列的开销,比如数据计算等。相比硬件RAID,
软RAID只要系统支持即可,成本较低。但是同样的,因为吃CPU,所以速度比硬件raid较慢,安全性也低。
一句话总结:
无独立的RAID控制卡,由操作系统和CPU来实现所有的RAID功能。
占用CPU资源,如果操作系统出现故障,则RAID信息会丢失,RAID功能将不可用。 跟硬RAID比性能差,但成本低。
(2)硬RAID
硬件raid则是由专门的raid设备来实现的raid,一般是raid卡,或者主板集成的raid 功能。硬件raid有自己的raid控制器以及IO芯片,而高端一些的raid卡往往还有电池 以DRAM等硬件
,整体性能是比软raid好一些的。而且因为硬件raid独立于操作系 统,安全性也相对较高。但是同样的,因为需要额外的硬件,所以价格相对也较高。
一句话总结:
拥有独立的RAID控制卡,通过RAID卡实现所有的RAID功能,不占用CPU资源。 性能好,但成本高。
11. 应用:构建软RAID磁盘阵列:
为Linux服务器添加四块SCSI硬盘,使用 mdadm 软件包,构建RAID5 磁盘阵列,提高磁盘存储的性能和可靠性。
构建磁盘阵列:
(1)安装mdadm工具:在CentOS7.x 系统中mdadm 工具由mdadm-3.4-14.el7.x86_64 软件包提供,执行 rpm-qa | grep mdadm 命令查看系统中是否安装 mdadm 工具。若系统内未安装 mdadm 工具, 可使用 RPM 或 YUM 方式安装。
[root@WWcentos ~]# rpm -qa |grep mdadm
mdadm-4.1-6.el7.x86_64
(2)准备用于RAID阵列的分区:为 Linux 服务器添加 4 块 SCSI 硬盘。使用 fdisk 工具各划分出一块 2GB 的分区,依次为/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1.
(3)创建RAID设备:
使用 mdadm 命令创建 RAID,执行以下命令即可创建名称为 md0 的 RAID5。
[root@WWcentos~]# mdadm -Cv /dev/md0 -a yes -n4 -l5 /dev/sd[bcde]1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2095104K
上述命令中所用到参数的作用如下所示。
-C:等同于 create,表示新建;
-v:显示创建过程中的信息;
/dev/md0:创建 RAID5 的名称;
-a:–auto,表示通知 mdadm 是否创建设备文件,并分配一个未使用的次设备 号, 后面跟 yes 表如果有什么设备文件没有存在的话就自动创建;
-n:指定使用几块硬盘创建 RAID,n4 表示使用 4 块硬盘创建 RAID;
-l:指定 RAID 的级别,l5 表示创建 RAID5;
/dev/sd[bcde]1:指定四块磁盘分区。查看 RAID5 创建结果。
(4)创建并挂载文件系统:
# mkfs -t xfs /dev/md0
# mkdir /raidme
# mount /dev/md0 /raidme/
# df -hT
从上述 df -hT 命令的结果中的值/dev/md0 容量为 6G。4 块 2G 磁盘应该 8G,但是容量只显示 6G!这是 RAID5 的特性,用于存放校验数据的部分不显示。