桌面和应用虚拟化

Horizon 新一代桌面和应用交付平台 JMP

Horizon 7.1 发布了新一代的桌面和应用交付平台 JMP (读作 jump),JMP 是即时管理平台 (Just-in-Time Management Platform) 的缩写。JMP 技术可以极速、灵活地交付个性化的虚拟桌面和远程应用,JMP 平台整合了以下 VMware 技术方案:

  • 即时克隆 (Instant Clone):可以在几秒钟之内极速生成新的桌面虚拟机;
  • 应用快速交付 (App Volumes):把应用安装在应用容器中,通过在虚机间共享应用容器实时交付桌面应用;
  • 用户环境管理 (User Environment Manager):为用户快速配置个性化的桌面环境。

 

即时克隆 (Instant Clone)

即时克隆 (Instant Clone) 是一种创新的虚机启动技术,它不再是从磁盘镜像来启动虚机,而是从系统中一台已经运行的父虚机中直接创建 (vmFork) 一台新的子虚机。子虚机不需要有物理镜像,在一开始的时候重用父虚机的内存,所以子虚机跟父虚机是一模一样的。这特别适合于桌面虚拟化这种应用场景,因为大部分桌面系统的操作系统都是一样的,上面跑的软件也几乎一样,办公环境就是 Office,呼叫中心就是座席服务软件,所不同的只是个人的数据和 Windows 环境设置。

 

应用快速交付

App Volumes 提出了一种应用安装的新思路,不再把应用安装到每一个桌面系统中去,而是把应用安装到一些可共享的应用容器 (AppStack) 里,再把这些应用容器装配 (Mount) 到每一个桌面成为桌面系统的一部分。

每个桌面虚拟机安装有 App Volumes Agent,当应用容器装配到虚拟桌面后,Agent 可以快速识别容器中的应用,并把应用调配 (Provision) 到虚拟桌面。这一过程是非常快速的,几乎接近于实时。当一批应用分配给某个用户时,他只需要退出当前桌面会话,重新登录虚拟桌面就可以马上看到所有分配给他的应用了。

管理员使用一台专门的虚机来安装应用,App Volumes Agent 会把把应用安装所要复制的文件、改动的注册表等所有动作记录下来,并复制到应用容器中去。当安装结束之后,应用容器就变成只读的,然后就可以被分配和使用了。

 

用户环境管理

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

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

每个人都有自己熟悉的用户环境,离开了自己的用户环境,工作效率就会大大下降,俗话说就是用起来不称手。所以尽管公司规定每隔几年就要更换一下电脑,有些人就觉得原来的笔记本用得好好的,换一台新的要迁移数据,重新设置和熟悉环境,太麻烦了。

VMware User Environment Manager (UEM) 能够把用户关于桌面环境和应用的参数设置抽取出来,并且把它复制到该用户使用的其他桌面环境,这些桌面环境可以运行不同版本的 Windows 操作系统,或者通过不同的设备来访问。无论是物理桌面、虚拟桌面还是远程桌面,UEM 都可以为用户提供个性化的环境设置,让用户感觉每次都像登录进同一个 Windows 桌面,从而提供一致的用户体验。

 

即时管理平台 JMP

JMP 平台是由 Instant Clone、App Volumes 和 User Environment Manager 几项技术一起协作来实现的,一个桌面系统主要包括以下几部分:

  • 桌面虚拟机及 Windows 操作系统:先行启动一个标准的桌面虚机,上面有基本的 Windows 操作系统,其他后续的桌面虚机都可以直接利用这台父虚拟机的内存而即时克隆出来。
  • 桌面上的应用软件:每台虚拟机上需要用到的应用软件都被预先封装在 App Volumes 的应用容器 (App Stack) 中,这些容器是被多台虚拟机所共享的,可以快速地装配 (mount) 到刚刚克隆出来的虚机上 。
  • 用户个人数据:用户的个人数据既可以存放在一个可写的 App Volume 卷中,也可以用目录重定向指向文件服务器的个人目录,用户登录时被动态地装配到虚机上。
  • Windows 环境设置:个人对于操作系统环境的配置 (应用参数设置喜好、输入法等) 可以被 User Environment Manager 快速配置到虚机上,从而构成一个完整的个人专用桌面系统。

由于需要从物理镜像启动并进行 Windows 的初始化,传统虚拟桌面环境中启动 2000 个桌面大概需要1~2个小时 。对比一下,JMP 技术可以在 20 分钟内生成 2000 个虚拟桌面,主要原因是几乎所有的操作都是在内存中完成的。这一性能提升相比于传统 VDI 技术是惊人的,达到了一秒一桌面的效果。

