CN103890728A - 虚拟机热迁移的方法和服务器 - Google Patents

虚拟机热迁移的方法和服务器 Download PDF

Info

Publication number
CN103890728A
CN103890728A CN201380002728.1A CN201380002728A CN103890728A CN 103890728 A CN103890728 A CN 103890728A CN 201380002728 A CN201380002728 A CN 201380002728A CN 103890728 A CN103890728 A CN 103890728A
Authority
CN
China
Prior art keywords
virtual
equipment
message
virtual machine
data space
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.)
Granted
Application number
CN201380002728.1A
Other languages
English (en)
Other versions
CN103890728B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103890728A publication Critical patent/CN103890728A/zh
Application granted granted Critical
Publication of CN103890728B publication Critical patent/CN103890728B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • 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/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种虚拟机热迁移的方法和服务器,以解决在SR-IOV技术场景下虚拟机的热迁移无法实现的问题。本发明实施例的虚拟机热迁移方法和服务器,通过设置写脏标志,使得待迁移的虚拟机的虚拟PCIE设备对接收到的数据进行至少一次的读写操作,所述待迁移的虚拟机的虚拟机管理器能够识别出数据的变化,并将变化的数据迁移到目的虚拟机,解决了现有技术虚拟机热迁移过程中因数据通过虚拟PCIE设备,虚拟机管理器不能感知数据导致的数据无法迁移问题。

Description

