简介RAID术语和概念

介绍

在设置服务器时,存储是一个重要的考虑因素。 您和您的用户关心的几乎所有重要信息将一次写入存储设备以保存以供稍后检索。 单个磁盘可以为您服务,如果你的需要是直接。 但是,如果您有更复杂的冗余或性能要求,像RAID这样的解决方案会很有帮助。

在本指南中,我们将讨论常见的RAID术语和概念。 我们将讨论将设备安排到RAID阵列中的一些优点和缺点,讨论实施技术的差异,以及了解不同的RAID级别对存储环境的影响。

什么是RAID?

RAID表示对R edundant 一个 rrays ndependentðisks。 通过将驱动器组合为不同的模式,管理员可以实现比单独操作时可提供的驱动器集合更高的性能或冗余。 RAID实现为原始驱动器或分区与文件系统层之间的一个层。

什么时候RAID是一个好主意?

RAID提供的主要价值是数据冗余和性能提升。

冗余旨在帮助提高数据的可用性。 这意味着在某些故障情况下,例如存储驱动器出现故障时,您的信息仍然可以访问,系统作为一个整体可以继续工作,直到驱动器更换。 并不意味着作为备份机制(单独备份总是具有RAID推荐为任何其它类型的存储设备),而是旨在当确实发生的问题,以减少干扰。

RAID在某些情况下提供的另一个好处是性能。 存储I / O通常受单个磁盘的速度限制。 使用RAID,数据是冗余的或分布式的,这意味着可以为每个读取操作查阅多个磁盘,从而提高总吞吐量。 在某些配置中也可以改进写操作,因为每个单独的磁盘可能只被要求写入总数据的一部分。

RAID的一些缺点包括增加了管理复杂性,并且通常减少了可用容量。 这意味着相同量的可用空间的额外成本。 当阵列不完全由软件管理时,可能通过使用专门的硬件来产生额外的费用。

集中于没有冗余的性能的阵列配置的另一个缺点是总数据丢失的风险增加。 在这些情况下的一组数据完全依赖于多个存储设备,增加总损失风险。

硬件RAID,软件RAID和硬件辅助软件RAID

可以使用几种不同的技术创建和管理RAID阵列。

硬件RAID

称为RAID控制器或RAID卡的专用硬件可用于独立于操作系统设置和管理RAID。 这是被称为硬件RAID。 真正的硬件RAID控制器将具有用于管理RAID设备的专用处理器。

这有以下几个优点:

  • 性能 :真正的硬件RAID控制器无需占用CPU周期来管理底层磁盘。 这意味着没有附加的存储设备的管理的开销。 高质量的控制器还提供大量的缓存,这对性能有很大的影响。
  • 抽象掉复杂性 :使用RAID控制器的另一个好处是,他们抽象从操作系统的底层磁盘安排。 硬件RAID可以将整个驱动器组显示为单个逻辑存储单元。 操作系统不必理解RAID布局; 它可以只是与数组接口,就像它是一个单一的设备。
  • 情况启动 :因为阵列管理完全超出的软件,这将是可在开机时,允许根文件系统本身很容易被一个RAID阵列上安装。

硬件RAID也有几个显着的缺点。

  • 厂商锁定 :因为在RAID结构是通过在硬件本身专有固件管理,阵列是有些锁定到用于创建它的硬件。 如果RAID控制器死机,在几乎所有情况下,必须使用相同或兼容的型号更换。 某些管理员建议购买一个或多个备份控制器以在第一个有问题的情况下使用。
  • 高性价比 :质量硬件RAID控制器往往是相当昂贵的。

软件RAID

RAID也可以由操作系统本身配置。 因为磁盘的彼此的关系的操作系统,而不是一个硬件设备的固件中定义,这就是所谓的软件RAID。