从用户体验的角度来看,在用户登录之前,他的桌面并不存在。只有当用户发起登录请求之后,Horizon 才去帮助他动态合成一个属于他的专用桌面,整个过程只需要十几秒钟时间,这就相当于连接一个普通远程虚拟桌面的时间,仍然可以保持原有的用户体验。

 

减少硬件容量需求

JMP 技术可以大大减少对于硬件容量的要求。

 

1. 内存

vSphere 在由父虚拟机 vmFork 出子虚拟机时,完全重用原父虚拟机的内存镜像,只有当子虚拟机中的内存发生写操作时,才会针对改动的那部分内存创建一个副本,在副本中进行写操作,这种技术称之为“写时才复制” (Copy-On-Write)。每一个虚机的内存实际上是由父虚机的内存和 Copy-On-Write 内存拼接而成的,COW 那部分内存才是每个虚机所专有的。

这就避免了传统 VDI 环境启动时的内存风暴,在开始的时候每个虚机占用的内存非常少,尽量重用父虚拟机的内存;随着后续的使用变化,每个子虚机的内存用量才会慢慢上升。但是由于基本操作系统跟父虚机是一样,还是有很大一部分内存会重用父虚机的内存,所以在大部分应用场景下,采用 JMP 技术的虚机对于内存的用量要比传统的 VDI 低一些。

 

2. 存储

采用 JMP 技术生成的虚拟桌面对于存储空间的需求如下:

  • 虚拟机:虚拟桌面都是动态生成的,不再需要存储每个虚拟机的物理镜像,最简单的情况下,整个部门可能只需要一个父镜像就行了。
  • 应用软件:需要若干个 App Volumes 卷,以安装各种不同软件包,这些卷是供所有的虚拟桌面共享的。
  • 个人数据:占用存储空间最多的可能是用户的个人数据了,每个用户都有自己的 Windows 环境配置和个人数据存储空间。
  • 在 JMP 工作模式下,用户的桌面是动态生成的,当用户退出当前会话时,他的桌面就会被删除掉,从而释放掉虚机所占用的系统资源,Horizon 只需要保存用户的个性化数据就可以了,服务器上的资源可以被更充分地利用。

由上可见,JMP 技术通过共享虚机之间公用部分的内存和存储空间,大大减少了重复数据的存在,减少存储空间的用量,进而帮助客户降低硬件的采购成本。与此同时并没有牺牲用户体验,每个用户仍然可以拥有个性化的个人专用桌面。

 

简化系统管理

传统的 VDI 架构存在着另外一个问题,桌面操作系统升级或打补丁的工作量较大。即便是采用 Linked Clone 架构的虚机,尽管可以在父虚机上安装 Windows 补丁,但是所有的子虚机都需要做一个重构操作 (Recompose),来把父虚机上的系统更新复制到每一个桌面虚机中去。当虚拟桌面的数量比较多的时候,这就是一个比较费时的操作;为了不影响用户的正常使用,管理员可能需要分期分批地升级用户桌面。

采用 JMP 技术之后,操作系统升级只需要在有限的几台虚机模板内完成就可以了,其他的桌面在下次生成的时候就能够获得最新的操作系统升级。基于 Instant Clone 工作原理,这种操作甚至不需要系统维护窗口,完全不影响现有桌面的运行。父虚机完全可以独立于子虚机进行操作系统更新,甚至是系统重启,至于新的更新什么时候在用户桌面上生效取决于管理员的决定:

  • 对于紧急的系统补丁,管理员可以强制要求现有的桌面用户退出当前会话,然后再重登录,这时候就是从更新后的父虚机重新生成一个新的桌面了。
  • 不是很紧急的系统更新,则完全可以等到用户下次登录桌面的时候再生效。

同样的,应用软件也可以在应用容器 (AppStack) 中进行升级,这是独立于桌面操作系统的,可以实现应用的快速升级。这种升级操作只需要做一次,不需要在每个虚机中升级应用,不受虚拟数量影响。管理员只需要对常用应用进行分类,把通用的公共应用如 Office 软件安装在核心应用容器中,把各个业务条线要用的应用安装在业务部门的容器中,这样就能够对应用进行快速有效的管理,大大减少管理工作量。

 

大家可以看到,JMP 技术可以从硬件和 IT 支持成本两方面来降低用户的开支,让 Horizon 真正有别于其他友商的方案。跟其他的远程桌面和应用方案相比,Horizon 具有领先的技术优势。