虚拟机热迁移的方法和服务器
技术领域
本发明涉及信息技术领域,特别涉及一种虚拟机热迁移的方法和服务器。
背景技术
SR-IOV(Single-Root I/O Virtualization,单根IO虚拟化)是一种IO虚拟化技术,该技术可以在一个物理PCIE(Peripheral ComponentInterconnection Express英文,快捷外围部件互连标准)设备上虚拟化出多个虚拟的PCIE设备,虚拟PCIE设备只能通过原物理PCIE设备进行配置和管理,每个虚拟PCIE设备可以有独立的中断和DMA(Direct Memory Access,直接内存存取),这样虚拟机可以直接通过虚拟PCIE设备访问物理PCIE设备,不需要VMM(Virtual Machine Monitor,虚拟机监控器)的干预。以支持SR-IOV的网卡为例,各虚拟PCIE设备对应一块虚拟网卡,虚拟PCIE设备与对应的虚拟网卡之间直接进行报文的交换,不需要VMM参与。从而能够降低VMM的开销,提升了虚拟交换的性能
服务器在实现虚拟化后,可以方便地实现虚拟机的热迁移,而虚拟机热迁移的关键就是内存的迁移,通常虚拟机内存的迁移可为三个阶段:
迭代预拷贝阶段:虚拟机迁移过程启动后,其依然运行在源服务器上,虚拟机业务不中断,首先把虚拟机的全部内存复制到目的服务器上,然后向目的服务器不停的迭代复制虚拟机中变化的内存数据。当迭代到需要复制的内存小到一定的门限后,进入停机拷贝阶段。
停机拷贝阶段:虚拟机停机,业务中断,拷贝虚拟机的残余内存数据。
恢复阶段:目的虚拟机完成运行前的恢复处理,启动目的虚拟机,整个迁移过程完成。
在使用SR-IOV技术的场景下,由于数据传输过程不需要VMM的参与,当以PCIE为接口的设备传输数据是,VMM无法控制数据的传输行为,在虚拟机热迁移过程中,导致这些设备的数据在虚拟机热迁移过程中无法迁移,虚拟机的热迁移无法实现。
发明内容
本发明实施例提供一种虚拟机热迁移的方法和设备,以解决现有技术中虚拟机的热迁移时数据无法迁移的问题。
本发明实施例提供了一种虚拟机热迁移的方法,所述方法包括:
虚拟PCIE设备接收启动虚拟机热迁移的第一消息;其中,所述虚拟机处理的数据通过物理PCIE设备传输,所述虚拟PCIE设备是运行在所述物理PCIE设备的虚拟设备,所述虚拟机通过所述虚拟PCIE设备访问所述物理PCIE设备;
所述虚拟PCIE设备根据所述第一消息,设置写脏标志;所述写脏标志用于对经过所述虚拟PCIE设备的数据进行至少一次的读写操作;
所述虚拟PCIE设备接收所述虚拟机热迁移完成的第二消息时,根据所述第二消息取消所述写脏标志。
可选的,所述虚拟PCIE设备根据所述第一消息设置写脏标志包括:
所述虚拟PCIE设备根据所述第一消息,由所述虚拟PCIE设备的驱动设置写脏标志;或所述虚拟PCIE设备设置独立的变量作为写脏标志。
可选的,所述虚拟PCIE设备的驱动设置写脏标志包括:
所述虚拟PCIE设备在所述虚拟PCIE设备驱动预留的数据空间内,设置写脏标志。
可选的,在所述虚拟PCIE设备接收启动虚拟机热迁移的第一消息之前,所述方法还包括:
在所述虚拟PCIE设备与所述物理PCIE设备之间建立消息通道,以接收启动虚拟机热迁移的第一消息。
可选的,所述在所述虚拟PCIE设备与所述物理PCIE设备之间建立消息通道包括:
在所述虚拟PCIE设备的驱动和所述物理PCIE设备的驱动分别预留一段数据空间,通过该预留的数据空间实现消息的传递。
可选的,所述虚拟PCIE设备和所述物理PCIE设备通过预留的数据空间实现消息的传递包括:
所述虚拟机的网卡通过在所述预留的数据空间之间通过直接内存存取DMA的方式传递消息,来实现所述虚拟PCIE设备和所述物理PCIE设备之间的消息通信;或者,
在所述虚拟机的网卡预留一个用于通信的数据空间,并将预留的数据空间分别共享给所述虚拟PCIE设备和所述物理PCIE设备。
可选的,所述方法应用于适用单根输入输出虚拟化SR-IOV技术的虚拟机热迁移过程中。
本发明实施例还提供了一种服务器,所述服务器上运行至少一个虚拟机,所述至少一个虚拟机处理的数据通过物理PCIE设备传输,所述物理PCIE设备上运行至少一个虚拟PCIE设备,每个虚拟机对应一个虚拟PCIE设备;所述至少一个虚拟PCIE设备中的第一虚拟PCIE设备包括:
接收单元,用于接收与所述第一虚拟PCIE设备对应的虚拟机热启动迁移的第一消息;
设置单元,用于根据所述第一消息,设置写脏标志;所述写脏标志用于对经过所述第一虚拟PCIE设备的数据进行至少一次的读写操作;并在接收到所述第一虚拟PCIE设备对应的虚拟机热迁移完成的第二消息时,根据所述第二消息取消所述写脏标志。
可选的,所述设置单元根据所述第一消息设置写脏标志包括:
所述设置单元根据所述第一消息,由所述第一虚拟PCIE设备的驱动设置写脏标志;或所述设置单元设置独立的变量作为写脏标志。
可选的,所述设置单元通过驱动设置写脏标志包括:
所述设置单元在所述第一虚拟PCIE设备驱动预留的数据空间内,设置写脏标志。
可选的,在所述第一虚拟PCIE设备还包括消息通道建立单元;
所述消息通道建立单元,用于在所述第一虚拟PCIE设备与所述物理PCIE设备之间建立消息通道,以以使所述接收单元通过建立的消息通道接收启动所述第一虚拟PCIE设备对应的虚拟机热迁移的第一消息。
可选的,所述消息通道建立单元在所述第一虚拟PCIE设备与所述物理PCIE设备之间建立消息通道包括:
消息通道建立单元在所述第一虚拟PCIE设备的驱动和所述物理PCIE设备的驱动分别预留一段数据空间,通过该预留的数据空间实现所述第一虚拟PCIE设备和所述物理PCIE设备之间的消息传递。
可选的,所述第一虚拟PCIE设备和所述物理PCIE设备通过预留的数据空间实现消息的传递包括:
通过所述虚拟机的网卡在所述预留的数据空间之间通过直接内存存取DMA的方式传递消息,来实现所述虚拟PCIE设备和所述物理PCIE设备之间的消息通信;或者,
所述消息通道建立单元在所述虚拟机的网卡预留一个用于通信的数据空间,并将预留的数据空间分别共享给所述虚拟PCIE设备和所述物理PCIE设备。
可选的,所述第一虚拟PCIE设备对应的虚拟机适用单根输入输出虚拟化SR-IOV技术实现虚拟化。
本发明实施例提供的虚拟机热迁移的方法和服务器,通过设置写脏标志,使得待迁移的虚拟机的虚拟PCIE设备对接收到的数据进行至少一次的读写操作,所述待迁移的虚拟机的虚拟机管理器能够识别出数据的变化,并将变化的数据迁移到目的虚拟机,解决了现有技术虚拟机热迁移过程中因数据通过虚拟PCIE设备,虚拟机管理器不能感知数据导致的数据无法迁移问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种虚拟机热迁移的方法流程示意图;
图2为本发明实施例一种服务器200的结构示意图;
图3为本发明实施例一种服务器200另一种实现方式的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
为解决现有技术中,在SR-IOV技术场景下无法实现虚拟机的热迁移的问题,本发明实施例公开了一种虚拟机热迁移的方法。
参考图1,图1为本发明实施例一种虚拟机热迁移的方法流程示意图,所述方法包括:
步骤100:虚拟PCIE设备接收启动虚拟机热迁移的第一消息;其中,所述虚拟机处理的数据通过物理PCIE设备传输,所述虚拟PCIE设备是运行在所述物理PCIE设备的虚拟设备,所述虚拟机通过所述虚拟PCIE设备访问所述物理PCIE设备;
步骤102:所述虚拟PCIE设备根据所述第一消息,设置写脏标志;所述写脏标志用于对经过所述虚拟PCIE设备的数据进行至少一次的读写操作;
步骤104:所述虚拟PCIE设备接收所述虚拟机热迁移完成的第二消息时,根据所述第二消息取消所述写脏标志。
通过上述设置写脏标志,使得待迁移的虚拟机的虚拟PCIE设备对接收到的数据进行至少一次的读写操作,所述待迁移的虚拟机的虚拟机管理器能够识别出数据的变化,并将变化的数据迁移到目的虚拟机,解决了现有技术虚拟机热迁移过程中因数据通过虚拟PCIE设备,虚拟机管理器不能感知数据导致的数据无法迁移问题。
作为一种可选的实现方式,在所述步骤100之前,本发明实施例的一种虚拟机热迁移的方法还包括:
在所述虚拟PCIE设备与所述物理PCIE设备之间建立消息通道,以接收启动虚拟机热迁移的第一消息;
其中,建立所述虚拟PCIE设备与所述物理PCIE设备之间的消息通道,可以通过如下方式建立:
建立所述虚拟PCIE设备的驱动与物理PCIE设备的驱动之间的消息通道,也就是在所述虚拟PCIE设备的驱动和所述物理PCIE设备的驱动分别预留一段数据空间,通过该预留的数据空间实现消息的传递。
所述虚拟PCIE设备与所述物理PCIE设备之间通过预留的数据空间传递消息,可以通过下述两种方式实现:
所述虚拟机的网卡通过在所述预留的数据空间之间通过DMA的方式传递消息,来实现所述虚拟PCIE设备和所述物理PCIE设备之间的消息通信;或者,
在所述虚拟机的网卡预留一个用于通信的数据空间,并将预留的数据空间分别共享给所述虚拟PCIE设备和所述物理PCIE设备。
其中,所述虚拟机的网卡是所述虚拟机使用的物理网卡。
具体的,物理PCIE设备和虚拟PCIE设备之间消息的传递可以按照如下方式实现:
物理PCIE设备将要发往虚拟PCIE设备的消息写入该物理PCIE设备数据空间,该消息携带有源物理PCIE设备的地址和目的虚拟PCIE设备的地址;网卡检测到数据空间有新的消息时,根据目的虚拟PCIE设备地址将消息搬移到对应的虚拟PCIE设备的数据空间,并通知虚拟PCIE设备获取所述消息。对应的虚拟PCIE设备从其数据空间获取所述消息。
可选的,所述虚拟PCIE设备与所述物理PCIE设备之间建立的消息通道是由所述虚拟机的虚拟机管理器或虚拟机迁移管理模块创建的。
上述步骤100中,可以是所述虚拟机的迁移管理模块下发启动虚拟机热迁移的第一消息给所述物理PCIE设备,所述物理PCIE设备通过上述建立的消息通道将所述第一消息发送给所述虚拟PCIE设备。本发明实施例的步骤102中,所述虚拟PCIE设备设置的写脏标志,可以设置在所述虚拟PCIE设备驱动预留的数据空间内,也可以设置独立的变量作为写脏标志。具体的,可以是所述虚拟PCIE设备的驱动设置该写脏标志。
所述虚拟PCIE设备设置写脏标志后,所述虚拟PCIE设备对接收到的数据进行至少一次的读写操作,例如进行一个字长的读写操作,这样,所述虚拟机的虚拟机管理器能够识别出数据已经被修改,在进行虚拟机的热迁移时能够迁移该数据。
虚拟机迁移管理模块启动虚拟机热迁移的内存迭代拷贝,为了使虚拟机的热迁移达到更好的效果,还可以在虚拟PCIE设备和物理PCIE设备的驱动中分别预留另一份数据空间,该另一份数据空间用于存放网卡与相应的虚拟PCIE设备之间的状态数据,该状态数据用于在虚拟机迁移后在目的虚拟机上恢复该状态数据,实现虚拟机状态的无缝切换。
在上述步骤104之前,本发明实施例的一种虚拟机热迁移的方法还包括:
在完成最后一轮虚拟机热迁移的迭代拷贝时,虚拟机迁移管理模块通过物理PCIE设备下发消息给网卡和对应的虚拟PCIE设备,停止数据的收发;
所述网卡接收到消息后,停止针对所述虚拟PCIE设备的数据收发;
所述虚拟PCIE设备将所述网卡停止接收数据前接收到的所有数据所在的页设置写脏标志。这样能够实现对所有的数据实现迁移,提高了虚拟机热迁移的精度。可选的,如果还存在其它通过DMA修改的变量的数据,也将其锁在的页设置写脏标志。
当所述虚拟机迁移完成准备启动目的虚拟机时,虚拟机迁移管理模块通过目的服务器的物理PCIE设备,下发启动目的虚拟机的启动消息给网卡,使得所述网卡将上述保存的网卡与相应虚拟PCIE设备之间的状态数据,通DMA方式目的虚拟机对应的虚拟PCIE设备,以实现虚拟机状态从源虚拟机到目的虚拟机的切换。
在所述虚拟机迁移完成后,虚拟机迁移管理模块发送迁移完成的第二消息给所述虚拟机虚拟PCIE设备,以取消写脏标志。
本发明实施例还提供了一种服务器,在运行在所述服务器上的虚拟机采用SR-IOV技术实现虚拟化。参考图2,图2为本发明实施例一种服务器200的结构示意图。
所述服务器200上运行至少一个虚拟机,所述至少一个虚拟机处理的数据通过物理PCIE设备传输,所述物理PCIE设备上运行至少一个虚拟PCIE设备,每个虚拟机对应一个虚拟PCIE设备;所述至少一个虚拟PCIE设备中的第一虚拟PCIE设备包括:
接收单元201,用于接收与所述第一虚拟PCIE设备对应的虚拟机热启动迁移的第一消息;
设置单元202,用于根据所述第一消息,设置写脏标志;所述写脏标志用于对经过所述第一虚拟PCIE设备的数据进行至少一次的读写操作;并在接收到所述第一虚拟PCIE设备对应的虚拟机热迁移完成的第二消息时,根据所述第二消息取消所述写脏标志。
通过上述设置单元202设置写脏标志,使得待迁移的虚拟机的第一虚拟PCIE设备对接收到的数据进行至少一次的读写操作,所述待迁移的虚拟机的虚拟机管理器能够识别出数据的变化,并将变化的数据迁移到目的虚拟机,解决了现有技术虚拟机热迁移过程中因数据通过虚拟PCIE设备,虚拟机管理器不能感知数据导致的数据无法迁移问题。
其中,所述设置单元202根据所述第一消息设置写脏标志可以包括:
所述设置单元根据所述第一消息,由所述第一虚拟PCIE设备的驱动设置写脏标志;或所述设置单元设置独立的变量作为写脏标志。
所述设置单元202通过驱动设置写脏标志可以包括:
所述设置单元在所述第一虚拟PCIE设备驱动预留的数据空间内,设置写脏标志。
作为一种可选的实现方式,所述第一虚拟PCIE设备还包括消息通道建立单元203;参考图3,图3为本发明实施例一种服务器另一种实现方式结构示意图;
所述消息通道建立单元203,用于在所述第一虚拟PCIE设备与所述物理PCIE设备之间建立消息通道,以使所述接收单元201通过建立的消息通道接收启动所述第一虚拟PCIE设备对应的虚拟机热迁移的第一消息。
作为一种可选的实现方式,所述消息通道建立单元203在所述第一虚拟PCIE设备与所述物理PCIE设备之间建立消息通道包括:
消息通道建立单元203在所述第一虚拟PCIE设备的驱动和所述物理PCIE设备的驱动分别预留一段数据空间,通过该预留的数据空间实现所述第一虚拟PCIE设备和所述物理PCIE设备之间的消息传递。
相应的,所述第一虚拟PCIE设备和所述物理PCIE设备通过预留的数据空间实现消息的传递包括:
通过所述虚拟机的网卡在所述预留的数据空间之间通过直接内存存取DMA的方式传递消息,来实现所述虚拟PCIE设备和所述物理PCIE设备之间的消息通信;或者,
所述消息通道建立单元在所述虚拟机的网卡预留一个用于通信的数据空间,并将预留的数据空间分别共享给所述虚拟PCIE设备和所述物理PCIE设备。
本发明实施例上述服务器200中虚拟PCIE设备的实现方式,可以参考图1中方法的实现方式来实现,不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (14)

