0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解RAID的存储性能、更高的I/O性能及可靠性

架构师技术联盟 来源:架构师技术联盟 2023-11-07 09:48 次阅读

RAID(Redundant Array of Independent Disks)是将多块物理硬盘通过RAID控制卡组合成虚拟的单块大容量硬盘使用,从而提供比单个硬盘更高的存储性能、更高的I/O性能及可靠性。

1硬盘组和虚拟磁盘

由于现代数据中心业务量的与日俱增,单台服务器上需要运行的数据也日益增多。当单个物理硬盘在容量和安全性上不足以支持系统业务时,就需要将多个硬盘以某种特定方式组合起来,对外作为一个可见的硬盘来使用,才可满足实际需要。硬盘组,就是将一组物理硬盘组合起来,作为一个整体对外体现,是虚拟磁盘的基础。

虚拟磁盘,即使用硬盘组划分出来的连续的数据存储单元,相当于一个个独立的硬盘,通过一定的配置,使其具有比单个物理硬盘更大的容量,及更高的安全性和数据冗余性。

一个虚拟磁盘可以是:

一个完整的硬盘组。

多个完整的硬盘组。

一个硬盘组的一部分。

多个硬盘组的一部分(每个硬盘组划分一部分,共同组成虚拟磁盘)。

在下文的描述中:

硬盘组一般会表述为“Drive Group”(简称“DG”)、“Array”、“RAID组”。

虚拟磁盘一般会表述为“Virtual Drive”、“Virtual Disk”(简称“VD”)、“Volume”、“Logical Device”(简称“LD”)等。

1.1RAID级别介绍

RAID是将多块物理硬盘通过RAID控制卡组合成虚拟的单块大容量硬盘使用,从而提供比单个硬盘更高的存储性能、更高的I/O性能及可靠性。

RAID控制卡仅在EFI或UEFI模式下支持安全启动,并使用BIOS提供的安全认证机制。

1.1.1 RAID 0

RAID 0又称为条带化(Stripe)或分条(Striping),代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个硬盘上存取。这样,当系统有数据请求时就可以在多个硬盘上并行执行,每个硬盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高硬盘整体读写性能。但由于其没有数据冗余,无法保护数据的安全性,只能适用于I/O速率要求高,但数据安全性要求低的场合。

处理流程

系统向三块硬盘组成的逻辑硬盘(RAID 0硬盘组)发出的I/O数据请求被转化为三项操作,其中的每一项操作都对应于一块物理硬盘。

通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。

三块硬盘的并行操作在理论上使同一时间内硬盘读写速度提升了3倍。虽然由于总线带宽等多种因素的影响,实际的提升速率会低于理论值,但是大量数据并行传输与串行传输比较,提速效果显著。

图RAID 0数据存储原理

632ef162-7cfd-11ee-939d-92fbcf53809c.png

1.1.1 RAID 1

RAID 1又称镜像(Mirror或Mirroring),即每个工作盘都有一个镜像盘,每次写数据时必须同时写入镜像盘,读数据时同时从工作盘和镜像盘读出。当更换故障盘后,数据可以重构,恢复工作盘正确数据。RAID 1可靠性高,但其有效容量减小到总容量一半,因此常用于对容错要求较高的应用场合,如财政、金融等领域。

处理流程

系统向两块硬盘组成的逻辑硬盘(RAID 1硬盘组)发出I/O数据请求。

向硬盘Drive 0写入数据时,系统会同时把用户写入Drive 0的数据自动复制到Drive 1上。

读取数据时,系统同时从Drive 0和Drive 1读取。

图RAID 1数据存储原理

633cd2b4-7cfd-11ee-939d-92fbcf53809c.png

1.1.2 RAID 1ADM

RAID 1ADM的每个工作盘都有两个镜像盘,每次写数据时必须同时写入镜像盘,读数据时同时从工作盘和镜像盘读出。当更换故障盘后,数据可以重构,恢复工作盘正确数据。RAID 1ADM可靠性比RAID 1高,但其有效容量减小到总容量的三分之一,因此常用于对容错要求较高的应用场合,如财政、金融等领域。

处理流程