软件RAID的一些优点:

  • 灵活性 :由于RAID是在操作系统内管理的,它可以容易地从可用存储配置而无需重新配置的硬件,从正在运行的系统。 Linux软件RAID特别灵活,允许许多不同类型的RAID配置。
  • 开源 :软件RAID实现开源的操作系统,如Linux和FreeBSD也是开源的。 RAID实现不隐藏,可以轻松地在其他系统上读取和实现。 例如,在Ubuntu机器上创建的RAID阵列可以很容易地在以后导入到CentOS服务器。 由于软件差异,几乎没有机会失去对您的数据的访问。
  • 无需额外的成本 :软件RAID不需要特殊的硬件,所以它不会增加额外费用到您的服务器或工作站。

软件RAID的一些缺点是:

  • 实施特定的 :尽管软件RAID是不依赖于特定的硬件,它往往被捆绑到特定的软件实现的RAID。 Linux使用mdadm ,而FreeBSD使用基于GEOM的RAID,和Windows有其自己的软件RAID的版本。 虽然在某些情况下可以移植或读取开源实现,但格式本身可能不会与其他软件RAID实现兼容。
  • 性能开销 :从历史上看,软件RAID已经被批评为创建额外的开销。 需要CPU周期和存储器来管理阵列,这可以用于其他目的。 像实现mdadm然而在现代硬件上基本上否定了这些问题。 CPU开销很小,在大多数情况下无关紧要。

硬件辅助软件RAID(假RAID)

第三种类型的RAID称为硬件辅助软件RAID,RAID固件,还是假的RAID,也可用。 通常,这可以在主板本身的RAID功能或便宜的RAID卡中找到。 硬件辅助软件RAID是一种使用控制器或卡上的固件来管理RAID,但使用常规CPU来处理处理的实现。

硬件辅助软件RAID的优点:

  • 多操作系统支持 :由于RAID是在早期启动期间长大,然后传递给操作系统,多个操作系统可以使用相同的数组,它可能无法与软件RAID。

硬件辅助软件RAID的缺点:

  • RAID支持有限 :通常,只有RAID 0或RAID 1是可用的。
  • 需要特定的硬件 :像硬件RAID,硬件辅助软件RAID是依赖于用于创建和管理它的硬件。 这个问题在包含在主板中时更加有问题,因为RAID控制器的故障可能意味着您必须更换整个主板以再次访问数据。
  • 性能开销 :如软件RAID,没有CPU是专门为管理RAID。 处理必须与其余操作系统共享。

大多数管理员远离硬件辅助软件RAID,因为它遇到其他两个实现的缺陷的组合。

术语

熟悉一些常见的概念将有助于您更好地了解RAID。 以下是您可能遇到的一些常见字词:

  • RAID级别 :阵列的RAID级别,是指施加于组件的存储设备之间的关系。 驱动器可以以许多不同的方式配置,导致不同的数据冗余和性能特性。 见一节RAID级别了解更多信息。
  • 条带 :条带化是将所述写入阵列在多个基础磁盘的过程。 这种策略被许多不同的RAID级别(见下一节详细介绍)。 当数据在数组上划分条带时,数据被分割成块,每个块被写入至少一个底层设备。
  • 块大小 :当数据条带化,块大小定义了每个块包含的数据量。 调整块大小以匹配您期望的I / O特性可以帮助影响阵列的相对性能。
  • 奇偶 :奇偶校验是通过计算写入到阵列中的数据块的信息实现的数据完整性机制。 如果驱动器发生故障,奇偶校验信息可用于重建数据。 计算的奇偶校验被放置到与从其计算的数据不同的单独的设备,并且在大多数配置中,分布在可用驱动器上以获得更好的性能和冗余。
  • 降级阵列 :有冗余可能遭受不同类型的驱动器故障而不会丢失数据阵列。 当阵列丢失设备但仍然可操作时,称为处于降级模式。 一旦故障硬件被替换,降级的阵列可以重建到完全可操作的状态,但在中间期间可能会降低性能。
  • 重新同步 :重新同步,或者重新同步,是用于重建降级阵列术语。 根据RAID配置和故障的影响,可通过复制阵列中现有文件中的数据,或通过评估奇偶校验信息计算数据来完成。
  • 嵌套阵列 :RAID阵列的组可以被组合成更大的阵列。 这通常是为了利用两个或更多不同RAID级别的功能。 通常,具有冗余的阵列(如RAID 1或RAID 5)用作创建RAID 0阵列以提高性能的组件。
  • 跨度 :不幸的是,在讨论阵列时,跨度有几个不同的含义。
    • 在某些上下文中,“跨度”可以意指将两个或更多个磁盘端到端地连接在一起并且将它们呈现为一个逻辑设备,而没有性能或冗余改进。 这是使用Linux的处理时也被称为线性排列mdadm实现。
    • “span”还可以指在讨论嵌套RAID级别(如RAID 10)时组合成下一层的较低层阵列。
  • 洗刷 :擦洗,或检查,是读取阵列中的每个块,以确保没有一致性错误的过程。 这有助于确保跨存储设备的数据相同,并防止静默错误可能导致损坏的情况,尤其是在敏感过程(如重建)期间。

