Ceph MON 命令详解

Ceph MON 命令详解

MON(Monitor)是 Ceph 集群的大脑,负责维护集群映射(cluster map)和状态信息。MON 组件确保集群的一致性和协调性,是 Ceph 高可用性的关键组成部分。

MON 基础命令

1. 查看 MON 状态

bash 复制代码
# 查看 MON 状态概览
ceph mon stat

# 查看 MON 映射信息
ceph mon dump

# 查看 MON 仲裁状态
ceph quorum_status

# 查看 MON 详细信息
ceph mon metadata

2. MON 管理命令

bash 复制代码
# 添加 MON
ceph mon add <mon_id> <ip_address>

# 删除 MON
ceph mon remove <mon_id>

# 查看 MON 状态详情
ceph mon status

MON 高可用配置

1. 部署和管理 MON 服务

在 cephadm 环境中,通常使用 orch 命令来管理 MON:

bash 复制代码
# 查看 MON 服务状态
ceph orch ls --service-type mon

# 部署 MON 服务到指定节点
ceph orch apply mon --placement="<node1> <node2> <node3>"

# 手动添加 MON 实例
ceph orch daemon add mon <node>

# 移除 MON 实例
ceph orch daemon rm <mon_daemon_name>

2. MON 网络配置

bash 复制代码
# 配置公共网络
ceph config set global public_network <network_cidr>

# 配置集群网络
ceph config set global cluster_network <network_cidr>

# 查看当前网络配置
ceph config get mon public_network
ceph config get mon cluster_network

MON 故障排查

1. 日志查看

在容器化部署环境中(如使用podman运行Ceph),MON日志可以通过以下方式查看:

bash 复制代码
# 首先找到运行MON的容器
podman ps | grep mon

# 查看特定MON容器的日志
podman logs ceph-mon-ceph1

# 实时跟踪MON容器日志
podman logs -f ceph-mon-ceph1

# 或者进入容器内部查看日志文件
podman exec -it ceph-mon-ceph1 ls /var/log/ceph/
podman exec -it ceph-mon-ceph1 cat /var/log/ceph/ceph-mon.ceph1.log

2. 状态检查

bash 复制代码
# 检查 MON 时钟偏移
ceph health detail | grep clock

# 检查 MON 磁盘空间
ceph health detail | grep mon

# 检查 MON 选举状态
ceph quorum_status

常用 MON 管理场景

场景 1:扩展 MON 集群

向现有集群添加新的 MON 节点:

bash 复制代码
# 1. 添加新主机到集群
ceph orch host add <new_node> <ip_address>

# 2. 部署 MON 服务到新节点
ceph orch daemon add mon <new_node>

# 3. 验证 MON 状态
ceph mon dump
ceph quorum_status

场景 2:替换故障 MON

当某个 MON 节点发生故障时,需要替换:

bash 复制代码
# 1. 移除故障 MON
ceph mon remove <failed_mon_id>

# 2. 添加新 MON
ceph orch daemon add mon <new_node>

# 3. 验证 MON 状态
ceph mon dump
ceph quorum_status

MON 相关配置参数

参数名 含义 默认值 建议值
mon_clock_drift_allowed 允许的时钟漂移 0.05 0.05
mon_data_avail_warn 数据可用空间警告阈值 0.05 0.05
mon_data_avail_crit 数据可用空间严重阈值 0.05 0.02
mon_max_pg_per_osd 每个 OSD 的最大 PG 数量 200 根据集群规模调整
shell 复制代码
[root@ceph1 ~]# ceph config get mon mon_max_pg_per_osd
250
[root@ceph1 ~]# ceph config get mon mon_data_avail_crit
5
[root@ceph1 ~]# ceph config get mon mon_data_avail_warn
30
[root@ceph1 ~]# ceph config get mon mon_clock_drift_allowed
0.050000

MON 最佳实践

1. 部署建议

  • 数量:部署奇数个 MON(通常 3 或 5 个)
  • 分布:将 MON 分布在不同的物理节点上
  • 网络:确保 MON 节点之间网络低延迟、高带宽

2. 监控建议

  • 时钟同步:确保所有 MON 节点时间同步
  • 磁盘空间:监控 MON 数据目录的磁盘使用率
  • 网络延迟:监控 MON 节点之间的网络延迟

3. 维护建议

  • 定期备份:定期备份 MON 数据
  • 版本升级:升级时确保 MON 兼容性
  • 日志轮转:配置适当的日志轮转策略

注意事项

  1. 法定人数:MON 数量必须保持奇数,避免脑裂
  2. 时钟同步:MON 节点间时钟偏差不能超过阈值
  3. 磁盘空间:MON 需要足够的磁盘空间存储集群映射
  4. 网络连通:MON 节点间必须保持网络连通

总结

MON 是 Ceph 集群的核心组件,负责维护集群的状态和一致性。了解 MON 的相关命令和配置参数,对于维护 Ceph 集群的稳定性和高可用性至关重要。在实际运维中,应密切关注 MON 的状态和性能,及时处理可能出现的问题。

参考文档

  1. Ceph 官方文档 - Monitor
  2. Ceph 官方文档 - Monitor 配置
  3. Ceph 官方文档 - 高可用配置

温馨提示

由于网络环境或文件存储等因素,若相关文件或图片链接暂时无法访问,您也可以通过访问张师傅的好来斯技术博客获取更多相关资源和最新信息。

本篇文章原始链接:

复制代码
https://www.howlaisi.com/categories/ceph/ceph-mon-ming-ling-xiang-jie
相关推荐
老wang你好3 小时前
Ceph存储全攻略:RBD、CephFS与RGW详解
ceph
珂玥c3 天前
Ceph集群新增osd
ceph
老wang你好4 天前
Ceph分布式存储系统全解析
ceph
一个行走的民17 天前
分布式系统中 Map 增量(Delta)是否需要持久化
ceph
一个行走的民18 天前
BlueStore 核心原理与关键机制
ceph
奋斗的小青年I20 天前
Proxmox VE Ceph 超融合集群落地实战
windows·ceph·vmware·pve·超融合·proxmox
一个行走的民20 天前
深度剖析 Ceph PG 分裂机制:原理、底层、实操、影响、线上避坑(最全完整版)
ceph·算法
一个行走的民21 天前
Ceph 核心概念精讲:彻底搞懂 PG、PGP、pg_num、pgp_num
ceph
Mr.王8351 个月前
Kubernetes宿主机本地盘池化管理
ceph·云原生·容器·kubernetes
一个行走的民1 个月前
CEPH OSD心跳机制
ceph