Ceph排错之osd之间心跳检测没有回应

 ceph存储集群是建立在八台服务器上面,每台服务器各有9个OSD节点,上班的时候发现,四台服务器上总共有8个OSD节点在crush里面显示down状态,重启OSD节点后恢复正常,但是之后会继续显示down状态,实际上osd进程已经在运行中了。查看OSD节点日志后发现,整个故障过程如下:


1. 单个OSD节点接收不到另外一台服务器节点上的所有OSD心跳信息,日志记录如下

2017-01-12 15:46:44.461929 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.57 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)
2017-01-12 15:46:44.461946 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)
2017-01-12 15:46:44.461967 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.61 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)
2017-01-12 15:46:44.529580 7f838761f700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.529579)
2017-01-12 15:46:44.529596 7f838761f700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.61 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.529579)
2017-01-12 15:46:44.711242 7f83670f2700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.711242)


2. 单个OSD节点接收不到相同服务器上其他节点的OSD心跳信息;

2017-01-12 15:46:44.461929 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.57 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)
2017-01-12 15:46:44.461946 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)
2017-01-12 15:46:44.461967 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.61 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)
2017-01-12 15:46:44.529580 7f838761f700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.529579)
2017-01-12 15:46:44.529596 7f838761f700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.61 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.529579)
2017-01-12 15:46:44.711242 7f83670f2700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.711242)


3. 该OSD节点被map标记为down状态,日志提示是:map wrongly mark me down;

2017-01-12 15:46:44.711242 7f715610e700  0 log_channel(cluster) log [WRN] : map e83 wrongly marked me down

排错过程如下:

1. 首先第一反应应该是时钟问题,时钟不同步(环境用的是ntp),检查发现确实时钟不同步,错误的时区。然后解决时钟问题,解决时钟问题之后,还是不行,还是no reply from osd.xxx


2. 会不会是网络问题?

然后我选择其中两台有问题的服务器,登陆上去查看是不是网络不通,简单ping了一下,发现可以,也没有丢包现象。那就奇怪了,到底肿么了?然后我突然想到防火墙,这可是很多linux服务的克星。关闭防火墙和selinux,ceph集群恢复正常!!!


附加关闭防火墙和selinux的命令:

关闭iptables:

关闭命令:  service iptables stop 
        永久关闭防火墙:chkconfig iptables off


关闭selinux
永久性关闭(这样需要重启服务器后生效)
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

临时性关闭(立即生效,但是重启服务器后失效)
# setenforce 0 #设置selinux为permissive模式(即关闭)
# setenforce 1 #设置selinux为enforcing模式(即开启)





  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ceph 集群中添加 OSD 通常可以通过以下步骤完成: 1. 在 OSD 节点上创建 OSD 数据存储目录,通常为一个独立的磁盘分区。你需要确保这个分区已经格式化为 XFS 或者 Btrfs 文件系统,并且已经挂载到一个目录下。 2. 在 OSD 节点上安装 Ceph OSD 守护进程。你可以使用系统包管理器来安装 `ceph-osd` 包,或者手动编译和安装 Ceph。 3. 在 OSD 节点上创建 OSD 标识。你需要使用 `ceph-authtool` 工具来生成一个新的 OSD 密钥,然后在 Ceph MON 节点上使用 `ceph auth add` 命令将这个密钥添加到 Ceph 集群中。 4. 在 Ceph MON 节点上创建 OSD 配置文件。你需要使用 `ceph-conf` 工具来生成一个新的 OSD 配置文件,并将这个文件复制到 OSD 节点的 `/etc/ceph` 目录下。 5. 在 Ceph MON 节点上添加 OSD 节点。你需要使用 `ceph-deploy` 工具来将 OSD 节点添加到 Ceph 集群中,例如:`ceph-deploy osd create <OSD节点名>:<OSD磁盘挂载目录>`。 6. 在 OSD 节点上启动 OSD 守护进程。你需要使用 `systemctl` 命令来启动 `ceph-osd.target` 服务,并将其设置为开机自启动。 7. 在 Ceph MON 节点上检查 OSD 状态。你需要使用 `ceph osd tree` 命令来查看 OSD 是否已经成功加入 Ceph 集群,并且是否在正常工作状态。 注意,上述步骤中的 `<OSD节点名>` 是指你要添加 OSD 的节点的名称,而 `<OSD磁盘挂载目录>` 是指你要添加 OSD 的磁盘挂载目录,例如 `/dev/sdb`。如果你要添加多个 OSD,可以重复执行上述步骤,每次使用不同的 OSD 节点和磁盘挂载目录。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值