虚拟桌面的出现,极大简化了桌面的管理。针对操作系统部分,VMware和Citrix两大厂商都推出了一对多方式的桌面镜像管理。VMware叫Link Clone技术。而Citrix有两种,一种与Link Clone技术对应,叫做MCS;另一种是其独有的,叫PVS。
简而言之,就是IT管理员只需要维护少数操作系统模板,虚拟桌面都是从某一个母版派生出来的。只要保证母版的系统补丁是***的,其派生出来的桌面就能同步到***。于是打补丁的工作再也不需要针对数不清的桌面实例来进行了, 管理员得到极大的解脱。
但是这种一对多方式的桌面镜像管理也带来了一个大的挑战。这个挑战不解决,“简化桌面管理”只能是一个伪命题。
当所有虚拟桌面都跑在一个共享存储之上时,存储最可能成为性能的瓶颈。桌面系统产生的存储访问需求是随机的,不同的用户在以各种不可预测的方式对存储产生读写访问,所以很难做到精确计算。 如果存储子系统配置过低,则很容易过载,所有的用户都会感觉桌面运行很慢。如果配置过高,其成本又会爆炸式增长,彻底淹没桌面虚拟化所带来的好处。另外桌面上的行为往往又有一定的趋同性,如早8点同时开机, 中午空闲时防病毒自动扫描,同时观看某个紧急培训的视频片段,恶意病毒繁殖等等。当大量用户在同一时间开始并发存储读写任务时, 就会产生 “存储IO风暴”,最糟糕的情况下能瘫痪整个磁盘柜。为了解决这一问题,VMware和Citrix分别采取了不同的方法来应对。
VMware提出分级存储的概念,提倡不同性质的数据应区别对待。简单理解就是花钱来买性能。 对于系统镜像模板这类高频访问的数据,他推荐用户放置在SSD,甚至Flash Memory Card之上。由于一个20G的系统模板***能支持50~60个虚拟桌面开机,所以当虚拟桌面数量上规模时,高速存储的容量也要求越大。这类商用高速存储将是一笔不菲的开销,要知道其陡峭的性能增长曲线与成本曲线是成正比的关系。
而Citrix采用了更廉价更聪明的做法。既然磁盘操作是计算环节中最慢的部分,那我就尽量避免它。Citrix在其两种镜像管理方法中都使用了镜像缓存技术来分担对共享存储的压力。例如PVS, 镜像不再是从共享存储上直接访问,而是由“Provisioning Server”来统一分发。“Provisioning Server”会将母版镜像缓存在内存中,通过网络流送给虚拟桌面。由于整个路径上都是电气信号的转换,所以性能比磁盘的机械操作要快得多。大家可以参考以下视频,更直观地了解PVS的开机性能(Ardence是Citrix收购前的名称)。
MCS+IntelliCache方法则是将集中于中央共享存储的压力分摊到每一个虚拟桌面宿主服务器上。一般宿主服务器上都配有本地硬盘,这些硬盘空间不用白不用。当宿主服务器加载***个虚拟桌面时,系统镜像就被缓存在本地存储上,当后续虚拟桌面开机时,宿主服务器如果发现使用的是相同模板(通常就是),就直接从本地存储读取,不再访问共享存储了。如果桌面是可回收类型的,那么用户在桌面上的写操作也全部发生在服务器本地,不会写到共享存储上。因为当用户登出时,虚拟桌面上的临时改变都会被丢弃。
无论是PVS还是MCS都是想方设法将共享存储上的IOPS卸载下来,从而降低虚拟桌面方案对高端共享存储的依赖性。有客户做了一个简单的测试,结论是VMware的Link Clone技术所需的IOPS大致是Citrix的1.5倍以上。VMware也认识到自己方案的不足,在其后期版本中也规划了类似于Citrix Intellicache技术的缓存方法。由于该技术尚未发布,本文暂不做评价。