基于Xen的大型计算机系统多域更新机制研究

2017-04-15 00:53陈俊鹏
数字技术与应用 2016年12期
关键词:补丁

陈俊鹏

摘要:Xen虚拟化技术作为当前作为火热的虚拟化技术之一,在日渐庞大的大型计算机系统设计使用过程中扮演着愈发重要的角色。当前,这类系统的后期维护及整体系统升级时间通常十分冗长。本文在对当前大型计算机系统的设计进行分析基础上,就Xen虚拟化技术的原理与系统的升级机制进行探讨,并对其升级机制提出了针对性改进。

关键词:Xen 补丁 更新机制 超时机制

中图分类号:TP393.08 文献标识码:A 文章编号:1007-9416(2016)12-0112-01

1 当前大型计算机系统的设计

随着计算机硬件技术及网络技术的飞速发展,人们对于复杂计算、智能计算、分布式计算以及云计算的需求越来越大。一方面,复杂的计算机系统就需要复杂的前期系统设计,对于整体架构的要求极高,稍不注意就会导致整体系统冗余,占用大量硬件资源的同时却无法真正发挥整体性能;另一方面,对于运行中的系统而言,安全补丁及不定期的系统升级非常重要,如果系统过于复杂,后期的维护成本急剧增加。

这就使得当前越来越多企业级系统软件开始朝着分布式设计管理、多操作系统运行的方向进行设计。通过将某一庞大的计算系统分解为多个单独的子系统,使这些子系統分布式运行,达到硬件使用及运行效率的提升。这其中,有很大一部分的大型系统开始采用虚拟化技术,特别是Xen虚拟化技术来作为此类系统的分布式设计及运行支撑。通过在Xen虚拟化环境中分布式运行的几个OS(操作系统),在这些OS中运行基于该OS设计的子系统,使在极小的硬件性能损耗的前提下,充分发挥这些OS及在为OS特别设计的子系统的独特性和优越性,做到整体系统运行及计算的最优。

2 Xen虚拟化技术的原理

Xen虚拟化技术是当前唯一的type 1开源虚拟化技术解决方案。其内核小,可以在极小硬件损耗的情况下同时支持多达100个以上的OS以接近于直接在裸机上运行的性能运行,并同时保持这些OS运行的安全隔离。当前,Xen可以支持全虚拟化技术(hardware-assisted virtualization)、半虚拟化技术 (para-virtualization) 以及混合虚拟化技术(PV on HVM)。使用最多,性能最强的则是其半虚拟化技术。

在一个Xen的虚拟化环境中,主要包括Xen Hypervieosr、Domain0、DomainU、GuestOS及Application等几个组成部分。Xen Hypervisor是Xen下的虚拟机监测器,即VMM。它负责完成CPU的调度、内存资源分布以及中断请求。由于hypervisor对于所有的Domain0及DomainU都是透明的,所以可以把hypervisor可以认定为是Domain0及DomainU的硬件层。

DomainU是Xen下的客户域,客户域中单独运行有各自的OS以及相应的子系统及应用软件。

Domain0是Xen在初始化运行之后在整个环境中运行的第一个虚拟机。作为Xen下所有DomainU的控制域,它处理所有访问各个域的I/O请求及其他相关的交互。特别的,所有进出Xen虚拟化环境的网络传输以及DomainU之间的网络传输,都需要经过Domain0。

3 当前这类系统的升级机制

在一个大型计算机系统中,升级系统模块不可避免的会需要暂停系统的使用,这通常都是需要极力避开的。所以,为减少更新次数,每次进行升级更新时很有可能会同时涉及到当前运行的各个子系统以及其底层的OS,甚至还会包括Xen的更新。因此,当前的升级补丁通常以一个含有各DomainU内所有更新文件的多个升级包(package)组成。在这些升级包中,含有该DomainU中子系统及其中OS的所有升级文件。具体的升级过程如下所示:(1)当前运行的系统检测到有升级补丁时,由Domain0发起一个更新进程,从而从远端服务器下载相应的补丁文件到特定的文件夹中;(2)补丁文件下载完成后,系统需要先检查该文件是否合法完整,之后提取其中的升级包,并根据补丁中的控制脚本预设好的安装顺序进行排序;(3)将第一个升级包同步到相应的DomainU中,控制脚本会根据该DomainU中的安装成功消息来决定是否进行下一个DomainU的升级。如果补丁包的安装过程中某一DomainU出错,需回滚整个安装流程。

在这个过程中,我们能看到很多值得注意的问题:(1)这个升级机制要求在某一DomainU的升级包安装过程中,其他的DomainU均挂起。只有当前一个域安装成功后才进行下一个域的升级。这一设置会大大增加升级时间;(2)当某个域的安装出现问题时,需要回滚整个安装过程。当排除掉这些问题之后进行重新升级时,却有要重新安装一遍上一次已经安装成功的组件。这会大大降低升级效率;(3)每个域内都运行有自己特定的OS,如果升级包中涉及到OS的升级,就会使得每个升级包变得非常庞大,从而使升级补丁变得十分巨大。这就造成了网络传输上的困难。

4 对该升级机制做的几类改进

从缩短升级时间以及提高升级效率的方面,我们对升级机制进行了重新设计:

将当前的升级机制从同步升级改为异步升级,也就是说,将多个升级包文件进行同时传输至各个DomainU,使多个域同时进行包的安装。

当某个DomainU中的安装出错导致升级失败时,只回滚该域中的安装过程。下次再执行补丁升级时,只对之前升级出错的域进行重新安装。

每个升级包中都会涉及到大量的系统组件。有些组件的升级事关系统的安全及正常运行,而有些则可以推迟甚至不升级。由此我们可以在升级过程中设置一个动态的超时机制。

当某些不重要的组件安装失败时,迫使其推出当前升级过程并恢复已备份的版本,进行下一组件的安装。

参考文献

[1]Barham P, Dragovic B, Fraser K, et al. Xen and the art of virtualization[J]. Acm Sigops Operating Systems Review, 2003, 37(5):164-177.

[2]孟江涛,卢显良,董贵山.Xen的虚拟机网络优化研究[J].电子科技大学学报,2010, 39(1):106-109.

猜你喜欢
补丁
补丁里的体面生活
补丁里的体面生活
补丁
健胃补丁
补丁奶奶
关于补丁
大病医保期待政策“补丁”
打好安全“内补丁”