Nova服务-VNC服务

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值