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' >> /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
即可.
No comments:
Post a Comment