桌面虚拟化简介
主流虚拟桌面产品
下表列出了一些著名
IT
公司的桌面虚拟化产品
,
但不是全部,仅供参考:
从表
1
中可以看出,桌面虚拟化的主要推动者以从事虚拟化技术的公司为主。
VMware
的
Hypervisor
立足于
ESX(i) server
,
Citrix
的是
Xen
,
Microsoft
有
Hyper-V
等,服务器端虚拟化的成功,使得他们在
VDI
方面要比其他公司稍微领先一些。
在这里,笔者准备介绍一下
VMware
和
Citrix
两家公司的
VDI
产品,然后进行一些比较。
VMware view
的后端由
vSphere
所管理的一群
ESX(i)
服务器组成,
每个服务器上运行用户的虚拟机,客户端只要安装一个基于
PCoIP
的
thin client
,就能访问在服务器端的
VDI service
。
PCoIP
协议的全称是
PC-over-IP,
发明者是
Teradici[15]
和
VMware
。
PCoIP
的实现基于传输层的
UDP
协议,提供了三个重要的特性:
a)
服务器端渲染技术
(Host rendering)
。那么从服务器传送到客户端的数据只是一些加密的像素,客户端只需要有解码的能力即可,
无需知道服务器端究竟运行了什么样的程序
.
b)
对不同图像采用不同的编解码方式。
PCoIP
对不同类型的图像进行分析,然后采用最合适的编码方法,对图像或者像素进行压缩。基于多种算法的智能图像分解和优化编码使得传输和解码更有效,并且减少了对带宽的消耗
.
c)
感知网络,及时调整图像质量。由于
PCoIP
不传输文件,只传输像素。那么在进行实时监控网络后,可随时调整图像的编解码方法,通过改变图像的像素,来保证用户体验。
为此和
RDP
协议相比,
PCoIP
的协议在
WAN
上的网络延迟要要小一些。
Citrix
的
XendeskTop
主要采用了
HDX(High definition experience)[11,16]
。
Citrix
原来有一套叫做
ICA(Independent computing architecture)[17]
的协议,但是随着微软对
RDP
协议的改进以及
VMware
的
PCoIP
的出现,
Citrix
为了应对压力,改善用户体验,使用了一系列
HDX
标识相关的特性。在
HDX
的主页
[11]
中,我们可以看到
8
种带
HDX
标识的特性:
1) HDXTM MediaStream
。针对音频和视屏内容,达到在本地欣赏多媒体内容的效果。服务器端直接传送压缩过的媒体内容,然后利用客户端的设备对内容进行渲染。
2) HDXTM Realtime
。增强实时合作性。使得终端用户可以连接外部音频设备然后更好的和数据中心的
VDI
或者应用程序交互。
3) HDXTM Broadcast
。
在任何网络之间保障可靠,高性能的连接,利用
ICA
协议。
4) HDXTM SmartAccess.
保障用户在任何地方,使用任何设备访问
VDI
实例。
5) HDXTM Plug-n-play
。
使得用户可以任用任何本机资源,包括
USB
,
多屏幕显示,打印机等。
6) HDXTM RichGraphics with RemoteFX
。
使用
Microsoft
的
RemoteFX
技术,提高
2D
或者
3D
应用的质量。
7) HDXTM WAN Optimization
。使用压缩,缓存,流量有限等技术提高在广域网中的用户体验。
8) HDXTM Adaptive orchestration
。看起来是一个综合解决方案,根据用户的设备,网络,应用程序来动态平衡性能,安全性以及数据中心桌面基础机构代价等因素。
比较
VMware
和
Citrix
的相关技术
,
我们可以看出他们的目标是一样的,都是提高
VDI
的用户体验,但是他们的解决方案有所不同。在图像压缩和传输方面,
VMware
使用的
PCoIP
技术是在服务器端完成渲染,对客户端的要求非常低,只要能够解码就行。而
Citrix
的方案会利用客户端的一些硬件,在某些场景下,甚至对客户端有一定的要求。在网络传输方面,
PCoIP
构建在
UDP
协议之上,
Citrix
的
HDX
依赖于
TCP
协议。底层究竟使用
UDP
还是
TCP
好,在
[18]
中有人作了详细的论述。毫无疑问的是,
UDP
非常适用于
audio
或者
video
等
multimedia
,因为不在乎少量的丢包。对于一些重要信息的传输,
TCP
在传输层的确比较有优势,不过
UDP
被包装后亦可在用户层实现传输的可靠性。
桌面虚拟化的背后
以上内容大多数属于客观性的描述,
这一部分笔者想谈谈个人的看法,仅供一笑。
VDI
不算一个特别革命性的技术,但是贯彻了一个非常强的理念:
计算或者数据应该放在服务器端,客户端的主要作用是数据的展示和进行简单的人机交互(人类主要主要通过
5
感中的视觉,听觉,触觉)。当年
VDI
技术的主要目的是使得交互更加的自然,达到和本地机器差不多的效果。当然一旦用户的数据都在服务端,那么用户所能得到的可能远大于过于的情况。
这样的理念无疑是正确的,用流行的话语是现在是一个云计算的时代,但更客观的描述应该是
IT as a service
的时代。从曾经流行的
Grid Computing
到现在
Cloud Computing
,
随着需要解决的问题的难度增加,
必须使用大规模的计算
(
例如分布式计算
)
加上可控的管理
(
数据的安全性
)
。有个理念叫做,数据最好在计算资源附近。当你本地计算能力不够的时候,你就要诉诸于更为强大的组织帮你解决。有时候你的问题是没有输入数据的,当你有输入数据的时候,数据就必须上传,这样就涉及到数据的安全性问题了。这么看来,
VDI
似乎给用户构建了一个和大规模数据中心交互的接口,当然以前的各种客户端软件也是一个接口,不过他们只是针对单一的服务。
但是
VDI
不同,它是一个统一的接口,当你通过这个接口,就可以找到
“
一切
”
。虽然
VDI
的前身是远程桌面,现在的
VDI
也许是老瓶装新酒,不过它是一个必须的存在。
VDI
的服务器端,实际代表了服务商数据中心的能力。如果没有强大的实力,
VDI
的效果显然是比较差的。
就以
VMware
的实现为例,我们假设用户的
VDI
对应一个虚拟机,那么我们需要分析一下,为了提供高质量的服务,什么样的技术是必须的呢?(我来随便列几点,仅供参考):
1)
虚拟机动态迁移技术。这一技术的本意是为了对服务器之间的资源进行动态平衡。但是对
VDI
用户来讲也是需要的。我们假设一个用户经常在全球各地飞来飞去,当他(她)使用
VDI
客户端进行远程桌面访问的时候,假设对应的虚拟机一直驻留在某地,那么服务会如何呢,网络访问速度一定让人满意呢?如果不行,是不是应该让虚拟机从某个子数据中心迁移到另外一地呢?如果确实需要这样的功能,那么数据中心就必须支持
WAN
之间的虚拟机迁移。这就涉及到了虚拟机的迁移的两大难题,存储迁移和
IP
重定向的解决方案。在这个问题上,
VMware,
Cisco
,
EMC
等做了相当大的工作。
2)
数据共享技术。虽然用户的虚拟机可以定制的,但是对于一些必要的软件,大多数用户都是必须。那么我们是不是要尽量减少相同数据存储所带来的问题。那么这里就有一个共享数据的需求,
还涉及到了数据去重复技术(
de-duplication
)。
3)
可信计算技术。当用户有个疑问,怎么可以确信个人数据在数据中心是被合理授权使用的。尤其是怎么确保虚拟桌面计算环境是完全隔离的,它不能被恶意攻击者攻破,甚至不能被数据中心的管理员访问。那么服务商如何去保证呢?前者需要服务商提供一些病毒扫描和预防软件,甚至需要支持虚拟机中
OS
或者软件的动态更新。后者需要可信计算技术的支撑
,从硬件到软件构建一个可被度量的信任关系,确保各层次的软件都是可控的。
4)
大数据分析的能力。用户通过
VDI
连入数据中心,势必是希望得到在本地不能得到的服务。在这个时代,大规模数据分析成为了一个普遍的需求。所谓的科学计算,倒是成为了小众群体。为此数据中心必须有大规模数据分析的能力,比如拥有大规模的分布式数据分析集群
(e.g., Map-Reduce cluster)
。
本文来自
EMC中国研究院