Date: Tue, 07 Dec 2010 09:15:06 +0100
From: Daniel Zander<[email protected]>
Subject: Re: [Gluster-users] Start a new volume with pre-existing
directories
To: [email protected]
Message-ID:<[email protected]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Dear all,
as there have been no further questions or suggestions, I assume that
you are just as out of ideas as I am. Maybe the logfiles of the two
bricks will help. They were recorded while I created a new volume,
started it, mounted it on FS8 and ran `find . | xargs stat>>/dev/null
2>&1` and unmounted again. Then the same on FS7. And finally, I mounte
it on a client. And here are the logfiles:
-----
FS8
-----
[2010-12-07 09:00:26.86494] W [graph.c:274:gf_add_cmdline_options]
heal_me-server: adding option 'listen-port' for volume 'heal_me-server'
with value '24022'
[2010-12-07 09:00:26.87247] W
[rpc-transport.c:566:validate_volume_options] tcp.heal_me-server: option
'listen-port' is deprecated, preferred is
'transport.socket.listen-port', continuing with correction
Given volfile:
+------------------------------------------------------------------------------+
1: volume heal_me-posix
2: type storage/posix
3: option directory /storage/8
4: end-volume
5:
6: volume heal_me-access-control
7: type features/access-control
8: subvolumes heal_me-posix
9: end-volume
10:
11: volume heal_me-locks
12: type features/locks
13: subvolumes heal_me-access-control
14: end-volume
15:
16: volume heal_me-io-threads
17: type performance/io-threads
18: option thread-count 16
19: subvolumes heal_me-locks
20: end-volume
21:
22: volume /storage/8
23: type debug/io-stats
24: subvolumes heal_me-io-threads
25: end-volume
26:
27: volume heal_me-server
28: type protocol/server
29: option transport-type tcp
30: option auth.addr./storage/8.allow *
31: subvolumes /storage/8
32: end-volume
+------------------------------------------------------------------------------+
[2010-12-07 09:00:30.168852] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.246:1023
[2010-12-07 09:00:30.240014] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.247:1022
[2010-12-07 09:01:17.729708] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.246:1019
[2010-12-07 09:02:27.588813] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.247:1017
[2010-12-07 09:03:05.394282] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.203:1008
-----
FS7
-----
[2010-12-07 08:59:04.673533] W [graph.c:274:gf_add_cmdline_options]
heal_me-server: adding option 'listen-port' for volume 'heal_me-server'
with value '24022'
[2010-12-07 08:59:04.674068] W
[rpc-transport.c:566:validate_volume_options] tcp.heal_me-server: option
'listen-port' is deprecated, preferred is
'transport.socket.listen-port', continuing with correction
Given volfile:
+------------------------------------------------------------------------------+
1: volume heal_me-posix
2: type storage/posix
3: option directory /storage/7
4: end-volume
5:
6: volume heal_me-access-control
7: type features/access-control
8: subvolumes heal_me-posix
9: end-volume
10:
11: volume heal_me-locks
12: type features/locks
13: subvolumes heal_me-access-control
14: end-volume
15:
16: volume heal_me-io-threads
17: type performance/io-threads
18: option thread-count 16
19: subvolumes heal_me-locks
20: end-volume
21:
22: volume /storage/7
23: type debug/io-stats
24: subvolumes heal_me-io-threads
25: end-volume
26:
27: volume heal_me-server
28: type protocol/server
29: option transport-type tcp
30: option auth.addr./storage/7.allow *
31: subvolumes /storage/7
32: end-volume
+------------------------------------------------------------------------------+
[2010-12-07 08:59:08.717715] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.247:1023
[2010-12-07 08:59:08.757648] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.246:1021
[2010-12-07 08:59:56.274677] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.246:1020
[2010-12-07 09:01:06.130142] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.247:1020
[2010-12-07 09:01:43.945880] I [server-handshake.c:535:server_setvolume]
heal_me-server: accepted client from 192.168.101.203:1007
Any help is greatly appreciated,
Regards,
Daniel
On 12/03/2010 01:24 PM, Daniel Zander wrote:
Hi!
>Can you send the output of -
>
>`gluster volume info all`
>`gluster peer status`
>
>from a gluster storage server and
>
>`mount` from the client?
Certainly....
--------------------------------------
r...@ekpfs8:~# gluster volume info all
Volume Name: heal_me
Type: Distribute
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: 192.168.101.246:/storage/8
Brick2: 192.168.101.247:/storage/7
--------------------------------------
r...@ekpfs8:~# gluster peer status
Number of Peers: 1
Hostname: 192.168.101.247
Uuid: b36ce6e3-fa14-4d7e-bc4a-170a59a6f4f5
State: Peer in Cluster (Connected)
--------------------------------------
[r...@ekpbelle ~]# mount
[ ... ]
glusterfs#192.168.101.246:/heal_me on /storage/gluster type fuse
(rw,allow_other,default_permissions,max_read=131072)
--------------------------------------
Regards,
Daniel
Hello Daniel,
I have managed to export existing data successfully in the past, before
hearing about the "find . | xargs stat" self heal method. I did
encounter problems similar to the one you describe, where some or all of
the subdirectories were missing under the GlusterFS mount point. I
found that the missing directories could be listed by manually entering
their paths relative the the mount point, after which they would be
visible permanently. I came up with the following procedure for making
sure that GlusterFS could see all the data being exported.
1) Run "find -print" on each of the backend filesystems, saving the
output to a location that can be seen from all the servers and at least
one client.
2) In the GlusterFS mount point, "ls" every file and directory in each
of the "find" output lists generated earlier. I wrote a simple script
that reads each "find" file line by line, running "ls" on each one.
This isn't a very elegant solution and certainly isn't officially
recommended or supported, but it did work for me and I can't think of
any reason why it would be risky in any way.
-Dan.
_______________________________________________
Gluster-users mailing list
[email protected]
http://gluster.org/cgi-bin/mailman/listinfo/gluster-users