ceph分布式存储-常见MON故障处理

1. 常见 MON 故障处理


Monitor 维护着 Ceph 集群的信息,如果 Monitor 无法正常提供服务,那整个 Ceph 集群就不可访问。一般来说,在实际运行中,Ceph Monitor的个数是 2n + 1 ( n >= 0) 个,在线上至少3个,只要正常的节点数 >= n+1,Ceph 的 Paxos 算法就能保证系统的正常运行。所以,当 Monitor 出现故障的时候,不要惊慌,冷静下来,一步一步地处理。

1.1 开始排障

在遭遇 Monitor 故障时,首先回答下列几个问题:

Mon 进程在运行吗?

我们首先要确保 Mon 进程是在正常运行的。很多人往往忽略了这一点。

是否可以连接 Mon Server?

有时候我们开启了防火墙,导致无法与 Monitor 的 IP 或端口进行通信。尝试使用 ssh 连接服务器,如果成功,再尝试用其他工具(如 telnetnc 等)连接 monitor 的端口。

ceph -s 命令是否能运行并收到集群回复?

如果答案是肯定的,那么你的集群已启动并运行着。你可以认为如果已经形成法定人数,monitors 就只会响应 status 请求。

如果 ceph -s 阻塞了,并没有收到集群的响应且输出了很多 fault 信息,很可能此时你的 monitors 全部都 down 掉了或只有部分在运行(但数量不足以形成法定人数)。

ceph -s 没完成是什么情况?

如果你到目前为止没有完成前述的几步,请返回去完成。然后你需要 ssh 登录到服务器上并使用 monitor 的管理套接字。

1.2 使用 Mon 的管理套接字

通过管理套接字,你可以用 Unix 套接字文件直接与指定守护进程交互。这个文件位于你 Mon 节点的 run 目录下,默认配置它位于 /var/run/ceph/ceph-mon.ID.asok,但要是改过配置就不一定在那里了。如果你在那里没找到它,请检查 ceph.conf 里是否配置了其它路径,或者用下面的命令获取:

ceph-conf --name mon.ID --show-config-value admin_socket

请牢记,只有在 Mon 运行时管理套接字才可用。Mon 正常关闭时,管理套接字会被删除;如果 Mon 不运行了、但管理套接字还存在,就说明 Mon 不是正常关闭的。不管怎样,Mon 没在运行,你就不能使用管理套接字, ceph 命令会返回类似 Error 111: Connection Refused 的错误消息。

访问管理套接字很简单,就是让 ceph 工具使用 asok 文件。对于 Dumpling 之前的版本,命令是这样的:

ceph --admin-daemon /var/run/ceph/ceph-mon.<id>.asok <command>

对于 Dumpling 及后续版本,你可以用另一个(推荐的)命令:

ceph daemon mon.<id> <command>

ceph 工具的 help 命令会显示管理套接字支持的其它命令。请仔细了解一下 config getconfig showmon_statusquorum_status 命令,在排除 Mon 故障时它们会很有用。

1.3 理解 MON_STATUS

当集群形成法定人数后,或在没有形成法定人数时通过管理套接字, 用 ceph 工具可以获得 mon_status 信息。命令会输出关于 monitor 的大多数信息,包括部分 quorum_status 命令的输出内容。

下面是 mon_status 的输出样例:

{
    "name": "c",
    "rank": 2,
    "state": "peon",
    "election_epoch": 3
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值