如何将Ceph OSD守护进程迁移至新服务规格?
问题背景
原OSD服务规格(自动分配所有空闲SSD)配置:
service_type: osd service_id: 34852880 service_name: 34852880 placement: host_pattern: '*' spec: data_devices: rotational: false filter_logic: AND objectstore: bluestore
为精准控制磁盘分配,创建的新OSD服务规格(仅针对host1)配置:
service_type: osd service_id: 34852881 service_name: 34852881 placement: host_pattern: 'host1' spec: data_devices: rotational: false filter_logic: AND objectstore: bluestore
删除旧服务规格时使用--force参数,导致原属旧规格的OSD进入Unmanaged状态,无法被新规格接管,需找到无需擦除磁盘的接管方法。
解决步骤
1. 确认Unmanaged状态的OSD信息
先列出所有处于Unmanaged状态的OSD,获取它们的ID、所在主机及对应磁盘路径:
ceph orch osd ls --unmanaged
2. 手动将OSD关联到新服务规格
针对每个需要接管的OSD,执行以下命令,指定新服务规格名称和对应磁盘路径(无需擦盘):
# 示例:将host1上/dev/sdb对应的OSD关联到新服务规格osd.34852881 ceph orch osd add --service-name osd.34852881 /dev/sdb
若需批量处理,可结合ceph orch osd ls --unmanaged的输出编写脚本批量执行。
3. 验证接管结果
执行命令确认OSD已被新规格管控,状态变为Managed:
ceph orch osd ls --service osd.34852881
同时可在Ceph Dashboard的Services页面,确认这些OSD已归属到新服务规格下。
4. 清理旧服务规格残留(可选)
若旧服务规格仍有残留记录,执行清理:
ceph orch service rm osd.34852880 --force
内容的提问来源于stack exchange,提问作者Tintin
相关产品推荐
相关产品推荐

