Raid存储方案介绍

0    96    1

Tags:

👉 本文共约14411个字,系统预计阅读时间或需55分钟。

作为一名DBA,选择自己的数据存储在什么上面,应该是最基本的事情了。

RAID的基础知识

RAID简介

【定义】RAID(Redundant Array of Independent Disk)是一种独立冗余磁盘阵列。RAID技术将多个独立的物理硬盘以不同的方式组合成一个逻辑硬盘,从而提高了硬盘的读写性能和数据安全性,根据不同的组合方式可以分为不同的RAID级别。

RAID 是一种用于提高数据存储性能和可靠性的技术,英文全称:Redundant Array of Independent Disks,中文意思:独立磁盘冗余阵列。RAID 系统由两个或多个并行工作的驱动器组成,这些可以是硬盘或者 SSD(固态硬盘)。

RAID( Redundant Array of Independent Disks )独立磁盘冗余阵列,它是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。

RAID根据提供RAID计算的设备分为硬RAID和软RAID。

硬RAID是指提供RAID计算的是一块专门的硬件磁盘阵列卡(也就是RAID卡),由服务器厂商提供,性能好,价格贵,不占用系统的CPU和内存资源,操作系统需要安装阵列卡的驱动程序才可以正常使用硬件RAID。

软RAID是指提供RAID计算的是操作系统上的软件,通过软件来实现仿真数组的任务,这样会消耗比较多的系统资源,比如CPU和IO总线的资源。操作简单,不需要单独费用,在经费紧张但是对数据安全要求比较高的环境下可以使用。Linux系统下提供软件磁盘阵列的是mdadm软件,它可以以分区和磁盘为单位,支持常见的RAID级别。需要注意的是硬RAID在系统中识别是/dev/sd{a,b,c},而软RAID在系统中识别为/dev/md{0,1,2}。

在软件 RAID 中,内存架构由操作系统管理,在硬件 RAID 的情况下,磁盘内有一个专用控制器和处理器来管理内存。

Raid存储方案介绍

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

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

RAID的关键技术

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

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

Raid存储方案介绍

Raid存储方案介绍

Raid存储方案介绍

Raid存储方案介绍

Raid存储方案介绍

为什么要使用RAID?

我们知道,单块磁盘无论是从性能上、容量上、还是安全上都存在单点问题,如果把多块硬盘组成一个group,当成一个逻辑驱动器,从而实现同时从多块硬盘存取数据,那样可以提高了存储的吞吐量,同时也提高了存取速度和扩大存储容量。

RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术就是专门干这事的。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响,这对于数据库存储领域是非常必要的。

RAID的几种工作级别

RAID级别有基本 RAID 级别(0、1、5 和 6)和跨区 RAID 级别(10、50 和 60)。

跨区 RAID 阵列结合了两个或多个基本 RAID 阵列,通过克服特定 RAID 控制器支持的每个阵列的最大驱动器数量限制来提供更高的性能、容量和可用性。

Raid存储方案介绍

我们比较常用的RAID级别有RAID-0、RAID-1、RAID-10/RAID-01、RAID-5,其他的如RAID-3、RAID-4、RAID-6就不在此介绍了。

RAID-0

RAID-0采用数据分条技术(Striped)把多块磁盘串联成一个更为庞大的磁盘组,可以提高磁盘的性能和吞吐量。它读写数据的速度是最快的,要求比较低,要求两个磁盘即可做RAID-0,相对成本是最低的,但是RAID-0不提供冗余或奇偶校验数据的功能,如果驱动器出现故障,数据将无法恢复,安全性最弱。一般只是在那些对性能要求高、数据安全性要求不高的情况下才被使用,不适合数据库的存储。

Raid存储方案介绍

RAID 0 基于数据条带化,数据流被分成多个段或块,每个块都存储在不同的磁盘上。因此,当系统想要读取该数据时,它可以同时从所有磁盘读取数据并将它们连接在一起以重建整个数据流,这样做的好处是读写操作的速度大大提高,它非常适合性能优先于其他方面的情况,此外,整个卷的总容量是各个磁盘容量的总和。

Raid存储方案介绍

什么是条带化?

数据在多个磁盘之间拆分,在所有磁盘之间平均分配,同时消除任何单个磁盘的过载,可以同时从多个磁盘检索数据,提高了速度,从而提高性能,这就是条带化

优点
  • 数据被剥离到多个驱动器中
  • 磁盘空间被充分利用
  • 至少需要 2 个驱动器
  • 高性能
