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

Reply via email to