Chinaunix首页 | 论坛 | 博客
  • 博客访问: 222227
  • 博文数量: 76
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 513
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-23 00:06
个人简介

展示自己、证明自己

文章分类

全部博文(76)

文章存档

2018年(1)

2014年(55)

2013年(20)

我的朋友

分类: 云计算

2014-04-22 19:32:05

摘要: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

阅读(1731) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~