对私有云系统中的多个镜像进行更新的方法和系统与流程

文档序号:12596391阅读:297来源:国知局
对私有云系统中的多个镜像进行更新的方法和系统与流程

本发明涉及私有云系统,尤其涉及对私有云系统中的多个镜像进行更新的方法和系统。



背景技术:

当前,云计算已经成为一种广泛使用的IT技术。其中,根据提供服务层面的不同,云计算可大致划分为IaaS(Infrastructure-as-a-Service)云,PaaS(Platform-as-a-Service)云与SaaS(Software-as-a-Service)云等。在IaaS云中,此类技术主要着眼于为用户提供基于定制的可用基础设施服务,使用户能够自由便利地管理虚拟资源的生命周期。私有云(Private Clouds)系统是为一个客户单独使用而构建的云计算体系,以保证对数据、安全性和服务质量的有效控制。该客户拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。私有云系统可部署在企业数据中心的防火墙内,也可以将它们部署在安全的主机托管场所。IaaS层面的私有云,主要提供用户权限管理,镜像/快照管理,虚拟机管理,虚拟网络管理,虚拟存储管理等功能。镜像(image)是一种文件存储形式,在云计算中使用的镜像包含有启动一台新虚拟机所必须的内容;快照(snapshot)是对虚拟机当前文件系统状态进行快照备份操作后的生成物,在一般的完全快照机制下,生成的快照除了可以作为本虚拟机的一个有效备份副本外,也可以用来启动另一台新虚拟机。因此,在大部分私有云系统的软件/框架中,创建虚拟机时,镜像与快照的效用基本等同。

主流私有云系统的软件/框架中,镜像/快照管理功能主要包括以下子功能:

‐镜像/快照制作:使用户能够上传镜像/对虚拟机拍摄快照,允许用户自定一般性的镜像/快照信息(如名称,大小,使用权限等简单信息)并保存至数据库。

‐镜像/快照删除。

‐镜像/快照查看。

‐镜像/快照调用。

可以看出,私有云系统中的镜像/快照管理功能主要着眼于基础功能实现,在实际生产 环境中,往往不能满足用户对镜像/快照管理的实际需求。随着镜像数量增长,人工判断更新不现实且不合理,判断决定依赖经验,出错概率高(误判则造成了无端的资源占用),没有有效回收机制,完全依赖用户自行判断并手工删除。

用户使用镜像/快照创建一台新的虚拟机时,需要从数据库现有的镜像/快照中调取。随着该数据库规模的增长,镜像/快照的数量、种类、版本复杂度将持续增加,其可用性面临极大考验。镜像/快照所包含的文件系统,主要内容包括操作系统及其相关配置与自定义安装的软件及其相关配置,随着时间推移,这些内容需要进行升级/补丁操作以保证所提供服务的可靠。在当前私有云体系中,处于系统提供给用户功能的局限性,用户进行此类操作只能依赖频繁的人工判断与繁琐的手工操作。人工判断是指:逐个检查镜像/快照是否需要更新,根据实际环境的不同,镜像/快照数量可能有数十至数万不等。手工操作是指:手工使用待更新镜像/快照启动虚拟机,输入升级/补丁命令,命令执行完毕后,对该虚拟机制作新快照,保存至数据库,以取代较旧的镜像/快照。



技术实现要素:

本发明的目的在于提供一种对私有云系统中的多个镜像进行更新的方法和系统,该方法和系统可以解决私有云系统中的镜像的版本有效性问题,通过提供一种基于用户自定参数的自主机制,使私有云系统能够周期性监控并判断升级/补丁时机,在需要时进行相关操作升级/补丁操作,从而保持镜像中的操作系统(OS)的可用性,对操作系统进行版本升级,打补丁操作,以防止操作系统因安全漏洞、组件缺失或版本过低而导致的安全问题。同时保持镜像中所含软件的可用性,对软件进行版本升级,打补丁操作,以防止软件因安全漏洞、版本过低而导致的安全问题和兼容性问题。

