[Gluster-devel] glusterfs with vservers

Martin Fick mogulguy at yahoo.com
Fri Nov 21 17:18:58 UTC 2008


--- On Fri, 11/21/08, Daniel van Ham Colchete <daniel.colchete at gmail.com> wrote:

> it doesn't matter if you use virtual servers or not.
> That's the point with virtual servers. 

Well, that's a bold theoretical statement.  Every 
virtualization technology has its side effects.  
That is why I asked:

> > Has anyone had success with a similar scenario?


> If the network linking them is working GlusterFS will work
> as it would with real servers. 

Yes, I realize that is the theory, thus the reason 
I am attempting to do it, but do you have any real 
world experience with the scenario I mention to back 
that statement up?

I suspect the problems is networking, that is why I 
asked about setting the source IP on from the client
side.  If it is possible, it seems like it might be 
a useful feature whenever a client has multiple IPs 
to choose from.  In the case of the host with linux 
vservers, it does.

> If you think the problem is at GlusterFS please 
> provide more details. What are your config files? 
> What are you doing? What commands are you using? 
> What are you seeing? Otherwise there is no way 
> one can guess what you are doing wrong...

What makes you assume that I am doing something 
wrong? :)  I hope that I am, so that it can be fixed,
but no offense, I have been working at this for a 
while.  As I mentioned I am able to mount it on the 
host.  Since I am using a cfg file residing on the 
guest server, the only real difference in the 
equation is vserver.  

But since you asked, below are my configs and output
logs:

server.vol
----------

volume default
  type storage/posix
  option directory /export/default
end-volume

volume server
  type protocol/server
  option transport-type tcp/server
  option bind-address 10.10.20.11
  option client-volume-filename /etc/glusterfs/client.vol

  subvolumes default
  option auth.ip.default.allow *
end-volume


client.vol
----------

volume client
  type protocol/client
  option transport-type tcp/client
  option remote-host 10.10.20.11

  option remote-subvolume default
end-volume



IPs
----
The guest server IP is 10.10.20.11
The guest client IP is 192.168.1.150
The host         IP is 192.168.1.12


On the host, this works:
 A)

  glusterfs -s 10.10.20.11 /mnt

But, this does not work: 
 B)

  vnamespace -e 221 glusterfs -s 10.10.20.11 mnt

221 is the vserver context of the client guest.

Here are the server logs in both cases:

A)

2008-11-20 17:38:47 D [tcp-server.c:145:tcp_server_notify] server: Re
gistering socket (6) for new transport object of 10.10.20.11
2008-11-20 17:38:47 E [server-protocol.c:5212:mop_getspec] server: Un
able to open /etc/glusterfs/client.vol.10.10.20.11 (No such file or d
irectory)
2008-11-20 17:38:47 E [protocol.c:271:gf_block_unserialize_transport]
 server: EOF from peer (10.10.20.11:1023)
2008-11-20 17:38:47 D [tcp.c:87:tcp_disconnect] server: connection di
sconnected
2008-11-20 17:38:47 D [server-protocol.c:6269:server_protocol_cleanup
] server: cleaned up transport state for client 10.10.20.11:1023
2008-11-20 17:38:47 D [tcp-server.c:257:gf_transport_fini] server: de
stroying transport object for 10.10.20.11:1023 (fd=6)
2008-11-20 17:38:48 D [tcp-server.c:145:tcp_server_notify] server: Re
gistering socket (6) for new transport object of 10.10.20.11
2008-11-20 17:38:48 D [ip.c:120:gf_auth] default: allowed = "*", rece
ived ip addr = "10.10.20.11"
2008-11-20 17:38:48 D [server-protocol.c:5674:mop_setvolume] server:
accepted client from 10.10.20.11:1022
2008-11-20 17:38:48 D [server-protocol.c:5717:mop_setvolume] server:
creating inode table with lru_limit=1024, xlator=default
2008-11-20 17:38:48 D [inode.c:1163:inode_table_new] default: creatin
g new inode table with lru_limit=1024, sizeof(inode_t)=96
2008-11-20 17:38:48 D [inode.c:577:__create_inode] default/inode: cre
ate inode(1)
2008-11-20 17:38:48 D [inode.c:367:__active_inode] default/inode: act
ivating inode(1), lru=0/1024


B)

2008-11-20 17:40:32 D [tcp-server.c:145:tcp_server_notify] server: Re
gistering socket (6) for new transport object of 10.10.20.11
2008-11-20 17:40:32 E [server-protocol.c:5212:mop_getspec] server: Un
able to open /etc/glusterfs/client.vol.10.10.20.11 (No such file or d
irectory)
2008-11-20 17:40:32 E [protocol.c:271:gf_block_unserialize_transport]
 server: EOF from peer (10.10.20.11:1023)
2008-11-20 17:40:32 D [tcp.c:87:tcp_disconnect] server: connection di
sconnected
2008-11-20 17:40:32 D [server-protocol.c:6269:server_protocol_cleanup
] server: cleaned up transport state for client 10.10.20.11:1023
2008-11-20 17:40:32 D [tcp-server.c:257:gf_transport_fini] server: de
stroying transport object for 10.10.20.11:1023 (fd=6)



Note how in both cases the server thinks the client is 
itself.  Which means that even if I got it to work, I 
would not be able to properly perform IP based 
authorization.


Here are the client logs in both cases:

A)

2008-11-20 17:38:47 W [client-protocol.c:280:client_protocol_xfer] trans: attempting to pipeline request type(2) op(4) with handshake


B)

2008-11-20 17:40:32 W [client-protocol.c:280:client_protocol_xfer] trans: attempting to pipeline request type(2) op(4) with handshake
2008-11-20 17:40:32 E [fuse-bridge.c:2702:init] glusterfs-fuse: fuse_mount failed (Transport endpoint is not connected)

2008-11-20 17:40:32 E [glusterfs.c:547:main] glusterfs: Initializing FUSE failed


And, lastly, my kernel is debian 2.6.25-2-vserver-686 


If I try using vexec, secure-mount or fstab/fstab.remote, the
client never even seems able to contact the server.  Only
vnamespace gets me this far.


Thanks,
 
-Martin



      





More information about the Gluster-devel mailing list