对RAID的简单介绍

RAID(Redundant Arrary of Independent Disks,独立冗余磁盘阵列)是一个能实现将多块硬盘组合成一个阵列,当做一个逻辑设备来使用的机制。同时RAID还可以重复存储数据。这样我们的数据就更具安全性了。其实RAID还可以让我们的数据更具安全性的同时提高性能,让机器因为硬件故障造成的停机时间减少到最小。在实际的工作中我们都是在硬件上实现的叫硬件RAID,但是我们没有条件的时候在linux上同样可以实现RAID,叫软件RAID。

我们都知道任何的单个硬件的性能都是不可能突破它的理论上限的,那么当我们的I/O设备达不到我们的要求时,我们就迫切希望能够提高I/O设备的速度,但是不管怎么提高,它都不可能超过它的理论最大值,那么我们就来需要寻求另一种方法提高速度。我们可以给主板加一个控制器,但是这个控制器不连接任何一块硬盘,而是连接到另外一个控制器上,这个控制器上有多个接口可以连接多块硬盘,我们通过这一个控制器来同时控制多块硬盘的工作,并将信息输送给主板上的控制器,但是在主机看来这就是一块硬盘。而这个连接外部控制器的控制器就叫做RAID控制器。

我们连接了多块硬盘,但是我们该怎样来使用这些硬盘呢?怎样让它实现数据同时分散存储在这些硬盘上呢?这就是我们要说的RAID0(条带技术):

当我们需要存储数据时,将数据以数据流的形式写入硬盘,并且在不同硬盘的相应位置存储相同大小的数据,这样看起来就如同将数据分成一个一个的条带来存储,所以叫条带技术。如图1

 

1

当然,RAID也有级别之分(RAID level),但是级别仅代表磁盘的组织方式不同,没有上下之分,下面我们来看一下RAID1,我们又称之为镜像技术:

所谓的镜像技术就像我们照镜子一样,镜子里外都有一个自己,而且是一模一样的。这里的镜像技术就是将同一份数据保存两份,而且分别放在两块硬盘上(如图2),那么就算其中的一块硬盘损坏那么数据依然还能恢复,这就给我们的数据提高了安全性,但是这样的话就加重了系统的写入工作,而且我们的硬盘也要双份的,这样的代价是不是有些大了呢?

 

2

那么我们再来看一种方式,使用校验码方式(RAID4)来保证数据的完整性。这种方式最少要使用3块硬盘来实现,我们首先使用条带技术将数据写入磁盘,但是要留出一块磁盘来,这块盘是用来写入前面几块磁盘的循环冗余校验码的。

假如我们有四块盘,那么前面三块是用来写入要保存的数据的,而最后的那一块是用来保存前面三块盘的数据的校验码的(如图3),假如前面三个保存的是1、2、3那后面就是6,这样就算其中的一块盘损坏那么数据也不会丢失,还能通过校验码来找回来,但是如果要是两块盘同时损毁的话那就完蛋了。当然我们还可以让它们轮换作为校验码盘来使用,即第一组数据使用第四块,那第二组数据就使用第一块…这样循环轮换的使用,这种方式就是RAID5。现在还有RAID6,RAID6比RAID5多了一块校验盘,把数据校验两次,而且检验方式有所不同,这里就不详细介绍了。

 

3

下面我们再来看一种组合方式RAID01即RAID0+1(下同),这种组合方式就是先条带后镜像,也就是先将数据条带保存,然后再给磁盘做镜像,假如我们有六块磁盘(如图4),前面三块是我们先保存的数据,而后面的三块就是我们给磁盘做的镜像,其中的任意一块磁盘损坏都不会影响数据,只要不是一个磁盘跟它的镜像磁盘同时损坏都伤不到筋骨。

 

4

有RAID01那么就肯定会有RAID10,RAID10就是给每一个磁盘准备好镜像,然后将数据条带写入(如图5)。也就是每两块磁盘为一组,而且每组的两块磁盘中保存的数据是完全一样的,虽然有六块磁盘,但是实际用来执行的,帮助系统提速的只有三块磁盘。只要不是每组的两块磁盘同时挂掉,那就还能修复,就算是每组都挂掉一个磁盘也还能修复,这就体现出了RAID功效了。

 

5

我们再来看一个RAID50,我们先来看一下图吧(图6)

 

图6

可能看到图的第一眼你就会说这不就是上面的RAID01的图吗?没错就是!只不过他们所实现的功能有所不同,这里的六块磁盘我们实际利用到的可以达到四块,这里有两组磁盘,而每组磁盘使用的是RAID5,然后使用条带技术使之联系起来。

RAID还有很多种,这里就不一一介绍了,下面我们再来看一下jbod(如图7)

 

7

Jbod是将磁盘叠加起来使用,也就是将多个小盘组合成一个大盘来用……

下面我们来总结一下:

RAID

性能表现

冗余能力

空间利用率

磁盘需求量

0

读,写能力提升

100%

至少2块

1

写性能略有下降,但读性能提升

1/2

至少2块

5

读,写能力提升

(n-1)/n

至少3块

10

读,写能力提升

1/2

至少4块

01

读,写能力提升

1/2

至少4块

50

读,写能力提升

(n-2)/n

至少6块

jbod

无提升

100%

至少2块

 

理解不深,总结的不好,正在学习中……

你可能感兴趣的:(linux,raid)