Azure Stack HCI 和 Windows Server 群集上的容错和存储效率
适用于:Azure Stack HCI 版本 22H2 和 21H2;Windows Server 2022、Windows Server 2019
本文介绍可用的复原选项,并概述了规模要求、存储效率以及每个选项的一般优势和权衡。
概述
存储空间直通为数据提供容错,通常称为“复原能力”。 其实现类似于 RAID,但分布在服务器之间并在软件中实现。
与 RAID 一样,存储空间可以采用几种不同的方式来实现此目的,这在容错、存储效率和计算复杂性之间进行不同的权衡。 概括而言,这些方法分为两大类别:“镜像”和“奇偶校验”,后者有时称为“擦除编码”。
镜像
镜像功能通过保存所有数据的多个副本来提供容错。 这最类似于 RAID-1。 数据的分条和放置是复杂的(请参阅 此博客 了解详细信息),但绝对可以说,使用镜像存储的任何数据都是完整地、多次写入的。 每个副本写入不同的物理硬件(位于不同服务器中的不同驱动器),这些副本被认为会独立地出现故障。
可以在两种镜像风格(“双向”和“三向”)之间进行选择。
双向镜像
双向镜像写入所有内容的两个副本。 其存储效率为 50% – 若要写入 1 TB 的数据,至少需要 2 TB 的物理存储容量。 同样,您至少需要两个 硬件“容错域”,在 Storage Spaces Direct 中,这即表示需要两台服务器。
警告
如果你有两个以上的服务器,我们建议改用三向镜像。
三向镜像
三向镜像写入所有内容的三个副本。 其存储效率为 33.3%, 若要写入 1 TB 的数据,至少需要 3 TB 的物理存储容量。 同理,至少需要三个硬件容错域 – 使用存储空间直通时,这意味着需要三台服务器。
三向镜像可以安全承受至少两个硬件(驱动器或服务器)同时出现问题。 例如,如果在突然另一个驱动器或服务器发生故障时重新启动一台服务器,则所有数据将保持安全且持续可访问。
平等
奇偶校验编码(通常称为“擦除编码”)提供使用按位算术的容错,它可能会变得相当复杂。 相比于镜像,此方法的工作原理较为隐晦,但有许多极佳的在线资源(例如,此第三方擦除编码入门指南)可帮助你了解其思路。 假设它提供更好的存储效率,而不会影响容错能力。
存储空间提供两种奇偶校验技术类型:单一奇偶校验和双重奇偶校验,后者在大规模下采用一种称为“本地重建代码”的先进技术。
重要
建议对大多数性能敏感的工作负荷使用镜像。 若要详细了解如何根据工作负荷平衡性能和容量,请参阅 计划卷。
单一奇偶校验
单一奇偶校验只保留一个按位奇偶校验符号,每次只能针对一次故障提供容错。 它最类似于 RAID-5。 若要使用单一奇偶校验,至少需要三个硬件容错域 – 使用存储空间直通时,这意味着需要三台服务器。 由于三向镜像能够以相同的规模提供更高的容错,因此我们不建议使用单一奇偶校验。 但是,如果你坚持使用它,它就在那里,它完全受支持。
警告
我们之所以不建议使用单一奇偶校验,是因为它每次只能安全承受一次硬件故障:如果另一驱动器或服务器突然发生故障时重新启动某一台服务器,则会遇到停机。 如果只有三个服务器,建议使用三向镜像。 如果有四个或更多个,请参阅下一部分。
双重奇偶校验
双重奇偶校验运行 Reed-Solomon 纠错代码,以保留两个按位奇偶校验符号,因此提供与三向镜像相同的容错(即,每次最多可以承受两次故障),但其存储效率更高。 它最类似于 RAID-6。 若要使用双重奇偶校验,至少需要四个硬件故障域——在 Storage Spaces Direct 中,这意味着需要四台服务器。 在该规模下,存储效率为 50% – 若要存储 2 TB 的数据,需要 4 TB 的物理存储容量。
双重奇偶校验的存储效率随着硬件容错域数的增加而提高,可从 50% 提高到 80%。 例如,在 7(使用存储空间直通意味着 7 台服务器)时,效率跃升至 66.7% – 存储 4 TB 的数据,只需 6 TB 的物理存储容量。
请参阅摘要部分,了解每种规模下的双重奇偶校验效率和局部重建代码。
局部重建代码
存储空间引入了一项由微软研究院开发的先进技术,名为“本地重建代码”或 LRC。 规模较大时,双重奇偶校验会使用 LRC 将其编码/解码拆分成一些较小的组,以降低进行写入或从故障中恢复所需的开销。
使用硬盘驱动器(HDD),组大小为四个符号:使用固态硬盘(SSD),组大小为六个符号。 例如,下面是使用硬盘驱动器和 12 个硬件故障域(即 12 台服务器)的布局示意图——包含两组四个数据符号。 它实现了 72.7% 的存储效率。
我们推荐这篇由 Claus Joergensen 编写的深入但非常易读的操作演练本地重建代码如何处理各种失败方案,并且它们为什么具有吸引力。
镜像加速奇偶校验
存储空间直通卷可以是部分镜像和部分奇偶校验。 写入首先在镜像部分中进行,稍后逐渐移到奇偶校验部分。 实际上,这是使用镜像来加速擦除编码。
若要混合三向镜像和双奇偶校验,至少需要四个容错域,这意味着四个服务器。
镜像加速奇偶校验的存储效率介于全镜像或全奇偶校验的效率之间,并取决于所选的比例。
重要
建议对大多数性能敏感的工作负荷使用镜像。 若要详细了解如何根据工作负荷平衡性能和容量,请参阅 计划卷。
总结
本部分总结了存储空间直通中可用的复原类型、使用每种类型的最小规模要求、每种类型可以容忍的故障数以及相应的存储效率。
复原类型
弹性 | 故障容忍度 | 存储效率 |
---|---|---|
双向镜像 | 1 | 50.0% |
三向镜像 | 2 | 33.3% |
双重奇偶校验 | 2 | 50.0% - 80.0% |
Mixed | 2 | 33.3% - 80.0% |
最低规模要求
弹性 | 所需的最小容错域 |
---|---|
双向镜像 | 2 |
三向镜像 | 3 |
双重奇偶校验 | 4 |
Mixed | 4 |
提示
除非使用机箱或机架容错,否则容错域数目是指服务器数目。 只要满足存储空间直通的最低要求,每个服务器中的驱动器数不会影响可以使用的复原类型。
混合部署的双重奇偶校验效率
下表显示了混合部署中各个层级的双重校验和本地恢复代码的存储效率,其中包含硬盘驱动器(HDD)和固态硬盘(SSD)。
容错域 | 布局 | 效率 |
---|---|---|
2 | – | – |
3 | – | – |
4 | RS 2+2 | 50.0% |
5 | RS 2+2 | 50.0% |
6 | RS 2+2 | 50.0% |
7 | RS 4+2 | 66.7% |
8 | RS 4+2 | 66.7% |
9 | RS 4+2 | 66.7% |
10 | RS 4+2 | 66.7% |
11 | RS 4+2 | 66.7% |
12 | LRC (8, 2, 1) | 72.7% |
13 | LRC (8, 2, 1) | 72.7% |
14 | LRC (8, 2, 1) | 72.7% |
15 | LRC (8, 2, 1) | 72.7% |
16 | LRC (8, 2, 1) | 72.7% |
全闪存部署的双重奇偶校验效率
下表显示了全闪存部署在每个规模下双重奇偶校验和局部重建代码的存储效率,这仅包含固态硬盘 (SSD)。 奇偶校验布局可以使用较大的组大小,并在全闪存配置中实现更好的存储效率。
容错域 | 布局 | 效率 |
---|---|---|
2 | – | – |
3 | – | – |
4 | RS 2+2 | 50.0% |
5 | RS 2+2 | 50.0% |
6 | RS 2+2 | 50.0% |
7 | RS 4+2 | 66.7% |
8 | RS 4+2 | 66.7% |
9 | RS 6+2 | 75.0% |
10 | RS 6+2 | 75.0% |
11 | RS 6+2 | 75.0% |
12 | RS 6+2 | 75.0% |
13 | RS 6+2 | 75.0% |
14 | RS 6+2 | 75.0% |
15 | RS 6+2 | 75.0% |
16 | LRC (12, 2, 1) | 80.0% |
例子
除非只有两个服务器,否则我们建议使用三向镜像和/或双奇偶校验,因为它们提供更好的容错能力。 具体而言,它们可以确保即使两个失效域受同时故障影响时(在使用存储空间直通的情况下,指的是两台服务器),所有数据仍然能够安全且持续可访问。
所有组件保持联机的示例
这六个示例演示了三向镜像和/或双重奇偶校验可以承受的故障。
- 1. 丢失的一个驱动器(包括缓存驱动器)
- 2. 一台服务器丢失
- 3. 一台服务器和一个驱动器丢失
- 4. 不同服务器中丢失的两个驱动器
- 5. 两个以上的驱动器丢失,但最多两台服务器受影响
- 6. 两台服务器丢失
...在每种情况下,所有卷册都保持在线状态。 (确保群集保持法定人数。)
所有组件脱机的示例
在整个生命周期内,Storage Spaces 可以承受任意数量的故障,因为每次故障后,如果有足够的时间,它都会完全复原。 但是,在任意给定时刻,最多只能有两个容错域能够受到故障影响而安全无虞。 下面是三向镜像和/或双重奇偶校验不能承受的故障示例。
- 7. 三台或更多服务器中的驱动器同时丢失
- 8. 一次丢失三台或更多台服务器
用法
查看创建卷。
后续步骤
有关本文中提到的主题的进一步阅读,请参阅以下内容: