桌面和应用虚拟化

Horizon Apps 简介

远程桌面服务 RDS

虚拟桌面有两种不同的实现方法,一种是我们通常所说的 VDI (Virtual Desktop Infrastructure),就是把桌面作为一个虚机放在服务器上运行,桌面虚机中运行的就是一个完整的桌面操作系统 Windows XP/7/10,Horizon 实现的虚拟桌面就是采用这种技术。另一种是微软提供的远程桌面服务 RDS (Remote Desktop Service),把服务器操作系统虚拟化成多个会话,每个用户使用一个独立的会话,用户体验就跟使用独立的桌面虚机一样,但实际上是由 Windows Server 提供的一个 Windows 环境,并非一个独立的桌面操作系统,多个用户共享同一台服务器。

RDS 是微软从 Windows Server 2008 R2 开始提供的一个服务,它的前身叫作 Windows 终端服务 (Terminal Service)。RDS 除了提供桌面会话以外,也提供远程应用访问,安装在 RDS 服务器 (称之为 RDS Host) 上的应用可以被远程访问,应用实际运行在服务器上,但是用户界面展现在客户端,这种应用称之为 RDS 托管应用 (RDS Hosted Application) 或 RDSH 应用。RDSH 应用实际上是安装在一个 Windows Server 环境中,好在 Windows Server 兼容性较好,能够运行大部分针对桌面 Windows 开发的应用。

总结一下,在 Horizon 环境中访问一个远程应用有以下三种方式:

  • 通过 RDSH 桌面来访问应用;
  • 直接访问 RDSH 应用;
  • 把应用安装在传统的桌面虚机中,通过访问虚拟桌面来访问其中的应用。

RDSH 桌面实际上是多个用户共享一台服务器,用户之间的隔离性不太好,所以在一般用户的现场部署中不会采用,使用的比较多的是后两种方式。

现在,有很多用户意识到对于普通业务人员,他们日常工作只是使用一个或几个应用,没有必要为他们装备一个完整的个人桌面,只要为他们提供一个瘦客户机使用远程应用就行了,RDSH 应用比较适合这种应用场景。

 

RDSH 应用发布平台 Horizon Apps

VMware 从 2014 年开始在 Horizon 中增加对于 RDS 桌面和应用的支持,经过多年的发展,目前对于 RDSH 应用发布的支持已经非常完善。

2017 年初,VMware 把 RDSH 应用的功能从 Horizon 套件中抽取出来,作为一个独立的产品 Horizon Apps 来发布。它在功能上是 Horizon 产品的一个子集,仅包含 RDSH 应用发布的功能,但是不含 VDI 虚拟桌面。Horizon App 针对那些仅需要 RDSH 功能的用户,价格相对于全功能的 Horizon 更便宜,很好地满足了部分用户仅需要远程托管应用的业务需求,让用户在建设桌面和应用虚拟化环境时具有了更大的灵活性。

下图展示了 Horizon Apps 的系统架构。

  • Horizon Client:Horizon 拥用各种设备上的客户端,Windows、Linux、macOS、iOS、Android、ChromeBook等;也提供了完全基于浏览器的 HTML Access 客户端,不需要安装任何软件。
  • VMware Unified Access Gateway:为用户从外网访问提供安全网关,一般部署在 DMZ 中。
  • Workspace ONE:VMware 的统一应用发布平台,RDSH 桌面和应用都通过这个平台发布给最终用户。
  • Connection Server:Horizon 通过 Connection Server 来决定哪个用户可以访问哪些远程桌面和应用,并且使用哪一台 RDSH 服务器。
  • RDS Host:运行 Windows RDSH 服务的一台虚机,上面安装各种托管应用,并提供 RDSH 应用服务。
  • Horizon Agent:跟 Horizon Client 协同工作来提供客户端的 USB 设备、文件夹访问、本地打印等功能。
  • RDSH Farm:RDSH 服务器集群,通过多台 RDSH 服务器来均衡工作负载,每台 RDSH 服务器上安装的托管软件都是一致的 (以实现负载均衡)。
  • Application Pool:RDSH 应用会话应用池,可以同时服务于多个用户, Application Pool 运行在 RDSH Farm 上。
  • App Volumes Manager:快速应用交付工具,通过把应用封装在应用容器 (AppStack) 中以实现在多台 RDSH 服务器上的共享,具有节省存储空间、维护简单的优点。

 

Horizon Apps 的技术优势

Horizon Apps 基于 Horizon 的新一代的桌面和应用交付平台 JMP (读作 jump),JMP 是即时管理平台 (Just-in-Time Management Platform) 的缩写,包括了即时克隆、App Volumes、用户环境管理等技术。Horizon Apps 利用 JMP 来极速、灵活地交付个性化的远程应用,JMP 技术使得 Horizon Apps 区别于其他 RDSH 应用方案,具有领先的技术优势。

 

即时克隆 (Instant Clone)

vSphere 特有的即时克隆技术可以在几秒钟之内基于一台已有的 RDSH 服务器克隆生成 (vmFork) 新的 RDSH 服务器,从而快速自动生成 RDSH Farm (RDSH 服务器集群)。在同一台服务器上,刚克隆出来的虚机共享父虚机的内存,运行过一段时间后才会把对于内存和硬盘的修改记录成差异 (delta),所以占用的存储空间比起传统的虚机来大大减少。另一方面,管理员仅需维护一个 RDSH 服务器虚机 (Master VM) 镜像,大大减少了系统升级、打补丁方面的工作量。

即时克隆的最大优势就是速度快,创建同样的 RDSH Farm,要比传统的 Linked Clone 快很多。VMware 的工程师们做过一次对比实验,创建一个50台 服务器的 RDSH Farm,即时克隆总共用时9分45秒,Linked Clone 技术总共用时35分56秒 (见下图),即时克隆的性能优势还是非常明显的。

 

应用快速交付 (App Volumes)

传统的托管应用需要安装到每一台 RDSH 服务器上去,App Volumes 提出了一种应用安装的新思路,把应用安装到应用容器 (AppStack) 里,再把这些应用容器装配 (Mount) 到每一台 RDSH 服务器上,然后就可以在服务器上启动这些应用了。

把托管应用安装在应用容器 (AppStack) 中,应用容器被多个 RDSH 服务器共享。这样既减少了存储空间,又降低了管理维护的工作量,软件升级只需要在对应的容器中做一次,所有的 RDSH 服务器上都能马上使用新版本的软件。

 

用户环境管理 (User Environment Management)

Windows 桌面上的用户环境是一个广义的概念,泛指任何用户可以修改的系统配置参数,常见的用户环境设置包括以下内容:

  • 时区、位置、语言和输入法;
  • 面上的快捷图标及其布局;
  • 驱动器和打印机映射;
  • 文件夹重定向(如我的照片、我的文档等等);
  • 环境变量;
  • 应用的参数设置及其所关联的文件类型。

VMware User Environment Manager (UEM) 能够把用户关于托管应用的参数和桌面环境设置抽取出来,这样等用户下一次打开该应用时,还能够有熟悉的用户环境。例如,用户打开远程应用 Word,可以看到他上次打开的文档,也可以看到最近打开的文件列表;或者是其他一些用户定制的参数,如自定义的快速访问工具栏,自定义词典等等。UEM 在 RDSH 会话中的工作原理并不复杂,就是在用户登录的时候要导入配置文件,退出会话的时候要保存修改过的配置,下图展示了这一工作过程。