系统向三块硬盘组成的逻辑硬盘(RAID 1ADM硬盘组)发出I/O数据请求。

向硬盘Drive 0写入数据时,系统会同时把用户写入Drive 0的数据自动复制到Drive 1和Drive 2上。

读取数据时,系统同时从Drive 0、Drive 1和Drive 2读取。

图RAID 1ADM数据存储原理

6355b7c0-7cfd-11ee-939d-92fbcf53809c.png

1.1.3 RAID 5

RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。为保障存储数据的可靠性,采用循环冗余校验方式,并将校验数据分散存储在RAID的各成员盘上。当RAID的某个成员盘出现故障时,通过其他成员盘上的数据可以重新构建故障硬盘上的数据。RAID 5既适用于大数据量的操作,也适用于各种小数据的事务处理,是一种快速、大容量和容错分布合理的磁盘阵列。

处理流程

PA为A0、A1和A2的奇偶校验信息,PB为B0、B1和B2的奇偶校验信息,以此类推。

RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到成员盘上,并且奇偶校验信息和相对应的数据分别存储于不同的硬盘上。当RAID 5的一个硬盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息可以恢复被损坏的数据。

RAID 5可以理解为是RAID 0和RAID 1的折衷方案:

RAID 5可以为系统提供数据安全保障,但保障程度要比RAID 1低而硬盘空间利用率要比RAID 1高,存储成本相对较低。

RAID 5具有较RAID 0略低的数据读写速度,但写性能比写入单个硬盘时要高。

图RAID 5数据存储原理

6360b3a0-7cfd-11ee-939d-92fbcf53809c.png

1.1.4 RAID 6

在RAID 5的基础上,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块硬盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的硬盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”较差。

处理流程

PA为数据块A0、A1、A2的第一个校验信息块,QA为第二个校验信息块;PB为数据块B0、B1、B2的第一个校验信息框,QB为第二个校验信息块,以此类推。

数据块和校验块一起分散存储到RAID 6的各个成员盘上。当任意一个或两个成员硬盘出现故障时,控制卡可以从其他处于正常状态的硬盘上重新恢复或生成丢失的数据而不影响数据的可用性。

图RAID 6数据存储原理

637653f4-7cfd-11ee-939d-92fbcf53809c.png

1.1.5 RAID 10

RAID 10是将镜像和条带进行两级组合的RAID级别,即RAID 1+RAID 0的组合形式,第一级是RAID 1,第二级是RAID 0。RAID 10是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。

处理流程

Drive 0和Drive 1组成一个子组0,Drive 2和Drive 3组成一个子组1,子组内的两个硬盘互为镜像。

系统向硬盘发出I/O数据请求时,原先顺序的数据请求按照RAID 0的方式,被分散到两个子组中并行执行,同时通过RAID 1的方式,系统在向硬盘Drive 0写入数据的同时把数据自动复制到硬盘Drive 1上,向硬盘Drive 2写入数据的同时把数据自动复制到硬盘Drive 3上。

图RAID 10数据存储原理

638b8774-7cfd-11ee-939d-92fbcf53809c.png

1.1.6 RAID 10ADM

RAID 10ADM是将镜像和条带进行两级组合的RAID级别,即RAID 1ADM+RAID 0的组合形式,第一级是RAID 1ADM,第二级是RAID 0。RAID 10ADM是存储性能和数据安全兼顾的方案。它在提供与RAID 1ADM一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。

处理流程

Drive 0、Drive 1和Drive 2组成一个子组0,Drive 3、Drive 4和Drive 5组成一个子组1,子组内的硬盘互为镜像。

系统向硬盘发出I/O数据请求时,原先顺序的数据请求按照RAID 0的方式,被分散到两个子组中并行执行,同时通过RAID 1ADM的方式,系统在向硬盘Drive 0写入数据的同时把数据自动复制到硬盘Drive 1和Drive 2上,向硬盘Drive 3写入数据的同时把数据自动复制到硬盘Drive 4和Drive 5上。

图RAID 10ADM数据存储原理

639f3c88-7cfd-11ee-939d-92fbcf53809c.png

1.1.7 RAID 1E

