CN104636159B - 对虚拟机中的软件进行升级的方法和装置 - Google Patents
对虚拟机中的软件进行升级的方法和装置 Download PDFInfo
- Publication number
- CN104636159B CN104636159B CN201310571937.XA CN201310571937A CN104636159B CN 104636159 B CN104636159 B CN 104636159B CN 201310571937 A CN201310571937 A CN 201310571937A CN 104636159 B CN104636159 B CN 104636159B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- upgrading
- meeting
- software
- promotion condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000001089 thermophoresis Methods 0.000 claims description 25
- 230000005059 dormancy Effects 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 10
- 239000011800 void material Substances 0.000 description 10
- 238000009434 installation Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011900 installation process Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种对虚拟机中的软件进行升级的方法和装置,属于计算机技术领域。所述方法包括:确定在线虚拟机,并判断在线虚拟机中是否存在满足升级要求的虚拟机;如果存在满足升级要求的虚拟机,则获取满足升级要求的虚拟机上的软件对应的升级组件;通过与满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中;控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。本发明通过升级通道将升级组件发送到满足升级要求的虚拟机中,进而控制满足升级要求的虚拟机上的软件对应的组件进行升级,与现有技术相比,本发明提供的升级方式更为便捷、升级效率更高。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种对虚拟机中的软件进行升级的方法和装置。
背景技术
随着云计算技术的发展,桌面接入终端与虚拟机中的虚拟桌面建立连接后,终端用户通过瘦客户端或者任何其他与网络相连的设备就可以访问整个客户桌面。为了提升用户体验,需要对虚拟机中的软件进行不断升级,但由于这些软件存在于各个虚拟机中,致使这些软件的升级较为困难,因此,如何对虚拟机中的软件进行升级,成为了本领域技术人员较为关注的问题。
现有技术在对虚拟机中的软件进行升级时,采用如下两种方式:
方式一:用户控制终端通过网络连接对应的虚拟机,进而将待升级软件的升级包拷贝至对应的虚拟机中,然后用户按照待升级软件的升级包的升级过程指引,通过终端控制对应的虚拟机中的软件进行升级。
方式二:在服务器上统一部署第三方管理软件,通过第三方管理软件将待升级软件的升级包分发至各个虚拟机中,并通过第三方管理软件控制各个虚拟机中的软件进行升级。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
采用方式一升级虚拟机中的软件时,由于升级过程需要用户手动进行操作,因此,升级方式不够便捷,降低了用户体验;采用方式二升级虚拟机中的软件时,由于需要在服务器上部署第三方管理软件,因而增加了额外的工作量,且由于第三方管理软件也会存在升级的问题,因此,增加了对虚拟机中的软件进行升级的复杂度,降低了升级效率。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种对虚拟机中的软件进行升级的方法和装置。所述技术方案如下:
一方面,提供了一种对虚拟机中的软件进行升级的方法,所述方法包括:
确定在线虚拟机,并判断在线虚拟机中是否存在满足升级要求的虚拟机;
如果存在满足升级要求的虚拟机,则获取所述满足升级要求的虚拟机上的软件对应的升级组件;
通过与所述满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至所述满足升级要求的虚拟机中;
控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级。
结合第一方面,在第一方面的第一种可能的实现方式中,所述判断在线虚拟机中是否存在满足升级要求的虚拟机,包括:
判断在线虚拟机中是否存在满足第一升级条件的虚拟机;
如果存在满足第一升级条件的虚拟机,则判断满足第一升级条件的虚拟机是否满足第二升级条件;
如果存在满足第一升级条件且满足第二升级条件的虚拟机,则确定所述满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;
将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述判断在线虚拟机中是否存在满足第一升级条件的虚拟机,包括:
判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;
如果在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机,则将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述判断满足第一升级条件的虚拟机是否满足第二升级条件,包括:
判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;
如果满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致,则判断满足第一升级条件的虚拟机满足第二升级条件。
结合第一方面,在第一方面的第四种可能的实现方式下,所述控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级,包括:
通过所述升级通道向所述满足升级要求的虚拟机发送升级指令,使所述满足升级要求的虚拟机接收到所述升级指令后,根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级。
结合第一方面,在第一方面的第五种可能的实现方式下,所述控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级之后,还包括:
对进行组件升级的虚拟机进行重启操作。
结合第一方面,在第一方面的第六种可能的实现方式下,所述控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级之后,还包括:
通过所述升级通道获取所述满足升级要求的虚拟机对所述满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果。
第二方面,提供了一种对虚拟机中的软件进行升级的装置,所述装置包括:
确定模块,用于确定在线虚拟机;
判断模块,用于判断在线虚拟机中是否存在满足升级要求的虚拟机;
第一获取模块,用于当存在满足升级要求的虚拟机时,获取所述满足升级要求的虚拟机上的软件对应的升级组件;
发送模块,用于通过与所述满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至所述满足升级要求的虚拟机中;
控制模块,用于控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级。
结合第二方面,在第二方面的第一种可能的实现方式下,所述判断模块,包括:
第一判断单元,用于判断在线虚拟机中是否存在满足第一升级条件的虚拟机;
第二判断单元,用于当存在满足第一升级条件的虚拟机时,判断满足第一升级条件的虚拟机是否满足第二升级条件;
第一确定单元,用于当存在满足第一升级条件且满足第二升级条件的虚拟机时,确定所述满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;
第二确定单元,用于将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式下,所述第一判断单元,用于判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;
当在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机时,将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式下,所述第二判断单元,用于判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;
当满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致时,判断满足第一升级条件的虚拟机满足第二升级条件。
结合第二方面,在第二方面的第四种可能的实现方式下,所述控制模块,用于通过所述升级通道向所述满足升级要求的虚拟机发送升级指令,使所述满足升级要求的虚拟机接收到所述升级指令后,根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级。
结合第二方面,在第二方面的第五种可能的实现方式下,所述控制模块,还用于对进行组件升级的虚拟机进行重启操作。
结合第二方面,在第二方面的第六种可能的实现方式下,所述装置,还包括:
第二获取模块,用于通过所述升级通道获取所述满足升级要求的虚拟机对所述满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果。
本发明实施例提供的技术方案带来的有益效果是:
通过判断在线的虚拟机是否存在满足升级要求,进而获取满足升级要求的虚机上的软件对应的升级组件,并通过预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中,从而控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,而无需用户手动操作,因而升级方式更为便捷;且不需要在服务器上额外部署其他的管理软件,更无需对其他管理软件进行管理,从而进一步降低了升级的复杂度,并提升了升级效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种服务器和虚拟机的示意图;
图2是本发明实施例一提供的一种对虚拟机中的软件进行升级的方法流程图;
图3是本发明实施例二提供的一种对虚拟机中的软件进行升级的方法流程图;
图4是本发明实施例三提供的一种对虚拟机中的软件进行升级的装置结构示意图;
图5是本发明实施例三提供的判断模块的结构示意图;
图6是本发明实施例三提供的另一种对虚拟机中的软件进行升级的装置结构示意图;
图7是本发明实施例四提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
随着云计算技术的发展,虚拟化技术的不断成熟,每台服务器上可以同时并行的运行着多台虚拟机。通过在虚拟机上部署不同的软件,可以实现不同的功能。例如,在虚拟机中部署虚拟桌面代理软件,通过虚拟桌面代理软件的代理功能,终端用户通过瘦客户端或者其他任何与网络相连的设备就可以访问虚拟桌面代理软件代理的对应的客户桌面。其中,部署在虚拟机中的软件包括但不限于虚拟桌面代理软件、病毒查杀软件等,本实施例不对虚拟机中的软件进行具体的限定。图1为服务器和其上运行的一台虚拟机的示意图。在云计算场景下,服务器(Domain0)和每台虚拟机(Domain U)之间都有一个共享的存储系统Xenstore。Xenstore作为服务器和虚拟机之间的中介通信,主要是基于共享页面和事件通道实现的。参见图1,Xenstore主要包含两个模块:Domain0用户空间的XenstoreD服务主模块和Domain U里的XenBus内核模块,此外,Xenstore还提供了各种通信接口。具体地,Xenstore中各部分功能如下:
XenstoreD:XenstoreD作为Domain0用户空间的一个服务主模块,主要负责管理Xenstore的数据(tdb),并且处理虚拟机向服务器发送的请求消息。
XenBus:XenBus为内核模块,提供Domain0以及Domain U内核访问Xenstore的API(Application Programming Interface,应用程序编程接口),并提供用户空间的XenFS接口。除此之外,Domain0中的XenBus还负责初始化XenStoreD的运行环境,该运行环境是建立共享页面和事件通道的基础。
共享页面:由于每个Domain U都有一个与Domain0通信的共享页面,这个共享页面同时被映射到了XenstoreD的内存空间,因此,这个共享页面可以同时被XenstoreD、Domain0内核Kernel和对应的Domain U内核XenBus读写。XenStoreD会随时监控这个共享页面,当共享页面接收到Domain0和对应的Domain U中任一方发送的消息,XenStoreD就会直接处理消息,不需要内核模块干预。
事件通道:事件通道是XenstoreD、Domain0内核Kernel、对应的Domain U内核XenBus与共享页面之间传送消息的通道。每个虚拟机与服务器之间的事件通道有三条,其中,图1中的XenstoreD与共享页面之间的双向箭头代表一条事件通道,负责传送XenstoreD与共享页面之间的消息;Domain0内核Kernel与共享页面之间的双箭头代表一条事件通道,负责传送Domain0内核Kernel与共享页面之间的消息。由于共享页面位于Domain U中,Domain U和共享页面可以直接进行消息的传送,因此,图1中并未将Domain U和共享页面之间的事件通道画出来。当正在运行的Domain0或Domain U中的数据有更新,Domain0或Domain U将通过事件通道将消息传送给共享页面,共享页面接收到Domain0或Domain U传送的消息后,将接收到的消息传送给Domain U或Domain0,Domain U或Domain0在接收到消息后,可通过后续的操作获取更新的数据。
tdb:tdb为Xenstore的数据库,用于存储正在运行的服务器和各个虚拟机的配置信息,配置信息包括但不限于Domain ID(Identity,序列号)、Domain Name、UUID(Universally Unique Identifier,通用唯一识别码)、前后端设备、启动时间、虚拟机状态等,这些配置信息存储在一个tdb中的一个稳定的位置,因此,容易读取。
Socket:Socket为Dom0直接操纵Xenstored的数据接口。
XenFS:XenFS为Domain0/Domain U的通信接口,用于建立Domain0/Domain U之间传送消息的通道。由于同一通信接口在发送和接收消息时,消息的处理方式是不同的,其中,Xenstore提供的缓冲环有两个,1号环可被虚拟机写入,服务器读出,即1号环用于虚拟机向服务器发送请求消息及服务器接收虚拟机发送的请求消息;2号环可被服务器写入,虚拟机读出,即2号环用于服务器向虚拟机发送命令及虚拟机读取服务器发送的命令。因此,在消息的发送和接收过程中所使用的Xenstore提供的缓冲环是不同的。具体地,当DomainU通过Domain U对应的XenFS向Domain0发送请求消息,Domain0对应的XenFS接收到Domain U发送的请求消息时,该请求消息的发送和接收过程所使用的缓冲环为Xenstore提供的1号环;当Domain0通过Domain0对应的XenFS向Domain U发送命令消息,DomainU对应的XenFS接收到Domain0发送的命令消息时,该命令消息发送和接收过程所使用的缓冲环为Xenstore提供的2号环。
结合上述图1所示出的服务器和虚拟机之间的结构关系,本发明实施例提供了一种对虚拟机中的软件进行升级的方法。参见图2,本实施例提供的方法流程包括:
201:确定在线虚拟机,并判断在线虚拟机中是否存在满足升级要求的虚拟机。
作为一种优选的实施例,判断在线虚拟机中是否存在满足升级要求的虚拟机,包括:
判断在线虚拟机中是否存在满足第一升级条件的虚拟机;
如果存在满足第一升级条件的虚拟机,则判断满足第一升级条件的虚拟机是否满足第二升级条件;
如果存在满足第一升级条件且满足第二升级条件的虚拟机,则确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;
将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
作为一种优选的实施例,判断在线虚拟机中是否存在满足第一升级条件的虚拟机,包括:
判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;
如果在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机,则将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机。
作为一种优选的实施例,判断满足第一升级条件的虚拟机是否满足第二升级条件,包括:
判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;
如果满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致,则判断满足第一升级条件的虚拟机满足第二升级条件。
202:如果存在满足升级要求的虚拟机,则获取满足升级要求的虚拟机上的软件对应的升级组件。
203:通过与满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中。
204:控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
作为一种优选的实施例,控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,包括:
通过升级通道向满足升级要求的虚拟机发送升级指令,使满足升级要求的虚拟机接收到升级指令后,根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
作为一种优选的实施例,控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级之后,还包括:
对进行组件升级的虚拟机进行重启操作。
作为一种优选的实施例,控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级之后,还包括:
通过升级通道获取满足升级要求的虚拟机对满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果。
本发明实施例提供的方法,通过判断在线的虚拟机是否满足升级要求,进而获取满足升级要求的虚机上的软件对应的升级组件,并通过预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中,从而控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,而无需用户手动操作,因而升级方式更为便捷,且不需要在服务器上额外部署其他管理软件,更无需对其他管理软件进行管理,从而进一步降低了升级的复杂度,并提升了升级效率。
实施例二
结合上述图1所示出的服务器和虚拟机之间的结构关系,以及上述实施例一的内容,本发明实施例提供了一种对虚拟机中的软件进行升级的方法。参见图3,本实施例提供的方法流程包括:
301:安装待升级软件对应的组件升级包。
其中,关于安装待升级软件对应的组件升级包的方式,本实施例不作具体的限定,包括但不限于获取待升级软件对应的组件升级包,进而根据待升级软件对应的组件升级包的安装过程指引对待升级软件对应的组件升级包进行安装。
关于获取待升级软件对应的组件升级包的方式,本实施不作具体的限定,包括但不限于如下两种方式:
方式一:服务器在获取到管理员的管理命令后,通过网络或其他方式获取待升级软件对应的组件升级包;
方式二:从具有待升级软件对应的组件升级包的虚拟机中获取待升级软件对应的组件升级包。由于服务器和虚拟机之间有共享的存储系统,该共享的存储系统作为服务器和虚拟机之间的中介通信,可在服务器和虚拟机之间传送消息,因此,当服务器上的虚拟机中有对应的组件升级包时,服务器在获知该虚拟机中有对应的组件升级包后,可通过共享的存储系统获取该虚拟机上的对应的组件升级包。
进一步地,将待升级软件对应的组件升级包安装到服务器上后,该升级包中相应地软件对应的升级组件将以iso文件形式被放置到安装目录/opt/patch/programfiles/domutools/下。由于tdb为Xenstore的数据库,Xenstore中存储着正在运行的服务器和虚拟机的配置信息,因此,待升级软件对应的升级组件实际被放置到tdb数据库中。
302:安装与各个虚拟机之间的升级通道。
针对该步骤,升级通道是服务器与其上的各个虚拟机之间传送数据及消息的桥梁,因此,为了对虚拟机中的软件进行升级,使服务器和虚拟机之间能够传送待升级软件对应的升级组件,本实施例提供的方法需要先安装服务器与虚拟机之间的升级通道。
具体地,关于安装服务器与虚拟机之间的升级通道的方式,本实施例不作具体的限定,包括但不限于获取升级通道rpm(RedHat Package Manager,软件管理工具)包,进而根据升级通道rpm包安装过程指引对升级通道进行安装。其中,升级通道被安装到服务器上安装目录/opt/patch/programfiles/domutools/下。
需要说明的是,虽然服务器和每个虚拟机之间都可会传送数据及消息,服务器与每个虚拟机之间数据及消息的传送需要借助升级通道,但由于升级通道安装在服务器上,因此,服务器和每个虚拟机进行数据及消息的传送都可通过安装在服务器上的一个升级通道进行传送。
进一步地,将升级通道安装到服务器上后,可通过执行升级脚本install.sh重启升级服务开始升级。具体过程如下:
首先,升级脚本将/opt/patch/programfiles/domutools目录下的iso文件形式的软件对应的升级组件拷贝到升级目录/opt/uvp/upgrade/domutools/下;
其次,判断升级通道是否安装成功,若安装目录下,升级通道文件夹存在,则判断升级通道安装成功;
再次,若升级通道安装成功,则将pvdriver-upgrade拷贝至/usr/bin下,并重启升级服务开始升级。
需要说明的是,并不是在每次对虚拟机中的软件进行升级时都执行步骤301和302,上述步骤301和302可以在首次对虚拟机中的软件进行时执行,之后再对虚拟机中的软件进行升级时,可直接使用上述步骤302中建立的升级通道,且如果不存在新的升级组件,无需更新升级组件时,可直接使用上述步骤中安装的待升级软件对应的升级组件。当然,如果上述安装的待升级软件对应的升级组件及升级通道有更新时,可以再次执行上述步骤301及302,本实施例不对执行步骤301及302的时间及次数进行限定。
303:确定在线的虚拟机,并判断在线的虚拟机中是否存在满足升级要求的虚拟机。
针对该步骤,由于服务器用户空间的XenstoreD服务主模块负责管理Xenstore的数据(即tdb中的数据),因此,当上述步骤301中将待升级软件对应的升级组件放置到tdb数据库中后,服务器用户空间的XenstoreD服务主模块在获知tdb数据库中有待升级软件对应的升级组件,将确定其上的虚拟机的状态,进而根据虚拟机的状态判断是否执行后续操作。其中,虚拟机所处的状态有在线、暂停和关机等,本实施不对虚拟机所处的状态进行限定。关于确定虚拟机状态的方式,本实施例不作具体的限定,由于tdb用于存储在线的虚拟机的状态信息,因此,包括但不限于通过事件通道从tdb数据库中存储的虚拟机配置信息中获取在线的虚拟机的状态信息,进而根据获取的虚拟机的状态信息确定虚拟机的状态。若可以从tdb中获取到虚拟机的状态信息,则说明该虚拟机所处的状态为在线状态;若无法从tdb中获取到虚拟机的状态信息,则说明该虚拟机所处的状态为暂停或关机。
进一步地,在确定在线的虚拟机后,XenstoreD将通过与共享页面间的事件通道将这一消息发送给与每个在线的虚拟机对应的共享页面,每个在线的虚拟机对应的共享页面在接收到XenstoreD发送的消息后,通过与虚拟机之间的事件通道将接收到的XenstoreD发送的消息发送给对应的虚拟机。每个对应的虚拟机在接收到共享页面发送的消息后,将通过升级通道向服务器发送请求消息,服务器在接收到对应的在线的虚拟机发送的请求消息后,将判断对应的在线虚拟机中是否存在满足升级要求的虚拟机。若存在满足升级要求的虚拟机,则通过后续步骤对满足升级要求的虚拟机上的软件对应的组件进行升级。具体地,判断在线虚拟机中是否存在满足升级要求的虚拟机的方式,包括但不限于如下方式:
第一步,判断在线虚拟机中是否存在满足第一升级条件的虚拟机;
针对第一步,判断在线虚拟机中是否存在满足第一升级条件的虚拟机,包括但不限于:
判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;
如果在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机,则将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机。
对于上述过程,为了便于理解,下面将以一个具体的例子进行详细的解释说明。
例如,在线的虚拟机有A、B、C、D、E、F5个,若判断出在线的虚拟机A在进行虚拟处理器热插拔,在线的虚拟机B在进行内存快照,在线的虚拟机C在进行休眠唤醒,在线的虚拟机D在进行热迁移,在线的虚拟机E在进行虚拟热处理器热插拔和内存快照,在线的虚拟机F未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移,由于在线的虚拟机A、B、C、D、E在进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移中的一项或多项,因此,在线的虚拟机A、B、C、D、E为不满足第一升级条件的虚拟机。由于在线的虚拟机F未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移,因此,在线的虚拟机F为满足第一升级条件的虚拟机。
第二步,如果存在满足第一升级条件的虚拟机,则判断满足第一升级条件的虚拟机是否满足第二升级条件;
针对第二步,判断满足第一升级条件的虚拟机是否满足第二升级条件,包括但不限于:
判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;
如果满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致,则判断满足第一升级条件的虚拟机满足第二升级条件。
对于上述过程,为了便于理解,下面将以获取到的升级组件的版本号为3为例进行详细的解释说明。
例如,若满足第一升级条件的虚拟机有A、B、C三个,其中,满足第一升级条件的虚拟机A上的软件对应的组件版本号为1,满足第一升级条件的虚拟机B上的软件对应的组件版本号为2,满足第一升级条件的虚拟机C上的软件对应的组件版本号为3。由于满足第一升级条件的虚拟机A上的软件对应的组件版本号为1,与获取到的升级组件的版本号3不一致,因此,判断满足第一升级条件的虚拟机A满足第二升级条件;由于满足第一升级条件的虚拟机B上的软件对应的组件版本号为2,与获取到的升级组件的版本号3不一致,因此,判断满足第一升级条件的虚拟机B满足第二升级条件;由于满足第一升级条件的虚拟机C上的软件对应的组件版本号为3,与获取到的升级组件的版本号3一致,因此,判断满足第一升级条件的虚拟机A不满足第二升级条件。
第三步,如果存在满足第一升级条件且满足第二升级条件的虚拟机,则确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;
针对第三步,为了有针对性的对需要升级的虚拟机进行升级,避免对已经升级或无需升级的虚拟机进行升级,本实施例提供的方法根据上一次升级结果对虚拟机设置了不同的标识。具体地,若上一次对虚拟机升级的升级结果为成功,则将该虚拟机的标识设置为空;若上一次未对虚拟机进行升级,虚拟机的升级结果为空,则将该虚拟机的标识设置为升级标识;若上一次对虚拟机升级的升级结果为失败,则将该虚拟机的标识设置为升级标识;若上一次对虚拟机升级后未进行重启操作,虚拟机的升级结果为准备升级,则将该虚拟机的标识设置为重启标识。
进一步地,由于升级结果能反映出虚拟机的标识信息,因此,在判断出存在满足第一升级条件且满足第二升级条件的虚拟机后,本实施例提供的方法还将获取满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果,并根据获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果,确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识。
关于获取满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果的方式,本实施例不作具体的限定,包括但不限于从Xenstore中获取。
具体地,根据获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果,确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识,包括但不限于如下几种确定结果:
第一种确定结果:若获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果为成功,则确定满足第一升级条件且满足第二升级条件的虚拟机不具有升级标识;
第二种确定结果:若获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果为准备升级,则确定满足第一升级条件且满足第二升级条件的虚拟机不具有升级标识;
第三种确定结果:若获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果为空,则确定满足第一升级条件且满足第二升级条件的虚拟机具有升级标识;
第四种确定结果:若获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果为失败,则确定满足第一升级条件且满足第二升级条件的虚拟机具有升级标识。
第四步,将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
针对第四步,若在线的虚拟机满足第一升级条件、第二升级条件且具有升级标识,则将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
对于上述过程,为了便于理解,下面将以一个具体的例子进行详细的解释说明。
例如,若在线的虚拟机A满足第一升级条件,不满足第二升级条件,在线的虚拟机B满足第一升级条件、第二升级条件但不具有升级标识,在线的虚拟机C满足第一升级条件、第二升级条件且具有升级标识,由于在线的虚拟机A不满足第二升级条件、在线的虚拟机B不具有升级标识,因此,确定在线的虚拟机A和B不是满足升级要求的虚拟机。由于在线的虚拟机C满足第一升级条件、第二升级条件且具有升级标识,因此,确定在线的虚拟机C为满足升级要求的虚拟机。
304:若在线的虚拟机中存在满足升级要求的虚拟机,则获取满足升级要求的虚拟机上的软件对应的升级组件。
针对该步骤,由于上述步骤303中已经对在线的虚拟机中是否存在满足升级要求的虚拟机进行了判断,因此,在判断得出存在满足升级要求的虚拟机后,为了对虚拟机中的软件进行升级,本步骤中将获取满足升级要求的虚拟机上的软件对应的升级组件。
关于获取满足升级要求的虚拟机上的软件对应的升级组件的方式,本实施例不作具体的限定,由于服务器的tdb数据库中预先存储着,因此,包括但不限于从存储服务器上软件对应的升级组件的tdb数据库中获取。
需要说明的是,tdb数据库中存储的组件有Virtual PC、VMware Workstation、PVDriver等,由于对PV Driver组件的升级是对其他软件对应的升级组件进行升级的基础,在PV Driver组件升级后,其他软件对应的升级组件才能进行升级,因此,在获取软件对应的升级组件时,若有PV Driver组件存在,需要先获取PV Driver组件。
305:通过与满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中。
针对该步骤,由于上述步骤304服务器已经获取了软件对应的升级组件,且通过上述步骤303建立了与各个虚拟机之间的升级通道,因此,本步骤中服务器可以通过与满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中。
具体地,如果服务器所使用的操作系统为linux操作系统,虚拟机所使用的操作系统为Windows操作系统或linux操作系统,不同的操作系统下软件的配置是不同的,因此,服务器在通过与满足升级要求的虚拟机之间预先建立的升级通道向满足升级要求的虚拟机中发送获取到的升级组件时,需要先判断虚拟机所使用的操作系统。关于判断虚拟机所使用的操作系统的方式,包括但不限于通过设置/local/domain/vmid/control/uvp/windows_flag的值进行判断,具体设置时,可以将flag的值设为1代表是windows操作系统,将flag的值设为0代表linux操作系统,也可以将flag的值设为0代表是windows操作系统,将flag的值设为1代表linux操作系统,当然flag的值除了0和1以外,当然,也可以设置为其他值,本实施例不对判断虚拟机所使用的操作系统的方式作具体限定。
在判断虚拟机所使用的操作系统后,为了向使用不同的操作系统的虚拟机发送不同操作系统下适用的升级组件,本实施例提供的方法在向使用不同的操作系统的虚拟机发送升级组件之前,需要先根据所发送升级组件的虚拟机修改/usr/bin/pvdriver_upgrade/目录下的配置文件。通过修改/usr/bin/pvdriver_upgrade/目录下的配置文件,从而使不同的操作系统的虚拟机可接收到不同操作系统下适用的升级组件。
进一步地,在向使用不同的操作系统的虚拟机发送不同操作系统下适用的升级组件后,服务器还将向虚拟机的control/upv/upgrade/mountiso键写入mount-tools-iso,触发虚拟机拷贝升级文件。当所有满足升级要求的虚拟机将升级组件拷贝完成后,将升级组件拷贝完成的虚拟机还将向服务器的/local/domain/vmid/control/uvp/upgrade/ftpfail写入tools-upgrade-ok,触发服务器将该升级组件进行卸载。
需要说明的是,由于升级PV Driver组件是对其他软件对应的升级组件进行升级的基础,上述步骤304中优先获取了PV Driver组件,因此,本步骤通过与满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中时,也将优先发送PV Driver组件。
306:控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
针对该步骤,满足升级要求的虚拟机将升级组件拷贝完成后,本实施例提供的方法还将控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。具体地,关于控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,包括但不限于:
通过升级通道向满足升级要求的虚拟机发送升级指令,使满足升级要求的虚拟机接收到升级指令后,根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
具体地,服务器可向服务器与虚拟机之间共享的存储系统写入start_upgrade,共享的存储系统在接收到服务器发送的命令后,将通过升级通道将该指令发送给满足升级要求的对应的虚拟机,满足升级要求的虚拟机在接收到服务器发送的指令后,将根据该指令和升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
307:对进行组件升级的虚拟机进行重启操作。
针对该步骤,虽然上述步骤306中已使满足升级要求的虚拟机上的软件对应的组件进行升级,但后续还需对进行组件升级的虚拟机进行重启操作以完成软件对应的组件的升级工作。具体地,关于对进行组件升级的虚拟机进行重启操作的方式,本实施例不作具体的限定,包括但不限于服务器触发服务器与虚拟机之间共享的存储系统中的watch使虚拟机弹出提示框,提示用户进行重启操作的确认,并在收到确认指令后,对进行组件升级的虚拟机进行重启操作,以完成升级。
308:通过升级通道获取满足升级要求的虚拟机对满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果。
该步骤为优选步骤,为了便于系统的整体维护和升级,方便用户随时获知虚拟机中软件对应的组件的升级结果,本实施例提供的方法在对虚拟机中的软件对应的组件进行升级后,还将通过升级通道获取满足升级要求的虚拟机对满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果,并通过升级通道将获取到的满足升级要求的虚拟机对满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果写入到服务器和虚拟机之间共享的存储系统中。
进一步地,一段时间后,若用户想要获知虚拟机中软件对应的组件的升级结果,可通过向服务器写入gentresult.sh命令,进而从服务器和虚拟机之间共享的存储系统中获取升级结果。
本发明实施例提供的方法,通过判断在线的虚拟机是否满足升级要求,进而获取满足升级要求的虚机上的软件对应的升级组件,并通过预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中,从而控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,而无需用户手动操作,因而升级方式更为便捷;且不需要在服务器上额外部署其他管理,从而进一步降低了升级的复杂度,并提升了升级效率。
实施例三
参见图4,本发明实施例提供了一种对虚拟机中的软件进行升级的装置,该装置包括:
确定模块401,用于确定在线虚拟机;
判断模块402,用于判断在线虚拟机中是否存在满足升级要求的虚拟机;
第一获取模块403,用于当存在满足升级要求的虚拟机时,获取满足升级要求的虚拟机上的软件对应的升级组件;
发送模块404,用于通过与满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中;
控制模块405,用于控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
参见图5,判断模块402,包括:
第一判断单元4021,用于判断在线虚拟机中是否存在满足第一升级条件的虚拟机;
第二判断单元4022,用于当存在满足第一升级条件的虚拟机时,判断满足第一升级条件的虚拟机是否满足第二升级条件;
第一确定单元4023,用于当存在满足第一升级条件且满足第二升级条件的虚拟机时,确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;
第二确定单元4024,用于将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
作为一种优选的实施例,第一判断单元4021,用于判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;
当在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机时,将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机。
作为一种优选的实施例,第二判断单元4022,用于判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;
当满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致时,判断满足第一升级条件的虚拟机满足第二升级条件。
作为一种优选的实施例,控制模块405,用于通过升级通道向满足升级要求的虚拟机发送升级指令,使满足升级要求的虚拟机接收到升级指令后,根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
作为一种优选的实施例,控制模块405,还用于对进行组件升级的虚拟机进行重启操作。
参见图6,该装置,还包括:
第二获取模块406,用于通过升级通道获取满足升级要求的虚拟机对满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果。
本发明实施例提供的装置,通过判断在线的虚拟机是否满足升级要求,进而获取满足升级要求的虚机上的软件对应的升级组件,并通过预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中,从而控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,而无需用户手动操作,因而升级方式更为便捷,从而进一步降低了升级的复杂度,并提升了升级效率。
实施例四
图7为一个实施方式中服务器的结构示意图,该服务器包括处理器701、发射机702和接收机703;
其中,
处理器701,用于确定在线虚拟机,并判断在线虚拟机中是否存在满足升级要求的虚拟机;
处理器701,还用于当存在满足升级要求的虚拟机时,获取满足升级要求的虚拟机上的软件对应的升级组件;
发射机702,用于通过与满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中;
处理器703,用于控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
作为一种优选的实施例,处理器701,还用于判断在线虚拟机中是否存在满足第一升级条件的虚拟机;当存在满足第一升级条件的虚拟机时,判断满足第一升级条件的虚拟机是否满足第二升级条件;当存在满足第一升级条件且满足第二升级条件的虚拟机时,确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
作为一种优选的实施例,处理器701判断在线虚拟机中是否存在满足第一升级条件的虚拟机,包括判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;如果在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机,则将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机。
作为一种优选的实施例,处理器701判断满足第一升级条件的虚拟机是否满足第二升级条件,包括判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;如果满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致,则判断满足第一升级条件的虚拟机满足第二升级条件。
作为一种优选的实施例,处理器701控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,包括通过升级通道向满足升级要求的虚拟机发送升级指令,使满足升级要求的虚拟机接收到升级指令后,根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级。
作为一种优选的实施例,处理器701用于在控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级之后,对进行组件升级的虚拟机进行重启操作。
作为一种优选的实施例,接收机703用于在处理器701控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级之后,通过升级通道获取满足升级要求的虚拟机对满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果。
本发明实施例提供的服务器,通过判断在线的虚拟机是否满足升级要求,进而获取满足升级要求的虚机上的软件对应的升级组件,并通过预先建立的升级通道将获取到的升级组件发送至满足升级要求的虚拟机中,从而控制满足升级要求的虚拟机根据升级组件对满足升级要求的虚拟机上的软件对应的组件进行升级,而无需用户手动操作,因而升级方式更为便捷;且不需要在服务器上额外部署管理软件进行管理,从而进一步降低了升级的复杂度,并提升了升级效率。
需要说明的是:上述实施例提供的对虚拟机中的软件进行升级的装置在对虚拟机进行升级时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将对虚拟机中的软件进行升级的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的对虚拟机中的软件进行升级的装置与对虚拟机中的软件进行升级的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种对虚拟机中的软件进行升级的方法,其特征在于,所述方法包括:
确定在线虚拟机,并判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;如果在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机,则将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机;
判断满足第一升级条件的虚拟机是否满足第二升级条件;
如果存在满足第一升级条件且满足第二升级条件的虚拟机,则确定所述满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;
将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机;
获取满足升级要求的虚拟机上的软件对应的升级组件;
通过与所述满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至所述满足升级要求的虚拟机中;
控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级。
2.根据权利要求1所述的方法,其特征在于,所述判断满足第一升级条件的虚拟机是否满足第二升级条件,包括:
判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;
如果满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致,则判断满足第一升级条件的虚拟机满足第二升级条件。
3.根据权利要求1所述的方法,其特征在于,所述控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级,包括:
通过所述升级通道向所述满足升级要求的虚拟机发送升级指令,使所述满足升级要求的虚拟机接收到所述升级指令后,根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级。
4.根据权利要求1所述的方法,其特征在于,所述控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级之后,还包括:
对进行组件升级的虚拟机进行重启操作。
5.根据权利要求1所述的方法,其特征在于,所述控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级之后,还包括:
通过所述升级通道获取所述满足升级要求的虚拟机对所述满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果。
6.一种对虚拟机中的软件进行升级的装置,其特征在于,所述装置包括:
确定模块,用于确定在线虚拟机;
判断模块,用于判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;当在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机时,将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机;判断满足第一升级条件的虚拟机是否满足第二升级条件;当存在满足第一升级条件且满足第二升级条件的虚拟机时,确定所述满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机;
第一获取模块,用于当存在满足升级要求的虚拟机时,获取所述满足升级要求的虚拟机上的软件对应的升级组件;
发送模块,用于通过与所述满足升级要求的虚拟机之间预先建立的升级通道将获取到的升级组件发送至所述满足升级要求的虚拟机中;
控制模块,用于控制所述满足升级要求的虚拟机根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级。
7.根据权利要求6所述的装置,其特征在于,所述判断模块,用于判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;
当满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致时,判断满足第一升级条件的虚拟机满足第二升级条件。
8.根据权利要求6所述的装置,其特征在于,所述控制模块,用于通过所述升级通道向所述满足升级要求的虚拟机发送升级指令,使所述满足升级要求的虚拟机接收到所述升级指令后,根据所述升级组件对所述满足升级要求的虚拟机上的软件对应的组件进行升级。
9.根据权利要求6所述的装置,其特征在于,所述控制模块,还用于对进行组件升级的虚拟机进行重启操作。
10.根据权利要求6所述的装置,其特征在于,所述装置,还包括:
第二获取模块,用于通过所述升级通道获取所述满足升级要求的虚拟机对所述满足升级要求的虚拟机上的软件对应的组件进行升级后的升级结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310571937.XA CN104636159B (zh) | 2013-11-15 | 2013-11-15 | 对虚拟机中的软件进行升级的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310571937.XA CN104636159B (zh) | 2013-11-15 | 2013-11-15 | 对虚拟机中的软件进行升级的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104636159A CN104636159A (zh) | 2015-05-20 |
CN104636159B true CN104636159B (zh) | 2018-09-28 |
Family
ID=53214957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310571937.XA Active CN104636159B (zh) | 2013-11-15 | 2013-11-15 | 对虚拟机中的软件进行升级的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104636159B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468399A (zh) * | 2015-08-07 | 2016-04-06 | 北京汉柏科技有限公司 | 一种云平台用户软件更新方法 |
CN105162667B (zh) * | 2015-09-10 | 2018-08-14 | 华为技术有限公司 | 虚拟机配置方法和装置 |
CN106657173B (zh) | 2015-10-29 | 2020-01-17 | 华为技术有限公司 | 一种nfv架构下软件升级中的业务迁移方法、装置及服务器 |
CN105573820A (zh) * | 2015-12-15 | 2016-05-11 | 国云科技股份有限公司 | 一种Xen虚拟机光盘热插拔方法 |
CN107368324A (zh) * | 2016-05-11 | 2017-11-21 | 中兴通讯股份有限公司 | 一种组件升级方法、装置和系统 |
CN107844304B (zh) * | 2016-09-18 | 2021-03-19 | 阿里巴巴集团控股有限公司 | 虚拟机热升级方法及装置 |
CN110874232B (zh) * | 2018-09-04 | 2023-12-29 | 中兴通讯股份有限公司 | 虚拟机组件升级方法、设备和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841802A (zh) * | 2012-07-27 | 2012-12-26 | 锐迪科科技有限公司 | 移动终端的软件升级方法 |
CN102880482A (zh) * | 2012-08-06 | 2013-01-16 | 厦门市美亚柏科信息股份有限公司 | 一种主机批量控制虚拟机中软件自动升级的系统及技术方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770375A (zh) * | 2008-12-26 | 2010-07-07 | 新奥特(北京)视频技术有限公司 | 一种软件自动升级的实现方法、系统和装置 |
US8813069B2 (en) * | 2009-05-29 | 2014-08-19 | Red Hat, Inc. | Migration of functionalities across systems |
TWI505189B (zh) * | 2010-08-27 | 2015-10-21 | Ibm | 用於虛擬裝置之自動升級之方法、電腦程式及系統 |
US9158561B2 (en) * | 2011-08-18 | 2015-10-13 | Vmware, Inc. | Systems and methods for modifying an operating system for a virtual machine |
CN103067445B (zh) * | 2012-12-06 | 2015-07-08 | 华为技术有限公司 | 一种分布式系统的软件升级方法及装置 |
-
2013
- 2013-11-15 CN CN201310571937.XA patent/CN104636159B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841802A (zh) * | 2012-07-27 | 2012-12-26 | 锐迪科科技有限公司 | 移动终端的软件升级方法 |
CN102880482A (zh) * | 2012-08-06 | 2013-01-16 | 厦门市美亚柏科信息股份有限公司 | 一种主机批量控制虚拟机中软件自动升级的系统及技术方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104636159A (zh) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104636159B (zh) | 对虚拟机中的软件进行升级的方法和装置 | |
KR101574366B1 (ko) | 가상 머신 및 애플리케이션 수명들의 동기화 | |
US11237811B2 (en) | Software installation onto a client using existing resources | |
CN106557347B (zh) | 软件更新方法及装置 | |
JP2012078893A (ja) | 計算機システム、及び管理計算機 | |
CN101360127A (zh) | 文件更新方法及传输系统 | |
WO2021115177A1 (zh) | 应用安装方法、装置、终端设备、服务器及存储介质 | |
US20170199733A1 (en) | Method for terminal to update operating system, terminal and system | |
CN111459403B (zh) | 一种存储硬件管理方法及装置 | |
WO2016029774A1 (zh) | 基于虚拟化的应用存储方法、执行方法、装置及系统 | |
JP2009037589A (ja) | プログラム判定装置、プログラム判定方法及びプログラム | |
CN104077168A (zh) | 一种为终端更新操作系统的方法及设备 | |
JP5013999B2 (ja) | 画像形成装置、プログラム制御方法、及び制御プログラム | |
CN104090805B (zh) | 一种更新终端操作系统的方法、设备及系统 | |
WO2018028321A1 (zh) | 一种虚拟外置存储设备的管理方法、装置及终端 | |
WO2021057880A1 (zh) | 物联网设备的程序升级方法、装置及物联网设备 | |
CN112540777A (zh) | 一种支持动态读写nv参数的方法和终端 | |
JP2009020863A (ja) | 画像形成装置、情報処理装置、障害解析支援方法、及び障害解析支援プログラム | |
CN111984273B (zh) | 基于嵌入式操作系统的应用程序管理方法、装置和系统 | |
WO2023050947A1 (zh) | 网络升级方法、电子设备及存储介质 | |
WO2021254280A1 (zh) | 磁盘挂载方法、装置、存储介质以及电子装置 | |
JP5263358B2 (ja) | 情報処理装置、プログラム制御方法、及び制御プログラム | |
CN111338667B (zh) | 一种应用程序app的升级方法与升级装置 | |
CN117376341A (zh) | 一种将文件上传至虚拟机的方法、装置、设备及介质 | |
CN112328278A (zh) | 对网络中的设备进行安装升级的方法、平台及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220217 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |