WO2017193964A1 - 一种组件升级方法、装置和系统 - Google Patents
一种组件升级方法、装置和系统 Download PDFInfo
- Publication number
- WO2017193964A1 WO2017193964A1 PCT/CN2017/083985 CN2017083985W WO2017193964A1 WO 2017193964 A1 WO2017193964 A1 WO 2017193964A1 CN 2017083985 W CN2017083985 W CN 2017083985W WO 2017193964 A1 WO2017193964 A1 WO 2017193964A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- component
- upgrade
- resource
- preset condition
- upgraded
- Prior art date
Links
Images
Classifications
-
- 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/445—Program loading or initiating
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
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
本公开提供一种组件升级方法、装置和系统,通过检测是否存在未升级组件,当存在时,获取系统当前的资源状态;判断资源状态是否满足预设的进行组件升级的预设条件,满足时,下发组件升级处理指令。即根据系统的资源状态有效的将组件升级的过程分为多个阶段来进行,使得组件升级过程中不会影响系统业务的运行,同时缩短了升级时间,保证了整个系统的稳定性。
Description
本申请涉及计算机领域,例如涉及一种组件升级方法、装置和系统。
随着技术的发展和用户的需求,当前许多系统的规模越来越大,系统的规模变大,意味着系统中的组件变多,当该系统进行升级时,需要完成大量的组件的升级。当前的组件升级处理方式是,在系统后台完成更新的同时需要完成所有组件后台推送的升级安装。由于组件升级时需要消耗一定数量的系统资源,所以组件的升级受限于系统资源,也就导致了在后台升级时无法在短时间内同时完成大批量组件的升级工作,另一方面当这些升级中断时,用户侧也不适合去发起这些升级处理,所以就需要有种策略能够在不影响系统正常运行时后台完成组件的升级工作。
该系统可以是云桌面系统,随着云桌面虚拟化技术的发展,现在云桌面系统的规模越来越大;在云桌面虚拟化技术中,虚拟机组件是一个比较重要的组成部分,其包含一些虚拟化驱动程序、虚拟机的桌面组件部分以及虚拟机代理部分。上述部件运行在桌面虚拟机当中,从而使桌面虚拟机能够正常工作。在云桌面系统中,云桌面动辄上千上万,当系统升级时,就需要面临云桌面系统中大批量的虚拟机组件升级的问题。
发明内容
本公开提供一种组件升级方法、装置和系统,解决组件同时大批量升级,容易造成系统资源不足、升级过程缓慢,使得系统出现业务中断的问题。
为解决上述技术问题,本公开提供一种组件升级方法,包括:
检测是否存在未升级组件,存在时,获取系统当前的资源状态;
判断资源状态是否满足预设的进行组件升级的预设条件,满足时,下发组
件升级处理指令。
在本公开的一种实施例中,预设条件包括第一预设条件,第一预设条件包括:系统当前的资源空余值大于等于系统允许进行组件升级的最小资源空余值;当存在未升级组件时,获取系统当前的资源空余值,判断资源空余值是否满足第一预设条件。
在本公开的一种实施例中,预设条件还包括第二预设条件,第二预设条件包括:系统当前进行升级处理的组件的数目小于等于系统允许进行升级处理的组件的最大数目;当资源空余值满足第一预设条件时,获取系统当前进行升级处理的组件的数目,判断数目是否满足第二预设条件。
在本公开的一种实施例中,资源空余值包括主机的系统资源空余值,存储库的资源空余值和网络资源空余值。
在本公开的一种实施例中,下发组件升级处理指令包括:根据组件的使用频率选择组件下发升级处理指令或根据系统当前的空余资源值最大允许进行组件升级的组件个数选择组件下发升级处理指令。
在本公开的一种实施例中,检测是否存在未升级组件包括:当系统中在线用户数小于等于系统允许进行检测是否存在未升级组件的最大用户数时,检测系统中是否存在未升级组件。
本公开还提供一种组件升级装置,包括:资源状态获取模块和组件升级处理模块,
资源状态获取模块被配置为检测是否存在未升级组件,存在时,获取系统当前的资源状态;
组件升级处理模块被配置为判断资源状态是否满足预设的进行组件升级的预设条件,满足时,下发组件升级处理指令。
在本公开的一种实施例中,资源状态获取模块包括第一资源状态获取子模块,组件升级处理模块包括第一组件升级处理子模块,预设条件包括第一预设条件,第一预设条件包括:系统当前的资源空余值大于等于系统允许进行组件升级的最小资源空余值;第一资源状态获取子模块被配置为当存在未升级组件时,获取系统当前的资源空余值,第一组件升级处理子模块被配置为判断资源
空余值是否满足第一预设条件。
在本公开的一种实施例中,资源状态获取模块包括第二资源状态获取子模块,组件升级处理模块包括第二组件升级处理子模块,预设条件还包括第二预设条件,第二预设条件包括:系统当前进行升级处理的组件的数目小于等于系统允许进行升级处理的组件的最大数目;第二资源状态获取子模块被配置为当资源空余值满足第一预设条件时,获取系统当前进行升级处理的组件的数目;第二组件升级处理子模块被配置为判断数目是否满足第二预设条件。
在本公开的一种实施例中,资源空余值包括主机的系统资源空余值,存储库的资源空余值和网络资源空余值。
在本公开的一种实施例中,组件升级处理模块还包括组件选择模块,组件选择模块被配置为根据组件的使用频率选择组件下发升级处理指令或根据系统当前的空余资源值最大允许进行组件升级的组件个数选择组件下发升级处理指令。
在本公开的一种实施例中,资源状态获取模块还包括组件检测子模块,组件检测子模块被配置为当系统中在线用户数小于等于系统允许进行检测是否存在未升级组件的最大用户数时,检测系统中是否存在未升级组件。
本公开还提供一种组件升级系统,包括:上述组件升级装置。
本公开实施例还提供了一种非暂态计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述方法。
本公开实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行上述的方法。
本公开的有益效果是:
本公开提供一种组件升级方法、装置和系统,通过检测是否存在未升级组件,当存在时,获取系统当前的资源状态;判断资源状态是否满足预设的进行
组件升级的预设条件,满足时,下发组件升级处理指令,进行升级处理。即根据系统的资源状态有效的将组件升级的过程分为多个阶段来进行,使得组件升级过程中不会因为组件大批量升级消耗过多资源而影响系统业务的正常运行,在保证系统资源有保证且系统业务不中断的情况下完成组件升级处理,同时缩短了升级时间,保证了整个系统的稳定性。
附图概述
图1为本公开实施例一提供的组件升级方法流程图;
图2为本公开实施例二提供的组件升级装置示意图;
图3是图2中的资源状态获取模块示意图;
图4是图2中的组件升级处理模块示意图;
图5为本公开实施例二提供的组件升级系统示意图;
图6为相关的云桌面系统中虚拟机组件升级方法流程图;
图7为本公开实施例三提供的云桌面系统虚拟机组件升级方法流程图;以及
图8是本公开实施例提供的电子设备的结构示意图。
下面通过实施方式结合附图对本公开进行详细说明。
实施例一:
为解决相关技术中组件大批量升级容易造成系统资源不足、升级过程缓慢,使得系统出现业务中断的问题,本实施例提供一种组件升级方法,请参见图1,其包括:
步骤S101,检测是否存在未升级组件,存在时,获取系统当前的资源状态;
在整个系统的升级处理过程中,若还存在未升级组件需要进行升级处理,则可以去获取系统当前的资源状态,判断该资源状态是否满足进行升级处理的
条件。
检测是否存在未升级组件可以包括:当系统中在线用户数小于等于系统允许进行检测是否存在未升级组件的最大用户数时,检测系统中是否存在未升级组件。详细的,在工作时间,会有大量用户访问、使用系统,系统的业务相对是比较繁忙的,该系统可以是云桌面系统;即在工作时间,系统的资源使用率较高,若此时开始组件升级,可能会影响到系统的正常业务,且组件升级过程会很慢;所以可以是在下班时间,诸如云桌面系统等系统中用户数较少时,即系统较为空闲时,去检测系统中是否还有组件未升级。可以设置一阈值,该阈值为系统允许进行检测是否存在未升级组件的最大用户数,比如云桌面系统中共有1000个用户,该最大用户数为200,若当前系统中的在线用户数超过200个,说明系统相对会比较繁忙,则不去检测是否存在未升级组件;若当前系统中的用户数没有超过200个,则去检测体系中是否有未升级组件需要升级。另外,也可以设置一比例,如在线用户数最多占总用户数的60%,当在线用户的比例不超过60%时,去检测体系中是否有未升级组件需要升级。需要理解的是,在系统较为空闲时,检测是否存在未升级组件,可以是在系统较为空闲时,才去下发指令获取组件的版本信息,判断该获取到的版本信息是否为组件需要升级到的版本;也可以是组件定时上报其自身的版本信息,当系统空闲时,直接读取最新上报的版本信息,判断该版本信息是否为组件需要升级到的版本。若该版本信息还不是组件需要升级到的版本,则说明该组件是未升级组件,需要进行组件升级处理。
当存在未升级组件需要升级时,获取系统当前的资源状态,可以是下发资源状态获取消息去获取系统当前的资源状态,当该系统是云桌面系统时,获取云桌面系统的当前的资源状态是管理服务器向VMC(VPX Manager Controller,多协议交换管理控制器)下发资源状态获取消息,让VMC去获取系统的资源状态,VMC获取到系统的资源状态后,再上报给管理服务器。
该资源状态可以包括系统的资源空余值和系统当前正在进行组件升级的组件的数目。该资源空余值包括主机的系统资源空余值,存储库的资源空余值和网络资源空余值。详细的,其中主机的系统资源空余值可以包括主机的CPU的剩余使用率,内存的使用情况;存储库的资源空余值包括存储库的读写的繁忙程度和IOPS(Input/Output Operations Per Second,每秒进行读写操作的次
数);网络资源空余值包括网络的带宽的使用情况。该系统可以是云桌面系统。
步骤S102,判断资源状态是否满足预设的进行组件升级的预设条件,满足时,下发组件升级处理指令。
当有组件需要升级时,可以获取系统当前的资源状态,根据该资源状态判断是否可以进行升级处理,可以设置允许进行升级处理的预设条件,当资源状态满足该预设条件时,进行升级处理。
该预设条件可以包括第一预设条件,第一预设条件包括:系统当前的资源空余值大于等于系统允许进行组件升级的最小资源空余值;当存在未升级组件时,获取系统当前的资源空余值,判断资源空余值是否满足第一预设条件。
可以设置第一预设条件,该第一预设条件是用来衡量系统的当前的资源空余值是否能够进行组件升级处理,详细的,该最小资源空余值可以是指主机的CPU、内存的剩余使用率为30%,同时主机和存储库的存储读写资源剩余为40%,IOPS不超过5000等预定条件,当满足上述条件时,进行升级处理。
预设条件还可以包括第二预设条件,第二预设条件包括:系统当前进行升级处理的组件的数目小于等于系统允许进行升级处理的组件的最大数目;当资源空余值满足第一预设条件时,获取系统当前进行升级处理的组件的数目,判断数目是否满足第二预设条件。
根据经验,可以同时在系统中下发过多组件升级指令,如在系统中的同一存储库或是同一主机同时下发过多组件升级指令后,在实际后续的过程中也会造成系统资源的拥塞,所以基于前述第一预设条件的限制,会针对系统中不同主机、不同存储库进行当前正在组件升级个数登记,新下发的组件升级指令同时也需要满足不超过同一个主机或是同一个存储库下允许进行升级的组件的最大升级个数的限制。当系统当前进行升级处理的组件的个数不超过系统允许进行升级处理的最大数目时,进行升级处理。
下发组件升级处理指令可以包括:根据组件的使用频率选择组件下发升级处理指令或根据系统当前的空余资源值最大允许进行组件升级的组件个数选择组件下发升级处理指令。
当系统资源空余值满足进行组件升级的条件时,可以从需要进行组件升级
的组件中选择部分进行升级处理,其选择可以根据组件的使用频率去选择,选择使用频率高的组件优先进行升级处理;组件升级会占用一定的系统资源,为了尽快完成尽可能多的组件的升级,也可以根据当前系统中的资源空余值最多允许进行组件升级的数目来升级,尽可能使多一些组件完成升级处理,对于一些在升级时,占用系统资源比较多的组件,留在最后再进行升级处理。
本实施例提供的组件升级方法,通过当检测到有组件需要升级时,获取系统当前的资源状态;判断资源状态是否满足预设的进行组件升级的预设条件,满足时,下发组件升级处理指令。即根据系统的资源状态有效的将组件升级处理分步进行,而不影响系统业务的正常运行,同时缩短了升级时间,保证了整个系统的稳定性。
实施例二:
为解决相关技术中组件大批量升级容易造成系统资源不足、升级过程缓慢,使得系统出现业务中断的问题,本实施例提供一种组件升级装置2,请参见图2,其可以包括:资源状态获取模块21和组件升级处理模块22,资源状态获取模块21被配置为检测是否存在未升级组件,存在时,获取系统当前的资源状态;组件升级处理模块22被配置为判断资源状态是否满足预设的进行组件升级的预设条件,满足时,下发组件升级处理指令。
在整个系统的升级处理过程中,若还存在未升级组件需要进行升级处理,资源状态获取模块21则可以去获取系统当前的资源状态,判断该资源状态是否满足进行升级处理的条件。
请参见图3,资源状态获取模块21可以包括组件检测子模块213,该组件检测子模块被配置为检测是否存在未升级组件,可以包括:当系统中在线用户数小于等于系统允许进行检测是否存在未升级组件的最大用户数时,检测系统中是否存在未升级组件。详细的,在工作时间,会有大量用户访问、使用系统,系统的业务相对是比较繁忙的,该系统可以是云桌面系统;即在工作时间,系统的资源使用率较高,若此时开始组件升级,可能会影响到系统的正常业务,且组件升级过程会很慢;所以可以是在下班时间,诸如云桌面系统等系统中用户数较少时,即系统较为空闲时,去检测系统中是否还有组件未升级。可以设置一阈值,该阈值为系统允许进行检测是否存在未升级组件的最大用户数,比
如云桌面系统中共有1000个用户,该最大用户数为200,若当前系统中的在线用户数超过200个,说明系统相对会比较繁忙,则不去检测是否存在未升级组件;若当前系统中的用户数没有超过200个,则去检测体系中是否有未升级组件需要升级。另外,也可以设置一比例,如在线用户数最多占总用户数的60%,当在线用户的比例不超过60%时,去检测体系中是否有未升级组件需要升级。需要理解的是,在系统较为空闲时,检测是否存在未升级组件,可以是在系统较为空闲时,才去下发指令获取组件的版本信息,判断该获取到的版本信息是否为组件需要升级到的版本;也可以是组件定时上报其自身的版本信息,当系统空闲时,直接读取最新上报的版本信息,判断该版本信息是否为组件需要升级到的版本。若该版本信息还不是组件需要升级到的版本,则说明该组件是未升级组件,需要进行组件升级处理。
当存在未升级组件需要升级时,获取系统当前的资源状态,可以是下发资源状态获取消息去获取系统当前的资源状态,当该系统是云桌面系统时,获取云桌面系统的当前的资源状态是管理服务器向VCM下发资源状态获取消息去获取系统的资源状态,VCM获取到系统的资源状态后,再上报给管理服务器。
该资源状态可以包括系统的资源空余值和系统当前正在进行组件升级的组件的数目。该资源空余值包括主机的系统资源空余值,存储库的资源空余值和网络资源空余值。详细的,其中主机的系统资源空余值可以包括主机的CPU的剩余使用率,内存的使用情况;存储库的资源空余值包括存储库的读写的繁忙程度和IOPS;网络资源空余值包括网络的带宽的使用情况。该系统可以是云桌面系统。
当有组件需要升级时,组件升级处理模块22可以获取系统当前的资源状态,根据该资源状态判断是否可以进行升级处理,可以设置允许进行升级处理的预设条件,当资源状态满足该预设条件时,进行升级处理。
请参见图3,资源状态获取模块21可以包括第一资源状态获取子模块211,请参见图4,组件升级处理模块22包括第一组件升级处理子模块221,该预设条件包括第一预设条件,第一预设条件包括:系统当前的资源空余值大于等于系统允许进行组件升级的最小资源空余值;第一资源状态获取子模块211被配置为当存在未升级组件时,获取系统当前的资源空余值,第一组件升级处理子
模块221被配置为判断资源空余值是否满足第一预设条件。
可以设置第一预设条件,通过第一资源状态获取子模块211获取系统的当前的资源空余值,第一组件升级处理子模块221根据获取到的资源空余值判断其是满足进行组件升级处理的第一预设条件,该第一预设条件是用来衡量系统的当前的资源空余值是否能够进行组件升级处理,详细的,该最小资源空余值可以是指主机的CPU、内存的剩余使用率为30%,同时主机和存储库的存储读写资源剩余为40%,IOPS不超过5000等预定条件,当满足上述条件时,进行升级处理。
请参见图3,资源状态获取模块21可以包括第二资源状态获取子模块212,请参见图4,组件升级处理模块22包括第二组件升级处理子模块222,预设条件还包括第二预设条件,第二预设条件包括:系统当前进行升级处理的组件的数目小于等于系统允许进行升级处理的组件的最大数目;第二资源状态获取子模块212被配置为当资源空余值满足第一预设条件时,获取系统当前进行升级处理的组件的数目,第二组件升级处理子模块222被配置为判断数目是否满足第二预设条件。
根据经验,可以同时在系统中下发过多组件升级指令,如在系统中的同一存储库或是同一主机同时下发过多组件升级指令后,在实际后续的过程中也会造成系统资源的拥塞,所以基于前述第一预设条件的限制,会针对系统中不同主机、不同存储库进行当前正在组件升级个数登记,新下发的组件升级指令同时也需要满足同一个主机或是同一个存储库允许进行升级处理的组件的个数不超过最大升级个数的限制。当系统当前进行升级处理的组件的个数不超过系统允许进行升级处理的最大数目时,进行升级处理。
请参见图4,本实施例提供的组件升级处理模块22还可以包括组件选择模块223,该组件选择模块223被配置为根据组件的使用频率选择组件下发升级处理指令或根据系统当前的空余资源值最大允许进行组件升级的组件个数选择组件下发升级处理指令。
当系统资源空余值满足进行组件升级的条件时,可以从需要进行组件升级的组件中选择部分进行升级处理,其选择可以根据组件的使用频率去选择,选择使用频率高的组件优先进行升级处理;组件升级会占用一定的系统资源,为
了尽快完成尽可能多的组件的升级,也可以根据当前系统中的资源空余值最多允许进行组件升级的数目来升级,尽可能使多一些组件完成升级处理,对于一些在升级时,占用系统资源比较多的组件,留在最后再进行升级处理。
本实施例提供的组件升级装置,当检测到有组件需要升级时,获取系统当前的资源状态;判断资源状态是否满足预设的进行组件升级的预设条件,满足时,下发组件升级处理指令。根据系统的资源状态有效的将组件升级处理分步进行,而不影响业务的运行,同时缩短了升级时间,保证了整个系统的稳定性。
本实施例还提供一种组件升级系统,请参见图5,包括上述的组件升级装置,该组件升级装置可以应用到云桌面系统中,实现云桌面系统升级过程中的组件的升级处理,比如上述组件升级装置可以设置在管理服务器端,当管理服务器检测到系统中存在未升级组件时,让VMC去获取系统的资源状态,管理服务器将VMC获取到的系统的资源状态和预设的进行组件升级的预设条件做比较,若当前的资源状态满足预设条件,则说明系统资源充足足以进行部分组件升级,此时管理服务器下发组件升级指令,开始升级处理。采用本实施例中的组件升级的系统,能够根据系统的资源状态对组件的升级处理进行控制,使得组件升级能够分多次进行,而不会影响系统业务的正常运行,同时缩短了升级时间,保证了整个系统的稳定性。
实施例三:
相关技术中,云桌面系统中的虚拟机组件升级是在云桌面后台完成升级的同时,就需要完成所有云桌面下虚拟机组件的后台推送升级处理,请参见图6,其升级处理过程包括:
步骤S201,上传虚拟机组件iso(Isolation,虚拟镜像文件)到NFS(Network File System,网络文件系统)管理存储目录下;
步骤S202,管理界面上设置导入iso并设置组件版本号;
步骤S203,管理界面发起组件升级处理。
对于步骤S203,其可以包括:管理界面向VMC发起升级请求,给虚拟机光驱挂载组件iso升级包;完成后,向虚拟机发起组件升级指令,vmboostermonitor进程收到有关升级指令的请求消息,找到挂在了组件iso升级包的光驱执行
vmtool-setup.exe,执行完成后,重启该vmboostermonitor进程;然后检测该升级是否成功,并生成相应的响应消息发送给管理界面,管理界面在收到虚拟机的升级成功或失败响应后,为保证用户不会因为获取到处理过程中产生的痕迹而触发误操作,使系统开始一些不必要的处理,管理界面向VMC发起修改请求,修改虚拟机光驱为空。
上述相关技术中进行升级处理时,Web发起组件升级处理,是管理服务器发起批量组件升级,即管理服务器选中所有虚拟机,由管理员下发批量桌面虚拟机组件升级的通知,开始升级处理。采用这种方式,因为网络带宽或是存储限制的问题,例如存储IO限制,容易导致存储磁盘繁忙,升级过程缓慢,且容易造成服务器业务宕机或是其他异常出现。且随着云桌面的发展,云桌面的数量越来越多,意味着要进行升级处理的桌面组件的数量也越来越多,这种背景下在升级当晚完成大量桌面虚拟机组件升级就会非常困难,也没有必要。所以我们提出一种组件升级方法,保证系统正常运行的情况下根据系统的资源状态分段完成虚拟机组件的升级工作。
为了提高虚拟机组件升级的速度和保证系统的稳定性,本实施例提供一种云桌面系统虚拟机组件升级方法,请参见图7,可以包括:
步骤S301,设置进行组件升级的预设条件;
该预设条件可以首先包括进行检测是否存在未升级组件的时间,可以设置约束条件来决定何时检测系统中是否有组件未升级,如当系统中在线用户数小于等于系统允许进行检测是否存在未升级组件的最小用户数时,检测系统中是否存在未升级组件。详细的,在工作时间,会有大量用户访问、使用云桌面系统,云桌面系统的业务相对是比较繁忙的;即在工作时间,云桌面系统的资源使用率较高,若此时开始组件升级,可能会影响到云桌面系统的正常业务,且组件升级过程会很慢;所以可以是在下班时间,云桌面系统中用户数较少时,即云桌面系统较为空闲时,去检测云桌面系统中是否还有组件未升级;可以设置一阈值,该阈值为系统允许进行检测是否存在未升级组件的最小用户数,比如云桌面系统中共有1000个用户,该直线用户数为200,若当前系统中的在线用户数超过200个时,则不去检测是否存在未升级组件;若当前系统中的用户数没有超过200个时,去检测体系中是否有未升级组件需要升级。另外,也可
以设置一比例,如在线用户数占总用户数的60%,当在线用户的比例不超过60%时,去检测体系中是否有未升级组件需要升级。需要理解的是,在系统较为空闲时,检测是否存在未升级组件,可以是在系统较为空闲时,才去下发指令获取组件的版本信息,判断该获取到的版本信息是否为组件需要升级到的版本;也可以是组件定时上报其自身的版本信息,当系统空闲时,直接读取最新上报的版本信息,判断该版本信息是否为组件需要升级到的版本。若该版本信息还不是组件需要升级到的版本,则说明该组件是未升级组件,需要进行组件升级处理。
预设条件可以包括第一预设条件和第二预设条件,第一预设条件包括:系统当前的资源空余值大于等于系统允许进行组件升级的最大资源空余值。第二预设条件包括:系统当前进行升级处理的组件的数目小于等于系统允许进行升级处理的组件的最大数目。当系统的资源状态满足该第一预设条件和第二预设条件时,下发组件升级处理指令。
资源空余值可以包括主机的系统资源空余值,存储库的资源空余值和网络资源空余值。其中主机的系统资源空余值可以包括主机的CPU的剩余使用率,内存的使用情况;存储库的资源空余值包括存储库的读写的繁忙程度和IOPS;网络资源空余值包括网络的带宽的使用情况。例如,我们可以设置第一预设条件是在主机的CPU、内存使用不超过70%,同时主机和存储库的存储读写繁忙程度不超过60%,IOPS不超过5000等预定条件,即在主机的CPU、内存的剩余资源剩余大于30%,同时主机和存储库的存储读写资源剩余大于40%,IOPS次数不超过5000等预定条件时,下发升级处理指令,当不满足这些条件或是当前系统中各参数超过该预设值时,系统将会对组件升级进行限制,不再进行组件升级指令下发,待系统资源符合条件后再进行。
另外,根据经验,同时在同一存储库或是同一主机同时下发过多组件升级指令后,在实际后续的过程中也会造成系统资源的拥塞,所以除了对上面描述资源条件限制外,管理服务器会针对不同主机、不同存储库进行当前正在组件升级个数登记,新下发的组件升级指令同时也需要满足不超过同一个主机或是同一个存储库允许进行升级处理的组件的最大升级个数的限制。在前述第一预设条件和第二预设条件的限制下发组件升级处理指令,保证了系统在不影响其
正常业务的同时,完成对组件的升级处理。
步骤S302,是否进行未升级组件的检测处理,若进行,跳转到步骤S303;若不进行,则结束;
可以根据系统当前的在线用户数来判断是否进行检测,当系统中在线用户较少,系统较为空闲时,进行检测系统中是否存在未升级组件;若此时系统中在线用户数比较多,比如90%的用户都在线,则不开启该检测处理,待系统较为空闲时,再去开启。需要理解的是,可以通过定时地或实时的获取系统中的在线用户数等参数来判断系统是否空闲。
步骤S303,获取组件的版本信息,跳转到步骤S304;
当需要较为空闲时,检测系统中是否存在未升级组件,可以是去获取组件的版本信息。
步骤S304,判断是否有组件需要升级,若有,跳转到步骤S305;若没有,则结束;
获取组件的版本信息后,可以判断该版本信息是否为组件需要升级到的版本,当不是时,则说明该组件需要进行升级处理,此时则进行后续的升级处理,若不存在未升级组件,则说明组件已经完全升级完了,则结束该处理过程。
步骤S305,获取系统的资源状态,跳转到步骤S306;
当有组件需要升级时,可以是管理界面向VMC发起资源查询请求,去获取系统的资源状态。详细的,当设置好预设条件后,管理服务器读取该预设条件更新本地设置,然后向VMC发起资源状态信息收集请求,实时或定时的获取资源状态信息,VMC收到请求后将该请求转发至各个主机或存储库设备,各个主机通过系统脚本调用查询当前系统资源状态信息、存储的繁忙程度,实时地或定期上报给VMC,VMC再将此信息转发给管理服务器,管理服务器收到资源状态信息后与预先设定的预设条件进行比较,如果资源状态在比较后尚有空闲并且其虚拟机所在主机、存储库设备并未达到最大组件升级个数限制,而且当前还有虚拟机组件需要安排升级,则对虚拟机下达升级组件升级指令进行升级,直至系统资源状态不满足某个预设条件时停止处理。
步骤S306,判断是否满足第一预设条件和第二预设条件,若满足,跳转到
步骤S307;若不满足,则结束;
获取到系统的资源状态后,可以判断该资源状态是否满足预设的第一预设条件和第二预设条件,当满足时,说明此时系统有足够的空间来进行部分组件的升级处理,根据需要向需要升级的组件发送升级处理指令,使其进行升级处理。
步骤S307,下发组件升级处理;
当系统有空余资源可以进行组件升级时,可以选择需要升级的组件下发组件升级处理指令,详细的,下发组件升级处理指令包括:根据组件的使用频率选择组件下发升级处理指令或根据系统当前的空余资源值最大允许进行组件升级的组件个数选择组件下发升级处理指令。即当系统资源空余值满足进行组件升级的条件时,需要从需要进行组件升级的组件中选择部分进行升级处理,其选择可以根据组件的使用频率去选择,选择使用频率高的组件优先进行升级处理;组件升级会占用一定的系统资源,为了尽快完成尽可能多的组件的升级,也可以根据当前系统中的资源空余值能最多允许进行组件升级的数目来升级,尽可能使多一些组件完成升级处理,对于一些在升级时,占用系统资源比较多的组件,留在最后再进行升级处理。
步骤S308,进行组件升级处理。
下发组件升级处理指令可以是管理服务器向虚拟机发送组件升级处理指令,当虚拟机中的vmboostermonitor进程收到请求消息,找到挂在了组件iso升级包的光驱执行vmtool-setup.exe,执行完成后,重启该vmboostermonitor进程;然后检测该升级是否成功,并生成相应的响应消息发送给管理界面,管理界面在收到虚拟机的升级成功或失败响应后,为保证用户不会因为获取到处理过程中产生的痕迹而触发误操作,使系统开始一些不必要的处理,管理界面向VMC发起修改请求,修改虚拟机光驱为空。
需要理解的是,本实施例中的获取是否有组件升级与获取系统的资源状态可以是根据需要分别实时地去获取,也可以是在系统空闲时,VMC就将组件的版本信息和系统的资源情况定时上报给管理服务器。
本公开实施例还提供了一种非暂态计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述任一实施例中的方法。
本公开实施例还提供了一种电子设备的结构示意图。参见图8,该电子设备包括:
至少一个处理器(processor)80,图8中以一个处理器80为例;和存储器(memory)81,还可以包括通信接口(Communications Interface)82和总线83。其中,处理器80、通信接口82、存储器81可以通过总线83完成相互间的通信。通信接口82可以用于信息传输。处理器80可以调用存储器81中的逻辑指令,以执行上述实施例的方法。
此外,上述的存储器81中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器81作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器80通过运行存储在存储器81中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的组件升级方法。
存储器81可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器81可以包括高速随机存取存储器,还可以包括非易失性存储器。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
本实施例提供的云桌面系统的组件升级方法,通过在系统空闲时,检测是否有组件需要进行升级,当有组件需要进行升级时,获取系统的资源状态,判断该资源状态是否满足系统进行组件升级的预设条件,当满足时,说明系统有足够资源空闲去进行组件升级,下发组件升级指令,进行后续的升级处理。即将升级当晚未能完成的虚拟机组件升级工作安排到后续进行,将原先的系统部分升级和桌面组件升级工作能够分开进行,使得虚拟机组件升级分多次进行,在有效的完成所必须的组件升级的同时,不会因为大批量升级使系统繁忙、消耗过多资源及持续升级耗时而影响系统业务的正常运行和用户的使用,在保证系统资源有保证且系统业务不中断的情况下完成组件升级处理,同时缩短了升级时间,保证了整个系统的稳定性。
显然,本领域的技术人员应该明白,上述本公开的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本公开不限制于任何特定的硬件和组件结合。
以上内容是结合实施方式对本公开所作的详细说明,不能认定本公开的实施只局限于这些说明。对于本公开所属技术领域的普通技术人员来说,在不脱离本公开实施例的范围的前提下,还可以做出若干简单推演或替换,都应当视为属于本公开的保护范围。
本公开提供的组件升级方法、装置和系统,使得组件升级过程中不会影响系统业务的运行,同时缩短了升级时间,保证了整个系统的稳定性。
Claims (14)
- 一种组件升级方法,包括:检测是否存在未升级组件,存在时,获取系统当前的资源状态;判断所述资源状态是否满足预设的进行组件升级的预设条件,满足时,下发组件升级处理指令。
- 如权利要求1所述的方法,其中,所述预设条件包括第一预设条件,所述第一预设条件包括:系统当前的资源空余值大于等于系统允许进行组件升级的最小资源空余值;当存在未升级组件时,获取系统当前的所述资源空余值,判断所述资源空余值是否满足第一预设条件。
- 如权利要求2所述的方法,其中,所述预设条件还包括第二预设条件,所述第二预设条件包括:系统当前进行升级处理的组件的数目小于等于系统允许进行升级处理的组件的最大数目;当所述资源空余值满足所述第一预设条件时,获取系统当前进行升级处理的组件的所述数目,判断所述数目是否满足所述第二预设条件。
- 如权利要求2或3所述的方法,其中,所述资源空余值包括主机的系统资源空余值,存储库的资源空余值和网络资源空余值。
- 如权利要求1-3任一项所述的方法,其中,下发组件升级处理指令包括:根据组件的使用频率选择所述组件下发所述升级处理指令或根据系统当前的所述空余资源值最大允许进行组件升级的组件个数选择所述组件下发所述升级处理指令。
- 如权利要求1-3任一项所述的方法,其中,所述检测是否存在未升级组件包括:当系统中在线用户数小于等于系统允许进行检测是否存在未升级组件 的最大用户数时,检测系统中是否存在未升级组件。
- 一种组件升级装置,包括:资源状态获取模块和组件升级处理模块,所述资源状态获取模块被配置为检测是否存在未升级组件,存在时,获取系统当前的资源状态;所述组件升级处理模块被配置为判断所述资源状态是否满足预设的进行组件升级的预设条件,满足时,下发组件升级处理指令。
- 如权利要求7所述的装置,其中,所述资源状态获取模块包括第一资源状态获取子模块,所述组件升级处理模块包括第一组件升级处理子模块,所述预设条件包括第一预设条件,所述第一预设条件包括:系统当前的资源空余值大于等于系统允许进行组件升级的最小资源空余值;所述第一资源状态获取子模块被配置为当存在未升级组件时,获取系统当前的所述资源空余值,所述第一组件升级处理子模块被配置为判断所述资源空余值是否满足第一预设条件。
- 如权利要求8所述的装置,其中,所述资源状态获取模块包括第二资源状态获取子模块,所述组件升级处理模块包括第二组件升级处理子模块,所述预设条件还包括第二预设条件,所述第二预设条件包括:系统当前进行升级处理的组件的数目小于等于系统允许进行升级处理的组件的最大数目;所述第二资源状态获取子模块被配置为当所述资源空余值满足所述第一预设条件时,获取系统当前进行升级处理的组件的所述数目;所述第二组件升级处理子模块被配置为判断所述数目是否满足所述第二预设条件。
- 如权利要求8或9所述的装置,其中,所述资源空余值包括主机的系统资源空余值,存储库的资源空余值和网络资源空余值。
- 如权利要求7-9任一项所述的装置,其中,所述组件升级处理模块还包 括组件选择模块,所述组件选择模块被配置为根据组件的使用频率选择所述组件下发所述升级处理指令或根据系统当前的所述空余资源值最大允许进行组件升级的组件个数选择所述组件下发所述升级处理指令。
- 如权利要求7-9任一项所述的装置,其中,所述资源状态获取模块还包括组件检测子模块,所述组件检测子模块被配置为当系统中在线用户数小于等于系统允许进行检测是否存在未升级组件的最大用户数时,检测系统中是否存在未升级组件。
- 一种组件升级系统,包括:权利要求7-12任一项所述的组件升级装置。
- 一种非暂态计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行权利要求1-6中任一项的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610309348.8A CN107368324A (zh) | 2016-05-11 | 2016-05-11 | 一种组件升级方法、装置和系统 |
CN201610309348.8 | 2016-05-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017193964A1 true WO2017193964A1 (zh) | 2017-11-16 |
Family
ID=60267522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/083985 WO2017193964A1 (zh) | 2016-05-11 | 2017-05-11 | 一种组件升级方法、装置和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107368324A (zh) |
WO (1) | WO2017193964A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729157A (zh) * | 2018-12-18 | 2019-05-07 | 维拓智能科技(深圳)有限公司 | 自助终端及其远程监管和升级方法 |
CN110784344A (zh) * | 2019-10-17 | 2020-02-11 | 京信通信系统(中国)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN111459748A (zh) * | 2020-03-17 | 2020-07-28 | 中国建设银行股份有限公司 | 基于命令操控的运维控制方法、系统、装置及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112152825B (zh) * | 2019-06-27 | 2023-09-12 | 广东美的制冷设备有限公司 | 家电设备的多级模组升级方法、装置和电子设备 |
CN116775084B (zh) * | 2023-08-23 | 2023-11-24 | 荣耀终端有限公司 | 系统升级的方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094229A (zh) * | 2007-07-24 | 2007-12-26 | 深圳市融合视讯科技有限公司 | 一种网络应用程序的增量升级系统及升级方法 |
CN102436390A (zh) * | 2012-01-09 | 2012-05-02 | 华为数字技术有限公司 | 多核处理器软件升级方法及设备 |
CN104636159A (zh) * | 2013-11-15 | 2015-05-20 | 华为技术有限公司 | 对虚拟机中的软件进行升级的方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047133B2 (en) * | 2012-03-02 | 2015-06-02 | Vmware, Inc. | Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment |
CN104717636B (zh) * | 2013-12-13 | 2019-03-05 | 成都鼎桥通信技术有限公司 | 软件升级方法、终端设备和空中下载服务器 |
CN103955381B (zh) * | 2014-04-04 | 2017-07-07 | 京信通信系统(中国)有限公司 | 管理服务器对终端设备进行批量软件升级方法与系统 |
-
2016
- 2016-05-11 CN CN201610309348.8A patent/CN107368324A/zh active Pending
-
2017
- 2017-05-11 WO PCT/CN2017/083985 patent/WO2017193964A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094229A (zh) * | 2007-07-24 | 2007-12-26 | 深圳市融合视讯科技有限公司 | 一种网络应用程序的增量升级系统及升级方法 |
CN102436390A (zh) * | 2012-01-09 | 2012-05-02 | 华为数字技术有限公司 | 多核处理器软件升级方法及设备 |
CN104636159A (zh) * | 2013-11-15 | 2015-05-20 | 华为技术有限公司 | 对虚拟机中的软件进行升级的方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729157A (zh) * | 2018-12-18 | 2019-05-07 | 维拓智能科技(深圳)有限公司 | 自助终端及其远程监管和升级方法 |
CN109729157B (zh) * | 2018-12-18 | 2023-11-14 | 维拓智能科技(深圳)有限公司 | 自助终端及其远程监管和升级方法 |
CN110784344A (zh) * | 2019-10-17 | 2020-02-11 | 京信通信系统(中国)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110784344B (zh) * | 2019-10-17 | 2022-05-03 | 京信网络系统股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN111459748A (zh) * | 2020-03-17 | 2020-07-28 | 中国建设银行股份有限公司 | 基于命令操控的运维控制方法、系统、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107368324A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017193964A1 (zh) | 一种组件升级方法、装置和系统 | |
US10768960B2 (en) | Method for affinity binding of interrupt of virtual network interface card, and computer device | |
US9477632B2 (en) | Access proxy for accessing peripheral component interconnect express endpoint device, PCIe exchanger and computer system | |
US10817386B2 (en) | Virtual machine recovery method and virtual machine management device | |
CN111782360A (zh) | 分布式任务调度方法及装置 | |
CN104461744A (zh) | 一种资源分配方法及装置 | |
US8730490B2 (en) | Printer driver, information processing apparatus, and computer program product | |
CN111124509B (zh) | 一种服务器启动方法与装置 | |
KR102168994B1 (ko) | 클라우드 컴퓨팅 환경에서 클라우드 호스트를 삭제하는 방법, 장치, 서버 및 저장 매체 | |
US8826264B1 (en) | Non-disruptive upgrade of applications | |
CN116149559A (zh) | 队列处理方法、装置、服务器、电子设备和存储介质 | |
CN111045789B (zh) | 一种虚拟机开机方法、装置及电子设备和存储介质 | |
US20180121350A1 (en) | Working set adjustment in a managed environment | |
US20200371882A1 (en) | Method, Apparatus, Device and Medium for Starting Virtual Machine | |
CN110209548B (zh) | 服务控制方法、系统、电子设备及计算机可读存储介质 | |
CN115904650A (zh) | Linux系统下的定时任务监管方法及装置 | |
US9552324B2 (en) | Dynamic data collection communication between adapter functions | |
US11593121B1 (en) | Remotely disabling execution of firmware components | |
JP2017037539A (ja) | サーバ制御プログラム、サーバ制御方法およびサーバ制御装置 | |
EP3326062B1 (en) | Mitigation of the impact of intermittent unavailability of remote storage on virtual machines | |
US20240086220A1 (en) | Delaying interrupts for virtual machines | |
CN114301927B (zh) | 一种分布式系统中主节点选取方法、装置及介质 | |
CN110134453B (zh) | 服务器配置重载方法及服务器 | |
CN108614732B (zh) | 龙芯平台动态前景下的操作系统硬件设备快速映射方法 | |
CN114143574A (zh) | 一种清理存储空间的方法、存储介质及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17795582 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17795582 Country of ref document: EP Kind code of ref document: A1 |