I'm seeing an issue where I can't lock files on a NFS exported GlusterFS mount. I have two servers connected to each other doing AFR to provide a high available NFS server (mirror the content, one VIP for NFS mounts to clients). Both of the servers have mounted "/mnt/glusterfs" using GlusterFS with the client pointing to both servers. I then export the filesyste with NFS. I grabbed a quick perl program that tries to lock a file for testing, which fails only on the glusterfs. When I export a normal directory "/mnt/test" the locking works. Any ideas appreciated. I have a feeling I've implemented the posix/locks option incorrectly. Both servers are running Ubuntu with identical setups, below are relevant configs. root at gluster01:/mnt/glusterfs# uname -a Linux gluster01 2.6.31-20-generic-pae #58-Ubuntu SMP Fri Mar 12 06:25:51 UTC 2010 i686 GNU/Linux root at gluster01:/mnt/glusterfs# cat /etc/exports /mnt/glusterfs <ip removed for security>/25(rw,no_root_squash,no_all_squash,no_subtree_check,sync,insec ure,fsid=10) /mnt/test <ip removed for security>/25(rw,no_root_squash,no_all_squash,no_subtree_check,sync,insec ure,fsid=11) * I've tried async, rsync, removing all options except FSID. root at gluster02:/etc/glusterfs# cat glusterfs.vol volume brick1 type protocol/client option transport-type tcp/client option remote-host <ip removed for security> # IP address of the remote brick option remote-subvolume brick # name of the remote volume end-volume volume brick2 type protocol/client option transport-type tcp/client option remote-host <ip removed for security> # IP address of the remote brick option remote-subvolume brick # name of the remote volume end-volume volume afr1 type cluster/afr subvolumes brick1 brick2 end-volume volume writebehind type performance/write-behind option window-size 4MB subvolumes afr1 end-volume volume cache type performance/io-cache option cache-size 512MB subvolumes writebehind end-volume volume readahead type performance/read-ahead option page-size 128KB # unit in bytes subvolumes cache end-volume volume iothreads type performance/io-threads option thread-count 4 option cache-size 64MB subvolumes readahead end-volume root at gluster02:/etc/glusterfs# cat glusterfsd.vol volume posix type storage/posix option directory /data/export end-volume volume locks type features/posix-locks option manditory on # tried with and without this, found in a search of earlier post subvolumes posix end-volume volume brick type performance/io-threads option thread-count 8 subvolumes locks end-volume volume server type protocol/server option transport-type tcp option auth.addr.brick.allow * option auth.addr.brick-ns.allow * option transport.socket.nodelay on option auth.ip.locks.allow * subvolumes brick end-volume * file to test locking... root at gluster02:/mnt/glusterfs# cat locktest.pl #!/usr/bin/perl use Fcntl qw(:flock); my $lock_file = 'lockfile'; open(LOCKFILE,">>$lock_file") or die "Cannot open $lock_file: $!\n"; print "Opened file $lock_file\n"; flock(LOCKFILE, LOCK_SH) or die "Can't get shared lock on $lock_file: $!\n"; print "Got shared lock on file $lock_file\n"; sleep 2; close LOCKFILE; print "Closed file $lock_file\n"; exit; *Test run from gluster02 using normal NFS mount: root at gluster02:/# mount <ip removed for security>:/mnt/test /mnt/test root at gluster02:/# cd /mnt/test root at gluster02:/mnt/test# ./locktest.pl Opened file lockfile Got shared lock on file lockfile Closed file lockfile *Test run from gluster02 using gluster exported NFS mount: root at gluster02:/# mount 74.81.128.17:/mnt/glusterfs /mnt/test root at gluster02:/# cd /mnt/test root at gluster02:/mnt/test# ./locktest.pl Opened file lockfile Can't get shared lock on lockfile: No locks available -- Ian Steinmetz