官方文档

https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/#step-3-installing-glusterfs

进入集群的某个节点,查看卷信息

gluster volume info

1.备份需要迁移的砖

http://bk.xgs521.com/wp-admin/post.php?post=1542&action=edit

2.替换目录并复制原目录数据到目标目录(注意:原目录数据应是从客户端产生的,直接进入该节点目录下创建的文件不会复制过去)

新建新砖目录并给新目录最大权限

mkdir /home/disk1/gfs && chmod -R 777 /home/disk1/gfs

开始迁移

gluster volume replace-brick xuanji yq01-audio-engine-16kime067-gpu.yq01.baidu.com:/home/ssd0/gfs yq01-audio-engine-16kime067-gpu.yq01.baidu.com:/home/disk1/gfs commit force

新建新砖目录并给新目录最大权限

mkdir /home/disk2/gfs && chmod -R 777 /home/disk2/gfs

开始迁移

gluster volume replace-brick xuanji yq01-audio-engine-openimesmall8k398.yq01.baidu.com:/home/ssd0/gfs yq01-audio-engine-openimesmall8k398.yq01.baidu.com:/home/disk2/gfs commit force

查看复制进度

gluster volume rebalance xuanji status

如下提示完成所需时间

查看磁盘总大小变化

du -shl /home/disk2/gfs/

3.卷数据平衡–等到第二步执行完成再执行

gluster volume rebalance xuanji start

gluster volume rebalance xuanji status

查看卷信息

gluster volume info xuanji

使用 gluster volume heal xuanji info 命令来查看卷的健康状态,并使用 gluster volume heal xuanji full 命令进行全面修复。

手动启动brick

gluster volume start xuanji brick yq01-audio-engine-16kime066-gpu.yq01.baidu.com:/home/ssd0/gfs yq01-audio-engine-16kime066-gpu.yq01.baidu.com:/home/ssd1/gfs

删除并恢复rejected的节点

先查看所有的brick

gluster volume info xuanji

查看所有brick状态

gluster volume status xuanji

查看所有brick详细状态

gluster volume status xuanji detail

仅在需要修复的文件上触发自我修复:
 gluster volume heal
 eg: gluster volume heal xuanji
 在卷的所有文件上触发自我修复:
 gluster volume heal  full
 eg:gluster volume heal xuanji full
 查看需要修复的文件列表:
 gluster volume heal  info
 eg: gluster volume heal xuanji info
 查看自我修复的文件列表:
 gluster volume heal  info healed
 eg:gluster volume heal xuanji info healed
 查看特定卷的自我修复失败的文件列表:
 gluster volume heal  info failed
 eg: gluster volume heal xuanji info failed
 查看指定卷中处于脑裂状态的文件列表:
 gluster volume heal  info split-brain
 eg: gluster volume heal xuanji info split-brain

删除该节点中的所有brick(第一个是主brick,第二个是第一个的备份brick,删除必须保证主备同时删除)

gluster volume remove-brick xuanji replica 2 yq01-audio-engine-16kime066-gpu.yq01.baidu.com:/home/ssd0/gfs yq01-audio-engine-16kime066-gpu.yq01.baidu.com:/home/ssd1/gfs commit force

等删除完后再删除节点

gluster peer detach yq01-audio-engine-16kime066-gpu.yq01.baidu.com

查看所有节节点连接状态,及uuid

gluster peer status

添加节点

gluster peer probe yq01-audio-engine-16kime066-gpu.yq01.baidu.com

添加brick

gluster volume add-brick xuanji replica 2 yq01-audio-engine-16kime067-gpu.yq01.baidu.com:/home/disk1/gfs yq01-audio-engine-16kime067-gpu.yq01.baidu.com:/home/ssd1/gfs commit force

GFS集群异常排查应先找到异常的物理机节点,然后进入该物理机排查日志

例:reblance平衡stopped解决(重启异常节点并查看reblance状态)

查异常节点对应物理机日志

cd /var/log/glusterfs/

倒序查看最近的日志

tail -n 1000 xuanji-rebalance.log-20240421

[2024-04-20 19:43:31.314341] I [socket.c:872:__socket_shutdown] 0-xuanji-client-13: intentional socket shutdown(37)
[2024-04-20 19:45:38.253722] I [socket.c:872:__socket_shutdown] 0-xuanji-client-3: intentional socket shutdown(5)
[2024-04-20 19:45:38.256650] I [socket.c:872:__socket_shutdown] 0-xuanji-client-10: intentional socket shutdown(5)
[2024-04-20 19:45:38.259635] I [socket.c:872:__socket_shutdown] 0-xuanji-client-13: intentional socket shutdown(5)
[2024-04-20 19:45:38.263172] I [socket.c:872:__socket_shutdown] 0-xuanji-client-26: intentional socket shutdown(5)
[2024-04-20 19:45:38.266614] I [socket.c:872:__socket_shutdown] 0-xuanji-client-28: intentional socket shutdown(5)
[2024-04-20 19:45:38.271050] I [socket.c:872:__socket_shutdown] 0-xuanji-client-40: intentional socket shutdown(5)
[2024-04-20 19:45:38.274339] I [socket.c:872:__socket_shutdown] 0-xuanji-client-42: intentional socket shutdown(5)
[2024-04-20 19:46:22.883361] I [MSGID: 100011] [glusterfsd.c:1641:reincarnate] 0-glusterfsd: Fetching the volume file from server…

