规划部署

本主题提供了在 Alauda Container Platform (ACP) 上部署 Ceph 分布式存储的规划检查清单。它总结了架构选择、安全选项、基础设施规模、网络限制和灾难恢复注意事项,帮助您在实际安装之前确定部署模型。

有关产品背景,请参阅简介架构。有关部署流程,请参阅安装操作指南下的文档。

部署架构

ACP 分布式存储基于 Ceph 和 Rook。在较高层面上,该平台结合了以下层:

  • Ceph 守护进程,例如 MON、MGR、OSD、MDS 和 RGW,用于提供块、文件和对象存储功能
  • Rook 和 CSI 组件,用于自动执行部署、置备、扩容和生命周期管理
  • ACP 平台集成,用于提供存储池、可观测性和运维入口

在部署之前,请确定您的环境应使用本地集群中的存储服务,还是使用外部 Ceph 环境中的存储。

内部和外部部署模型

您可以通过以下方式之一规划 ACP 分布式存储:

部署模式存储服务运行位置存储集群管理方最适用场景主要权衡
内部、共置Ceph 组件运行在同时承载业务工作负载的同一 ACP 工作节点上ACP 平台团队或集群管理员早期阶段环境、裸金属集群,或存储需求尚未完全明确的场景部署更简单,但应用与存储之间更可能发生资源争用
内部、专用节点Ceph 组件运行在同一 ACP 集群内专用的存储节点或基础设施节点上ACP 平台团队或集群管理员存储需求可预测且隔离要求更严格的生产环境运维隔离和规模控制更好,但需要预留更多节点并进行容量规划
外部ACP 使用外部 Ceph 环境中的存储类独立的存储团队、SRE 团队或现有的外部存储所有者大规模环境、多个使用方集群,或已经运行独立 Ceph 集群的组织所有权边界清晰,但需要进行更多跨集群网络、身份验证和依赖项管理

内部部署更易于推出和管理,因为存储服务与使用这些服务的工作负载都在同一 ACP 环境中进行规划。在内部部署中,首要设计选择是让存储与业务工作负载共用节点,还是使用专用节点。当您需要在存储集群与应用集群之间实现更强的隔离,或多个业务集群需要共享同一存储后端时,外部部署更为合适。

主要规划决策点如下:

  • 当您希望更快推出部署,并且能够接受存储工作负载与应用工作负载共享同一工作节点池时,选择共置部署。
  • 当存储需求已知,并且希望实现更清晰的容量控制、故障隔离和维护边界时,选择专用节点部署。
  • 当存储已由其他位置进行管理,或单个外部集群必须为多个 ACP 集群提供服务时,选择外部部署。

节点角色

规划节点放置时,请分离控制平面节点、基础设施节点和工作节点的职责:

  • 控制平面节点负责维护集群管理功能,除非部署模型明确支持,否则不应将其视为通用存储节点。
  • 当您希望将存储平台组件与业务工作负载隔离时,基础设施节点非常适用。
  • 工作节点可以在共置部署中承载存储服务,但这会增加应用与存储守护进程之间的资源争用。

对于生产环境,请为高可用存储服务至少规划三个故障域。在条件允许的情况下,将存储节点分布在不同机架、可用区或主机组中。

安全注意事项

在部署之前,请确认存储设计是否需要传输中加密,并在启用之前验证其运维影响。

传输中加密

ACP 当前支持对 Ceph 分布式存储进行传输中加密。此功能可保护 Ceph 组件与客户端之间的流量,通常围绕 Ceph msgr2 和集群网络模型进行规划。

启用传输中加密之前,请验证:

  • 存储节点和客户端节点上的内核与操作系统支持情况
  • 繁忙存储节点上预期的 CPU 开销
  • 对目标硬件吞吐量和延迟的影响

有关实施细节,请参阅配置传输中加密

基础设施要求

最低配置和推荐配置

在创建集群之前,规划节点数量、存储设备和可用资源。

项目最低配置推荐配置
存储节点3 个节点4 个或更多分布在故障域中的节点
存储设备每个节点 1 个可用存储设备每个节点多个专用设备,类型和大小保持一致
节点分布3 个可用于承载 Ceph 服务的节点3 个故障域,例如机架或可用区
设备用途系统磁盘与存储磁盘分离为 Ceph 数据使用专用裸磁盘,并预留扩展空间

