Hi,

I am trying to use glusterfs with two x86_64 servers and a ppc64 client. I have not had any problems with an x86_64 client, but I have had problems with the ppc64 client.

At first, I could not get gluster to mount on the client. I fixed this by fixing the endian swapping done in byte-order.h (I have made a bug report for this already). I can now mount the filesystem, but when I do almost anything, such as "echo blah > blah", or "cat blah", I run into problems. Mostly I get errors claiming that 'blah' is a directory (it isn't).

Here is the client log for "cat blah", where blah is a file that already exists (note there is some extra debug that I added to see the flags for the 'open' call):

[2009-05-25 20:35:02] N [glusterfsd.c:1152:main] glusterfs: Successfully started [2009-05-25 20:35:02] D [client-protocol.c:6301:notify] remote2: got GF_EVENT_CHILD_UP [2009-05-25 20:35:02] D [client-protocol.c:6301:notify] remote2: got GF_EVENT_CHILD_UP [2009-05-25 20:35:02] D [client-protocol.c:6301:notify] remote1: got GF_EVENT_CHILD_UP [2009-05-25 20:35:02] D [client-protocol.c:6301:notify] remote1: got GF_EVENT_CHILD_UP [2009-05-25 20:35:02] N [client-protocol.c:5562:client_setvolume_cbk] remote2: Connected to 192.168.12.43:6996, attached to remote volume 'threaded-locked-brick'. [2009-05-25 20:35:02] N [client-protocol.c:5562:client_setvolume_cbk] remote2: Connected to 192.168.12.43:6996, attached to remote volume 'threaded-locked-brick'. [2009-05-25 20:35:02] N [client-protocol.c:5562:client_setvolume_cbk] remote1: Connected to 192.168.12.41:6996, attached to remote volume 'threaded-locked-brick'. [2009-05-25 20:35:02] N [client-protocol.c:5562:client_setvolume_cbk] remote1: Connected to 192.168.12.41:6996, attached to remote volume 'threaded-locked-brick'. [2009-05-25 20:35:12] D [client-protocol.c:803:client_open] remote1: flags = 65536, req->flags = 65536 [2009-05-25 20:35:12] D [client-protocol.c:803:client_open] remote2: flags = 65536, req->flags = 65536 [2009-05-25 20:35:12] W [stripe.c:1871:stripe_open_cbk] stripe: remote2 returned error Not a directory [2009-05-25 20:35:12] W [stripe.c:1871:stripe_open_cbk] stripe: remote1 returned error Not a directory [2009-05-25 20:35:12] W [fuse-bridge.c:641:fuse_fd_cbk] glusterfs-fuse: 4: OPEN() /blah => -1 (Not a directory)


   Here is the server log:

[2009-05-25 20:36:34] N [server-protocol.c:7040:mop_setvolume] tcp-server: accepted client from 192.168.12.31:1019 [2009-05-25 20:36:49] D [server-protocol.c:3852:server_open] threaded-locked-brick: req->flags = 256, state->flags = 65536 [2009-05-25 20:36:49] E [posix.c:1447:posix_open] brick: open on /raid/glusterfs/blah with flags 65536: Not a directory [2009-05-25 20:36:49] D [server-protocol.c:2012:server_open_cbk] tcp-server: 8: OPEN /blah (129302530) ==> -1 (Not a directory) [2009-05-25 20:37:37] D [server-protocol.c:3852:server_open] threaded-locked-brick: req->flags = 256, state->flags = 65536 [2009-05-25 20:37:37] E [posix.c:1447:posix_open] brick: open on /raid/glusterfs/blah with flags 65536: Not a directory [2009-05-25 20:37:37] D [server-protocol.c:2012:server_open_cbk] tcp-server: 12: OPEN /blah (129302530) ==> -1 (Not a directory) [2009-05-25 20:37:49] D [server-protocol.c:3852:server_open] threaded-locked-brick: req->flags = 256, state->flags = 65536 [2009-05-25 20:37:49] E [posix.c:1447:posix_open] brick: open on /raid/glusterfs/blah with flags 65536: Not a directory [2009-05-25 20:37:49] D [server-protocol.c:2012:server_open_cbk] tcp-server: 16: OPEN /blah (129302530) ==> -1 (Not a directory)


   Here is the client vol file:

### Add client feature and attach to remote subvolume
volume remote1
 type protocol/client
 option transport-type tcp
# option transport-type unix
# option transport-type ib-sdp
#  option remote-host 127.0.0.1         # IP address of the remote brick
 option remote-host 192.168.12.41
# option transport.socket.remote-port 6996 # default server port is 6996

# option transport-type ib-verbs
# option transport.ib-verbs.remote-port 6996 # default server port is 6996
# option transport.ib-verbs.work-request-send-size  1048576
# option transport.ib-verbs.work-request-send-count 16
# option transport.ib-verbs.work-request-recv-size  1048576
# option transport.ib-verbs.work-request-recv-count 16

# option transport-timeout 30          # seconds to wait for a reply
                                      # from server for each request
option remote-subvolume threaded-locked-brick # name of the remote volume
end-volume

volume remote2
 type protocol/client
 option remote-host 192.168.12.43
# option transport.socket.remote-port 6996 # default server port is 6996
 option transport-type tcp
 option remote-subvolume threaded-locked-brick
end-volume

volume stripe
 type cluster/stripe
 option block-size 1MB
 subvolumes remote1 remote2
end-volume

Here is the server vol file (note that I am allowing client access using both IB Verbs and TCP. In this case, I am connecting the client using TCP):

volume brick
 type storage/posix                   # POSIX FS translator
 option directory /raid/glusterfs        # Export this directory
end-volume


volume locked-brick
 type features/locks
 subvolumes brick
end-volume

volume threaded-locked-brick
 type performance/io-threads
#  option thread-count 8
 subvolumes locked-brick
end-volume

### Add network serving capability to above brick.
volume server
 type protocol/server
#  option transport-type tcp
# option transport-type unix
# option transport-type ib-sdp
# option transport.socket.bind-address 192.168.1.10 # Default is to listen on all interfaces
# option transport.socket.listen-port 6996              # Default is 6996

option transport-type ib-verbs
#option transport.ib-verbs.bind-address 192.168.1.10 # Default is to listen on all interfaces
# option transport.ib-verbs.listen-port 6996              # Default is 6996
# option transport.ib-verbs.work-request-send-size  131072
# option transport.ib-verbs.work-request-send-count 64
# option transport.ib-verbs.work-request-recv-size  131072
# option transport.ib-verbs.work-request-recv-count 64

# option client-volume-filename /usr/local/etc/glusterfs/glusterfs-client.vol
 subvolumes threaded-locked-brick
# NOTE: Access to any volume through protocol/server is denied by
# default. You need to explicitly grant access through # "auth"
# option.
option auth.addr.threaded-locked-brick.allow * # Allow access to "brick" volume
end-volume

volume tcp-server
 type protocol/server
 option transport-type tcp
#  option transport.socket.listen-port 6997              # Default is 6996
option auth.addr.threaded-locked-brick.allow * # Allow access to "brick" volume
 subvolumes threaded-locked-brick
end-volume


Any assistance that could be offered would be appreciated!

Thanks,

Steven Truelove



--
Steven Truelove
Array Systems Computing, Inc.
1120 Finch Avenue West, 7th Floor
Toronto, Ontario
M3J 3H7
CANADA
http://www.array.ca
[email protected]
Phone: (416) 736-0900 x307
Fax: (416) 736-4715


_______________________________________________
Gluster-users mailing list
[email protected]
http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users

Reply via email to