缺点
  • 不支持数据冗余
  • 不支持容错
  • 没有错误检测机制
  • 任一磁盘发生故障都会导致相应阵列中的数据完全丢失

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

用1块磁盘可以做RAID0

Raid存储方案介绍

RAID-1

​ RAID-1采用镜像(Mirroring)的方式冗余数据。RAID-1要求至少两个或2xN个磁盘,每次写数据时会同时写入镜像盘。这种阵列可靠性很高,但其有效容量减小到总容量的一半,同时这些磁盘的大小应该相等,否则总容量只具有最小磁盘的大小。RAID-1的数据安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID级别中最低的。

Raid存储方案介绍

RAID 1 使用数据镜像的概念,数据被镜像或克隆到一组相同的磁盘,这样如果其中一个磁盘出现故障,可以使用另一个。它还提高了读取性能,因为可以同时从所有磁盘访问不同的数据块。

但与 RAID 0 不同的是,写入性能会降低,因为每当有新数据时必须更新所有驱动器书面。另一个缺点是空间被浪费来复制数据,从而增加了存储成本比。

Raid存储方案介绍

什么是镜像?

数据在多个磁盘之间进行镜像意味着数据的副本存储在不同的存储设备之间,这也将增加冗余和性能。

RAID 1 是最常用的 RAID 级别,旨在增强存储数据的安全性。例如,如果一个文件被写入并保存到一个硬盘上,它会自动保存到硬盘2、3 或其他磁盘上。这意味着系统提供了完全冗余,这意味着如果一个驱动器发生故障,第二个驱动器已准备好跳入。

优点
  • 执行数据镜像,即来自一个驱动器的相同数据被写入另一个驱动器以实现冗余。
  • 高读取速度,因为如果一个磁盘繁忙,则可以使用任何一个磁盘
  • 即使任何一个驱动器发生故障,阵列也能正常工作
  • 至少需要 2 个驱动器
缺点
  • 费用较高(每个驱动器需要 1 个额外的驱动器用于镜像)
  • 由于必须更新所有驱动器,因此写入性能较慢

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

Raid存储方案介绍

RAID-10(RAID 1+0)

​ 由于RAID-0和RAID-1都存在明显的优点和缺点,为了结合两者的优点、避免两者的缺点,从而产生了RAID-10,RAID-10适合用在速度需求高,又要完全容错,当然成本也很多的应用。不过在做RAID-10时需要注意的是先做RAID-1,再做RAID-0还是先做RAID-0,再做RAID-1,二者还是有区别的。举个栗子,假如现在有四块磁盘:

先做RAID-0,再做RAID-1:每两块磁盘先做RAID-0,在此基础上,再把两个RAID-0做成RAID-1。这时如果A类或者B类磁盘同时有一个故障,整个RAID将不可用。

先做RAID-1,再做RAID-0:每两块磁盘先做RAID-1,在此基础上,再把两个RAID-1做成RAID-0。这时只有A类或者B类磁盘两个都故障时,整个RAID才不可用。

综合上面来看,先做RAID-1,再做RAID-0相对更安全,建议这种方式,所以我们平时说的RAID-10就是先做RAID-1,再做RAID-0

RAID 10 以相反的顺序将 RAID 1 和 RAID 0 组合在一起,有时,它也被称为“嵌套”或“混合”RAID,这是一种“两全其美的方法”,因为它具有 RAID 0 的快速性能和 RAID 1 的冗余性。在此设置中,多个 RAID 1 块相互连接,使其像 RAID 0。它用于在需要巨大磁盘性能(大于 RAID 5 或 6)以及冗余的情况下。

Raid存储方案介绍

优点
  • 无奇偶代
  • 执行 RAID 0 剥离数据和 RAID 1 镜像
  • 剥离在镜像之前执行
  • 可用容量为 n/2 * 磁盘大小(n = 磁盘数量)
  • 所需的驱动器应该是 2 的倍数
  • 剥离数据时的高性能
缺点
  • 成本高,因为每个驱动器都需要额外的驱动器
  • 100% 的磁盘容量未被使用,因为一半用于镜像
  • 可扩展性非常有限

RAID 1+0(又叫RAID 10)特点:

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

在实际应用中较为常用。

Raid存储方案介绍

4.5RAID 0+1

又叫RAID 01

特点:

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

Raid存储方案介绍

RAID-5

​ RAID-5应该处于RAID-0和RAID-1之间的一种工作模式,它尽量平衡RAID-0和RAID-1的优点和缺点,是我们平时使用比较多的一种模式。做RAID-5至少需要三块磁盘,它采用校验码冗余数据,校验信息分布在多个磁盘上,当数据每次写入到磁盘上,同时还需要写入校验信息,因此写入性能相对不如RAID-0。当某个磁盘出现故障,可以使用其他磁盘上校验信息来恢复数据。相对RAID-1,它磁盘空间利用率为(N-1)/N

