配置传输加密
本主题介绍如何基于 msgr2 为 ACP 分布式存储启用或禁用传输加密。
目录
概述限制与前提条件为新集群启用传输加密部署后启用传输加密步骤 1. 确认节点内核版本步骤 2. 在 CephCluster 中启用加密步骤 3. 等待配置生效禁用传输加密在现有集群中禁用加密验证检查 CephCluster 设置检查客户端兼容性检查工作负载挂载故障排查建议性能影响概述
Ceph msgr2 是 Ceph messenger 协议的第二代。它支持两种连接模式:
crc:对等端身份验证并校验数据完整性,但不加密负载数据。secure:对传输流量进行加密,并提供加密完整性保护。
在 ACP 分布式存储中,传输加密由 CephCluster.spec.network.connections.encryption.enabled 控制。
限制与前提条件
启用此功能前,请注意以下限制:
-
ACP 版本
- v4.3.0 及以后版本。
-
操作系统和内核(ceph 守护进程和客户端节点)
- 内核版本
5.11及以后。 Ubuntu 22.04及以后。
- 内核版本
传输加密会增加 CPU 开销,可能降低吞吐量或增加延迟,尤其是在繁忙的存储节点或低频 CPU 上。请先在预发布环境评估影响。
为新集群启用传输加密
如果存储集群尚未创建,请在创建前在 CephCluster 清单中添加以下字段:
集群创建完成后,验证:
- CephFS PVC 仍能成功挂载
- 所有节点上的 RBD 和 CephFS 工作负载使用支持的内核版本
部署后启用传输加密
如果集群已运行,仅修改加密开关是风险最低的方式。
步骤 1. 确认节点内核版本
在所有挂载 Ceph 卷的 Kubernetes 节点上运行以下命令,确认内核版本满足前提条件:
如果部分工作节点不满足要求,升级这些节点之前请勿在生产集群启用传输加密。
步骤 2. 在 CephCluster 中启用加密
步骤 3. 等待配置生效
配置更新后:
- 检查相关 Pod 是否正常重启
- 重新创建一个挂载 CephFS 或 RBD PVC 的测试 Pod
- 确认 I/O 正常工作
禁用传输加密
在现有集群中禁用加密
仅禁用传输加密,同时保持 msgr2 可用:
验证
启用功能后,从 Kubernetes 和 Ceph 两方面验证集群状态。
检查 CephCluster 设置
确认输出包含:
检查客户端兼容性
启用传输加密后:
- 使用
msgr2 secure的客户端应能正常连接 - 配置为非加密模式(如
legacy或crc)的客户端将无法连接
检查工作负载挂载
创建或重启一个挂载以下 PVC 的测试工作负载:
- CephFS PVC
- RBD PVC
然后验证:
- Pod 成功启动
- 文件系统可读写
- CSI 或工作负载日志中无挂载相关错误
故障排查建议
启用加密导致挂载失败或服务中断时,优先检查:
- 节点内核版本不满足要求。
- 部分节点或外部客户端不支持
msgr2 secure,或仍配置为ms_mode=legacy或ms_mode=crc。 - 网络策略、防火墙或安全组未放通端口
3300。 - 启用加密后 CPU 资源不足。
若变更影响生产工作负载,先禁用加密,再排查兼容性和性能瓶颈。
性能影响
ACP 无法给出 msgr2 secure 开销的固定百分比,实际影响取决于 CPU 型号、是否支持 AES 加速、网络带宽、I/O 大小,以及工作负载是 CPU 绑定还是网络绑定。
实际情况:
- 延迟通常略有增加,且在小 I/O 或延迟敏感工作负载上更明显
- 客户端和 Ceph 守护进程的 CPU 使用率通常都会增加,因为流量必须加密并保证完整性
- 对高吞吐量工作负载、较慢 CPU 或无强 AES 加速环境影响更明显
作为运维估算,使用带 AES-NI 的现代 x86 CPU 时,合理的初始预期为:
- 平均延迟增加约
5%到15% - 处理重 I/O 的存储和客户端节点 CPU 使用率增加约
10%到30%
以上数值为工程估算,非产品保证。生产环境启用加密前,请在预发布环境对代表性工作负载进行基准测试,至少对比以下指标:
- 平均和 P99 读写延迟
- 客户端节点 CPU 使用率
- OSD 节点 CPU 使用率
- 吞吐量和 IOPS