重新rebalance后,可查看最新的日志,

grep “0-glusterfs” xuanji-rebalance.log

日志中找到stopped信息

[2024-05-07 09:14:01.733400] I [MSGID: 109028] [dht-rebalance.c:5047:gf_defrag_status_get] 0-glusterfs: Rebalance is stopped. Time taken is 1550429.00 secs

时间线往前推移,找到一个异常信息

[2024-05-07 02:15:15.643659] E [MSGID: 100018] [glusterfsd.c:2333:glusterfs_pidfile_update] 0-glusterfsd: pidfile /var/lib/glusterd/vols/xuanji/rebalance/1e8308d1-366b-4890-b97b-2d7d3e8a842b.pid lock failed [Resource temporarily unavailable]

查看/var/lib/glusterd/vols/xuanji/rebalance/1e8308d1-366b-4890-b97b-2d7d3e8a842b.pid文件是否被进程占用,如果有,可以杀死进程,然后重启gfs,再重新rebalance,操作如下

lsof /var/lib/glusterd/vols/xuanji/rebalance/1e8308d1-366b-4890-b97b-2d7d3e8a842b.pid

杀掉之前的进程

kill -9 1431

在该物理机节点上重启glusterd

systemctl restart glusterd

重新rebalance

gluster volume rebalance xuanji start

再次查看状态就显示进行中

gluster volume rebalance xuanji status

glustered异常信息在这里排查

查看gluster.log

nslookup 10.103.117.24

host 10.103.117.24

查看该节点gfs状态

systemctl status glusterd.service

考虑重启服务

systemctl stop glusterd

systemctl start glusterd

这个命令也可参考 systemctl restart glusterd.service

查看reblance状态

gluster volume rebalance xuanji status

状态如果有了,就不必要重新reblance

gluster volume rebalance xuanji start

brick节点故障排查(Online状态: N)

查看所有brick状态

gluster volume status xuanji

也可查看所有brick详细状态

gluster volume status xuanji detail

root用户进入异常节点的物理机

cd /var/log/glusterfs/bricks

查看对应异常节点的日志

tail -1000 home-disk2-gfs.log| grep ” E “

停止gfs卷xuanji

gluster volume stop xuanji

ll /var/lib/glusterd/peers/

systemctl start glusterd.service

systemctl status glusterd.service

或者

service glusterd status|start|stop

先暂停volume

gluster volume stop wake_test

删除异常brick,至少删除2个,主备一起删

gluster volume remove-brick wake_test replica 2 yq01-audio-engine-16kime098-gpu.yq01.baidu.com:/home/ssd0/sj yq01-audio-engine-16kime098-gpu.yq01.baidu.com:/home/disk2/sj force

某个物理机rejected

从该物理机探测master节点

gluster peer probe yq01-audio-engine-16kime098-gpu.yq01.baidu.com

重启该物理机节点

systemctl restart glusterd

非online的brick处理,在异常节点重启glusterd

systemctl restart glusterd

Self-heal Daemon自愈节点故障排查(Online状态: N)– rebalance无法start force 也无法stop

gluster volume rebalance xuanji status|stop|start

volume rebalance: xuanji: failed: error

查看xuanji状态

gluster volume status xuanji

显示如下:

Self-heal Daemon on yq01-audio-engine-16kim
e068-gpu.yq01.baidu.com N/A N/A N N/A

查看68节点(异常节点)日志

tail -1000 glustershd.log |grep ” E “

# tail -100 xuanji-rebalance.log |grep ” E “


[2024-07-17 10:39:03.573117] E [MSGID: 101075] [common-utils.c:508:gf_resolve_ip6] 0-resolver: getaddrinfo failed (family:2) (Name or service not known)
[2024-07-17 10:39:03.573141] E [name.c:266:af_inet_client_get_remote_sockaddr] 0-glusterfs: DNS resolution failed on host localhost

根据错误提示,检查DNS配置

1.确保 /etc/nsswitch.conf 文件中 hosts 条目包含 dns

cat /etc/nsswitch.conf

2.确保 DNS 服务器配置正确。

cat /etc/resolv.conf

示例:

nameserver 10.10.10.10
nameserver 10.10.10.20

3.检查/etc/hosts 文件配置: 如果相关主机名未正确映射到 IP 地址,可能会导致解析失败。

cat /etc/hosts

使用 ping 命令检查各节点间的网络连通性。

4.重启异常节点

systemctl restart glusterd

其他尝试

可以考虑重启异常的节点,如果还无法rebalance,则逐个重启所有节点

systemctl restart glusterd

确认自愈守护进程正在运行。如果没有运行,尝试手动启动它:

gluster volume heal xuanji enable

GFS手动启动自愈

确认自愈守护进程正在运行。如果没有运行,尝试手动启动它:

gluster volume heal xuanji enable

查看GFS配置文件消息和各卷的配置文件

cat /etc/glusterfs/glusterd.vol 

查看GlusterFS守护进程的工作目录。

cd /var/lib/glusterd

发表评论

电子邮件地址不会被公开。 必填项已用*标注