国产桌面操作系统中虚拟化技术应用研究
2017-01-10李笑澜詹秋芳
李笑澜 詹秋芳
摘要:为解决应用迁移过渡时期,国产操作系统替代微软windows实施过程中遇到的实际问题,文章对虚拟化技术的应用开展研究,重点对如何利用虚拟化技术运行现有Windows应用进行归纳,提出了桌面虚拟化、本地虚拟机、虚拟工具等多种可行方案,并在中标麒麟操作系统的应用部署中得到验证;同时,通过分析每个方案的优缺点和适用场景,对用户实际应用过程中的选择提供参考依据,这将有助于促进国产操作系统的推广应用。
关键词:操作系统;桌面;虚拟化
2014年4月8日,微软正式停止对Windows XP系统安全更新,不再修补xP系统的安全漏洞,而我国尚有约2亿XP用户,面临系统被迫升级风险:一方面,既有机器已无法满足Win7、Win8、Win10等系统的高配置要求,需购买新设备,增加硬件成本;另一方面,Win8、Win10因采用其可信技术,安全性受到质疑;同时,部分XP应用并不完全兼容。
斯诺登事件后,政府对于信息安全日益重视,信息安全国产化再掀浪潮。经过多年的发展,国产桌面操作系统逐步成熟,已经能够满足基本应用需求,并且安全性更高。同时,国产桌面操作系统对硬件要求不高,能够有效利用现有设备。但操作系统的国产化替代与包括应用软件、相关基础软件及硬件在内的整体成熟度息息相关。目前国产IT产业链不成熟、生态环境不完善,操作系统国产化还需要一个较长的培育过渡期。
相对个人市场,政府、企业等办公应用的需求相对有限,有利于桌面操作系统的国产化替代,但由7:windows的长期垄断,用户大量既有应用均基于windows平台开发,给桌面操作系统替代带来了很大困难。虽然目前基于国产操作系统的应用开发和移植已有比较成熟的方案,但实际应用移植面临代码重写、开发平台和工具的熟悉以及开发人员培训等问题,甚至一些单位和部门,许多业务应用开发商或组织经过多年已不复存在。因此,整体应用移植还需要一段较长的时间,过渡时期可考虑采用虚拟化方式来并行。
1 桌面虚拟化
1.1 桌面虚拟化简介
桌面虚拟化是指将计算机的桌面进行虚拟化,以达到桌面使用的安全性和灵活性。桌面虚拟化技术,即VDI(Virtual Desktop Infrastructure)是一种基于服务器的计算模型。区别于传统的本地桌面应用方式,它不是给每个用户都配置一台运行桌面操作系统的PC,而是将所有桌面虚拟机在数据中心进行托管并统一管理。用户通过来自客户端设备的客户计算协议与虚拟桌面进行连接,使用户能够获得完整PC的使用体验。
通过这种方式,用户可以在国产操作系统服务器基础上结合桌面虚拟化技术运行window XP及其应用,在用户需要时,可以在国产桌面操作系统上登录该Window XP镜像并使用其应用。
1.2 国产操作系统上的桌面虚拟化方案
在国产化替代过程中,可以在桌面端采用国产桌面操作系统,如图1所示服务端采用国产服务器操作系统,并在其上虚拟运行Windows操作系统,来解决部分windows应用的过渡性并行。
该桌面虚拟化方案融合了服务器虚拟化、瘦客户端、远程连接协议等多项技术。在上图中,国产虚拟化服务器,利用x86硬件虚拟化技术,提供基于KVM的虚拟机监控器平台,提供运行状态控制和管理、负载均衡等基本服务。国产桌面操作系统中的虚拟桌面套件为用户交付虚拟应用和桌面。
该方案中采用了KVM虚拟化方式。KVM~Linux内核的一个虚拟化基础模块,它使Linux内核变成了一个管理程序。通过将KVM作为一个内核模块实现,有利于简化管理和提升性能。
KVM通过QEMU硬件仿真包提供完整的硬件虚拟化。KVM需要CPU硬件虚拟化扩展支持,如Intel的VT-x与AMD的AMD-v,是基于硬件的完全虚拟化。它不需要对客户操作系统进行任何修改,因此,可以从Linux支持各种操作系统平台,例如WindowsXP,Windows7,甚至MacOSX。
同时,方案采用了改进的SPICE协议作为桌面传输协议。SPICE协议(Simple Protocol for independent ComputingEnvironment,独立计算环境简单协议),能够提供与物理桌面完全相同的最终用户体验。它包含3个组件:SPICE驱动、SPICE设备和SPICE客户端。3个组件协作运行,判断进行图像处理的最佳位置:如果客户机足够强大,就在客户机进行图像处理,以减轻服务器的负荷;如果客户机处理能力较弱,则在服务器端进行处理,从而能够最大程度地改善用户体验并降低系统负荷。
在集中式服务器上运行的虚拟桌面是完全独立的,这有助于阻止对桌面映像进行未经授权的访问,并同时提高可靠性。同时,使用虚拟机模板和自动部署功能可以方便地进行镜像部署和软件分发,并进一步进行终端数据的集中存储和管控。
当然,虚拟桌面也存在一些不足,它需要强大的数据中心支持。例如,在其运行过程中,每个桌面镜像仅能提供给一个客户端使用,如果有N个客户端需要使用,则要在数据中心建立N个这样的镜像,这对数据设备要求较高。因此,虚拟桌面方案更适宜拥有广大的数据中心或者磁盘阵列的大型企业;此外,这种方案还必须依赖于条件较好的网络环境,对于单机隔离的单位则无法使用。
2 本地虚拟机
2.1 虚拟机简介
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个隔离环境中的完整计算机系统。
虚拟机在宿主计算机的真实硬件上为虚拟机提供虚拟硬件仿真,这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器、SCSI控制器等设备,提供这个应用程序的窗口就是虚拟机的显示器。
用户可以在单台物理机上运行多个虚拟机,每个虚拟机共享同一台物理机的资源,运行不同的操作系统以及多个应用程序。
2.2 国产操作系统上的虚拟机方案
目前,流行的虚拟机软件有VMware,Virtual PC和VirtualBox等。其中,VMware为企业级虚拟化方案中较为成熟的商业产品,功能强大;Virtual PC为微软针对windows系统的虚拟化方案;VirtualBox是一款优秀的开源虚拟机软件,由Oracle公司按GPL协议发布。用户可以在VirtualBox上安装并执行Solaris、Windows,DOS,Linux,OS/2 Warp,OpenBSD及FreeBSD等客户端操作系统。
在国产桌面操作系统的虚拟应用中,通常采用VirtualBOX虚拟机方案:在国产桌面操作系统上安装VirtualBox,并在VirtualBox上安装Windows,用户可以在虚拟机的Windows系统中使用暂不支持Linux平台的部分Windows应用,或是用户原有Windows平台的业务系统。
通过Virtual Box提供的“无缝模式”,还可以隐藏虚拟机系统窗口,而仅在宿主机桌面上显示虚拟应用,实现了多系统应用的无缝平滑调用,很大程度上提升了用户体验,用户仿佛在一个平台上同时使用Linux应用和Windows应用。
相比桌面虚拟化方案,本地虚拟机方式不需要依赖网络,方便单机环境。
通过本地虚拟机,用户不需要重启系统就能在同一台PC上使用两种以上的操作系统;而且不同的操作系统之间还能进行网络、文件共享以及复制粘贴等互动操作。
同时,虽然多个虚拟机可以共享一台计算机的物理资源,但它们彼此之间保持完全隔离,并且保护不同操作系统的环境以及所有安装在该操作系统上的应用软件和资料。即使其中一个虚拟机崩溃了,其他虚拟机或宿主机仍可正常使用,互不干扰,可用性和安全性较高。
虚拟机实质上是一个软件容器,它将一整套虚拟硬件资源与操作系统及其所有应用程序“封装”在一个软件包内。独立于硬件和封装使虚拟机具备良好的可移动性并且易于管理。用户可以将虚拟机从一个位置或设备自由地移动和复制到另一位置或设备上,而无需对设备驱动程序、操作系统或应用程序进行任何更改,热迁移性较高。
3 虚拟工具
3.1 虚拟工具简介
用户还可以通过第三方虚拟工具运行Windows原生应用,其中最为著名的就是wine。
Wine(“Wine Is Not an Emulator”的首字母缩写)是一个能够在多种POSIX-compliant操作系统(诸如Linux,Mac OSX及BSD等)上运行Windows应用的兼容层。
wine并不像虚拟机或者模拟器那样虚拟运行Windows,而是运用API转换技术实现Linux到Windows相应函数的对应,通过模拟windows程序调用的动态链接库及Windows NT kernel进程来运行Windows程序。
3.2 国产操作系统上的虚拟工具方案
Wine作为开源项目吸引了很多爱好者,其中延伸项目主要有两大商业产品:一个是CrossOver,另一个是Cedega,前者以提供应用软件支持为主,后者则更多关注游戏娱乐。
在本虚拟工具方案中采用的是CrossOver商业发行版。在本版本中已经比较好地解决了显示和字体问题,使用户在国产操作系统上流畅地运行MS Office成为可能。
为提供更好的用户体验,中标麒麟桌面操作系统为通过CrossOver虚拟运行的Windows应用在开始菜单中提供了入口,这样更加方便用户的访问,对于用户来说,他就像在访问一个本地原生应用一样方便,其中的虚拟部分对他来说是透明的。
Wine通过将Windows API调用翻译成为动态的POSIX调用,从而能够完全独立于windows系统而运行Windows应用程序,避免了系统性能、内存占用等一系列问题。更重要的是,Wine是通过黑盒测试的逆向工程实现了对Windows的兼容,所以它有效避免了Windows的版权争议(前面两种方案是需要额外购买Windows版权的)。但也正是由于这一原因,Wine并不能完全实现windows DLLs,因为Windows的DLLs是封闭源代码的,所以无法做到百分百兼容,故很多Windows应用的运行不可避免地会存在较多问题。所幸,用户可以借助一些Wine的商业发行版本来对某个应用做针对性的优化,从而提高可用性。
4 结语
通过在中标麒麟操作系统上的实际应用验证,3种虚拟化方案均切实可行。桌面虚拟化方案整体性较好,但对硬件配置、服务器数据存储和处理能力、网络传输能力等有较高要求,比较适合后期也准备部署桌面虚拟化的大中型企业和单位;本地虚拟机,是比较成熟的单机多操作系统并行方案,比较适合在一台物理计算机上有频繁使用国产操作系统和Windows需求的用户。虚拟工具,可以完全独立于Windows运行Windows应用程序,更适合只是对某几个特定Windows应用有需求的国产操作系统用户。各种方案都有其各自的优缺点,用户可以根据自身应用情况和投入规模来进行选择。在过渡时期并行使用原Windows应用,同时应加大投入,开发基于国产操作系统的新应用,逐步实现信息自主可控,最终摆脱受制于人的局面。