RAID介绍

RAID技术

RAID,全称为Redundant Arrays of Independent Drives,即磁盘冗余阵列。

这是由多块独立磁盘(多为硬盘)组合的一个超大容量磁盘组。

计算机一直是在飞速的发展,更新,整体计算机硬件也得到极大的提升,由于磁盘的特性,需要持续、频繁、大量的读写操作,相比较于其他硬件设备,很容易损坏,导致数据丢失。

Raid历史

1988年,在美国加州大学伯克利分校提出且定义了RAID技术。RAID技术意为将多个硬盘设备组成一个容量更大、安全性更好的磁盘阵列组,将数据切割为多个区段后分别存放在不同的物理硬盘上,利用分散读写技术提升磁盘阵列组的整体性能,并且数据同步在不同的多个物理硬盘,也起到了数据冗余备份的作用。

Raid特性

Raid磁盘阵列组能够提升数据冗余性,当然也增加了硬盘的价格成本,只不过数据本身的价值是超过硬盘购买的价格的,Raid除了能够保障数据丢失造成的严重损失,还能提升硬盘读写效率,被应用在广泛的企业中。


image-20191205092557188

先不谈磁盘,饮水机各位应该都了解

  • standalone

独立模式,最常见的模式,一台饮水机,一桶水

(一块磁盘读写数据)

  • Hot swap

热备份模式,一桶水可能会喝完,水桶可能会坏,旁边放一个预备水桶,随时替代

(防止单独一块硬盘突然损坏,故障,另一块硬盘随时等待接替)

  • Cluster

集群模式,一堆饮水机一起提供服务,提高用户接水效率

(一堆硬盘共同提供工作,提高读写效率)


不同的Raid级别

由于技术角度因素、成本控制因素等,不同的企业在数据的可靠性以及性能上做了权衡,制定出不同的Raid方案

Raid 0

两个或两个以上相同型号容量的硬盘组合,磁盘阵列的总容量便是多个硬盘的总和。

数据依次写入物理硬盘,理想状态下,硬盘读写性能会翻倍

但是raid 0 任意一块硬盘故障都会导致整个系统数据被破坏,数据分别写入两个硬盘设备,没有数据备份的功能。

Raid 0 适用于对于数据安全性不太关注,追求性能的场景。

好比你有一些小秘密,不想放云盘,数据量又比较大,可以快速写入raid 0。

本来读写都是一块硬盘,数据都得排队,效率肯定低

raid 0 把数据打散,好比多了条队同时排,效率一下子就提升了

raid 1

由于raid 0的特性,数据依次写入到各个物理硬盘中,数据是分开放的,因此损坏任意一个硬盘,都会对完整的数据破坏,对于企业数据来说,肯定是不允许。

Raid 1技术,是将两块以上硬盘绑定,数据写入时,同时写入多个硬盘,因此即使有硬盘故障,也有数据备份。

但是这种方式,无疑极大降低磁盘利用率,假设两块硬盘一共4T,真实数据只有2TB,利用率50%,如果是三块硬盘组成raid 1,利用率只有33%,也是不可取的。

那有没有一种方案,能够控制成本、保证数据安全性、以及读写速度呢?

raid 3

计算机的异或:数字相同则为0,数字不同则为1

计算机的数据只有0和1对于异或处理,如下

image-20191205105139047

[root@chaogelinux testdu]# python
Python 2.7.5 (default, Aug  7 2019, 00:51:29)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>> 1^0
1
>>> 1^1
0
>>> 0^0
0
>>> 0^1
1

异或:AxorBxorCxorD

A异或B异或C异或D

结论:1的个数是奇数,结果为1;1的个数是偶数,结果是0

>>> 0^0^1^1
0
>>> 1^0^1^1
1
>>> 1^0^1
0
>>> 1^0^1^1^1
0

异或的作用是,只要知道异或的结果,任何一个值都能够反推出来

image-20191205110243307

因此raid 3 至少需要3块硬盘,只要校验盘没坏,坏了一块数据盘可以反推数据来恢复。

但是你会发现同样也浪费了一块磁盘,但是要比raid 1 节约不少。

如果校验盘坏了呢?(你咋这么多事呢。。)

raid 5

Raid 5规则下,校验码会均匀放在每一块硬盘,磁盘1存放磁盘2、3、4的校验码

这样任意一块挂了都能够恢复,提升了容错率,但是也仅仅是只能挂掉一块

Raid 10

Raid 5技术是在读写速度和数据安全性上做了一定的妥协,对于企业来说,最核心的就是数据,成本不是问题。

Raid 10 其实是raid 0 加上raid 1,吸收了raid 0的效率,raid 1的安全性,因此至少需要四块硬盘搭建raid 10。

1.通过raid 1两两镜像复制,保障数据安全性

2.针对两个raid 1部署raid 0,进一步提升磁盘读写速度

3.只要坏的不是同一组中所有硬盘,那么就算坏掉一半硬盘都不会丢失数据

硬RAID、软RAID

image-20191205150033607

由CPU去控制硬盘驱动器进行数据转换、计算的过程就是软件RAID

由专门的RAID卡上的主控芯片操控,就是硬件RAID

软件RAID和硬件RAID的差异如下

  • 软件RAID额外消耗CPU资源,性能弱
  • 硬件RAID更加稳定,软件RAID可能造成磁盘发热过量,造成威胁
  • 兼容性问题,软件RAID依赖于操作系统,硬件RAID胜出
posted @ 2022-07-05 23:15  xiaohaoge  阅读(268)  评论(0编辑  收藏  举报