云桌面相关背景知识
VDI Virtual Desktop Infrastructure 虚拟桌面基础架构
虚拟桌面架构采用“集中计算,分布显示”的原则,通过虚拟化技术,将所有客户端的运算合为一体,在企业数据中心内进 行集中处理,而桌面用户采用瘦客户端或专用小型终端机的方式,仅负责输入输出与界面显示,不参与任何计算和应用。
顾名思义,“虚拟桌面”即用户所访问的桌面不是其真正意义上的PC端桌面,而是通过一定的方式连接到一个位于数据中心的桌面,我们可以在本地PC机上对这个虚拟桌面
进行操作,这有点类似于我们之前经常使用的远程桌面,只不过之前的远程桌面是通过网络来操作另一台计算机上的桌面,而现在我们是直接访问一个大的数据中心,来得到我们想要操作的桌面,并且使用它的资源。目前虚拟桌面解决方案主要分为VDI和SBC(Serverd-Based Computing)2大类。
- 前者是在服务器侧为每个用户准备其专用的虚拟机并在其中部署用户所需的操作系统和应用,然后通过桌面显示协议将完整的虚拟机桌面交付给远程的用户。
- 后者是将应用软件统一安装在远程服务器,用户通过和服务器建立的会话对服务器桌面及应用进行访问和操作,不同用户之间的会话是彼此隔离的。
VDI实现原理
- VDI的具体实现方式就是图中的VDI proxy如何实现,也就是我们下面所要讨论的实现协议,这些协议将用户发出的连接请求进行拦截,并根据一定的规则找到闲置的虚拟桌面,再将用户的私有数据进行还原,将二者连接。
VDI优势
- 节约客户端管理成本,降低故障率
- 提高桌面计算性能,因此虚拟桌面所有的计算均在服务器完成
- 简单快速的部署与实施与升级
- 可靠的数据安全,瘦客户端本地不存储任何数据,很大程度上减少了信息泄露的可能
实现的协议介绍(spice、vnc、rdp),进行对比
- spice(Simple Protocol for Independent Computing Environment),是Red Hat 开发的开源的专门的桌面虚拟化数据传输协议。
- 用于在服务器和远程桌面(瘦终端)上部署虚拟桌面。
spice协议定义了spice的三个组件Client、Server、Guest之间的交流。
从图中我们可以清楚地看到client通过网络与server进行连接来获取虚拟桌面,通过spice协议与server进行通信。这个Server就与VDI后台连接起来,可以将虚 拟桌面及数据传送给client,与其通信。这个Guest端则是包含了所有虚拟机运行所必须的软件,比如说QXLdriver,SpiceVDIagent。
SPICE协议架构
交互
Spice Agent 运行在Guest OS之中,server和client 利用agent执行在虚拟机里的任务。Client和Server产生的消息被写入到设备的输出环中,由VDI Port Driver读取给Agent,而Agent发出的消息则通过VDI Port Driver先写入到VDI Port Device输入环中,被读入到server的缓冲区中,然后再根据消息决定由Server直接处理,还是被发往Client中。VNC(Virtual Network Computing)是基于RFB(Remote Frame Buffer)协议进行通信的,是一个基于平台无关的简单显示协议的超级瘦客户系统,
- VNC基本上是由两部分组成,一部分是客户端的应用程序(vncviewer),另外一部分是服务器端的应用程序(vncserver)。
- 任何安装了客户端的应用程序(vncviewer)的计算机都能十分方便地和安装了服务器端的应用程序(vncserver)的计算机相互连接。
- RFB是基于tcp的一个应用层协议。
RFB协议对于客户端是无状态的。也就是说:如果客户端从服务器端断开,那么如果它重新连接相同的服务器,客户端的状态会被保存。
VNC工作流程:
- 1.在服务器端启动 VNC Server。
- 2.VNC客户端通过浏览器或 VNC Viewer 连接至VNC Server。
- 3.VNC Server传送一对话窗口至客户端,要求输入连接密码, 以及存取的VNC Server显示装置。
- 4.在客户端输入联机密码后,VNC Server验证客户端是否具有存取权限。
- 5.若是客户端通过 VNC Server 的验证,客户端即要求VNC Server显示桌面环境。
- 6.VNC Server通过X Protocol 要求X Server将画面显示控制权交由VNC Server负责。
- 7.VNC Server将来由 X Server 的桌面环境利用VNC通信协议送至客户端, 并且允许客户端控制VNC Server的桌面环境及输入装置。
RDP(Remote Desktop Protocol,远程桌面协议)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。
- 所有的计算都在服务器端进行,客户端只需要处理网络连接、接收数据、界面显示和设备数据输出。
基本层次结构:
1.网络连接层
2.ISO数据层
3.虚拟通道层
4.加密解密层
5.功能数据层连接过程说明:
1) 客户端连接服务器
2) ISO数据层建立连接
3) 发送初始协议相关信息,接收加密、解密密钥
4) 虚拟通道申请
5) 加密形式发送客户端系统信息,同时验证加密协议
6) 平台软件证书验证
7) 各功能建立连接,各功能数据传输,功能实现- 三种协议的对比
SPICE | VNC | RDP |
---|---|---|
BIOS屏幕显示 | 能 | 能 |
全彩支持 | 能 | 能 |
更改分辨率 | 能 | 能 |
多显示器 | 支持(高达4画面) | 只有一个屏幕 |
图像传输 | 图像和图形传输 | 图像传输 |
视频播放支持 | GPU加速支持 | 不能 |
音频传输 | 双向语音可以控制 | 不能 |
鼠标控制 | 客户端服务器都可以控制 | 服务器端控制 |
USB传输 | USB可以通过网络传输 | 不能 |
使用系统 | linux | windows、linux |
网络流量 | 较大 | 较小 |
- 集成脚本修改了什么配置文件导致控制台可以直接用spice而不是用vnc?(请给出相关的配置文件截图)
- Nova是OpenStack Compute的代号,是OpenStack的重要组成部分,它负责维护和管理OpenStack的计算资源,虚拟机生命周期管理也就是通过Nova来实现的。
- 对于Nova这些服务会部署在两类节点上,计算节点和控制节点,计算节点上安装了Hypervisor,上面运行虚拟机,只有nova-compute需要放在计算节点上,其他子服务则是放在控制节点上的。
- 我们打开nova.conf文件
![](https://github.com/south270/Image/blob/master/18shixun/task5/1.PNG?raw=true)
我们找到关于VNC的相关配置
vnc_enabled=False 该配置关闭了VNC的使用
关于SPICE的配置
enabled = True 该配置开启了SPICE协议,同时还需要其他的配置来控制SPICE