使用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