gluster-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gluster-devel] How can I add new node to DHT?


From: Kirby Zhou
Subject: [Gluster-devel] How can I add new node to DHT?
Date: Sun, 15 Mar 2009 12:57:41 +0800

2.0.0rc4

>From wiki

Now the question is what about adding a new server? 

Currently hash works based on directory level distribution. Ie, a given
file's parent directory will have information of how the hash numbers are
mapped to subvolumes. So, adding new node doesn't disturb any current setup
as the files/dirs present already have its information preserved. Whatever
new directory gets created, will start considering new volume for scheduling
files. 

But I encounter strange problem: after adding new nodes, old files are
disappeard.
And another problem, I can not use following line to mount a volume
glusterfs  --volfile-server=10.10.123.21 --volfile-server-port=6986
--volume-name=dht0-raw /mnt 

address@hidden ~]# glusterfs  --volfile=/root/glusterfs.vol
--volume-name=dht0-raw /mnt
address@hidden ~]# cp * /mnt/
 address@hidden ~]# ll /mnt/
total 184
-rw-r--r-- 1 root root    78 Mar 15 12:48 112.log
-rw------- 1 root root  1434 Mar 15 12:48 anaconda-ks.cfg
-rwxr-xr-x 1 root root  9506 Mar 15 12:48 a.out
-rw-r--r-- 1 root root  5350 Mar 15 12:48 decode.c
-rw-r--r-- 1 root root  2097 Mar 15 12:48 glusterfs.vol
-rw-r--r-- 1 root root 34517 Mar 15 12:48 install.log
-rw-r--r-- 1 root root  3670 Mar 15 12:48 install.log.syslog
-rw-r--r-- 1 root root  1930 Mar 15 12:48 install.sh
-rw-r--r-- 1 root root 17953 Mar 15 12:48 linux.tgz
-rw-r--r-- 1 root root 29224 Mar 15 12:48 log
-rwxr-xr-x 1 root root  2805 Mar 15 12:48 mksimplerpm.sh
-rwxr-xr-x 1 root root  9955 Mar 15 12:48 nbody
-rw-r--r-- 1 root root  4783 Mar 15 12:48 nbody.cpp
-rwxr-xr-x 1 root root 13119 Mar 15 12:48 redux
-rw-r--r-- 1 root root  7104 Mar 15 12:48 redux.cpp
-rw-r--r-- 1 root root  1517 Mar 15 12:48 teste.cpp
-rw-r--r-- 1 root root   124 Mar 15 12:48 uname.list
address@hidden ~]# umount /mnt

address@hidden ~]# vim glusterfs.vol ## I add some extra volumns here.
# goto every node, restart glusterfsd

address@hidden ~]# glusterfs  --volfile=/root/glusterfs.vol
--volume-name=dht0-raw /mnt
address@hidden ~]# ll /mnt/
total 48
-rw-r--r-- 1 root root  5350 Mar 15 12:48 decode.c
-rw-r--r-- 1 root root 29224 Mar 15 12:48 log
-rw-r--r-- 1 root root  7104 Mar 15 12:48 redux.cpp
address@hidden ~]# mkdir /mnt/XXX
address@hidden ~]# ll /mnt/XXX/
total 0
address@hidden ~]# ll /mnt/
total 48
-rw-r--r-- 1 root root  5350 Mar 15 12:48 decode.c
-rw-r--r-- 1 root root 29224 Mar 15 12:48 log
-rw-r--r-- 1 root root  7104 Mar 15 12:48 redux.cpp
drwxr-xr-x 2 root root    48 Mar 15 12:48 XXX
address@hidden ~]#


====Server volumes:
volume brick1-posix
  type storage/posix                   # POSIX FS translator
  option directory /exports/disk1      # Export this directory
end-volume
volume brick1-locks
  type features/locks
  subvolumes brick1-posix
end-volume
volume brick1
  type performance/io-threads
  subvolumes brick1-locks
  option thread-count 16
  option cache-size 256m
end-volume

volume brick2-posix
  type storage/posix                   # POSIX FS translator
  option directory /exports/disk2      # Export this directory
end-volume
volume brick2-locks
  type features/locks
  subvolumes brick2-posix
end-volume
volume brick2
  type performance/io-threads
  subvolumes brick2-locks
  option thread-count 16
  option cache-size 256m
end-volume

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

### Add network serving capability to above brick.
volume server
  type protocol/server
  option transport-type tcp/server     # For TCP/IP transport
  option listen-port 6986              # Default is 6996
  option client-volume-filename /etc/glusterfs/glusterfs.vol
  subvolumes brick1 brick2 
  option auth.ip.brick1.allow 10.10.*,10.11.*,10.15.*,192.168.*
  option auth.ip.brick2.allow 10.10.*,10.11.*,10.15.*,192.168.*
  option auth.ip.brick-ns.allow 10.10.*,10.11.*,10.15.*,192.168.*
end-volume


====Client volume:
volume 10.10.123.21-brick1
  type protocol/client
  option transport-type tcp/client
  option remote-host 10.10.123.21
  option remote-port 6986
  option transport-timeout 3
  option remote-subvolume brick1
end-volume
volume 10.10.123.21-brick2
  type protocol/client
  option transport-type tcp/client
  option remote-host 10.10.123.21
  option remote-port 6986
  option transport-timeout 3
  option remote-subvolume brick2
end-volume

...

volume dht0-raw
  type cluster/distribute
  #subvolumes 10.10.123.21-brick1 10.10.123.21-brick2 10.10.123.22-brick1
10.10.123.22-brick2
  subvolumes 10.10.123.21-brick1 10.10.123.21-brick2 10.10.123.22-brick1
10.10.123.22-brick2 10.10.123.31-brick1 10.10.123.31-brick2
10.10.123.32-brick1 10.10.123.32-brick2
  option lookup-unhashed yes
end-volume







reply via email to

[Prev in Thread] Current Thread [Next in Thread]