[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