searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

glusterd与CLI排障

2023-07-17 08:35:44
34
0

glusterd守护进程在每个受信任的服务器节点上运行,并负责管理受信任的池和卷。 gluster CLI向本地节点上的glusterd守护进程发送命令,后者执行操作并将结果返回给用户。

调试glusterd

日志

遇到问题时首先查看gluster的日志,默认日志保存在/var/log/glusterfs。CLI和glusterd的日志路径为:

  • glusterd : /var/log/glusterfs/glusterd.log

  • gluster CLI : /var/log/glusterfs/cli.log

常见问题和解决方法

"*Another transaction is in progress for volname*" or "*Locking failed on xxx.xxx.xxx.xxx"*

由于Gluster本质上是分布式的,因此Gluster在执行操作时会锁定,以确保对卷所做的配置更改在集群中是原子性的。以下情况下会返回这些错误:

  • 多个事务在同一个锁上争用

解决方案:这些可能是暂时性错误,如果在其他事务完成后重试,操作将成功。

  • 其中一个节点上存在过时的锁

解决方案:在清除陈旧的锁之前,重复该操作将没有帮助。重新启动持有锁的glusterd服务。

  • 检查glusterd.log文件,找出哪个节点持有过时的锁。查找消息:lock being holded by <uuid>

  • 运行“gluster peer status”以在日志消息中使用uuid标识节点。

  • 重启这个节点上的glusterd服务.

"*Transport endpoint is not connected*" 报错,但所有brick都是up的

这通常发生在brick进程没有干净地关闭,将过时的数据留在glusterd进程中。Gluster客户端进程向glusterd查询bricks进程正在侦听的端口,并尝试连接到该端口。如果glusterd中的端口信息不正确,则客户端将无法连接到bricks,即使它已启动。需要访问该块的操作可能会失败,并显示“传输端点未连接”。

解决方案:重新启动glusterd服务。

"Peer Rejected"

gluster peer status 返回"Peer Rejected".

Hostname: <hostname>
Uuid: <xxxx-xxx-xxxx>
State: Peer Rejected (Connected)

这表示节点上的卷配置与受信任存储池的其余部分不同步。您应该在运行对等状态命令的节点的glusterd日志中看到以下消息:

Version of Cksums <vol-name> differ. local cksum = xxxxxx, remote cksum = xxxxyx on peer <hostname>

解决方案:更新cluster.op-version

  • 运行 gluster volume get all cluster.max-op-version 获取最新支持的cluster.op-version.

  • 通过执行 gluster volume set all cluster.op-version <op-version> 将cluster.op-version更新为支持的最新操作版本.

"Accepted Peer Request"

如果在扩容集群时glusterd握手失败,那么集群的视图将不一致。“gluster peer status”中的peer状态将为“accepted peer request”,随后的CLI命令将失败并出现错误。例如,Volume create command will fail with "volume create: testvol: failed: Host <hostname> is not in 'Peer in Cluster' state

在这种情况下,“/var/lib/glusterd/peers/<UUID>”中的状态字段的值将不是3。

解决方法:

  • 停止glusterd服务

  • /var/lib/glusterd/peers/<UUID>中的state修改为3

  • 启动glusterd服务

0条评论
0 / 1000
血小板
10文章数
0粉丝数
血小板
10 文章 | 0 粉丝
血小板
10文章数
0粉丝数
血小板
10 文章 | 0 粉丝
原创

glusterd与CLI排障

2023-07-17 08:35:44
34
0

glusterd守护进程在每个受信任的服务器节点上运行,并负责管理受信任的池和卷。 gluster CLI向本地节点上的glusterd守护进程发送命令,后者执行操作并将结果返回给用户。

调试glusterd

日志

遇到问题时首先查看gluster的日志,默认日志保存在/var/log/glusterfs。CLI和glusterd的日志路径为:

  • glusterd : /var/log/glusterfs/glusterd.log

  • gluster CLI : /var/log/glusterfs/cli.log

常见问题和解决方法

"*Another transaction is in progress for volname*" or "*Locking failed on xxx.xxx.xxx.xxx"*

由于Gluster本质上是分布式的,因此Gluster在执行操作时会锁定,以确保对卷所做的配置更改在集群中是原子性的。以下情况下会返回这些错误:

  • 多个事务在同一个锁上争用

解决方案:这些可能是暂时性错误,如果在其他事务完成后重试,操作将成功。

  • 其中一个节点上存在过时的锁

解决方案:在清除陈旧的锁之前,重复该操作将没有帮助。重新启动持有锁的glusterd服务。

  • 检查glusterd.log文件,找出哪个节点持有过时的锁。查找消息:lock being holded by <uuid>

  • 运行“gluster peer status”以在日志消息中使用uuid标识节点。

  • 重启这个节点上的glusterd服务.

"*Transport endpoint is not connected*" 报错,但所有brick都是up的

这通常发生在brick进程没有干净地关闭,将过时的数据留在glusterd进程中。Gluster客户端进程向glusterd查询bricks进程正在侦听的端口,并尝试连接到该端口。如果glusterd中的端口信息不正确,则客户端将无法连接到bricks,即使它已启动。需要访问该块的操作可能会失败,并显示“传输端点未连接”。

解决方案:重新启动glusterd服务。

"Peer Rejected"

gluster peer status 返回"Peer Rejected".

Hostname: <hostname>
Uuid: <xxxx-xxx-xxxx>
State: Peer Rejected (Connected)

这表示节点上的卷配置与受信任存储池的其余部分不同步。您应该在运行对等状态命令的节点的glusterd日志中看到以下消息:

Version of Cksums <vol-name> differ. local cksum = xxxxxx, remote cksum = xxxxyx on peer <hostname>

解决方案:更新cluster.op-version

  • 运行 gluster volume get all cluster.max-op-version 获取最新支持的cluster.op-version.

  • 通过执行 gluster volume set all cluster.op-version <op-version> 将cluster.op-version更新为支持的最新操作版本.

"Accepted Peer Request"

如果在扩容集群时glusterd握手失败,那么集群的视图将不一致。“gluster peer status”中的peer状态将为“accepted peer request”,随后的CLI命令将失败并出现错误。例如,Volume create command will fail with "volume create: testvol: failed: Host <hostname> is not in 'Peer in Cluster' state

在这种情况下,“/var/lib/glusterd/peers/<UUID>”中的状态字段的值将不是3。

解决方法:

  • 停止glusterd服务

  • /var/lib/glusterd/peers/<UUID>中的state修改为3

  • 启动glusterd服务

文章来自个人专栏
Gluster
10 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
1
1