RAID 1E为RAID 1的增强版,工作原理与RAID 1类似。RAID 1E的数据条带及数据备份贯穿在逻辑盘中所有的硬盘当中。跟RAID 1类似,数据是镜像的,逻辑盘的容量是硬盘总容量的一半,可提供数据冗余功能及较高的性能。然而,RAID 1E允许使用更多的物理硬盘,至少由三个硬盘组成。

处理流程

系统向三块硬盘组成的逻辑硬盘(RAID 1E硬盘组)发出I/O数据请求。条带数据均匀分布在3个硬盘中,任意一个条带数据都在其他硬盘中有自己的备份。此时,如果有单个硬盘故障,不会造成数据丢失。

图RAID 1E数据存储原理

63ae08f8-7cfd-11ee-939d-92fbcf53809c.png

1.1.8 RAID 50

RAID 50被称为镜像阵列条带,即RAID 5+RAID 0的组合形式。像RAID 0一样,数据被分区成条带,在同一时间内向多块硬盘写入;像RAID 5一样,也是以数据的校验位来保证数据的安全,且校验条带均匀分布在各个硬盘上。

处理流程

PA为A0、A1和A2的奇偶校验信息,PB为B0、B1和B2的奇偶校验信息,以此类推。

RAID 50是RAID 5与RAID 0两种技术的结合,一个RAID 50由多个RAID 5子组组成,数据的存储访问以RAID 0的形式分布在各个RAID 5子组上。依靠RAID 5提供的冗余功能,在子组内部任意一个硬盘故障时,阵列均可正常工作并恢复出故障硬盘的信息。同样,故障硬盘的更换不会影响业务的正常进行。因此,RAID 50可以容忍多个子组同时单盘故障,这是单纯RAID 5技术无法做到的。同时,由于数据分布在多个子组上,阵列可以提供更加优秀的读写性能。

图RAID 50数据存储原理

63c36a5e-7cfd-11ee-939d-92fbcf53809c.png

1.1.9 RAID 60

RAID 60同RAID 50类似,数据采用镜像阵列条带分布方式,即RAID 6 + RAID 0的组合形式。像RAID 0一样,数据被分区成条带,在同一时间内向多块硬盘写入;像RAID 6一样,以两个数据校验模块来保证数据的安全,且校验条带均匀分布在各个硬盘上。

处理流程

PA为A0、A1和A2的校验信息1,QA为A0、A1和A2的校验信息2,PB为B0、B1和B2的校验信息1,QB为B0、B1和B2的校验信息2,以此类推。

RAID 60是RAID 6与RAID 0两种技术的结合,一个RAID 60由多个RAID 6子组组成,数据的存储访问以 RAID 0的形式分布在各个RAID 6子组上。依靠RAID 6提供的冗余功能,在子组内部任意两个硬盘故障,阵列均可正常工作并恢复出故障硬盘的信息。同样,故障硬盘的更换不会影响业务的正常进行。

图RAID 60数据存储原理

63d0acbe-7cfd-11ee-939d-92fbcf53809c.png

1.1.10 容错能力

RAID 0:不提供容错功能。任意一个成员盘出现故障,都会导致数据丢失。通过条带化方式同时在多个成员盘中写入数据。RAID 0对于需要高性能但不需要容错的应用场景非常理想。

RAID 1:提供100%的数据冗余能力。当一个成员盘故障时,可以使用RAID组中对应的其他硬盘的数据来运行系统,并重构故障盘。因为一个成员盘的内容会完全备份写入另一个硬盘, 所以如果其中一个成员盘出现故障,则不会丢失任何数据。成对的成员盘在任何时候都包含相同的数据。RAID 1组是需要最大容错能力和最小容量要求的应用场景的理想选择。

RAID 5:结合了分布式奇偶校验和硬盘条带化。奇偶校验在不需要备份全部硬盘内容的情况下,为1个硬盘提供了冗余特性。当一个成员盘故障时,RAID控制卡使用奇偶校验数据来重构所有丢失的信息。RAID 5使用较小的系统开销为系统提供了足够的容错能力。

