23. RAID磁盘阵列——RAID0,RAID1,RAID5,RAID6,RAID10,RAID01,软RAID,硬RAID

  • Post author:
  • Post category:其他


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 的特性,用于存放校验数据的部分不显示。



版权声明:本文为Pink_Home原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。