I've gotten some requests to give some idea of how to setup CloudStack with GlusterFS and what kind of numbers can be expected. I'm working on a more complete writeup, but thought I'd send something to the maillinglist so I can get an understanding of what questions people have.
Since I'm adding another (small) cluster to my zone I wanted to get some hardware numbers out there and disk access speeds. Hardware consists of two servers with the following config: 1 6-core E5-1650 @ 3.2Ghz (looks like 12 in /proc/cpuinfo) 64GB RAM Raid-10, 4 sas disks @ 3TB each Infiniband Mellanox MT26428 @ 40GB/sec I get ~300MB/sec disk write speeds on the raw xfs-backed filesystem. command used: dd if=/dev/zero of=/gluster/qcow/temp.$SIZE count=$SIZE bs=1M oflag=sync SIZE is usually 20000 to 40000 when I run my tests My xfs filesystem was build with these options: mkfs.xfs -i size=512 /dev/vg_kvm/glust0 I mount xfs volume with these options: /dev/vg_kvm/glust0 /gluster/0 xfs defaults,inode64 0 0 Here is the output of my gluster volume: Volume Name: custqcow Type: Replicate Volume ID: d8d8570c-73ba-4b06-811e-2030d601cfaa Status: Started Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: 172.16.2.13:/gluster/0 Brick2: 172.16.2.14:/gluster/0 Options Reconfigured: performance.io-thread-count: 64 nfs.disable: on performance.least-prio-threads: 8 performance.normal-prio-threads: 32 performance.high-prio-threads: 64 here is my mount entry in /etc/fstab: 172.16.2.13:custqcow /gluster/qcow2 glusterfs defaults,_netdev 0 0 After adding a gluster layer (fuse mount) write speeds per process are at ~150MB/sec. If I run the above dd command simultaneously X3 I get ~100MB/sec per dd. Adding more will proportionally reduce the rate evenly as dd's compete for IO over the glusterfs fuse mountpoint. This means while 1 process with 1 filehandle cannot max out the underlying disks maximum speed - collectively many processes will give me the same speed from the gluster layer to the filesystem. I easily can get full IO out of my underlying disks with many VM's running. here is output from mount on 1 of the boxes: /dev/mapper/system-root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/mapper/vg_kvm-glust0 on /gluster/0 type xfs (rw,inode64) 172.16.2.13:custqcow on /gluster/qcow2 type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072) here is a df: Filesystem Size Used Avail Use% Mounted on /dev/mapper/system-root 81G 1.6G 76G 3% / tmpfs 32G 0 32G 0% /dev/shm /dev/sda1 485M 52M 408M 12% /boot /dev/mapper/vg_kvm-glust0 4.0T 33M 4.0T 1% /gluster/0 172.16.2.13:custqcow 4.0T 33M 4.0T 1% /gluster/qcow2 NOTES: I have larger cloudstack clusters in production with similar setups but it is a Distributed-Replicate (6 bricks with replication 2). Native Infiniband/RDMA is currently extremely crappy in gluster - at best I've been able to get 45MB/sec per process and higher load. Everything above is IPoIB. GlusterFS version 3.3.1. I run the cloud-agent and qemu-kvm with CentOS6.3 (old cluster). This cluster is qemu-kvm on CentOS6.4. Primary storage is sharedmountpoint to /gluster/qcow2/images. -Bryan