如何对部署在LVM卷上的Ceph OSD进行扩容操作?
首先明确:你提到的三步流程是不完整的,缺少集群状态保护、磁盘容量校验、OSD容量确认等关键步骤,操作不当可能触发不必要的数据迁移,甚至影响集群可用性。完整操作流程如下:
前置准备
- 执行
ceph -s确认集群当前处于HEALTH_OK状态,无PG异常、OSD离线问题 - 执行
ceph osd metadata <osd-id> | grep osd_objectstore确认OSD存储后端,当前主流部署均为bluestore,下文操作默认基于bluestore场景 - 配置集群临时保护标志,避免OSD离线时触发数据迁移:
ceph osd set noout ceph osd set norebalance ceph osd set norecover
单OSD扩容步骤(三台逐台操作,前一台恢复正常后再操作下一台)
- 停止目标OSD服务:
systemctl stop ceph-osd@<你的OSD编号> - 执行
lsblk确认对应VM磁盘已经成功扩容到500GB,容量未刷新的话需要先在虚拟化平台执行磁盘 rescan 操作 - 扩容LVM物理卷:
pvresize /dev/<对应OSD的底层磁盘设备名> - 扩容LVM逻辑卷:
lvextend -l +100%FREE /dev/<卷组名>/<逻辑卷名>如果你使用的是老旧的filestore后端,需要额外执行文件系统扩容:
resize2fs /dev/<卷组名>/<逻辑卷名>,bluestore后端无需执行该步骤 - 启动OSD服务:
systemctl start ceph-osd@<你的OSD编号> - 执行
ceph osd df确认目标OSD已正常上线,且容量识别为500GB左右,再操作下一台OSD
扩容收尾
全部三台OSD扩容完成后,清除集群临时保护标志:
ceph osd unset noout ceph osd unset norebalance ceph osd unset norecover
执行ceph -s再次确认集群恢复HEALTH_OK状态即可。
注意事项
- 必须逐台操作OSD,禁止同时下线2台及以上OSD,否则可能导致集群PG不可用
- Bluestore后端会在启动时自动识别逻辑卷的新容量,不需要额外执行bluestore专属的扩容命令
- 操作前建议备份OSD对应的元数据分区内容,避免扩容异常导致数据丢失
内容的提问来源于stack exchange,提问作者user16068415
相关产品推荐
相关产品推荐