集群至少应包含三个节点,并且每个节点上都有一个可用的存储设备。对于生产环境,请将集群部署在至少三个故障域中,并预留足够的可用资源,以应对重新平衡、修复和未来增长。

资源规划

Ceph 存储服务会持续消耗 CPU、内存和设备容量。请先为存储守护进程规划资源,然后为恢复、重新平衡、升级和后台任务预留额外空间。

作为基线:

  • 高可用集群至少从三个存储节点开始
  • 为 MON、MGR、OSD 以及启用的任何 MDS 或 RGW 服务预留足够的 CPU 和内存
  • 为新存储池、额外设备和集群恢复事件预留增长空间
  • 避免规划一个从部署第一天起就接近饱和的集群

如果设计使用专用存储节点,资源规划会更加可预测。如果存储与业务工作负载共置运行,请预留额外空间,以便在峰值负载和节点故障期间吸收资源争用。

集群总体规划预算

在早期规划阶段,应从集群总体预算入手,而不只是单独考虑各组件的数值。下表用于为四节点高可用集群提供工作负载特定调优前的规划参考:

部署模式为存储预留的总体 CPU为存储预留的总体内存说明
内部、最低基线32 个逻辑 CPU96 GiB仅满足最低部署目标时,四节点规划的入门级基线
内部、标准基线40 个逻辑 CPU96 GiB适用于一般生产规划和未来扩展的更好起点
内部、面向性能的基线60 个逻辑 CPU128 GiB适用于从一开始就需要更高吞吐量或更低延迟的场景
外部使用方集群仅根据连接性和客户端访问需求进行规划仅根据连接性和客户端访问需求进行规划存储守护进程在 ACP 集群外运行,因此 ACP 集群主要需要网络可达性、凭据和客户端容量

这些数值应视为集群级规划目标,而不是精确的调度器预留值。要估算四节点集群的单节点预算,请将总体数值在参与的存储节点之间平均分配。

以下建议适用于早期规划:

组件推荐 CPU推荐内存
MON2 个核心3 GiB
MGR3 个核心4 GiB
MDS3 个核心8 GiB
RGW2 个核心4 GiB
OSD4 个核心8 GiB

这些数值是规划参考,而不是严格的调度保证。实际需求取决于设备数量、启用的服务和工作负载强度。

如何估算集群大小

调整集群规模时,请按以下顺序进行:

  1. 选择部署模式:共置、专用节点或外部部署。
  2. 确定最小节点数量和故障域布局。
  3. 确定是否需要块、文件、对象或混合存储服务。
  4. 从集群总体规划预算开始。
  5. 为额外设备集、恢复、监控和预期增长增加预留空间。

如果同时需要文件和对象服务,或者集群将同时承载繁重的业务工作负载,请将规模设置在最低基线之上,而不要直接按最低基线规划。

Pod 放置

Pod 放置规则会直接影响弹性。请规划集群,使其满足以下条件:

  • 高可用组件可以分布在不同的故障域中
  • 每个故障域都有可访问的存储设备和足够的可分配资源
  • 新设备集或未来扩展仍可以遵循相同的放置模式

实际上,这意味着仅有三个节点是不够的。节点还需要以一种能够避免单个机架、主机组或可用区成为单点故障的方式进行分布。

存储设备规划

选择存储设备时,应尽可能统一设备大小和类型。混合设备会增加性能调优和容量规划的复杂性。

请遵循以下原则:

  • 为操作系统预留一个系统磁盘,并为 Ceph 数据单独配置存储设备
  • 优先使用裸磁盘或专用设备,而不是对共享磁盘进行分区
  • 将每个节点的设备数量控制在可管理范围内,以确保恢复和维护仍然切实可行
  • 跟踪可用容量而不是原始容量,因为复制会降低有效存储空间

容量规划还应包括告警阈值和扩展策略。请在集群接近满容量之前规划扩展。接近满容量运行会增加重新平衡压力,并使恢复更加困难。

有关相关运维指导,请参阅管理存储池添加设备/设备类

容量规划

规划集群容量时,请计算可用容量,而不是原始磁盘容量。在复制的 Ceph 部署中,部分原始存储空间始终会用于数据保护。

请遵循以下规划原则:

  • 让可用容量领先于预期业务增长,而不是等到集群几乎已满后再扩展
  • 为恢复、重新平衡、快照和数据使用量的临时突发预留额外空间
  • 跨节点和故障域以均衡方式扩展存储,避免新增容量造成利用率不均
  • 在向集群添加新工作负载之前,同时检查当前利用率和预计增长情况

