[Gluster-users] Slow performance and Stale NFS file handle on 3.0.3
    James Burgess 
    james at unwireiraq.com
       
    Tue Apr 13 05:49:07 UTC 2010
    
    
  
Hi All,
 
We're running a 10 node cluster in raid1 configuration with each node
exporting 4 disks and are seeing several issues right now.  We recently
upgraded from 2.0.7 to 3.03.
 
First, we are seeing major performance degradation but without a clear
bottleneck of either network i/o, cpu, or disk i/o.  We see a number of
processes trying to access the mount stuck in uninterruptible sleep.  We
also see the directory structure being replicated to the new nodes whenever
a stat call is made to an existing directory; this seems to be the source of
the slowness, but again we don't see network/cpu/disk as a bottleneck.  We
have 8 clients accessing the cluster with a write-heavy load.
 
Second, we are receiving many "Stale NFS file handle" errors in the logs.
These errors are essentially causing reads and writes to fail.
 
[2010-04-12 22:36:56] W [fuse-bridge.c:722:fuse_attr_cbk] glusterfs-fuse:
2880: LOOKUP() / => -1 (Stale NFS file handle)
[2010-04-12 22:36:56] W [fuse-bridge.c:722:fuse_attr_cbk] glusterfs-fuse:
2881: LOOKUP() / => -1 (Stale NFS file handle)
[2010-04-12 22:36:56] W [fuse-bridge.c:722:fuse_attr_cbk] glusterfs-fuse:
2882: LOOKUP() / => -1 (Stale NFS file handle)
[2010-04-12 22:36:56] W [fuse-bridge.c:722:fuse_attr_cbk] glusterfs-fuse:
2883: LOOKUP() / => -1 (Stale NFS file handle)
[2010-04-12 22:36:56] W [fuse-bridge.c:722:fuse_attr_cbk] glusterfs-fuse:
2886: LOOKUP() / => -1 (Stale NFS file handle)
 
Does anyone have any thoughts on how we can fix these problems?  The new
stale file handle errors have started since upgrading to 3.0.3, but the
performance degradation was happening on 2.0.
 
Any help is greatly appreciated.
 
Our server config is as follows:
 
#####################################
###  GlusterFS Server Volume File  ##
#####################################
 
volume posix1
  type storage/posix
  option directory /srv/disk1
end-volume
 
volume posix2
  type storage/posix
  option directory /srv/disk2
end-volume
 
volume posix3
  type storage/posix
  option directory /srv/disk3
end-volume
 
volume posix4
  type storage/posix
  option directory /srv/disk4
end-volume
 
volume locks1
  type features/locks
  subvolumes posix1
end-volume
 
volume locks2
  type features/locks
  subvolumes posix2
end-volume
 
volume locks3
  type features/locks
  subvolumes posix3
end-volume
 
volume locks4
  type features/locks
  subvolumes posix4
end-volume
 
volume threads1
  type performance/io-threads
  option thread-count 64
  subvolumes locks1
end-volume
 
volume threads2
  type performance/io-threads
  option thread-count 64
  subvolumes locks2
end-volume
 
volume threads3
  type performance/io-threads
  option thread-count 64
  subvolumes locks3
end-volume
 
volume threads4
  type performance/io-threads
  option thread-count 64
  subvolumes locks4
end-volume
 
volume server
  type protocol/server
  option transport-type tcp
  option transport.socket.nodelay on
 
  subvolumes threads1 threads2 threads3 threads4
  option auth.addr.threads1.allow *
  option auth.addr.threads2.allow *
  option auth.addr.threads3.allow *
  option auth.addr.threads4.allow *
end-volume
 
 
Our client config is as follows:
 
#####################################################################
## Remote Servers
 
## remote 4 (192.168.150.184)
  volume remote4-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.184
    option remote-subvolume threads1
  end-volume
 
  volume remote4-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.184
    option remote-subvolume threads2
  end-volume
 
  volume remote4-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.184
    option remote-subvolume threads3
  end-volume
 
  volume remote4-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.184
    option remote-subvolume threads4
  end-volume
## end remote 4
 
## remote 5 (192.168.150.185)
  volume remote5-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.185
    option remote-subvolume threads1
  end-volume
 
  volume remote5-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.185
    option remote-subvolume threads2
  end-volume
 
  volume remote5-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.185
    option remote-subvolume threads3
  end-volume
 
  volume remote5-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.185
    option remote-subvolume threads4
  end-volume
## end remote 5
 
## remote 6 (192.168.150.186)
  volume remote6-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.186
    option remote-subvolume threads1
  end-volume
 
  volume remote6-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.186
    option remote-subvolume threads2
  end-volume
 
  volume remote6-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.186
    option remote-subvolume threads3
  end-volume
 
  volume remote6-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.186
    option remote-subvolume threads4
  end-volume
## end remote 6
 
## remote 7 (192.168.150.187)
  volume remote7-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.187
    option remote-subvolume threads1
  end-volume
 
  volume remote7-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.187
    option remote-subvolume threads2
  end-volume
 
  volume remote7-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.187
    option remote-subvolume threads3
  end-volume
 
  volume remote7-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.187
    option remote-subvolume threads4
  end-volume
## end remote 7
 
## remote 8 (192.168.150.188)
  volume remote8-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.188
    option remote-subvolume threads1
  end-volume
 
  volume remote8-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.188
    option remote-subvolume threads2
  end-volume
 
  volume remote8-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.188
    option remote-subvolume threads3
  end-volume
 
  volume remote8-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.188
    option remote-subvolume threads4
  end-volume
## end remote 8
 
