1.基本概念

RAID( Redundant Array of Independent Disks )独立磁盘冗余阵列 ,它是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。

RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。

2.RAID分类

从大的方向来划分,分两类:

  • RAID
  • RAID

RAID所有功能均由操作系统和CPU来完成,没有独立的RAID控制器处理芯片和I/O处理芯片, 效率低

RAID配备了专门的 RAID控制器处理芯片和 I/O<span> </span>处理芯片以及阵列缓冲,不占用CPU资源,但 成本高

3.RAID的关键技术

RAID的关键技术有3个,其特点如下表:

关键技术技术特点
镜像Mirroring,将数据复制到多个磁盘。一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低, 确保数据正确地写到多个磁盘需要更多的时间消耗。
数据条带将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作, 从而获得非常可观的 I/O 性能提升。
数据校验( Data parity )利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。

4.RAID的等级

一般公认的标准是 RAID0 ~ RAID5

实际应用领域中使用最多的RAID<span> </span>等级是 RAID0RAID1RAID5RAID10

RAID每一个等级代表一种实现方法和技术,等级之间并无高低之分。

4.1 RAID 0

称为条带模式。

即把连续的数据分散到多个磁盘上存取。当系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。因为读取和写入是在设备上并行完成的,读取和写入性能将会增加,这通常是运行RAID0的主要原因。但RAID0没有数据冗余,如果驱动器出现故障,那么将无法恢复任何数据。

用1块磁盘可以做RAID0

4.2 RAID 1

RAID 1又称为磁盘镜像(Mirroring)

它是一个具有全冗余的模式。

RAID 1可以用于两个或2xN个磁盘,并使用0块或更多的备用磁盘,每次写数据时会同时写入镜像盘。这种阵列可靠性很高,但其有效容量减小到总容量的一半,同时 这些磁盘的大小应该相等,否则总容量只具有最小磁盘的大小。RAID 1的数据安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID级别中最低的。至少需要2块硬盘来做RAID1

4.3 RAID 5

RAID 5<span> </span>是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID 5可以理解为是RAID 0RAID 1的折中方案。

其特点是:

  • 最少3块磁盘
  • 数据条带形式分布
  • 以奇偶校验作冗余

应用场景:

适合多读少写的情景,是性能与数据冗余最佳的折中方案。

4.4 RAID 1+0

RAID 1+0(又叫RAID 10)

特点:

  • 最少需要4块磁盘
  • 先按RAID1分成两组,再分别对两组按RAID 0方式条带化 (先做镜像,然后再做条带)
  • 兼顾冗余(提供镜像存储)和性能(数据条带形分布)

在实际应用中较为常用。

4.5 RAID 0+1

又叫RAID 01

特点:

  • 最少需要4块磁盘
  • 先按RAID 0分成两组,再分别对两组按RAID 1方式镜像( 先做条带,然后再做镜像
  • 兼顾冗余(提供镜像存储)和性能(数据条带形分布)

5.生产服务器磁盘RAID选型

对于在实际生产环境中,RAID选型参考如下表:

类型读写性能安全性磁盘利用率成本应用方面
RAID0最好(因并行性而提高)最差(完全无安全保障)最高(100%)最低对安全性要求不是特别高、大文件写存储的系统
RAID1读与单个磁盘无分别,写则要写两边最高(提供数据的百分之百备份)差(50%)较高适用于存放重要数据,如服务器和数据库存储等领域。
RAID5读:RAID 5=RAID 0(相近似的数据读取速度)写:RAID 5<对单个磁盘进行写入操作(多了一个奇偶校验信息写入)RAID 5RAID 1中等是一种存储性能、数据安全和存储成本兼顾的存储解决方案。
RAID10读:RAID10=RAID0写:RAID10=RAID1RAID10=RAID1RAID10=RAID1(50%)较高集合了RAID0RAID1的优点,但是空间上由于使用镜像,而不是类似RAID5的“奇偶校验信息”,磁盘利用率一样是50%

文章来源:Python运维实践

最后修改:2023 年 05 月 30 日
如果觉得我的文章对你有用,请随意赞赏