RAID磁盘阵列

如果也许 运维笔记 1.5K+
【全民云计算】云主机低至2折

在单机时代,采用单块磁盘进行数据存储和读写的方式,由于寻址和读写的时间消耗,导致I/O性能非常低,且存储容量还会受到限制。

另外,单块磁盘极其容易出现物理故障,经常导致数据的丢失。因此大家就在想,有没有一种办法将多块独立的磁盘结合在一起组成一个技术方案,

来提高数据的可靠性和I/O性能呢。


在这种情况下,RAID技术就应运而生了。

一、RAID 是什么?

RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,

从而实现比单块磁盘更好的存储性能和更高的可靠性。

二、软件 RAID 和硬件 RAID

软件 RAID 的性能较低,因为其使用主机的资源。 需要加载 RAID 软件以从软件 RAID 卷中读取数据。在加载 RAID 软件前,操作系统需要引导起来才能加载 RAID 软件。在软件 RAID 中无需物理硬件。零成本投资。

硬件 RAID 的性能较高。他们采用 PCI Express 卡物理地提供有专用的 RAID 控制器。它不会使用主机资源。他们有 NVRAM 用于缓存的读取和写入。缓存用于 RAID 重建时,即使出现电源故障,它会使用后备的电池电源保持缓存。对于大规模使用是非常昂贵的投资。

三、重要的 RAID 概念

校验方式用在 RAID 重建中从校验所保存的信息中重新生成丢失的内容。 RAID 5,RAID 6 基于校验。

条带化是将切片数据随机存储到多个磁盘。它不会在单个磁盘中保存完整的数据。如果我们使用2个磁盘,则每个磁盘存储我们的一半数据。

镜像被用于 RAID 1 和 RAID 10。镜像会自动备份数据。在 RAID 1 中,它会保存相同的内容到其他盘上。

热备份只是我们的服务器上的一个备用驱动器,它可以自动更换发生故障的驱动器。在我们的阵列中,如果任何一个驱动器损坏,热备份驱动器会自动用于重建 RAID。

是 RAID 控制器每次读写数据时的最小单位,最小 4KB。通过定义块大小,我们可以增加 I/O 性能。

四、RAID 有哪些?

RAID方案常见的可以分为:

RAID0 = 条带化

RAID1 = 镜像

RAID5 = 单磁盘分布式奇偶校验

RAID6 = 双磁盘分布式奇偶校验

RAID10 = 镜像 + 条带。(嵌套RAID)

下面来分别介绍一下。

RAID0

至少需要2块磁盘

RAID0 是一种非常简单的的方式,它将多块磁盘组合在一起形成一个大容量的存储。当我们要写数据的时候,会将数据分为N份,以独立的方式实现N块磁盘的读写,那么这N份数据会同时并发的写到磁盘中(假设我们有2个磁盘驱动器,如果我们将数据“YONLE”写到逻辑卷中,“Y”将被保存在第一盘中,“O”将保存在第二盘,'N'将被保存在第一盘,“L”将保存在第二盘,它会一直继续此循环过程。(注:实际上不可能按字节切片,是按数据块切片的。))。因此执行性能非常的高。

RAID0 的读写性能理论上是单块磁盘的N倍(仅限理论,因为实际中磁盘的寻址时间也是性能占用的大头)但RAID0的问题是,它并不提供数据校验或冗余备份,因此一旦某块磁盘损坏了,数据就直接丢失,无法恢复了。因此RAID0就不可能用于高要求的业务中,如果你的数据是非常宝贵的,那么不要使用 RAID 0了,但可以用在对可靠性要求不高,对读写性能要求高的场景中。

RAID0总结:

高性能。

RAID 0 中容量零损失。

零容错。

写和读有很高的性能


那有没有可以让存储可靠性变高的方案呢?

有的,下面的RAID1就是。

RAID1

至少需要2块磁盘

如图,

RAID1 是磁盘阵列中单位成本最高的一种方式。因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。

RAID1其实与RAID0效果刚好相反。RAID1 这种写双份的做法,就给数据做了一个冗余备份。这样的话,任何一块磁盘损坏了,都可以再基于另外一块磁盘去恢复数据,数据的可靠性非常强,但性能就没那么好了。

RAID1总结:

良好的性能。

总容量丢失一半可用空间。

完全容错。

重建会更快。

写性能变慢。

读性能变好。