## remote 9 (192.168.150.189)
  volume remote9-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.189
    option remote-subvolume threads1
  end-volume
 
  volume remote9-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.189
    option remote-subvolume threads2
  end-volume
 
  volume remote9-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.189
    option remote-subvolume threads3
  end-volume
 
  volume remote9-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.189
    option remote-subvolume threads4
  end-volume
## end remote 9
 
## remote 10 (192.168.150.190)
  volume remote10-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.190
    option remote-subvolume threads1
  end-volume
 
  volume remote10-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.190
    option remote-subvolume threads2
  end-volume
 
  volume remote10-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.190
    option remote-subvolume threads3
  end-volume
 
  volume remote10-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.190
    option remote-subvolume threads4
  end-volume
## end remote 10
 
## remote 11 (192.168.150.191)
  volume remote11-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.191
    option remote-subvolume threads1
  end-volume
 
  volume remote11-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.191
    option remote-subvolume threads2
  end-volume
 
  volume remote11-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.191
    option remote-subvolume threads3
  end-volume
 
  volume remote11-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.191
    option remote-subvolume threads4
  end-volume
## end remote 11
 
## remote 12 (192.168.150.192)
  volume remote12-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.192
    option remote-subvolume threads1
  end-volume
 
  volume remote12-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.192
    option remote-subvolume threads2
  end-volume
 
  volume remote12-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.192
    option remote-subvolume threads3
  end-volume
 
  volume remote12-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.192
    option remote-subvolume threads4
  end-volume
## end remote 12
 
## remote 13 (192.168.150.193)
  volume remote13-1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.193
    option remote-subvolume threads1
  end-volume
 
  volume remote13-2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.193
    option remote-subvolume threads2
  end-volume
 
  volume remote13-3
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.193
    option remote-subvolume threads3
  end-volume
 
  volume remote13-4
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.150.193
    option remote-subvolume threads4
  end-volume
## end remote 13
 
#####################################################################
## Replication pairs
 
## remote 4+5
  volume pair4-5-1
    type cluster/replicate
    subvolumes remote4-1 remote5-1
  end-volume
 
  volume pair4-5-2
    type cluster/replicate
    subvolumes remote4-2 remote5-2
  end-volume
 
  volume pair4-5-3
    type cluster/replicate
    subvolumes remote4-3 remote5-3
  end-volume
 
  volume pair4-5-4
    type cluster/replicate
    subvolumes remote4-4 remote5-4
  end-volume
## End remote 4+5
 
## remote 6+7
  volume pair6-7-1
    type cluster/replicate
    subvolumes remote6-1 remote7-1
  end-volume
 
  volume pair6-7-2
    type cluster/replicate
    subvolumes remote6-2 remote7-2
  end-volume
 
  volume pair6-7-3
    type cluster/replicate
    subvolumes remote6-3 remote7-3
  end-volume
 
  volume pair6-7-4
    type cluster/replicate
    subvolumes remote6-4 remote7-4
  end-volume
## End remote 6+7
 
## remote 8+9
  volume pair8-9-1
    type cluster/replicate
    subvolumes remote8-1 remote9-1
  end-volume
 
  volume pair8-9-2
    type cluster/replicate
    subvolumes remote8-2 remote9-2
  end-volume
 
  volume pair8-9-3
    type cluster/replicate
    subvolumes remote8-3 remote9-3
  end-volume
 
  volume pair8-9-4
    type cluster/replicate
    subvolumes remote8-4 remote9-4
  end-volume
## End remote 8+9
 
## remote 10+11
  volume pair10-11-1
    type cluster/replicate
    subvolumes remote10-1 remote11-1
  end-volume
 
  volume pair10-11-2
    type cluster/replicate
    subvolumes remote10-2 remote11-2
  end-volume
 
  volume pair10-11-3
    type cluster/replicate
    subvolumes remote10-3 remote11-3
  end-volume
 
  volume pair10-11-4
    type cluster/replicate
    subvolumes remote10-4 remote11-4
  end-volume
## End remote 10+11
 
## remote 12+13
  volume pair12-13-1
    type cluster/replicate
    subvolumes remote12-1 remote13-1
  end-volume
 
  volume pair12-13-2
    type cluster/replicate
    subvolumes remote12-2 remote13-2
  end-volume
 
  volume pair12-13-3
    type cluster/replicate
    subvolumes remote12-3 remote13-3
  end-volume
 
  volume pair12-13-4
    type cluster/replicate
    subvolumes remote12-4 remote13-4
  end-volume
## End remote 12+13
 
#####################################################################
## Unified filesystem
 
volume distribute
  type cluster/distribute
  option lookup-unhashed yes
  option min-free-disk 2%
  subvolumes pair4-5-1 pair4-5-2 pair4-5-3 pair4-5-4 pair6-7-1 pair6-7-2
pair6-7-3 pair6-7-4 pair8-9-1 pair8-9-2 pair8-9-3 pair8-9-4 pair10-11-1
pair10-11-2 pair10-11-3 pair10-11-4 pair12-13-1 pair12-13-2 pair12-13-3
pair12-13-4
end-volume
 
volume writebehind
  type performance/write-behind
  option cache-size 3MB
  option flush-behind on
  subvolumes distribute
end-volume
 
volume io-cache
  type performance/io-cache
  option cache-size 128MB
  subvolumes writebehind
end-volume
 
volume client
  type performance/io-threads
  option thread-count 64
  subvolumes io-cache
end-volume
 
 
All nodes are running Ubuntu 9.04.
 
root at userdata12:/etc/glusterfs/glusterfs-upgrade# uname -a
Linux userdata12 2.6.28-18-server #59-Ubuntu SMP Thu Jan 28 02:25:03 UTC
2010 x86_64 GNU/Linux
 
Thanks,
 
James
    
    
More information about the Gluster-users
mailing list