[Gluster-users] Files lost after DHT expansion!
mki-glusterfs at mozone.net
mki-glusterfs at mozone.net
Tue Jun 9 07:29:06 UTC 2009
Hi
I'm experimenting with a simple 5 storage node cluster with 2 clients,
using version 2.0.1 under linux.
The setup is a simple client side DHT across 4 of the 5 backend
bricks. Everything was working fine (performance aside). Then I
decided to grow the cluster to include the 5th brick. After remounting
the filesystem on the clients, a bunch of the content in the cluster
became unavailable!
Attempting to stat the missing files in question would give me an
ENOENT. After reading some other thread post from a few days ago
someone mentioned adding "option lookup-unhashed on". So I tried that
and then went through and manually stat()ed each file that was
originally on the filesystem and only then did the files reappear. I
can't imagine what one would do if there were several million files on
the filesystem prior to an expansion?
Am I missing something obvious in the setup and procedure for a
DHT expansion?
Please advise.
Thanks.
Mohan
The 5 storage nodes are setup as follows:
------------------------ BEGIN SERVER VOL FILE -----------------------
# base storage points
volume posix
type storage/posix
option background-unlink yes
option directory /storage/export
end-volume
# required for async file replication
volume posix-locks
type features/posix-locks
subvolumes posix
end-volume
# performance translators
volume io-threads
type performance/io-threads
option thread-count 16
subvolumes posix-locks
end-volume
#
volume server
type protocol/server
option transport-type tcp/server
subvolumes io-threads
option auth.addr.io-threads.allow 10.0.0.*
option client-volume-filename /etc/glusterfs/glusterfs.vol
end-volume
------------------------ END SERVER VOL FILE -----------------------
The 2 client nodes are setup as follows (note that remote-brick-5
was added to the distribute volume for the expansion, it wasn't
there prior to):
------------------------ BEGIN CLIENT VOL FILE -----------------------
volume remote-brick-1
type protocol/client
option transport-type tcp
option remote-host 10.0.0.161
option remote-subvolume io-threads
end-volume
volume remote-brick-2
type protocol/client
option transport-type tcp
option remote-host 10.0.0.162
option remote-subvolume io-threads
end-volume
volume remote-brick-3
type protocol/client
option transport-type tcp
option remote-host 10.0.0.163
option remote-subvolume io-threads
end-volume
volume remote-brick-4
type protocol/client
option transport-type tcp
option remote-host 10.0.0.164
option remote-subvolume io-threads
end-volume
volume remote-brick-5
type protocol/client
option transport-type tcp
option remote-host 10.0.0.160
option remote-subvolume io-threads
end-volume
volume distribute
type cluster/distribute
subvolumes remote-brick-1 remote-brick-2 remote-brick-3 remote-brick-4 remote-brick-5
end-volume
volume io-threads
type performance/io-threads
option thread-count 16
subvolumes distribute
end-volume
volume read-ahead
type performance/read-ahead
option page-count 16
subvolumes io-threads
end-volume
volume io-cache
type performance/io-cache
option cache-size 512MB
subvolumes read-ahead
end-volume
volume write-behind
type performance/write-behind
option cache-size 1MB
subvolumes io-cache
end-volume
------------------------ END CLIENT VOL FILE -----------------------
More information about the Gluster-users
mailing list