<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="kvm的虚拟化管理方案-Archipel">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2014-09-08 08:59<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
kvm的虚拟化管理方案-Archipel


1. Archipel介绍

    一个开源的虚拟化管理方案

    基于libvirt,可以方便的将virt-manager/virsh/virt-install等方式创建的虚拟机导入进来

    使用XMPP协议(Extensible Messaging and Presence Protocol)通信,成熟的通信协议,Gtalk就是用XMPP.




    XMPP从某种程度来说相当于消息队列

    XMPP Server使用ejabberd,一个流行的支持高并发的XMPP Server,同时又有扩容和集群设计

    因为XMPP的特性,Archipel号称实时管理

    同样也是XMPP的优势,可选其它客户端,只要支持XMPP即可.




    这意味着,手机上也可以管理虚拟机了!






    支持多帐号和权限配置

    支持实时迁移

    VMCasts功能可以很方便的制作和分发虚拟机模板

    UI用户界面是测试使用过的开源虚拟化管理平台中(CloudStack/oVirt/OpenQRM/Ganeti Web Manager/proxmox/OpenStack/)**最易用**的





2. 概念
Host = 安装kvm，直接运行在硬件上的操作系统

Guest = 跑在Host中的虚拟机

XMPP = 可扩展消息协议




3. 预览



4. 需要安装的软件

    qemu-kvm 0.12以上版本，编译时开启spice选项

    spice-client，客户端连接需要，服务器可以不装

    libvirt，安装于每台KVM主机，提供虚拟化管理的API

    archipel-agent，安装于每台KVM主机，调用libvirt来管理虚拟机，由Archipel的Web GUI来调用。





5. 安装

5.1. KVM主机
#!highlight bash
yum install libvirt libvirt-python python-setuptools python-devel numpy
easy_install archipel-agent



5.2. XMPP Server

5.2.1. bin方式
#去 http://www.process-one.net/en/ejabberd/downloads 下载对应的安装包，文件名类似 ejabberd-2.1.10-linux-x86_64-installer.bin
chmod +x ejabberd-2.1.10-linux-x86_64-installer.bin
./ejabberd-2.1.10-linux-x86_64-installer.bin
#然后一路回车
#您接受这个软件授权协议吗? [y/n]: y
#安装目录 [/opt/ejabberd-2.1.10]:
#ejabberd服务器域名  [localhost]: your.fqdn.com
#管理员用户名  [admin]:
#管理员密码  :123456
#重新输入密码  :123456
#集群 [y/N]:
#您确定要继续? [Y/n]:
#OK
useradd ejabberd
chown -R ejabberd /opt/ejabberd-2.1.10



5.2.2. (可选)Yum/rpm方式
#!highlight bash
rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-5.noarch.rpm
#rpm -ivh 'ftp://ftp.muug.mb.ca/mirror/centos/6.2/os/x86_64/Packages/libntlm-1.0-3.el6.x86_64.rpm'
#yum install ejabberd



5.2.3. 配置XMPP Server

5.2.3.1. 使用打包好的配置
#!highlight bash
wget https://wiki.muxueqztools.googlecode.com/hg/ejabberd.cfg -O /opt/ejabberd-2.1.10/conf/ejabberd.cfg
sed -i 's/xmpp.example.com/your.FQDN.com/g' /opt/ejabberd-2.1.10/conf/ejabberd.cfg'
#启动服务
/opt/ejabberd-2.1.10/bin/ejabberd.init  start



5.2.3.2. (可选)手动配置
#修改DNS解析，在DNS Server或/etc/hosts中添加下面一行
X.X.X.X    your.fqdn.com #X.X.X.X为XMPP Server的IP，your.fqdn.com是你XMPP的域名
#剩余的按照 https://github.com/primalmotion/Archipel/wiki/Ejabberd%3A-Configuration 中的配置



5.2.3.3. 参考配置
[[/ejabberd.cfg]]










6. 将KVM主机添加到Archipel管理中

6.1. 添加第一个Archipel-agent
#!highlight bash
#初始化生成Archipel-agent配置文件
archipel-initinstall -x your.FQDN.com
#初始化XMPP Server上的数据
archipel-tagnode --jid=admin@FQDN --password=YOURPASSWORD --create
archipel-rolesnode --jid=admin@FQDN --password=YOURPASSWORD --create
archipel-adminaccounts --jid=admin@FQDN --password=YOURPASSWORD --create
archipel-vmparkingnode --jid=admin@FQDN --password=YOURPASSWORD --create
[OPTIONAL] archipel-vmrequestnode --jid=admin@FQDN --password=YOURPASSWORD --create

#启动libvirtd
/etc/init.d/libvirtd start

#将Archipel-agent添加到XMPP Server中
archipel-vmparkingnode --jid=admin@FQDN --password=YOURPASSWORD -a hypervisor_jid@FQDN
/etc/init.d/archipel start
以后的Archipel-agent不需要执行上面的命令，执行下面的即可

#!highlight bash
archipel-initinstall -x your.FQDN.com
archipel-vmparkingnode --jid=admin@FQDN --password=YOURPASSWORD -a hypervisor_jid@FQDN
/etc/init.d/libvirtd start
/etc/init.d/archipel start





7. 注意事项

7.1. 修改libvirt连接数限制
默认情况下，libvirt中限制最多只有20个客户端连接 当虚拟机数量接近的时候，可能会出现这样的错误报告 ：

error: Failed to reconnect to the hypervisor
error: no valid connection
error: Cannot recv data: Connection reset by peer
可以加大：

echo 'max_clients = 200' &gt;&gt; /etc/libvirt/libvirtd.conf



7.2. 修改libvirt spice侦听地址
默认情况下，libvirt中的spice侦听的是127.0.0.1，我们需要改为0.0.0.0

sed -i 's/# spice_listen = &quot;0.0.0.0&quot;/spice_listen = &quot;0.0.0.0&quot;/g' /etc/libvirt/qemu.conf
即可




</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
