openstack VNC noVNC(多网卡)

本文地址:http://blog.csdn.net/spch2008/article/details/8190863

 

对openstack的vnc配置一直比较模糊,所以决定下决心研究一番。


openstack VNC noVNC(多网卡)_第1张图片


上图为官方文档中多节点,多网卡网络配置图。我的理解:99.99.99.0为公网地址,192.168.0.0为管理地址,10.0.0.0为虚拟机地址。假设上图nova-network服务运行于控制节点上。


openstack VNC noVNC(多网卡)_第2张图片

上图为官方文档中vnc请求流程。我的理解:

  1. nova  get-vnc-console WindowsXP-Sun novnc

  2. Nova-api接受请求,然后将get_vnc_console消息发送到WindowsXP_Sun虚拟机所在的计算节点。

  3. 计算节点接受get_vnc_console消息,产生token;然后调用libvirt driver的get_vnc_console方法,libvirt driver向libvirt server发出请求,

      得到虚拟机监听的vnc端口; libvirt driver检索nova.conf,找到vncserver_proxyclient_address标签,得到vnc host的ip地址。

  4. Nova-api 发送authorize_console消息给Nova-consoleauth,同时记录计算节点返回的信息(token, vnc host ip, vnc port),以token作为索引。

  5. 返回URL(计算节点novnc_proxy_base_url标签加上token参数)

     

   6. 浏览器访问URL

   7.  noVNC监听6080 HTTP 端口,接受此URL请求,然后向Nova-consoleauth发送check_token消息。

   8. nova-consoleauth检查token,找到之前缓存的连接信息。vnc 代理将请求传送到相应的节点。

   9. 在浏览器中出现虚拟机桌面。



所以配置应该为:

#nova-compute使用,此地址加上“?token”返回给用户,需为控制节点ip(控制节点与计算节点,此标签参数相同,都为控制节点IP)

novnc_proxy_base_url = http://controlNodeIP:6080/vnc_auto.html

#libvirt driver 取得此地址。vnc proxy使用此地址,转向具体的compute node

vncserver_proxyclient_addresss= ComputeNodeManageIP

#nova-compute使用,多网卡,具体监听在哪个接口上。使用内部地址安全。如果使用迁移,此地址配置成0.0.0.0,因为迁到别的节点上,

ComputeNodeManageIP地址发生变化,0.0.0.0监听所以接口。

vncserver_listen= ComputeNodeManageIP



根据上图网络,相应配置内容为。

vnc_enable = true

novnc_enable = true

novnc_proxy_base_url = http://99.99.99.1:6080/vnc_auto.html

vncserver_proxyclient_addresss= 192.168.0.3

vncserver_listen= 192.168.0.3


组件安装:

      控制节点:nova-api, nova-consoleauth,noVNC(VNC proxy for browser)

      计算节点:nova-compute,libvirt driver

存疑:

    按常理,计算节点上应该有vncserver,可是经验证没有安装vncserver。存疑?



同样,单网卡情况也适用。







你可能感兴趣的:(openstack VNC noVNC(多网卡))