CN114115703A - 裸金属服务器在线迁移方法以及*** - Google Patents

裸金属服务器在线迁移方法以及*** Download PDF

Info

Publication number
CN114115703A
CN114115703A CN202011337002.1A CN202011337002A CN114115703A CN 114115703 A CN114115703 A CN 114115703A CN 202011337002 A CN202011337002 A CN 202011337002A CN 114115703 A CN114115703 A CN 114115703A
Authority
CN
China
Prior art keywords
hardware card
bare metal
memory
metal server
bms
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.)
Pending
Application number
CN202011337002.1A
Other languages
English (en)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing 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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to PCT/CN2021/092962 priority Critical patent/WO2022041839A1/zh
Priority to EP21859684.9A priority patent/EP4195021A4/en
Publication of CN114115703A publication Critical patent/CN114115703A/zh
Priority to US18/175,853 priority patent/US20230214245A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请提供了一种裸金属服务器在线迁移方法以及***。其中,所述方法包括:第一硬件卡接收针对第一裸金属服务器的迁移命令,其中所述第一硬件卡插置于所述第一裸金属服务器;所述第一硬件卡根据所述迁移命令通知所述第一裸金属服务器启动所述第一裸金属服务器中的虚拟机管理器,所述虚拟机管理器记录所述第一裸金属服务器产生的针对所述第一裸金属服务器的内存的第一内存脏页位置信息,并发送所述第一内存脏页位置信息至所述第一硬件卡;所述第一硬件卡根据所述第一内存脏页位置信息将所述第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。上述方法能够对BMS实现在线迁移。

Description

