创立于 2008 年 · 数字版 · 2026年6月15日

SMB IT Journal

面向小型企业的信息技术资源

中文
存储

面向磁盘阵列的实用 RAID 选型

围绕 RAID 存储系统的资料浩如烟海,探讨着风险、性能、容量、趋势、方法等诸多主题。尽管这一主题上的成果几乎令人叹为观止,但这些信息可以提炼为少数几种通用、实用的存储方案,足以覆盖几乎所有的使用场景。我在这里的目标,是提供一份便捷的指南,让非存储专业的从业者能够以一种实用的、并且最为重要的是安全的方式来进行 RAID 决策。

就本指南而言,我们假定存储项目所用传统硬盘不超过二十五块(即旋转盘片式硬盘,其正式名称为温彻斯特硬盘)。这些硬盘常见的可以是 SFF(2.5″)或 LFF(3.5″),可以是 SATA 或 SAS,可以是消费级或企业级。我们不会涉及固态硬盘,因为它们具有非常不同的特性,需要专门的指导。大于大约二十五个磁轴的存储系统不应套用标准指导,而应深入研究具体的存储需求,以确保规划得当。

这里的指导是针对 2015 年的标准系统所撰写的。在过去二十年间,RAID 存储的通行方法发生了翻天覆地的变化;虽然预计影响这些决策的关键因素在未来不会变化到足以改变这些建议的程度,但它们很有可能会发生变化。1998 年的优秀 RAID 设计,放到今天就是非常糟糕的 RAID 设计。自那时以来,行业的变化速度已显著放缓,这些建议很可能会在很长一段时间内保持有效,很有可能一直延续到基于磁轴的硬盘存储不再可用、或至少不再流行为止;但和所有事物一样,预测也可能发生巨大变化。

通常我们采用一种被称为“单一大阵列”(One Big Array)的方法。也就是在单个 RAID 阵列上创建所有的系统分区和数据分区。如今,将存储拆分为多个物理阵列的需要或愿望大多已不复存在,只应在非常规的情形下才这样做。只有在经过对存储需求的审慎研究并进行了大量分析的情况下,我们才应当考虑拆分阵列。拆分阵列弊远大于利的可能性要高得多。拿不准时,避免拆分阵列。本指南的目标,是给出通用的经验法则,让任何 IT 专业人员都能构建出安全可靠的存储系统。经验法则无法、也不可能覆盖每一种情形,例外始终存在。但这里的思路是,用那些围绕现代设备、使用场景和需求而设计的、久经考验的方法去覆盖绝大多数情况,同时注意宁可在安全一侧留有余地——当某个选择并非最理想时,它仍然是安全的。这些选择没有一个是丝毫鲁莽的,最坏的情况也不过是过于保守而已。

我们应当考虑的第一种情形,是你的数据无关紧要的情况。这听起来或许是件奇怪的事情,但它是一种非常重要的情形。在很多时候,保存到磁盘上的数据被视为临时性的,无需加以保护。对于可重建的数据,例如渲染的工作空间、中间计算空间或缓存,这种情况很常见——在这些情形中,花钱去保护数据是一种浪费,一旦数据丢失,直接重新生成即可,而无需对其加以保护。这也可能是这样一种情况:停机不成问题,数据是静态或近乎静态的,与其花钱去减少停机时间,我们只需通过备份机制来保护数据即可,这样一旦阵列发生故障,我们只需将阵列完整地恢复即可。在这些情况下,显而易见的选择是 RAID 0。它非常快、非常简单,并提供了最具成本效益的容量。RAID 0 唯一的缺点是它很脆弱,在硬盘发生故障、甚至发生 URE(不可恢复读取错误,它会像桌面硬盘所面临的那样造成数据损坏)的情况下,无法对数据丢失提供任何保护。

应当指出,对“单一大阵列”方法的一个常见例外,出现在使用 RAID 0 来存放数据的系统中。一种很有道理的做法是:用一个小型硬盘阵列专门存放操作系统和应用数据(这些数据在阵列丢失时重新安装起来会很麻烦),并将其置于 RAID 1 上,同时让 RAID 0 数据阵列与之分开。这样一来,恢复可以非常迅速,而无需把整个系统从零开始彻底重建,只需重新生成数据即可。

