RAID为廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),RAID技术将一个个单独的磁盘以不同的组合方式形成一个逻辑硬盘,从而提高了磁盘读取的性能和数据的安全性。不同的组合方式用RAID级别来标识。
RAID技术经过不断的发展,现在已拥有了从 RAID 0 到 5等6种明确标准级别的RAID 级别。
另外,其他还有6、7、10(RAID 1与RAID 0的组合)、01(RAID 0与RAID 1的组合)、30(RAID 3与RAID 0的组合)、50(RAID 0与RAID 5的组合)等。
不同RAID 级别代表着不同的存储性能、数据安全性和存储成本,下面将介绍如下RAID级别:0、1、2、3、4、5、6、01、10。
RAID0
RAID0也称为条带化(stripe),将数据分成一定的大小顺序的写道阵列的磁盘里,RAID0可以并行的执行读写操作,可以充分利用总线的带宽,理论上讲,一个由N个磁盘组成的RAID0系统,它的读写性能将是单个磁盘读取性能的N倍。
且磁盘空间的存储效率最大(100%)RAID0有一个明显的缺点:不提供数据冗余保护,一旦数据损坏,将无法恢复。
RAID1 RAID1成为镜像(mirror),它将数据完全一致的分别写到工作磁盘和镜像磁盘,因此它的磁盘空间利用率为50%,在数据写入时时间会有影响,但是读的时候没有任何影响,RAID0提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。
RAID5
RAID5与RAID3的机制相似,但是数据校验的信息被均匀的分散到的阵列的各个磁盘上,这样就不存在并发写操作时的校验盘性能瓶颈。
阵列的磁盘上既有数据,也有数据校验信息,数据块和对应的校验信息会存储于不同的磁盘上,当一个数据盘损坏时,系统可以根据同一带区的其他数据块和对应的校验信息来重构损坏的数据。 RAID6 RAID 6提供两级冗余,即阵列中的两个驱动器失败时,阵列仍然能够继续工作。
一般而言,RAID 6的实现代价最高,因为RAID 6不仅要支持数据的恢复,又要支持校验的恢复,这使RAID 6控制器比其他级R A I D更复杂和更昂贵。
1. RAID 6的校验数据
当对每个数据块执行写操作时, RAID 6做两个独立的校验计算,因此,它能够支持两个磁盘的失败。为了实现这个思想,目前基本上有两个已经接受的方法:
? 使用多种算法,如X O R和某种其他的函数。
? 在不同的数据分条或者磁盘上,使用排列的数据。
2. RAID 6的一维冗余 RAID 6的第一种方法是用两种不同的方法计算校验数据。实现这个思想最容易的方法 RAID10 RAID10是RAID1和RAID0的结合,也称为RAID(0+1),先做镜像然后做条带化,既提高了系统的读写性能,有提供了数据冗余保护,RAID10的磁盘空间利用率和RAID1是一样的,为50%。RAID10适用于既有大量的数据需要存储,有对数据安全性有严格要求的领域,比如金融,证券等。
RAID01
RAID01也是RAID0和RAID1的结合,但它是对条带化后的数据进行镜像。但与RAID10 不同,一个磁盘的丢失等同于整个镜像条带的丢失,所以一旦镜像盘失败,则存储系统成为一个RAID-0 系统(即只有条带化)。RAID01的实际应用非常少。
不同RAID级别对比
在各个raid级别中,使用最广泛的是raid0,raid1,raid10,raid5 上面所介绍的是百度百科的解释,下面来谈谈我对磁盘阵列的理解,可是好处多多的:
(1)提高了存储容量;
(2)其次,多台磁盘驱动器可并行工作,提高了数据传输率;
(3)RAID技术确实提供了比通常的磁盘存储更高的性能指标、数据完整性和数据可用性;
(4)尤其是在当今面临的I/O总是滞后于CPU性能的瓶颈问题越来越突出的情况下,RAID解决方案能够有效地弥补这个缺口。
Debian软RAID安装笔记 - 使用mdadm安装RAID1
Linux实现最常用的磁盘阵列-- RAID5
RAID 1的实现
说的理论再多没有实践也是不行的,今天我们要制作一个软件级别的RAID1类型的磁盘阵列。
(1)因为要体现磁盘之间工作的并发性,我们首先要制作出几个磁盘,注意最关键的是这几个磁盘的大小一定要一样,因为他们的业务逻辑是相同的,只有在大小相同的情况下才能让业务逻辑进行完整的迁移。
制作准备用于构建RAID的设备
我们先制作一个设备(200M大小),然后把该设备的系统ID更改为fd(代表着这个是磁盘阵列).
然后我们以相同的方法再制作两个磁盘阵列设备
退出保存后,使用partx命令进行一系列的操作