对虚拟机中的软件进行升级的方法和装置的制造方法_3

文档序号:8318973阅读:来源:国知局
拟机之间的升级通道的方式,本实施例不作具体的限定,包括但不限于获取升级通道rpm (RedHat Package Manager,软件管理工具)包,进而根据升级通道rpm包安装过程指引对升级通道进行安装。其中,升级通道被安装到服务器上安装目录 /opt/patch/programfiles/domutools/ 下。
[0104]需要说明的是,虽然服务器和每个虚拟机之间都可会传送数据及消息,服务器与每个虚拟机之间数据及消息的传送需要借助升级通道,但由于升级通道安装在服务器上,因此,服务器和每个虚拟机进行数据及消息的传送都可通过安装在服务器上的一个升级通道进行传送。
[0105]进一步地,将升级通道安装到服务器上后,可通过执行升级脚本install, sh重启升级服务开始升级。具体过程如下:
[0106]首先,升级脚本将/opt/patch/programfiles/domutools目录下的iso文件形式的软件对应的升级组件拷贝到升级目录/opt/uvp/upgrade/domutools/下;
[0107]其次,判断升级通道是否安装成功,若安装目录下,升级通道文件夹存在,则判断升级通道安装成功;
[0108]再次,若升级通道安装成功,则将pvdriver-upgrade拷贝至/usr/bin下,并重启升级服务开始升级。
[0109]需要说明的是,并不是在每次对虚拟机中的软件进行升级时都执行步骤301和302,上述步骤301和302可以在首次对虚拟机中的软件进行时执行,之后再对虚拟机中的软件进行升级时,可直接使用上述步骤302中建立的升级通道,且如果不存在新的升级组件,无需更新升级组件时,可直接使用上述步骤中安装的待升级软件对应的升级组件。当然,如果上述安装的待升级软件对应的升级组件及升级通道有更新时,可以再次执行上述步骤301及302,本实施例不对执行步骤301及302的时间及次数进行限定。
[0110]303:确定在线的虚拟机,并判断在线的虚拟机中是否存在满足升级要求的虚拟机。
[0111]针对该步骤,由于服务器用户空间的XenstoreD服务主模块负责管理Xenstore的数据(即tdb中的数据),因此,当上述步骤301中将待升级软件对应的升级组件放置到tdb数据库中后,服务器用户空间的XenstoreD服务主模块在获知tdb数据库中有待升级软件对应的升级组件,将确定其上的虚拟机的状态,进而根据虚拟机的状态判断是否执行后续操作。其中,虚拟机所处的状态有在线、暂停和关机等,本实施不对虚拟机所处的状态进行限定。关于确定虚拟机状态的方式,本实施例不作具体的限定,由于tdb用于存储在线的虚拟机的状态信息,因此,包括但不限于通过事件通道从tdb数据库中存储的虚拟机配置信息中获取在线的虚拟机的状态信息,进而根据获取的虚拟机的状态信息确定虚拟机的状态。若可以从tdb中获取到虚拟机的状态信息,则说明该虚拟机所处的状态为在线状态;若无法从tdb中获取到虚拟机的状态信息,则说明该虚拟机所处的状态为暂停或关机。
[0112]进一步地,在确定在线的虚拟机后,XenstoreD将通过与共享页面间的事件通道将这一消息发送给与每个在线的虚拟机对应的共享页面,每个在线的虚拟机对应的共享页面在接收到XenstoreD发送的消息后,通过与虚拟机之间的事件通道将接收到的XenstoreD发送的消息发送给对应的虚拟机。每个对应的虚拟机在接收到共享页面发送的消息后,将通过升级通道向服务器发送请求消息,服务器在接收到对应的在线的虚拟机发送的请求消息后,将判断对应的在线虚拟机中是否存在满足升级要求的虚拟机。若存在满足升级要求的虚拟机,则通过后续步骤对满足升级要求的虚拟机上的软件对应的组件进行升级。具体地,判断在线虚拟机中是否存在满足升级要求的虚拟机的方式,包括但不限于如下方式:
[0113]第一步,判断在线虚拟机中是否存在满足第一升级条件的虚拟机;
[0114]针对第一步,判断在线虚拟机中是否存在满足第一升级条件的虚拟机,包括但不限于:
[0115]判断在线虚拟机中是否存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机;
[0116]如果在线虚拟机中存在未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机,则将未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移的虚拟机作为满足第一升级条件的虚拟机。
[0117]对于上述过程,为了便于理解,下面将以一个具体的例子进行详细的解释说明。
[0118]例如,在线的虚拟机有A、B、C、D、E、F5个,若判断出在线的虚拟机A在进行虚拟处理器热插拔,在线的虚拟机B在进行内存快照,在线的虚拟机C在进行休眠唤醒,在线的虚拟机D在进行热迁移,在线的虚拟机E在进行虚拟热处理器热插拔和内存快照,在线的虚拟机F未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移,由于在线的虚拟机A、B、C、D、E在进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移中的一项或多项,因此,在线的虚拟机A、B、C、D、E为不满足第一升级条件的虚拟机。由于在线的虚拟机F未进行虚拟处理器热插拔、内存快照、休眠唤醒和热迁移,因此,在线的虚拟机F为满足第一升级条件的虚拟机。
[0119]第二步,如果存在满足第一升级条件的虚拟机,则判断满足第一升级条件的虚拟机是否满足第二升级条件;
[0120]针对第二步,判断满足第一升级条件的虚拟机是否满足第二升级条件,包括但不限于:
[0121]判断满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号进行比较;
[0122]如果满足第一升级条件的虚拟机上的软件对应的组件版本号与获取到的升级组件的版本号不一致,则判断满足第一升级条件的虚拟机满足第二升级条件。
[0123]对于上述过程,为了便于理解,下面将以获取到的升级组件的版本号为3为例进行详细的解释说明。
[0124]例如,若满足第一升级条件的虚拟机有A、B、C三个,其中,满足第一升级条件的虚拟机A上的软件对应的组件版本号为1,满足第一升级条件的虚拟机B上的软件对应的组件版本号为2,满足第一升级条件的虚拟机C上的软件对应的组件版本号为3。由于满足第一升级条件的虚拟机A上的软件对应的组件版本号为1,与获取到的升级组件的版本号3不一致,因此,判断满足第一升级条件的虚拟机A满足第二升级条件;由于满足第一升级条件的虚拟机B上的软件对应的组件版本号为2,与获取到的升级组件的版本号3不一致,因此,判断满足第一升级条件的虚拟机B满足第二升级条件;由于满足第一升级条件的虚拟机C上的软件对应的组件版本号为3,与获取到的升级组件的版本号3 —致,因此,判断满足第一升级条件的虚拟机A不满足第二升级条件。
[0125]第三步,如果存在满足第一升级条件且满足第二升级条件的虚拟机,则确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识;
[0126]针对第三步,为了有针对性的对需要升级的虚拟机进行升级,避免对已经升级或无需升级的虚拟机进行升级,本实施例提供的方法根据上一次升级结果对虚拟机设置了不同的标识。具体地,若上一次对虚拟机升级的升级结果为成功,则将该虚拟机的标识设置为空;若上一次未对虚拟机进行升级,虚拟机的升级结果为空,则将该虚拟机的标识设置为升级标识;若上一次对虚拟机升级的升级结果为失败,则将该虚拟机的标识设置为升级标识;若上一次对虚拟机升级后未进行重启操作,虚拟机的升级结果为准备升级,则将该虚拟机的标识设置为重启标识。
[0127]进一步地,由于升级结果能反映出虚拟机的标识信息,因此,在判断出存在满足第一升级条件且满足第二升级条件的虚拟机后,本实施例提供的方法还将获取满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果,并根据获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果,确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识。
[0128]关于获取满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果的方式,本实施例不作具体的限定,包括但不限于从Xenstore中获取。
[0129]具体地,根据获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果,确定满足第一升级条件且满足第二升级条件的虚拟机是否具有升级标识,包括但不限于如下几种确定结果:
[0130]第一种确定结果:若获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果为成功,则确定满足第一升级条件且满足第二升级条件的虚拟机不具有升级标识;
[0131]第二种确定结果:若获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果为准备升级,则确定满足第一升级条件且满足第二升级条件的虚拟机不具有升级标识;
[0132]第三种确定结果:若获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果为空,则确定满足第一升级条件且满足第二升级条件的虚拟机具有升级标识;
[0133]第四种确定结果:若获取到的满足第一升级条件且满足第二升级条件的虚拟机的上一次升级后的升级结果为失败,则确定满足第一升级条件且满足第二升级条件的虚拟机具有升级标识。
[0134]第四步,将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
[0135]针对第四步,若在线的虚拟机满足第一升级条件、第二升级条件且具有升级标识,则将满足第一升级条件、第二升级条件且具有升级标识的虚拟机确定为满足升级要求的虚拟机。
[0136]对于上述过程,为了便于理解,下面将以一个具体的例子进行详细的解释说明。
[0137]例如,若在线的虚拟机A满足第一升级条件,不满足第二升级条件,在线的虚拟机B满足第一升级条件、第二升级条件但不具有升级标识,在线的虚拟机C满足第一升级条件、第二升级条件且具有升级标识,由于在线的虚拟机A不满足第二升级条件、在线的虚拟机B不具有升级标识,因此,确定在线的虚拟机A和B不是满足升级要求的虚拟机。由于在线的虚拟机C满足第一升级条件、第二升级条件且具有升级标识,因此,确定在线的虚拟机C为满足升级要求的虚拟机。
[0138]304:若在线的虚拟机中存在满足升级要求的虚拟机,则获取满足升级要求的虚拟机上的软件对应的升级组件。
[0139]针对该步骤,由于上述步骤303中已经对在线的虚拟机中是否存在满足升级要求的虚拟机进行了判断,因此,在判断得出存在满足升级要求的虚拟机后,为了对虚
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1