CN110874232B - 虚拟机组件升级方法、设备和计算机可读存储介质 - Google Patents
虚拟机组件升级方法、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110874232B CN110874232B CN201811027485.8A CN201811027485A CN110874232B CN 110874232 B CN110874232 B CN 110874232B CN 201811027485 A CN201811027485 A CN 201811027485A CN 110874232 B CN110874232 B CN 110874232B
- Authority
- CN
- China
- Prior art keywords
- upgrade
- message
- virtual machine
- upgrading
- component
- 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 94
- 238000012790 confirmation Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 230000003287 optical effect Effects 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 21
- 230000006854 communication Effects 0.000 abstract description 15
- 238000004891 communication Methods 0.000 abstract description 15
- 238000007726 management method Methods 0.000 description 15
- 238000002955 isolation Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种虚拟机组件升级方法、设备和计算机可读存储介质,属于虚拟机领域。该方法包括:WEB服务端根据预设的虚拟机组件升级的目标版本号,请求管理节点将目标组件ISO挂载到虚拟机光驱上;向消息队列发送升级启动消息;当监听到消息队列的升级请求消息,且虚拟机满足升级条件时,向消息队列发送升级通知消息。本发明实施例通过引入消息中间件对整个升级流程进行优化,实现了异步通讯并简化了升级流程,提升了大规模应用场景下虚拟机组件升级的效率。并通过为每个虚拟机的升级任务分配一个本次升级的唯一标识,WEB服务端、计算节点、虚拟机之间的通信都携带本次升级的唯一标识,实现了升级全流程的可追踪。
Description
技术领域
本发明涉及虚拟机技术领域,特别涉及一种虚拟机组件升级方法、设备和计算机可读存储介质。
背景技术
随着云计算、虚拟桌面等技术的普及,虚拟机大批量应用场景越来越多,对于虚拟机内部组件的升级,当前所采用主要方式有如下几种:一是模板升级方式,即首先查找到该虚拟机对应的基础模板,对该模板升级后基于该模板对虚拟机进行重建,这种方式适用于对数据不敏感的教学场景下;二是管理员升级方式,即由系统管理员统一进行升级,当虚拟机数量达到数百乃至数千的量级时,这种方式对管理员非常耗时耗力,非常不灵活。
因此,大规模应用场景下,亟需一种高效的虚拟机组件的批量升级方法。
发明内容
有鉴于此,本发明实施例的目的在于提供一种虚拟机组件升级方法、设备和计算机可读存储介质,以解决批量升级虚拟机组件的技术问题。
本发明实施例解决上述技术问题所采用的技术方案如下:
根据本发明实施例的一个方面,提供一种虚拟机组件升级方法,应用于WEB服务端,该方法包括:
根据预设的虚拟机组件升级的目标版本号,请求管理节点将目标组件ISO挂载到虚拟机光驱上;
向消息队列发送升级启动消息,升级启动消息携带本次升级的唯一标识;
当监听到消息队列的升级请求消息,且虚拟机满足升级条件时,则向消息队列发送升级通知消息;
其中,升级请求消息和升级通知消息中均携带本次升级的唯一标识。
根据本发明的另一个方面,提供一种虚拟机组件升级方法,应用于计算节点,该方法包括:
接收到升级启动消息,则向待升级的虚拟机转发升级启动消息;
接收到升级请求消息,则向消息队列转发升级请求消息;
接收到升级通知消息,则向待升级的虚拟机转发升级通知消息;
接收到升级确认消息,则向消息队列转发升级确认消息;
接收到升级结果消息,则向消息队列转发升级结果消息;
其中,升级请求消息、升级通知消息、升级确认消息和升级结果消息中均携带本次升级的唯一标识。
根据本发明的另一个方面,提供一种虚拟机组件升级方法,应用于虚拟机,该方法包括:
检测到当前组件版本号与挂载的目标组件版本号不一致,向计算节点发送升级请求消息;
接收到升级通知消息,则向用户确认是否升级,并向计算节点发送升级确认消息;
采用挂载的目标组件ISO进行组件升级,并向计算节点发送升级结果消息;
其中,升级请求消息、升级确认消息和升级结果消息均为携带本次升级的唯一标识的socket消息。
根据本发明的又一个方面,提供一种设备,该设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时,实现上述虚拟机组件升级方法的步骤。
根据本发明的再一个方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现上述虚拟机组件升级方法的步骤。
本发明实施例提供的虚拟机组件升级方法、设备和计算机可读存储介质,通过引入消息中间件对整个升级流程进行优化,消息发送者可以将消息发送到某个队列上而无需关注接收方的状态,消息接收者则订阅或者监听特定消息通道而无需对消息发送者作出同步响应,从而实现了异步通讯并简化了升级流程,提高了系统并发处理虚拟机组件升级的能力和系统的健壮性,提升了大规模应用场景下虚拟机组件升级的效率。并通过为每个虚拟机的组件升级任务分配一个本次升级的唯一标识,WEB服务端、计算节点、虚拟机之间的通信都携带该本次升级的唯一标识,实现了升级全流程的可追踪。
附图说明
图1为本发明实施例提供的系统结构示意图;
图2为本发明实施例一提供的一种应用于WEB服务端的虚拟机组件升级方法的流程图;
图3为本发明实施例二提供的一种应用于WEB服务端的虚拟机组件升级方法的流程图;
图4为本发明实施例三提供的一种应用于管理节点的虚拟机组件升级方法的流程图;
图5为本发明实施例四提供的一种应用于虚拟机的组件升级方法的流程图;
图6为本发明实施例五提供的一种虚拟机组件升级方法的交互流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例的虚拟机组件升级系统包括:WEB服务端、管理节点、计算节点和虚拟机。
WEB服务端:负责整体流程的把控,根据系统资源、升级流控及虚拟机状态合理规划升级顺序,同时作为消息生产者和消息消费者处理升级过程中的消息。
管理节点:主要负责升级ISO的挂载卸载,主要通过SOAP(Simple ObjectAccessProtocol,简单对象访问协议)和HTTP(HyperText Transfer Protocol,超文本传输协议)与上下游模块交互。
计算节点:虚拟机所运行的物理主机,虚拟机和计算节点之间通过模拟的串口发送socket消息通信,计算节点接收虚拟机的消息并转发至消息队列。
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
虚拟机:主要负责组件版本检测、向主机发送请求升级的消息、用户确认的消息以及升级结果的消息。
其中涉及的消息定义如下:
升级启动消息:WEB服务端作为消息生产者,携带生成的本次升级的唯一标识发送至消息队列,通知计算节点及虚拟机本次升级的唯一标识。
升级请求消息:虚拟机通过socket消息向计算节点发送升级请求消息,由计算节点代理作为消息生产者转发至消息队列。
升级通知消息:WEB服务端作为消息生产者向消息队列发送可以升级的消息,由计算节点转发至虚拟机可以开始升级。
升级确认消息:虚拟机通过socket消息向计算节点发送升级确认消息,由计算节点代理作为消息生产者转发至消息队列。
升级结果消息:虚拟机组件升级完成,通过socket消息向计算节点发送升级结果消,由计算节点代理作为消息生产者转至消息队列,WEB服务端作为消息消费者从队列中接收该升级结果消息,解析并展示升级结果。
基于以上系统架构和消息定义,提出下面本发明实施例的方法。
实施例一
如图2所示,本发明实施例提供一种虚拟机组件升级方法,应用于WEB服务端,该方法包括:
S201、根据预设的虚拟机组件升级的目标版本号,请求管理节点将目标组件ISO挂载到虚拟机光驱上。
具体的,用户通过WEB服务端设置虚拟机的升级方式和目标组件版本号。升级方式包括管理员方式和用户方式。ISO(Isolation)文件一般以ISO为扩展名,是复制光盘上全部信息而形成的镜像文件,从而用于安装。一般需要专用工具软件才能操作ISO文件,故本发明实施例中,WEB服务端发送HTTP请求到管理节点,请求管理节点将目标版本号对应的组件ISO挂载到虚拟机光驱上。
S202、向息队列发送升级启动消息,其中,升级启动消息携带本次升级的唯一标识。
具体的,WEB服务端生成本次升级的唯一标识,并作为消息生产者向消息队列发送携带本次升级的唯一标识的升级启动消息,以向计算节点及虚拟机通知本次升级的唯一标识。如此,升级伊始就为每个虚拟机的升级任务分配本次升级的唯一标识,升级启动后,本次升级的唯一标识通过消息中间件在各个模块之间流转,一旦升级发生异常,可以通过该标识快速准确的定位出当前升级流程进行到哪个模块、哪个进程,从而帮助运维人员快速定位和解决问题。
其中,本次升级的唯一标识包括但不限于采用虚拟机的唯一标识+时间戳进行识别。
S203、当监听到消息队列的升级请求消息,且虚拟机满足升级条件时,向消息队列发送升级通知消息。
具体的,用户登录虚拟机,虚拟机检测当前版本号与挂载的组件版本号是否一致,若版本号不匹配,虚拟机向计算节点主机发送携带本次升级的唯一标识的socket消息,主机接收socket消息后作为消息生产者向消息队列转发升级请求消息。WEB服务端作为消息消费者监听消息队列并接收到升级请求消息后,识别本次升级的唯一标识,并根据本次升级的唯一标识定位待升级的虚拟机,并判断该虚拟机是否满足升级条件,包括但不限于根据升级方式、流控检测和系统资源判断虚拟机是否满足升级条件。
升级方式:判断升级方式是否为用户参与升级方式,如果不是用户升级方式,则判定不满足升级条件;
流控检测:检测当前周期内计算节点上正在进行升级的虚拟组件数量是否超过预设的阈值,如果超过预设的阈值,则判定本周期内不满足升级条件;
系统资源:检测计算节点上的空闲系统资源是否满足升级要求,如果不满足升级要求,则判定不满足升级条件。
其中,流控检测为了控制计算节点上的输入输出,减少对正在使用的云桌面的影响。
若满足升级条件,则作为消息生产者向消息队列发送升级通知消息,由计算节点作为消息消费者接收该升级通知消息,计算节点根据本次升级的唯一标识解析出待升级的虚拟机,并转发socket消息至待升级的虚拟机,从而触发虚拟机开始升级。
本发明实施例中,由WEB服务端作为虚拟机组件升级的启动者,生成本次升级的唯一标识,并引入消息中间件对整个升级流程进行优化,消息发送者可以将消息发送到某个队列上而无需关注接收方的状态,消息接收者则订阅或者监听特定消息通道而无需对消息发送者作出同步响应,从而实现了异步通讯并简化了升级流程,提升了大规模应用场景下虚拟机组件升级的效率,并实现了升级全流程的可追踪。
实施例二
如图3所示,本发明实施例提供一种虚拟机组件升级方法,应用于WEB服务端,该方法包括:
S301、接收预设的虚拟机组件的升级方式和目标版本号。
S302、向消息队列注册消息监听器。
具体的,系统启动初始化后,WEB服务端作为消息消费者向消息队列注册消息监听器,指定监听队列以及消息到达时的处理动作。
S303、根据预设的目标组件版本号,请求管理节点将目标组件ISO挂载到虚拟机光驱上。
S304、向消息队列发送升级启动消息,其中,升级启动消息携带本次升级的唯一标识。
S305、当监听到消息队列的升级请求消息,且虚拟机满足升级条件,向消息队列发送升级通知消息。
S306、监听到消息队列的升级结果消息,则在WEB页面展示升级结果。
S307、请求管理节点将虚拟机光驱置空。
具体的,升级成功后,WEB服务端发送HTTP请求至管理节点将虚拟机光驱置空。
本发明实施例中,所述升级启动消息、所述升级请求消息、所述升级通知消息、所述升级确认消息和所述升级结果消息中均携带本次升级的唯一标识。
本发明实施例中,在上述实施例一的基础上,进一步通过WEB页面展示升级状态,并置空虚拟机光驱,为下一次升级清空虚拟机光驱。
实施例三
如图4所示,本发明实施例提供一种虚拟机组件升级方法,应用于计算节点,该方法包括:
S401、接收到升级启动消息,则向待升级的虚拟机转发升级启动消息。
具体的,计算节点从消息队列中接收到升级启动消息后,获取升级启动消息中携带的本次升级的唯一标识;根据本次升级的唯一标识定位到待升级的虚拟机,并向待升级的虚拟机转发升级启动消息以将本次升级的唯一标识通知到虚拟机。
S402、接收到升级请求消息,则向消息队列转发升级请求消息。
具体的,用户登录虚拟机后,虚拟机检测当前版本号与挂载的组件版本号是否一致,若版本号不匹配,虚拟机向计算节点主机发送携带本次升级的唯一标识的升级请求消息,计算节点接收到升级请求消息后,作为消息生产者向消息队列转发升级请求消息。
S403、接收到升级通知消息,则向虚拟机转发升级通知消息。
具体的,WEB服务端作为消息消费者监听消息队列并接收到升级请求消息后,识别并根据本次升级的唯一标识定位待升级的虚拟机。若满足升级条件,则WEB服务端作为消息生产者向消息队列发送升级通知消息。计算节点接收到该升级通知消息后,获取升级通知消息中携带的本次升级的唯一标识;根据本次升级的唯一标识定位到待升级的虚拟机;并向待升级的虚拟机转发升级通知消息。
S404、接收到升级确认消息,则向消息队列转发升级确认消息。
具体的,虚拟机接收到计算节点通过socket消息转发的升级通知消息后,向计算节点发送携带本次升级的唯一标识的升级确认消息,计算节点接收升级确认消息后,作为消息生产者将升级确认消息转发至消息队列。
S405、接收到升级结果消息,则向消息队列转发升级结果消息。
具体的,虚拟机采用挂载的目标组件ISO进行组件升级,升级完成将结果及本次升级的唯一标识以socket消息发至计算节点,计算节点作为消息生产者将升级结果消息转发消息队列。
本发明实施例中,通过计算节点作为消息生产者将虚拟机的消息转发至消息队列,并作为消息消费者接收WEB服务端的消息,解析并转到对应的虚拟机,实现了异步通讯并简化了升级流程,提高了系统并发处理虚拟机组件升级的能力和系统的健壮性,并实现了升级全流程的可追踪。
实施例四
如图5所示,本发明实施例提供一种虚拟机组件升级方法,应用于虚拟机,该方法包括:
S501、接收到升级启动消息,获取升级启动消息中携带的本次升级的唯一标识。
S502、检测到当前组件版本号与挂载的目标组件版本号不一致,则向计算节点发送升级请求消息。
具体的,用户登录虚拟机,虚拟机检测当前版本号与挂载的组件版本号是否一致,若版本号不匹配,虚拟机通过socket消息向计算节点发送携带本次升级的唯一标识的升级请求消息,右计算节点代理消息生产者向消息队列转发升级请求消息。
S503、接收到升级通知消息,则向用户确认是否升级,并向计算节点发送升级确认消息。
具体的,虚拟机接收到计算节点通过socket消息转发的升级通知消息后,弹出提示框让用户选择是否升级。比如:用户选择“升级”或“取消”。虚拟机向计算节点发送携带本次升级的唯一标识的升级确认消息,计算节点接收升级确认消息后,作为消息生产者将升级确认消息转发至消息队列。
S504、采用挂载的目标组件ISO进行组件升级,并向计算节点发送升级结果消息。
具体的,采用挂载的目标组件ISO进行组件升级,升级完成将结果及本次升级的唯一标识以socket消息发至计算节点,计算节点作为消息生产者将消息转发消息队列。
实施例五
如图6所示为本发明实施例提供一种虚拟机组件升级方法的交互流程图,该方法包括:
S601、WEB服务端设置目标版本号和升级方法。
S602、WEB服务端向管理节点发送挂载ISO请求。
S603、管理节点挂载成功后,向WEB服务端返回挂载ISO成功消息。
S604、WEB服务端向消息队列发送升级启动消息。
S605、计算节点接收到升级启动消息后,向虚拟机转发升级启动消息。
S606、虚拟机检测当前版本号与挂载的版本号不一致。
S607、虚拟机向计算节点发送升级请求消息。
S608、计算节点向消息队列转发升级请求消息。
S609、WEB服务端进行升级检测、流控检测。
S610、WEB服务端向消息队列发送升级通知消息。
S611、计算节点向虚拟机转发升级通知消息。
S612、虚拟机向用户确认是否升级。
S613、虚拟机向计算节点发送升级确认消息。
S614、计算节点向消息队列转发升级确认消息。
S615、虚拟机进行组件升级。
S616、虚拟机向计算节点发送升级结果消息。
S617、计算节点向消息队列转发升级结果消息
S618、WEB服务端监听到升级结果消息,在WEB页面显示升级结果。
S619、WEB服务端向管理节点发送置空光驱请求。
S620、管理节点置空虚拟机光驱,并向WEB服务端发送置空光驱成功消息。
其中,升级启动消息、升级请求消息、升级通知消息、升级确认消息、升级结果消息中均为携带本次升级的唯一标识的。本次升级的唯一标识通过消息中间件在各个模块之间流转,一旦升级发生异常,可以通过该标识快速准确的定位出当前升级流程进行到哪个模块、哪个进程,从而帮助运维人员快速定位和解决问题。
本发明实施例中,基于消息中间件的实现虚拟机组件的升级,消息中间件是一种在分布式应用中互相交换信息的一种技术,专注于数据的发送和接收,相比于同步通信的方式来说,具有以下几个明显的优势:
①低耦合,不受程序/模块/开发语言的限制;
②异步通信,消息发送者可以将消息发送到某个队列上而无需关注接收方的状态,消息接收者则订阅或者监听特定消息通道而无需对消息发送者作出同步响应;
③高缓冲能力,消息中间件可以看作一个巨大的消息容器,将不同系统间的大量消息保存在消息队列中交由后台慢慢处理;
④高可靠性,持久化的存储可以长时间的保存消息。
因此,云桌面应用场景下,结合消息中间件的诸多优点,在组件升级中引入消息中间件对整个升级流程进行优化,涉及到WEB服务端、管理节点、计算节点、虚拟机组件等多个模块消息中间件进行交互,能提升大规模应用场景下虚拟机组件升级的效率。此外,在消息队列的基础上,通过对每一个虚拟机的升级任务分配唯一标识,实现了升级全流程的可追踪。
实施例六
本发明实施例提供一种WEB服务端,该设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时,实现如上述实施例一或实施例二或实施例五所述的虚拟机组件升级方法的步骤
需要说明的是,本发明实施例的WEB服务端,与虚拟机组件升级方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在WEB服务端中均对应适用,这里不再赘述。
实施例七
本发明实施例提供一种计算节点,该计算节点包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时实现上述实施例三或实施例五所述虚拟机组件升级方法的步骤。
需要说明的是,本发明实施例的计算节点,与虚拟机组件升级方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在计算节点中均对应适用,这里不再赘述。
实施例八
本发明实施例提供一种虚拟机,该虚拟机包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时实现上述实施例四或实施例五所述虚拟机组件升级方法的步骤。
需要说明的是,本发明实施例的虚拟机,与虚拟机组件升级方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在虚拟机中均对应适用,这里不再赘述。
实施例九
本发明实施例一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一实施例所述虚拟机组件升级方法的步骤。
需要说明的是,上述计算机可读存储介质,与虚拟机组件升级方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在计算机可读存储介质均对应适用,这里不再赘述。
本发明实施例提供的虚拟机组件升级方法、设备和计算机可读存储介质,通过引入消息中间件对整个升级流程进行优化,消息发送者可以将消息发送到某个队列上而无需关注接收方的状态,消息接收者则订阅或者监听特定消息通道而无需对消息发送者作出同步响应,从而实现了异步通讯并简化了升级流程,提高了系统并发处理虚拟机组件升级的能力和系统的健壮性,提升了大规模应用场景下虚拟机组件升级的效率。并通过为每个虚拟机的组件升级任务分配一个本次升级的唯一标识,WEB服务端、计算节点、虚拟机之间的通信都携带该本次升级的唯一标识,实现了升级全流程的可追踪。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机可读存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
Claims (11)
1.一种虚拟机组件升级方法,应用于WEB服务端,其特征在于,该方法包括:
根据预设的虚拟机组件升级的目标版本号,请求管理节点将目标组件ISO挂载到所述虚拟机光驱上;
向消息队列发送升级启动消息,以使订阅所述消息队列的计算节点监听到所述升级启动消息,所述升级启动消息携带本次升级的唯一标识;
当监听到消息队列的升级请求消息,且虚拟机满足升级条件时,向消息队列发送升级通知消息,以使订阅所述消息队列的计算节点监听到所述升级请求消息,所述升级请求消息是所述虚拟机在确定当前版本号与挂载的组件版本号不匹配时发送的,所述升级通知消息是根据本次升级的唯一标识定位待升级的虚拟机,并判断该虚拟机满足升级条件时发送的;
其中,所述升级请求消息和所述升级通知消息中均携带所述本次升级的唯一标识,所述唯一标识用于追踪定位升级流程。
2.根据权利要求1所述的虚拟机组件升级方法,所述请求管理节点将所述目标组件ISO挂载到所述虚拟机光驱上之前,该方法还包括:
接收预设的虚拟机组件的升级方式和目标版本号;
向所述消息队列注册消息监听器,所述消息监听器指定监听队列以及消息到达时的处理动作。
3.根据权利要求1所述的虚拟机组件升级方法,其特征在于,所述向消息队列发送升级通知消息之后,该方法还包括:
监听到消息队列的升级结果消息后,则在WEB页面展示升级结果;
请求所述管理节点将所述虚拟机光驱置空;
其中,所述升级结果消息中携带所述本次升级的唯一标识。
4.根据权利要求1所述的虚拟机组件升级方法,其特征在于,所述虚拟机满足升级条件包括:升级方式、虚拟机所在的计算节点的流控检测和系统资源满足升级条件;
其中,所述流控检测包括:当前周期内计算节点上正在进行升级的虚拟组件数量是否超过预设的阈值,如果超过预设的阈值,则判定本周期内不满足升级条件。
5.根据权利要求1-4任意一项所述的虚拟机组件升级方法,所述本次升级的唯一标识的包括:所述虚拟机的本次升级的唯一标识+时间戳。
6.一种虚拟机组件升级方法,应用于计算节点,其特征在于,该方法包括:
接收到升级启动消息,则向待升级的虚拟机转发所述升级启动消息;
接收到升级请求消息,则向消息队列转发所述升级请求消息,所述升级请求消息是所述虚拟机在确定当前版本号与挂载的组件版本号不匹配时发送的,以使订阅所述消息队列的WEB服务端监听到所述升级请求消息;
接收到升级通知消息,则向待升级的虚拟机转发所述升级通知消息,所述升级通知消息是根据本次升级的唯一标识定位待升级的虚拟机,并判断该虚拟机满足升级条件时发送的;
接收到升级确认消息,则向消息队列转发所述升级确认消息;
接收到升级结果消息,则向消息队列转发所述升级结果消息,以使订阅所述消息队列的WEB服务端监听到所述升级结果消息;
其中,所述升级启动消息、所述升级请求消息、所述升级通知消息、所述升级确认消息和所述升级结果消息中均携带所述本次升级的唯一标识,所述唯一标识用于追踪定位升级流程。
7.根据权利要求6所述的虚拟机组件升级方法,其特征在于,
所述接收到升级启动消息,则向待升级的虚拟机转发所述升级启动消息,具体包括:
接收到升级启动消息,获取所述升级启动消息中携带的所述本次升级的唯一标识;根据所述本次升级的唯一标识定位到待升级的虚拟机,并向待升级的虚拟机转发所述升级启动消息;
所述接收到升级通知消息,则向待升级的虚拟机转发所述升级通知消息,具体包括:
接收到升级通知消息,获取所述升级通知消息中携带的所述本次升级的唯一标识;根据所述本次升级的唯一标识定位到待升级的虚拟机;并向待升级的虚拟机转发所述升级通知消息。
8.一种虚拟机组件升级方法,应用于虚拟机,其特征在于,该方法包括:
检测到当前组件版本号与挂载的目标组件版本号不一致,则向计算节点发送升级请求消息,以使所述计算节点作为消息生产者将所述升级请求消息转发至消息队列,进而使订阅所述消息队列的WEB服务端监听到所述升级请求消息,所述升级请求消息是所述虚拟机在确定当前版本号与挂载的组件版本号不匹配时发送的;
接收到升级通知消息,则向用户确认是否升级,并向计算节点发送升级确认消息,以使所述计算节点作为消息生产者将所述升级通知消息转发至消息队列,所述升级通知消息是根据本次升级的唯一标识定位待升级的虚拟机,并判断该虚拟机满足升级条件时发送的;
采用挂载的目标组件ISO进行组件升级,并向计算节点发送升级结果消息,以使所述计算节点作为消息生产者将所述升级结果消息转发至消息队列,进而使订阅所述消息队列的WEB服务端监听到所述升级结果消息;
其中,所述升级请求消息、所述升级通知消息、所述升级确认消息和升级结果消息均为携带本次升级的唯一标识的socket消息,所述唯一标识用于追踪定位升级流程。
9.根据权利要求8所述的虚拟机组件升级方法,其特征在于,所述向计算节点发送升级请求消息之前,该方法还包括:
接收到升级启动消息,获取所述升级启动消息中携带的所述本次升级的唯一标识。
10.一种虚拟机组件升级设备,其特征在于,该设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至5中任一项所述的虚拟机组件升级方法的步骤、或者实现如权利要求6至7中任一项所述的虚拟机组件升级方法的步骤、或者实现如权利要求8至9中任一项所述的虚拟机组件升级方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至5中任一项所述的虚拟机组件升级方法的步骤、或者实现如权利要求6至7中任一项所述的虚拟机组件升级方法的步骤、或者实现如权利要求8至9中任一项所述的虚拟机组件升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811027485.8A CN110874232B (zh) | 2018-09-04 | 2018-09-04 | 虚拟机组件升级方法、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811027485.8A CN110874232B (zh) | 2018-09-04 | 2018-09-04 | 虚拟机组件升级方法、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874232A CN110874232A (zh) | 2020-03-10 |
CN110874232B true CN110874232B (zh) | 2023-12-29 |
Family
ID=69716103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811027485.8A Active CN110874232B (zh) | 2018-09-04 | 2018-09-04 | 虚拟机组件升级方法、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110874232B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611006A (zh) * | 2020-04-09 | 2020-09-01 | 西安万像电子科技有限公司 | 版本切换方法及装置 |
CN111538522B (zh) * | 2020-04-29 | 2023-08-11 | 北京思特奇信息技术股份有限公司 | 一种基于zk的消息中间件在线升级方法及系统 |
CN111866436B (zh) * | 2020-06-19 | 2022-06-10 | 厦门亿联网络技术股份有限公司 | 一种视频会议系统的配件升级方法及装置 |
CN112256451A (zh) * | 2020-10-19 | 2021-01-22 | 北京达佳互联信息技术有限公司 | 定时业务消息生成方法、装置、电子设备及存储介质 |
CN113467814B (zh) * | 2021-05-31 | 2024-10-11 | 济南浪潮数据技术有限公司 | Rbd虚拟机的批量升级方法、系统、装置及可读存储介质 |
CN116339781A (zh) * | 2023-03-29 | 2023-06-27 | 安超云软件有限公司 | 虚拟机内部软件的升级方法和装置、电子设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636159A (zh) * | 2013-11-15 | 2015-05-20 | 华为技术有限公司 | 对虚拟机中的软件进行升级的方法和装置 |
CN105068864A (zh) * | 2015-07-24 | 2015-11-18 | 北京京东尚科信息技术有限公司 | 处理异步消息队列的方法及系统 |
CN105808363A (zh) * | 2016-03-11 | 2016-07-27 | 浪潮通用软件有限公司 | 一种基于Active MQ消息队列实现异步执行的方法 |
CN106155775A (zh) * | 2015-04-28 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 消息处理方法、设备及系统 |
CN106301948A (zh) * | 2016-08-31 | 2017-01-04 | 北京奇艺世纪科技有限公司 | 一种消息流转可视化及监控方法和系统 |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
CN106874062A (zh) * | 2015-12-11 | 2017-06-20 | 三亚中兴软件有限责任公司 | 一种虚拟机更新方法和装置 |
CN107968794A (zh) * | 2016-10-18 | 2018-04-27 | 中兴通讯股份有限公司 | 一种虚拟光驱挂载方法及系统、服务器、终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110214115A1 (en) * | 2010-02-26 | 2011-09-01 | Nokia Corporation | Method and appartus for providing a high level mobile virtual machine |
US8484653B2 (en) * | 2010-07-28 | 2013-07-09 | Red Hat Israel, Ltd. | Mechanism for delayed hardware upgrades in virtualization systems |
US9459856B2 (en) * | 2013-01-02 | 2016-10-04 | International Business Machines Corporation | Effective migration and upgrade of virtual machines in cloud environments |
-
2018
- 2018-09-04 CN CN201811027485.8A patent/CN110874232B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636159A (zh) * | 2013-11-15 | 2015-05-20 | 华为技术有限公司 | 对虚拟机中的软件进行升级的方法和装置 |
CN106155775A (zh) * | 2015-04-28 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 消息处理方法、设备及系统 |
CN105068864A (zh) * | 2015-07-24 | 2015-11-18 | 北京京东尚科信息技术有限公司 | 处理异步消息队列的方法及系统 |
CN106874062A (zh) * | 2015-12-11 | 2017-06-20 | 三亚中兴软件有限责任公司 | 一种虚拟机更新方法和装置 |
CN105808363A (zh) * | 2016-03-11 | 2016-07-27 | 浪潮通用软件有限公司 | 一种基于Active MQ消息队列实现异步执行的方法 |
CN106301948A (zh) * | 2016-08-31 | 2017-01-04 | 北京奇艺世纪科技有限公司 | 一种消息流转可视化及监控方法和系统 |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
CN107968794A (zh) * | 2016-10-18 | 2018-04-27 | 中兴通讯股份有限公司 | 一种虚拟光驱挂载方法及系统、服务器、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110874232A (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110874232B (zh) | 虚拟机组件升级方法、设备和计算机可读存储介质 | |
CN101095126B (zh) | 用于访问存在性信息的方法和装置 | |
CN111694674B (zh) | 消息分发处理方法、装置、设备及存储介质 | |
EP3489825A1 (en) | Method, apparatus and computer readable storage medium for processing service | |
EP4071609A1 (en) | Node management method, device and apparatus, storage medium, and system | |
CN107645386B (zh) | 一种获取数据资源的方法和装置 | |
CN103312593B (zh) | 一种消息分发系统及方法 | |
CN109194589B (zh) | 一种mdc实现方法及装置 | |
CN109039803A (zh) | 一种处理回调通知消息的方法、系统及计算机设备 | |
CN106101171A (zh) | 服务器连接方法及装置 | |
CN111669315B (zh) | 消息推送方法、装置、系统、电子设备及可读存储介质 | |
CN104639555A (zh) | 请求处理方法、系统和装置 | |
CN113064740A (zh) | 一种消息处理方法和装置 | |
CN110096381B (zh) | 远程过程调用的实现方法、装置、设备和介质 | |
CN113452778B (zh) | 会话保持方法、装置、设备、系统及存储介质 | |
CN100346603C (zh) | 用于更新群通信系统中的群成员视图的方法和装置 | |
CN114679349A (zh) | 一种数据通信方法及装置 | |
CN115277816A (zh) | 服务适配方法、设备、系统以及计算机可读介质 | |
CN114025014B (zh) | 一种资产探测方法、装置、电子设备及存储介质 | |
CN109309583B (zh) | 基于分布式系统的信息获取方法、装置、电子设备和介质 | |
KR20110065917A (ko) | 분산컴퓨팅 통신망에서 분산된 모듈 간의 통신을 지원하는 통신시스템 및 그 시스템을 이용한 통신방법 | |
CN115480934A (zh) | 一种分布式数据处理的方法、装置、设备及储存介质 | |
CN113141236A (zh) | 一种报文处理方法和装置 | |
CN114390108A (zh) | 一种处理用户服务请求的方法和系统 | |
CN113242292A (zh) | 报文传输方法、装置、设备、介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |