本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

副本扩展重建

从 v1.11.0 开始,SUSE Storage 支持 副本扩展重建,允许重建副本同时从多个健康副本获取快照数据,以提高重建性能。

简介

传统上,SUSE Storage 通过从单个健康副本获取所有快照数据来重建失败的副本。通过副本扩展重建,重建副本可以同时从多个源副本获取快照数据,从而可能减少重建时间。

当卷包含分散的小数据块和快照中的空洞时,此功能特别有利,因为它允许更好地利用可用的网络带宽和并行处理。

工作原理

启用副本扩展重建时:

  1. 多个健康副本启动同步服务器作为快照数据源。

  2. 重建副本同时从不同源副本的不同快照中获取快照数据。

  3. 并发源副本的数量由 replica-rebuild-concurrent-sync-limit 设置控制。

设置

全局设置:replica-rebuild-concurrent-sync-limit

此设置控制可以同时向单个重建副本同步快照数据的最大健康副本数量。

  • 默认1(副本扩展重建已禁用)

  • 范围15

当设置为 1 时,只有一个源副本一次同步到重建副本(传统行为)。大于 1 的值启用副本扩展重建,允许多个源副本(最多到配置的限制)同时向重建副本同步快照数据。

有关更多信息,请参见 设置参考

每卷覆盖

您可以为单个卷覆盖全局 replica-rebuild-concurrent-sync-limit 设置:

  • 使用 SUSE Storage 界面:编辑卷并修改 Rebuild Concurrent Sync Limit 字段。

  • 使用 kubectl:运行 kubectl -n longhorn-system edit volume [volume-name] 并修改 spec.rebuildConcurrentSyncLimit 字段。

当每个卷的设置为 0 时,该卷使用全局设置。否则,每个卷的设置将优先考虑。

性能方面的考虑

副本扩展重建何时有帮助

副本扩展重建在以下场景中提供显著的性能提升:

  • 具有分散小数据块的卷:当快照由间歇性的小数据块(例如,4K 块)和空洞组成时,副本扩展重建可以通过利用多个源副本显著减少重建时间。

  • 网络带宽可用性:当传统重建期间网络带宽未被充分利用时,增加更多源副本可以更好地利用可用带宽。

最佳实践

  1. 从默认值开始:`1` 的默认值(禁用副本扩展重建)是保守的,适合大多数环境。

  2. 增加之前进行测试:在增加限制之前,请在非生产环境中进行测试,以了解对特定工作负载的资源影响。

  3. 考虑您的工作负载:

    • 对于具有分散小数据块的卷:考虑启用副本扩展重建(设置为 2 或更高)。

    • 对于具有连续大数据块的卷:性能提升可能很小。

  4. 监控资源使用情况:当启用副本扩展重建时,请监控托管源副本和目标副本的节点的处理器使用情况,以确保有足够的资源可用。

  5. 平衡性能和资源:更高的并发同步限制可以提高重建速度,但会消耗更多的处理器资源。根据集群的资源可用性和重建紧迫性考虑权衡。

局限性

  • 并发源副本的最大数量限制为 5

  • 默认情况下禁用副本扩展重建,以避免意外的高资源消耗。

  • 实际的性能提升取决于包括磁盘 I/O 性能、网络带宽、数据分布模式和可用 CPU 资源等因素。

参考资料

有关相关重建功能的更多信息,请参见 Longhorn #11331.