VMware Horizon 7新功能--即时克隆探索
一:即时克隆介绍
对于即时克隆的介绍可查阅VMware中国的官网微信中以下文章
以下内容均为摘抄该文章的部分介绍
即时交付功能最早是在2014年的 VMworld 大会上预演的,当时 EUC 部门的 CTO Kit Colbert 宣布了 Project Fargo,Fargo 就是即时交付技术的项目代号。随后在2015年4季度发布的 vSphere 6.1 中,推出了 vmFork(Instant Clone) 功能,这是实现即时交付的核心功能之一。Instant Clone 最适合的应用场景就是桌面虚拟化,Horizon 7 应该是第一个使用该技术的应用软件。
传统的虚机都是从硬盘启动的,当同时启动的虚机比较多的时候,往往造成启动风暴和内存风暴。
l 启动风暴是指很多虚机启动时,大家都要对硬盘进行读操作,造成密集磁盘读操作,从而引起读操作的竞争,导致系统整体性能下降,虚机启动非常慢。通常的解决方案是采用 SSD 作为高速缓存来提高读操作的性能。
l 内存风暴是指很多虚机启动时都要申请大量的内存,造成 Hypervisor 在短时间内调度内存的巨大压力。
即时克隆(Instant Clone)是一种创新的虚机启动技术,它不再是从磁盘镜像来启动虚机,而是从系统中一台已经运行的父虚机中直接创建(vmFork)一台新的子虚机。子 虚机不需要有物理镜像,在一开始的时候重用父虚机的内存,所以子虚机跟父虚机是一模一样的。这特别适合于桌面虚拟化这种应用场景,因为大部分桌面系统的操作系统都是一样的,上面跑的软件也几乎一样,办公环境就是 Office,呼叫中心就是座席服务软件,所不同的只是个人的数据和 Windows 环境设置。
vSphere 在由父虚拟机 vmFork 出子虚拟机时,完全重用原父虚拟机的内存镜像,只有当子虚拟机中的内存发生写操作时,才会针对改动的那部分内存创建一个副本,在副本中进行写操作,这种技术称之为“写时才复制”(Copy-On-Write)。每一个虚机的内存实际上是由父虚机的内存和 Copy-On-Write 内存拼接而成的,COW 那部分内存才是每个虚机所专有的。
vSphere 在由父虚拟机 vmFork 出子虚拟机时,完全重用原父虚拟机的内存镜像,只有当子虚拟机中的内存发生写操作时,才会针对改动的那部分内存创建一个副本,在副本中进行写操作,这种技术称之为“写时才复制”(Copy-On-Write)。每一个虚机的内存实际上是由父虚机的内存和 Copy-On-Write 内存拼接而成的,COW 那部分内存才是每个虚机所专有的。
二:即时克隆需求和限制
l 要使用即时克隆功能vSphere的版本最低为:vSphere 6.0 U1(上面介绍也提到了即时克隆用的vmFork的功能在vSphere 6.0 U1 后才发布)
l 发布的虚拟机硬件版本必须为最新的11
l VMware推荐使用分布式交换机发布即时克隆桌面
l 确保View Storage Accelerator处于启用状态
l 通过即时克隆发布的桌面池透明页面共享会自动处于开启状态
l 操作系统即时克隆只支持Windows 7和Windows 10 并不支持Windows8/8.1
限制因素:
l 即时克隆只支持发布终端桌面,RDS 主机不支持
l 即时克隆只支持浮动桌面的发布方式
l 即时克隆不支持永久盘(persistent disks),该效果可通过App Volume实现
l Virtual Volumes 、VAAI 和原生的NFS快照都不支持
l 不支持微软的sysprep方式自定义桌面
l 不支持PowerCLI
l 不支持本地磁盘
l 不支持3D 图形
l 不支持persona Management
l 不支持IPV6
l 即时克隆不支持覆盖现有的活动目录计算机账号
l
三:配置即时克隆
按照官方介绍的文章即时克隆的最佳搭配是“即时克隆+App Volume +UEM “当然实际中我觉得还可以搭配上微软的组策略、文件夹重定向等。这方面的搭配仍有待后期的探讨和学习。该文章主要集中在即时克隆的配置上。
1:激活即时克隆许可
要使用即时克隆功能,首先要版本要满足;也就是说要license 激活该功能;
2:设置即时克隆域管理员
同时在Horizon 7 Administrator中会发现多出了一个即时克隆域管理员的选项,这个选项是用于控制发布的桌面在活动目录上的权限,作为示例我们使用域管理员进行操作;在生产环境中建议按照官方的要求进行严格的权限委派。
详细的权限可查阅官方的资料:
3:准备模板
在安装View Agent的时候会多出一个VMware Horizon Instant Clone的Agent,如果该模板是用于发布Instant Clone的桌面的话,在这里必须选上该选项。如下图右边的提示,选择了VMware Horizon Instant Clone后不能同时选择VMware Horizon View Composer选项,也就是说这两个选项是互相冲突的。
需要注意的是该模板虚拟机的硬件版本必须为最新的11;
否则在发布桌面池的时候会出现以下提示:
4:发布即时克隆桌面池
在添加vCetner Server的时候,可以发现其下面的高级设置中多了一个关于即时克隆并发数的设置
在存储设置这种切记要勾上“启用View Storage Accelerator”
开启桌面池创建向导,类型中只能选择“自动桌面池”
在用户分配的类型中;即时克隆交付的桌面池必须选择“浮动”
在vCenter Server选项中,选中即时克隆并且指定对应的vCenter Server
指定桌面池标识
在桌面池设置中有几项功能变化,其中注意到多了一个名为“允许用户从不同的客户端设备启动单独的会话”;详细说明见下图
新的远程显示协议VMwaer Blast也是Horizon 7中的重要更新,在桌面池设置中就可以看到比以往会多出一个显示协议可选;下面的3D呈现器也有增强,但是在这种场景下不能使用在此就不展示。
在置备设置中,除了需要注意的是置备时间安排;考虑到即时克隆的原理,个人认为其最佳的搭配选项是“按需置备计算机”;通过这个选项与“备用(已打开电源)计算机数量” 搭配实现快速的动态按需桌面交付。
举例:按照以下设置,该桌面池最先会置备一台桌面等待用户连接,当有用户连接桌面,桌面池会以及以即时克隆的方式快速生成一台新的桌面等待新用户连接;最多只能生成10台桌面;并且是随机动态生成的,同时当用户注销该桌面后会自动删除该桌面。
因为环境中搭配的是VSAN,在此选择“使用VMware Virtual SAN”
在vCenter 设置中确保父虚拟机选中的是上述勾选了“VMware Horizon Instant Clone”选项模板以及快照;其他的设置按照实际选择即可
指定存放相关计算机账号的AD路径,注意的是这里的路径要和文章前面所说的“即时克隆域管理员”的权限相对应
确认配置,完成桌面池的发布并按需授权用户访问
可以通过点击桌面池摘要,查看映像的处理进度;一开始其实正在发布的状态
我们也可以通过vCenter的任务队列查看置备的大概流程
首先系统会自动生成以下四个新的文件夹,用于存放相关的对象
ClonePrepInternalTemplateFolder
ClonePrepParentVmFolder
ClonePrepReplicaVmFolder
建议不要更改、移动、删除这四个文件夹,保留原样即可;同时在删除桌面池的时候这个几个文件夹及其下面的虚拟机会有一定的延迟时间,一般都是5分钟,有时候需要30分钟;建议删除桌面池的时候等待系统自动删除以下四个文件夹即可。
接着系统大致流程如下
一:克隆模板虚拟机生成开头名为cp-template虚拟机
二:为该开头名为cp-template虚拟机生成快照
三:通过该开头名为cp-template虚拟机生成一个开头名为cp-replica的虚拟机
四:通过通过开头名为cp-replica虚拟机克隆生成三个开头为cp-parent的虚拟机
五:最终以桌面池设定的命名规则生成指定数量的VM,本示例中就是Instant-1
创建完成后通过vCenter 可以看到其通过共创建出以下虚拟机,其中cp-template、cp-replica开头的两个虚拟机是处于关机且不可编辑状态,而以cp-parent开头3个虚拟机一直处于开机状态;而Instant-1则是接收最终用户连接的桌面
最后返回桌面池中查看状态,其状态已经变为“已发布”且有1台VM 为可用状态。
既然即时克隆的一大买点就是快,我也特意观察了一下从创建文件夹这个任务开始到最后桌面可用的时间共耗时6分46秒(13:29:33—13:36:19);由此看出在一开始创建桌面池的时候和链接克隆模式的时间差距不大,其真正号称快的是在后期创建桌面并到最后可用这个时间。
我通过一个授权用户登录到桌面后,按照桌面池的设置系统会自动再生成一台新的VM以等待用户连接;整个过程我试了几次并以秒表计算时间,桌面从无到有再到最终可用平均耗时20秒
当我将连接的用户从桌面中注销,在桌面池的状态也可以看到其会自动将该桌面删除
到最后其会根据桌面池的设置只保留1台虚拟机可用
问题:在经过几次简单的测试,发现其生成的几个以cp-parent开头的虚拟机 很容易就会触发“虚拟机内存使用情况”的警报,及时没有用户连接很久后其也不会消失。
本文出自 “青枫口” 博客,请务必保留此出处http://huanwenli.blog.51cto.com/2848240/1754745