使用Glusterfs作为KVM后端存储

摘要:Glusterfs已经发布到3.4版本了,据称红帽针对vm储存做了优化使其更适合用于虚拟化存储.本文测试使用Glusterfs作为kvm后端存储,通过直接调用glustefs-api,绕过fuse访问虚拟机镜像,避免了fuse带来的性能损耗。

相关阅读:

1.测试环境
CentOS6.4 x86-64

gluster-3.4

qemu-1.5.2

机器:

192.168.1.100:glusterfs+kvm

192.168.1.101-103:glusterfs

gluster集群部署完毕后,创建一个volume用于存放vm镜像

gluster volume create vm-images stripe 2 replica 2  192.168.1.{100,101,102,103}:/data/vm-images
gluster volume start vm-images3.虚拟化机器上安装qemu
centos6自带的qemu1.2版本并不支持glusterfs,这里要编译新版的qemu.

安装qemu前先装上glusterfs-devel

1 rpm –ivh http://download.gluster.org/pub/gluster/glusterfs/3.4/3.4.0/CentOS/epel-6Server/x86_64/glusterfs-devel-3.4.0-8.el6.x86_64.rpm安装依赖的包

1 yum install zlib-devel glib2-devel -y开始编译qemu,加上参数--enable-glusterfs

1 wget http://wiki.qemu-project.org/download/qemu-1.5.2.tar.bz2
2 tar jxvf qemu-1.5.2.tar.bz2
3 cd qemu-1.5.2
4 ./configure --enable-glusterfs  #这里加上enable-glusterfs
5 make;make install4.使用
环境安装完毕,使用qemu-img创建一个虚拟机磁盘

1 /usr/local/bin/qemu-img create -f qcow2 gluster://192.168.1.100/vm-images/disk1 10G创建一个虚拟机

qemu-system-x86_64 --enable-kvm -m 1024 -drive file=gluster://192.168.1.100/vm-images/disk1 -vnc :15 -cdrom /data/CentOS-6.4-i386-minimal.iso现在可以使用VNC连上并安装系统了.

5.后记
qemu连接glusterfs支持多种格式:

gluster://1.2.3.4/testvol/a.img
gluster+tcp://1.2.3.4/testvol/a.img
gluster+tcp://1.2.3.4:24007/testvol/dir/a.img
gluster+tcp://[1:2:3:4:5:6:7:8]/testvol/dir/a.img
gluster+tcp://[1:2:3:4:5:6:7:8]:24007/testvol/dir/a.img
gluster+tcp://server.domain.com:24007/testvol/dir/a.img
gluster+unix:///testvol/dir/a.img?socket=/tmp/glusterd.socket
gluster+rdma://1.2.3.4:24007/testvol/a.img

经过测试发现qemu连接glusterfs是支持高可用的,如gluster://1.2.3.4/testvol/a.img,1.2.3.4宕机将不会影响虚拟机运行.

另外测试过程发现gluster对xfs分区格式兼容性不是太好,会有使用空间大小不正确的现象,解决方法是:

 gluster volume set <volname> cluster.stripe-coalesce enable

相关推荐