裸金属服务器在线迁移方法以及***
技术领域
本申请涉及服务器领域,尤其涉及一种裸金属服务器在线迁移方法以及***。
背景技术
裸金属服务器(bare metal server,BMS)是传统物理服务器的升级版,既具备传统物理服务器卓越性能,又具备云主机的便捷管理平台,为租户带来卓越的计算性能,能满足核心应用场景,例如,高性能计算负载、大数据、分布式数据库、需要一致的可预测的性能型业务场景,对高性能及稳定性的需求。
目前,BMS无法实现在线迁移,但是,在业务不中断的情况下实现均衡负载以及硬件故障提前规避等等都需要BMS使用在线迁移才能实现,因此,BMS实现在线迁移具有重大的意义。
发明内容
为了解决上述问题,本申请提供了一种裸金属服务器在线迁移方法以及***,能够对BMS实现在线热迁移。
第一方面,提供了一种裸金属服务器在线迁移方法,该方法包括:
第一硬件卡接收针对第一裸金属服务器的迁移命令,其中,该第一硬件卡插置于该第一裸金属服务器,该第一硬件卡根据该迁移命令通知该第一裸金属服务器启动虚拟机管理器,该虚拟机管理器记录该第一裸金属服务器产生的针对该第一裸金属服务器的内存的第一内存脏页位置信息,并发送该第一内存脏页位置信息至该第一硬件卡,该第一硬件卡根据该第一内存脏页位置信息将该第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。
上述方案中,第一硬件卡在接收到迁移命令之后,通知第一裸金属服务器启动虚拟机管理器对第一裸金属服务器产生的针对该第一裸金属服务器的内存的第一内存脏页位置信息进行记录,从而将该第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器,能够实现BMS实现在线迁移,并且,根据第一内存脏页位置信息在线迁移第一裸金属服务器的内存脏页的工作由第一硬件卡承担,能够有效地减少第一裸金属服务器的负担。
在一些可能的设计中,该第一硬件卡接收针对第一裸金属服务器的在线迁移命令之后,该方法包括:该第一硬件卡记录该第一硬件卡产生的针对该第一裸金属服务器的内存的第二内存脏页位置信息。
上述方案中,第一硬件卡还可以记录该第一硬件卡产生的针对该第一裸金属服务器的内存的第二内存脏页位置信息,从而根据第二内存脏页位置信息发送第二内存脏页。
在一些场景中,该第一裸金属服务器的内存可以被第一硬件卡以直接内存访问(Direct Memory Acess,DMA)方式写入数据,该方式对第一裸金属服务器的内存数据进行的修改不会被第一裸金属服务器的虚拟机管理器监控到,因此需由第一硬件卡记录第二内存脏页位置信息,以便于第一硬件卡将由于DMA而发生修改的内存数据在线迁移到作为目标端的第二裸金属服务器。
在一些可能的设计中,该第一硬件卡根据该第一内存脏页位置信息将该第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器,包括:该第一硬件卡根据该第一内存脏页位置信息从该内存获取产生脏页的至少一个第一内存页,根据该第二内存脏页位置信息从该内存获取产生脏页的至少一个第二内存页,将该至少一个第一内存页和该至少一个第二内存页发送至第二硬件卡,其中该第二硬件卡与该第一硬件卡网络连接,该第二硬件卡根据该至少一个第一内存页和该至少一个第二内存页设置第二裸金属服务器的内存,其中该第二硬件卡插置于该第二裸金属服务器。
第一硬件卡通过第一内存脏页位置信息和第二内存脏页位置信息分别从第一裸金属服务器的内存获取对应的内存页,该些内存页是内存脏页,即数据发生写入或修改的内存页,第一硬件卡通过网络发送该些内存页至第二硬件卡,从而使得第二硬件卡根据该些内存页设置第二裸金属服务器的内存,使得第一裸金属服务器的内存变化可实时同步到第二裸金属服务器的内存中,从而实现裸金属服务器的在线迁移。
在一些可能的设计中,将该至少一个第一内存页和该至少一个第二内存页发送至第二硬件卡之后,该方法包括:该第一硬件卡获取该第一裸金属服务器的I/O设备的第一I/O设备状态,并获取该第一硬件卡的I/O设备的第二I/O设备状态,将该第一I/O设备状态和该第二I/O设备状态发送至该第二硬件卡;该第二硬件卡根据该第二I/O设备状态设置该第二硬件卡的I/O设备,并发送该第一I/O设备状态至该第二裸金属服务器,以使得该第二裸金属服务器根据该第一I/O设备状态设置该第二裸金属服务器的I/O设备。
上述方案中,该第一硬件卡可以将I/O设备状态发送至该第二硬件卡,从而在该第二硬件卡上还原I/O设备状态。
在一些可能的设计中,该虚拟机管理器记录该第一裸金属服务器产生的针对该第一裸金属服务器的内存的第一内存脏页位置信息之前,该方法还包括:该虚拟机管理器将该第一裸金属服务器的全量内存页发送至该第一硬件卡,该第一硬件卡将该全量内存页发送至该第二硬件卡,该第二硬件卡根据该全量内存页初始化该第二裸金属服务器的内存。
在一些可能的设计中,在该方法还包括:该第二硬件卡接收该迁移命令,该第二硬件卡根据该迁移命令挂载该第一硬件卡挂载的网络磁盘并通知该第二裸金属服务器启动该第二裸金属服务器中的虚拟机管理器。
在一些可能的设计中,在该方法还包括:该第一硬件卡发送该源BMS的网络配置信息至该第二硬件卡,该第二硬件卡根据该网络配置信息进行网络配置。
其中,源BMS的网络配置信息包括源BMS的IP地址,带宽包(用于指示源BMS的上下行流量限速配置),等网络相关信息。
在一些可能的设计中,该第一硬件卡发送该源BMS的网络配置信息至该第二硬件卡之后,该方法还包括:该第一硬件卡通知云管理平台发该第一裸金属服务器迁移完毕。
在一些可能的设计中,该第一硬件卡内设置有共享内存,该共享内存能够被该第一裸金属服务器的虚拟机管理器访问。
在一些可能的设计中,该第一硬件卡根据该迁移命令启动虚拟机管理器,包括:该第一硬件卡根据该迁移命令产生中断信号,该第一裸金属服务器接收该中断信号,根据该中断信号启动该第一裸金属服务器的虚拟机管理器。
在一些可能的设计中,该中断信号为X86处理器的***管理中断,或者,该中断信号为Arm处理器的安全监视调用SMC或者安全中断。
第二方面,提供了一种裸金属服务器在线迁移***,该裸金属服务器在线迁移***包括:第一裸金属服务器、第一硬件卡、第二裸金属服务器以及第二硬件卡,第一硬件卡用于接收针对第一裸金属服务器的迁移命令,其中该第一硬件卡插置于该第一裸金属服务器,该第一硬件卡用于根据该迁移命令通知该第一裸金属服务器启动虚拟机管理器,该虚拟机管理器记录该第一裸金属服务器产生的针对该第一裸金属服务器的内存的第一内存脏页位置信息,并发送该第一内存脏页位置信息至该第一硬件卡,该第一硬件卡用于根据该第一内存脏页位置信息将该第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。
在一些可能的设计中,该第一硬件卡用于记录该第一硬件卡产生的针对该第一裸金属服务器的内存的第二内存脏页位置信息。
在一些可能的设计中,该第一硬件卡用于根据该第一内存脏页位置信息从该内存获取产生脏页的至少一个第一内存页,根据该第二内存脏页位置信息从该内存获取产生脏页的至少一个第二内存页,将该至少一个第一内存页和该至少一个第二内存页发送至第二硬件卡,其中该第二硬件卡与该第一硬件卡网络连接,该第二硬件卡用于根据该至少一个第一内存页和该至少一个第二内存页设置第二裸金属服务器的内存,其中该第二硬件卡插置于该第二裸金属服务器。
在一些可能的设计中,该第一硬件卡用于获取该第一裸金属服务器的I/O设备的第一I/O设备状态,并获取该第一硬件卡的I/O设备的第二I/O设备状态,将该第一I/O设备状态和该第二I/O设备状态发送至该第二硬件卡;该第二硬件卡用于根据该第二I/O设备状态设置该第二硬件卡的I/O设备,并发送该第一I/O设备状态至该第二裸金属服务器,以使得该第二裸金属服务器根据该第一I/O设备状态设置该第二裸金属服务器的I/O设备。
在一些可能的设计中,该第一裸金属服务器用于将该第一裸金属服务器的全量内存页发送至该第一硬件卡,该第一硬件卡用于将该全量内存页发送至该第二硬件卡,该第二硬件卡用于根据该全量内存页初始化该第二裸金属服务器的内存。
在一些可能的设计中,该第二硬件卡接收该迁移命令;该第二硬件卡根据该迁移命令挂载该第一硬件卡挂载的网络磁盘并通知该第二裸金属服务器启动该第二裸金属服务器中的虚拟机管理器。
在一些可能的设计中,在该方法还包括:该第一硬件卡发送该源BMS的网络配置信息至该第二硬件卡;该第二硬件卡根据该网络配置信息进行网络配置。
在一些可能的设计中,该第一硬件卡用于通知云管理平台发该第一裸金属服务器迁移完毕。
在一些可能的设计中,该第一硬件卡内设置有共享内存,该共享内存供该第一裸金属服务器的虚拟机管理器访问。
在一些可能的设计中,该第一硬件卡用于根据该迁移命令产生中断信号,该第一裸金属服务器用于接收该中断信号,根据该中断信号启动该第一裸金属服务器的虚拟机管理器。
在一些可能的设计中,该中断信号为X86处理器的***管理中断,或者,该中断信号为Arm处理器的安全监视调用SMC或者安全中断。
第三方面,提供了一种裸金属服务器***,该裸金属服务器***包括第一裸金属服务器以及第一硬件卡,第一硬件卡用于接收针对第一裸金属服务器的迁移命令,其中该第一硬件卡插置于该第一裸金属服务器,该第一硬件卡用于根据该迁移命令通知该第一裸金属服务器启动虚拟机管理器,该虚拟机管理器记录该第一裸金属服务器产生的针对该第一裸金属服务器的内存的第一内存脏页位置信息,并发送该第一内存脏页位置信息至该第一硬件卡,该第一硬件卡用于根据该第一内存脏页位置信息将该第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。
在一些可能的设计中,该第一硬件卡用于记录该第一硬件卡产生的针对该第一裸金属服务器的内存的第二内存脏页位置信息。
在一些可能的设计中,该第一硬件卡用于通知云管理平台发该第一裸金属服务器迁移完毕。
在一些可能的设计中,该第一硬件卡内设置有共享内存,该共享内存供该第一裸金属服务器的虚拟机管理器访问。
第四方面,提供了一种硬件卡,包括动态配置模块以及智能转移模块,
该动态配置模块用于接收针对第一裸金属服务器的迁移命令,其中该第一硬件卡插置于该第一裸金属服务器,该智能转移模块用于根据该迁移命令通知该第一裸金属服务器启动虚拟机管理器,该虚拟机管理器记录该第一裸金属服务器产生的针对该第一裸金属服务器的内存的第一内存脏页位置信息,并发送该第一内存脏页位置信息至该第一硬件卡,该智能转移模块用于根据该第一内存脏页位置信息将该第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。
第五方面,提供了一种硬件卡,包括:处理器以及存储器,该处理器执行该存储器中的程序,从而执行如第一方面第一项或者第二项该的方法。
第六方面,提供了一种计算机可读存储介质,包括指令,当该指令在第一硬件卡上运行时,使得该第一硬件卡执行如第一方面第一项或者第二项该的方法。
第七方面,提供了一种计算机可读存储介质,包括指令,当该指令在第一硬件卡上运行时,使得该第一硬件卡执行如第一方面第一项或者第二项该的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请提供的一种BMS在线迁移***的结构示意图;
图2是本申请实施例提供的裸机状态的BMS的结构示意图;
图3是本申请实施例提供的虚拟化状态的BMS的结构示意图;
图4是本申请实施例提供的一种BMS在线迁移***的结构示意图;
图5是本申请提供的一种源BMS停用第一VMM的方法交互流程图;
图6是本申请提供的一种源硬件卡和目标硬件卡之间传输在线迁移内存脏页的示意图;
图7是本申请提供的一种源BMS激活第一VMM的方法交互流程图;
图8是本申请提供的另一种源BMS激活第一VMM的方法交互流程图;
图9是本申请提出的一种硬件卡的结构示意图;
图10是本申请提出的一种BMS的结构示意图;
图11是本申请提出的另一种BMS的结构示意图。
具体实施方式
名词解释:
云管理平台:云管理平台提供访问界面,访问界面列出公有云提供的云服务,租户通过浏览器或者其他客户端可访问云管理平台,并在云管理平台付费以购买对应的云服务,在购买云服务之后,云管理平台向租户提供访问云服务的权限,使得租户可远程访问云服务并进行相应配置。
公有云:公有云通常指云提供商为租户(例如租户)提供的云服务,租户可通过因特网(internet)访问云管理平台,在云管理平台购买和使用公有云提供的云服务,公有云的核心属性是共享资源服务,公有云可通过公有云服务提供商的数据中心实现,该数据中心设置有多台物理服务器,多台物理服务器提供公服务所需的计算资源、网络资源以及存储资源。
裸金属服务器(bear metal server,BMS):是兼具虚拟机弹性和物理机性能的计算类服务,提供专属的云上物理服务器,为核心数据库、关键应用***、高性能计算、大数据等业务提供卓越的计算性能以及数据安全。租户在云管理平台付费购买BMS的使用权,云管理平台提供远程登录BMS,在BMS安装所需的操作***,并在操作***中设置应用,通过运行应用提供专属于租户的服务,而该服务是基于BMS提供的计算资源、网络资源和存储资源实现。
具体地,BMS为公有云服务提供商的数据中心中的一台物理服务器,该物理服务器插置有硬件卡,硬件卡可以与云管理平台进行管控面的数据通信,并与物理服务器进行通信,使得云管理平台可以通过硬件卡管理物理服务器,如为物理服务器安装操作***,开放物理服务器的远程登录服务,让租户远程登录物理服务器。
其中,管控面在硬件卡实现,可以使得BMS无需处理与租户自己的业务无关的管控面的工作,从而让租户可以完全地使用BMS运行自己的应用,因此可以进一步保证租户的消费者权益。
举例而言,应用可以例如为网页服务软件,BMS上安装网页服务软件后,租户将需发布到外网的网页上传到BMS,BMS运行网页服务软件,网页服务软件通过开放80端口或8080端口将租户的网页共享到外网,外网的租户通过浏览器可访问与网页服务软件绑定的域名可访问到BMS上的网页,其中,网页在BMS的存储空间、与浏览器或其他访问BMS的设备交互涉及的上下行网络流量以及运行网页服务软件所需的CPU和内存均由BMS提供,租户可以通过在云管理平台购买不同规格的BMS获取不同的计算资源、网络资源以及存储资源。在BMS上安装的应用也可以数据库软件或其他租户想配置的应用,本发明实施例对此不作限定。
内存脏页:源BMS中需要同步到目标BMS的内存页,从而保证源BMS和目标BMS的内存的一致性。
在线迁移:又称为实时迁移(live migration)或热迁移。在本发明实施例中,是指在公有云服务提供商的数据中心中,作为源BMS的物理服务器需要进行固件升级、重启、停电维护或其他影响应用运行的情况时,云管理平台需在数据中心中选择另一个作为目标BMS的物理服务器,该物理服务器的规格与作为源BMS的物理服务器的规格相同,并将源BMS的内存页复制至目标BMS中、将源BMS的网络磁盘挂载到目标BMS中,从而使得目标BMS可运行源BMS的应用。
具体地,在线迁移内存页的过程中,在保证源BMS的应用正常运行的同时,将源BMS的内存页实时迁移到目标BMS。为了保证迁移过程中BMS应用的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,应用在源BMS运行,当内存页迁移进行到一定阶段,目标BMS的内存页和源BMS的内存页完全一致(或非常接近完全一致,如大于99%的内存页相同),经过一个非常短暂的切换(如秒级以内),云管理平台将租户对源BMS的控制权转移到目标BMS,BMS服务在目标BMS上继续运行。对于BMS服务本身而言,由于切换的时间非常短暂,租户感觉不到BMS已经更换,因而迁移过程对租户是透明的。因此,在线迁移适用于对业务连贯性要求很高的场景。
虚拟机管理器(virtual machine manager,VMM):通过操作***内核实现,虚拟机管理器可管理和维护操作***创建的虚拟机。
以下对本申请涉及的***管理模式(system management mode,SMM)以及信任区(trustzone)的定义进行详细的介绍。
SMM是一种x86处理器的执行模式,拥有最高的特权等级,因此,在SMM下可以执行各种特权指令和输入/输出(input/output,I/O)操作。在处理器的SMM中断引脚(SMMinterrupt pin)被激活或者从高级可编程中断控制器(advanced programming interruptcontrolle,APIC)收到***管理中断(system management interrupt,SMI)的情况下,处理器将进入SMM。在进入SMM之后,处理器停止当前操作***的运行,将当前操作***的CPU寄存器状态保存到安全的***管理内存(system management RAM,SMRAM),关闭其他中断和异常,在SMRAM中执行SMI中断处理程序指定的代码。SMM对操作***是透明的,即,操作***并不清楚处理器何时进入SMM,SMM模式下进行过何种操作,以及,处理器何时退出SMM。其中,SMI是优先级别比较高的中断,例如,SMI的优先级别为3,因此,可以屏蔽大部分的中断。在接收到RSM指令之后,处理器将退出SMM。在退出SMM之后,停止在SMRAM中执行SMI中断处理程序指定的代码,将当前操作***的CPU寄存器状态从SMRAM中读取并还原,启动其他中断和异常。
EL3模式是一种ARM处理器的执行模式,拥有最高的特权等级,因此,在EL3模式下可以执行各种特权指令和I/O操作。在处理器的接收到安全监视调用(secure monitorcall,SMC)或者安全中断(secure interrupt)的情况下,处理器将进入EL3模式。在进入EL3模式之后,处理器停止当前操作***的运行,将当前操作***的CPU寄存器状态保存到安全内存区(secure memery region,SMR),关闭其他中断和异常,在SMR中执行SMC异常处理逻辑指定的代码。在接收到ERET指令之后,处理器将退出EL3模式。在退出EL3模式之后,停止在SMR中执行SMC异常处理程序指定的代码,将当前操作***的CPU寄存器状态从SMR中读取并还原,启动其他中断和异常。EL3模式对操作***是透明的,即,操作***并不清楚处理器何时进入EL3模式,EL3模式下进行过何种操作,以及,处理器何时退出EL3模式。
参见图1,图1是本申请提供的一种BMS在线迁移***的结构示意图。如图1所示,本申请的在线迁移***,包括:云管理平台110以及多个BMS***。其中,BMS***可以包括BMS***120-1、BMS***120-2、BMS***120-3以及BMS***120-4。BMS***120-1可以包括BMS121-1以及硬件卡122-1。BMS***120-2可以包括BMS 121-2以及硬件卡122-2。BMS***120-3可以包括BMS 121-3以及硬件卡122-3。BMS***120-4可以包括BMS 121-4以及硬件卡122-4。云管理平台110可以通过网络连接各个硬件卡,硬件卡可以通过预设接口,例如,高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)接口连接到BMS上。不同硬件卡和之间可以通过网络进行通信。其中,在线迁移***可设置在公有云服务提供商的数据中心中。
云管理平台110用于对多个BMS进行管理。
BMS是独立的物理服务器,租户在云管理平台110购买BMS,云管理平台110根据购买信息发送管理信息至插置到所购买的BMS中的硬件卡,该硬件卡根据管理信息设置该BMS,例如根据租户需求安装对应的操作***,并开放远程登录服务器,使得租户可远程登陆到该BMS,并实现对BMS的物理资源(包括计算资源、网络资源以及存储资源)的完全独占。
在本发明实施例中,在进行在线迁移前后,通过硬件卡的控制,BMS的操作***可以在裸机状态以及虚拟化状态之间切换。
图2左边部分所示为BMS处于裸机状态的结构示意图。该裸机状态的BMS可以包括硬件层和软件层,软件层包括客户操作***,硬件层包括第一处理器210、第一内存220、根复合体(root complex,RC)芯片230等硬件进行举例说明。在其他实施例中,处理器210的个数和虚拟机的个数还可以更多或更少。
硬件层可以包括一个或者多个第一处理器210,第一内存220以及RC芯片230。其中,第一处理器210可以是中央处理器(central processing unit,CPU)。CPU可以采用复杂指令集计算(complex instruction set computer,CISC)架构(例如,x86架构)、精简指令集计算机(reduced instruction set computing,RISC)架构(例如,MIPS(microprocessorwithout interlocked piped stages)架构)等等。
第一内存220可以存储操作***以及虚拟机监控程序(virtual machinemonitor,VMM)等的代码。客户操作***可以是租户自行安装的***。VMM是可选的,即,VMM在不进行在线迁移时并不工作,仅在在线迁移时工作。RC芯片230包括一个或者多个PCIe接口,用于将第一处理器210和第一内存220组成的子***连接到硬件卡。RC芯片可以在分立设备实现,也可以在第一处理器210中集成。第一处理单元还包括数字信号处理器(digitalsignal processor,DSP),图形处理器(graphics processing unit,GPU)和神经网络处理器(neural-network processing unit,NPU)等等。当第一处理器210中的处理器的数量为多个时,第一处理器210中的处理器可以采用同构结构,也可以采用异构结构,常见的异构结构可以是CPU+DSP,CPU+NPU,CPU+GPU,CPU+DSP+GPU等等。
软件层包括:客户操作***。可以理解,在进行热迁移之前,或者,在进行热迁移之后都不需要运行VMM,从而有效减少BMS的资源的消耗。
硬件卡可以是特殊应用集成电路(application specific integrated circuit,ASIC)板卡,或者,现场可编程逻辑门阵列(field programmable gate array,FPGA)板卡等等。如图2以及图3中右边所示,硬件卡可以包括:一个或者多个第二处理器311、端点(endpoint,EP)EP芯片313以及网卡314。
第二处理器311包括一个或多个第二处理器311,例如,第二处理器311可以是数字信号处理器(digital signal processor,DSP),中央处理器(central processing unit,CPU)和/或神经网络处理器(neural-network processing unit,NPU)等。第二处理器311的处理能力可以弱于第一处理器210的处理能力。
EP芯片为PCIe规范中定义的硬件接口,其作为硬件卡的外设接口,负责向BMS发送PCIe消息,或者还可以接收BMS发送的PCIe消息。
本申请实施例对RC芯片和EP芯片的具体实现不做限定,只要遵循PCIe规范实现的任何RC芯片以及EP芯片均可使用。
需要说明的是,硬件卡还可以通过网卡与网络磁盘连接,以便于硬件卡将BMS中下发的IO请求转发给网络磁盘进行处理。
硬件卡的软件层包括I/O处理模块、智能转移模块以及动态配置模块。这里,I/O处理模块可以实现设备状态保存恢复以及对硬件卡写入第一内存220的数据进行内存脏页跟踪。BMS的RC芯片和硬件卡的EP芯片可通过PCIE接口进行连接。后续将会对I/O处理模块、智能转移模块以及动态配置模块的功能进行详细的介绍,此处暂不展开描述。
BMS在裸机状态中,其客户操作***直接运行在硬件上。
第一处理器210可以包括一个或多个物理核(本申请中有时将物理核简称为核)。“物理核”在本申请中代表最小处理单元。本实施例中每个第一处理器210具有两个物理核:核0和核1,以及多个寄存器。其中,寄存器可以是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址等等OS状态数据,例如,指令寄存器(IR)、程序计数器(PC)以及累加器(ACC)等等。在其他一些实施例中,第一处理器210包含的核的数量可以更多或更少,各个第一处理器210包含的核的个数也可以不同。第一内存220用于保存第一处理器210刚用过或循环使用的指令或数据,例如,高速缓冲存储器等等。如果第一处理器210需要再次使用该指令或数据,可从第一内存220中直接调用,减少了第一处理器210的等待时间,因而提高了***的效率。第一内存220可以存储操作***以及虚拟机监控程序(virtual machinemonitor,VMM)等的代码。客户操作***可以是租户自行安装的***。VMM是可选的,即,VMM在不进行在线迁移时并不工作,仅在在线迁移时工作。RC芯片230包括一个或者多个PCIe接口,用于将第一处理器210和第一内存220组成的子***连接到硬件卡。RC芯片可以在分立设备实现,也可以在第一处理器210中集成。第一处理单元还包括数字信号处理器(digitalsignal processor,DSP),图形处理器(graphics processing unit,GPU)和神经网络处理器(neural-network processing unit,NPU)等等。
以下请参见图3,图3左边部分所示为BMS处于虚拟化状态的结构示意图,图3与图2相比在BMS的软件部分新增VMM,VMM在其他虚拟化架构中相当于hypervisor或其他类型的虚拟监控装置。VMM可以部署在客户操作***内部,也可以和客户操作***分开部署。VMM负责管理在其上运行的虚拟机(数量不限)。VMM作为虚拟监控装置,负责调度各个虚拟机的虚拟处理器。例如,基于内核的虚拟机(kernel-based virtual machine,KVM)就是一种典型的VMM。VMM对虚拟处理器的调度包括换入虚拟处理器和换出虚拟处理器。首先,VMM创建并初始化一个虚拟机的对象,然后为该虚拟机创建三个虚拟处理器。当一个虚拟机包含多个虚拟处理器时,一般会有一个为主虚拟处理器,其他为从属虚拟处理器。虚拟处理器被创建之初还没有与某个物理核关联。VMM会依据策略将某个虚拟处理器调度到某个物理核上,这称为该虚拟处理器被换入;VMM将该虚拟处理器挂起或从该物理核上迁移出去,称为该虚拟出处理器被换出。在绑核的场景下,一个虚拟处理器每次被换入时都被调度到相同的核上。在非绑核的场景下,VMM可以在调度之前根据***当前的运行状况和/或调度算法确定将该虚拟处理器调度到哪个核上。
需要说明的是,一个虚拟处理器被换入之后可以不立即陷入运行,在虚拟处理器被换入且还没有陷入之前,宿主机(具体为VMM)还可以实现一些对该虚拟处理器的配置,然后该虚拟处理器再陷入客户模式。
进一步,VMM还具有脏页跟踪功能,具体地,在VMM启动之后,软件层的客户操作***需经过VMM访问硬件,相当于客户操作***作为一个虚拟机的操作***被VMM所管理,当客户操作***中的应用运行时,会使得第一处理器210写入数据到第一内存220,VMM可监控到该写入动作,并记录第一内存220中被写入的内存页的地址,从而实现脏页跟踪功能。
为了能够更清楚地看出源BMS121-1、源硬件卡122-1、目标硬件卡122-4以及目标BMS121-4之间的连接关系,可以参见图4。图4示出了源BMS121-1的RC芯片可以通过PCIE接口连接源硬件卡122-1的EP芯片,源硬件卡122-1的网卡可以通过网络连接目标硬件卡122-4的网卡。目标硬件卡122-4的EP芯片通过PCIE连接目标BMS121-4的RC芯片。源硬件卡122-1的网卡还可以连接存储器,存储器还可以连接目标硬件卡122-4网卡。上述BMS在线迁移***可以在源硬件卡122-1和目标硬件卡122-4的协助下实现源BMS121-1至目标BMS121-4的在线迁移。这里,在线迁移包括BMS在线迁移、存储资源的在线迁移以及网络环境的在线迁移。
源BMS和目标BMS之间进行在线迁移都必须要有源BMS的第一VMM,以及目标BMS的第二VMM的协助。但是,第一VMM以及第二VMM需要在平时是处于非工作状态,在进行在线迁移时,才激活第一VMM和第二VMM进入工作状态,以减少对源BMS以及目标BMS的资源的消耗。源BMS启动之后,需要启动第一VMM进行初始化,但是,不能让第一VMM一直处于工作状态,因此,需要将第一VMM进行停用。在需要进行在线迁移的时候,激活第一VMM进入工作状态。其中,下文中图5所示的方法是源BMS停用第一VMM的方法。
参见图5,图5是本申请提供的一种源BMS停用第一VMM的方法交互流程图。如图5所示,源BMS停用第一VMM的方法包括:
S101:源BMS上电后,为源硬件卡供电,并启动源BMS的BIOS。
在本申请具体的实施例中,BIOS中预先设置了需要对源硬件卡进行引导。源BMS的BIOS被启动之后,BIOS按照预设的顺序引导各个程序进入工作状态。在引导过程中,如果BIOS顺利引导第一个程序进入工作状态,则BIOS会继续引导下一个程序进入工作状态,依次类推,直到最后一个程序被引导进入工作状态。如果BIOS在引导某个程序时,程序没有顺利进入工作状态,那么,BIOS将会继续等待,直到该程序进入工作状态或者报错。因此,源BMS的BIOS引导至源硬件卡时,源BMS的BIOS进入等待过程,以等待源硬件卡配置完成,并向源BMS发送启动标志。
S102:在源BMS的BIOS等待过程中,源硬件卡进行资源配置,并在源硬件卡的第二内部存储器中设置第一共享内存。
在本申请具体的实施例中,第一共享内存可以设置在源BMS的第一内存中,第一共享内存可以供源BMS中的第一操作***以及源BMS中的第一VMM访问。第一共享内存中可以用于存储源BMS的第一VMM。
在本申请具体的实施例中,源硬件卡进行资源配置可以包括:对硬件进初始化(屏蔽所有的中断、关闭处理器内部指令/数据Cache等)、准备RAM空间(例如,将程序代码读取到RAM中,并设置第一共享内存)、设置堆栈、初始化本阶段要使用到的硬件设备、检测第一操作***内存映射、将第一操作***的内核映像和根文件***映像从Flash读到RAM、为第一操作***的内核设置启动参数以及调用第一操作***的内核等等。
在本申请具体的实施例中,在资源配置完成后,源硬件卡中的动态配置模块产生启动标志,并通过第一共享内存或者硬件寄存器将启动标志发送给源BMS的BIOS以通知BIOS,源硬件卡已经启动完毕,可以重新启动BIOS。
应理解,上述例子中以在源硬件卡的第二内部存储器中设置第一共享内存为例进行说明,在其他的实施例中,也可以在网络磁盘中设置第二共享内存,其中,第二共享内存可以供源BMS中的第一操作***以及源BMS中的第一VMM访问。并且,裸金属服务器在线迁移可以选择只设置第一共享内存、只设置第二共享内存或者同时设置第一共享内存以及第二共享内存。
S103:源BMS接收启动标志之后,确认源硬件卡启动正常,引导到源BMS的第一VMM。
在本申请具体的实施例中,BIOS中也预先设置了需要对第一VMM进行引导。其中,第一VMM可以存储在源BMS的第一内存中。
S104:源BMS的第一VMM完成I/O设备的初始化,并将I/O设备的状态保存到第一共享内存中。
在本申请具体的实施例中,I/O设备的状态均可以是存储在I/O设备的寄存器中,在第一VMM完成I/O设备的初始化之后,可以将I/O设备的状态从寄存器中取出,并存储到源硬件卡的第一共享内存中,以供重新启用第一VMM时,可以将第一共享内存中的I/O设备的状态从第一共享内存中的取出并还原,从而恢复第一VMM的工作状态。可以理解,I/O设备的状态是保存在源硬件卡的第一共享内存中的,不会占用源BMS的存储资源,从而降低了对源BMS的资源的消耗。
在本申请具体的实施例中,因为I/O设备的状态保存到第一共享内存中,所以,I/O设备的状态既可以被第一操作***所访问,也可以被第一VMM所访问。
S105:源BMS从硬件辅助虚拟化模块中读取源BMS的CPU寄存器状态,并保存到第一共享内存中。
S106:源BMS通过切换程序调整第一VMM和第一操作***内核的页表项。
在本申请具体的实施例中,切换程序用于负责第一VMM和第一操作***之间的切换。当需要从第一VMM切换至第一操作***时,第一VMM调用切换程序进行切换;当需要从第一操作***切换至第一VMM时,第一操作***可以调用切换程序进行切换。在一具体的实施例中,切换程序可以是预先存储到第一共享内存中的程序,从而减少源BMS的资源的消耗。这里,源BMS通过切换程序调整第一VMM和第一操作***内核的页表项,可以避免切换之后发生非法的内存访问。
S107:源BMS通过切换程序将CPU寄存器状态加载到源BMS中的第一处理器,从而停用第一VMM。
在本申请具体的实施例中,源BMS将CPU寄存器状态加载到源BMS中的第一处理器之后,第一VMM停止工作状态,第一操作***进入裸机工作状态。
值得注意的是,上述方法也适用于数据中心中的其他BMS(包括目标BMS),本发明实施例对此不作赘述。
参见图6,图6是本申请提供的一种源硬件卡和目标硬件卡之间传输在线迁移内存脏页的示意图。具体地,在初始状态下,源硬件卡挂载有网络磁盘(图4所示),并提供网络磁盘至源BMS使用,租户可以在远程登录源BMS后,将租户的数据存储到网络磁盘中,值得注意的是,网络磁盘也可以是云服务,租户可在云管理平台购买网络磁盘,并挂载到源BMS中。
具体地,本发明实施例的迁移方法包括以下步骤:
S201:云管理平台分别向源硬件卡和目标硬件卡发送迁移命令。相应地,源硬件卡和目标硬件卡分别接收云管理平台发送的迁移命令。
在本申请具体的实施例中,迁移命令用于指示源BMS将内存脏页在线迁移至目标BMS。其中,迁移命令可以包括源BMS的IP地址、源BMS的MAC地址、目标BMS的IP地址、目标BMS的MAC地址或其他能识别源BMS和目标BMS的地址信息等等。
在本申请具体的实施例中,迁移命令是在满足迁移条件的情况下发出的。
迁移条件例如为源BMS需要进行固件升级、重启、停电维护或其他影响源BMS正常工作的情况,云管理平台可预先获取上述情况,并根据上述情况在数据中心中选择适合作为迁移目标的目标BMS之后,向源硬件卡和目标硬件卡发送迁移命令。
S202:源硬件卡通知源BMS启用第一VMM。并且,目标硬件卡通知目标BMS启用第二VMM。
在源硬件卡通知源BMS启用第一VMM之后,源BMS将会激活第一VMM。在第一VMM被激活的过程中,源BMS将第一I/O设备状态保存到第一共享内存中。具体请参见下文图7以及图8所示的源BMS激活第一VMM的过程。
S203:源BMS通过源硬件卡以及目标硬件卡向目标BMS发送全量内存页。
在本申请具体的实施例中,源BMS的第一VMM首先将全量内存页发送给源硬件卡。相应地,源硬件卡接收源BMS发送的全量内存页。源硬件卡将全量内存页发送给目标硬件卡。相应地,目标硬件卡接收源硬件卡发送的全量内存页。目标硬件卡将全量内存页发送给目标BMS的第二VMM。相应地,目标BMS的第二VMM接收目标硬件卡发送的全量内存页。
目标BMS的第二VMM根据全量内存页设置目标BMS的内存,使得目标BMS的内存和源BMS的内存一致。
一般情况下,目标BMS设置全量内存之后,即实现了内存页迁移的目的,但是,本发明实施例必须保证目标BMS的网络资源和存储资源也与源BMS相同,因此,在源BMS的全量内存设置到目标BMS之后,网络资源和存储资源从源BMS迁移到目标BMS之前,租户还可以访问源BMS,源BMS的操作***会继续对第一内存进行写操作,从而产生内存脏页,同时,源硬件卡也可以对第一内存进行直接内存访问写操作,从而产生内存脏页。
以下步骤的目的是为了让源硬件卡获取以上两种情况产生的内存脏页,并发送至目的硬件卡,通过目的硬件卡将该些内存脏页发送至目的BMS的第二VMM,第二VMM根据内存脏页更新全量内存,从而保证源BMS在网络资源和存储资源迁移完成之前产生的内存脏页可以在目标BMS上得到同步。
S204:目标硬件卡挂载源硬件卡正在使用的网络磁盘。
在本申请具体的实施例中,目标BMS挂载源硬件卡正在使用的网络磁盘之后,目标硬件卡和源硬件卡共享网络磁盘,此时,目标BMS可以对网络磁盘进行访问,并且,目标硬件卡提供网络磁盘给目标BMS使用,由于目标BMS可以直接访问网络磁盘,源BMS针对网络磁盘的数据修改,在目标BMS无需进行同步。
通过本步骤,可以完成存储资源的迁移。
值得注意的是,在后续步骤中,在完成网络资源迁移之后,源硬件卡可以停止挂载网络磁盘,使得目标硬件卡在迁移完成之后可以单独使用网络磁盘,从而保证租户的数据安全。
S205:源BMS的第一VMM打开脏页跟踪功能,以对第一操作***在源BMS的第一内存中产生的脏页情况进行跟踪,从而在源BMS的第一内存中产生第一内存脏页位置信息。
第一操作***在源BMS的第一内存中产生脏页具体是指源BMS的第一处理器在运行第一操作***时,对第一内存进行数据写入操作,从而涉及到对内存页中的数据的修改,第一VMM可对这种情况下记录哪些内存页进行了修改。
值得注意的是,在本发明实施例中,所述的内存脏页位置信息可例如为内存脏页位图,内存脏页位图可通过0和1对源BMS的操作***的内存页进行标识,在内存页被写入数据时,其位图值为1,在内存页没有写入数据时,其位图值是0,内存脏页位图记录内存页编号,并针对不同内存页编号记录0或1。
或者,内存脏页位图依次对多个连续的内存页进行0或1标记,从而得到一个以0和1组成的二进制字符串。
内存脏页位置信息还可以通过其他方式实现,根据内存脏页位置信息可以获知源BMS中哪个内存页被修改。
S206:源硬件卡的I/O处理模块打开脏页跟踪功能,以对I/O设备在源硬件卡中产生的脏页情况进行跟踪,从而在源硬件卡中产生第二内存脏页位置信息。
其中,源硬件卡的I/O设备是指源硬件卡提供给源BMS使用的设备,例如图3中的源硬件卡的网卡314中提供给源BMS使用的虚拟功能(Virtual Function,VF)。
在另外一些示例中,源硬件卡可连接鼠标键盘等外部输入设备,并将该些外部输入设备提供给源BMS,此时,该些外部输入设备也可称为源硬件卡的I/O设备。
在本发明实施例中,源硬件卡的I/O设备可通过直接内存访问(Direct MemoryAccess,DMA)的方式在源BMS的第一内存中写入数据,这种情况下,由于是来自作为外部设备的源硬件卡对第一内存进行DMA写入,第一VMM无法监控到这种情况,因此需要源硬件卡开启脏页跟踪功能,以对自身在源硬件卡中产生的脏页情况进行跟踪。
S207:源硬件卡的智能转移模块从源BMS中获取第一内存脏页位置信息,并根据第一内存脏页位置信息从源BMS中获取第一操作***产生的内存脏页。
在本申请具体的实施例中,源硬件卡的智能转移模块根据所述第一内存脏页位置信息从所述内存获取产生脏页的至少一个第一内存页。
在本申请具体的实施例中,第一内存脏页位置信息可以是源BMS通过内存映射机制映射到源硬件卡中(例如,I/O设备的基地址寄存器(basic address register,BAR)空间),也可以存储在源BMS的第一内存中。相应地,源硬件卡的智能转移模块可以读取第一内存脏页位置信息,然后,通过DMA传输方式从源BMS的第一内存中获取第一操作***产生的内存脏页。或者,源硬件卡的智能转移模块也可以通过DMA传输方式从源BMS的第一内存中读取第一内存脏页位置信息,并通过DMA传输方式从源BMS的第一内存中获取第一操作***产生的内存脏页。
S208:源硬件卡的智能转移模块获取第二内存脏页位置信息,并根据第二内存脏页位置信息获取I/O设备产生的内存脏页。
在本申请具体的实施例中,源硬件卡的智能转移模块根据第二内存脏页位置信息从第一内存获取经由源硬件卡的I/O设备产生的至少一个第二内存页。
S209:源硬件卡将第一操作***产生的内存脏页和I/O设备产生的内存脏页发送给目标硬件卡。
在本申请具体的实施例中,源硬件卡的智能转移模块将至少一个第一内存页和至少一个第二内存页发送至目标硬件卡。
S210:目标硬件卡将第一操作***产生的内存脏页还原到目标BMS的第一内存中。
S211:目标硬件卡将I/O设备产生的内存脏页还原到目标硬件卡中。
在本申请具体的实施例中,目标硬件卡根据至少一个第一内存页和至少一个第二内存页设置第二BMS的内存。
S212:源硬件卡的智能转移模块确定是否已经达到了停机标准。如果没有达到了停机标准,返回步骤S207,如果达到了停机标准,发送通知1至源硬件卡。
在本申请具体的实施例中,停机标准为源BMS中第一操作***产生的内存脏页和源硬件卡中I/O设备产生的内存脏页的数据量小于当前网络带宽的容量。
如果源BMS中第一操作***产生的内存脏页和源硬件卡中I/O设备产生的内存脏页的数据量大于或者等于当前网络带宽的容量,那么,源硬件卡无法一次性通过当前网络将所有内存脏页传输给目标硬件卡,源BMS达不到停机标准,所以,在源硬件卡第一次获取得到源BMS中第一操作***产生的内存脏页和源硬件卡中I/O设备产生的内存脏页之后至源BMS停机之间,源BMS的第一操作***和I/O设备又产生了新的内存脏页,于是,源硬件卡需要重复执行获取得到源BMS中第一操作***产生的新的内存脏页和源硬件卡中I/O设备产生的新的内存脏页,并将获取得到的新的内存脏页发送给目标硬件卡的步骤,直到源BMS中第一操作***产生的新的内存脏页和源硬件卡中I/O设备产生的新的内存脏页的数据量小于当前网络带宽的容量,源BMS达到停机标准而停机。
源BMS通过源BMS与源硬件卡之间物理连接的通道发送通知1至源硬件卡,该通道例如为PCIE通道,通知1用于通知源硬件卡源BMS可以进行停机,此时源硬件卡获取源硬件卡的I/O设备的状态(即第一I/O设备状态),并获取源BMS的I/O设备的状态(即第二I/O设备状态)。
S213:源硬件卡的智能转移模块获取第一共享内存中的第一I/O设备状态,以及获取源硬件卡中第二I/O设备状态。
具体地,源BMS在步骤S212确认自身达到停机标准之后,将源BMS的I/O设备的状态记录到第一共享内存中,源硬件卡的智能转移模块获取第一共享内存中的第一I/O设备状态。
其中,源BMS的I/O设备例如为源BMS的操作***通过第一处理器在第一内存读写数据所调用的驱动程序,源BMS的第一VMM可记录源BMS的I/O设备的状态。
S214:源硬件卡的智能转移模块将第一I/O设备状态,以及,第二I/O设备状态发送给目标硬件卡。相应地,目标硬件卡接收源硬件卡的智能转移模块发送的第一I/O设备状态,以及,第二I/O设备状态。
S215:目标硬件卡将第一I/O设备状态还原到目标BMS的I/O设备中。
具体地,目标硬件卡将第一I/O设备状态发送至目标BMS的第二VMM,第二VMM将第一I/O设备状态设置到目标BMS的I/O设备中。
其中,目标BMS的I/O设备例如为目标BMS的操作***通过第三处理器(如图4所示)在第二内存(如图4所示)读写数据所调用的驱动程序,目标BMS的第二VMM可将目标BMS的I/O设备的状态设置为第一I/O设备状态,从而使得目标BMS的I/O设备的状态与源BMS的I/O设备的状态相同。
S216:目标硬件卡将第二I/O设备状态还原到目标硬件卡中。
具体地,目标硬件卡将自身的I/O设备的状态设置为第二I/O设备状态,使得目标硬件卡的I/O设备的状态与源硬件卡的I/O设备的状态相同。
其中,目标硬件卡的I/O设备例如为目标硬件卡提供给目标BMS的VF,目标硬件卡的VF设置为第二I/O设备状态,使得目标硬件卡的VF与源硬件卡的VF的设备状态相同。
S217:源BMS停用第一VMM,以使得源BMS运行在裸机状态。并且,目标BMS停用第二VMM并发送通知3至目标硬件卡,通知3用于通知目标硬件卡目标BMS切换到裸机状态。
S218:源硬件卡停止挂载网络磁盘。
可以理解,需要迁移的数据包括网络磁盘中的数据(即存储资源),那么,在开始迁移时,网络磁盘首先共享设置到目标硬件卡(步骤S204),使得源硬件卡和目标硬件卡共享网络磁盘,在结束迁移时,源硬件卡停止挂载网络磁盘。
S219:源硬件卡向目标硬件卡发送网络配置信息。相应地,目标硬件卡接收源硬件卡发送的网络配置信息。
其中,网络配置信息包括源BMS的IP地址、带宽包配置等信息,具体为源硬件卡为源BMS提供的网络资源的相关信息。
S220:源硬件卡通知云管理平台源BMS迁移完毕。
S221:目标硬件卡根据网络配置信息对自身进行网络配置。
在本步骤中,目标硬件卡将租户相关的网络配置为与源硬件卡一致,并将该些网络配置设置为目标BMS的网络配置,举例而言,目标硬件卡将源BMS的IP地址和带宽包配置记录为目标BMS的IP地址和带宽包配置。
在本步骤中,经源硬件卡和目标硬件卡的处理,将源BMS的网络资源转移到目标硬件卡中。
S222:目标硬件卡通知云管理平台目标BMS准备就绪。
在本步骤中,目标硬件卡在将源BMS的存储资源、计算资源以及网络资源都转移到目标BMS之后,通知云管理平台目的BMS准备就绪,此时,租户根据源BMS的IP地址远程登录源BMS时,实际登录的是目标BMS,但是由于切换过程是在涉及网络配置信息的步骤S219-S221体现,即步骤S219-S221会造成租户短暂不能登录到源BMS和目的BMS,但是这些步骤的暂停可以控制在秒级以内,一般情况下租户对此并无感知,因此上述迁移过程可以做到租户无感知,能够在迁移BMS的前提下保证租户体验。
综上,本发明实施例可以实现租户无感知地迁移BMS,因此可以极大地提升租户体验。
下文中图7所示的方法是当源BMS中的第一处理器为x86处理器时,源BMS的第一VMM被激活的方法,下文中图8所示的方法是当源BMS中的第一处理器为ARM处理器时,源BMS的第一VMM被激活的方法。参见图7,图7是本申请提供的一种源BMS激活第一VMM的方法交互流程图。如图7所示,源BMS激活第一VMM的方法包括:
S301:源硬件卡的动态配置模块向源BMS发送SMI中断的中断信号。相应地,源BMS接收源硬件卡的动态配置模块发送的SMI中断的中断信号。
在本申请具体的实施例中,源BMS接收源硬件卡的动态配置模块发送的SMI中断之后,源BMS的第一处理器将进入SMM模式。具体请参见上文中关于SMM的介绍,此处不再展开描述。
S302:源BMS执行SMI中断处理程序,以将源BMS中的CPU寄存器状态保存到SMRAM中,再将CPU寄存器状态保存到第一共享内存中。
在本申请具体的实施例中,第一共享内存可以设置在源BMS的第一内存中,第一共享内存可以供源BMS中的第一操作***以及源BMS中的第一VMM访问。
S303:源BMS将第一VMM加载到源BMS的第一处理器中。
S304:源BMS的第一VMM将CPU寄存器状态保存到硬件辅助虚拟化模块中。
在本申请具体的实施例中,硬件辅助虚拟化模块可以是虚拟机控制架构(virtualmachine control structure,VMCS),也可以是虚拟机控制块(virtual machine controlstructure block,VMCB)等等。
S305:源BMS的第一VMM执行硬件辅助虚拟化指令,以完成第一VMM的激活。
在本申请具体的实施例中,在第一VMM被激活之后,源BMS中的第一操作***运行在虚拟机之上,CPU虚拟化和内存虚拟化的功能均被打开,同时,为了避免源BMS的I/O性能下降,I/O设备以直通方式呈现给虚拟机使用。
参见图8,图8是本申请提供的另一种源BMS激活第一VMM的方法交互流程图。如图8所示,源BMS激活第一VMM的方法包括:
S401:源硬件卡的动态配置模块向源BMS发送SMC异常。相应地,源BMS接收源硬件卡的动态配置模块发送的SMC异常。
在本申请具体的实施例中,源BMS接收源硬件卡的动态配置模块发送的SMC异常之后,源BMS的第一处理器将进入EL3模式。具体请参见上文中关于EL3模式的介绍,此处不再展开描述。
S402:源BMS执行SMC异常处理程序,以将源BMS中的CPU寄存器状态保存到SMR中,再将CPU寄存器状态保存到第一共享内存中。
在本申请具体的实施例中,第一共享内存可以设置在源BMS的第一内存中,第一共享内存可以供源BMS中的第一操作***以及源BMS中的第一VMM访问。
S403:源BMS将第一VMM加载到源BMS的第一处理器中。
S404:源BMS的第一VMM将CPU寄存器状态保存到硬件辅助虚拟化模块中。
S405:源BMS的第一VMM执行硬件辅助虚拟化指令,以完成第一VMM的激活。
在本申请具体的实施例中,在第一VMM被激活之后,源BMS中的第一操作***运行在虚拟机之上,CPU虚拟化和内存虚拟化的功能均被打开,同时,为了避免源BMS的I/O性能下降,I/O设备以直通方式呈现给虚拟机使用。
参见图9,图9是本申请提出的一种硬件卡的结构示意图。如图9所示,本申请的硬件卡包括:动态配置模块410、智能转移模块420以及I/O处理模块430。
所述动态配置模块410用于接收针对第一裸金属服务器的迁移命令,其中所述第一硬件卡插置于所述第一裸金属服务器;
所述智能转移模块420用于根据所述迁移命令通知所述第一裸金属服务器启动所述第一裸金属服务器中的虚拟机管理器,所述虚拟机管理器记录所述第一裸金属服务器产生的针对所述第一裸金属服务器的内存的第一内存脏页位置信息,并发送所述第一内存脏页位置信息至所述第一硬件卡;
所述智能转移模块420用于根据所述第一内存脏页位置信息将所述第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。
可选地,I/O处理模块430用于获取所述第一裸金属服务器的I/O设备的第一I/O设备状态,并获取所述第一硬件卡的I/O设备的第二I/O设备状态,将所述第一I/O设备状态和所述第二I/O设备状态发送至所述第二硬件卡。
为了简便起见,此处并没有对硬件卡进行具体的描述,具体请参见图2、图3以及相关描述。另外,硬件卡中的各个模块可以执行图5至图8中各个模块执行的步骤,具体请参见图5-图8以及相关描述,此处不再赘述。
本申请实施例提供了一种BMS***。本实施例的BMS***包括BMS和硬件卡,其中,硬件卡可以插在BMS上。
如图10所示,BMS包括一个或多个处理器510、通信接口520和存储器530。其中,处理器510、通信接口520和存储器530之间可以通过总线540连接。其中,总线可以是PCIE总线或者其他高速总线。
处理器510包括一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及ASIC(Application Specific Integrated Circuit,专用集成电路)等等。处理器510执行各种类型的数字存储指令,例如存储在存储器530中的软件或者固件程序,它能使BMS提供较宽的多种服务。例如,处理器510能够执行程序或者处理数据,以执行本文讨论的方法的至少一部分。
通信接口520可以为有线接口(例如以太网接口),用于与客户端进行通信。当通信接口520为有线接口时,通信接口520可以采用TCP/IP之上的协议族,例如,RAAS协议、远程函数调用(Remote Function Call,RFC)协议、简单对象访问协议(Simple Object AccessProtocol,SOAP)协议、简单网络管理协议(Simple Network Management Protocol,SNMP)协议、公共对象请求代理体系结构(Common Object Request Broker Architecture,CORBA)协议以及分布式协议等等。
存储器530可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)存储器还可以包括上述种类的存储器的组合。存储器可以用于存储客户操作***以及VMM。
可以理解,上述BMS可以用于执行如图5至图8中源BMS或者目标BMS执行的步骤,具体请参阅图5至图8以及相关描述。
如图11所示,硬件卡包括一个或多个处理器610、通信接口620和存储器630。其中,处理器610、通信接口620和存储器630之间可以通过总线640连接。
处理器610包括一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及ASIC(Application Specific Integrated Circuit,专用集成电路)等等。处理器610执行各种类型的数字存储指令,例如存储在存储器630中的软件或者固件程序,它能使客户端提供较宽的多种服务。例如,处理器610能够执行程序或者处理数据,以执行本文讨论的方法的至少一部分。
通信接口620可以为有线接口(例如以太网接口),用于与服务器或用户进行通信。当通信接口620为有线接口时,通信接口112可以采用TCP/IP之上的协议族,例如,RAAS协议、远程函数调用(RemoteFunctionCall,RFC)协议、简单对象访问协议(Simple ObjectAccess Protocol,SOAP)协议、简单网络管理协议(Simple Network ManagementProtocol,SNMP)协议、公共对象请求代理体系结构(Common Object Request BrokerArchitecture,CORBA)协议以及分布式协议等等。
存储器630可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)存储器还可以包括上述种类的存储器的组合。存储器630中可以用于存储动态配置模块、智能转移模块以及I/O处理模块。
可以理解,上述BMS可以用于执行如图5至图8中源硬件卡或者目标硬件卡执行的步骤,具体请参阅图5至图8以及相关描述。
上述方案中,源硬件卡在接收到迁移命令之后,通知源裸金属服务器启动虚拟机管理器对源裸金属服务器产生的针对所述源裸金属服务器的内存的第一内存脏页位置信息进行记录,从而将所述源裸金属服务器的内存脏页在线迁移至目标裸金属服务器,能够实现BMS实现在线迁移,并且,根据第一内存脏页位置信息在线迁移目标裸金属服务器的内存脏页的工作由源硬件卡承担,能够有效地减少源金属服务器的负担。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字租户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。

