Re: [Gluster-users] glusterfs + cloudstack setup

2013-05-17 Thread Andrei Mikhailovsky
Bryan, 

Thanks for your answers. Indeed, secondary storage is not used much if you do 
not have regular snapshotting taking place, as Nux suggested. In my case it 
will be the case so I was looking at using gluster for that. However, secondary 
storage vm seems to freeze the mountpoint if it tries to write something to it. 
It is very odd as I can see that ssvm created a bunch of folder and files, but 
all of them have 0 size. Also, I am unable to access that mountpoint for long 
time periods as any commands like du -h mount point or ls -lR mountpoint 
freeze for tens of minutes. 

Regarding your gluster + kvm setup, I would be very interested to learn how 
you've managed to achieve speeds of up to 150mb/s. Am i right in uderstanding 
that these are the vm disk speeds and not the glusterfs mountpoint speeds on 
the host side? 

When I was doing my testing I've faced a very interesting problem. The host 
mountpoint speeds (using dd and /dev/zero) were pretty impressive. I know that 
it's not the real data, but still. I was getting around 700-800MB/s from a 
single client. However, running the same command from the vm was giving me a 
maximum of 50MB/s. 

Do you mind sharing how you've got speeds of 150mb/s? 

Many thanks 
- Original Message -

From: Bryan Whitehead dri...@megahappy.net 
To: Andrei Mikhailovsky and...@arhont.com 
Cc: gluster-users gluster-users@gluster.org 
Sent: Thursday, 16 May, 2013 10:07:59 PM 
Subject: Re: glusterfs + cloudstack setup 

I've been slowly working on a full-writeup/case-study. I've just been 
drowning in other work. 

Anyhow, for the secondary storage I've just used regular NFS export. 
Once a template gets deployed (copied to a primary storage system on a 
shared-mount) it doesn't need to be copied again. Secondary storage is 
hardly used except for the occasional snapshot and new template. 

On Thu, May 16, 2013 at 1:28 PM, Andrei Mikhailovsky and...@arhont.com wrote: 
 Hi Bryan, 
 
 I've read about your adventures with infiniband and cloudstack on 
 http://www.marshut.com/kqss/cloudstack-glusterfs-over-infiniband.html. I was 
 wondering if you could share how you've setup your secondary storage in 
 cloudstack? Have you done this through nfs over glusterfs? If so, would you 
 mind sharing a bit more information? I am setting up a similar 
 infrastructure and is currently having issues with the secondary storage vm 
 and nfs over glusterfs mountpoint. 
 
 Many thanks 
 
 Andrei 
 

___
Gluster-users mailing list
Gluster-users@gluster.org
http://supercolony.gluster.org/mailman/listinfo/gluster-users

Re: [Gluster-users] glusterfs + cloudstack setup

2013-05-17 Thread Bryan Whitehead
I think you are referring to this statement: After adding a gluster
layer (fuse mount) write speeds per process are at ~150MB/sec.

So the raw fs write speed for 1 or more processes against a mountpoint
on xfs I get ~300MB/sec. After the fuse layer is added (with replica=2
as shown in my config) I'm getting 150MB/sec for 1 process (still not
inside a VM). If I add another process I get roughly another 150MB/sec
on that process. Adding a third process - each process is only pushing
100MB/sec (so 3 processes writing as fast as they can are collectively
getting 300MB/sec). In practice (outside the lab) I have more than 2
machines so it hard to go back and figure out exactly what the total
bandwidth or write speed ends up being because replica=2 with 6 bricks
and where a hash ends up hitting all make benchmarking difficult.

Inside a VM I typically can push 50-70MB/sec when the qcow2 file is
living on glusterfs mount. If I create a VM that lives on a local
mountpoint (non-gluster non-shared filesystem) I get 70-90MB/sec (this
is using the same hardware/raid as my gluster bricks). So using a
mountpoint where I can easily push 300MB/sec with dd sucks once qcow2
adds its layer. Interestingly, if I run dd=/dev/zero of=/tmp/blah and
let the disk fill up inside the VM, then delete the temp file the
speed on a gluster mountpoint vs local proportionally shifts for the
better. Basically once a qcow2 file is fully-grown (not expanding) I
get 70-110MB/sec on a gluster mount and 90-130MB/sec on locally
mounted qcow2 filesystem. I'm assuming the write speeds remain lame as
the qcow2 file probably grew in some really retarded way as ext4
allocated non-contiguous blocks inside the VM while the qcow2 file
grew in a contiguous manner. This means the qcow2 file is basically a
scrambled mess of pointers to small out of order blocks.

