一种在线更新内核的方法及装置、电子设备与流程

文档序号:12694580阅读:173来源:国知局
一种在线更新内核的方法及装置、电子设备与流程

本发明涉及电子技术,尤其涉及一种在线更新内核的方法及装置、电子设备。



背景技术:

服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理服务请求,因此一般来说服务器应具备承担服务并且保障服务的能力。目前服务器多采用对称多处理结构(SMP,Symmetric Multi-Processing),对称多处理结构是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。

针对SMP服务器,服务器在运行业务的过程中,期望可以动态更新内核,避免对业务造成影响。而目前现有技术中还不能实现动态更新内核,从而避免对业务造成影响。



技术实现要素:

有鉴于此,本发明实施例为解决现有技术中存在的问题而提供一种在线更新内核的方法及装置、电子设备,能够实现动态更新内核,从而避免对业务造成影响。

本发明实施例的技术方案是这样实现的:

第一方面,本发明实施例提供一种在线更新内核的方法,所述方法包括:

确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;

将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;

将新系统管理程序运行在空闲的第一处理器内核上;

将正在运行的第一业务处理机运行在所述新系统管理程序上。

第二方面,本发明实施例提供一种在线更新内核的装置,所述装置包括第一确定单元、第一处理单元、第一运行单元和第二运行单元,其中:

所述第一确定单元,用于确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;

所述第一处理单元,用于将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;

所述第一运行单元,用于将新系统管理程序运行在空闲的第一处理器内核上;

所述第二运行单元,用于将正在运行的第一业务处理机运行在所述新系统管理程序上。

第三方面,本发明实施例提供一种电子设备,所述电子设备包括多个处理器和运行在所述多个处理器上的虚拟机的调度系统,其中所述虚拟机的调度系统用于:

确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;

将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;

将新系统管理程序运行在空闲的第一处理器内核上;

将正在运行的第一业务处理机运行在所述新系统管理程序上。

本发明实施例提供一种在线更新内核的方法及装置、电子设备,其中,确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;将新系统管理程序运行在空闲的第一处理器内核上;将正在运行的第一业务处理机运行在所述新系统管理程序上;如此,能够实现动态更新内核,从而避免对业务造成影响。

附图说明

图1为本发明实施例在线更新内核的方法的实现流程示意图;

图2为本发明实施例在线更新内核的方法的实现流程示意图;

图3为本发明实施例在线更新内核的装置的组成结构示意图;

图4为本发明实施例在线更新内核的装置的组成结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

为了解决背景技术中的技术问题,本发明实施例提供一种在线更新内核的方法,该方法应用于电子设备,该方法所实现的功能可以通过电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括处理器和存储介质。

图1为本发明实施例在线更新内核的方法的实现流程示意图,如图1所示,该方法包括:

步骤S101,确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;

这里,所述电子设备在具体实施例的过程中可以为各种类型的具有信息处理能力的服务器设备,特别是指SMP服务器等。对称多处理结构(SMP,Symmetric Multi-Processing)是对称多处理机(CPU,Central Processing Unit)系统中最常见的一种,它在普通的商业、家庭应用之中并没有太多实际用途,但在专业制作,如三维、绘图等软件应用中获得了非常良好的性能表现,是组建廉价工作站的良好伙伴。随着用户应用水平的提高,只使用单个的处理器确实已经很难满足实际应用的需求,因而各服务器厂商纷纷通过采用对称多处理系统来解决这一矛盾。在市场上这类机型的处理器一般以4个或8个为主,有少数是16个处理器。但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对于多数的用户来说已经够用了。这种机器的好处在于它的使用方式和微机或工作站的区别不大,编程的变化相对来说比较小,原来用微机工作站编写的程序如果要移植到SMP机器上使用,改动起来也相对比较容易。SMP结构的机型可用性比较差,因为4个或8个处理器共享一个操作系统和一个存储器,一旦操作系统出现了问题,整个机器就完全瘫痪掉了。个人计算机(PC)服务器中最常见的对称多处理系统通常采用2路、4路、6路或8路处理器,SMP系统中最关键的技术是如何更好地解决多个处理器的相互通讯和协调问题。

一般来说,服务器上的系统管理程序会对应有一张调度列表(一般被称为内核的调度列表),调度列表中包括有该系统管理程序所调度的处理器内核的数量、所调度的处理器内核的标识(ID,Identity)等。