1.一种虚拟机热迁移的方法,其特征在于,所述方法包括:
虚拟PCIE设备接收启动虚拟机热迁移的第一消息;其中,所述虚拟机处理的数据通过物理PCIE设备传输,所述虚拟PCIE设备是运行在所述物理PCIE设备的虚拟设备,所述虚拟机通过所述虚拟PCIE设备访问所述物理PCIE设备;
所述虚拟PCIE设备根据所述第一消息,设置写脏标志;所述写脏标志用于对经过所述虚拟PCIE设备的数据进行至少一次的读写操作;
所述虚拟PCIE设备接收所述虚拟机热迁移完成的第二消息时,根据所述第二消息取消所述写脏标志。
2.根据权利要求1所述的方法,其特征在于,所述虚拟PCIE设备根据所述第一消息设置写脏标志包括:
所述虚拟PCIE设备根据所述第一消息,由所述虚拟PCIE设备的驱动设置写脏标志;或所述虚拟PCIE设备设置独立的变量作为写脏标志。
3.根据权利要求2所述的方法,其特征在于,所述虚拟PCIE设备的驱动设置写脏标志包括:
所述虚拟PCIE设备在所述虚拟PCIE设备驱动预留的数据空间内,设置写脏标志。
4.根据权利要求1-3任一所述的方法,其特征在于,在所述虚拟PCIE设备接收启动虚拟机热迁移的第一消息之前,所述方法还包括:
在所述虚拟PCIE设备与所述物理PCIE设备之间建立消息通道,以接收启动虚拟机热迁移的第一消息。
5.根据权利要求4所述的方法,其特征在于,所述在所述虚拟PCIE设备与所述物理PCIE设备之间建立消息通道包括:
在所述虚拟PCIE设备的驱动和所述物理PCIE设备的驱动分别预留一段数据空间,通过该预留的数据空间实现消息的传递。
6.根据权利要求5所述的方法,其特征在于,所述虚拟PCIE设备和所述物理PCIE设备通过预留的数据空间实现消息的传递包括:
所述虚拟机的网卡通过在所述预留的数据空间之间通过直接内存存取DMA的方式传递消息,来实现所述虚拟PCIE设备和所述物理PCIE设备之间的消息通信;或者,
在所述虚拟机的网卡预留一个用于通信的数据空间,并将预留的数据空间分别共享给所述虚拟PCIE设备和所述物理PCIE设备。
7.根据权利要求1-6任一所述的方法,其特征在于,所述方法应用于适用单根输入输出虚拟化SR-IOV技术的虚拟机热迁移过程中。
8.一种服务器,所述服务器上运行至少一个虚拟机,所述至少一个虚拟机处理的数据通过物理PCIE设备传输,所述物理PCIE设备上运行至少一个虚拟PCIE设备,每个虚拟机对应一个虚拟PCIE设备;其特征在于,所述至少一个虚拟PCIE设备中的第一虚拟PCIE设备包括:
接收单元,用于接收与所述第一虚拟PCIE设备对应的虚拟机热启动迁移的第一消息;
设置单元,用于根据所述第一消息,设置写脏标志;所述写脏标志用于对经过所述第一虚拟PCIE设备的数据进行至少一次的读写操作;并在接收到所述第一虚拟PCIE设备对应的虚拟机热迁移完成的第二消息时,根据所述第二消息取消所述写脏标志。
9.根据权利要求8所述的服务器,其特征在于,所述设置单元根据所述第一消息设置写脏标志包括:
所述设置单元根据所述第一消息,由所述第一虚拟PCIE设备的驱动设置写脏标志;或所述设置单元设置独立的变量作为写脏标志。
10.根据权利要求9所述的服务器,其特征在于,所述设置单元通过驱动设置写脏标志包括:
所述设置单元在所述第一虚拟PCIE设备驱动预留的数据空间内,设置写脏标志。
11.根据权利要求8-10任一所述的服务器,其特征在于,在所述第一虚拟PCIE设备还包括消息通道建立单元;
所述消息通道建立单元,用于在所述第一虚拟PCIE设备与所述物理PCIE设备之间建立消息通道,以以使所述接收单元通过建立的消息通道接收启动所述第一虚拟PCIE设备对应的虚拟机热迁移的第一消息。
12.根据权利要求11所述的服务器,其特征在于,所述消息通道建立单元在所述第一虚拟PCIE设备与所述物理PCIE设备之间建立消息通道包括:
消息通道建立单元在所述第一虚拟PCIE设备的驱动和所述物理PCIE设备的驱动分别预留一段数据空间,通过该预留的数据空间实现所述第一虚拟PCIE设备和所述物理PCIE设备之间的消息传递。
13.根据权利要求12所述的服务器,其特征在于,所述第一虚拟PCIE设备和所述物理PCIE设备通过预留的数据空间实现消息的传递包括:
通过所述虚拟机的网卡在所述预留的数据空间之间通过直接内存存取DMA的方式传递消息,来实现所述虚拟PCIE设备和所述物理PCIE设备之间的消息通信;或者,
所述消息通道建立单元在所述虚拟机的网卡预留一个用于通信的数据空间,并将预留的数据空间分别共享给所述虚拟PCIE设备和所述物理PCIE设备。
14.根据权利要求8-13任一所述的服务器,其特征在于,所述第一虚拟PCIE设备对应的虚拟机适用单根输入输出虚拟化SR-IOV技术实现虚拟化。
CN201380002728.1A 2013-12-31 2013-12-31 虚拟机热迁移的方法和服务器 Active CN103890728B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/091131 WO2015100622A1 (zh) 2013-12-31 2013-12-31 虚拟机热迁移的方法和服务器

