Hello all,
I have expanded my test environment for POHMELFS slightly to two servers
and one client, the idea being to test basic parallelisation. I
initiated fserver on my two servers, and then ran the cfg tool on the
client, indicating the same index for both servers. Up to this point,
everything seems OK :
[r...@host_147 ~]# modprobe pohmelfs
[r...@host_147 ~]# cfg -A add -a 192.168.0.75 -p 1025 -i 1
[r...@host_147 ~]# cfg -A add -a 192.168.0.166 -p 1025 -i 1
[r...@host_147 ~]# cfg -A show -i 1
Config Index = 1
Family Server IP Port
AF_INET 192.168.0.75 1025
AF_INET 192.168.0.166 1025
However, when i attempt the mount, it usually fails :
[r...@host_147 ~]# mount -t pohmel -o idx=1 none /opt/pohtest/
mount: File exists
[r...@host_147 ~]#
The corresponding logs on the servers :
Accepted client 192.168.0.147:59845.
fserver_root_capabilities: avail: 148041609216, used: 10258935808,
export: 0, inodes: 39911424, flags: 2.
fserver_recv_data: size: 40, err: -104: Success [0].
Dropped thread 1 for client 192.168.0.147:59845.
Disconnected client 192.168.0.147:59845, operations served: 1.
Dropping worker: 3044514704.
-- AND --
Accepted client 192.168.0.147:59370.
fserver_recv_data: size: 40, err: -104: Success [0].
Dropped thread 1 for client 192.168.0.147:59370.
Disconnected client 192.168.0.147:59370, operations served: 0.
Dropping worker: 3044293520.
That's it.
Now, i mentioned above that it *usually* fails. This is because it
worked - once. When it did work, mountstats showed :
[r...@host_147 ~]# cat /proc/1/mountstats
...
device none mounted on /opt/pohtest with fstype pohmel
idx addr(:port) socket_type protocol active priority permissions
1 192.168.0.75:1025 1 6 1 0 3
1 192.168.0.166:1025 1 6 1 0 3
I touch'd a file in the mount on the client, and it appeared in the
exported directory on *one* of the servers, but not on the other. The
corresponding log output from the server that *did* get the file :
fserver_lock: lock grab: path: '/', id: 1, start: 0, ino: 2, size:
4294967295, type: 1.
coherency_broadcast_hash: client: 0x8537450, hash: f06a68bd, len: 2,
ext: 1, cmd: 11 ->
fserver_lock: lock granted: name: '/', id: 1, start: 0, ino: 2, size:
4294967295, type: 8001.
coherency_broadcast_hash: client: (nil), hash: f06a68bd, len: 2, ext: 0,
cmd: 15 ->
192.168.0.147:48277: id: 1, intent: 1, err: 0
The server that did *not* get the file had no corresponding log entry ;
however, when i umount'd the client, log output from *both* of the
servers indicated the same number of operations :
fserver_recv_data: size: 40, err: -104: No such file or directory [2].
Dropped thread 1 for client 192.168.0.147:47025.
Disconnected client 192.168.0.147:47025, operations served: 4.
Dropping worker: 3078085520.
There are, therefore, two big questions :
1. Why did the mount only work once, and never again ?
2. Why did the file only appear on one server ?
Any feedback or ideas would be every welcome. Thank you !
--
dan.
_______________________________________________
Pohmelfs mailing list
[email protected]
http://www.ioremap.net/cgi-bin/mailman/listinfo/pohmelfs