Am 15.01.2010 22:09, schrieb Raghavendra G:
Hi Raghavendra,
thanks for taking the time to answer my questions. See below...
Hi paul,
On Fri, Jan 15, 2010 at 11:32 PM, Paul<[email protected]> wrote:
Hi all,
We run glusterFS in our testing lab (since 2.0rc1). We are currently using
client-side AFR (mirror) with two server and two clients over GigE.
Testing is going well except one important point: How do you upgrade with
minimal/zero downtime? Here I have several questions:
1. Is the wire-protocol stable during major releases? Can I mix and match
all 2.0.x client/servers? If not how do find out which one are compatible?
we would suggest you to use both client and server from same version of
glusterfs. Are there any reason for not trying out 3.0?
No specific reason other then not having a clue about the stability of
3.0. I tested 3.0-git over the weekend and got good results. Consecutive
writes of 4 100Mb files with dd yield 14Mb/sec, reading back gives
around 40Mb/sec uncached and 180Mb/sec cached.
#include <benchmark_disclaimer.h>
three:/tmp/glusterfs-git# ./iotest.sh
write some data....(4 time 100MB)
102400000 bytes (102 MB) copied, 6.16526 seconds, 16.6 MB/s
102400000 bytes (102 MB) copied, 6.39431 seconds, 16.0 MB/s
102400000 bytes (102 MB) copied, 8.00558 seconds, 12.8 MB/s
102400000 bytes (102 MB) copied, 7.28237 seconds, 14.1 MB/s
read data back....
102400000 bytes (102 MB) copied, 2.65042 seconds, 38.6 MB/s
102400000 bytes (102 MB) copied, 2.31306 seconds, 44.3 MB/s
102400000 bytes (102 MB) copied, 2.46647 seconds, 41.5 MB/s
102400000 bytes (102 MB) copied, 2.49869 seconds, 41.0 MB/s
deleting data...
The io-cache translator has a cache-size of 256Mb so the working set
size should exceed this. Network settings are slightly tuned:
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.core.rmem_max = 108544
net.core.wmem_max = 108544
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 87380 4194304
net.core.netdev_max_backlog = 500
Below are some results from fio (freshmeat.net/projects/fio). As you can
see it only does 2Mb/sec but I haven't investigates why is is so much
slower than dd (sync)?
./fio randread.fio
random-read: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=sync, iodepth=1
Starting 1 process
random-read: Laying out IO file(s) (1 file(s) / 1024MB)
dnet.ipv4.tcp_mtu_probing = 1Jobs: 1 (f=1): [r] [55.7% done] [2157K/0K
/s] [526/Jobs: 1 (f=1): [r] [64.9% done] [2243K/0K /s] [547/0 iops] [eta
03m:08s]
random-read: (groupid=0, jobs=1): err= 0: pid=30079
read : io=1024MB, bw=2022KB/s, iops=505, runt=518502msec
clat (usec): min=34, max=327696, avg=1969.62, stdev=4750.57
bw (KB/s) : min= 221, max= 6191, per=100.53%, avg=2032.69,
stdev=424.40
cpu : usr=0.20%, sys=0.42%, ctx=262236, majf=0, minf=23
IO depths: 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete: 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued r/w: total=262144/0, short=0/0
lat (usec): 50=17.93%, 100=5.69%, 250=2.25%, 500=0.09%, 750=0.01%
lat (usec): 1000=0.01%
lat (msec): 2=0.02%, 4=73.61%, 10=0.27%, 20=0.05%, 50=0.02%
lat (msec): 100=0.01%, 250=0.03%, 500=0.01%
Run status group 0 (all jobs):
READ: io=1024MB, aggrb=2022KB/s, minb=2070KB/s, maxb=2070KB/s,
mint=518502msec, maxt=518502msec
The config for fio:
[random-read]
rw=randread
size=1024m
directory=/tmp/gluster3_export
BTW: I had terrible results with bigger MTU (6500) and bigger values for
net.core.(r/w)mem_max. IOPS where in the range of 5/sec.
2. Can I export one directory on the servers through multiple instances of
glusterfsd (running on different ports)? This would allow to run old and new
version in parallel for a short time and do a test from the client.
No.
Too bad. Would they step on each other toes WRT state/metadata? After
all it's just userspace no? In light of your answers below im still
searching for a solution to avoid having to shutdown the whole thing.
[snipp]
How do YOU handle upgrades, especially wrt downtime and rolling back to a
known good configuration?
we follow follow order:
1. stop all the services accesing mount point.
2. unmount glusterfs clients.
3. kill all the servers.
4. install new version of glusterfs.
5. start glusterfs servers.
6. start glusterfs clients.
This sounds like I have to shutdown the whole cluster. Not good.
thanks
Paul
_______________________________________________
Gluster-users mailing list
[email protected]
http://gluster.org/cgi-bin/mailman/listinfo/gluster-users
_______________________________________________
Gluster-users mailing list
[email protected]
http://gluster.org/cgi-bin/mailman/listinfo/gluster-users