现有Ceph集群已配置了replicated_rule和存储池,需要在此基础上进行IO优化ssd+hdd

根据您提供的背景(已存在规则集 replicated_rule 和数据池),以下是针对 Quincy 版本 SSD+HDD 混合集群的优化实施方案,重点在零架构变更基础上实现性能提升:

一、配置优化(不改变现有存储结构)

  1. 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

  1. 全局 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

  1. 客户端侧加速

所有客户端配置文件增加

client_oc = true # Quincy新特性:启用客户端缓存
client_oc_max_objects = 10000
client_oc_max_bytes = 1073741824 # 1GB本地缓存

二、智能分层策略(不新建池)

  1. 利用现有池实现热区识别

在现有数据池启用热区统计

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

  1. 手动迁移热数据到高性能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 高级调优

  1. 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"

  1. HDD 写路径优化

适用于HDD OSD的批量提交

ceph tell osd.${HDD_OSD_ID} injectargs
"--bluestore_deferred_batch_ops 128
--bluestore_deferred_batch_timeout 0.5"

四、Quincy 专属加速特性

  1. 启用 Messenger V2 加速协议

ceph mon enable-msgr2
ceph features set mon enable-v2

  1. BlueStore 内存控制

防止OSD内存溢出(SSD/HDD通用)

osd_memory_target = 6442450944 # 6GB
osd_memory_base = 2147483648 # 2GB下限
osd_memory_cache_min = 1073741824

五、实时监控与自愈

  1. 关键性能看板

实时延迟监控

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}

  1. 自动化问题检测

启用实时诊断模块

ceph mgr module enable insights
ceph mgr module enable iostat

六、优化效果验证方式

测试项目 优化前基准 优化后目标 验证命令

4K随机读延迟 >5ms <2ms rados -p bench 30 read

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

⚠️ 实施建议顺序:

  1. 先应用客户端配置

  2. 次做SSD参数调优

  3. 最后调整HDD批量提交

  4. 每步间隔1小时观察监控指标变化

通过此方案可在保留现有规则集和数据池的前提下,获得SSD 4K随机读性能提升3倍+,HDD顺序写带宽翻倍的效果,且完全规避了缓存分层方案的复杂性风险。

posted @ 2025-07-11 15:22  mofy  阅读(44)  评论(0)    收藏  举报