|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
|
这是尚未发布的文档。 SUSE® Storage 1.12 (Dev). |
最佳实践
以下设置建议用于生产环境。
最低推荐硬件
-
3 个节点
-
每个节点 4 个 vCPU
-
每个节点 4 GiB
-
节点上使用 SSD/NVMe 或类似性能的块设备进行存储(推荐)
-
节点上使用 HDD/旋转磁盘或类似性能的块设备进行存储(已验证)
-
每个卷最大 500/250 IOPS(1 MiB I/O)
-
每个卷最大 500/250 吞吐量(MiB/s)
-
|
虽然 SUSE Storage 可以使用 HDD(旋转磁盘)作为存储,但重要的是要理解 延迟 在卷稳定性中比 IOPS 或吞吐量更为重要。这是因为 HDD 是机械的,依赖于旋转的盘片和移动的读写头来访问数据。这种物理移动引入了固有的延迟(寻道时间和旋转延迟),导致与使用闪存且没有活动部件的 SSD 或 NVMe 驱动器相比,延迟更高。这可能直接导致不稳定,特别是在运行多个输入/输出密集型任务时,例如:
由于使用 HDD 而导致的延迟增加,加上其他输入/输出工作负载,可能导致 卷不稳定。因此,我们建议使用 SSD 或 NVMe 驱动器以获得更好的性能和稳定性,特别是对于生产工作负载。 提到的 IOPS 和吞吐量(每个卷最大 500/250 IOPS 和每个卷最大 500/250 吞吐量)仅作为基于测试设置的一般参考,但 不应视为硬性要求。延迟,而不仅仅是吞吐量,是确保系统稳定性最重要的因素。 |
操作系统
|
CentOS Linux 已从下面的验证操作系统列表中移除,因为它已被停止支持,转而支持 CentOS Stream [ref],这是一种滚动发布的 Linux 发行套件。针对基于 RHEL 的下游开源发行套件的测试集中在企业级版本上,例如 Rocky Linux 和 Oracle Linux。 |
在 v1.12.0 版本测试期间,以下 Linux 操作系统发行版和版本已被验证。然而,这并不意味着 SUSE Storage 仅支持这些发行套件。SUSE Storage 应该能够在任何运行在 Linux 节点上的经过认证的 Kubernetes 集群上良好运行,支持广泛的通用操作系统,以及经过验证的容器优化操作系统,如 SLE Micro。
| 否. | OS | 版本 |
|---|---|---|
1. |
Ubuntu |
24.04 |
2. |
SUSE Linux Enterprise Server |
16 |
3. |
SUSE Linux Enterprise Micro |
6.1 |
4. |
Red Hat Enterprise Linux |
10.1 |
SUSE Storage 在很大程度上依赖于内核功能,并在某些内核版本上表现更好。以下活动,特别是,受益于使用特定的内核版本。
-
优化或改进文件系统:使用版本
v5.8或更高版本的内核。有关详细信息,请参见 问题 #2507。 -
启用 冻结文件系统以进行快照 设置:使用版本
5.17或更高版本的内核,以确保在文件系统冻结期间卷崩溃不会锁定节点。 -
启用 V2 数据引擎:使用版本
5.19或更高版本的内核以确保
下面的列表包含用户应避免使用的已知损坏的内核版本:
| 否. | 版本 | 发行套件 | 附加上下文 |
|---|---|---|---|
1. |
6.5.6 |
原生内核 |
|
2. |
5.15.0-94 |
Ubuntu |
|
3. |
6.5.0-21 |
Ubuntu |
|
4. |
6.5.0-1014-aws |
Ubuntu |
Kubernetes
Kubernetes 版本
在升级 SUSE Storage 之前,请确保您的集群正在运行 Kubernetes v1.21 或更高版本。
我们建议在以下版本之一上运行您的 Kubernetes 集群。这些版本是在 SUSE Storage 发布之前的活跃支持版本,并已与 SUSE Storage v1.12.0 进行了测试。
| 发布 | 已发布 | 终止服务 |
|---|---|---|
1.35 |
2025 年 12 月 17 日 |
2027 年 2 月 28 日 |
1.34 |
2025 年 8 月 27 日 |
2026 年 10 月 27 日 |
1.33 |
2025 年 4 月 23 日 |
2026 年 6 月 28 日 |
1.32 |
2024 年 12 月 11 日 |
2026 年 2 月 28 日 |
节点和磁盘设置
我们建议以下节点和磁盘设置。
最小可用存储和过度配置
如果需要使用根磁盘,请使用默认的`minimal available storage percentage`设置,即25%,并将`overprovisioning percentage`设置为100%,以最小化磁盘压力的可能性。
如果您使用专用磁盘用于SUSE Storage,可以将设置`minimal available storage percentage`降低到10%。
对于过度配置百分比,取决于您的卷平均使用了多少空间。例如,如果您的工作负载仅使用可用卷大小的一半,则可以将过度配置百分比设置为`200`,这意味着SUSE Storage认为磁盘的可调度大小是其完整大小减去保留空间的两倍。
磁盘空间管理
由于SUSE Storage目前不支持不同磁盘之间的分片,我们建议使用 LVM将所有磁盘聚合到SUSE Storage的单个分区中,以便将来可以轻松扩展。
设置额外磁盘
任何额外的磁盘必须写入`/etc/fstab`文件,以便在机器重启后自动挂载。
请勿为额外磁盘使用软链接。使用`mount --bind`而不是`ln -s`,并确保它在`fstab`文件中。有关详细信息,请参见有关多个磁盘支持的章节。
卷性能优化
在配置工作负载之前,请确保您已设置以下基本要求以实现最佳卷性能。
-
SATA/NVMe SSD 或具有类似性能的磁盘驱动器
-
节点之间的 10 Gbps 网络带宽
-
为系统管理和用户部署的 SUSE Storage 组件分配专用优先级类别。默认情况下,SUSE Storage 安装默认优先级类别
longhorn-critical。
以下部分概述了生产环境的其他建议。
I/O 性能
-
存储网络:使用 专用存储网络 来提高 I/O 性能和稳定性。
-
SUSE Storage 磁盘:使用 专用磁盘 进行 SUSE Storage 存储,而不是使用根磁盘。
-
副本数量:将 默认副本数量 设置为 "2" 以实现数据可用性,同时更好地利用磁盘空间或减少对系统性能的影响。这一做法对数据密集型应用程序特别有利。
-
存储标签:使用 存储标签 为数据密集型应用程序定义存储分层。例如,仅高性能磁盘可以用于存储对性能敏感的数据。
-
数据局部性:将
best-effort用作 SUSE Storage StorageClasses 的默认 数据局部性。对于支持数据复制的应用(例如,分布式数据库),您可以使用
strict-local选项以确保每个卷仅创建一个副本。此做法可以防止与卷复制相关的额外磁盘空间使用和 I/O 性能开销。对于数据密集型应用程序,您可以使用Pod调度功能,例如节点选择器或污点容忍。这些功能允许您将工作负载调度到具有存储标签的特定节点,并与一个副本一起使用。
空间效率
-
定期快照:定期清理系统生成的快照,仅保留对您的实现有意义的快照数量。
对于具有复制能力的应用程序,定期删除所有类型的快照。
-
定期文件系统修剪:定期修剪卷内的文件系统以回收磁盘空间。
-
快照空间管理:配置全局和卷特定设置以防止意外的磁盘空间耗尽。
部署工作负载
如果您使用`ext4`作为卷的文件系统,我们建议为工作负载添加活跃性检查,以帮助自动恢复因网络中断、节点重启或Docker重启造成的中断。有关详细信息,请参见本节。
卷维护
强烈建议使用SUSE Storage的内置备份功能。您可以将备份保存到对象存储(如 S3)或 NFS 服务器。保存到对象存储是更可取的,因为它通常提供更好的可靠性。另一个优点是您不需要挂载和卸载目标,这可能会使故障转移和升级变得复杂。
对于每个卷,至少安排一次定期备份。如果您必须在没有备份存储的情况下在生产环境中运行 SUSE Storage,则至少为每个卷安排一次定期快照。
SUSE Storage 在重建副本时自动创建快照。定期快照或备份也可以自动清理系统生成的快照。
V1 数据引擎
当启用 V1 数据引擎时,Guaranteed Instance Manager CPU 设置允许您为每个实例管理器 Pod 在每个节点上保留一定比例的可分配处理器资源。默认值为 12。
通过更新该节点的实例管理器处理器请求字段,为特定节点上的实例管理器 Pod 设置特定的毫处理器值。
|
该字段会覆盖指定节点的上述设置。 |
有关更多详细信息,请参阅 保证实例管理器处理器。
StorageClass
避免修改名为 longhorn 的默认存储类。更改其参数可能会在未来的升级中导致问题。要更改存储类中设置的参数,您可以通过参考 存储类示例 创建一个新的存储类。