目 录CONTENT

文章目录

Ceph集群中安全删除OSD磁盘指南:Rocky Linux 9.6 + Ceph 17.2.9容器化环境实践

Administrator
2026-03-20 / 0 评论 / 0 点赞 / 2 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Ceph集群中安全删除OSD磁盘指南:Rocky Linux 9.6 + Ceph 17.2.9容器化环境实践

在Ceph分布式存储系统的日常运维中,经常会遇到需要安全地从集群中移除某个OSD(Object Storage Daemon)的场景。这些场景可能包括磁盘故障、硬件升级、容量调整或集群重构等情况。本文将详细介绍在Rocky Linux 9.6环境下使用Ceph 17.2.9 (Quincy)版本时,如何安全地将某个OSD磁盘从容器化集群中退出并进行物理移除。

适用场景

在以下情况下,您可能需要从Ceph集群中安全地删除OSD:

  1. 磁盘故障:硬盘出现坏道或其他硬件故障,需要更换
  2. 硬件升级:需要更换更大容量或更高性能的磁盘
  3. 集群扩容/缩容:根据业务需求调整集群规模
  4. 节点维护:需要对特定节点进行维护或退役
  5. 容量优化:重新平衡集群中的数据分布

删除OSD前的准备工作

在开始删除OSD之前,需要进行充分的准备工作以确保操作的安全性。

1. 检查集群状态

# 检查集群整体健康状态
ceph -s

# 查看集群详细健康信息
ceph health detail

# 查看OSD树状结构
ceph osd tree

# 查看数据分布情况
ceph osd df

确保集群处于 HEALTH_OK 或 HEALTH_WARN 状态,避免在集群已有问题时进行OSD删除操作。

2. 确定要删除的OSD

# 列出所有OSD及其状态
ceph osd ls

# 查看特定OSD的详细信息
ceph osd info osd.0

# 查看OSD的使用情况
ceph osd df tree | grep osd.0

# 查看OSD所在的主机
ceph osd tree | grep osd.0

3. 检查数据分布影响

# 查看集群的副本策略
ceph osd pool ls detail

# 检查删除OSD对数据冗余的影响
ceph pg dump | grep -c active+clean

安全删除OSD的详细步骤

步骤1:将OSD标记为out状态

首先需要将目标OSD标记为out状态,让Ceph开始将该OSD上的数据迁移到其他OSD上。

# 将OSD标记为out状态(以osd.0为例)
ceph osd out 0

# 验证OSD状态
ceph osd tree | grep osd.0

当OSD被标记为out后,Ceph会自动开始数据重平衡过程,将该OSD上的数据复制到其他OSD上。

步骤2:监控数据迁移进度

在数据迁移过程中,需要密切关注进度以确保操作顺利完成。

# 查看集群状态,观察数据迁移进度
ceph -s

# 查看PG状态详情
ceph pg stat

# 查看详细的PG状态
ceph pg dump

# 监控特定OSD的使用情况变化
watch -n 5 "ceph osd df | grep osd.0"

等待直到数据迁移完成,集群状态回到 HEALTH_OK 或 HEALTH_WARN 状态。

步骤3:停止OSD容器

数据迁移完成后,需要停止目标OSD的容器进程。

# 查看OSD容器状态
ceph orch ps --daemon-type osd

# 停止特定OSD容器(以osd.0为例)
ceph orch daemon stop osd.0

# 或者停止指定主机上的OSD容器
ceph orch daemon stop osd.node1.hostename.vjpidb

# 验证OSD容器已停止
ceph orch ps --daemon-type osd | grep osd.0

步骤4:从集群中移除OSD

停止容器后,需要将OSD从集群中彻底移除。

# 从CRUSH map中移除OSD
ceph osd crush remove osd.0

# 删除OSD的认证密钥
ceph auth del osd.0

# 最终从OSD map中移除OSD
ceph osd rm 0

# 验证OSD已完全移除
ceph osd tree | grep osd.0 || echo "OSD已成功移除"

步骤5:使用orchestrator删除OSD(推荐方法)

对于使用cephadm/orchestrator管理的容器化集群,推荐使用orchestrator命令来删除OSD:

# 查看OSD守护进程
ceph orch ps --daemon-type osd

# 删除OSD守护进程(以osd.0为例)
ceph orch osd rm 0

# 或者强制删除OSD守护进程
ceph orch daemon rm osd.0 --force

# 查看删除状态
ceph orch osd rm status

# 如果需要取消删除操作
ceph orch osd rm cancel 0

步骤6:清理磁盘设备

最后,需要清理物理磁盘上的数据和元数据,以便磁盘可以重新使用或安全处置。

# 登录到运行OSD的主机
ssh ceph-node-1

# 使用ceph-volume清理设备(如果使用LVM)
cephadm shell -- ceph-volume lvm zap --destroy /dev/sdb

# 或者手动清理磁盘
# 警告:以下操作会彻底清除磁盘上的所有数据
sgdisk --zap-all /dev/sdb
dd if=/dev/zero of=/dev/sdb bs=1M count=100
wipefs -a /dev/sdb

刷新设备状态

有时候,即使已经删除了OSD并清理了磁盘,在ceph orch device ls命令输出中仍然可以看到旧的设备信息。这是因为Orchestrator的设备信息缓存尚未刷新。

# 刷新设备列表缓存
ceph orch device ls --refresh

# 查看刷新后的设备列表
ceph orch device ls

# 只查看特定主机上的可用设备
ceph orch device ls <hostname> --available

使用--refresh参数可以强制刷新设备列表,更新设备的状态信息。这通常需要几秒钟时间来完成。

验证删除结果

完成所有操作后,需要验证OSD确实已从集群中移除:

# 检查集群状态
ceph -s

# 查看OSD列表
ceph osd ls | grep 0 || echo "OSD 0 已成功移除"

# 查看OSD树状结构
ceph osd tree

# 检查PG状态
ceph pg stat

常见问题及解决方案

1. 数据迁移时间过长

如果数据迁移耗时过长,可能是由于以下原因:

# 调整恢复参数加快迁移速度
ceph config set osd osd_max_backfills 8
ceph config set osd osd_recovery_max_active 8

# 监控迁移进度
ceph pg dump | grep -v active+clean

2. OSD无法正常停止

# 强制停止OSD服务
systemctl kill ceph-osd@0
systemctl stop ceph-osd@0

# 检查是否还有相关进程
ps aux | grep ceph-osd

3. 删除后集群状态异常

# 重新平衡集群
ceph osd reweight-by-utilization

# 检查并修复PG状态
ceph pg repair <pg_id>

最佳实践建议

1. 操作时机选择

  • 选择业务低峰期进行操作
  • 确保集群有足够的冗余能力
  • 提前通知相关人员

2. 操作前检查清单

  • 集群健康状态检查
  • 确定要删除的OSD ID
  • 确认数据冗余策略
  • 备份重要配置信息
  • 准备应急回滚方案

3. 操作后验证

  • 集群状态恢复正常
  • 数据分布均衡
  • 应用程序访问正常
  • 监控告警消除

安全注意事项

  1. 数据安全:确保集群有足够的副本或纠删码保护,避免数据丢失
  2. 逐步操作:严格按照步骤执行,不要跳过任何环节
  3. 实时监控:操作过程中持续监控集群状态
  4. 备份准备:重要操作前做好配置备份
  5. 权限控制:使用具有足够权限但不过度授权的账户执行操作

总结

安全地从Ceph集群中删除OSD是一个需要谨慎处理的操作。通过遵循本文介绍的步骤,您可以有效地将OSD从集群中移除,同时确保数据安全和集群稳定。关键在于:

  1. 充分的准备工作和状态检查
  2. 正确的数据迁移和等待过程
  3. 完整的清理和验证步骤
  4. 及时的监控和问题处理

在实际操作中,建议先在测试环境中练习相关步骤,熟悉整个流程后再在生产环境中执行。同时,根据具体的集群规模和业务需求,适当调整相关参数和操作策略。

参考文档

  1. Ceph官方文档 - OSD管理
  2. Ceph官方文档 - 数据分布
  3. Ceph官方文档 - cephadm
  4. Ceph存储池管理
  5. Ceph Quincy版本发布说明
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区