sheepdog是一个专门为qemu设计的虚拟机分布式文件系统,采用完全对称的结构,没有元数据服务的中心节点,因此免除了单点故障的隐患.本文基于最新的0.7.0版本测试,介绍sheepdog的安装配置和使用. sheepdog的后端集群管理 sheepdog的后端集群管理用于管理节点间的成员关系和消息通讯.目前可使用四种模式,分别是local driver(用于单机测试),corosync (默认), zookeeper and Accord. 分为两种模型: – 全对称 (依赖 Corosync ,运行于 Sheepdog 的地址空间) ● 缺点:规模小 [<100] ● 优点:无需配置 – 单独的控制集群 (依赖 Accord* 或者 Zookeeper ,运行于独立地址空间) ● 缺点:需要配置控制集群 ● 优点:规模大 [>1000] 本测试使用的就是默认的Corosync模式. 安装前准备: 先做一些系统设置 echo "* soft nofile 65533" >> /etc/security/limits.conf echo "* hard nofile 65533" >> /etc/security/limits.conf yum install -y make automake autoconf gcc nss-devel wget git glib2安装epel源 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm安装sheepdog 1).安装corosync centos6自带的版本过旧,我们需要安装新版 yum remove corosync corosynclib corosynclib-devel -y git clone git://github.com/corosync/corosync.git cd corosync git checkout -b flatiron origin/flatiron ./autogen.sh ./configure --enable-nss make install 2).安装sheepdog cd /home2/install git clone git://github.com/collie/sheepdog.git cd sheepdog ./autogen.sh ./configure make install配置corosync和sheepdog cd /etc/corosync cp corosync.conf.example corosync.conf编辑corosync.conf修改bindnetaddr成你的网段如192.168.1.0 # delayed/resent/misordered multicast packets. # fail_recv_const: 5000 interface { ringnumber: 0 bindnetaddr: 192.168.1.0 mcastaddr: 226.94.1.1 mcastport: 5405 } } logging { fileline: off to_stderr: no to_logfile: yes to_syslog: yes # the pathname of the log file logfile: /var/log/cluster/corosync.log debug: off timestamp: on logger_subsys { subsys: AMF debug: off } } amf { mode: disabled }启动服务 /etc/init.d/corosync start #或通过命令启动(/var/lib/sheepdog是sheepdog使用的数据目录,你可以更改到其他) #sheep /var/lib/sheepdogsheepdog要求/var/lib/sheepdog目录所在的分区支持xattr mount -o remount,user_xattr /以上操作需要在每一台sheepdog节点执行 格式化sheepdog集群并设置3个副本,只需要在其中一台节点执行 collie cluster format --copies=3查看节点状态 collie node list至此sheepdog集群已经配置完毕 使用qemu-img创建sheepdog磁盘镜像 由于centos6自带的qemu1.2版本并不支持sheepdog,这里要编译新版的qemu. 安装依赖的包 yum install zlib-devel glib2-devel -y编译qemu wget http://wiki.qemu-project.org/download/qemu-1.5.2.tar.bz2 tar jxvf qemu-1.5.2.tar.bz2 cd qemu-1.5.2 ./configure make;make install 创建磁盘 /usr/local/bin/qemu-img create -f qcow2 sheepdog:MyFirstDisk 10G如果sheepdog运行在其他机器上,需要指定IP和端口 /usr/local/bin/qemu-img create -f qcow2 sheepdog:192.168.1.100:7000:MyFirstDisk 10G列出sheepdog里的镜像 collie vdi list将现有的镜像转换到sheepdog里 qemu-img convert ./mysystem.raw sheepdog:mysystem 启动虚拟机 qemu-system-x86_64 --enable-kvm -m 1024 -drive file=sheepdog:MyFirstDisk,cache=writeback -vnc :15 -cdrom /data/CentOS-6.4-i386-minimal.iso 其他用法 1)创建快照 qemu-img snapshot -c name sheepdog:MyFirstDisk快照创建后查看镜像列表 collie vdi list name id size used shared creation time object id -------------------------------------------------------------------- Bob 0 2.0 GB 1.6 GB 0.0 MB 2010-03-23 16:16 80000 MyFirstDisk 0 256 GB 0.0 MB 0.0 MB 2010-03-23 16:21 c0000 s MyFirstDisk 1 256 GB 0.0 MB 0.0 MB 2010-03-23 16:16 40000用快照启动虚拟机 qemu-system-x86_64 sheepdog:MyFirstDisk:12)磁盘克隆 qemu-img create -b sheepdog:MyFirstDisk sheepdog:Disk23)关闭sheepdog集群 collie cluster shutdown此命令会关闭所有节点的进程 4)使用fuse挂载sheepdog 首先建立一个名为my_volume的卷 echo my_volume > /var/lib/sheepdog/vdi/mount格式化为ext4并挂载 mkfs.ext4 /var/lib/sheepdog/volume/my_volume mount -o loop /var/lib/sheepdog/volume/my_volume /mnt当连接的sheepdog机器宕机我们可以在线切换到另一台sheepdog echo ip:port > /var/lib/sheepdog/config/sheep_infoFrom:http://my.oschina.net/kisops/blog/153576 转载请保留固定链接: https://linuxeye.com/Linux/1904.html |