I can do the same 'per process' idea where I spin up 2, 3, 4, 5, 6,
... N VM's running on the glusterfs mountpoint (as apposed to simple
dd processes) and have them all go crazy writing. I'll end up maxing
out the underlying block devices. so roughly after 6 VM's are dd-ing
like crazy (inside the vm) I've maxed the IO out. 50MB/sec * 6 VM's =
300MB/sec (well 600MB/sec because replica=2). 2 machines in the test
cluster and they each have a brick that can do 300MB/sec. with
replica=2, 6 VM's going full speed have used 100% of my IO resources
available. So to be honest - I think that means everything is a-ok. It
would be nice if 1 VM could push a full 300MB/sec. But that isn't even
remotely happening even when using a native mount with qcow2. The nice
part of many processes seeking for data non-contiguously in a qcow2
file is it is happening N times so overall I still get pretty decent
speeds. Read performance seems to be pretty good (I say this
non-empirically since my disk related issues have been write speed
related - read benchmark blurb below).

The growing/resizing of a qcow2 files suck. They suck more when on top
of glusterfs (with replica=2 anyway). Growing a file across 2
filesystems on 2 different bricks on 2 different boxes is just going
to cost some kind of time somewhere. Either brick a or brick b is
going finish before the other and one will wait for the other.

Knowing that worst case I'm going to get 50-70MB/sec inside a VM I
focus on making sure scaling out horizontally is *really* working.

My biggest regret on all these benchmarks I did: I pretty much skipped
out on doing a full round of read benchmarks. Also, I just don't have
the same hardware in my lab that matches anymore to avoid having to
redo all my benchmarks (can't just do some read benchmarks since the
hardware used is now in production). :(

Once native gluster support in qemu hits the mainstream the qcow2 will
go away and things should be ... better.
___
Gluster-users mailing list
Gluster-users@gluster.org
http://supercolony.gluster.org/mailman/listinfo/gluster-users


[Gluster-users] glusterfs + cloudstack setup

2013-05-16 Thread Andrei Mikhailovsky
Hi Bryan, 

I've read about your adventures with infiniband and cloudstack on 
http://www.marshut.com/kqss/cloudstack-glusterfs-over-infiniband.html. I was 
wondering if you could share how you've setup your secondary storage in 
cloudstack? Have you done this through nfs over glusterfs? If so, would you 
mind sharing a bit more information? I am setting up a similar infrastructure 
and is currently having issues with the secondary storage vm and nfs over 
glusterfs mountpoint. 

Many thanks 

Andrei 

___
Gluster-users mailing list
Gluster-users@gluster.org
http://supercolony.gluster.org/mailman/listinfo/gluster-users

Re: [Gluster-users] glusterfs + cloudstack setup

2013-05-16 Thread Nux!

On 16.05.2013 22:07, Bryan Whitehead wrote:

Anyhow, for the secondary storage I've just used regular NFS export.
Once a template gets deployed (copied to a primary storage system on a
shared-mount) it doesn't need to be copied again. Secondary storage is
hardly used except for the occasional snapshot and new template.


Hi,

Just throwing in my 2 pence.

Depending on the nature of the deployment, the occasional snapshot 
can become the daily snapshot or even more frequent, depends how many 
customers you have and what need they have of the snapshots (i.e. for 
regular backups).
In these cases the NFS backed secondary storage can quickly become a 
bottleneck.
I'd either push for making the secondary storage VM glusterfs-aware (or 
at least NFS v3 via TCP) or enable Swift for the zone (and use the 
glusterfs-swift proxy - UFO).
I'm not sure what Swift's role is in Cloudstack, but if it's what I 
think it is then it should scale much better.


Lucian

--
Sent from the Delta quadrant using Borg technology!

Nux!
www.nux.ro
___
Gluster-users mailing list
Gluster-users@gluster.org
http://supercolony.gluster.org/mailman/listinfo/gluster-users