Raid存储方案介绍

RAID 5 需要使用至少 3 个驱动器,像 RAID 0 一样跨多个驱动器条带化数据,但也有跨驱动器分布的“奇偶校验”。在单个驱动器发生故障的情况下,使用存储在其他驱动器上的奇偶校验信息将数据拼凑在一起。停机时间为零。读取速度非常快,但由于必须计算奇偶校验,写入速度稍慢。它非常适合数据驱动器数量有限的文件和应用程序服务器。

Raid存储方案介绍

RAID 5 为该奇偶校验损失了 33% 的存储空间(使用三个驱动器),但它仍然是比 RAID 1 更具成本效益的设置,最流行的 RAID 5 配置使用四个驱动器,这将损失的存储空间降低到 25% . 它可以与多达 16 个驱动器一起工作。

RAID 5 也称为带分布式奇偶校验的条带化:

Raid存储方案介绍

优点
  • 具有分布式奇偶校验的块级剥离
  • 奇偶校验分布在阵列中的磁盘上
  • 高性能
  • 成本效益
  • 至少需要 3 个驱动器
缺点
  • 在磁盘故障的情况下,恢复可能需要更长的时间,因为必须从所有可用驱动器计算奇偶校验
  • 无法承受并发驱动器故障

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

其特点是:

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

应用场景:

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

Raid存储方案介绍

RAID 6

RAID 6 使用双奇偶校验块来实现比 RAID 5 更好的数据冗余,这增加了阵列中最多两个驱动器故障的容错能力。每个磁盘都有两个奇偶校验块,它们存储在阵列中的不同磁盘上,RAID 6 是用于维护高可用性系统的非常实用的基础架构。

Raid存储方案介绍

RAID 6 是标准 Web 服务器的一个很好的选择,其中大部分事务都是读取的,但不建议用于重写环境,例如数据库服务器。

RAID 6 也称为 带双分布式奇偶校验的条带化:

Raid存储方案介绍

优点
  • 具有 DUAL 分布式奇偶校验的块级剥离
  • 创建了 2 个奇偶校验块
  • 可以在阵列中同时发生 2 个驱动器故障
  • 额外的容错和冗余
  • 至少需要 4 个驱动器
缺点
  • 成本费用可能成为一个因素
  • 由于双重奇偶校验,写入数据需要更长的时间

RAID 50

RAID 50 由两个或多个RAID 5阵列组成,形成类似RAID 0的条带化阵列。与配置相同数量的RAID 5相比,它提供了更高的访问性能和更强的数据保护性能。单个 RAID5 等效阵列称为“子集”或“子阵列”,可以配置三个或更多子集。

Raid存储方案介绍

RAID 50 可以在服务器和阵列上实现,以运行各种应用程序,例如文件服务器、数据库服务器、虚拟机存储和备份、视频编辑、3D 动画渲染等等。

RAID 50 也称为带分布式奇偶校验的跨区条带化:

Raid存储方案介绍

优点
  • 减少重建时间
  • 改进冗余性能
  • 提升访问性能
缺点
  • 需要6张以上的驱动器
  • 装机效率降低
  • 有限冗余

RAID 60

RAID 60(有时称为 RAID 6+0)将多个 RAID 6 集(带双奇偶校验的条带化)与 RAID 0(条带化)结合在一起。双奇偶校验允许每个 RAID 6 阵列中的两个驱动器发生故障,而条带化可提高容量和性能,而无需向每个 RAID 6 阵列添加驱动器。

与 RAID 50 一样,RAID 60 配置可以容纳 8 个或更多驱动器,但只能用于 16 个以上驱动器的配置。RAID 60 的可用容量在 50%-88% 之间,具体取决于 RAID 组中数据驱动器的数量。

Raid存储方案介绍

请注意,上述所有可用于 RAID 10 和 RAID 50 的多分支配置也可用于 RAID 60。例如,对于 36 个驱动器,您可以拥有一个 RAID 60,每个分支包含 18 个驱动器,或者一个 RAID三条腿中有 60 条,每条腿有 12 个驱动器。

RAID 60 与 RAID 50 类似,但提供更多冗余,适用于超大容量服务器,尤其是那些不会备份的服务器(即处理大量摄像机的视频监控服务器)。

RAID 60 也称为带双分布式奇偶校验的跨区条带化:

Raid存储方案介绍