Claims (26)

1.一种裸金属服务器在线迁移方法,其特征在于,所述方法包括:
第一硬件卡接收针对第一裸金属服务器的迁移命令,其中所述第一硬件卡插置于所述第一裸金属服务器;
所述第一硬件卡根据所述迁移命令通知所述第一裸金属服务器启动所述第一裸金属服务器中的虚拟机管理器,所述虚拟机管理器记录所述第一裸金属服务器产生的针对所述第一裸金属服务器的内存的第一内存脏页位置信息,并发送所述第一内存脏页位置信息至所述第一硬件卡;
所述第一硬件卡根据所述第一内存脏页位置信息将所述第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。
2.根据权利要求1所述的方法,其特征在于,所述第一硬件卡接收针对第一裸金属服务器的在线迁移命令之后,所述方法包括:
所述第一硬件卡记录所述第一硬件卡产生的针对所述第一裸金属服务器的内存的第二内存脏页位置信息。
3.根据权利要求2所述的方法,其特征在于,所述第一硬件卡根据所述第一内存脏页位置信息将所述第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器,包括:
所述第一硬件卡根据所述第一内存脏页位置信息从所述内存获取产生脏页的至少一个第一内存页,根据所述第二内存脏页位置信息从所述内存获取产生脏页的至少一个第二内存页,将所述至少一个第一内存页和所述至少一个第二内存页发送至第二硬件卡,其中所述第二硬件卡与所述第一硬件卡网络连接;
所述第二硬件卡根据所述至少一个第一内存页和所述至少一个第二内存页设置第二裸金属服务器的内存,其中所述第二硬件卡插置于所述第二裸金属服务器。
4.根据权利要求3所述的方法,其特征在于,将所述至少一个第一内存页和所述至少一个第二内存页发送至第二硬件卡之后,所述方法包括:
所述第一硬件卡获取所述第一裸金属服务器的I/O设备的第一I/O设备状态,并获取所述第一硬件卡的I/O设备的第二I/O设备状态,将所述第一I/O设备状态和所述第二I/O设备状态发送至所述第二硬件卡;
所述第二硬件卡根据所述第二I/O设备状态设置所述第二硬件卡的I/O设备,并发送所述第一I/O设备状态至所述第二裸金属服务器,以使得所述第二裸金属服务器根据所述第一I/O设备状态设置所述第二裸金属服务器的I/O设备。
5.根据权利要求1至4任一权利要求所述的方法,其特征在于,所述虚拟机管理器记录所述第一裸金属服务器产生的针对所述第一裸金属服务器的内存的第一内存脏页位置信息之前,所述方法还包括:
所述虚拟机管理器将所述第一裸金属服务器的全量内存页发送至所述第一硬件卡;
所述第一硬件卡将所述全量内存页发送至所述第二硬件卡;
所述第二硬件卡根据所述全量内存页初始化所述第二裸金属服务器的内存。
6.根据权利要求1或2所述的方法,其特征在于,在所述方法还包括:
所述第二硬件卡接收所述迁移命令;
所述第二硬件卡根据所述迁移命令挂载所述第一硬件卡挂载的网络磁盘并通知所述第二裸金属服务器启动所述第二裸金属服务器中的虚拟机管理器。
7.根据权利要求1至3任一项所述的方法,其特征在于,在所述方法还包括:
所述第一硬件卡发送所述源BMS的网络配置信息至所述第二硬件卡;
所述第二硬件卡根据所述网络配置信息进行网络配置。
8.根据权利要求7所述的方法,其特征在于,所述第一硬件卡发送所述源BMS的网络配置信息至所述第二硬件卡之后,所述方法还包括:
所述第一硬件卡通知云管理平台所述第一裸金属服务器迁移完毕。
9.根据权利要求1至8任一权利要求所述的方法,其特征在于,所述第一硬件卡内设置有共享内存,所述共享内存供所述第一裸金属服务器的虚拟机管理器访问。
10.根据权利要求1至9任一权利要求所述的方法,其特征在于,所述第一硬件卡根据所述迁移命令启动虚拟机管理器,包括:
所述第一硬件卡根据所述迁移命令产生中断信号,
所述第一裸金属服务器接收所述中断信号,根据所述中断信号启动所述第一裸金属服务器的虚拟机管理器。
11.根据权利要求10所述的方法,其特征在于,
所述中断信号为X86处理器的***管理中断,或者,所述中断信号为Arm处理器的安全监视调用SMC或者安全中断。
12.一种裸金属服务器在线迁移***,其特征在于,所述裸金属服务器在线迁移***包括:第一裸金属服务器、第一硬件卡、第二裸金属服务器以及第二硬件卡,
第一硬件卡用于接收针对第一裸金属服务器的迁移命令,其中所述第一硬件卡插置于所述第一裸金属服务器;
所述第一硬件卡用于根据所述迁移命令通知所述第一裸金属服务器启动虚拟机管理器,所述虚拟机管理器记录所述第一裸金属服务器产生的针对所述第一裸金属服务器的内存的第一内存脏页位置信息,并发送所述第一内存脏页位置信息至所述第一硬件卡;
所述第一硬件卡用于根据所述第一内存脏页位置信息将所述第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。
13.根据权利要求12所述的***,其特征在于,
所述第一硬件卡用于记录所述第一硬件卡产生的针对所述第一裸金属服务器的内存的第二内存脏页位置信息。
14.根据权利要求13所述的***,其特征在于,
所述第一硬件卡用于根据所述第一内存脏页位置信息从所述内存获取产生脏页的至少一个第一内存页,根据所述第二内存脏页位置信息从所述内存获取产生脏页的至少一个第二内存页,将所述至少一个第一内存页和所述至少一个第二内存页发送至第二硬件卡,其中所述第二硬件卡与所述第一硬件卡网络连接;
所述第二硬件卡用于根据所述至少一个第一内存页和所述至少一个第二内存页设置第二裸金属服务器的内存,其中所述第二硬件卡插置于所述第二裸金属服务器。
15.根据权利要求12至14任一权利要求所述的***,其特征在于,
所述第一硬件卡用于获取所述第一裸金属服务器的I/O设备的第一I/O设备状态,并获取所述第一硬件卡的I/O设备的第二I/O设备状态,将所述第一I/O设备状态和所述第二I/O设备状态发送至所述第二硬件卡;
所述第二硬件卡用于根据所述第二I/O设备状态设置所述第二硬件卡的I/O设备,并发送所述第一I/O设备状态至所述第二裸金属服务器,以使得所述第二裸金属服务器根据所述第一I/O设备状态设置所述第二裸金属服务器的I/O设备。
16.根据权利要求12至15任一权利要求所述的***,其特征在于,
所述第一裸金属服务器用于将所述第一裸金属服务器的全量内存页发送至所述第一硬件卡;
所述第一硬件卡用于将所述全量内存页发送至所述第二硬件卡;
所述第二硬件卡用于根据所述全量内存页初始化所述第二裸金属服务器的内存。
17.根据权利要求12或16所述的***,其特征在于,在所述方法还包括:
所述第二硬件卡接收所述迁移命令;
所述第二硬件卡根据所述迁移命令挂载所述第一硬件卡挂载的网络磁盘并通知所述第二裸金属服务器启动所述第二裸金属服务器中的虚拟机管理器。
18.根据权利要求12至17任一项所述的***,其特征在于,在所述方法还包括:
所述第一硬件卡发送所述源BMS的网络配置信息至所述第二硬件卡;
所述第二硬件卡根据所述网络配置信息进行网络配置。
19.根据权利要求12至18任一权利要求所述的***,其特征在于,
所述第一硬件卡用于通知云管理平台发所述第一裸金属服务器迁移完毕。
20.根据权利要求12至19任一权利要求所述的***,其特征在于,所述第一硬件卡内设置有共享内存,所述共享内存供所述第一裸金属服务器的虚拟机管理器访问。
21.根据权利要求12至20任一权利要求所述的***,其特征在于,
所述第一硬件卡用于根据所述迁移命令产生中断信号,
所述第一裸金属服务器用于接收所述中断信号,根据所述中断信号启动所述第一裸金属服务器的虚拟机管理器。
22.根据权利要求21所述的***,其特征在于,
所述中断信号为X86处理器的***管理中断,或者,所述中断信号为Arm处理器的安全监视调用SMC或者安全中断。
23.一种裸金属服务器***,其特征在于,所述裸金属服务器***包括第一裸金属服务器以及第一硬件卡,
第一硬件卡用于接收针对第一裸金属服务器的迁移命令,其中所述第一硬件卡插置于所述第一裸金属服务器;
所述第一硬件卡用于根据所述迁移命令通知所述第一裸金属服务器启动虚拟机管理器,所述虚拟机管理器记录所述第一裸金属服务器产生的针对所述第一裸金属服务器的内存的第一内存脏页位置信息,并发送所述第一内存脏页位置信息至所述第一硬件卡;
所述第一硬件卡用于根据所述第一内存脏页位置信息将所述第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。
24.一种硬件卡,其特征在于,包括:动态配置模块以及智能转移模块,
所述动态配置模块用于接收针对第一裸金属服务器的迁移命令,其中所述第一硬件卡插置于所述第一裸金属服务器;
所述智能转移模块用于根据所述迁移命令通知所述第一裸金属服务器启动虚拟机管理器,所述虚拟机管理器记录所述第一裸金属服务器产生的针对所述第一裸金属服务器的内存的第一内存脏页位置信息,并发送所述第一内存脏页位置信息至所述第一硬件卡;
所述智能转移模块用于根据所述第一内存脏页位置信息将所述第一裸金属服务器的内存脏页在线迁移至第二裸金属服务器。
25.一种硬件卡,其特征在于,包括:处理器以及存储器,所述处理器执行所述存储器中的程序,从而执行如权利要求1或2所述的方法。
26.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在第一硬件卡上运行时,使得所述第一硬件卡执行如权利要求1或2所述的方法。
CN202011337002.1A 2020-08-29 2020-11-25 裸金属服务器在线迁移方法以及*** Pending CN114115703A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/CN2021/092962 WO2022041839A1 (zh) 2020-08-29 2021-05-11 裸金属服务器在线迁移方法以及***
EP21859684.9A EP4195021A4 (en) 2020-08-29 2021-05-11 ONLINE MIGRATION METHOD AND SYSTEM FOR BASIC SERVER
US18/175,853 US20230214245A1 (en) 2020-08-29 2023-02-28 Online Migration Method and System for Bare Metal Server

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2020108908744 2020-08-29
CN202010890874 2020-08-29

