对虚拟机中的软件进行升级的方法和装置的制造方法_2

文档序号:8318973阅读:来源:国知局
其中,部署在虚拟机中的软件包括但不限于虚拟桌面代理软件、病毒查杀软件等,本实施例不对虚拟机中的软件进行具体的限定。图1为服务器和其上运行的一台虚拟机的示意图。在云计算场景下,服务器(DomainO)和每台虚拟机(Domain U)之间都有一个共享的存储系统Xenstore0 Xenstore作为服务器和虚拟机之间的中介通信,主要是基于共享页面和事件通道实现的。参见图1,Xenstore主要包含两个模块:DomainO用户空间的XenstoreD服务主模块和Domain U里的XenBus内核模块,此外,Xenstore还提供了各种通信接口。具体地,Xenstore中各部分功能如下:
[0063]XenstoreD:XenstoreD作为DomainO用户空间的一个服务主模块,主要负责管理Xenstore的数据(tdb),并且处理虚拟机向服务器发送的请求消息。
[0064]XenBus:XenBus为内核模块,提供DomainO以及Domain U内核访问Xenstore的APKApplicat1n Programming Interface,应用程序编程接口),并提供用户空间的XenFS接口。除此之外,DomainO中的XenBus还负责初始化XenStoreD的运行环境,该运行环境是建立共享页面和事件通道的基础。
[0065]共享页面:由于每个Domain U都有一个与DomainO通信的共享页面,这个共享页面同时被映射到了 XenstoreD的内存空间,因此,这个共享页面可以同时被XenstoreD、DomainO内核Kernel和对应的Domain U内核XenBus读写。XenStoreD会随时监控这个共享页面,当共享页面接收到DomainO和对应的Domain U中任一方发送的消息,XenStoreD就会直接处理消息,不需要内核模块干预。
[0066]事件通道:事件通道是XenstoreD、DomainO内核Kernel、对应的Domain U内核XenBus与共享页面之间传送消息的通道。每个虚拟机与服务器之间的事件通道有三条,其中,图1中的XenstoreD与共享页面之间的双向箭头代表一条事件通道,负责传送XenstoreD与共享页面之间的消息;DomainO内核Kernel与共享页面之间的双箭头代表一条事件通道,负责传送DomainO内核Kernel与共享页面之间的消息。由于共享页面位于Domain U中,Domain U和共享页面可以直接进行消息的传送,因此,图1中并未将Domain U和共享页面之间的事件通道画出来。当正在运行的DomainO或Domain U中的数据有更新,DomainO或Domain U将通过事件通道将消息传送给共享页面,共享页面接收到DomainO或Domain U传送的消息后,将接收到的消息传送给Domain U或DomainO,Domain U或DomainO在接收到消息后,可通过后续的操作获取更新的数据。
[0067]tdb:tdb为Xenstore的数据库,用于存储正在运行的服务器和各个虚拟机的配置信息,配置信息包括但不限于Domain ID (Identity,序列号)、Domain Name、UUID(Universally Unique Identifier,通用唯一识别码)、前后端设备、启动时间、虚拟机状态等,这些配置信息存储在一个tdb中的一个稳定的位置,因此,容易读取。
[0068]Socket: Socket 为 DomO 直接操纵 Xenstored 的数据接口。
[0069]XenFS:XenFS 为 DomainO/Domain U 的通信接口,用于建立 DomainO/Domain U 之间传送消息的通道。由于同一通信接口在发送和接收消息时,消息的处理方式是不同的,其中,Xenstore提供的缓冲环有两个,I号环可被虚拟机写入,服务器读出,即I号环用于虚拟机向服务器发送请求消息及服务器接收虚拟机发送的请求消息;2号环可被服务器写入,虚拟机读出,即2号环用于服务器向虚拟机发送命令及虚拟机读取服务器发送的命令。因此,在消息的发送和接收过程中所使用的Xenstore提供的缓冲环是不同的。具体地,当DomainU通过Domain U对应的XenFS向DomainO发送请求消息,DomainO对应的XenFS接收到Domain U发送的请求消息时,该请求消息的发送和接收过程所使用的缓冲环为Xenstore提供的I号环;当DomainO通过DomainO对应的XenFS向Domain U发送命令消息,DomainU对应的XenFS接收到DomainO发送的命令消息时,该命令消息发送和接收过程所使用的缓冲环为Xenstore提供的2号环。
[0070]结合上述图1所示出的服务器和虚拟机之间的结构关系,本发明实施例提供了一种对虚拟机中的软件进行升级的方法。参见图2,本实施例提供的方法流程包括:
[0071]201:确定在线虚拟机,并判断在线虚拟机中是否存在满足升级要求的虚拟机。
[0072]作为一种优选的实施例,判断在线虚拟机中是否存在满足升级要求的虚拟机,包括:
[0073]判断在线虚拟机中是否存在满足第一升级条件的虚拟机;
[0074]如果存在满足第一升级条件的虚拟机,则判断满足第一升级条件的虚拟机是否满足第二升级条件;
[0075]如果存在满足第一升级条件且满足第二升级条件的虚拟机,则确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;
[0076]将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
[0077]作为一种优选的实施例,判断在线虚拟机中是否存在满足第一升级条件的虚拟机,包括:
[0078]判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;
[0079]如果在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机,则将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机。
[0080]作为一种优选的实施例,判断满足第一升级条件的虚拟机是否满足第二升级条件,包括:
[0081]判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;
[0082]如果满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致,则判断满足第一升级条件的虚拟机满足第二升级条件。
[0083]202:如果存在满足升级要求的虚拟机,则获取满足升级要求的虚拟机上的软件对应的升级组件。
[0084]203:通过与满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中。
[0085]204:控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
[0086]作为一种优选的实施例,控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,包括:
[0087]通过升级通道向满足升级要求的虚拟机发送升级指令,使满足升级要求的虚拟机接收到升级指令后,根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
[0088]作为一种优选的实施例,控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级之后,还包括:
[0089]对进行组件升级的虚拟机进行重启操作。
[0090]作为一种优选的实施例,控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级之后,还包括:
[0091]通过升级通道获取满足升级要求的虚拟机对满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果。
[0092]本发明实施例提供的方法,通过判断在线的虚拟机是否满足升级要求,进而获取满足升级要求的虚机上的软件对应的升级组件,并通过预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中,从而控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,而无需用户手动操作,因而升级方式更为便捷,且不需要在服务器上额外部署其他管理软件,更无需对其他管理软件进行管理,从而进一步降低了升级的复杂度,并提升了升级效率。
[0093]实施例二
[0094]结合上述图1所示出的服务器和虚拟机之间的结构关系,以及上述实施例一的内容,本发明实施例提供了一种对虚拟机中的软件进行升级的方法。参见图3,本实施例提供的方法流程包括:
[0095]301:安装待升级软件对应的组件升级包。
[0096]其中,关于安装待升级软件对应的组件升级包的方式,本实施例不作具体的限定,包括但不限于获取待升级软件对应的组件升级包,进而根据待升级软件对应的组件升级包的安装过程指引对待升级软件对应的组件升级包进行安装。
[0097]关于获取待升级软件对应的组件升级包的方式,本实施不作具体的限定,包括但不限于如下两种方式:
[0098]方式一:服务器在获取到管理员的管理命令后,通过网络或其他方式获取待升级软件对应的组件升级包;
[0099]方式二:从具有待升级软件对应的组件升级包的虚拟机中获取待升级软件对应的组件升级包。由于服务器和虚拟机之间有共享的存储系统,该共享的存储系统作为服务器和虚拟机之间的中介通信,可在服务器和虚拟机之间传送消息,因此,当服务器上的虚拟机中有对应的组件升级包时,服务器在获知该虚拟机中有对应的组件升级包后,可通过共享的存储系统获取该虚拟机上的对应的组件升级包。
[0100]进一步地,将待升级软件对应的组件升级包安装到服务器上后,该升级包中相应地软件对应的升级组件将以iso文件形式被放置到安装目录/opt/patch/programfiles/domutools/下。由于tdb为Xenstore的数据库,Xenstore中存储着正在运行的服务器和虚拟机的配置信息,因此,待升级软件对应的升级组件实际被放置到tdb数据库中。
[0101]302:安装与各个虚拟机之间的升级通道。
[0102]针对该步骤,升级通道是服务器与其上的各个虚拟机之间传送数据及消息的桥梁,因此,为了对虚拟机中的软件进行升级,使服务器和虚拟机之间能够传送待升级软件对应的升级组件,本实施例提供的方法需要先安装服务器与虚拟机之间的升级通道。
[0103]具体地,关于安装服务器与虚
...
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1