摘要:Glusterfs已经发布到3.4版本了,据称红帽针对vm储存做了优化使其更适合用于虚拟化存储.本文测试使用Glusterfs作为kvm后端存储,通过直接调用glustefs-api,绕过fuse访问虚拟机镜像,避免了fuse带来的性能损耗。
相关阅读:
Glusterfs集群文件系统研究
创建Glusterfs分布式RAID10卷
Glusterfs 3.4 Beta 发布,集群文件系统
Glusterfs Rebalance简析
设计新Xlator扩展GlusterFS
1.测试环境
6.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 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
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 cluster.stripe-coalesce enable
qemu-kvm使用gluster协议
为了提高以glusterfs做为存储的 虚拟机的IO性能, Bharata B Rao在qemu-kvm中开发了gluster协议,主要就是让qemu-kvm通过glustefs-api绕过fuse直接访问文件,因为fuse被认为带来了性能损耗。
目前支持gluster协议的qemu-kvm版本是1.3.1以上,还没有方便使用的rpm包,所以我们直接从源码编译安装。
# git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git
# cd qemu-kvm
# ./configure
这时,如果已经安装了glusterfs, GlusterFS support 应该是 yes.
# make && make install
这样,最新的qemu-kvm就装好了,下面建一个简单的gluster卷
# gluster volume create qqq localhost:/qqq
# gluster volume start qqq
挂载卷,并拷贝一个虚拟机镜像xp.qcow2 到卷中,然后卸载卷。
启动虚拟机, 注意drive 参数的格式
# usr/local/bin/qemu-system-x86_64 -drive file=gluster://localhost/qqq/xp.qcow2,format=qcow2 -vnc ::1:5900
此外,qemu-kvm还支持子母盘,即base image。
# qemu-img create -b xp.qcow2 -f qcow2 xp-clone.qcow2
# qemu-img info /mnt/xp-clone.qcow2
image: xp-clone.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 3.7M
cluster_size: 65536
可以看到xp-clone.qcow2的大小才3.7M, 它是以xp.qcow2为母盘的子盘。
用同样的启动命令我们可以启动子盘。
# usr/local/bin/qemu-system-x86_64 -drive file=gluster://localhost/qqq/xp-clone.qcow2,format=qcow2 -vnc ::1:5900
阅读(1817) | 评论(0) | 转发(0) |