本发明提供一种对私有云系统中的多个镜像进行更新的方法,所述私有云系统分别与第一服务器和第三服务器进行通信,第二服务器分别与所述第一服务器和所述第三服务器进行通信,所述方法包括如下步骤:

a)所述第一服务器以第一预定时间周期向所述私有云系统发出镜像信息查询请求,以获得所述多个镜像中的每个镜像的当前信息,并存储在所述第一服务器中;

b)所述第二服务器以第二预定时间周期,向所述第三服务器发出包版本信息查询请求,以从所述第三服务器获得所述每个镜像的包版本信息,并将所述包版本信息存储在所述第二服务器中;

c)以第三预定时间周期,第一服务器或第二服务器将所述当前信息与所述包版本信息进行比较,如果所述包版本信息的等级比所述当前信息的等级高,则将所述包版本信息存储在所述第一服务器中,作为更新包信息;

d)所述第一服务器按照所述更新包信息,向所述私有云系统发出指令,使得所述私有云系统向所述第三服务器获取分别与所述更新包信息一一对应的更新包,并使用所述更新包对相应的镜像进行更新,并将更新后的所述相应的镜像作为新镜像存储在所述私有云系统中。

所述当前信息包含操作系统的名称和所述操作系统的当前版本号和/或搭载在所述操作系统上的软件名称和所述软件的当前版本号。

所述包版本信息包含所述操作系统的可更新版本号和/或所述软件的可更新版本号。

所述包版本信息的等级比所述当前信息的等级高是指,所述操作系统的可更新版本号大于所述操作系统的当前版本号和/或所述软件的可更新版本号大于所述软件的当前版本号,其中,如果所述操作系统的可更新版本号大于所述操作系统的当前版本号和/或所述软件的可更新版本号大于所述软件的当前版本号,则将所述操作系统的可更新版本号和/或所述软件的可更新版本号存储在所述第一服务器中,作为所述更新包信息。

通过这种比较,可以仅仅取出版本号大的更新包信息,以便对可更新的镜像进行更新,从而提高更新效率。

对所述更新包按照预定的优先级进行排序。如此,在更新包的数量多的时候,可以根据用户的需要,依次进行更新。

所述新镜像的当前信息包含镜像新存入标记,当所述第一服务器检测到所述镜像新存入标记时,所述第一服务器执行所述步骤c)。

如此,不用对所有的镜像进行比较和更新,而只对新镜像行比较和更新,可以提高更新的效率。

当所述第二服务器检测到所述包版本信息包含包版本新存入标记时,所述第二服务器执行所述步骤c)。

如此,可以在出现新的更新包或补丁包的时候对镜像进行比对和更新,可以进一步提高更新的效率。

进一步包括e),当所述第一服务器判定所述多个镜像的存储量超过预定的阈值时,向所述私有云系统发出指令,使得所述私有云系统对所述多个镜像中的一部分镜像进行删除 或者压缩,直到所述多个镜像的存储量小于所述阈值。

如此,可以确保私有云系统具有足够的存储空间来存储以后更新的新镜像。

本发明还提供一种对私有云系统中的多个镜像进行更新的系统,包含私有云系统、第一服务器、第二服务器和第三服务器,所述私有云系统、第一服务器、第二服务器和第三服务器执行如上所述的方法。

本发明的方法和系统可以自动对有升级的更新包/补丁包的镜像进行版本升级,而不用人工判断是否需要更新镜像,大大提高了更新效率并降低出错概率。在需要时进行相关的升级/补丁操作,从而保持镜像中的操作系统(OS)的可用性,防止操作系统因安全漏洞、组件缺失或版本过低而导致的安全问题。同时保持镜像中搭载在操作系统上的软件的可用性,以防止软件因安全漏洞、版本过低而导致的安全问题和兼容性问题。

附图说明

图1是根据本发明的实施例的对私有云系统中的多个镜像进行更新的方法的流程图;

图2是根据本发明的实施例的对私有云系统中的多个镜像进行更新的系统的方框图。

具体实施方式

下面结合附图,对本发明进行详细说明。

图1是根据本发明的实施例的对私有云系统中的多个镜像进行更新的方法的流程图,图2是根据本发明的实施例的对私有云系统中的多个镜像进行更新的系统的方框图。私有云系统21例如是OpenStack私有云系统,分别与第一服务器和第三服务器进行通信,第二服务器分别与第一服务器和第三服务器进行通信。本实施例中,第一服务器例如是镜像信息服务器22,是Linux操作系统,部署有MySQL数据库,第二服务器例如是包版本信息服务器23,是Limux操作系统,部署有MySOL数据库,第三服务器例如是更新包源服务器24,搭建有对应于Limux操作系统的软件源。

在步骤S11中,镜像信息服务器22以第一预定时间周期向私有云系统21发出镜像信息查询请求,以获得多个镜像中的每个镜像的当前信息,并存储在镜像信息服务器22中。当前信息包含操作系统的名称和操作系统的当前版本号和/或搭载在操作系统上的软件名称和软件的当前版本号。本例中,多个镜像例如有3个镜像,分别是镜像1、镜像2和镜像3。镜像1的当前信息包含操作系统Ubuntu 14.04 64位Server版,该操作系统的当前版 本号14.04.201503_07,在该操作系统上搭载的软件是MySOL,该软件的当前版本号5.1.32。镜像2的当前信息包含操作系统Ubuntu 12.04 64位Desktop,该操作系统的当前版本号12.04.201407_12,无搭载软件。镜像3的当前信息包含操作系统CentOS 7.1 64位,该操作系统的当前版本号7.1.201503_01,在该操作系统上的搭载软件是Tomcat,该软件的当前版本号7.0.2。

在步骤S12中,包版本信息服务器23以第二预定时间周期,向更新包源服务器24发出包版本信息查询请求,以从更新包源服务器24获得每个镜像的包版本信息,并将包版本信息存储在包版本信息服务器23中。

更新包源服务器24与现有技术中的一样,存储有镜像的更新包或补丁包,并且用户可以根据需要,将所需的更新包或补丁包存入更新包源服务器24。镜像的更新包或补丁包中含有镜像的包版本信息。

每个镜像的包版本信息包含操作系统的可更新版本号和/或其上搭载软件的可更新版本号。本例中,镜像1的包版本信息1包含操作系统Ubuntu 14.04 64位Server版的可更新版本号14.04.201503-07、以及搭载的软件MySOL的可更新版本号5.1.32;镜像2的包版本信息2包含操作系统Ubuntu 12.04 64位Desktop的可更新版本号12.04.201409_17;镜像3的包版本信息3包含操作系统CentOS 7.1 64位的可更新版本号7.1.201503_01、以及搭载的软件Tomcat的可更新版本号7.0.6。这里,操作系统的可更新版本号与上述的操作系统的当前版本号可能是相同的或者是不同的,搭载软件的可更新版本号与上述的搭载软件的当前版本号可能是相同的或者是不同的。

接着,在步骤S13中,以第三预定时间周期,将每个镜像的当前信息与包版本信息进行比较,如果包版本信息的等级比当前信息的等级高,则将包版本信息存储在镜像信息服务器22中,作为更新包信息。这里,包版本信息的等级比当前信息的等级高是指,操作系统的可更新版本号大于操作系统的当前版本号和/或其上搭载的软件的可更新版本号大于软件的当前版本号。

