There are a couple of things we can do:
-> Mail us the Glusterfs log files from the NFS server and the glusterfs
servers when the lock script fails. Do file a bug if you can.
-> On the NFS client machine, before you run the mount command, make
sure you run the following command.
$ rpc.statd
-> Run the same perl script but this time at the nfs server over the
glusterfs mount point, not at the NFS client. If it runs fine, it is
probably related to locking over NFS and we'll look at other places to
figure it out.
-Shehjar
Steinmetz, Ian wrote:
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.
r...@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
r...@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.
r...@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
r...@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...
r...@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:
r...@gluster02:/# mount <ip removed for security>:/mnt/test /mnt/test
r...@gluster02:/# cd /mnt/test
r...@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:
r...@gluster02:/# mount 74.81.128.17:/mnt/glusterfs /mnt/test
r...@gluster02:/# cd /mnt/test
r...@gluster02:/mnt/test# ./locktest.pl
Opened file lockfile
Can't get shared lock on lockfile:
No locks available
--
Ian Steinmetz
Comcast Engineering - Houston
713-375-7866
_______________________________________________
Gluster-users mailing list
[email protected]
http://gluster.org/cgi-bin/mailman/listinfo/gluster-users
_______________________________________________
Gluster-users mailing list
[email protected]
http://gluster.org/cgi-bin/mailman/listinfo/gluster-users