一般来说,CPU的概念从大到小依次是节点(Node)、插槽(Socket)、物理内核(Core,又称为核心)、逻辑处理器(Logical Processor)。随着多核技术的发展,将多个CPU封装在一起,这个封装被称为Socket。Socket中每个内核被称为Core。为了进一步提升CPU的处理能力,Intel又引入了超线程(HT,Hiper-Threading)技术,一个Core打开HT之后,在操作系统看来是两个核,当然这个核是逻辑上的概念,所以也称为Logical processor。本实施例中的处理器内核是指物理内核。

步骤S102,将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;

这里,在实现的过程中,步骤S102包括根据高级配置与电源接口(ACPI,Advanced Configuration and Power Interface)技术将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来,其中所述第一处理器内核是可以是被待更新的系统管理程序调度列表中的任一处理器内核。

依据高级配置与电源接口(ACPI,Advanced Configuration and Power Interface)定义的逻辑处理器空闲(logical processor idle)技术,可以将单个处理器内核从当前内核的调度列表中移除;而后从该CPU内核运行一个新的内核;将其余所有的CPU内核及业务依次挪到新的内核上去;最终释放掉旧的内核。

步骤S103,将新系统管理程序运行在空闲的第一处理器内核上;

这里,新系统管理程序用于更新之前的系统管理程序(即步骤S101中的被待更新的系统管理程序)。

步骤S104,将正在运行的第一业务处理机运行在所述新系统管理程序上。

这里,业务处理机在实现的过程中是指待处理的业务,一般情况下,系统管理程序上会运行一些虚拟机,这些虚拟机用于处理服务器的业务,所以,当在新系统管理程序建立在空闲的处理器内核上之后,就可以把原来旧系统管理程序上的业务处理器挪到新系统管理程序上来。

这里,第一业务处理机可以是待更新的系统管理程序上的任一业务处理机。

本发明实施例中,确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;将新系统管理程序运行在空闲的第一处理器内核上;将正在运行的第一业务处理机运行在所述新系统管理程序上;如此,能够实现动态更新内核,从而避免对业务造成影响。

实施例二

基于前述的实施例,本发明实施例提供一种在线更新内核的方法,该方法应用于电子设备,该方法所实现的功能可以通过电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括处理器和存储介质。该方法包括:

步骤S201,确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;

步骤S202,将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;

步骤S203,将新系统管理程序运行在空闲的第一处理器内核上;

步骤S204,将正在运行的第一业务处理机运行在所述新系统管理程序上。

这里,本实施例中的步骤S201至步骤S204分别对应于实施例一中的步骤S101至步骤S104,因此,本领域的技术人员可以参阅实施例一而理解上述的步骤S201至步骤S204。

步骤S205,从所述处理器内核集合中确定第二处理器内核,所述第二处理器内核与所述第一处理器内核不同;

步骤S206,将所述第二处理器内核从待更新的系统管理程序中空闲出来;

步骤S207,将空闲的第二处理器内核添加在所述新系统管理程序的调度列表中;

步骤S208,将第二业务处理机运行在所述新系统管理程序上,所述第二业务处理机与所述第一业务处理机不同。

在本发明的其他实施例中,所述方法还包括:

步骤S209,判断所述处理器内核集合中已移除的处理器内核的数量是否大于预设的第一阈值或者所述处理器内核集合中剩余的处理器内核是否小于预设的第二阈值,得到判断结果;

步骤S210a,如果所述判断结果表明所述已移除的处理器内核的数量大于预设的第一阈值或者所述剩余的处理器内核小于预设的第二阈值,将所述处理器内核集合中的其他处理器内核从所述待更新的系统管理程序中空闲出来,并将空闲出来的处理器内核添加在新系统管理程序的调度列表中,直到所述处理器内核集合中的所有处理器内核都添加在所述新系统管理程序的调度列表中;

步骤SS211a,将其他所有的业务处理机运行在所述新系统的管理程序上。

步骤S210b,如果所述判断结果表明所述已移除的处理器内核的数量大于预设的第一阈值或者所述剩余的处理器内核小于预设的第二阈值,从所述处理器内核集合中确定第三处理器内核,所述第三处理器内核与所述第一处理器内核和第二处理器内核均不同;

