虚拟机镜像离线升级方法

文档序号:8361222阅读:1164来源:国知局
虚拟机镜像离线升级方法
【技术领域】
[0001]本发明涉及离线升级方法,更具体地,涉及虚拟机镜像离线升级方法(本文中所使用的“离线升级”的含义是:在不启动虚拟机的情况下对虚拟机镜像进行升级)。
【背景技术】
[0002]目前,随着计算机和网络应用的日益广泛以及不同领域的业务种类的日益丰富,云计算环境变得越来越普遍和重要。通常,云计算环境中存在大量的离线的虚拟机镜像(或虚拟机模板),因此,对所述离线的虚拟机镜像(或虚拟机模板)进行升级(即打补丁)是非常关键的。
[0003]在现有的技术方案中,通常采用如下两种方式进行针对离线的虚拟机镜像的升级:(I)当用户生成虚拟机之后对其进行在线方式的升级;(2 )将升级脚本注入到虚拟机镜像中,随后在基于虚拟机镜像生成虚拟机时,所生成的虚拟机会自动地执行所述升级脚本以进行在线方式的升级。
[0004]然而,现有的技术方案存在如下问题:升级操作不能被确保执行,并且升级所花费的时间较长,由此导致升级效率较低。
[0005]因此,存在如下需求:提供具有更高的升级效率的虚拟机镜像离线升级方法。

【发明内容】

[0006]为了解决上述现有技术方案所存在的问题,本发明提出了具有更高的升级效率的虚拟机镜像离线升级方法。
[0007]本发明的目的是通过以下技术方案实现的:
一种虚拟机镜像离线升级方法,所述虚拟机镜像离线升级方法包括下列步骤:
(Al)镜像安全服务器收集虚拟机镜像,以及提取并存储所收集的虚拟机镜像的信息;(A2)所述镜像安全服务器基于所收集的虚拟机镜像的信息以离线的方式执行虚拟机镜像升级操作。
[0008]在上面所公开的方案中,优选地,所述步骤(Al)进一步包括:
(BI)周期性地从虚拟机镜像存储服务器下载虚拟机镜像;
(B2)针对所下载的每个虚拟机镜像执行下列步骤:(I)探测所述虚拟机镜像以获取所述虚拟机镜像的基础信息,并将所述基础信息存储到元数据数据库中;(2)基于所述基础信息,以与所述虚拟机镜像相关联的软件包管理方式处理所述虚拟机镜像;(3)提取所述虚拟机镜像的软件包信息,并将所述软件包信息存储在软件包信息数据库中。
[0009]在上面所公开的方案中,优选地,所述步骤(A2)包括:在所述步骤(B2)之后,针对已下载的每个虚拟机镜像执行下列步骤:(I)从所述软件包信息数据库中读取出与其相关联的软件包信息;(2)将读取出的软件包信息与升级信息数据库中的信息相比较以查找出需要升级的软件文件,其中,所述升级信息数据库中存储有已发布的补丁文件;(3)如果离线补丁数据库中不存在与需要升级的软件相对应的打过补丁的软件文件,则执行脚本分析重写操作并将所涉及的打过补丁的软件文件存储到所述离线补丁数据库中,否则,在所述离线补丁数据库中查找到与需要升级的软件文件相对应的打过补丁的软件文件,并随后用所述与需要升级的软件文件相对应的打过补丁的软件文件替换所述虚拟机镜像中相应的软件文件;(4)更新所述软件包信息数据库,以确保所述软件包信息数据库中的关于所述虚拟机镜像的信息与所述虚拟机镜像的当前的实际信息相一致;(5)将经过升级操作的所述虚拟机镜像传送回所述虚拟机镜像存储服务器。
[0010]在上面所公开的方案中,优选地,所述脚本分析重写操作包括下列步骤:(1)分析相关的补丁文件中的补丁脚本以检查所述补丁脚本是否能够在离线环境下被安全地执行,并且如果所述补丁脚本能够在离线环境下被安全地执行,则进入步骤(3),否则进入步骤(2) ; (2)判断所述补丁脚本是否能够被转化为能够在离线环境下被安全执行的脚本,并且如果所述补丁脚本能够被转化为能够在离线环境下被安全执行的脚本,则通过脚本重写的方式将所述补丁脚本转化成能够在离线环境下被安全执行的补丁脚本并随后进入步骤
(3),否则,将所述补丁脚本设置为在所述虚拟机镜像下一次被启动时被自动地执行;(3)执行所述补丁脚本。
[0011]在上面所公开的方案中,优选地,所述补丁脚本中的每个脚本命令是下列类型中的一个:能够正确地在离线环境下执行、不能够正确地在离线环境下执行以及在离线环境下没有必要执行。
[0012]在上面所公开的方案中,优选地,所述脚本重写包括基于所述补丁脚本中的各个脚本命令的类型执行下列步骤:(1)去除或替换不需要的命令;(2)去除不需要的语句控制结构。
[0013]本发明所公开的虚拟机镜像离线升级方法具有以下优点:(1)能够快速地检索出虚拟机镜像中需要升级的软件文件;(2)能够以离线的方式对虚拟机镜像进行升级(即打补丁);(2)能够显著地提高虚拟机镜像升级操作的效率。
【附图说明】
[0014]结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:
图1是根据本发明的实施例的虚拟机镜像离线升级方法的流程图。
【具体实施方式】
[0015]图1是根据本发明的实施例的虚拟机镜像离线升级方法的流程图。如图1所示,本发明所公开的虚拟机镜像离线升级方法包括下列步骤:(Al)镜像安全服务器收集虚拟机镜像,以及提取并存储所收集的虚拟机镜像的信息;(A2)所述镜像安全服务器基于所收集的虚拟机镜像的信息以离线的方式执行虚拟机镜像升级操作。
[0016]优选地,在本发明所公开的虚拟机镜像离线升级方法中,所述步骤(Al)进一步包括:(BI)周期性地从虚拟机镜像存储服务器(例如OpenStack平台上的Glance组件服务器)下载虚拟机镜像;(B2)针对所下载的每个虚拟机镜像执行下列步骤:(I)探测所述虚拟机镜像以获取所述虚拟机镜像的基础信息(例如操作系统类型、操作系统版本、采用的软件包管理方式等等),并将所述基础信息存储到元数据数据库中;(2)基于所述基础信息,以与所述虚拟机镜像相关联的软件包管理方式(诸如yum和dpkg包管理方式)处理所述虚拟机镜像;(3)提取所述虚拟机镜像的软件包信息(例如软件版本信息),并将所述软件包信息存储在软件包信息数据库中。
[0017]示例性地,在本发明所公开的虚拟机镜像离线升级方法中,所述虚拟机镜像是开源虚拟化格式(OVF)文件。
[0018]优选地,在本发明所公开的虚拟机镜像离线升级方法中,所述步骤(A2)包括:在所述步骤(B2)之后,针对已下载的每个虚拟机镜像(即已经在所述软件包信息数据库中存储有与其相关联的软件包信息的虚拟机镜像)执行下列步骤:(I)从所述软件包信息数据库中读取出与其相关联的软件包信息;(2)将读取出的软件包信息与升级信息数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1