Publications (1)

Publication Number Publication Date
CN114115703A true CN114115703A (zh) 2022-03-01

Family

ID=80360745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011337002.1A Pending CN114115703A (zh) 2020-08-29 2020-11-25 裸金属服务器在线迁移方法以及***

Country Status (1)

Country Link
CN (1) CN114115703A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697191A (zh) * 2022-03-29 2022-07-01 浪潮云信息技术股份公司 一种资源迁移方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697191A (zh) * 2022-03-29 2022-07-01 浪潮云信息技术股份公司 一种资源迁移方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US9519795B2 (en) Interconnect partition binding API, allocation and management of application-specific partitions
US9996384B2 (en) Virtual machine homogenization to enable migration across heterogeneous computers
US9760408B2 (en) Distributed I/O operations performed in a continuous computing fabric environment
US9619270B2 (en) Remote-direct-memory-access-based virtual machine live migration
EP4050477B1 (en) Virtual machine migration techniques
US10922135B2 (en) Dynamic multitasking for distributed storage systems by detecting events for triggering a context switch
US9384060B2 (en) Dynamic allocation and assignment of virtual functions within fabric
US10592434B2 (en) Hypervisor-enforced self encrypting memory in computing fabric
US10635499B2 (en) Multifunction option virtualization for single root I/O virtualization
US20090125901A1 (en) Providing virtualization of a server management controller
US11163597B2 (en) Persistent guest and software-defined storage in computing fabric
US9639486B2 (en) Method of controlling virtualization software on a multicore processor
CN114741233A (zh) 快速启动方法
JP2016004432A (ja) 仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法
US9804877B2 (en) Reset of single root PCI manager and physical functions within a fabric
US20160077847A1 (en) Synchronization of physical functions and virtual functions within a fabric
CN116521324B (zh) 中断虚拟化处理方法、装置及电子设备
WO2022066251A1 (en) Firmware emulated watchdog timer controlled using native cpu operations
CN114115703A (zh) 裸金属服务器在线迁移方法以及***
EP4195021A1 (en) Online migration method and system for bare metal server
US20230359533A1 (en) User Triggered Virtual Machine Cloning for Recovery/Availability/Scaling

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination