现有Ceph集群已配置了replicated_rule和存储池,需要在此基础上进行IO优化ssd+hdd
根据您提供的背景(已存在规则集 replicated_rule 和数据池),以下是针对 Quincy 版本 SSD+HDD 混合集群的优化实施方案,重点在零架构变更基础上实现性能提升:
一、配置优化(不改变现有存储结构)
- SSD OSD 专属参数优化
在现有 OSD 配置中增加 SSD 特定参数(不影响 HDD OSD):
/etc/ceph/ceph.conf 新增
[osd.${SSD_OSD_ID}] # 只应用到SSD OSD
bluestore_prefer_deferred_size_ssd = 32768 # 32KB以下写直通SSD
bluestore_rocksdb_options = max_write_buffer_number=16,write_buffer_size=256MB
bluestore_cache_autotune = aggressive
- 全局 I/O 调度优化
/etc/ceph/ceph.conf (全局生效)
osd_op_num_threads_per_shard = 6 # 默认是2 (提升并发)
osd_op_num_shards = 16 # 默认是10 (增加分片)
osd_recovery_max_active = 10 # 限制恢复带宽占用
osd_max_backfills = 4
- 客户端侧加速
所有客户端配置文件增加
client_oc = true # Quincy新特性:启用客户端缓存
client_oc_max_objects = 10000
client_oc_max_bytes = 1073741824 # 1GB本地缓存
二、智能分层策略(不新建池)
- 利用现有池实现热区识别
在现有数据池启用热区统计
ceph osd pool set ${YOUR_POOL_NAME} hit_set_type bloom
ceph osd pool set ${YOUR_POOL_NAME} hit_set_count 4
ceph osd pool set ${YOUR_POOL_NAME} hit_set_period 600
查看热点对象
rados -p ${YOUR_POOL_NAME} list-hot-objects
- 手动迁移热数据到高性能OSD
将指定对象迁移到SSD OSD
ceph osd map ${YOUR_POOL_NAME} ${OBJECT_ID} # 查当前位置
ceph osd reweight osd.${HDD_OSD_ID} 0.0 # 排空HDD OSD权重
ceph osd reweight osd.${SSD_OSD_ID} 1.5 # 提升SSD OSD权重
三、BlueStore 高级调优
- SSD 独占优化
动态调整运行中的SSD OSD
ceph tell osd.${SSD_OSD_ID} injectargs
"--bluestore_deferred_batch_ops 0
--bluestore_rocksdb_batch_size 16777216
--bluestore_rockdsb_max_bytes_for_level_base 1073741824"
- HDD 写路径优化
适用于HDD OSD的批量提交
ceph tell osd.${HDD_OSD_ID} injectargs
"--bluestore_deferred_batch_ops 128
--bluestore_deferred_batch_timeout 0.5"
四、Quincy 专属加速特性
- 启用 Messenger V2 加速协议
ceph mon enable-msgr2
ceph features set mon enable-v2
- BlueStore 内存控制
防止OSD内存溢出(SSD/HDD通用)
osd_memory_target = 6442450944 # 6GB
osd_memory_base = 2147483648 # 2GB下限
osd_memory_cache_min = 1073741824
五、实时监控与自愈
- 关键性能看板
实时延迟监控
ceph daemon osd.${ID} perf dump | jq '.osd.op_r_latency'
ceph daemon osd.${ID} perf dump | jq '.bluestore.state'
带宽统计
ceph osd pool stats ${YOUR_POOL_NAME}
- 自动化问题检测
启用实时诊断模块
ceph mgr module enable insights
ceph mgr module enable iostat
六、优化效果验证方式
测试项目 优化前基准 优化后目标 验证命令
4K随机读延迟 >5ms <2ms rados -p
1MB顺序写带宽 <100 MB/s >250 MB/s dd if=/dev/zero of=/ceph/test bs=1M count=1000
OSD提交延迟 >10ms <3ms ceph tell osd.0 perf dump | grep commit_lat
恢复带宽影响 >70% <30% ceph -s | grep recovery
⚠️ 实施建议顺序:
-
先应用客户端配置
-
次做SSD参数调优
-
最后调整HDD批量提交
-
每步间隔1小时观察监控指标变化
通过此方案可在保留现有规则集和数据池的前提下,获得SSD 4K随机读性能提升3倍+,HDD顺序写带宽翻倍的效果,且完全规避了缓存分层方案的复杂性风险。