虚拟桌面分层技术解析

概要:

在虚拟桌面中实现对应用软件的统一管理,可以给用户带来巨大的价值,如节省用户在软件安装、配置上花费的时间,节省管理员运维的运维成本等等。此文主要是介绍虚拟桌面中的集中常用的分层技术。

在写这篇文章时思绪万千,突然想到许久没有登录的博客,看到了以前分享过的一篇关于应用程序打包的实施指导文档,文中图文并茂言简意赅。转眼居然快十年了,真羡慕那时候的自己,可以心无旁骛的钻研未知的领域,不禁神伤。同时也感慨,自己从事云计算行业也不算短了,虚拟桌面行业也算是有一些自己的认识和感觉了,人们经常会用“日新月异”来形容技术的飞速发展,在IT领域尤其如此。那么不说大的趋势,就论应用软件分层技术而言,技术到底发展到什么状态了?又有哪些新的技术出现?不仅引起我的深思。以此,输出此文,权当是对零散知识的整理和总结,顺便也算是以此文来祭奠那些逝去的岁月。

从2009年我接触云计算开始,云计算技术发展的确实非常快,作为云计算最为典型的应用产品,虚拟桌面以其数据安全、高效运维、统一管理、绿色节能等特性深受用户的青睐,在各行各业的场景中获得广泛的应用,在市场上大面积推广,逐步取代部分传统的PC,也获得了越来越多用户的使用与认可。

在此背景下,很多厂家冒天下之大不韪,动辄要全面进入“后PC时代“,叫嚣“颠覆传统PC”,但是我个人其实不太认同这种观点,从技术角度上客观讲,我不认为在IT行业会存在某个技术独霸天下的现象。从辩证角度上看,存在即合理,只要某事物存在就必然有其土壤和生存空间。和谐共存、万物平衡,可能这才是最终归宿。当然,我之所以这么认为,也并不全是因为我的“感性”和“普世论”,也是有依据的。

在谈我的依据之前,先给各位看几张旧图,估计很多人都不陌生,或多或少都会从曾经的技术方案寻查到一些影子:

图一:什么是云桌面

很明显,以上这张图对一个概念一直语焉不详,这个概念就是“传说”中的【分层】技术。众多厂家在介绍这几张图的时候往往讳莫如深。究其原因,要么是对VDI架构理解不透彻,要么就是避重就轻、不探究竟。

我谈一下我对这几张图的理解,图一,主要是给大家传输一个建模的概念,将传统的物理PC打散、进行概念重构。试图从数理模型上面来理解我们日常见到的PC。分层,可能也许大概就是一个绝佳的切入角度。以下这个公式或许对于理科生来说更好理解,那就是:

PC =终端硬件(CPU、内存、硬盘等)+操作系统 + 应用软件 + 个人数据 + 账户信息

那么问题来了:云桌面用户会关心什么呢?肯定不会关心硬件和操作系统,为什么呢这样说呢?因为毕竟用户使用的还是各式各样的应用软件,包括由此产生的各类结构化和非结构化数据。而所有账号信息其实就是一个ID凭证。所以这么一分析:用户最关心还是应用软件和数据。

刚才是从最终使用者的角度去理解“分层”模型,以及剖析用户的核心关注点。我们再从管理员视角来分析他的关注点,我以前做过运维,也做过项目管理。其实最最讨厌的就是软件的频繁更新,每次的升级都让人痛苦不堪,甚至有时候因为软件升级的原因要重装整个PC,几台PC升级勉强可应付,如果几百台同时需要升级的话,工作量无法想象。这还不是主要的,升级带来的隐性风险更是无法预知,用户数据丢了怎么办?软件回退如何执行?等等

综上所述,我想得出我的第二个观点:桌面的核心是应用软件和数据。

图二:虚拟桌面交付工作流

我们接下来再来看第二张图,第二张图非常经典,更加有意思。寥寥数笔,勾勒出了各个厂家VDI架构的核心工作流程。众所周知,相较于PC,云桌面在管理运维方面有得天独厚的优势。在云桌面中可实现对虚拟硬件、虚拟操作系统、虚拟应用、个人数据的统一管理。

在虚拟桌面中实现对应用软件的统一管理,可以给用户带来巨大的价值,如节省用户在软件安装、配置上花费的时间,节省管理员运维的运维成本等等。调查显示,在一个公司内,必定有大量软件是公共的、获得广泛使用的,如邮件系统、财务系统。如果能统一管理所有员工安装的应用软件,统一推送、安装、升级、维护,更进一步的限制违规软件的安装,这将节省员工在应用软件上维护所花的时间成本,也减轻了运维人员的负担,极大的提升了公司运维效率。由此可见,应用软件的统一管理对云桌面具有非常重要的价值。

但是,我想问是:虚拟操作系统和虚拟应用真的可以灵活的管理吗?答案是肯定的,是可以灵活管理的,应用软件统一的管理的核心技术就是【软件分层】。但是很遗憾的是,并非所有厂家都具备这种技术。