步骤S211b,将所述第三处理器内核从待更新的系统管理程序中空闲出来;并将空闲的第三处理器内核添加在所述新系统管理程序的调度列表中。

在本发明的其他实施例中,所述方法还包括:

步骤S212,待所述处理器内核集合中的所有处理器内核都添加在所述新系统管理程序的调度列表中,且其他所有的业务处理机运行在所述新系统的管理程序上后,释放所述待更新的系统管理程序。

基于前述的实施例,本发明实施例提供一种在线更新内核的方法,该方法应用于电子设备,该方法所实现的功能可以通过电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括处理器和存储介质。

本实施例中,假设服务器具有四个内核,分别为处理器内核0至3(CPU Core0至3),待更新的系统管理程序为A即Hypervisor A,新系统管理程序为B即Hypervisor B,待更新的系统管理程序上运行有3个业务处理机,即虚拟机0至2(VM 0至2)。图2为本发明实施例在线更新内核的方法的实现流程示意图,如图2所示,该方法包括:

第一阶段:所有的虚拟机都运行在系统管理程序(Hypervisor)A上;而所有的处理器核都在系统管理程序A的调度列表中;

第二阶段:该阶段包括3个步骤,分别为:

步骤S21,CPU内核3从系统管理程序A进行热移除;

步骤S22,系统管理程序B开始运行在CPU核3上;

步骤S23,虚拟机2动态迁移到系统管理程序B上。

这里,所述热移除就是服务器还在运行的过程中,如果服务器被关机了,如果移除的话,称为冷移除。

第三阶段,该阶段包括5个步骤,分别为:

步骤S31,CPU核2从系统管理程序A进行热移除到系统管理程序B上;

步骤S32,虚拟机1动态迁移到系统管理程序B上。

步骤S33,CPU核1从系统管理程序A进行热移除到系统管理程序B上;

步骤S34,虚拟机0动态迁移到系统管理程序B上。

步骤S35,系统管理程序A释放掉;

步骤S36,CPU核0从系统管理程序A进行热移除到系统管理程序B上;

第四阶段:所有的虚拟机都运行在系统管理程序(Hypervisor)B上;所有的处理器核都在系统管理程序B的调度列表中。

基于前述的实施例,本发明实施例提供一种在线更新内核的装置,该装置所包括的各单元,都可以通过电子设备中的处理器来实现,当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。

图3为本发明实施例在线更新内核的装置的组成结构示意图,如图3所示,该装置300包括第一确定单元301、第一处理单元302、第一运行单元303和第二运行单元304,其中:

所述第一确定单元301,用于确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;

所述第一处理单元302,用于将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;

所述第一运行单元303,用于将新系统管理程序运行在空闲的第一处理器内核上;

所述第二运行单元304,用于将正在运行的第一业务处理机运行在所述新系统管理程序上。

基于前述的实施例,本发明实施例提供一种在线更新内核的装置,该装置所包括的各单元,都可以通过电子设备中的处理器来实现,当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。

图4为本发明实施例在线更新内核的装置的组成结构示意图,如图4所示,该装置300包括第一确定单元301、第一处理单元302、第一运行单元303、第二运行单元304、第二确定单元305、第二处理单元306、第一添加单元307和第三运行单元308,其中:

所述第一确定单元301,用于确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;

所述第一处理单元302,用于将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;

所述第一运行单元303,用于将新系统管理程序运行在空闲的第一处理器内核上;

所述第二运行单元304,用于将正在运行的第一业务处理机运行在所述新系统管理程序上;

所述第二确定单元305,用于从所述处理器内核集合中确定第二处理器内核,所述第二处理器内核与所述第一处理器内核不同;

所述第二处理单元306,用于将所述第二处理器内核从待更新的系统管理程序中空闲出来;

所述第一添加单元307,用于将空闲的第二处理器内核添加在所述新系统管理程序的调度列表中;

所述第三运行单元308,用于将第二业务处理机运行在所述新系统管理程序上,所述第二业务处理机与所述第一业务处理机不同。

在本发明的其他实施例中,所述装置还包括判断单元、第三处理单元、第四运行单元、第四处理单元、第五处理单元和第二添加单元,其中:

所述判断单元,用于判断所述处理器内核集合中已移除的处理器内核的数量是否大于预设的第一阈值或者所述处理器内核集合中剩余的处理器内核是否小于预设的第二阈值,得到判断结果;