以下示例可作为早期规划参考,适用于包含三个节点、每个节点一个设备,并采用 3 副本数据保护策略的集群:

每个节点的设备大小集群原始容量采用 3 副本时的近似可用容量
0.5 TiB1.5 TiB0.5 TiB
2 TiB6 TiB2 TiB
4 TiB12 TiB4 TiB

这些数值仅为示例。可用容量会因实际数据保护策略而异,不应将其视为适用于每种集群设计的一般规则。

在部署后的持续运维中,应在集群达到告警级别之前检查容量。如果增长可预测,请提前扩展,而不要等到接近满容量或完全满容量时再进行扩展。

网络要求

Ceph 对网络质量较为敏感。部署前,请验证以下内容:

  • 集群网络能够为复制和恢复流量提供稳定的吞吐量
  • 故障域之间的延迟在所选部署模型支持的范围内
  • 存储节点与使用方集群之间所需的端口均已开放
  • 任何专用网络设计(例如基于 Multus 的隔离)均已提前确定

如果计划将存储流量与常规应用流量隔离,请在部署前确认网络接口、路由策略和运维职责归属。网络隔离可以提升安全性和性能,但也会增加设计复杂性。

IPv6 支持

ACP 分布式存储规划必须遵循为平台选择的集群网络协议栈。

  • 单栈 IPv6 环境支持 IPv6。
  • 在部署存储之前,必须根据 ACP 集群网络设计验证双栈规划。
  • 存储节点和客户端节点应采用相同的地址族策略,以避免连接和服务发现问题。

如果环境使用 IPv6,请在安装前确认以下内容:

  • ACP 集群网络已配置为支持 IPv6
  • 所有存储节点均可通过所需的 IPv6 路由进行通信
  • 访问存储端点的监控、告警和外部集成也支持 IPv6

应将 IPv6 视为安装时的架构决策。不要假设现有的面向 IPv4 的存储设计可以在之后直接转换,而无需重新验证。

灾难恢复规划

ACP 分布式存储可以根据不同的恢复目标进行规划。请根据恢复点目标(RPO)、恢复时间目标(RTO)和站点拓扑选择模型。

Regional-DR

ACP 支持 Regional-DR,适用于跨地域或跨站点的灾难恢复场景,前提是可以接受异步复制和少量潜在数据丢失。

规划 Regional-DR 时,请提前确认以下事项:

  • 源集群和目标集群具有兼容的存储和网络设计
  • 复制延迟和故障转移预期符合业务恢复目标
  • 受保护的工作负载类型明确,例如块数据、文件系统数据或对象数据

有关实施详情,请参阅灾难恢复

Stretch Cluster

仅当站点之间的延迟受到严格控制,且拓扑专门针对该模式进行设计时,Stretch Cluster 才适用。通常应规划以下内容:

  • 两个数据站点和一个仲裁或仲裁器站点
  • 跨三个区域至少部署五个节点
  • 在创建集群之前手动且明确地设置故障域标签
  • 每个数据站点具有足够的节点,以保持存储服务的可用性
  • 区域间延迟保持在低延迟设计范围内,通常数据站点之间的往返时间(RTT)不超过 10 ms
WARNING

不要将 Stretch Cluster 视为适用于长距离、高延迟、多数据中心部署的通用解决方案。如果站点间延迟无法得到严格控制,请改用专用的灾难恢复架构。

有关 ACP 特定的 Stretch Cluster 部署指导,请参阅创建 Stretch 类型集群

性能规划

应根据工作负载特征而非仅根据原始设备数量来规划性能。在部署之前,请确定:

  • 主要工作负载属于块、文件还是对象类型
  • 工作负载对延迟、吞吐量还是容量更为敏感
  • 热数据、备份流量或分析作业是否会占用集群的大部分资源

此外,请确认是否需要特殊调优或针对特定功能进行设计。例如,对象工作负载可能需要单独规划网关容量,而某些环境可能需要面向缓存或专用集群的设计。

后续步骤

完成规划后,请继续参阅与所选部署模型匹配的部署指南:

内部部署

外部部署

  • 要从其他集群或外部 Ceph 环境使用存储服务,请参阅访问存储服务

相关后续配置