业内目前技术发展到底如何呢?我整理了一下,当前常用方案有以下几种:

一、模板分发

在虚拟机模板中预装应用软件,将虚拟操作系统和虚拟软件合为一体,跟虚拟硬件、个人数据、账户信息分层管理。虚机模板中预安装应用软件,这是云桌面通常采用的方法。用户使用的云桌面通过虚机模板克隆出来,克隆虚机具有与模板一模一样的应用软件,用户可以直接使用,免去了应用软件安装的繁琐过程。

图1 模板分发

这种方案应用软件只需要在虚机模板种安装一次,然后直接虚机镜像克隆,简便易操作,效率高。它的缺点是软件更新比较麻烦,对模板里的软件进行更新,并不会同步对克隆虚机的软件进行更新,同时对于软件不能统一管理。更让人无法接受的是,更新模板会导致虚拟桌面中的用户个人数据丢失,升级工作量大,且风险极高。

二、应用商店

应用商店是指在云桌面管理平台中集成一个应用软件商城,虚拟桌面可直接访问应用商店(C/S或者B/S架构),从商店中下载软件进行安装,管理员也可以从后台统一批量进行软件的安装、卸载,甚至禁止某些软件的安装。

图2 应用商店

这种方案既可以用户自助操作,也可以管理员批量操作,灵活性高,同时后台对所有虚机的应用软件都可以统一管理,功能强大。但在云桌面场景下仍然存在如下的问题:应用软件需要先下载到虚拟桌面上,然后执行安装操作。这种操作对于单个用户来说并不存在问题,但是如果大批量的用户并发执行此操作,对于存放软件库的存储来说性能将是极大的考验,存储IO会消耗很大,性能很容易存在瓶颈,从而导致软件更新升级缓慢、甚至无法成功执行升级。

三、软件库分发

从以上方法一、二即可看出,虚拟机模板预装应用软件与应用商城两种方案,在云桌面系统中虽然都有应用,但是由于两种方法均存在无法避免的缺陷,使用场景都存在一些限制。

有没有一种技术方案既能实现批量预安装,又能实现快速分发,还不影响存储IO?这就是我今天重点要介绍的软件库分发技术软件库是完全把虚拟应用从虚拟操作系统中彻底剥离出来单独控制和管理,是目前最适合云桌面场景的分层技术方案。

图3 传统模型与软件库分发模型对比

所谓的软件库,是指应用软件安装在独立磁盘中,这些带有应用属性的磁盘可保存于某个存储空间中。该软件库磁盘克灵活挂载至多个虚拟桌面,虚拟桌面中可直接使用这些应用软件。这种方法避免了同一份软件在多个虚拟桌面之间的网络数据传输,也避免了同一份软件在多个虚拟桌面中的安装,降低了存储IO的消耗。管理员工作更加简单,只需建立一个应用软件库,就可以挂载给多个用户的虚拟桌面使用。同时软件的更新也变得简单,只需要对软件包的软件进行更新即可,执行软件库更新操作不会影响到用户的数据以及用户自行安装的其他个性化应用软件。

图4 软件库分发

图4是应用软件包的制作的简要过程,将一个空磁盘挂载到一个虚拟机上,应用软件安装完成后,卸载磁盘,就做成了一个应用软件库磁盘。一个软件库可以挂载给多个虚拟机使用,每个虚拟机看到的应用软件是相同的。用户使用应用软件,产生的应用数据,写入到各自的虚拟桌面系统盘,不写入软件库磁盘(只读)。应用软件的更新,不会影响用户个人数据。控制可管理的,这才是从真正意义上实现了应用的分层管理。使用软件库分发技术对应用软件进行统一管理,解决了存储IO的性能问题,也解决了软件的更新问题,对于管理员的运维、用户的使用都带来了极大的便利。

总结

技术一直在不断的演进,前人栽树后人乘凉,每个技术的诞生都有其特定的原因。软件库分发看似是目前最优的解决方式,但是谁又能保证说一定是无可替代的呢?如果以后的所有的应用软件都云化、互联网化,软件库分发还能有一席之地吗?这个还真不好说。届时应用商店乘机打入企业市场博取份额也犹未可知,我们姑且拭目以待吧!

文后感:

写完这篇分享文字已经是凌晨2点多钟了,发到公众号上面估计还需要至少30分钟的时间。我曾经在朋友圈说过几句话,也分享给大家,也算是我的心得吧:

1、对于知识,自己先要明白,然后再转化为通俗易懂的知识点,这个过程特别伤脑。可问题的关键点又在于:横看成岭侧成峰,远近高低各不同。要想把握这点就更加困难了。

2、捡起以前的东西,有点痛苦,但是值得。

读罢此文,希望能够听到跟多朋友的讨论,此乃幸事!

重要申明:公众号平台原创内容版权归作者所有,欢迎以个人名义转发分享并共同讨论,未经允许禁止任何公众号和媒体转载。该文章的最终解释权归作者所有。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180606G087X800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券