优点
  • 组内每个 RAID 6 阵列可以承受两个驱动器故障,因此非常安全
  • 非常大且物有所值,考虑到除非有大量驱动器,否则不会使用此 RAID 级别
缺点
  • 需要大量驱动器
  • 由于奇偶校验计算丢失了更多驱动器,因此比 RAID 50 稍贵

RAID的几种工作级别优缺点

Raid存储方案介绍

【注】以上的高、中、低只是相对于RAID-0、RAID-1、RAID-10、RAID-5而言。

RAID 级别的选择受以下因素驱动:

  • 读取性能
  • 写入性能
  • 容错性
  • 阵列性能下降(对于容错 RAID 级别)
  • 有效存储容量

RAID等级比较

下表总结了 RAID 级别及其特性,以帮助您选择最适合您需要的 RAID 级别:

特征RAID 0RAID 1RAID 5RAID 6RAID 10RAID 50RAID 60
最小驱动器1个2个3个4个4个6个8个
最大驱动器322个323216192192
对驱动器故障的容忍度没有任何1 个驱动器1 个驱动器2个驱动器每个跨度 1 个驱动器每个跨度 1 个驱动器每个跨度 2 个驱动器
重建时间没有任何快速地减缓缓慢快速地缓慢缓慢
读取性能出色的非常好出色的出色的非常好出色的出色的
写入性能出色的非常好满意的满意的非常好好的好的
阵列性能下降没有任何非常好满意的满意的非常好好的好的
容量开销没有任何一半1 个驱动器2个驱动器一半每个跨度 1 个驱动器每个跨度 2 个驱动器

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

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

表1 常见RAID磁盘阵列介绍

RAID级别简介读写性能安全性能磁盘使用率组建不同RAID阵列所需的最少磁盘数量
RAID0RAID0将数据分条存储在多个磁盘上,可实现并行读写,提供最快的读写速率。多个磁盘并行读写获取更高性能最差没有冗余能力,一个磁盘损坏,整个RAID阵列数据都不可用100%两块
RAID1通过构造数据镜像实现数据冗余,阵列中一半的磁盘容量投入使用,另一半磁盘容量用来做镜像,提供数据备份。读性能:与单个磁盘相同写性能:需要将数据写入是两个磁盘,写性能低于单个磁盘最高提供磁盘数据的完整备份,当阵列中的一个磁盘失效时,系统可以自动采用镜像磁盘的数据50%两块
RAID01结合RAID0和RAID1两种磁盘阵列,先将一半磁盘组建成RAID0分条存储数据,再用另一半磁盘做RAID1镜像。读性能:和RAID0相同写性能:和RAID1相同比RAID10的安全性能低50%四块
RAID10结合RAID1和RAID0两种磁盘阵列,先将磁盘两两组建成RAID1镜像,再组建RAID0将数据分条存储。读性能:RAID0相同写性能:RAID1相同和RAID1的安全性能相同50%四块
RAID5RAID5不需要单独指定数据校验磁盘,而是将每块磁盘生成的校验信息分块存储至阵列中的每块磁盘中。读性能:和RAID0相同写性能:由于要写入奇偶校验信息,写性能低于单个磁盘比RAID10的安全性能低66.7%三块

如何判断RAID级别、写入策略、电池状况

1、判断RAID级别:

MegaCli64工具输入磁盘信息如下:

网上有人仅仅通过RAID Level列中的Primary-1, Secondary-0, RAID Level Qualifier-0来判断,我认为不是很准确。先来了解下Primary、Secondary、RAID Level Qualifier啥意思?

Primary字段:基本上可以确定RAID的级别,但是无法区分是RAID-1和RAID-10,因为有情况下他们的Primary值都是Primary-1, Secondary-0, RAID Level Qualifier-0**

在这种情况下如何区分RAID-1和RAID-10?我认为还得结合另外两列进行判断:

【总结:如何判断RAID级别】:

1) 除了RAID-1和RAID-10,其他级别通过Primary字段值就可以判断;

2) 至于RAID-1和RAID-10,还需要结合Number Of Drives (per span)、Span Depth两列的值,如果pan Depth值为1表示为RAID-1,不为1表示RAID-10;还有一种情况:Primary-1, Secondary-3, RAID Level Qualifier-0也是表示RAID-10;

2、判断RAID写入策略和电池状态

RAID的写入策略对IO性能有很大影响,有两种写入策略:

2.1)查看RAID的写入策略

Default Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBU

如果是这个,表示采用WriteThrough策略

2.2)查看电池状态

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
Raid存储方案介绍后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部