利用 QGA 来助力 OpenStack 私有云
问题描述
由于 OpenStack 起初设想是按照亚马逊的 AWS 来的,所以在尝试用 OpenStack 搭建私有云时,经常会碰到一些水土不服的事儿,其中之一就是获取不了虚拟机的真实地址。
在OpenStack 中, Instance 的 ip 可以由用户进行任意修改,而 Dashboard 甚至于接口显示的 ip 都是从数据库中读取,两者不一致的问题格外显眼。
而私有云的标杆: VMWare 却没有这个问题,不仅显示虚拟机 ip 正确,还能根据 ip 来查找虚拟机。
解决
问题的本质是 ESXI 的虚拟机提供了 VMWare-tools 来与主机进行互交,而 OpenStack 是 KVM ,求助了一下万能的百度,发现
http://blog.csdn.net/tcxp_for_wife/article/details/41855129
ARP…也没啥好方法。不过一次偶然的机会,我接触到了 QGA ,感觉它就是适用于 Libvirt 的VMWare-tools。
使用Qemu-Guest-Agent
QGA 是 Qemu-Guest-Agent 的简称,即是在虚拟机上增加一个串口与主机进行socket通信。
看一下虚拟机的XML文件:
<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu