perrynzhou

专注于系统组件研发

0%

global-threading后导致mount客户端crash

现象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[2020-04-15 08:37:04.727619] I [rpc-clnt.c:1963:rpc_clnt_reconfig] 0-hot2_vol-client-2: changing port to 49153 (from 0)
[2020-04-15 08:37:04.727653] I [socket.c:864:__socket_shutdown] 0-hot2_vol-client-2: intentional socket shutdown(12)
[2020-04-15 08:37:04.730524] I [MSGID: 114057] [client-handshake.c:1376:select_server_supported_programs] 0-hot2_vol-client-1: Using Program GlusterFS 4.x v1, Num (1298437), Version (400)
[2020-04-15 08:37:04.730986] I [MSGID: 114046] [client-handshake.c:1106:client_setvolume_cbk] 0-hot2_vol-client-1: Connected to hot2_vol-client-1, attached to remote volume '/glusterfs/hotvol2/brick1'.
[2020-04-15 08:37:04.733549] I [MSGID: 114057] [client-handshake.c:1376:select_server_supported_programs] 0-hot2_vol-client-2: Using Program GlusterFS 4.x v1, Num (1298437), Version (400)
[2020-04-15 08:37:04.733979] I [MSGID: 114046] [client-handshake.c:1106:client_setvolume_cbk] 0-hot2_vol-client-2: Connected to hot2_vol-client-2, attached to remote volume '/glusterfs/hotvol2/brick1'.
[2020-04-15 08:37:04.735104] I [fuse-bridge.c:5166:fuse_init] 0-glusterfs-fuse: FUSE inited with protocol versions: glusterfs 7.24 kernel 7.22
[2020-04-15 08:37:04.735112] I [fuse-bridge.c:5777:fuse_graph_sync] 0-fuse: switched to graph 0
pending frames:
frame : type(1) op(LOOKUP)
frame : type(1) op(OPEN)
patchset: git://git.gluster.org/glusterfs.git
signal received: 11
time of crash:
2020-04-15 08:50:04
configuration details:
argp 1
backtrace 1
dlfcn 1
libpthread 1
llistxattr 1
setfsid 1
spinlock 1
epoll.h 1
xattr.h 1
st_atim.tv_nsec 1
package-string: glusterfs 7.1
/lib64/libglusterfs.so.0(+0x277ff)[0x2b4618afe7ff]
/lib64/libglusterfs.so.0(gf_print_trace+0x334)[0x2b4618b09234]
/lib64/libc.so.6(+0x36280)[0x2b461a424280]
/lib64/libglusterfs.so.0(+0xaeeb5)[0x2b4618b85eb5]
/lib64/libpthread.so.0(+0x7dd5)[0x2b4619d78dd5]
/lib64/libc.so.6(clone+0x6d)[0x2b461a4ebead]
---------

系统版本信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
[root@szdpl1543 ~]# uname -a
Linux szdpl1543 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@szdpl1543 ~]# gluster --version
glusterfs 7.2
Repository revision: git://git.gluster.org/glusterfs.git
Copyright (c) 2006-2016 Red Hat, Inc. <https://www.gluster.org/>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
It is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3
or later), or the GNU General Public License, version 2 (GPLv2),
in all cases as published by the Free Software Foundation.
[root@szdpl1543 ~]# gluster volume info hot2_vol

Volume Name: hot2_vol
Type: Distribute
Volume ID: a04761f1-3380-4795-9054-cf152e55ea61
Status: Started
Snapshot Count: 0
Number of Bricks: 3
Transport-type: tcp
Bricks:
Brick1: 172.25.78.240:/glusterfs/hotvol2/brick1
Brick2: 172.25.78.241:/glusterfs/hotvol2/brick1
Brick3: 172.25.78.242:/glusterfs/hotvol2/brick1
Options Reconfigured:
storage.health-check-interval: 0
performance.write-behind: on
performance.flush-behind: on
performance.aggregate-size: 1mb
performance.read-ahead-page-count: 16
performance.client-io-threads: off
performance.io-cache: on
nfs.disable: on
storage.fips-mode-rchecksum: on
transport.address-family: inet
server.outstanding-rpc-limit: 512
network.tcp-window-size: 1048576
cluster.min-free-disk: 20
server.event-threads: 64
client.event-threads: 32
performance.io-thread-count: 32
performance.readdir-ahead: on
cluster.readdir-optimize: on
performance.parallel-readdir: on
performance.quick-read: on
cluster.lookup-unhashed: off
performance.rda-cache-limit: 16GB
cluster.lookup-optimize: on
performance.stat-prefetch: on
features.cache-invalidation: on
features.cache-invalidation-timeout: 600
performance.cache-invalidation: on
performance.md-cache-timeout: 600
network.inode-lru-limit: 200000

mount选项

1
mount -t glusterfs -o acl,global-threading 172.25.78.240:hot2_vol /data/glusterfs_train_hot2

解决方案

1
2
3
4
//每当接收到打开的调用时,它都会向应用程序发送成功通知,从而提高了应用程序从文件读取数据的能力
Option: performance.open-behind
Default Value: on
Description: enable/disable open-behind translator in the volume.

相关的issue