从架构角度来看,VDI、服务器虚拟化、客户端虚拟化如何比较?
尽管很多内容是由 Citrix 或 VMware 等供应商编写的,但营销炒作背后往往隐藏着令人困惑的内容……
例如:XenDesktop、XenClient、VMWare View、ThinApp
答案1
这些都是惊人地相似的技术 - 无论如何,都是最基本的技术。
首先,我只想定义终端服务和虚拟化之间的区别;
- 终端服务(例如 Citrix 的旧产品、MS TS 等)的工作原理是在服务器上执行代码,然后将代码的显示传输到客户端并重新显示,客户端键盘和鼠标被传回服务器端的代码。
- 虚拟化是指应用程序或操作系统在服务器上的封装和受保护环境中运行,该环境对应用程序或操作系统而言是专用环境,不承担任何其他代码或系统的义务。虚拟化环境可能会或可能不会将其显示器/键盘/鼠标映射到外部机器。
我只是想解决这个问题以便我们能够继续下去。
无论如何,VDI 和服务器/客户端虚拟化本质上都是相同的 - 客户代码在一台或多台主机服务器上运行。在这种情况下,VDI 和客户端虚拟化非常相似,因为它们的主要目的之一是通过一种或另一种协议为其客户端计算机提供桌面环境(即显示器、键盘和鼠标);而服务器虚拟化很少有这种义务,通常提供用于管理的 CLI 输入和基于以太网/IP 的输出。
现在来看看实际的产品;
- XenApp 实际上是一个非常成熟的终端服务平台,应用程序代码集中运行,但在客户端上显示和管理。
- XenClient 是允许桌面虚拟化的代码,客户代码在用户的机器上运行并将其输出显示在同一台机器上,这允许多个操作系统在一台机器上运行。
- VMWare View 允许在一台或多台服务器上运行多个桌面操作系统迭代,这些桌面操作系统的输出显示在客户端计算机上,但 View 针对现有内存页面的大量重用进行了调整,目的是仅在第一个迭代运行后管理迭代内存之间的差异;例如,第一个 Windows 7 用户使用 W7 使用的正常内存量,但第二个及后续用户仅存储他们的会话和第一个会话之间的差异 - 可以将其视为虚拟机的重复数据删除。
- VMWare ThinApp 是一种将小型虚拟化引擎(虚拟机管理程序)、基本操作系统和给定应用程序捆绑到单个可执行文件中的方法,该文件仅限于显示该捆绑应用程序的输出。例如,如果您的应用程序具有非常具体的代码要求,但希望大量运行各种操作系统/代码堆栈的其他机器来运行您的应用程序,您可以构建一个 ThinApp,无论基本操作系统/代码堆栈如何,它都可以在预定义的代码环境中运行您的应用程序。
我将 XenDesktop 留到最后,因为它是一种混合产品,可以显示类似 VDI 的服务、终端服务并运行本地虚拟化客户端。
希望这能有所帮助,我确信我在某些方面过于简单化了,但鉴于你的问题很模糊,我认为我已经触及了大多数领域。
答案2
为了补充 Chopper3 的解释,这里提供了 Ruben Spruijt 撰写的“VDI Smackdown”白皮书的链接:VDI_smackdown.pdf
其中包含大量重要信息,有助于揭开 VDI 领域的神秘面纱。结尾处包含一些其他人可能会有争议的比较,但前几节包含一些我见过的关于该主题的最清晰的信息。