RAID磁盘阵列
RAID磁盘阵列也可简称为独立冗余磁盘阵列
磁盘阵列其实就是把多块独立的硬盘组合成一个容量巨大的硬盘组,利用个别硬盘提供数据所产生加成效果提升这个硬盘系统效能,并通过存储冗余数据增加容错能力
常见的RAID组合方式为:RAID0、RAID1、RAID5、 RAID6、RAID1+0、RAID0+1
##RAID0
RAID0 俗称“条带”,它将两个或多个硬盘组成一个逻辑硬盘,容量是所有硬盘之 和,因为是多个硬盘组合成一个,故可并行写操作,写入速度提高,但此方式硬盘数 据没有冗余,没有容错,一旦一个物理硬盘损坏,则所有数据均丢失。RAID0 适合 于对数据量大,但安全性要求不高的场景,比如音像、视频文件的存储等。
Raid0最低需要两块硬盘,它把数据分散到每块硬盘上进行存储,所以raid0拥有所有 raid种类中最强的存储性能。
而raid0的总可用空间容量就是你硬盘数量乘以最低容 量硬盘的容量,连续读写性能就是单盘的倍数
优点
1.所有RAID中读写性能最高
2.100%的磁盘空间利用率
缺点
不提供数据冗余保护,一旦数据损坏,将无法恢复。
适用场景
RAID 0适用于迅速读写,但对数据安全性和可靠性要求不高的场景,如视频、打印 等。
RAID1
RAID1 俗称“镜像”,它最少由两个硬盘组成,且两个硬盘上存储的数据均相同,以 实现数据冗余。
Raid1只支持两块硬盘组raid 阵列,而实际容量只有最小的那块硬盘的容量。这是因为raid1并没有对存储性能有 任何提高,只是提高了数据的安全性。
优点
1.所有的RAID中安全性最高,即使有一半的磁盘发生故障,仍能正常运转。
2.镜像磁盘没有全部故障,数据就不会丢失。
缺点
1.磁盘空间利用率为50%,一半的空间用于存储冗余数据。
2.成本高。
适用场景
RAID 1适用于数据安全性要求高的场景,如邮件系统、数据库等。
RAID5
最少由三个硬盘组成,它将数据分散存储于阵列中的每个硬盘,并且还伴有一个数据 校验位,数据位与校验位通过算法能相互验证,当丢失其中的一位时,RAID 控制器 能通过算法,利用其它两位数据将丢失的数据进行计算还原。
Raid5采用了硬盘分割的技术,最少需要三块硬盘才可以 组建raid5阵列,它没有数据冗余,而是把数据奇偶校验的方式存储到每块硬盘上, 而其中一块硬盘用于备用,支持在线更换。
优点
1.允许1个物理磁盘发生故障,而不丢失数据。
2.读取性能相对高,磁盘空间利用率大于RAID 10。
缺点
1.写入性能相对低。
2.重建数据时,性能会受到较大的影响。
适用场景
RAID 5兼顾存储性能、数据安全和存储成本等因素,可理解为RAID 0和RAID 1的折 中方案,适用于金融、数据库等。
###RAID 5奇偶校验信息——异或运算
1.异或的逻辑符号:^
2.异或的逻辑定义 同则假,异则真(0^0=0, 1^1=0 0^1=1 ,1^0=1)
3.计算机中的逻辑运算用1表示真,0表示假。
RAID6
是在 RAID5 的基础上改良而成的,RAID6 再将数据校验位增加一位,所以允许损坏 的硬盘数量也由 RAID5 的一个增加到二个。由于同一阵列中两个硬盘同时损坏的概 率非常少,所以,RAID6 用增加一块硬盘的代价,换来了比 RAID5 更高的数据安全 性。
优点
1.允许2个物理磁盘发生故障,而不丢失数据。
2.读取性能较高,磁盘空间利用率大于RAID 10。
缺点
成本高于RAID 5,写入性能较低(低于RAID 5)。
适用场景
RAID 6主要用于对数据安全要求非常高、成本同样重要的场景,它一般是替代RAID 10经济性选择。如金融、数据库等
RAID10
是先将数据进行镜像操作,然后再对数据进行分组,RAID 1 在这里就是一个冗余的 备份阵列,而 RAID 0 则负责数据的读写阵列。至少要四块盘,两块做 raid0,另两块 做 raid1
优点
1.读取性能仅次于RAID 0。
2.镜像对中的磁盘没有全部故障,数据就不会丢失。
3.一半的物理磁盘发生故障时,仍可正常运转。
缺点
1.成本高。
2.磁盘空间利用率50%,一半的空间用于存储冗余数据。
适用场景
RAID 10适用于读写性能要求高,数据安全大于磁盘成本的场景。如银行、数据库 等。
RAID01
raid01与raid10的架构顺序刚好相反,raid01是先做条带再做镜像
这种架构的安全性低于raid10,而两者由于IO数量一致。读写速度相同,使用的硬盘 数量也一致。 所以raid10比raid01是一种更为先进的架构。
软RAID和硬RAID
软RAID
软raid很简单,就是由操作系统来构建的raid阵列。软raid会吃掉一部分的主机CPU 资源用于raid阵列的开销
软raid只要系统支持即 可,成本较低。但是同样的,因为吃CPU,所以速度比硬件raid较慢,安全性也低。
无独立的RAID控制卡,由操作系统和CPU来实现所有的RAID功能。
硬RAID
硬件raid则是由专门的raid设备来实现的raid,一般是raid卡,或者主板集成的raid 功能。硬件raid有自己的raid控制器以及IO芯片,而高端一些的raid卡往往还有电池 以DRAM等硬件,整体性能是比软raid好一些的。而且因为硬件raid独立于操作系 统,安全性也相对较高。但是同样的,因为需要额外的硬件,所以价格相对也较高。
拥有独立的RAID控制卡,通过RAID卡实现所有的RAID功能,不占用CPU资源。
构建软RAID磁盘阵列
(1) 准备用于 RAID 阵列的分区
为 Linux 服务器添加 4 块 SCSI 硬盘。使用 fdisk 工具各划分出一块 2GB 的分区,依 为/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1.
(2) 创建 RAID 设备
使用 mdadm 命令创建 RAID,执行以下命令即可创建名称为 md0 的 RAID5。
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n4 -l5 /dev/sd[bcde]1
所用参数:
-C:等同于 create,表示新建;
-v:显示创建过程中的信息;
/dev/md0:创建 RAID5 的名称;
-a:–auto,表示通知 mdadm 是否创建设备文件,并分配一个未使用的次设备 号, 后面跟 yes 代表如果有什么设备文件没有存在的话就自动创建;
-n:指定使用几块硬盘创建 RAID,n4 表示使用 4 块硬盘创建 RAID;
-l:指定 RAID 的级别,l5 表示创建 RAID5;
/dev/sd[bcde]1:指定四块磁盘分区。查看 RAID5 创建结果。
(3) 创建并挂载文件系统
[root@localhost ~]# mkfs -t xfs /dev/md0
[root@localhost ~]# mkdir /raidme
[root@localhost ~]# mount /dev/md0 /raidme/
[root@localhost ~]# df -hT # 查看