《Kubernetes Rook-Ceph 运维手册 v1.0(生产版)》- 第八章:Rook-Ceph 性能优化与生产调优

本章目标:

  • 提升 Kubernetes 使用 Ceph 的 IOPS、吞吐和稳定性
  • 优化 GPU/AI 训练、数据库、CI/CD、大规模 PVC 场景
  • 建立生产级 Ceph 硬件、网络、OSD、Pool、CSI 参数基线

8.1 Ceph 性能优化总体模型

Ceph性能由以下链路决定:

复制代码
                 Kubernetes Pod

                       |
                       |
                 CSI Driver

                       |
                       |
                  RBD / CephFS

                       |
                       |
                  Ceph Pool

                       |
                       |
                 PG Placement

                       |
                       |
                    OSD

                       |
        +--------------+--------------+
        |                             |
      CPU                           Disk

        |
      Network

任何一层瓶颈都会影响整体性能


8.2 生产硬件选型建议

8.2.1 存储节点推荐配置

组件 推荐
CPU 16-32 Core
内存 128GB+
系统盘 SSD RAID1
OSD盘 NVMe SSD / HDD
网络 25GbE+
HBA 直通模式

8.2.2 不推荐架构

❌ RAID控制器

例如:

复制代码
SSD
 |
RAID Controller
 |
Ceph OSD

原因:

  • Ceph自身提供副本
  • RAID降低性能
  • 故障定位困难

推荐:

复制代码
SSD
 |
HBA Passthrough
 |
Ceph OSD

8.3 存储介质选择

8.3.1 HDD集群

适合:

  • 文件存储
  • 备份
  • 大容量对象

特点:

复制代码
容量高
IOPS低

推荐:

复制代码
4TB-18TB HDD
+
SSD DB/WAL

8.3.2 SSD集群

适合:

  • 数据库
  • DevOps
  • Kubernetes PVC

推荐:

复制代码
NVMe
+
BlueStore

8.3.3 NVMe高性能集群

适合:

  • AI训练
  • GPU计算
  • 大模型数据集

推荐:

复制代码
PCIe Gen4/Gen5 NVMe

100K+ IOPS

8.4 BlueStore优化

Ceph默认:

复制代码
BlueStore

架构:

复制代码
             BlueStore

                |
        +-------+-------+

        DB/WAL       DATA

        RocksDB      Object

8.5 DB/WAL规划

HDD OSD

推荐:

复制代码
HDD:
  DATA

SSD:
  DB/WAL

比例:

类型 DB
HDD 1%-4%
SSD 无需单独

示例

18TB HDD:

复制代码
DATA:
18TB

DB:
100GB SSD

WAL:
20GB SSD

8.6 Rook配置DB/WAL

CephCluster:

复制代码
storage:
  useAllNodes: true

  useAllDevices: false

  devices:
  - name: /dev/sdb


  config:
    osdsPerDevice: "1"

使用独立DB设备:

复制代码
metadataDevice: nvme0n1

例如:

复制代码
storage:
  nodes:
  - name: node01
    devices:
    - name: sdb

    config:
      osdsPerDevice: "1"

8.7 Ceph网络优化

Ceph对网络极其敏感

生产建议:

双网络

复制代码
             Kubernetes


                 |
        +--------+--------+

        Public Network

        业务访问


        Cluster Network

        OSD复制

8.8 网络规划

小型集群

复制代码
10GbE

最低要求


生产环境

推荐:

复制代码
25GbE

AI/GPU集群

推荐:

复制代码
100GbE

8.9 Jumbo Frame优化

检查:

复制代码
ip link

设置:

复制代码
ip link set ens1 mtu 9000

验证:

复制代码
ping -M do -s 8972 IP

8.10 Ceph网络参数

查看:

复制代码
ceph config dump

调整:

复制代码
ceph config set global ms_bind_ipv4 true

开启:

复制代码
ceph config set global ms_tcp_read_timeout 900

8.11 CPU优化

Ceph OSD非常吃CPU

查看:

复制代码
top

重点:

复制代码
ceph-osd

建议:

每个OSD:

磁盘 CPU
HDD 1-2 Core
SSD 2-4 Core
NVMe 4+ Core

8.12 内存优化

OSD缓存:

查看:

复制代码
ceph config get osd.* osd_memory_target

默认:

复制代码
4GB

调整:

例如:

复制代码
ceph config set osd.* \
osd_memory_target 8589934592

8GB


8.13 PG数量优化

PG过少:

复制代码
性能不足

PG过多:

复制代码
OSD压力大

查看:

复制代码
ceph osd pool stats

计算:

复制代码
PG =
(OSD数量 * 100)
/
副本数
/
Pool数量

示例:

复制代码
12 OSD

副本3

Pool 3


1200/3/3

≈133 PG

推荐:

复制代码
128
256
512

8.14 Pool参数优化

查看:

复制代码
ceph osd pool get rbd all

设置副本:

生产:

复制代码
ceph osd pool set rbd size 3

最小:

复制代码
ceph osd pool set rbd min_size 2

8.15 RBD性能优化

StorageClass参数

示例:

复制代码
parameters:

  imageFeatures:
    - layering
    - exclusive-lock
    - object-map
    - fast-diff

开启:

复制代码
fast-diff

提升:

  • 快照
  • 克隆
  • 备份

8.16 RBD Cache优化

查看:

复制代码
ceph config dump | grep cache

客户端:

复制代码
rbd_cache=true

适合:

  • VM
  • 数据库

不建议:

  • 强一致数据库写入

8.17 CephFS优化

MDS数量

生产:

复制代码
active MDS >=2

查看:

复制代码
ceph fs status

增加:

复制代码
ceph fs set cephfs max_mds 2

8.18 Kubernetes CSI优化

RBD CSI参数

推荐:

复制代码
mountOptions:
- discard

支持:

TRIM


8.19 SSD TRIM优化

节点:

复制代码
fstrim -av

定时:

复制代码
systemctl enable fstrim.timer

8.20 Kubernetes调度优化

存储节点标签

复制代码
kubectl label node node01 \
storage=true

Ceph节点:

复制代码
placement:

  nodeAffinity:

    requiredDuringSchedulingIgnoredDuringExecution:

      nodeSelectorTerms:

      - matchExpressions:

        - key: storage

          operator: In

          values:

          - "true"

8.21 GPU训练场景优化

典型:

复制代码
GPU Node

 |
 |
PVC

 |
 |
Ceph RBD

 |
 |
NVMe OSD

推荐:

数据集

CephFS

原因:

  • 多Pod共享

Checkpoint

RBD

原因:

  • 高随机IO

模型仓库

RGW

原因:

  • S3兼容

8.22 数据库场景优化

PostgreSQL/MySQL

推荐:

复制代码
RBD

独占Volume

参数:

复制代码
exclusive-lock
fast-diff
object-map

避免:

复制代码
CephFS

原因:

数据库随机写性能下降


8.23 Jenkins/GitLab场景优化

CI/CD特点:

大量:

  • 小文件
  • clone
  • artifact

推荐:

复制代码
SSD CephFS

优化:

复制代码
ceph fs set cephfs max_mds 2

8.24 大规模集群容量规划

单集群建议

规模 OSD
小 <50
中 50-200
大 200-1000

8.25 Ceph性能测试

RBD测试

安装:

复制代码
apt install fio

测试:

复制代码
fio \
--name=rbd-test \
--rw=randread \
--bs=4k \
--iodepth=32 \
--numjobs=4

指标:

关注:

复制代码
IOPS
Latency
Bandwidth

8.26 常见性能问题

问题1:IO延迟高

检查:

复制代码
ceph osd perf

原因:

  • 磁盘慢
  • 网络
  • PG过多

问题2:CPU高

检查:

复制代码
top

原因:

  • OSD数量过多
  • 加密
  • 压缩

问题3:恢复慢

调整:

复制代码
ceph config set osd \
osd_max_backfills 3

和:

复制代码
ceph config set osd \
osd_recovery_max_active 5

8.27 生产推荐基线

通用K8s集群

复制代码
CPU:
32 Core

Memory:
256GB

Network:
25GbE

OSD:
NVMe

Replica:
3

PG:
128-512

MON:
3

MGR:
2

8.28 性能优化检查清单

项目 完成
HBA直通 □
关闭RAID缓存 □
25G网络 □
Jumbo Frame □
DB/WAL分离 □
PG合理 □
SSD Trim □
CSI优化 □
Prometheus监控 □
容量<80% □
相关推荐
逐流人7 天前
Ceph对象存储与文件系统存储管理:从RADOS网关、S3与Swift到CephFS快照同步
linux·运维·ceph·云原生·云计算·swift·rados
逐流人7 天前
Ceph分布式存储集群配置与池管理:从配置优先级到PG、复本池与纠删码池
运维·分布式·ceph·云原生·云计算·rados
月落汀兰7 天前
建池后类型不可修改!深度拆解 Ceph PG 放置组,副本 / 纠删码池选型,快照与命名空间避坑
运维·ceph
.冰块.8 天前
Ceph 分布式存储实战(二):存储池管理与 cephx 认证授权
分布式·ceph·rados·纠删码·复本池·cephx认证与用户权限
.冰块.8 天前
Ceph 分布式存储实战(一):架构入门与 cephadm 集群部署
分布式·ceph·架构·cephadm
fengkai45459 天前
十、Ceph 分布式存储5-8
运维·ceph·容器
SeanQhl18 天前
基于华为云ECS平台的分布式存储系统Ceph-部署指导
ceph·分布式存储·华为云ecs
あ-20 天前
《Kubernetes Rook-Ceph 运维手册 v1.0(生产版)》第十八章:Rook-Ceph 企业级备份、容灾与数据保护体系
ceph
あ-20 天前
《Kubernetes Rook-Ceph 运维手册 v1.0(生产版)》- 第六章:Kubernetes Rook-Ceph 运维手册 v1.0(生产版)
ceph
あ-20 天前
《Kubernetes Rook-Ceph 运维手册 v1.0(生产版)》- 第十二章:Rook-Ceph 监控、告警与可观测性体系ds
ceph