本例中,对于镜像1,操作系统Ubuntu 14.04 64位Server版的可更新版本号14.04.201503-07与该操作系统的当前版本号14.04.201503-07相同,软件MySOL的可更新版本号5.1.32与该软件的当前版本号5.1.32相同。对于镜像2,操作系统Ubuntu 12.04 64位Desktop的可更新版本号12.04.201409_17大于该操作系统的当前版本号12.04.201407_12。对于镜像3,操作系统CentOS 7.1 64位的可更新版本号7.1.201503_01与该操作系统的当 前版本号7.1.201503_01相同,软件Tomcat的可更新版本号7.0.6大于该软件的当前版本号7.0.2。

如此,如果操作系统的可更新版本号大于操作系统的当前版本号和/或软件的可更新版本号大于软件的当前版本号,则将操作系统的可更新版本号和/或软件的可更新版本号存储在镜像信息服务器22中,作为更新包信息。

本例中,如上所述,将镜像2的包版本信息2中的操作系统Ubuntu 12.04 64位Desktop的可更新版本号12.04.201409_17、以及镜像3的包版本信息3中的软件Tomcat的可更新版本号7.0.6存储在镜像信息服务器22中,分别作为更新包信息2和更新包信息3。这里,当前版本号和可更新版本号都是指序列号。

此外,操作系统的可更新版本号可以有多个,如果多个可更新版本号都大于该操作系统的当前版本号,则将多个可更新版本号存储在镜像信息服务器22中,作为更新包信息。软件的可更新版本号可以有多个,如果多个可更新版本号都大于该软件的当前版本号,则将多个可更新版本号存储在镜像信息服务器22中,作为更新包信息。也就是说,更新包信息可以包含多个更新包的信息,并且在后续更新步骤中,多个更新包可以全部被使用进行更新。

然后,在步骤S14中,镜像信息服务器22按照更新包信息2和更新包信息3,向私有云系统21分别发出对应于更新包信息2和更新包信息3的指令,使得私有云系统21向更新包源服务器24获取分别与更新包信息3和更新包信息3一一对应的更新包2和更新包3,并使用更新包2和更新包3对相应的镜像(即,镜像2和镜像3)进行更新,并将更新后的镜像2和镜像3分别作为新镜像4和镜像5存储在私有云系统21中。

本例中,更新包2例如是操作系统Ubuntu 12.04 64位Desktop的可更新版本号12.04.201409_17的更新包,更新包3例如是软件Tomcat的可更新版本号7.0.6的更新包。私有云系统21使用该更新包2对镜像2中的操作系统Ubuntu 12.04 64位Desktop进行更新,使用该更新包3对镜像3中的软件Tomcat进行更新,并将更新后的镜像2作为新镜像4、将更新后的镜像3作为新镜像5存储在私有云系统21中。新镜像4的当前信息包含操作系统Ubuntu 12.04 64位Desktop和该操作系统的更新后的版本号12.04.201409_17,新镜像5的当前信息包含操作系统CentOS 7.1 64位及其版本号7.1.201503_01以及搭载的软件Tomcat及其更新后的版本号7.0.6。

这里,私有云系统21利用从更新包源服务器获得的多个更新包/多个补丁包对镜像进 行更新的具体过程与现有的相同,因此这里不再详细描述。

此外,上述2个更新包可以按照预定的优先级进行排序。例如,上述更新包2的优先级为高,上述更新包3的优先级为低,那么就先对镜像2进行更新,再对镜像3进行更新。这里的优先级的高低是用户预先设定的。由于实际的镜像数量可能非常大,所以优先级的设定可以按照用户希望的顺序对需要更新的镜像进行先后更新,以满足用户的需求。

以上提及的第一预定时间周期、第二预定时间周期以及第三预定时间周期是用户预先设定的,可以相同或不同,例如第一预定时间周期是1天、第二预定时间周期是2天以及第三预定时间周期是3天,或者第一预定时间周期是2小时、第二预定时间周期是2小时以及第三预定时间周期是3小时,或者第一预定时间周期、第二预定时间周期以及第三预定时间周期都是1星期等等。