RAID级别

阵列的特性由配置和磁盘,被称为RAID级别的关系来确定。 最常见的RAID级别是:

RAID 0

RAID 0通过在其间分割数据来组合两个或更多设备。 如上所述,条带化是一种将数据分成块的技术,然后将块交替写入阵列中的每个磁盘。 其优点在于,由于数据是分布式的,所以每个设备的全部功率可以用于读取和写入。 RAID 0阵列的理论性能简介就是单个磁盘的性能乘以磁盘数量(真实世界性能将不足)。 另一个优点是阵列的可用容量仅仅是所有组成驱动器的组合容量。

虽然这种方法提供了很好的性能,但它也有一些非常重要的缺点。 由于数据在阵列中的每个磁盘之间被分割和分割,单个设备的故障将导致整个阵列,并且所有数据将丢失。 与大多数其他RAID级别不同,RAID 0阵列无法重建,因为组件设备的任何子集都不包含有关重建数据的内容的足够信息。 如果您正在运行RAID 0阵列,则备份变得极为重要,因为整个数据集同样取决于阵列中每个磁盘的可靠性。

RAID 1

RAID 1是在两个或更多设备之间镜像数据的配置。 写入数组的任何内容都放在组中的每个设备上。 这意味着每个设备都有一套完整的可用数据,在设备故障时提供冗余。 在RAID 1阵列中,只要阵列中的单个设备仍正常工作,数据仍然可以访问。 可以通过更换故障驱动器来重建阵列,此时,剩余的设备将用于将数据复制回新设备。

此配置也有一些处罚。 与RAID 0一样,仍然可以通过将单个磁盘的读取速度乘以磁盘数来计算理论读取速度。 然而,对于写操作,理论最大性能将是阵列中最慢的器件的性能。 这是由于整个数据块必须写入阵列中的每个磁盘的事实。 此外,阵列的总容量将是最小盘的容量。 因此,具有两个大小相等的设备的RAID 1阵列将具有单个盘的可用容量。 添加其他磁盘可以增加数据的冗余副本数,但不会增加可用容量。

RAID 5

RAID 5具有前两个RAID级别的一些功能,但具有不同的性能配置文件和不同的缺点。 在RAID 5中,数据以与RAID 0阵列大致相同的方式跨磁盘进行条带化。 然而,对于跨阵列写入的每个数据条,奇偶校验信息,可用于纠错和数据重构的数学计算值将被写入一个磁盘。 接收计算的奇偶校验块而不是数据块的磁盘将与写入的每个条带一起旋转。

这有几个重要的优点。 与其他具有条带化的阵列一样,读取性能也受益于同时从多个磁盘读取的能力。 RAID 5阵列处理阵列中任何一个磁盘的丢失。 如果发生这种情况,奇偶校验块允许完全重建数据。 由于奇偶校验是分布式的(一些不太常见的RAID级别使用专用的奇偶校验驱动器),每个盘具有平衡量的奇偶校验信息。 虽然RAID 1阵列的容量限于单个盘(具有相同数据副本的所有盘)的大小,但是利用RAID 5奇偶校验,可以以仅仅单个盘的价值为代价来实现冗余水平空间。 因此,RAID 5阵列中的四个100G驱动器将产生300G的可用空间(其他100G将被分布式奇偶校验信息占用)。

与其他级别一样,RAID 5有一些显着的缺点,必须加以考虑。 由于实时奇偶校验计算,系统性能可能显着降低。 这可能会影响每个写操作。 如果磁盘发生故障并且阵列进入降级状态,则还会对读取操作造成重大损失(必须从剩余磁盘计算丢失的数据)。 此外,当阵列在更换故障驱动器之后进行修复时,必须读取每个驱动器,并且CPU用于计算缺失的数据以重建缺失的数据。 这可能会压缩剩余的驱动器,有时会导致其他故障,导致所有数据丢失。

RAID 6

RAID 6使用类似于RAID 5的架构,但具有双奇偶校验信息。 这意味着阵列可以承受任何两个磁盘故障。 这是一个显着的优点,因为在发生故障之后在强化重建过程期间附加磁盘故障的可能性增加。 像使用条带化的其他RAID级别一样,读取性能通常很好。 RAID 5的所有其他优点也存在于RAID 6。

对于缺点,RAID 6支付额外的双重奇偶校验与额外的磁盘的容量。 这意味着阵列的总容量是所涉及的驱动器的减去两个驱动器的组合空间。 确定RAID 6的奇偶校验数据的计算比RAID 5更复杂,这可能导致比RAID 5更差的写入性能.RAID 6具有与RAID 5相同的降级问题,但附加磁盘的冗余保护防止在重建操作期间额外故障消除数据的可能性。

RAID 10

RAID 10可以通过几种不同的方式实现,这会影响其一般特性:

  • 嵌套RAID 1 + 0

传统上,RAID 10是指通过首先设置两个或多个RAID 1镜像,然后使用这些镜像作为组件在其间构建条带化RAID 0阵列而创建的嵌套RAID。 这有时现在称为RAID 1 + 0,以更明确地说明这种关系。 由于此设计,需要至少四个磁盘来形成RAID 1 + 0阵列(RAID 0条带横跨由两个设备组成的两个RAID 1阵列)。

RAID 1 + 0阵列具有RAID 0阵列的高性能特性,但是不使用单个磁盘作为条带的每个组件,而是使用镜像阵列,提供冗余。 这种类型的配置可以处理其任何镜像RAID 1集中的磁盘故障,只要每个RAID 1中的磁盘中的至少一个保持可用即可。 整个阵列以不平衡的方式容错,意味着它可以根据它们发生的位置处理不同数量的故障。

因为RAID 1 + 0提供冗余和高性能,如果所需的磁盘数量不受禁止,这通常是一个非常好的选项。

  • mdadm的RAID 10

的Linux的mdadm具有其自己的RAID 10,其承载着的精神和RAID 1 + 0的好处的版本,但改变实际的实现更加灵活并且提供一些附加的优点。

像RAID 1 + 0, mdadm RAID 10允许多个副本和条纹的数据。 然而,设备不是按照镜像对来安排的。 而是由管理员决定要为阵列写入的副本数。 数据被分块并以数个副本的方式写入阵列,确保每个块的副本被写入不同的物理设备。 最终结果是存在相同数量的副本,但是数组不受底层嵌套的约束。

这种RAID 10的概念比嵌套的RAID 1 + 0有一些显着的优势。 因为它不依赖于使用数组作为构造块,所以它可以使用奇数个磁盘,并具有较低的最小磁盘数(只需要3个设备)。 要维护的副本数量也是可配置的。 简化了管理,因为您只需要寻址单个阵列,并且可以分配可用于阵列中任何磁盘的备件,而不仅仅是一个组件阵列。

结论

服务器最合适的RAID级别很大程度上取决于您的预期用例和目标。 硬件施加的总成本和约束也可能在决策过程中产生重大影响。

要了解更多关于使用Linux的mdadm工具来设置RAID阵列,按照指南上在Ubuntu 16.04创建使用mdadm阵列 然后,它会按照我们的导游是个好主意如何管理在Ubuntu 16.04的mdadm阵列来学习如何管理现有阵列。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