RAID 6:结合了分布式奇偶校验和硬盘条带化。奇偶校验在不需要备份全部硬盘内容的情况下,为2个硬盘提供了冗余特性。当一个成员盘故障时,RAID控制卡使用奇偶校验数据来重构所有丢失的信息。RAID 6使用较小的系统开销为系统提供了足够的容错能力。

RAID 10:使用多个RAID 1提供完整的数据冗余能力。RAID 10对所有需要通过镜像硬盘组提供100%冗余能力的场景都适用。

RAID 50:使用多个RAID 5的分布式奇偶校验提供数据冗余能力。在保证数据完整性的情况下,每个RAID 5分组允许1个成员盘故障。

RAID 60:使用多个RAID 6的分布式奇偶校验提供数据冗余能力。在保证数据完整性的情况下,每个RAID 6分组允许2个成员盘故障。

1.1.11 I/O性能

RAID组可作为一个单独的存储单元或多个虚拟单元被系统使用。由于可以同时访问多个硬盘,使得针对RAID组的I/O读写速率较普通硬盘更高。

RAID 0:提供优异的性能。RAID 0将数据分割为较小的数据块并写入到不同的硬盘中,由于可以同时对多个硬盘进行读写,RAID 0提升了I/O性能。

RAID 1:由于RAID组中的硬盘都是成对出现,写数据时也必须同时写入2份,从而占用更多的时间和资源,导致性能降低。

RAID 5:提供了较高的数据吞吐能力。由于成员盘上同时保留常规数据和校验数据,每个成员盘都可以独立读写,再加上完善的Cache算法,使得RAID 5在很多应用场景中都有出色的性能表现。

RAID 6:在需要高可靠性、高响应率、高传输率的场景下,RAID 6是较为适合的RAID级别,其提供了高数据吞吐量、数据冗余性和较高的I/O性能。由于RAID 6需要为每个成员盘写入2套校验数据,导致其在写操作期间性能降低。

RAID 10:由RAID 0子组提供高数据传输速率的同时,RAID 10在数据存储方面表现优异。I/O性能随着子组数量的增加而提升。

RAID 50:在需要高可靠性、高响应率、高传输率的场景下,RAID 50表现最好。I/O性能随着子组数量的增加而提升。

RAID 60:使用场景与RAID 50类似,但是由于每个成员盘必须写入2组奇偶校验数据,使得在写操作中性能降低,因此RAID 60不适用于大量写入任务。

当同一RAID控制卡下同时存在无需校验的RAID组(如RAID 0或RAID 1)和需要校验的RAID组(如RAID 5或RAID 6),且写策略均设置为Write Back时,需要校验的RAID组性能会下降,I/O wait增加。

建议将无需校验的RAID组写策略设置为Write Through,以免对需要校验的RAID组性能产生影响。

1.1.12 存储容量

在选择RAID级别时,其存储容量也是一个重要参数

RAID 0:在指定一组硬盘后,同等情况下,RAID 0可以提供最大的存储容量,可用容量=成员盘最小容量×成员盘数量。

RAID 1:由于对一个硬盘进行写入时,必须同时写入另一个硬盘,导致存储空间损耗。可用容量=成员盘最小容量。

RAID 5:校验数据块与常规数据块隔离,因此整体上来说,校验数据会占用1个成员盘的容量。可用容量=成员盘最小容量×(成员盘数量-1)。

RAID 6:由于2个独立的校验数据块与常规数据块隔离,整体上来说,校验数据会占用2个成员盘的容量。可用容量=成员盘最小容量×(成员盘数量-2)。

RAID 10:可用容量=子组容量之和。

RAID 50:可用容量=子组容量之和。

RAID 60:可用容量=子组容量之和。








审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAID
    +关注

    关注

    0

    文章

    243

    浏览量

    34872
  • 数据存储
    +关注

    关注

    5

    文章

    895

    浏览量

    50584
  • 奇偶校验
    +关注

    关注

    0

    文章

    15

    浏览量

    8165

原文标题:详解RAID流程、I/O性能和容量

