环境说明:
复制卷,centos 7下,gluster版本3.6.7
故障现象:
# gluster v status tank
Status of volume: tank
Gluster processPortOnlinePid
------------------------------------------------------------------------------
Brick w-ostack03.sys.bjdt.net:/data/tank49152Y30371
Brick w-ostack04.sys.bjdt.net:/data/tankN/ANN/A
NFS Server on localhost2049Y29320
Self-heal Daemon on localhostN/AY29337
NFS Server on w-ostack03.sys.bjdt.net2049Y17638
Self-heal Daemon on w-ostack03.sys.bjdt.netN/AY30385
Task Status of Volume tank
------------------------------------------------------------------------------
There are no active volume tasks
故障log:
[2016-04-08 03:24:33.909878] I [graph.c:269:gf_add_cmdline_options] 0-tank-server: adding option 'listen-port' for volume 'tank-server' with value '49152'
[2016-04-08 03:24:33.909921] I [graph.c:269:gf_add_cmdline_options] 0-tank-posix: adding option 'glusterd-uuid' for volume 'tank-posix' with value '6b2cfe95-1eb1-4510-b7db-af34ba73162c'
[2016-04-08 03:24:33.911030] I [rpcsvc.c:2142:rpcsvc_set_outstanding_rpc_limit] 0-rpc-service: Configured rpc.outstanding-rpc-limit with value 64
[2016-04-08 03:24:33.911090] W [options.c:898:xl_opt_validate] 0-tank-server: option 'listen-port' is deprecated, preferred is 'transport.socket.listen-port', continuing with correction
[2016-04-08 03:24:33.912278] E [posix.c:5632:init] 0-tank-posix: Extended attribute trusted.glusterfs.volume-id is absent
[2016-04-08 03:24:33.912297] E [xlator.c:425:xlator_init] 0-tank-posix: Initialization of volume 'tank-posix' failed, review your volfile again
[2016-04-08 03:24:33.912306] E [graph.c:322:glusterfs_graph_init] 0-tank-posix: initializing translator failed
[2016-04-08 03:24:33.912315] E [graph.c:525:glusterfs_graph_activate] 0-graph: init failed
[2016-04-08 03:24:33.912689] W [glusterfsd.c:1211:cleanup_and_exit] (--> 0-: received signum (0), shutting down
故障分析:
# getfattr -dm . -e hex tank
查看对应brick目录,缺少扩展属性。
解决方案:
扩展属性很多,这里只需要手动添加trusted.glusterfs.volume-id属性即可。
实例操作如下:
setfattr -n trusted.glusterfs.volume-id -v 0xd810be517a524864bfa7e94fd52c4dbc tank
然后重启服务:
systemctl restart glusterd.service # centos 7上操作命令
service glusterd restart
故障解决,然后如果是复制卷,可以执行heal命令,恢复未数据。
gluster volume heal tank full
完美解决。