所述第三处理单元,用于如果所述判断结果表明所述已移除的处理器内核的数量大于预设的第一阈值或者所述剩余的处理器内核小于预设的第二阈值,将所述处理器内核集合中的其他处理器内核从所述待更新的系统管理程序中空闲出来,并将空闲出来的处理器内核添加在新系统管理程序的调度列表中,直到所述处理器内核集合中的所有处理器内核都添加在所述新系统管理程序的调度列表中;

所述第四运行单元,用于将其他所有的业务处理机运行在所述新系统的管理程序上;

所述第四处理单元,用于如果所述判断结果表明所述已移除的处理器内核的数量大于预设的第一阈值或者所述剩余的处理器内核小于预设的第二阈值,从所述处理器内核集合中确定第三处理器内核,所述第三处理器内核与所述第一处理器内核和第二处理器内核均不同;

所述第五处理单元,用于将所述第三处理器内核从待更新的系统管理程序中空闲出来;

所述第二添加单元,用于将空闲的第三处理器内核添加在所述新系统管理程序的调度列表中。

在本发明的其他实施例中,所述装置还包括释放单元,用于待所述处理器内核集合中的所有处理器内核都添加在所述新系统管理程序的调度列表中,且其他所有的业务处理机运行在所述新系统的管理程序上后,释放所述待更新的系统管理程序。

本发明实施例中,如果以软件功能模块的形式实现上述的在线更新内核的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

相应地,本发明实施例再提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,该计算机可执行指令用于执行本发明实施例中在线更新内核的方法。

相应地,本发明实施例再提供一种电子设备,所述电子设备包括多个处理器和运行在所述多个处理器上的虚拟机的调度系统,其中所述虚拟机的调度系统用于:

确定处理器内核集合,所述处理器内核集合包括服务器上被待更新的系统管理程序所调度的处理器内核;

将所述处理器内核集合中第一处理器内核从待更新的系统管理程序中空闲出来;

将新系统管理程序运行在空闲的第一处理器内核上;

将正在运行的第一业务处理机运行在所述新系统管理程序上。

在本发明的其他实施例中,所述虚拟机的调度系统还用于:

从所述处理器内核集合中确定第二处理器内核,所述第二处理器内核与所述第一处理器内核不同;

将所述第二处理器内核从待更新的系统管理程序中空闲出来;

将空闲的第二处理器内核添加在所述新系统管理程序的调度列表中;

将第二业务处理机运行在所述新系统管理程序上,所述第二业务处理机与所述第一业务处理机不同。

在本发明的其他实施例中,所述虚拟机的调度系统还用于:

判断所述处理器内核集合中已移除的处理器内核的数量是否大于预设的第一阈值或者所述处理器内核集合中剩余的处理器内核是否小于预设的第二阈值,得到判断结果;

如果所述判断结果表明所述已移除的处理器内核的数量大于预设的第一阈值或者所述剩余的处理器内核小于预设的第二阈值,将所述处理器内核集合中的其他处理器内核从所述待更新的系统管理程序中空闲出来,并将空闲出来的处理器内核添加在新系统管理程序的调度列表中,直到所述处理器内核集合中的所有处理器内核都添加在所述新系统管理程序的调度列表中;

将其他所有的业务处理机运行在所述新系统的管理程序上。

在本发明的其他实施例中,所述虚拟机的调度系统还用于:

如果所述判断结果表明所述已移除的处理器内核的数量大于预设的第一阈值或者所述剩余的处理器内核小于预设的第二阈值,从所述处理器内核集合中确定第三处理器内核,所述第三处理器内核与所述第一处理器内核和第二处理器内核均不同;

将所述第三处理器内核从待更新的系统管理程序中空闲出来;

将空闲的第三处理器内核添加在所述新系统管理程序的调度列表中。

在本发明的其他实施例中,所述虚拟机的调度系统还用于:

待所述处理器内核集合中的所有处理器内核都添加在所述新系统管理程序的调度列表中,且其他所有的业务处理机运行在所述新系统的管理程序上后,释放所述待更新的系统管理程序。

这里需要指出的是:以上电子设备实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果,因此不做赘述。对于本发明电子设备实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解,为节约篇幅,这里不再赘述。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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