记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
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/fedor ... ease-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/ ... rd%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' >> /etc/libvirt/libvirtd.conf
7.2. 修改libvirt spice侦听地址
默认情况下,libvirt中的spice侦听的是127.0.0.1,我们需要改为0.0.0.0

sed -i 's/# spice_listen = "0.0.0.0"/spice_listen = "0.0.0.0"/g' /etc/libvirt/qemu.conf
即可

转载请标明出处【简单易行的虚拟化管理方案-Archipel】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论