假定我们已经排除了数据无需保护的那些情况,那么对于其余所有情况,我们将假定数据相当重要,并且我们愿意付出一定代价来保护它。我们将假定,保护活动存储上现有的数据很重要,通常是因为我们想要避免停机,或者是因为我们想要确保数据的完整性——因为磁盘上的数据并非静态,阵列故障同时也将构成数据丢失。基于这一假定,我们继续往下讨论。

如果我们的阵列只有两块磁盘,答案非常简单,我们选择 RAID 1。在这一规模下别无他选,因此没有什么决策可做。从理论上讲,我们本应整体性地规划我们的阵列,而非在确定了硬盘数量之后才去规划;硬盘数量和所选阵列类型应当一并确定,而不是先采购硬盘、再基于那个随意的数量去确定用途。但由于两盘位的机箱如此常见,因此值得作为一种情形提及。

同样地,对于四盘阵列,唯一真正值得考虑的选择是 RAID 10。无需进一步评估。直接选择 RAID 10 并继续即可。

一个尴尬的情形是三盘阵列。我们极少、极少会被限制为只有三块硬盘,因为唯一常见的、限定为三块硬盘的机箱是 Apple Xserve,而它退出市场已有一段时间了,因此需要围绕三磁轴阵列做决策的情况应当极不可能出现。在我们有三块硬盘的情况下,往往最好寻求专业指导,但最常见的做法是:加上第四块硬盘从而选择 RAID 10;或者,如果并不需要超过单块硬盘容量的存储空间,则把全部三块硬盘组成一个三向镜像的 RAID 1。

因此,对于所有其他情况,我们面对的是五到二十五块硬盘。由于我们已经排除了适用 RAID 0 和 RAID 1 的情形,余下所有常见场景便归结为 RAID 6 和 RAID 10,而这两者构成了绝大多数情况。在 RAID 6 和 RAID 10 之间做出选择,将成为我们所面临的最大挑战,因为我们必须纯粹着眼于可靠性、性能和容量这些“软性”需求。

在 RAID 6 和 RAID 10 之间做选择不应该极其困难。RAID 10 对于以性能和安全为优先的情形是理想之选。RAID 10 的写入性能要快得多,并且无论使用何种磁盘类型都很安全(低成本的消费级磁盘即便在大型阵列中也仍然可以极其安全)。RAID 10 能够很好地扩展到极大的规模,远远大于应当依照经验法则去部署的规模!RAID 10 是所有选择中最安全的,它既快又安全。其显而易见的缺点是,同样的磁盘在 RAID 10 下提供的存储容量更少,并且按容量计算成本更高。必须提到的是,RAID 10 只能利用偶数块磁盘,磁盘是成对添加的。

RAID 6 通常既安全又快速,但绝不会像 RAID 10 那样安全或那样快速。RAID 6 在写入性能方面尤其吃亏,因此非常不适合诸如数据库这样的工作负载,也不适合大型虚拟化系统中那种高度混合的负载。RAID 6 具有成本效益,并且相比 RAID 10 高度侧重于可用容量。当预算紧张、或者容量需求压倒性能需求时,RAID 6 是理想之选。RAID 10 与 RAID 6 之间在安全性上的差异很少成为顾虑,除非是在使用消费级磁盘的超大型系统中。RAID 6 会面临一些 RAID 10 不受影响的额外风险(与消费级磁盘相关),这在更大型的 RAID 6 系统中(例如使用消费级磁盘、容量超过大约 40TB 的系统)可能值得对可靠性产生一定的顾虑。

尤其在小型企业领域,大多数系统都会使用 RAID 10,原因很简单:阵列很少需要大于四块硬盘。当阵列更大时,RAID 6 是更常见的选择,这是由于预算多少有些紧张,并且通常对性能的顾虑较低。对于几乎所有的使用场景,RAID 6 和 RAID 10 都是安全而有效的解决方案——当性能或极致可靠性是关键时,RAID 10 占据主导;而当成本和容量是关键时,RAID 6 占据主导。当然,当存储需求高度独特或非常庞大时,例如阵列中硬盘多于二十五个磁轴,请记得借助存储顾问,因为这种场景很容易就会变得极为复杂。存储是一个值得格外审慎的环节,因为依赖于它的东西如此之多,犯错又如此容易,而事后更改它的灵活性又如此之低。

标签hard drive raid winchester

广告

SMB IT Journal — the IT resource for small business