通过上述比较和更新,可以自动对有升级版本的镜像进行更新,而无需进行人工判断和操作,可以提高更新的效率,降低出错率。

进一步,新镜像4和新镜像5的当前信息还分别包含镜像新存入标记,镜像信息服务器22从私有云系统21获得新镜像4和新镜像5的当前信息,当镜像信息服务器21检测到新镜像4和新镜像5中的镜像新存入标记时,镜像信息服务器21执行上述步骤S13。

如此,不用对所有的镜像进行比较和更新,而只对新镜像行比较和更新,可以进一步提高更新的效率。

当用户将新的/升级的更新包或补丁包存入更新包源服务器24中时,新的/升级的更新包或补丁包的包版本信息就会包含新存入标记。包版本信息服务器23从更新包源服务器24获得包含新存入标记的包版本信息,并检测到该新存入标记时,包版本信息服务器23执行上述步骤S13。

如此,可以在出现新的更新包或补丁包的时候对镜像进行比对和更新,可以进一步提高更新的效率。

此外,在步骤S14之后,当镜像信息服务器22判定多个镜像的存储量超过预定的阈值时,向私有云系统21发出指令,使得私有云系统21对多个镜像中的一部分镜像进行删除或者压缩,直到多个镜像的存储量小于阈值。

在进行更新之前,私有云系统21中例如只存储有镜像1、镜像2和镜像3,这3个镜像的当前信息的存储量例如是2GB。私有云系统21的存储量的预定阈值例如被设定为2.5GB。

在如上所述进行步骤S14之后,获得了新镜像4和新镜像5,新镜像4例如是0.5GB且新镜像5例如是0.5GB。那么,私有云系统21存储有镜像1、镜像2、镜像3、新镜像4和新镜像5,那么存储量为3GB。此时,镜像信息服务器22判定5个镜像的存储量超过阈值2.5GB,并向私有云系统21发出指令,使得私有云系统21对5个镜像中的一部分镜像进行删除或者压缩,直到5个镜像的存储量小于阈值。如此,可以确保私有云系统21具有足够的存储空间来存储以后更新的新镜像。

这里,对一部分镜像进行删除或者压缩的具体方式与现有技术的相同,因此不再具体描述。

此外,本发明还提供一种对私有云系统中的多个镜像进行更新的系统,本例中,如图2所示,该系统包含私有云系统21、第一服务器(镜像信息服务器)22、第二服务器(包版本信息服务器)23和第三服务器(更新包源服务器)24,私有云系统21、镜像信息服务器22、包版本信息服务器23和更新包源服务器24执行如上所述的方法。

通过本发明的对私有云系统中的多个镜像进行更新的方法和系统,可以解决私有云系统中的镜像的版本有效性问题,通过提供一种基于用户自定参数的自主机制,使私有云系统能够周期性地监控并判断升级/补丁时机,在需要时进行相关的升级/补丁操作,从而保持镜像中的操作系统(OS)的可用性,对操作系统进行版本升级,打补丁操作,以防止操作系统因安全漏洞、组件缺失或版本过低而导致的安全问题。同时保持镜像中搭载在操作系统上的软件的可用性,对软件进行版本升级,打补丁操作,以防止软件因安全漏洞、版本过低而导致的安全问题和兼容性问题。

此外,本发明的方法和系统可以自动对有升级的更新包/补丁包的镜像进行版本升级,而不用人工判断是否需要更新镜像,大大提高了更新效率并降低出错概率。

虽然本发明的特定实施例已被描述,但这些实施例只通过实例的方式进行表述,并不意欲限制本发明的范围。实际上,本文描述的创新方法可以通过各种其他形式实施;此外,也可以进行对本文描述的方法和系统的各种省略、替代和改变而不背离本发明的精神。附后的权利要求及其等同内容的目的是涵盖落入本发明的范围和精神内的这样的各种形式或修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1