《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%
相关推荐
RobinDevNotes4 天前
Palmier Pro:AI时代的Mac视频编辑器
人工智能·ceph·macos·ai·音视频·视频编辑·mcp
bgy666614 天前
Ceph 分布式存储完整实战指南:架构、部署与全场景运维
分布式·ceph·架构
SLD_Allen14 天前
Ceph配置RDMA和GPUDirect支持的具体技术方案
ceph·rdma·gpudirect
2401_8346369915 天前
Ceph 分布式存储从入门到精通:架构解析 + cephadm 部署 + 存储池管理
ceph
吾皇斯巴达19 天前
ceph index-less桶可以用radosgw-admin bucket rm吗
ceph
运维全栈笔记1 个月前
腾讯云 CVM 搭建 Ceph 集群部署笔记
笔记·ceph·腾讯云
刘某的Cloud1 个月前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
heimeiyingwang1 个月前
【架构实战】Kubernetes存储实战:从EmptyDir到Ceph CSI的持久化存储选型指南
ceph·架构·kubernetes
DLYSB_1 个月前
存储运维实战:基于 Ceph Event 监听与 Python 适配器的分布式存储健康度物理声光响应架构
运维·ceph·python·报警灯