文章出处:【微信号:架构师技术联盟,微信公众号:架构师技术联盟】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    #硬声创作季 #可靠性 电子封装可靠性评价中的实验力学方法-3

    可靠性设计可靠性元器件可靠性
    水管工
    发布于 :2022年09月29日 22:10:30

    #硬声创作季 #可靠性 电子封装可靠性评价中的实验力学方法-5

    可靠性设计可靠性元器件可靠性
    水管工
    发布于 :2022年09月29日 22:11:21

    #硬声创作季 #可靠性 电子封装可靠性评价中的实验力学方法-6

    可靠性设计可靠性元器件可靠性
    水管工
    发布于 :2022年09月29日 22:11:46

    嵌入式系统产品的可靠性

    关注有助于确保整个终端设备可靠性要求的装置。集成电路在嵌入式系统的性能、尺寸和整体成本方面已经实现重大突破,对各种存储元件的依赖及使用小尺寸硅工艺技术可能产生的永久和瞬时误差对可靠性
    发表于 08-30 14:43

    提高存储可靠性的DDR ECC参考设计

    描述此参考设计介绍高可靠性应用(基于 66AK2Gx 多内核 DSP + ARM 处理器片上系统 (SoC))中具有纠错码 (ECC) 支持的双倍数据速率 (DDR) 存储器接口的系统注意事项。其中
    发表于 10-22 10:20

    接近开关性能指标可靠性研究

      摘要:工业电器自动化设备的限位开关、微型开关的使用渐渐趋向于灵活、方便和高薪科技的方向发展,以至于被接近开关传感器所取代并广泛使用。通过可靠性试验研究,获得最优化数据参数,显示其使用的优越
    发表于 11-13 16:28

    液晶屏的连接性能及可靠性,寿命评估

    解决的,那些电压高,电流大的发光型显示器件的外连接相对要难一些二. 可靠性液晶的可靠性较高,只要不摔碰,破损,十年免维修都可以。而PDP是高压器件,OLED是电流型器件,他们的可靠性都不如液晶显示。三. 寿命
    发表于 11-27 16:20

    性能可靠性隔离式电源解决方案

    一种易于建立的高性能、高可靠性隔离式电源
    发表于 05-29 15:40

    确保智能光网络互操作可靠性性能

    确保智能光网络互操作可靠性性能
    发表于 06-11 07:51

    【PCB】什么是高可靠性

    `PCB可靠性是指“裸板”能够满足后续PCBA装配的生产条件,并在特定的工作环境和操作条件下,在一定的时期内,可以保持正常运行功能的能力。二、可靠性如何发展成为社会焦点?50年代,在朝鲜战争期间
    发表于 07-03 11:09

    什么是高可靠性

    ` 本帖最后由 山文丰 于 2020-7-3 11:20 编辑 PCB可靠性是指“裸板”能够满足后续PCBA装配的生产条件,并在特定的工作环境和操作条件下,在一定的时期内,可以保持正常运行功能
    发表于 07-03 11:18

    单片机应用系统的可靠性可靠性设计

    单片机应用系统中,CPU 运行的是事先固化在单片机的程序存储器的软件.用户无法更改和输入新的程序。这就避免 r 外来计算机病毒的侵袭,其可靠性表现在固化软件本身的可靠性和程序存储器数据
    发表于 01-11 09:34

    (转载)RAID技术全解图解-RAID0、RAID1、RAID5、RAID100 精选资料分享

    RAID技术全解图解-RAID0、RAID1、RAID5、RAID100一、RAID 概述二、基
    发表于 07-28 09:25

    LED驱动电源的性能可靠性

    是LED照明灯具的核心组件之一,其性能可靠性直接决定了LED照明灯具的使用效果和寿命。为了能够更好地应用在LED照明灯具中,在LED驱动电源的研发或者生产阶段,需要采用合适的测试方案对LED驱动电源各项...
    发表于 12-27 06:49

    如何选择RAID磁盘阵列

    RAID(Redundant Array of Independent Disks)是将多块物理硬盘通过RAID控制卡组合成虚拟的单块大容量硬盘使用,从而提供比单个硬盘更高存储
    的头像 发表于 07-14 11:49 1242次阅读
    如何选择<b class='flag-5'>RAID</b>磁盘阵列