CN105426213B - 软件更新方法和系统 - Google Patents

软件更新方法和系统 Download PDF

Info

Publication number
CN105426213B
CN105426213B CN201510884794.7A CN201510884794A CN105426213B CN 105426213 B CN105426213 B CN 105426213B CN 201510884794 A CN201510884794 A CN 201510884794A CN 105426213 B CN105426213 B CN 105426213B
Authority
CN
China
Prior art keywords
triplicate
copy
virtual machine
update
data
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
Application number
CN201510884794.7A
Other languages
English (en)
Other versions
CN105426213A (zh
Inventor
张国军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201510884794.7A priority Critical patent/CN105426213B/zh
Publication of CN105426213A publication Critical patent/CN105426213A/zh
Application granted granted Critical
Publication of CN105426213B publication Critical patent/CN105426213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种软件更新方法和系统。上述方法包括以下步骤:接收软件更新指令;根据所述软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与所述第二副本的连接;启动虚拟机的更新实例并在所述第二副本运行;通过所述更新实例对所述第二副本进行更新;退出所述更新实例;在所述第二副本上重新启动虚拟机的服务实例并运行。上述软件更新方法和系统,大大缩短了服务器的服务中断时间,能有效减少用户因服务中断带来的损失。

Description

软件更新方法和系统
技术领域
本发明涉及计算机技术领域,特别是涉及一种软件更新方法和系统。
背景技术
对于很多企业及事业单位来说,服务器需要不断地向外提供服务,才能保证业务不会因服务器中断而受到影响。但在许多时候,服务器上的软件版本需要进行升级、修复,或是需要对服务器软件作调试时,都会造成长时间的服务器的服务中断。而当服务器的服务中断的时间越长,造成的损失就越大。
发明内容
基于此,有必要针对软件更新时造成长时间的服务器的服务中断问题,提供一种软件更新方法,能大大缩短服务器的服务中断时间。
此外,还有必要针对软件更新时造成长时间的服务器的服务中断问题,提供一种软件更新系统,能大大缩短服务器的服务中断时间。
一种软件更新方法,包括以下步骤:
接收软件更新指令;
根据软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与第二副本的连接;
启动虚拟机的更新实例并在第二副本运行;
通过更新实例对第二副本进行更新;
退出更新实例;
在第二副本上重新启动虚拟机的服务实例并运行。
在其中一个实施例中,第二副本包括系统盘第二副本及数据盘第二副本,根据软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与第二副本的连接的步骤,具体包括:
判断更新的软件是否需要数据进行调试;
若是,则断开虚拟机的服务实例与系统盘第二副本及数据盘第二副本的连接,并使虚拟机的更新实例获取系统盘第二副本及数据盘第二副本的访问权限;
若否,则断开虚拟机的服务实例与系统盘第二副本的连接,并使虚拟机的更新实例获取系统盘第二副本的访问权限。
在其中一个实施例中,当存在N个系统盘副本及N个数据盘副本时,其中,N为大于2的整数,在所述判断更新的软件是否需要数据进行调试的步骤之后,还包括以下步骤:
当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本及L个数据盘副本的连接,并使虚拟机的更新实例获取N-M个系统盘副本及L个数据盘副本的访问权限;
当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本的连接,并使虚拟机的更新实例获取N-M个系统盘副本的访问权限;
其中,M为大于或等于1且小于N的整数,L为大于或等于1且小于N的整数。
在其中一个实施例中,在判断更新的软件是否需要数据进行调试的步骤之后,还包括以下步骤:
当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-1个系统盘副本及一个数据盘副本的连接,并使虚拟机的更新实例获取N-1个系统盘副本及一个数据盘副本的访问权限;
当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-1个系统盘副本的连接,并使虚拟机的更新实例获取N-1个系统盘副本的访问权限。
在其中一个实施例中,在退出所述更新实例的步骤之后,上述方法还包括以下步骤:
根据预设的切换时间关闭在第一副本运行的虚拟机的服务实例;
在第二副本上重新启动虚拟机的服务实例并运行;
同步第一副本及第二副本的数据;
同步第一副本及第二副本的数据的步骤,具体包括:
将系统盘第二副本的数据同步至系统盘第一副本;
判断更新实例是否访问过数据盘第二副本,若访问过,则将数据盘第一副本的数据同步至数据盘第二副本。
在其中一个实施例中,在启动虚拟机的更新实例并在第二副本运行的步骤之前,还包括:
获取输入的IP地址,或自动选择与虚拟机的服务实例不同的IP地址;
将虚拟机的更新实例配置为该IP地址。
一种软件更新系统,包括:
接收模块,用于接收软件更新指令;
断开模块,用于根据软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与第二副本的连接;
启动模块,用于启动虚拟机的更新实例并在第二副本运行;
更新模块,用于通过更新实例对第二副本进行更新;
退出模块,用于退出更新实例;
启动模块还用于在第二副本上重新启动虚拟机的服务实例并运行。
在其中一个实施例中,第二副本包括系统盘第二副本及数据盘第二副本,上述系统还包括:
判断模块,用于判断更新的软件是否需要数据进行调试;
断开模块还用于当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与系统盘第二副本及数据盘第二副本的连接,并使虚拟机的更新实例获取系统盘第二副本及数据盘第二副本的访问权限;
断开模块还用于当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与系统盘第二副本的连接,并使虚拟机的更新实例获取系统盘第二副本的访问权限。
在其中一个实施例中,当存在N个系统盘副本及N个数据盘副本时,其中,N为大于2的整数,
断开模块还用于当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本及L个数据盘副本的连接,并使虚拟机的更新实例获取N-M个系统盘副本及L个数据盘副本的访问权限;
断开模块还用于当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本的连接,并使虚拟机的更新实例获取N-M个系统盘副本的访问权限;
其中,M为大于或等于1且小于N的整数,L为大于或等于1且小于N的整数。
在其中一个实施例中,退出模块还用于根据预设的切换时间关闭在第一副本运行的虚拟机的服务实例;
上述系统还包括同步模块,用于同步第一副本及第二副本的数据;
同步模块包括:
系统盘同步单元,用于将系统盘第二副本的数据同步至系统盘第一副本;
数据盘同步单元,用于判断更新实例是否访问过数据盘第二副本,若访问过,则将数据盘第一副本的数据同步至数据盘第二副本。
在其中一个实施例中,上述系统还包括:
获取模块,用于获取输入的IP地址,或自动选择与虚拟机的服务实例不同的IP地址;
配置模块,用于将虚拟机的更新实例配置为该IP地址。
上述软件更新方法和系统,使虚拟机的服务实例继续在第一副本运行,并在第二副本启动虚拟机的更新实例并进行更新,更新完成后在第二副本重新启动虚拟机的服务实例,能够在不中断服务器原有服务的情况下,完成软件的更新,大大缩短了服务器的服务中断时间,能有效减少用户因服务中断带来的损失。
附图说明
图1为一个实施例中软件更新方法的流程示意图;
图2为一个实施例中软件更新方法的图形示意图;
图3为一个实施例中判断更新的软件是否需要数据进行调试的流程示意图;
图4(a)为一个实施例中更新的软件需要数据进行调试时的图形示意图;
图4(b)为一个实施例中更新的软件不需要数据进行调试时的图形示意图;
图5(a)为另一个实施例中当存在三个副本时更新的软件需要数据进行调试时的图形示意图;
图5(b)为另一个实施例中当存在三个副本时更新的软件不需要数据进行调试时的图形示意图;
图6为一个实施例中完成软件切换的流程示意图;
图7为一个实施例中软件更新系统的结构示意图;
图8为另一个实施例中软件更新系统的结构示意图;
图9为又一个实施例中软件更新系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,一种软件更新方法,包括以下步骤:
步骤S110,接收软件更新指令。
具体的,可在服务器上安装虚拟机,在该服务器上模拟出一台或多台虚拟的服务器,可减少服务器设备的采购成本。其中,服务器可为超融合一体机等,超融合一体机可将虚拟化管理软件、虚拟存储、虚拟网络等基础部件融合到一起,并采用标准X86服务器硬件承载虚拟化管理软件、虚拟存储、虚拟网络等软件的网络基础设施部件,超融合一体机也称为“超融合基础设施”。当需要进行软件更新时,用户可通过WEB(互联网)控制台或命令行控制台等向服务器发送对虚拟机进行软件更新的指令,服务器接收该软件更新指令后,对虚拟机的软件进行更新。
步骤S120,根据软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与第二副本的连接。
具体的,服务器可采用分布式存储构架,并采用冗余措施对数据进行保存,数据可保存为多份,每份数据称为一个副本,例如数据保存为2份,就是两个副本,数据保存为3份,就是三个副本。不同的副本可保存在不同的主机中,以应付主机故障,提高多副本数据的可用性。在本实施例中,存在两个副本,副本中存储有虚拟机运行所需的所有软件及相关数据,相当于虚拟机的虚拟磁盘。在正常情况下,虚拟机启动一个实例用于向外提供服务,即为“服务实例”,虚拟机的服务实例运行在所有副本上,并占据所有副本的读写权,负责读取副本中的数据及写入数据到副本中。虚拟机的服务实例可通过TCP(Transmission ControlProtocol,传输控制协议)连接对副本进行访问,但不限于此。当服务器接收到软件更新指令时,断开虚拟机的服务实例与其中一个副本的连接,例如断开服务实例与第二副本的连接,保证服务实例继续运行在第一副本上,并继续向外提供服务。
步骤S130,启动虚拟机的更新实例并在第二副本运行。
具体的,在断开虚拟机的服务实例与第二副本的连接后,虚拟机再次启动一个实例用于软件更新,即为“更新实例”,更新实例不向外提供服务。服务器可控制更新实例只在第二副本上运行,并进行软件更新。
步骤S140,通过该更新实例对第二副本进行更新。
具体的,服务器通过虚拟机的更新实例对存储在第二副本上的软件进行更新、修复等操作,并可根据实际需求在软件更新完成后对软件进行调试,以保证更新后的软件运行正常,降低风险。如图2所示,虚拟机的服务实例运行在第一副本及第二副本上,当服务器接收到软件更新指令时,断开服务实例与第二副本的连接,并启动虚拟机的更新实例,使更新实例运行在第二副本上进行软件更新。在其它的实施例中,可存在N个副本,其中,N为大于2的整数,此时服务器可断开虚拟机的服务实例与其中的N-1个副本的连接,服务实例只在其中一个副本上运行,然后启动虚拟机的更新实例并在该N-1个副本上运行,进行软件更新,有利于在软件更新后进行副本之间的数据同步时减少同步的数据量。服务实例也可在其中的M个副本上运行,然后更新实例在其它的N-M个副本上运行,其中,M为大于或等于1且小于N的整数,例如存在5个副本,服务实例在其中的2个或3个副本上运行,更新实例在其它的3个或2个副本上运行等,但不限于此。
步骤S150,退出更新实例。
具体的,软件更新完成后,退出虚拟机的更新实例。
步骤S160,在第二副本上重新启动虚拟机的服务实例并运行。
具体的,服务器可在软件更新完成后,关闭在第一副本上运行的虚拟机的服务实例,并重新启动一个虚拟机的服务实例,使该服务实例运行在第二副本上,完成软件的切换,虚拟机的服务实例即可使用更新后的软件向外提供服务。
上述软件更新方法,使虚拟机的服务实例继续在第一副本运行,并在第二副本启动虚拟机的更新实例并进行更新,更新完成后在第二副本重新启动虚拟机的服务实例,能够在不中断服务器原有服务的情况下,完成软件的更新,大大缩短了服务器的服务中断时间,能有效减少用户因服务中断带来的损失。
如图3所示,在一个实施例中,根据软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与第二副本的连接的步骤,具体包括:
步骤S310,判断更新的软件是否需要数据进行调试,若是,则执行步骤S320,若否,则执行步骤S330。
具体的,用户向服务器发送软件更新指令后,可设置更新的软件是否需要利用数据进行调试,对更新的软件进行数据调试可保证软件运行正常,降低软件故障、出错的风险。服务器在接收软件更新之后,可进一步判断更新的软件是否需要数据进行调试。
步骤S320,断开虚拟机的服务实例与系统盘第二副本及数据盘第二副本的连接,并使虚拟机的更新实例获取系统盘第二副本及数据盘第二副本的访问权限。
具体的,副本相当于虚拟机的虚拟磁盘,而虚拟磁盘就是一个镜像文件,可将虚拟磁盘的系统盘及数据盘进行分离,副本中可包括系统盘副本及数据盘副本,系统盘副本中只安装有虚拟机所使用的操作系统及软件,并保存某些基本配置,而数据盘副本中仅保存软件产生的数据。第二副本包括系统盘第二副本及数据盘第二副本当更新的软件需要数据进行调试时,服务器可断开虚拟机的服务实例与系统盘第二副本及数据盘第二副本的连接,使得服务实例仅可访问系统盘第一副本及数据盘第一副本,可如图4(a)所示,而虚拟机的更新实例可访问系统盘第二副本及数据盘第二副本。在软件更新完成后,可重新启动虚拟机的更新实例,并调用数据盘第二副本的数据对更新的软件进行数据调试。
步骤S330,断开虚拟机的服务实例与系统盘第二副本的连接,并使虚拟机的更新实例获取系统盘第二副本的访问权限。
具体的,当更新的软件不需要数据进行调试时,可仅断开虚拟机的服务实例与系统盘第二副本的连接,如图4(b)所示,服务实例可访问系统盘第一副本、数据盘第一副本及数据盘第二副本,而虚拟机的更新实例仅可访问系统盘第二副本,而不具有数据盘第二副本的访问权限,更新实例无法访问所有的数据盘副本。
在一个实施例中,当存在N个副本时,其中,N为大于2的整数,在判断更新的软件是否需要数据进行调试的步骤之后,上述方法还包括以下步骤:
(1)当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本及L个数据盘副本的连接,并使虚拟机的更新实例获取N-M个系统盘副本及L个数据盘副本的访问权限。
具体的,M为大于或等于1且小于N的整数,L为大于或等于1且小于N的整数。当存在N个系统盘副本及N个数据盘副本时,若更新的软件需要进行数据调试,服务器可断开虚拟机的服务实例与其中N-M个系统盘副本及L个数据盘副本的连接,即服务实例可访问M个系统盘副本及N-L个数据盘副本,而虚拟机的更新实例可访问N-M个系统盘副本及L个数据盘副本。例如,存在4个副本,虚拟机的服务实例可断开其中系统盘第三副本、系统盘第四副本及数据盘第四副本的连接,仅访问剩下的两个系统盘副本及3个数据盘副本,而虚拟机的更新实例则可访问系统盘第三副本、系统盘第四副本及数据盘第四副本,但不限于此。
(2)当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本的连接,并使虚拟机的更新实例获取N-M个系统盘副本的访问权限。
具体的,当更新的软件不需要数据进行调试时,服务器可断开虚拟机的服务实例与其中N-M个系统盘副本的连接,服务实例拥有M个系统盘副本及所有数据盘副本的访问权限,而虚拟机的更新实例拥有N-M个系统盘副本的访问权限,没有数据盘副本的访问权限。例如,存在5个副本,虚拟机的服务实例可断开其中的系统盘第二副本、系统盘第三副本及系统盘第四副本的连接,仅访问剩下的两个系统盘副本及所有的数据盘副本,而更新实例则可访问系统盘第二副本、系统盘第三副本及系统盘第四副本,但不限于此。
在进一步的实施例中,在判断更新的软件是否需要数据进行调试的步骤之后,上述方法可还包括以下步骤:
(1)当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-1个系统盘副本及一个数据盘副本的连接,并使虚拟机的更新实例获取该N-1个系统盘副本及一个数据盘副本的访问权限。
具体的,当存在N个系统盘副本及N个数据盘副本时,若更新的软件需要进行数据调试,服务器可断开虚拟机的服务实例与其中N-1个系统盘副本及一个数据盘副本的连接,即服务实例仅拥有一个系统盘副本及N-1个数据盘副本的访问权限,而虚拟机的更新实例则拥有一个数据盘副本及N-1个系统盘副本的访问权限。如图5(a)所示,存在3个副本,虚拟机的服务实例可访问系统盘第一副本及数据盘第一副本、数据盘第二副本,而更新实例可访问数据盘第三副本及系统盘第二副本、系统盘第三副本。
(2)当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-1个系统盘副本的连接,并使虚拟机的更新实例获取该N-1个系统盘副本的访问权限。
具体的,当更新的软件不需要数据进行调试时,服务器可断开虚拟机的服务实例与其中N-1个系统盘副本的连接,服务实例拥有一个系统盘副本及所有数据盘副本的访问权限,而虚拟机的更新实例拥有N-1个系统盘副本的访问权限,没有数据盘副本的访问权限。如图5(b)所示,存在3个副本,虚拟机的服务实例可访问系统盘第一副本及数据盘第一副本、数据盘第二副本、数据盘第三副本,而虚拟机的更新实例可访问系统盘第二副本及系统盘第三副本,而不能访问所有的数据盘副本。
通过此种分配服务实例及更新实例对系统盘副本及数据盘副本访问权限的方式,在进行软件更新时,其中的N-1个系统盘副本中的软件均完成更新,而当更新的软件需要数据进行调试时,仅一个数据盘副本用作调试,其它的N-1个数据盘副本中的数据都是服务实例向外提供服务时所产生的最新数据,可在更新软件完成后进行副本之间的数据同步时减少同步的数据量,分别仅需同步一个系统盘副本和一个数据盘副本的数据。
上述软件更新方法,将虚拟机的系统盘及数据盘分离,可根据实际需求设置虚拟机的更新实例的访问权限,方便软件更新后进行数据调试,且可减少后期进行副本之间数据同步时的同步数据量。
如图6所示,在一个实施例中,上述软件更新方法,在退出更新实例的步骤之后,还包括以下步骤:
步骤S610,根据预设的切换时间关闭在第一副本运行的虚拟机的服务实例。
具体的,用户可预先设置切换时间,该切换时间为将虚拟机的服务实例切换运行到更新后的副本上的时间,切换时间可选择在服务器业务最为空闲的时间点,例如凌晨0点等。当到达该切换时间时,服务器将自动关闭在第一副本上运行的虚拟机的服务实例,然后重新启动虚拟机的服务实例并在第二副本上运行,即可使用更新后的软件向外提供服务,服务器中断服务的时间仅为关闭并重启虚拟机的服务实例的时间,通过预设的切换时间,可进一步减少因服务器中断带来的损失。
步骤S620,在第二副本上重新启动虚拟机的服务实例并运行。
步骤S630,同步第一副本及第二副本的数据。
具体的,软件更新完成后,因副本之间的数据不一致,需进行副本之间的数据同步,将不同副本的数据修复成一致状态。
在一个实施例中,步骤同步第一副本及第二副本的数据,可包括以下步骤:
(a)将系统盘第二副本的数据同步至系统盘第一副本。
具体的,可通过将系统盘第二副本与系统盘第一副本存在差异的那部分数据,即更新过的软件数据拷贝到系统盘第一副本来同步系统盘第一副本及系统盘第二副本的数据。
(b)判断更新实例是否访问过数据盘第二副本,若访问过,则将数据盘第一副本的数据同步至数据盘第二副本。
具体的,可先判断虚拟机的更新实例是否访问过数据盘第二副本,若未访问过,即表示更新实例不需要数据进行调试,数据盘第二副本中的数据即为最新的数据,不需要进行数据同步。若更新实例访问过数据盘第二副本,则可通过将数据盘第一副本与数据盘第二副本存在差异的那部分数据拷贝到数据盘第二副本,数据盘副本的同步方向与系统盘副本相反。在其它的实施例中,若存在N个副本,其中,N为大于2的整数,可将虚拟机的更新实例访问过的系统盘副本的数据同步至未访问过的系统盘副本,当更新实例访问过数据盘副本时,可将更新实例未访问过的数据盘副本的数据同步至该访问过的数据盘副本。
上述软件更新方法,使虚拟机的服务实例继续在第一副本运行,并在第二副本启动虚拟机的更新实例并进行更新,更新完成后在第二副本重新启动虚拟机的服务实例,能够在不中断服务器原有服务的情况下,完成软件的更新,大大缩短了服务器的服务中断时间,能有效减少用户因服务中断带来的损失。
在一个实施例中,上述软件更新方法,还包括步骤:获取输入的IP(InternetProtocol,网络之间互连的协议)地址,或自动选择与虚拟机的服务实例不同的IP地址,将虚拟机的更新实例配置为该IP地址。
具体的,在虚拟机的更新实例启动前,用户可输入一个与虚拟机的服务实例不同的IP地址,或由服务器自动选择一个与虚拟机的服务实例不同的IP地址。在虚拟机的更新实例启动后,可自动将更新实例的IP地址设置为之前获取的与服务实例不同的IP地址。
上述软件更新方法,可保证虚拟机的服务实例与更新实例的IP地址不会发生冲突,保证服务实例与更新实例均是可以进行正常访问的。
如图7所示,一种软件更新系统,包括接收模块710、断开模块720、启动模块730、更新模块740和退出模块750。
接收模块710,用于接收软件更新指令。
具体的,可在服务器上安装虚拟机,在该服务器上模拟出一台或多台虚拟的服务器,可减少服务器设备的采购成本。其中,服务器可为超融合一体机等,超融合一体机可将虚拟化管理软件、虚拟存储、虚拟网络等基础部件融合到一起,并采用标准X86服务器硬件承载虚拟化管理软件、虚拟存储、虚拟网络等软件的网络基础设施部件,超融合一体机也称为“超融合基础设施”。当需要进行软件更新时,用户可通过WEB(互联网)控制台或命令行控制台等向服务器发送对虚拟机进行软件更新的指令,服务器接收该软件更新指令后,对虚拟机的软件进行更新。
断开模块720,用于根据软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与第二副本的连接。
具体的,服务器可采用分布式存储构架,并采用冗余措施对数据进行保存,数据可保存为多份,每份数据称为一个副本,例如数据保存为2份,就是两个副本,数据保存为3份,就是三个副本。不同的副本可保存在不同的主机中,以应付主机故障,提高多副本数据的可用性。在本实施例中,存在两个副本,副本中存储有虚拟机运行所需的所有软件及相关数据,相当于虚拟机的虚拟磁盘。在正常情况下,虚拟机启动一个实例用于向外提供服务,即为“服务实例”,虚拟机的服务实例运行在所有副本上,并占据所有副本的读写权,负责读取副本中的数据及写入数据到副本中。虚拟机的服务实例可通过TCP连接对副本进行访问,但不限于此。当服务器接收到软件更新指令时,断开虚拟机的服务实例与其中一个副本的连接,例如断开服务实例与第二副本的连接,保证服务实例继续运行在第一副本上,并继续向外提供服务。
启动模块730,用于启动虚拟机的更新实例并在第二副本运行。
具体的,在断开虚拟机的服务实例与第二副本的连接后,虚拟机再次启动一个实例用于软件更新,即为“更新实例”,更新实例不向外提供服务。服务器可控制更新实例只在第二副本上运行,并进行软件更新。
更新模块740,用于通过更新实例对第二副本进行更新。
具体的,服务器通过虚拟机的更新实例对存储在第二副本上的软件进行更新、修复等操作,并可根据实际需求在软件更新完成后对软件进行调试,以保证更新后的软件运行正常,降低风险。如图2所示,虚拟机的服务实例运行在第一副本及第二副本上,当服务器接收到软件更新指令时,断开服务实例与第二副本的连接,并启动虚拟机的更新实例,使更新实例运行在第二副本上进行软件更新。在其它的实施例中,可存在N个副本,其中,N为大于2的整数,此时服务器可断开虚拟机的服务实例与其中的N-1个副本的连接,服务实例只在其中一个副本上运行,然后启动虚拟机的更新实例并在该N-1个副本上运行,进行软件更新,有利于在软件更新后进行副本之间的数据同步时减少同步的数据量。服务实例也可在其中的M个副本上运行,然后更新实例在其它的N-M个副本上运行,其中,M为大于或等于1且小于N的整数,例如存在5个副本,服务实例在其中的2个或3个副本上运行,更新实例在其它的3个或2个副本上运行等,但不限于此。
退出模块750,用于退出更新实例。
具体的,软件更新完成后,退出虚拟机的更新实例。
启动模块730还用于在第二副本上重新启动虚拟机的服务实例并运行。
具体的,服务器可在软件更新完成后,关闭在第一副本上运行的虚拟机的服务实例,并重新启动一个虚拟机的服务实例,使该服务实例运行在第二副本上,完成软件的切换,虚拟机的服务实例即可使用更新后的软件向外提供服务。
上述软件更新系统,使虚拟机的服务实例继续在第一副本运行,并在第二副本启动虚拟机的更新实例并进行更新,更新完成后在第二副本重新启动虚拟机的服务实例,能够在不中断服务器原有服务的情况下,完成软件的更新,大大缩短了服务器的服务中断时间,能有效减少用户因服务中断带来的损失。
如图8所示,在一个实施例中,上述软件更新系统,除了包括接收模块710、断开模块720、启动模块730、更新模块740和退出模块750,还包括判断模块760。
判断模块760,用于判断更新的软件是否需要数据进行调试。
具体的,用户向服务器发送软件更新指令后,可设置更新的软件是否需要利用数据进行调试,对更新的软件进行数据调试可保证软件运行正常,降低软件故障、出错的风险。服务器在接收软件更新之后,可进一步判断更新的软件是否需要数据进行调试。
具体的,副本相当于虚拟机的虚拟磁盘,而虚拟磁盘就是一个镜像文件,可将虚拟磁盘的系统盘及数据盘进行分离,副本中可包括系统盘副本及数据盘副本,系统盘副本中只安装有虚拟机所使用的操作系统及软件,并保存某些基本配置,而数据盘副本中仅保存软件产生的数据。第二副本包括系统盘第二副本及数据盘第二副本,当更新的软件需要数据进行调试时,服务器可断开虚拟机的服务实例与系统盘第二副本及数据盘第二副本的连接,使得服务实例仅可访问系统盘第一副本及数据盘第一副本,可如图4(a)所示,而虚拟机的更新实例可访问系统盘第二副本及数据盘第二副本。在软件更新完成后,可重新启动虚拟机的更新实例,并调用数据盘第二副本的数据对更新的软件进行数据调试。
断开模块720还用于当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与系统盘第二副本及数据盘第二副本的连接,并使虚拟机的更新实例获取系统盘第二副本及数据盘第二副本的访问权限。
断开模块720还用于当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与系统盘第二副本的连接,并使虚拟机的更新实例获取系统盘第二副本的访问权限。
具体的,当更新的软件不需要数据进行调试时,可仅断开虚拟机的服务实例与系统盘第二副本的连接,如图4(b)所示,服务实例可访问系统盘第一副本、数据盘第一副本及数据盘第二副本,而虚拟机的更新实例仅可访问系统盘第二副本,而不具有数据盘第二副本的访问权限,更新实例无法访问所有的数据盘副本。
在另一个实施例中,当存在N个副本时,其中,N为大于2的整数。
断开模块720还用于当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本及L个数据盘副本的连接,并使虚拟机的更新实例获取N-M个系统盘副本及L个数据盘副本的访问权限。
具体的,M为大于或等于1且小于N的整数,L为大于或等于1且小于N的整数。当存在N个系统盘副本及N个数据盘副本时,若更新的软件需要进行数据调试,服务器可断开虚拟机的服务实例与其中N-M个系统盘副本及L个数据盘副本的连接,即服务实例可访问M个系统盘副本及N-L个数据盘副本,而虚拟机的更新实例可访问N-M个系统盘副本及L个数据盘副本。例如,存在4个副本,虚拟机的服务实例可断开其中系统盘第三副本、系统盘第四副本及数据盘第四副本的连接,仅访问剩下的两个系统盘副本及3个数据盘副本,而虚拟机的更新实例则可访问系统盘第三副本、系统盘第四副本及数据盘第四副本,但不限于此。
断开模块720还用于当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本的连接,并使虚拟机的更新实例获取N-M个系统盘副本的访问权限。
具体的,当更新的软件不需要数据进行调试时,服务器可断开虚拟机的服务实例与其中N-M个系统盘副本的连接,服务实例拥有M个系统盘副本及所有数据盘副本的访问权限,而虚拟机的更新实例拥有N-M个系统盘副本的访问权限,没有数据盘副本的访问权限。例如,存在5个副本,虚拟机的服务实例可断开其中的系统盘第二副本、系统盘第三副本及系统盘第四副本的连接,仅访问剩下的两个系统盘副本及所有的数据盘副本,而更新实例则可访问系统盘第二副本、系统盘第三副本及系统盘第四副本,但不限于此。
在进一步的实施例中,断开模块720还用于当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-1个系统盘副本及一个数据盘副本的连接,并使虚拟机的更新实例获取该N-1个系统盘副本及一个数据盘副本的访问权限。
具体的,当存在N个系统盘副本及N个数据盘副本时,若更新的软件需要进行数据调试,服务器可断开虚拟机的服务实例与其中N-1个系统盘副本及一个数据盘副本的连接,即服务实例仅拥有一个系统盘副本及N-1个数据盘副本的访问权限,而虚拟机的更新实例则拥有一个数据盘副本及N-1个系统盘副本的访问权限。如图5(a)所示,存在3个副本,虚拟机的服务实例可访问系统盘第一副本及数据盘第一副本、数据盘第二副本,而更新实例可访问数据盘第三副本及系统盘第二副本、系统盘第三副本。
断开模块720还用于当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-1个系统盘副本的连接,并使虚拟机的更新实例获取该N-1个系统盘副本的访问权限。
具体的,当更新的软件不需要数据进行调试时,服务器可断开虚拟机的服务实例与其中N-1个系统盘副本的连接,服务实例拥有一个系统盘副本及所有数据盘副本的访问权限,而虚拟机的更新实例拥有N-1个系统盘副本的访问权限,没有数据盘副本的访问权限。如图5(b)所示,存在3个副本,虚拟机的服务实例可访问系统盘第一副本及数据盘第一副本、数据盘第二副本、数据盘第三副本,而虚拟机的更新实例可访问系统盘第二副本及系统盘第三副本,而不能访问所有的数据盘副本。
通过此种分配服务实例及更新实例对系统盘副本及数据盘副本访问权限的方式,在进行软件更新时,其中的N-1个系统盘副本中的软件均完成更新,而当更新的软件需要数据进行调试时,仅一个数据盘副本用作调试,其它的N-1个数据盘副本中的数据都是服务实例向外提供服务时所产生的最新数据,可在更新软件完成后进行副本之间的数据同步时减少同步的数据量,分别仅需同步一个系统盘副本和一个数据盘副本的数据。
上述软件更新系统,将虚拟机的系统盘及数据盘分离,可根据实际需求设置虚拟机的更新实例的访问权限,方便软件更新后进行数据调试,且可减少后期进行副本之间数据同步时的同步数据量。
如图9所示,上述软件更新系统,除了包括接收模块710、断开模块720、启动模块730、更新模块740、退出模块750和判断模块760,还包括同步模块770。
退出模块750还用于根据预设的切换时间关闭在第一副本运行的虚拟机的服务实例。
具体的,用户可预先设置切换时间,该切换时间为将虚拟机的服务实例切换运行到更新后的副本上的时间,切换时间可选择在服务器业务最为空闲的时间点,例如凌晨0点等。当到达该切换时间时,服务器将自动关闭在第一副本上运行的虚拟机的服务实例,然后重新启动虚拟机的服务实例并在第二副本上运行,即可使用更新后的软件向外提供服务,服务器中断服务的时间仅为关闭并重启虚拟机的服务实例的时间,通过预设的切换时间,可进一步减少因服务器中断带来的损失。
同步模块770,用于同步第一副本及第二副本的数据。
具体的,软件更新完成后,因副本之间的数据不一致,需进行副本之间的数据同步,将不同副本的数据修复成一致状态。
同步模块770包括系统盘同步单元772和数据盘同步单元774。
系统盘同步单元772,用于将系统盘第二副本的数据同步至系统盘第一副本。
具体的,可通过将系统盘第二副本与系统盘第一副本存在差异的那部分数据,即更新过的软件数据拷贝到系统盘第一副本来同步系统盘第一副本及系统盘第二副本的数据。
数据盘同步单元774,用于判断更新实例是否访问过数据盘第二副本,若访问过,则将数据盘第一副本的数据同步至数据盘第二副本。
具体的,可先判断虚拟机的更新实例是否访问过数据盘第二副本,若未访问过,即表示更新实例不需要数据进行调试,数据盘第二副本中的数据即为最新的数据,不需要进行数据同步。若更新实例访问过数据盘第二副本,则可通过将数据盘第一副本与数据盘第二副本存在差异的那部分数据拷贝到数据盘第二副本,数据盘副本的同步方向与系统盘副本相反。在其它的实施例中,若存在N个副本,其中,N为大于2的整数,可将虚拟机的更新实例访问过的系统盘副本的数据同步至未访问过的系统盘副本,当更新实例访问过数据盘副本时,可将更新实例未访问过的数据盘副本的数据同步至该访问过的数据盘副本。
上述软件更新系统,使虚拟机的服务实例继续在第一副本运行,并在第二副本启动虚拟机的更新实例并进行更新,更新完成后在第二副本重新启动虚拟机的服务实例,能够在不中断服务器原有服务的情况下,完成软件的更新,大大缩短了服务器的服务中断时间,能有效减少用户因服务中断带来的损失。
在一个实施例中,上述软件更新系统,还包括获取模块和配置模块。
获取模块,用于获取输入的IP地址,或自动选择与虚拟机的服务实例不同的IP地址。
配置模块,用于将虚拟机的更新实例配置为该IP地址。
具体的,在虚拟机的更新实例启动前,用户可输入一个与虚拟机的服务实例不同的IP地址,或由服务器自动选择一个与虚拟机的服务实例不同的IP地址。在虚拟机的更新实例启动后,可自动将更新实例的IP地址设置为之前获取的与服务实例不同的IP地址。
上述软件更新系统,可保证虚拟机的服务实例与更新实例的IP地址不会发生冲突,保证服务实例与更新实例均是可以进行正常访问的。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (11)

1.一种软件更新方法,其特征在于,包括以下步骤:
接收软件更新指令;
根据所述软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与所述第二副本的连接;
启动虚拟机的更新实例并在所述第二副本运行,所述更新实例用于软件更新;
通过所述更新实例对所述第二副本进行更新;
退出所述更新实例;
关闭在所述第一副本上运行的虚拟机的服务实例,在所述第二副本上重新启动虚拟机的服务实例并运行。
2.根据权利要求1所述的软件更新方法,其特征在于,所述第二副本包括系统盘第二副本及数据盘第二副本,所述根据所述软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与所述第二副本的连接的步骤,具体包括:
判断更新的软件是否需要数据进行调试;
若是,则断开虚拟机的服务实例与系统盘第二副本及数据盘第二副本的连接,并使虚拟机的更新实例获取所述系统盘第二副本及所述数据盘第二副本的访问权限;
若否,则断开虚拟机的服务实例与系统盘第二副本的连接,并使虚拟机的更新实例获取所述系统盘第二副本的访问权限。
3.根据权利要求2所述的软件更新方法,其特征在于,当存在N个系统盘副本及N个数据盘副本时,其中,N为大于2的整数,在所述判断更新的软件是否需要数据进行调试的步骤之后,还包括以下步骤:
当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本及L个数据盘副本的连接,并使虚拟机的更新实例获取所述N-M个系统盘副本及L个数据盘副本的访问权限;
当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本的连接,并使虚拟机的更新实例获取所述N-M个系统盘副本的访问权限;
其中,M为大于或等于1且小于N的整数,L为大于或等于1且小于N的整数。
4.根据权利要求3所述的软件更新方法,其特征在于,在所述判断更新的软件是否需要数据进行调试的步骤之后,还包括以下步骤:
当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-1个系统盘副本及一个数据盘副本的连接,并使虚拟机的更新实例获取所述N-1个系统盘副本及一个数据盘副本的访问权限;
当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-1个系统盘副本的连接,并使虚拟机的更新实例获取所述N-1个系统盘副本的访问权限。
5.根据权利要求2所述的软件更新方法,其特征在于,在所述退出所述更新实例的步骤之后,所述方法还包括以下步骤:
根据预设的切换时间关闭在所述第一副本运行的虚拟机的服务实例;
在所述第二副本上重新启动虚拟机的服务实例并运行;
同步所述第一副本及所述第二副本的数据;
所述同步所述第一副本及所述第二副本的数据的步骤,具体包括:
将所述系统盘第二副本的数据同步至所述系统盘第一副本;
判断所述更新实例是否访问过所述数据盘第二副本,若访问过,则将所述数据盘第一副本的数据同步至所述数据盘第二副本。
6.根据权利要求1至5任一权利要求所述的软件更新方法,其特征在于,在所述启动虚拟机的更新实例并在所述第二副本运行的步骤之前,还包括:
获取输入的IP地址,或自动选择与虚拟机的服务实例不同的IP地址;
将虚拟机的更新实例配置为所述IP地址。
7.一种软件更新系统,其特征在于,包括:
接收模块,用于接收软件更新指令;
断开模块,用于根据所述软件更新指令断开在第一副本及第二副本上运行的虚拟机的服务实例与所述第二副本的连接;
启动模块,用于启动虚拟机的更新实例并在所述第二副本运行,所述更新实例用于软件更新;
更新模块,用于通过所述更新实例对所述第二副本进行更新;
退出模块,用于退出所述更新实例;
所述启动模块还用于关闭在所述第一副本上运行的虚拟机的服务实例,在所述第二副本上重新启动虚拟机的服务实例并运行。
8.根据权利要求7所述的软件更新系统,其特征在于,所述第二副本包括系统盘第二副本及数据盘第二副本,所述系统还包括:
判断模块,用于判断更新的软件是否需要数据进行调试;
所述断开模块还用于当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与系统盘第二副本及数据盘第二副本的连接,并使虚拟机的更新实例获取所述系统盘第二副本及所述数据盘第二副本的访问权限;
所述断开模块还用于当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与系统盘第二副本的连接,并使虚拟机的更新实例获取所述系统盘第二副本的访问权限。
9.根据权利要求8所述的软件更新系统,其特征在于,当存在N个系统盘副本及N个数据盘副本时,其中,N为大于2的整数,
所述断开模块还用于当更新的软件需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本及L个数据盘副本的连接,并使虚拟机的更新实例获取所述N-M个系统盘副本及L个数据盘副本的访问权限;
所述断开模块还用于当更新的软件不需要数据进行调试时,则断开虚拟机的服务实例与N-M个系统盘副本的连接,并使虚拟机的更新实例获取所述N-M个系统盘副本的访问权限;
其中,M为大于或等于1且小于N的整数,L为大于或等于1且小于N的整数。
10.根据权利要求8所述的软件更新系统,其特征在于,所述退出模块还用于根据预设的切换时间关闭在所述第一副本运行的虚拟机的服务实例;
所述系统还包括同步模块,用于同步所述第一副本及所述第二副本的数据;
所述同步模块包括:
系统盘同步单元,用于将所述系统盘第二副本的数据同步至所述系统盘第一副本;
数据盘同步单元,用于判断所述更新实例是否访问过所述数据盘第二副本,若访问过,则将所述数据盘第一副本的数据同步至所述数据盘第二副本。
11.根据权利要求7至10任一权利要求所述的软件更新系统,其特征在于,所述系统还包括:
获取模块,用于获取输入的IP地址,或自动选择与虚拟机的服务实例不同的IP地址;
配置模块,用于将虚拟机的更新实例配置为所述IP地址。
CN201510884794.7A 2015-12-04 2015-12-04 软件更新方法和系统 Active CN105426213B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510884794.7A CN105426213B (zh) 2015-12-04 2015-12-04 软件更新方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510884794.7A CN105426213B (zh) 2015-12-04 2015-12-04 软件更新方法和系统

Publications (2)

Publication Number Publication Date
CN105426213A CN105426213A (zh) 2016-03-23
CN105426213B true CN105426213B (zh) 2019-05-21

Family

ID=55504441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510884794.7A Active CN105426213B (zh) 2015-12-04 2015-12-04 软件更新方法和系统

Country Status (1)

Country Link
CN (1) CN105426213B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106203167B (zh) * 2016-07-08 2019-05-07 北京小米移动软件有限公司 应用权限管理方法及装置
CN106406953A (zh) * 2016-09-21 2017-02-15 郑州云海信息技术有限公司 一种存储系统软件在线升级方法
CN106502763A (zh) * 2016-11-01 2017-03-15 上海优刻得信息科技有限公司 一种软件更新方法及装置
CN106776119A (zh) * 2016-11-24 2017-05-31 北京小米移动软件有限公司 服务实例的重启方法、装置及服务器
CN107122228B (zh) * 2017-04-18 2018-06-29 北京华云网际科技有限公司 超融合系统的管理平台的部署方法和装置
CN109412835B (zh) * 2018-09-11 2021-12-03 阿里巴巴(中国)有限公司 分布式系统及数据管理方法和装置、存储介质、计算设备
CN113064615B (zh) * 2021-03-26 2023-09-26 西安万像电子科技有限公司 软件更新方法和装置、存储介质及电子装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810067A (zh) * 2011-06-02 2012-12-05 鸿富锦精密工业(深圳)有限公司 虚拟机模板更新系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5223707B2 (ja) * 2009-02-05 2013-06-26 富士通株式会社 ソフトウェア更新指示プログラム、ソフトウェア更新指示方法、および情報処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810067A (zh) * 2011-06-02 2012-12-05 鸿富锦精密工业(深圳)有限公司 虚拟机模板更新系统及方法

Also Published As

Publication number Publication date
CN105426213A (zh) 2016-03-23

Similar Documents

Publication Publication Date Title
CN105426213B (zh) 软件更新方法和系统
US9032248B1 (en) Memory write tracking for virtual machines
EP3493471B1 (en) Data disaster recovery method, apparatus and system
CN103618627B (zh) 一种管理虚拟机的方法、装置及系统
US20080005288A1 (en) Storage system and data replication method
CN104503965A (zh) PostgreSQL高弹性的高可用及负载均衡实现方法
CN108880898B (zh) 主备容器系统切换方法及装置
CN101908980A (zh) 一种网管升级的方法及系统
CN103546914A (zh) 一种hss主备管理的方法及装置
CN105554130A (zh) 基于分布式存储系统的NameNode切换方法和切换装置
CN112380062A (zh) 一种基于系统备份点多次快速恢复系统的方法及系统
CN109450676B (zh) 一种交换机升级方法及装置、电子设备、计算机可读介质
US20210089379A1 (en) Computer system
CN112153134A (zh) 一种容灾云主机的容灾演练方法、装置、设备及存储介质
CN106470121A (zh) 虚拟交换单元vsu系统的升级方法、装置及vsu系统
CN108804129B (zh) 一种软件升级方法及装置
CN102467394A (zh) 多核热补丁的实现方法及系统
CN103019752B (zh) 应用程序的升级方法及装置
WO2015196692A1 (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN102710433B (zh) 一种在线升级处理方法、相关装置和系统
CN107005434B (zh) 一种同步虚拟网络功能vnf状态的方法、装置和设备
WO2017000586A1 (zh) 虚拟网元的升级方法、装置和计算机存储介质
CN102983997A (zh) 主控服务迁移方法及装置
CN108021408B (zh) 升级方法及装置
CN112306755B (zh) 一种基于微前端架构的高可用性实现方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 518000 the first floor of A1 building, Nanshan Zhiyuan 1001, Nanshan District Xue Yuan Avenue, Shenzhen, Guangdong.

Applicant after: SANGFOR TECHNOLOGIES Inc.

Address before: 518000 the first floor of A1 building, Nanshan Zhiyuan 1001, Nanshan District Xue Yuan Avenue, Shenzhen, Guangdong.

Applicant before: Sangfor Technologies Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Software update methods and systems

Effective date of registration: 20231212

Granted publication date: 20190521

Pledgee: Shenzhen Branch of China Merchants Bank Co.,Ltd.

Pledgor: SANGFOR TECHNOLOGIES Inc.

Registration number: Y2023980070863