Publications (2)

Publication Number Publication Date
CN103890728A true CN103890728A (zh) 2014-06-25
CN103890728B CN103890728B (zh) 2015-12-30

Family

ID=50957869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380002728.1A Active CN103890728B (zh) 2013-12-31 2013-12-31 虚拟机热迁移的方法和服务器

Country Status (6)

Country Link
US (1) US10802870B2 (zh)
EP (2) EP3540599B1 (zh)
JP (1) JP6140303B2 (zh)
CN (1) CN103890728B (zh)
ES (1) ES2706186T3 (zh)
WO (2) WO2015100622A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015101128A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
CN105612498A (zh) * 2013-12-31 2016-05-25 华为技术有限公司 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
WO2016197848A1 (zh) * 2015-06-09 2016-12-15 华为技术有限公司 一种管理网卡的方法、装置及系统
CN109388477A (zh) * 2018-10-18 2019-02-26 郑州云海信息技术有限公司 一种虚拟机动态迁移方法
CN109426547A (zh) * 2017-09-04 2019-03-05 华为技术有限公司 一种虚拟机的热迁移方法、装置和系统
CN109753346A (zh) * 2018-12-25 2019-05-14 新华三云计算技术有限公司 一种虚拟机热迁移方法及装置

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817728B2 (en) 2013-02-01 2017-11-14 Symbolic Io Corporation Fast system state cloning
US10061514B2 (en) 2015-04-15 2018-08-28 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10970110B1 (en) 2015-06-25 2021-04-06 Amazon Technologies, Inc. Managed orchestration of virtual machine instance migration
US10228969B1 (en) * 2015-06-25 2019-03-12 Amazon Technologies, Inc. Optimistic locking in virtual machine instance migration
CN106572047A (zh) * 2015-10-09 2017-04-19 东软集团股份有限公司 物理网络安全设备及其控制方法
US10768959B2 (en) * 2015-11-24 2020-09-08 Red Hat Israel, Ltd. Virtual machine migration using memory page hints
US9936019B2 (en) * 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
US10127066B1 (en) 2016-03-31 2018-11-13 Amazon Technologies, Inc. Server synchronization using continuous block migration in provider network environments
US10133593B1 (en) 2016-03-31 2018-11-20 Amazon Technologies, Inc. Virtual machine migration
EP3338194B1 (en) 2016-05-31 2022-12-07 Avago Technologies International Sales Pte. Limited Multichannel input/output virtualization
CN107465626A (zh) 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 一种虚拟机热迁移方法及装置
CN107544841B (zh) * 2016-06-29 2022-12-02 中兴通讯股份有限公司 虚拟机热迁移方法和系统
WO2018083724A1 (ja) * 2016-11-01 2018-05-11 株式会社日立製作所 仮想計算機システム及び仮想計算機のマイグレーション方法
DE102017210671A1 (de) * 2017-06-23 2018-12-27 Continental Automotive Gmbh Verfahren zum Verlagern von Datenverarbeitungsanwendungen von einer ersten Recheneinheit zu einer zweiten Recheneinheit
WO2019126072A1 (en) 2017-12-18 2019-06-27 Formulus Black Corporation Random access memory (ram)-based computer systems, devices, and methods
US10725853B2 (en) 2019-01-02 2020-07-28 Formulus Black Corporation Systems and methods for memory failure prevention, management, and mitigation
LU101361B1 (en) * 2019-08-26 2021-03-11 Microsoft Technology Licensing Llc Computer device including nested network interface controller switches
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
US11561821B1 (en) * 2020-05-07 2023-01-24 Amazon Technologies, Inc. Controlling placement of virtualized resources based on desirability index for host pools
US20220171645A1 (en) * 2020-11-30 2022-06-02 Red Hat, Inc. Efficient out of order request completion
US11182221B1 (en) * 2020-12-18 2021-11-23 SambaNova Systems, Inc. Inter-node buffer-based streaming for reconfigurable processor-as-a-service (RPaaS)
US11782760B2 (en) 2021-02-25 2023-10-10 SambaNova Systems, Inc. Time-multiplexed use of reconfigurable hardware

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102118458A (zh) * 2011-03-10 2011-07-06 浪潮(北京)电子信息产业有限公司 一种虚拟机热迁移的方法及系统
US8156253B2 (en) * 2008-06-11 2012-04-10 Hitachi, Ltd. Computer system, device sharing method, and device sharing program
CN103064733A (zh) * 2011-10-20 2013-04-24 电子科技大学 云计算虚拟机热迁移技术
CN103201721A (zh) * 2012-08-29 2013-07-10 华为技术有限公司 虚拟机热迁移的系统和方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
US7813366B2 (en) * 2006-12-19 2010-10-12 International Business Machines Corporation Migration of a virtual endpoint from one virtual plane to another
CN100489787C (zh) 2007-07-10 2009-05-20 北京大学 一种虚拟机的外存在线迁移方法
JP5028304B2 (ja) 2008-03-11 2012-09-19 株式会社日立製作所 仮想計算機システム及びその制御方法
US8667187B2 (en) * 2008-09-15 2014-03-04 Vmware, Inc. System and method for reducing communication overhead between network interface controllers and virtual machines
US7996484B2 (en) * 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
CN101645832B (zh) 2009-05-07 2011-09-28 曙光信息产业(北京)有限公司 一种基于fpga的虚拟机网络数据包处理方法
US8689211B2 (en) * 2009-05-25 2014-04-01 International Business Machines Corporation Live migration of virtual machines in a computing environment
US8478725B2 (en) * 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
US8412863B2 (en) * 2010-10-19 2013-04-02 Hitachi, Ltd. Storage apparatus and virtual port migration method for storage apparatus
CN102073462B (zh) 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
JP5573649B2 (ja) 2010-12-17 2014-08-20 富士通株式会社 情報処理装置
US8356120B2 (en) * 2011-01-07 2013-01-15 Red Hat Israel, Ltd. Mechanism for memory state restoration of virtual machine (VM)-controlled peripherals at a destination host machine during migration of the VM
US9104459B2 (en) * 2011-01-07 2015-08-11 Red Hat Israel, Ltd. Memory change tracking during migration of virtual machine (VM) with VM-controlled assigned peripherals
US8407182B1 (en) * 2011-01-21 2013-03-26 Symantec Corporation Systems and methods for facilitating long-distance live migrations of virtual machines
US9292324B2 (en) * 2011-02-18 2016-03-22 Telefonaktiebolaget L M Ericsson (Publ) Virtual machine supervision by machine code rewriting to inject policy rule
US8533713B2 (en) * 2011-03-29 2013-09-10 Intel Corporation Efficent migration of virtual functions to enable high availability and resource rebalance
CN102457439B (zh) 2011-12-07 2014-05-28 中标软件有限公司 一种云计算系统的虚拟交换系统及其虚拟交换方法
CN102681913A (zh) * 2011-12-21 2012-09-19 中兴通讯股份有限公司 一种虚拟机到虚拟机热迁移的方法及装置
CN102662751B (zh) * 2012-03-30 2016-05-11 浪潮电子信息产业股份有限公司 一种提高基于热迁移虚拟机系统可用性的方法
US9197489B1 (en) * 2012-03-30 2015-11-24 Amazon Technologies, Inc. Live migration of virtual machines in a hybrid network environment
JP5658197B2 (ja) 2012-06-04 2015-01-21 株式会社日立製作所 計算機システム、仮想化機構、及び計算機システムの制御方法
US20140047183A1 (en) * 2012-08-07 2014-02-13 Dell Products L.P. System and Method for Utilizing a Cache with a Virtual Machine
CN103414769B (zh) * 2013-07-31 2017-03-01 华为技术有限公司 虚拟机热迁移的方法及物理机
US9454400B2 (en) * 2013-08-16 2016-09-27 Red Hat Israel, Ltd. Memory duplication by origin host in virtual machine live migration
WO2015100622A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 虚拟机热迁移的方法和服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156253B2 (en) * 2008-06-11 2012-04-10 Hitachi, Ltd. Computer system, device sharing method, and device sharing program
CN102118458A (zh) * 2011-03-10 2011-07-06 浪潮(北京)电子信息产业有限公司 一种虚拟机热迁移的方法及系统
CN103064733A (zh) * 2011-10-20 2013-04-24 电子科技大学 云计算虚拟机热迁移技术
CN103201721A (zh) * 2012-08-29 2013-07-10 华为技术有限公司 虚拟机热迁移的系统和方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015101128A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
CN105612498A (zh) * 2013-12-31 2016-05-25 华为技术有限公司 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
CN105612498B (zh) * 2013-12-31 2018-03-09 华为技术有限公司 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
US10802870B2 (en) 2013-12-31 2020-10-13 Huawei Technologies Co., Ltd. Virtual machine live migration method, virtual machine memory data processing method, server, and virtual machine system
WO2016197848A1 (zh) * 2015-06-09 2016-12-15 华为技术有限公司 一种管理网卡的方法、装置及系统
CN106301859A (zh) * 2015-06-09 2017-01-04 华为技术有限公司 一种管理网卡的方法、装置及系统
CN106301859B (zh) * 2015-06-09 2020-02-14 华为技术有限公司 一种管理网卡的方法、装置及系统
CN109426547A (zh) * 2017-09-04 2019-03-05 华为技术有限公司 一种虚拟机的热迁移方法、装置和系统
US11604670B2 (en) 2017-09-04 2023-03-14 Huawei Technologies Co., Ltd. Virtual machine live migration method, apparatus, and system
CN109388477A (zh) * 2018-10-18 2019-02-26 郑州云海信息技术有限公司 一种虚拟机动态迁移方法
CN109753346A (zh) * 2018-12-25 2019-05-14 新华三云计算技术有限公司 一种虚拟机热迁移方法及装置
CN109753346B (zh) * 2018-12-25 2021-01-01 新华三云计算技术有限公司 一种虚拟机热迁移方法及装置

