更新ID(KYUA-202403-1065)
- 更新简述:
- 解决glusterfs并发导致挂载不上问题
- 影响操作系统版本:
- 银河麒麟高级服务器操作系统 V10 SP1
银河麒麟高级服务器操作系统 V10 SP2
银河麒麟高级服务器操作系统 V10 SP3
- 更新类型:
- 社区同步
- 发布时间:
- 1970-01-01
- 更新描述:
- 影响软件详情(产品名称 对应架构 软件包 修复版本)
银河麒麟高级服务器操作系统 V10 SP1 loongarch64 glusterfs 7.0-10.p05.a.ky10
银河麒麟高级服务器操作系统 V10 SP1 aarch64,x86_64 glusterfs 7.0-10.p05.ky10
银河麒麟高级服务器操作系统 V10 SP2 aarch64,x86_64 glusterfs 7.0-10.p05.ky10
银河麒麟高级服务器操作系统 V10 SP3 loongarch64 glusterfs 7.0-10.p05.a.ky10
银河麒麟高级服务器操作系统 V10 SP3 aarch64,x86_64 glusterfs 7.0-10.p05.ky10
详细介绍
1.问题复现方法:
搭建3台v10-sp2 0524 x86_64虚拟机,部署glusterfs集群。 172.29.220.240 server1 172.29.220.241 server2 172.29.220.242 server3 三台服务端分别安装软件,其中sp1 0518系统(x86和arm)装glusterfs-7.0-4.ky10。 yum install glusterfs-7.0-10.p01.ky10 ntpdate 配置三台服务端的hostname。 172.29.220.240 echo "server1" >/etc/hostname 172.29.220.241 echo "server2" >/etc/hostname 172.29.220.242 echo "server3" >/etc/hostname 关闭上述三台服务器,三台服务器分别新增一块10G硬盘。此外启动后hostname生效。 配置三台服务端的host。 echo "172.29.220.240 server1" >>/etc/hosts echo "172.29.220.241 server2" >>/etc/hosts echo "172.29.220.242 server3" >>/etc/hosts 配置三台服务端的ntp,同步阿里云的时间。 ntpdate ntp2.aliyun.com 配置三台服务端的crontab。 vim /etc/crontab */5 * * * * /usr/sbin/ntpdate ntp2.aliyun.com >/dev/null 2>&1 配置新划分的sdb盘,如下图1所示。 格式化并加载/dev/sdb1。 mkfs.xfs -i size=512 /dev/sdb1 mkdir -p /data/brick1 echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab mount -a && mount 三台服务器启动glusterfs管理的守护进程。 systemctl start glusterd.service systemctl status glusterd.service systemctl enable glusterd.service 关闭防火墙。 systemctl stop firewalld.service systemctl disable firewalld.service 配置 trusted pool。 在server1服务器上面,设置如下: gluster peer probe server2 gluster peer probe server3 查看server1中,peer status的信息。 gluster peer status 所有的服务端,执行如下命令。 mkdir -p /app/data mkdir -p /data/brick1/gv0 在server1服务端执行如下命令: gluster volume create gv0 replica 3 server1:/data/brick1/gv0 server2:/data/brick1/gv0 server3:/data/brick1/gv0 在server1服务端启动gv0卷。 gluster volume start gv0 在server1服务端确认卷的信息是否正常。 gluster volume info server1服务端执行挂载操作。 mount -t glusterfs server1:gv0 /app/data server2服务端执行挂载操作。 mount -t glusterfs server2:gv0 /app/data server3服务端执行挂载操作。 mount -t glusterfs server3:gv0 /app/data unzip vdbench50406x86.zip -d /root/ cd vdbench50406/ 三节点都执行以上命令完成后,再次都执行vdbench脚本进行测试 ./vdbench -f test 三个节点中部分节点会出现vdbench异常退出,此时ls /app/data显示传输端点尚未连接的情况,且/var/lib/systemd/coredump/目录下会产生glusterfs core文件。
2.问题分析结果:
glusterfs中存在结构体event被timer线程使用,而其他线程已经提前将其销毁的情况,此时就存在先释放后使用的问题,导致异常参数&event->at传递给pthread_cond_timedwait函数时程序abort,ls本地挂载点报错传输端点尚未连接。
3.补丁及下载地址:
从软件仓库更新
4.修复和更新方法:
升级glusterfs至 glusterfs-7.0-10.p05.ky10 版本可以修复该问题。