摘要: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
2.Glusterfs存储集群部署
先部署好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 安装依赖的包
1 yum install zlib-devel glib2-devel -y开始编译qemu,加上参数--enable-glusterfs
1 wget
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