能用于操作系统和小规模的数据库


了解了RAID0和RAID1之后,我们发现这两个方案都不完美啊。

这时候就该 性能又好、可靠性也高 的方案 RAID5 登场了。

RAID5

至少需要3块磁盘

这是目前用的最多的一种方式。

因为 RAID5 是一种将 存储性能、数据安全、存储成本 兼顾的一种方案。

在了解RAID5之前,我们可以先简单看一下RAID3,虽然RAID3用的很少,但弄清楚了RAID3就很容易明白RAID5的思路。

RAID3的方式是:将数据按照RAID0的形式,分成多份同时写入多块磁盘,但是还会另外再留出一块磁盘用于写「奇偶校验码」。例如总共有N块磁盘,那么就会让其中额度N-1块用来并发的写数据,第N块磁盘用记录校验码数据。一旦某一块磁盘坏掉了,就可以利用其它的N-1块磁盘去恢复数据。

但是由于第N块磁盘是校验码磁盘,因此有任何数据的写入都会要去更新这块磁盘,导致这块磁盘的读写是最频繁的,也就非常的容易损坏。

RAID5的方式可以说是对RAID3进行了改进。

RAID5模式中,是以分布式奇偶校验的方式工作,不再需要用单独的磁盘写校验码了。它把校验码信息分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。

RAID5校验位算法原理:P = D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。

RAID5总结:

性能卓越

读速度将非常好。

写速度处于平均水准,如果我们不使用硬件 RAID 控制器,写速度缓慢。

从所有驱动器的奇偶校验信息中重建。

完全容错。

1个磁盘空间将用于奇偶校验。

可以被用在文件服务器,Web服务器,非常重要的备份中。

RAID6

至少需要4块磁盘

为了进一步提高存储的高可用,聪明的人们又提出了RAID6方案,可以在有两块磁盘同时损坏的情况下,也能保障数据可恢复。

为什么RAID6这么牛呢,因为RAID6在RAID5的基础上再次改进,引入了双重校验的概念。

RAID6除了每块磁盘上都有同级数据XOR校验区以外,还有针对每个数据块的XOR校验区,这样的话,相当于每个数据块有两个校验保护措施,因此数据的冗余性更高了。

但是RAID6的这种设计也带来了很高的复杂度,虽然数据冗余性好,读取的效率也比较高,但是写数据的性能就很差。因此RAID6在实际环境中应用的比较少。

RAID6总结:

性能不佳。

读的性能很好。

如果我们不使用硬件 RAID 控制器写的性能会很差。

从两个奇偶校验驱动器上重建。

完全容错。

2个磁盘空间将用于奇偶校验。

可用于大型阵列。

用于备份和视频流中,用于大规模。

RAID10

至少需要4块磁盘

RAID10其实就是RAID1与RAID0的一个合体。

我们看图就明白了:

RAID10兼备了RAID1和RAID0的有优点。首先基于RAID1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于RAID0技术讲数据分为N份并发的读写,这样也保障了数据的效率(如果我在 RAID 10上写入数据“YONLE”,数据将使用如下方式保存。首先将“Y”同时写入两个磁盘,“O”也将同时写入另外两个磁盘,所有数据都写入两块磁盘。这样可以将每个数据复制到另外的磁盘。同时它将使用 RAID 0 方式写入数据,遵循将“Y”写入第一组盘,“O”写入第二组盘。再次将“N”写入第一组盘,“L”到第二组盘。)。

但也可以看出RAID10模式是有一半的磁盘空间用于存储冗余数据的,浪费的很严重,因此用的也不是很多。

RAID10总结:

良好的读写性能。

总容量丢失一半的可用空间。

容错。

从副本数据中快速重建。

由于其高性能和高可用性,常被用于数据库的存储中。

目录导航
  • 一、RAID 是什么?
  • 二、软件 RAID 和硬件 RAID
  • 三、重要的 RAID 概念
  • 四、RAID 有哪些?
  • RAID0
  • RAID1
  • RAID5
  • RAID6
  • RAID10
  • 标签: 硬盘 Raid Windows 系统 安全 Linux

    【助力企业上云】性能级主机2-5折

    上一篇全球免费公共 DNS 解析服务器 IP 地址列表

    下一篇当前分类已是最新一篇

    发布评论 0条评论)

    • Refresh code

    还木有评论哦,快来抢沙发吧~