websocket nova vnc proxy
1. vnc proxy的实现原理
vnc 是nova提供的用来访问虚拟机的一项重要功能,用户可以通过websocket来访问,也可以通过java客户端来访问。通过websket访问虚拟机 的功能已经集成到horizon中,而通过java客户端则需要先安装相应的软件。为了方便用户访问虚拟机,nova通过有一个proxy来实 现,proxy通常放在一个所有人都可以访问的IP地址。
vnc访问的实现方法如下,首先是启动一个虚拟机时启用vnc,这可以通过给kvm加上vnc参数即可。这样,kvm就会启动一个vncserver监听虚拟机。通过websocket来访问虚拟时,其步骤如下:
1. 通过nova-api获取访问url,url的格式是:http://ip:port/?token=xxx,该地址实际上就是vnc
proxy的地址。
2. 浏览器连接到vnc proxy
3. vnc proxy连接到nova-consoleauth来验证token,并将token映射到虚拟机所在的宿主机的ip地址和某个端口,该端口就是虚拟机启动时所监听的端口。
4. vnc proxy与虚拟机所在的宿主机的vncserver建立连接,并开始代理,直到浏览器session结束。
在 nova.conf中,计算节点可以指定vncserver的监听地址及vnc
proxy应该通过那个地址连接到vncserver,该选项就是vncserver_proxyclient_address。vnc
proxy充当了公网和计算节点之间的桥梁,此外还需要对vnc协议进行封装。
2. vnc proxy配置方法
通常情况下,为了提供完整的vnc功能,需要部署三个服务:
nova-consoleauth: 提供token验证,维护token与ip地址、端口号的映射。
nova-novncproxy: 支持基于浏览器的vnc 客户端,通常与nova-api部署在一起。
nova-xvpvncproxy: 支持基于java的vnc客户端,,通常与nova-api部署在一起。
此外还需要对计算节点进行设当的配置。具体如下:
- vnc_enabled=True 启用虚拟机的vnc功能。
- vncserver_listen=0.0.0.0 默认是127.0.0.1,即只可以从本机进行访问,通常情况下是配置为管理网的IP地址。设置为0.0.0.0主要是考虑到动态迁移时,目的宿主机没有相应的IP地址,动态迁移会失败。
- vncserver_proxyclient_address 该地址指明vnc proxy应该通过那个IP地址来连接vncserver,通常是管理网IP地址。
- novncproxy_base_url=http://$SERVICE_HOST:6080/vnc_auto.html 指定浏览器client应该连接的地址。$SERVICE_HOST通常是一个公网IP地址。
- xvpvncproxy_base_url=http://$SERVICE_HOST:6081/console 指定java client应该连接的地址。$SERVICE_HOST通常是一个公网IP地址。
vnc proxy的配置则相对简单,只需要设置其监听的主机和端口即可。具体如下:
novncproxy_host=$SERVICE_HOST 通常为一个公网IP。
novncproxy_host=6080
xvpvncproxy_host=$SERVICE_HOST 通常为一个公网IP。
xvpvncproxy_port=6081
websocket nova vnc proxy的更多相关文章
- nova vnc proxy基本原理
先上图 VNC Proxy的功能: 将公网(public network)和私网(private network)隔离 VNC client运行在公网上,VNCServer运行在私网上,VNC Pro ...
- Linux(CentOS、Ububtu)一键安装Openstack及其它参考文档汇总
原文链接 http://www.aboutyun.com/thread-10920-1-1.html openstack相关资料 CentOS下一键安装Openstack http://blog. ...
- CentOS下一键安装Openstack
CentOS下一键安装Openstack 系统环境:Oracle VirtualBox 4.38CentOS-6.5-x86_64-bin-DVD1.iso 安装前需要修改 /etc/hosts文件, ...
- 当发现你的OpenStack虚拟机网络有问题,不妨先试一下这16个步骤
1. Security Group全部打开,这是最基本的,但是很多人容易忘记 其实遇到过无数这种场景了,Debug了半天网络问题,各种手段都用上了,最后发现安全组竟然没有打开. 2. 通过界面查看虚拟 ...
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5)
八.KVM 这一步,像virsh start命令一样,将虚拟机启动起来了.虚拟机启动之后,还有很多的步骤需要完成. 步骤38:从DHCP Server获取IP 有时候往往数据库里面,VM已经有了IP, ...
- RDO快速部署OpenStack
RDO快速部署OpenStack 1.RDO是什么 RDO是红帽Red Hat Enterprise Linux OpenStack Platform的社区版,类似RHEL和Fedora,RHEV和o ...
- Openstack CentOS6.5 ALL IN ONE 安装
本文档以RDO的方式安装单节点.单网卡的Openstack. RDO是可在Red Hat Enterprise Linux.Fedora及其变体上运行的社区支持OpenStack版本.部署简单方便,R ...
- packstack安装ironic
KVM Centos7.3虚机 安装openstack Pike版本, 其它版本安装方法类似. packstack目前对NetworkManager 还不支持,我们修改下配置: systemctl d ...
- Centos7 install Openstack Juno (RDO) (转载)
原文地址:http://www.hdume.com/centos-7-0%E5%AE%89%E8%A3%85openstack/ 1.安装系统,Centos7镜像采用CentOS-7.0-1406-x ...
随机推荐
- IDL绘制黑体辐射曲线
普朗克定律是热红外遥感中常常使用的三大定律之一,描述了黑体辐射能量的情况.绝对黑体的辐射光谱对于研究一切物体的辐射规律具有根本的意义.1900年普朗克引进量子概念,将辐射当做不连续的量子发射,成功地从 ...
- ASP.NET-FineUI开发实践-12
1.网上找到了行合并的示例,extjs写的,我把它挪过来改了下,FineUI也能用,就是只能放着看,选择和编辑行扩展列没有测试,放出来大家看着用吧. <script> F.ready(fu ...
- 开发solr功能问题点
Criteria criteria = new Criteria(); public Criteria and(Criteria criteria) { this.criteriaChain.add( ...
- (转)ThinkPHP自定义标签
第一:在当前应用下的Conf文件夹中config.php加两个配制项: 'TAGLIB_LOAD' => true,//加载标签库打开 'APP_ ...
- c#隐式转换之有符号位转换
有符号位类型的转换,额外的高位用源表达式的符号位填充.这样就维持了被转换的值的正确符号和大小. 特别注意的是负数的转换,额外的高位用1填充,因为负数的二进制表示是对应正数的二进制取反加1,所以高位用1 ...
- 抓取锁的sql语句-第五次修改
CREATE OR REPLACE PROCEDURE SOLVE_LOCK AS V_SQL VARCHAR2(3000); --定义 v_sql 接受抓取锁的sql语句V_SQL02 VARCHA ...
- iOS加载启动图的时候隐藏statusbar + 指定启动图显示多少秒
只需需要在info.plist中加入Status bar is initially hidden 设置为YES 补充一下,现在手机越来越快,在6+下面启动图一闪而过,而美工童鞋辛辛苦苦做的图就看不到鸟 ...
- JVM调优实践-Tomcat调优
调优几个重要指标 GC频率 提升每次GC的效率 准备环节 jmeter的配置 未压测前JVM配置 工程未调优前配置 -Xms400m -Xmx400m -XX:PermSize=64m -XX:Max ...
- Animator Override Controllers 学习及性能测试
本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/Unity_AnimatorOverrideContorller.html The ...
- 『重构--改善既有代码的设计』读书笔记----Replace Method with Method Object
有时候,当你遇到一个大型函数,里面的临时变量和参数多的让你觉得根本无法进行Extract Method.重构中也大力的推荐短小函数的好处,它所带来的解释性,复用性让你收益无穷.但如果你遇到上种情况,你 ...