Nova服务

编程入门 行业动态 更新时间:2024-10-10 13:21:08

<a href=https://www.elefans.com/category/jswz/34/1761713.html style=Nova服务"/>

Nova服务

VNC 访问方式原理

VNC访问方式:
host_ip:port,比如221.130.253.135:1
如何获得虚拟机对应的vnc port?
vncdisplay domain_id
客户端软件: vnc viewer,tightVNC等等
VNC 访问原理:
基于RFB协议,即Remote FrameBuffer protocol
有两部分组成:vnc server和vnc client
Server和client端共享图形界面

由两个服务构成:nova-novncproxy和nova-consoleauth
nova-novncproxy的功能
将公网(public network)和私网(private network)隔离
vnc client运行在公网上,vnc server运行在私网上
vnc proxy作为连接二者的桥梁
通过token对vnc client进行验证
可以同时支持多种vnc client
novnc,基于html5 websockets, Canvas和JavaScripts实现
Spice,redhat的虚拟桌面技术

nova-consoleauth服务
用于进行token的验证

VNC服务流程图


noVNC访问原理
一个用户试图从浏览器里面打开连接到虚拟机的VNC Client
浏览器向nova-api发送请求,要求返回访问vnc的url
nova-api调用nova-compute的get_vnc_console方法,要求返回连接VNC的信息
nova-compute调用libvirt的get_vnc_console函数
libvirt会通过解析虚拟机的的配置文件/instance-00000001.xml来获得VNC Server的信息
libvirt将host, port等信息以json格式返回给nova-compute
nova-compute会随机生成一个UUID作为Token

nova-api会调用nova-consoleauth的authorize_console函数
nova-api将connect_info中的access url信息返回给浏览器
当浏览器试图打开这个链接时,会将请求发送给nova-novncproxy
nova-novncproxy调用nova-consoleauth的check_token函数
nova-consoleauth验证了这个token,将这个instance对应的connect_info返回给nova-novncproxy
nova-novncproxy通过connect_info中的host, port等信息,连接compute节点上的VNC Server,从而开始了proxy的工作
nova-compute将libvirt返回的信息以及配置文件中的信息综合成connect_info返回给nova-api

更多推荐

Nova服务

本文发布于:2024-02-27 15:34:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707147.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Nova

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!