Also Published As

Publication number Publication date
EP2942709B1 (en) 2018-10-31
EP2942709A4 (en) 2016-06-15
WO2015101128A1 (zh) 2015-07-09
CN103890728B (zh) 2015-12-30
EP3540599B1 (en) 2022-04-06
US10802870B2 (en) 2020-10-13
ES2706186T3 (es) 2019-03-27
JP2016513308A (ja) 2016-05-12
US20150309839A1 (en) 2015-10-29
EP2942709A1 (en) 2015-11-11
EP3540599A1 (en) 2019-09-18
JP6140303B2 (ja) 2017-05-31
WO2015100622A1 (zh) 2015-07-09

Similar Documents

Publication Publication Date Title
CN103890728B (zh) 虚拟机热迁移的方法和服务器
CN106557340B (zh) 一种配置方法及装置
CN105612498B (zh) 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统
CN103810058A (zh) 虚拟机备份方法、设备及系统
CN102782639B (zh) 使复制目标能够回收瘦供给存储系统上未使用的存储空间的系统和方法
CN100594486C (zh) 连接大容量存储设备的方法
CN102314378A (zh) 使用共享存储来迁移虚拟机的技术
US8959374B2 (en) Power management for devices in a data storage fabric
US10402104B2 (en) Devices and methods for a data storage device
US20120054396A1 (en) Method for selective replication of physical devices on a virtual self-configuring zoning expander
US20130283264A1 (en) Method for selective replication of physical devices on a virtual self-configuring zoning expander
CN102341786A (zh) 改变对光纤通道组织的访问
EP1728168A1 (en) Simulation circuit of pci express endpoint and downstream port for a pci express switch
CN104407933A (zh) 一种数据的备份方法及装置
CN104486234A (zh) 一种将业务交换机卸载到物理网卡的方法及服务器
CN103501242A (zh) 资源管理方法和多节点集群设备
CN106095622A (zh) 数据备份方法及装置
US20100274886A1 (en) Virtualized data storage in a virtualized server environment
CN105677480A (zh) 一种数据处理方法及装置
CN103544047A (zh) 云系统数据管理方法
CN104424122A (zh) 一种电子设备及内存划分方法
US20150278048A1 (en) Systems and methods for restoring data in a degraded computer system
US8990815B1 (en) Synchronizing allocated blocks of virtual disk files across primary and secondary volumes by excluding unused blocks
CN105117274A (zh) 虚拟机迁移方法和装置
CN116301588A (zh) 一种zns固态硬盘的写处理方法、装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant