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
相关推荐
韭菜张师傅3 天前
Ceph环境完全重置指南:彻底清理集群环境
java·网络·ceph
JNU freshman3 天前
Ceph 18(Reef)生产级调优手册
网络·ceph
lisanmengmeng24 天前
ceph 中的OSD
ceph
lisanmengmeng1 个月前
CEPH的基本结构
ceph
lisanmengmeng1 个月前
ceph一些命令
ceph
lisanmengmeng1 个月前
cephadm 17.2.5安装部署 (二)
linux·运维·服务器·ceph
only_Klein1 个月前
kubernetes集群下的分布式存储方案-ceph
ceph·kubernetes·分布式存储
苦逼IT运维1 个月前
Helm 实战指南(四):生产环境 Helm 部署 CVAT 全记录:Ceph 存储、GPU 节点污点调度与 HTTPS 指南
ceph·网络协议·https
大新新大浩浩1 个月前
ceph平台-未及时移除故障osd导致根目录100%问题的故障记录
ceph