CN111158853A - 虚拟机内存数据迁移方法、cpu芯片及服务器 - Google Patents
虚拟机内存数据迁移方法、cpu芯片及服务器 Download PDFInfo
- Publication number
- CN111158853A CN111158853A CN201911290531.8A CN201911290531A CN111158853A CN 111158853 A CN111158853 A CN 111158853A CN 201911290531 A CN201911290531 A CN 201911290531A CN 111158853 A CN111158853 A CN 111158853A
- Authority
- CN
- China
- Prior art keywords
- page information
- memory page
- information table
- virtual machine
- processor
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开一种虚拟机内存数据迁移方法、CPU芯片及服务器,涉及虚拟机迁移技术领域,为提高虚拟机内存数据的迁移效率而发明。所述迁移方法包括:将所述内存页信息表发送给主安全处理器,主安全处理器将内存页信息表分为段,并将不同的内存页信息表段,发送给不同的从安全处理器;各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给主安全处理器,主安全处理器将处理后的虚拟机内存数据发送给所述虚拟机监视器;所述虚拟机监视器将处理后的虚拟机内存数据及迁移信息向目标机发送,以进行虚拟机内存数据的迁移。本申请适用于虚拟机与虚拟机之间内存数据的迁移。
Description
技术领域
本申请涉及虚拟机迁移技术领域,尤其涉及一种虚拟机内存数据迁移方法、CPU芯片及服务器。
背景技术
基于安全虚拟化技术的虚拟机在进行迁移时,虚拟机监视器和安全处理器需要进行交互,交互过程会有耗时,并且每次只处理一页内存,导致了迁移效率低下,整个过程耗时较长。
发明内容
有鉴于此,本申请实施例提供一种虚拟机内存数据迁移方法、CPU芯片及服务器,能够提升虚拟机内存数据的迁移效率。
第一方面,本申请实施例提供一种虚拟机内存数据迁移方法,应用于发送端,包括:虚拟机监视器将需要迁移的虚拟机内存页信息放入内存页信息表中,并将所述内存页信息表发送给主安全处理器;所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器;各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器,所述主安全处理器将处理后的虚拟机内存数据发送给所述虚拟机监视器;所述虚拟机监视器将处理后的虚拟机内存数据及迁移信息向目标机发送,以进行虚拟机内存数据的迁移,其中,所述迁移信息包括所述需要迁移的虚拟机内存页信息或所述内存页信息表。
根据本申请一具体实施方式,在虚拟机监视器将需要迁移的虚拟机内存页信息放入内存页信息表中之后,所述方法还包括:虚拟机监视器判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则将所述内存页信息表发送给主安全处理器;其中,所述内存页信息表中的一个项目对应至少一条需要迁移的虚拟机内存页信息。
根据本申请一具体实施方式,所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,包括:主安全处理器根据主安全处理器和从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器和从安全处理器的数量之和。
根据本申请一具体实施方式,所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,包括:主安全处理器将所述内存页信息表分为第一基本段和第二基本段;根据主安全处理器和当前时刻空闲的从安全处理器的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于主安全处理器和当前时刻空闲的从安全处理器的数量之和;
所述将不同的内存页信息表段,发送给不同的从安全处理器,包括:将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器;根据下一时刻空闲的从安全处理器的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量;
所述将不同的内存页信息表段,发送给不同的从安全处理器,包括:将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器。
根据本申请一具体实施方式,所述各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器,包括:各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据进行加密处理后或进行加密处理及生成完整性校验数据后发送给所述主安全处理器。
根据本申请一具体实施方式,在判断所述内存页信息表中项目的数量是否达到阈值之前,所述方法还包括:与接收端动态协商确定所述阈值;或者,根据迁移网络状态确定所述阈值。
根据本申请一具体实施方式,所述各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器,包括:各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据经由本地的密码协处理器处理后,发送给所述主安全处理器。
根据本申请一具体实施方式,在所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,所述方法还包括:所述主安全处理器自身保留一段内存页信息表段;所述主安全处理器,在将不同的内存页信息表段,发送给不同的从安全处理器之后,所述主安全处理器根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
第二方面,本申请实施例提供另一种虚拟机内存数据迁移方法,应用于接收端,包括:虚拟机监视器接收需要迁入的虚拟机内存数据和迁移信息,所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息或内存页信息表;若所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息,则将所述内存页信息放入内存页信息表中;所述虚拟机监视器并将所述内存页信息表发送给主安全处理器;所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器;各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理后发送给所述主安全处理器。
根据本申请一具体实施方式,若所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息,将所述内存页信息放入内存页信息表中之后,所述方法还包括:判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则执行将所述内存页信息表发送给主安全处理器的步骤;其中,所述内存页信息表中的一个项目对应至少一条需要迁入的虚拟机内存页信息。
根据本申请一具体实施方式,所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,包括:主安全处理器根据主安全处理器和从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器和从安全处理器的数量之和。
根据本申请一具体实施方式,所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,包括:主安全处理器将所述内存页信息表分为第一基本段和第二基本段;根据主安全处理器和当前时刻空闲的从安全处理器的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于主安全处理器和当前时刻空闲的从安全处理器的数量之和;
所述将不同的内存页信息表段,发送给不同的从安全处理器,包括:将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器;根据下一时刻空闲的从安全处理器的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量;
所述将不同的内存页信息表段,发送给不同的从安全处理器,包括:将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器。
根据本申请一具体实施方式,所述各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理发送给主安全处理器,包括:各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据进行解密处理后,或进行解密处理及完整性校验成功后发送给主安全处理器。
根据本申请一具体实施方式,在判断所述内存页信息表中项目的数量是否达到阈值之前,所述方法还包括:与发送端动态协商确定所述阈值;或者,根据迁移网络状态确定所述阈值。
根据本申请一具体实施方式,所述各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理后发送给主安全处理器,包括:各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据经由本地的密码协处理器处理后,发送给主安全处理器。
根据本申请一具体实施方式,在所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,所述方法还包括:所述主安全处理器,自身保留一段内存页信息表段;所述主安全处理器,在将不同的内存页信息表段,发送给不同的从安全处理器之后,所述主安全处理器根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
第三方面,本申请实施例提供一种CPU芯片,包括:处理器核心、主安全处理器和从安全处理器;其中,
所述处理器核心,用于运行虚拟机监视器,以通过所述虚拟机监视器将需要迁移的虚拟机内存页信息放入内存页信息表中;将所述内存页信息表发送给主安全处理器;所述主安全处理器,与所述处理核心电连接,用于将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器;所述从安全处理器,数量为两个以上,分别与所述主安全处理器电连接,用于根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器,以使所述主安全处理器将处理后的虚拟机内存数据发送给虚拟机监视器;所述处理器核心,还用于通过所述虚拟机监视器将处理后的虚拟机内存数据及迁移信息向目标机发送,以进行虚拟机内存数据的迁移,其中,所述迁移信息包括所述需要迁移的虚拟机内存页信息或所述内存页信息表。
根据本申请一具体实施方式,所述处理器核心,还用于:通过所述虚拟机监视器判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则将所述内存页信息表发送给主安全处理器;所述内存页信息表中的一个项目对应至少一条需要迁移的虚拟机内存页信息。
根据本申请一具体实施方式,所述主安全处理器,具体用于:根据主安全处理器从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器和从安全处理器的数量之和。
根据本申请一具体实施方式,所述主安全处理器,还用于:将所述内存页信息表分为第一基本段和第二基本段;根据主安全处理器和当前时刻空闲的从安全处理器的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于主安全处理器和当前时刻空闲的从安全处理器的数量之和;将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器;根据下一时刻空闲的从安全处理器的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量;将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器。
根据本申请一具体实施方式,所述从安全处理器,具体用于:根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据进行加密处理后或进行加密处理及生成完整性校验数据后发送给所述主安全处理器。
根据本申请一具体实施方式,所述处理器核心,还用于通过本地的虚拟机监视器,与接收端虚拟机监视器动态协商确定所述阈值,或者,根据迁移网络状态确定所述阈值。
根据本申请一具体实施方式,所述从安全处理器,具体用于根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据经由本地的密码协处理器处理后,发送给所述主安全处理器。
根据本申请一具体实施方式,所述主安全处理器,还用于:在将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,自身保留一段内存页信息表段;并在将不同的内存页信息表段,发送给不同的从安全处理器之后,根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
第四方面,本申请实施例提供另一种CPU芯片,包括:处理器核心、主安全处理器和从安全处理器;其中,
所述处理器核心,用于运行虚拟机监视器,以通过所述虚拟机监视器接收需要迁入的虚拟机内存数据和迁移信息,所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息或内存页信息表;若所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息,则将所述内存页信息放入内存页信息表中;将所述内存页信息表发送给主安全处理器;所述主安全处理器,与所述处理器核心电连接,用于将所述内存页信息表分为两个以上的内存页信息表段;将不同的内存页信息表段,发送给不同的从安全处理器;所述从安全处理器,数量为两个以上,分别与所述主安全处理器电连接,用于根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理后发送给所述主安全处理器。
根据本申请一具体实施方式,所述处理器核心,还用于:通过所述虚拟机监视器判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则将所述内存页信息表发送给主安全处理器;其中,所述内存页信息表中的一个项目对应至少一条需要迁入的虚拟机内存页信息。
根据本申请一具体实施方式,所述主安全处理器,还用于:根据主安全处理器和从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器和从安全处理器的数量之和。
根据本申请一具体实施方式,所述主安全处理器,还用于:将所述内存页信息表分为第一基本段和第二基本段;根据当前时刻空闲的从安全处理器的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于当前时刻空闲的从安全处理器的数量;将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器;根据下一时刻空闲的从安全处理器的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量;将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器。
根据本申请一具体实施方式,所述从安全处理器具体用于:根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据进行解密处理后,或进行解密处理及完整性校验成功后发送给主安全处理器。
根据本申请一具体实施方式,所述核心处理器,还用于通过本地虚拟机监视器与发送端虚拟机监视器动态协商确定所述阈值,或者,根据迁移网络状态确定所述阈值。
根据本申请一具体实施方式,所述从安全处理器具体用于:根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据经由本地的密码协处理器处理后,发送给主安全处理器。
根据本申请一具体实施方式,所述主安全处理器,还用于:在将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,自身保留一段内存页信息表段;并在将不同的内存页信息表段,发送给不同的从安全处理器之后,根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
第五方面,本申请实施例提供一种服务器,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施方式所述的迁移方法。
本申请实施例的虚拟机内存数据迁移方法、CPU芯片及服务器,虚拟机迁移发送端可借助虚拟机内存页信息表,将需要迁移的内存页信息批量发送给主安全处理器处理,而不是一页一页单独处理,可提高处理效率。此外,本申请中,虚拟机监视器将内存页信息表发送给主安全处理器后,主安全处理器可将一张内存页信息表分段后分派到多个从安全处理器来实现并发处理多页内存,减少虚拟机监视器和安全处理器的交互时间,进一步提升迁移效率,减少迁移时间开销,减少停机时间。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请一实施例虚拟机内存数据迁移方法流程示意图;
图2为本申请一实施例中内存页信息表的结构示意图;
图3为本申请另一实施例虚拟机内存数据迁移方法流程示意图;
图4为本申请另一实施例虚拟机内存数据迁移方法流程示意图;
图5为本申请一实施例虚拟机内存数据迁移方法流程示意图;
图6为本申请另一实施例虚拟机内存数据迁移方法流程示意图;
图7为本申请另一实施例虚拟机内存数据迁移方法流程示意图;
图8为本申请另一实施例虚拟机内存数据迁移方法流程示意图;
图9为本申请另一实施例虚拟机内存数据迁移方法流程示意图;
图10为本申请一实施例CPU芯片的框图;
图11为本申请另一实施例CPU芯片的框图;
图12为本申请一实施例服务器的结构示意图。
具体实施方式
本申请实施例主要目的是提供一种虚拟机内存数据迁移方法、装置、电子设备及存储介质,在进行虚拟机迁移时,可利用多个安全处理器并行处理多个虚拟机内存页的数据,以提升虚拟机内存数据的迁移效率。所述虚拟机内存数据迁移方法及装置,可适用于基于安全虚拟化技术的虚拟机之间的虚拟机内存数据的迁移。
下面结合附图对本申请实施例进行详细描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
虚拟机(VM,Virtual Machine)技术就是在一个宿主计算机体系结构上模拟运行其他的客户机操作系统,模拟的客户机可以与宿主计算机是同一个体系结构,也可以是不同的体系结构。
硬件虚拟化是比较流行的虚拟化技术。硬件虚拟化直接将宿主系统的硬件系统虚拟化供虚拟机使用。硬件虚拟化使用虚拟机监视器(VMM,Virtual Machine Monitor)来隔离虚拟系统与宿主硬件。VMM也可称为虚拟机管理器,其可直接运行在系统硬件上,也可以运行在宿主操作系统上。VMM实现了从虚拟资源到物理资源的映射,并利用本地物理资源进行计算。当虚拟系统访问系统资源时,VMM将接管这个请求,并将处理结果返回给虚拟机系统,这样就实现了多个硬件设备的虚拟,保证虚拟系统的有效隔离。
虚拟机迁移属于虚拟化技术中一个很重要的应用场景,其可包括物理机到虚拟机的迁移(P2V,Physical-to-Virtual),虚拟机到虚拟机的迁移(V2V,Virtual-to-Virtual)。其中,P2V迁移是指迁移物理服务器上的操作系统及其上的应用软件和数据到VMM管理的虚拟服务器中。V2V迁移是在虚拟机之间移动操作系统和数据。虚拟机从一个物理机上的VMM迁移到另一个物理机的VMM,这两个VMM的类型可以相同,也可以不同。本申请中的虚拟机迁移主要是指V2V迁移。
对于VM的内存状态的迁移,可采用预拷贝(pre-copy)的策略。迁移开始之后,源主机VM仍在运行,目的主机VM尚未启动。迁移通过一个循环,将源主机VM的内存数据发送至目的主机VM。循环第一轮发送所有内存页数据,接下来的每一轮循环发送上一轮预拷贝过程中被VM写过的脏页(dirty pages)内存数据。直到时机成熟,预拷贝循环结束,进入停机拷贝阶段,源主机被挂起,不再有内存更新。最后一轮循环中的脏页被传输至目的主机VM。预拷贝机制极大的减少了停机拷贝阶段需要传输的内存数据量,从而将停机时间大大缩小。然而,对于更新速度非常快的内存部分,每次循环过程都会变脏,需要重复pre-copy,同时也导致循环次数非常多,迁移的时间变长。
基于安全虚拟化技术的虚拟机,由于其内存数据使用了虚拟机加密密钥进行加密,因此在迁移时,虚拟机监视器需要同安全处理器进行交互。普通虚拟机和基于安全虚拟化技术的虚拟机的迁移过程区别如下:
对于普通虚拟机迁移,虚拟机监视器获取到需要迁移的内存页之后,直接将内存页数据和相关信息直接发送给接收端。
基于安全虚拟化技术的虚拟机在进行迁移时,由于其内存被加密,所以当虚拟机监视器获取到需要迁移的内存页后,需要先将该内存页转交给安全处理器处理,然后等待安全处理器处理结束,接着虚拟机监视器继续查找下一个需要迁移的内存页。重复上面的过程,直到满足迁移结束条件。
基于安全虚拟化技术的虚拟机在进行迁移时,虚拟机监视器和安全处理器需要进行交互,交互过程会有耗时,并且每次只处理一页内存,导致了迁移效率低下,整个过程耗时较长。本申请实施例中,支持安全虚拟化的硬件平台可有多个安全处理器。其中,安全处理器可以是一种可独立进行密钥生成、加解密的处理器,其内部可拥有独立的处理器和存储单元,可存储密钥和特征数据等。
此外,虚拟机迁移的过程中,虚拟机停机时间是虚拟机监视器停止虚拟机到恢复虚拟机运行的时间间隔,其决定着虚拟机迁移的体验,而虚拟机内存页的处理时间长短会直接影响停机时间。基于安全虚拟化技术的虚拟机在迁移时,由于虚拟机的内存页需要经过安全处理器处理,所以停机时间也会明显增加。
图1为本申请一实施例虚拟机内存数据迁移方法流程示意图,应用于发送端,即应用于虚拟机迁移发送端,所述方法可包括如下步骤:
S100、将需要迁移的虚拟机内存页信息放入内存页信息表中。
虚拟机内存页为宿主机物理内存上的一块(可称为页框),一个虚拟机内存页即为宿主机物理内存上的一个页框。一个虚拟机内存页可对应一条虚拟机内存页信息。虚拟机内存页信息可采取数组或列表等形式。
每条虚拟机内存页信息可包括物理内存地址、对应的物理内存长度以及内存页中的数据是否被修改过的标识(如可用标志位1表示修改过,用标志位0表示未修改过)。若一条虚拟机内存页信息中包含内存页中的数据被修改过的标识,则表明该条虚拟机内存页信息为需要迁移(迁出)的虚拟机内存页信息。
虚拟机内存页信息可保存在内存控制器(也可称为内存管理器)中。发送端虚拟机监视器可通过对发送端内存控制器中的虚拟机内存页信息进行扫描,从中获取需要迁移的虚拟机内存页信息。
在首轮(第一轮)迁移时,由于需要发送所有内存页数据,因此,每条虚拟机内存页信息均为需要迁移的虚拟机内存页信息。
在非首轮迁移时,仅需要发送上一轮预拷贝过程中被VM写过的脏页内存数据,因此,可能仅有部分虚拟机内存页信息为需要迁移的虚拟机内存页信息。
发送端虚拟机监视器,将获取的需要迁移的虚拟机内存页信息,放入内存页信息表中。内存页信息表可简称为信息表或表。在内存页信息表中可包括多个项目,每个项目在内存页信息表中可依次存放。每个项目可对应至少一条需要迁移的虚拟机内存页信息。内存页信息表可采用数组、列表或链表等形式。图2为本申请一实施例中内存页信息表的结构示意图。
S102、将内存页信息表发送给主安全处理器。
本实施例中,基于安全虚拟化的平台有多个安全处理器,多个安全处理器之间具有主从关系;其中一个安全处理器为主安全处理器,用来管理其它的安全处理器;其它安全处理器被称作从安全处理器。
发送端虚拟机监视器,在将需要迁移的虚拟机内存页信息放入内存页信息表中之后,将内存页信息表发送给主安全处理器。
S104、将内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器。
发送端主安全处理器,可根据本地主安全处理器和从安全处理器的数量,对内存页信息表进行动态分段,在一个例子中,发送端主安全处理器所分的内存页信息表段的数量,小于或等于本地的主安全处理器和从安全处理器的数量之和。
在某些情况下,可能存在并非所有的从安全处理器均处于空闲的状态,因此,在一些实施方式中,发送端主安全处理器,也可根据本地主安全处理器和当前空闲的从安全处理器的数量,对内存页信息表进行动态分段。具体地,发送端主安全处理器,可根据本地主安全处理器和当前空闲的从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于发送端本地主安全处理器和当前空闲的从安全处理器的数量之和。在一个例子中,发送端主安全处理器所分的内存页信息表段的数量,与本地的主安全处理器和当前空闲的从安全处理器的数量相等,以最大化利用本地主安全处理器和当前空闲的从安全处理器,提升数据处理的效率。
发送端主安全处理器,可通过查询从安全处理器的空闲标志位来确定本地当前空闲的从安全处理器,发送端主安全处理器也可通过接收本地从安全处理器发送的空闲中断信号来确定本地当前空闲的从安全处理器。
发送端主安全处理器将内存页信息表分为两个以上的内存页信息表段之后,将不同的内存页信息表段,发送给本地当前空闲的不同的从安全处理器。
在一个具体例子中,对于一个包含有30个项目的内存页信息表,发送端主安全处理器通过查询本地从安全处理器的空闲标志位(如为0则表示空闲),确定本地当前时刻处于空闲状态的从安全处理器的数量为3个,即从安全处理器C1、C2和C3处于空闲状态,发送端主安全处理器据此将内存页信息表至少均分为3个子段,即D1段、D2段和D3段,并将D1段发送给从安全处理器C1处理,将D2段发送给从安全处理器C2处理,将D3段发送给从安全处理器C3处理。
由于不同的虚拟机内存页的数据大小可能不同,或者不同的从安全处理器的处理速度可能不同,这样,不同的从安全处理器在处理不同的虚拟机内存页数据时,可能存在有的从安全处理器先行处理完毕,提前处于空闲状态的情况。为了适应这种情况,进一步提升数据处理效率,在一些实施方式中,对于同一内存页信息表,发送端主安全处理器可进行两次分段处理,具体地,发送端主安全处理器可先将内存页信息表分为第一基本段和第二基本段。第一基本段中包括的项目的数量可大于第二基本段中包含的项目的数量,二者可呈一定的倍数或比例关系。在一个例子中,第一基本段中包括的项目的数量,与第二基本段中包含的项目的数量的比例关系可为5∶1,在另一个例子中,第一基本段中包括的项目的数量,与第二基本段中包含的项目的数量的比例关系可为3∶1,在又一个例子中,第一基本段中包括的项目的数量,与第二基本段中包含的项目的数量的比例关系可为2∶1。
发送端主安全处理器将内存页信息表分为第一基本段和第二基本段后,可根据主安全处理器和本地当前时刻空闲的从安全处理器的数量,将第一基本段分为两个以上的第一子段,并将不同的第一子段,发送给本地当前时刻空闲的不同的从安全处理器。其中,第一子段的数量,小于或等于主安全处理器和当前时刻空闲的从安全处理器的数量之和。在一个例子中,主安全处理器所分的第一子段的数量,与本地主安全处理器和当前时刻空闲的从安全处理器的数量之和相等,以最大化利用本地主安全处理器和当前时刻空闲的从安全处理器,提升数据处理的效率。
发送端主安全处理器在将两个以上的第一子段,分别发送给本地不同的从安全处理器后,在等待这些从安全处理器处理数据的过程中,可确定下一时刻空闲的从安全处理器的数量,即确定下一时刻上述从安全处理器中先行处于空闲状态的从安全处理器的数量,并根据下一时刻空闲的从安全处理器的数量,将第二基本段分为两个以上的第二子段,并将不同第二子段,分别发送给下一时刻空闲的不同的从安全处理器。第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量。在一个例子中,发送端主安全处理器所分的第二子段的数量,与本地下一时刻空闲的从安全处理器的数量相等,以最大化利用本地下一时刻空闲的从安全处理器,进一步提升数据处理的效率。
在一个具体例子中,对于一个包含有50个项目的内存页信息表,发送端主安全处理器先将内存页信息表分为第一基本段D1(包含40个项目)和第二基本段D2(包含10个项目)。发送端主安全处理器,通过查询本地从安全处理器的空闲标志位(如为0则表示空闲),确定当前时刻本地处于空闲状态的从安全处理器的数量为5个,即从安全处理器C1、C2、C3、C4和C5处于空闲状态,发送端主安全处理器据此将第一基本段D1至少均分为5个第一子段,即D11段、D12段、D13段、D14段和D15段,并将D11段发送给从安全处理器C1处理,将D12段发送给从安全处理器C2处理,将D13段发送给从安全处理器C3处理,将D14段发送给从安全处理器C4处理,将D15段发送给从安全处理器C5处理。
发送端主安全处理器在等待从安全处理器C1、C2、C3、C4和C5处理数据的过程中,确定下一时刻本地空闲的从安全处理器有C1和C3(表明C1和C3相对于C2、C4和C5先行处于空闲状态)。发送端主安全处理器据此将第二基本段D2至少均分为两个第二子段,即D21段和D22段,将D21段发送给从安全处理器C1处理,将D22段发送给从安全处理器C3处理。这样,可最大化利用本地下一时刻空闲的从安全处理器,进一步提升数据处理的效率。
S106、各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器。
各从安全处理器,根据接收到的内存页信息表段中记录的物理内存地址及物理内存长度,读取虚拟机内存数据,对读取虚拟机内存数据进行处理。
在一些实施方式中,各从安全处理器可将读取的虚拟机内存数据进行加密处理。具体地,可采用对称加密算法(如DES、3DES或AES等算法)进行对称加密处理,也可采用非对称加密算法(如RSA、ECC等算法)进行非对称加密处理。
在一些实施方式中,各从安全处理器可将读取的虚拟机内存数据除了进行加密处理外,还可生成完整性校验数据,以防止数据被篡改。在一个例子中,各从安全处理器可利用哈希算法(MD5、SHA1等),生成一个消息摘要。
在一些实施方式中,在各从安全处理器将读取的虚拟机内存数据进行加密处理或进行加密处理及生成完整性校验数据后,还可对加密处理后的虚拟机内存数据,和/或生成的完整性校验数据进行压缩处理,以节省在进行数据传输时所消耗的网络流量。
在一些实施方式中,在主安全处理器将内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,主安全处理器自身可保留一段内存页信息表段,也就是说,主安全处理器自身也可对内存页信息表段进行处理,具体地,主安全处理器,在将不同的内存页信息表段,发送给不同的从安全处理器之后,可在从安全处理器进行处理的过程中,主安全处理器根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理,这样,主安全处理器和从安全处理器可对内存页信息表段进行并行处理,提高处理效率。
发送端本地可有多个密码协处理器,密码协处理器可集成在安全处理器内部,也可位于安全处理器外部。在一些实施方式中,为了提高数据处理效率,各从安全处理器可将读取的虚拟机内存数据发送给本地的密码协处理器进行处理。
各从安全处理器将读取的虚拟机内存数据处理后,发送给发送端主安全处理器。
S108、将处理后的虚拟机内存数据及迁移信息向目标机发送,以进行虚拟机内存数据的迁移。
所述主安全处理器将处理后的虚拟机内存数据发送给发送端虚拟机监视器,通过发送端虚拟机监视器将处理后的虚拟机内存数据及迁移信息向目标机发送,以进行虚拟机内存数据的迁移。
所述迁移信息可包括所述需要迁移的虚拟机内存页信息或所述内存页信息表。为了便于接收方对接收到的虚拟机内存数据进行完整性校验,所述迁移信息还可包括完整性校验数据。
根据上述步骤S100-S108,可实现至少部分虚拟机内存数据的迁移,若根据上述步骤S100-S108执行一轮迁移后,仍有脏页内存数据需要迁移,则可重复执行上述步骤S100-S108,直至满足迁移结束条件。迁移结束条件可以是根据最近几轮(如最近三轮)迁移的脏页的数量,预估下一轮剩余的脏页数量低于预定阈值(如低于3),也可以是迁移的循环次数达到预定阈值(如30次)。
虚拟机内存页信息表记录了一定数量的内存页信息,这些内存页信息对应的内存页数据需要通过安全处理器处理(如解密)后才可发送给虚拟机迁移接收端。本实施例的虚拟机内存数据迁移方法,虚拟机迁移发送端可借助虚拟机内存页信息表,将需要迁移的内存页信息批量发送给主安全处理器处理,而不是一页一页单独处理,可提供处理效率。此外,本申请中,多个安全处理器之间具有主从关系,主安全处理器用来管理从安全处理器;虚拟机监视器将内存页信息表发送给主安全处理器后,主安全处理器可将一张内存页信息表分段后分派到多个从安全处理器来实现并发处理多页内存,减少虚拟机监视器和安全处理器的交互时间,提升迁移效率,减少迁移时间开销,减少停机时间;此外,在多个从安全处理器并发处理多页内存时,主安全处理器也可对内存页信息表段进行并行处理,进一步提高数据处理效率,减少虚拟机监视器和安全处理器的交互时间,提升迁移效率。
图3为本申请另一实施例虚拟机内存数据迁移方法流程示意图,参看图3,本实施例与图1所示实施例基本相同,不同之处在于,本实施例中,在虚拟机监视器将需要迁移的虚拟机内存页信息放入内存页信息表中之后,所述方法还可包括步骤:
S101、判断所述内存页信息表中项目的数量是否达到阈值。
虚拟机监视器判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则将所述内存页信息表发送给主安全处理器。
如前所述,对于更新速度非常快的内存部分,每次循环过程内存页都可能会变脏,需要重复预拷贝,同时也导致循环次数非常多,迁移的时间变长。对此,本申请中通过阈值来集中控制内存页信息表中项目的数量,即通过阈值集中控制一个循环内的脏页的数量,可在一个循环内集中传输一定数量的脏页,这样,可有效减少循环次数,缩短迁移时间。
所述阈值可预先确定为一个固定值。具体可根据安全处理器的处理能力以及虚拟机监视器的处理能力来确定,例如:当阈值增大到一定值时,性能不再有明显提升,此值可以作为阈值。比如可为30、40、45或50等。
在一些实施方式中,也可通过发送端虚拟机监视器和接收端的虚拟机监视器以协商的方式确定所述阈值。比如,可以取发送端和接收端安全处理器和虚拟机监视器处理能力(例如每秒钟处理数据量)的最小值作为阈值。所述阈值,也可在数据处理的过程中,通过动态协商的方式确定,以充分利用安全处理器和虚拟机监视器的处理能力。
在一些实施方式中,也可根据迁移网络状态确定所述阈值。在一个例子中,可根据发送端或接收端的安全处理器和虚拟机监视器处理能力(包含最大处理能力和最小处理能力)确定一个范围,当网络状态好且传输数据的速度超过处理能力时,则取最大处理能力的值作为阈值,当网络状态不好且传输数据的速度低于处理能力时,取接近最小处理能力的值作为阈值(不低于最小处理能力)。
下面以一个实施例为例说明应用于虚拟机迁移发送端的虚拟机内存数据迁移方法。
图4为本申请另一实施例虚拟机内存数据迁移方法流程示意图,参看图4,本实施例虚拟机内存数据迁移方法,可包括如下步骤:
S300、获取需要迁移的虚拟机内存页信息。
迁移开始后,发送端虚拟机监视器不断获取需要迁移的虚拟机内存页信息。
S302、将内存页信息放入到虚拟机内存页信息表中。
发送端虚拟机监视器将获取到的需要迁移的虚拟机内存页信息,放入到虚拟机内存页信息表中,直到内存页信息表中的项目数量达到一定的阈值。
S304、判断内存页信息表中的项目数量是否达到阈值。
发送端虚拟机监视器,将获取到的需要迁移的虚拟机内存页信息放入到虚拟机内存页信息表中后,判断内存页信息表中的项目数量是否达到阈值。若内存页信息表中的项目数量达到阈值,则执行步骤S306,否则执行步骤S300。
S306、递交内存页信息表给主安全处理器处理。
在内存页信息表中的项目数量达到阈值后,发送端虚拟机监视器将内存页信息表递交给主安全处理器处理。
S308、获取内存页信息表和从安全处理器数量。
S310、根据主安全处理器和从安全处理器的数量对内存页信息表进行分段。
主安全处理器,根据主安全处理器和从安全处理器的数量对内存页信息表进行分段,得到两个以上的存页信息表段。两个以上的存页信息表段的数量可等于主安全处理器和从安全处理器的数量。
S312、将划分给从安全处理器的内存页信息表段发送给对应从安全处理器。
主安全处理器对内存页信息表进行分段后,可将分段后得到的存页信息表段进行划分,部分由从安全处理器处理,部分(可以是一段)由主安全处理器自身进行处理。
S314、获取内存页信息表段并开始处理。
各从安全处理器根据主安全处理所发送的内存页信息表段,获取相应的内存数据并进行处理。具体地,各从安全处理器可将读取的虚拟机内存数据进行加密处理。除了进行加密处理外,还可生成完整性校验数据,以防止数据被篡改。
S316、处理划分给主安全处理器的内存页信息表段。
主安全处理器,将划分给从安全处理器的内存页信息表段发送给对应从安全处理器后,处理划分给自身的内存页信息表段,即根据划分给自身的内存页信息表段,获取相应的内存数据并进行处理,具体地,主安全处理器可将读取的虚拟机内存数据进行加密处理。除了进行加密处理外,还可生成完整性校验数据,以防止数据被篡改。
S318、处理完成后通知主安全处理器。
各从安全处理器对相应的内存数据处理完成后,通知主安全处理器。
S320、等待所有从安全处理器处理完成。
S322、返回结果,等待下一次交互请求。
主安全处理器和从安全处理器对读取的内存数据进行处理后,通过主安全处理器向虚拟机监视器返回结果,等待下一次交互请求。
S324、接收主安全处理器返回的结果,将结果及相关信息发送出去。
发送端虚拟机监视器,在等待所有安全处理器处理结束后,接收主安全处理器返回的处理结果,将处理结果及相关信息(迁移信息)向接收端虚拟机监视器发送。
S326、判断是否满足结束迁移条件。
发送端虚拟机监视器将处理后的虚拟机内存数据及迁移信息发送给接收端之后,判断是否满足结束迁移条件,若满足,则将发送端虚拟机停机以免新的脏页产生,并将剩余的脏页的内存数据经过上述流程步骤处理后,结束迁移流程,否则,执行步骤S300。
其中,所述迁移信息可包括所述需要迁移的虚拟机内存页信息或所述内存页信息表。为了便于接收方对接收到的虚拟机内存数据进行完整性校验,所述迁移信息还可包括完整性校验数据。
本实施例的虚拟机内存数据迁移方法,主安全处理器和多个从安全处理器并发处理内存数据,可提高数据处理效率,减少虚拟机监视器和安全处理器的交互时间,提升迁移效率,减少迁移时间开销,减少停机时间。
图5为本申请一实施例虚拟机内存数据迁移方法流程示意图,应用于接收端,即应用于虚拟机迁移接收端,参看图5,所述方法可包括如下步骤:
S400、接收需要迁入的虚拟机内存数据和内存页信息。
接收端虚拟机监视器,从发送端虚拟机监视器接收需要迁入的虚拟机内存数据和迁移信息,所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息。
S402、将所述内存页信息放入内存页信息表中。
接收端虚拟机监视器,将所述内存页信息放入内存页信息表中。内存页信息表可简称为信息表或表。在内存页信息表中可包括多个项目,每个项目在内存页信息表中可依次存放。每个项目可对应至少一条虚拟机内存页信息。内存页信息表可采用数组、列表或链表等形式。
S404、将所述内存页信息表发送给主安全处理器。
S406、将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器。
接收端主安全处理器,可根据本地主安全处理器和从安全处理器的数量,对内存页信息表进行动态分段,在一个例子中,接收端主安全处理器所分的内存页信息表段的数量,小于或等于本地的主安全处理器和从安全处理器的数量之和。
在某些情况下,可能存在并非所有的从安全处理器均处于空闲的状态,因此,在一些实施方式中,接收端主安全处理器,也可根据本地主安全处理器和当前时刻空闲的从安全处理器的数量,对内存页信息表进行动态分段,具体地,接收端主安全处理器,可根据本地主安全处理器和当前时刻空闲的从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于接收端本地主安全处理器和当前空闲的从安全处理器的数量之和。在一个例子中,所分的内存页信息表段的数量,与本地主安全处理器和当前时刻空闲的从安全处理器的数量相等,以最大化利用本地主安全处理器和当前时刻空闲的安全处理器,提升数据处理的效率。
接收端主安全处理器,可通过查询本地的从安全处理器的空闲标志位来确定当前时刻空闲的从安全处理器,也可通过接收本地的从安全处理器发送的空闲中断信号来确定本地当前时刻空闲的从安全处理器。
接收端主安全处理器,将内存页信息表分为两个以上的内存页信息表段之后,将不同的内存页信息表段,发送给本地当前时刻空闲的不同的从安全处理器。
在一个具体例子中,对于一个包含有30个项目的内存页信息表,接收端主安全处理器通过查询本地从安全处理器的空闲标志位(如为0则表示空闲)确定当前时刻本地处于空闲状态的从安全处理器的数量为3个,即从安全处理器C1‘、C2‘和C3‘处于空闲状态,接收端主安全处理器据此将内存页信息表至少均分为3个子段,即D1‘段、D2‘段和D3‘段,并将D1‘段发送给从安全处理器C1‘处理,将D2‘段发送给从安全处理器C2‘处理,将D3‘段发送给从安全处理器C3‘处理。
由于不同的虚拟机内存页的数据大小可能不同,或者不同的从安全处理器的处理速度可能不同,这样,不同的从安全处理器在处理不同的虚拟机内存页数据时,可能存在有的从安全处理器先行处理完毕,提前处于空闲状态的情况。为了适应这种情况,进一步提升数据处理效率,在一些实施方式中,对于同一内存页信息表,接收端主安全处理器可进行两次分段处理,具体地,接收端主安全处理器可先将内存页信息表分为第一基本段和第二基本段。第一基本段中包括的项目的数量可大于第二基本段中包含的项目的数量,二者可呈一定的倍数或比例关系。在一个例子中,第一基本段中包括的项目的数量,与第二基本段中包含的项目的数量的比例关系可为5∶1,在另一个例子中,第一基本段中包括的项目的数量,与第二基本段中包含的项目的数量的比例关系可为3∶1,在又一个例子中,第一基本段中包括的项目的数量,与第二基本段中包含的项目的数量的比例关系可为2∶1。
接收端主安全处理器将内存页信息表分为第一基本段和第二基本段后,可根据主安全处理器和当前时刻空闲的从安全处理器的数量,将第一基本段分为两个以上的第一子段,并将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器。其中,第一子段的数量,小于或等于主安全处理器和当前时刻空闲的安全处理器的数量之和。在一个例子中,接收端主安全处理器所分的第一子段的数量,与主安全处理器和当前时刻空闲的安全处理器的数量相等,以最大化利用主安全处理器和当前时刻空闲的安全处理器,提升数据处理的效率。
接收端主安全处理器在将两个以上的第一子段,分别发送给不同的从安全处理器后,在等待这些从安全处理器处理数据的过程中,可确定下一时刻空闲的从安全处理器的数量,即确定下一时刻上述从安全处理器中先行处于空闲状态的从安全处理器的数量,并根据下一时刻空闲的从安全处理器的数量,将第二基本段分为两个以上的第二子段,并将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器。第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量。在一个例子中,接收端主安全处理器所分的第二子段的数量,与下一时刻空闲的从安全处理器的数量相等,以最大化利用下一时刻空闲的从安全处理器,进一步提升数据处理的效率。
在一个具体例子中,对于一个包含有50个项目的内存页信息表,接收端主安全处理器先将内存页信息表分为第一基本段D1‘(包含40个项目)和第二基本段D2‘(包含10个项目)。接收端主安全处理器通过查询本地从安全处理器的空闲标志位(如为0则表示空闲)确定本地当前时刻处于空闲状态的从安全处理器的数量为5个,即从安全处理器C1‘、C2‘、C3‘、C4‘和C5‘处于空闲状态,主安全处理器据此将第一基本段D1‘至少均分为5个第一子段,即D11‘段、D12‘段、D13‘段、D14‘段和D15‘段,并将D11‘段发送给从安全处理器C1‘处理,将D12‘段发送给从安全处理器C2‘处理,将D13‘段发送给从安全处理器C3‘处理,将D14‘段发送给从安全处理器C4‘处理,将D15‘段发送给从安全处理器C5‘处理。
接收端主安全处理器在等待从安全处理器C1‘、C2‘、C3‘、C4‘和C5‘处理数据的过程中,确定本地下一时刻空闲的从安全处理器有C1‘和C3‘(表明C1‘和C3‘相对于C2‘、C4‘和C5‘先行处于空闲状态)。接收端主安全处理器据此将第二基本段D2‘至少均分为两个第二子段,即D21‘段和D22‘段,将D21‘段发送给从安全处理器C1‘处理,将D22‘段发送给从安全处理器C3‘处理。这样,可最大化利用本地下一时刻空闲的安全处理器,进一步提升数据处理的效率。
S408、各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理后发送给主安全处理器。
接收端虚拟机监视器,从发送端虚拟机监视器接收到需要迁入的内存数据后,可将这部分数据进行缓存。接收端本地的各安全处理器,可根据接收到的内存页信息表段,从接收端虚拟机监视器所缓存的数据中,读取需要迁入的虚拟机内存数据。
在一些实施方式中,接收端本地的各从安全处理器,可将读取的所述需要迁入的虚拟机内存数据进行解密处理。
在一些实施方式中,接收端本地的各从安全处理器,可将读取的所述需要迁入的虚拟机内存数据进行解密处理之外,还可根据完整性校验数据,对需要迁入的虚拟机内存数据进行完整性校验,以防止数据被篡改。
在一些实施方式中,如果接收端虚拟机监视器,从发送端虚拟机监视器接收的需要迁入的内存数据为经压缩处理后的数据,则在接收端本地的各从安全处理器,将读取的所述需要迁入的虚拟机内存数据进行解密处理之前,或进行解密处理及完整性校验之前,还需所述需要迁入的虚拟机内存数据进行解压缩,和/或对完整性校验信息进行解压缩处理;其中,所述完整性校验信息可包含在所述迁移信息中。
在一些实施方式中,在主安全处理器将内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,主安全处理器自身可保留一段内存页信息表段,也就是说,主安全处理器自身也可对内存页信息表段进行处理,具体地,主安全处理器,在将不同的内存页信息表段,发送给不同的从安全处理器之后,可在从安全处理器进行处理的过程中,主安全处理器根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理,这样,主安全处理器和从安全处理器可对内存页信息表段进行并行处理,提高处理效率。
接收端本地可有多个密码协处理器,密码协处理器可集成在安全处理器内部,也可位于安全处理器外部。在一些实施方式中,为了提高数据处理效率,接收端本地的各从安全处理器,可将读取的虚拟机内存数据发送给本地的密码协处理器进行处理。
接收端本地的各从安全处理器,将读取的虚拟机内存数据处理后,发送给主安全处理器,通过主安全处理器写入虚拟机内存。具体地,接收端本地的从各安全处理器,将读取的虚拟机内存数据处理后,发送给主安全处理器,主安全处理器通过接收端的内存控制器,写入接收端的虚拟机内存。在接收端的内存控制器,将经接收端本地的安全处理器处理后的内存数据写入接收端的虚拟机内存时,需要利用加密算法对要写入的内存数据进行加密。
在一些实施方式中,接收端本地的各从安全处理器,将读取的虚拟机内存数据处理后,发送给主安全处理器,也可通过主安全处理器将处理结果返回给接收端虚拟机监视器,由接收端虚拟机监视器,通过接收端的内存控制器,写入接收端的虚拟机内存。
图6为本申请另一实施例虚拟机内存数据迁移方法流程示意图,参看图6,本实施例与图5所示实施例基本相同,不同之处在于,本实施例中,在将需要迁入的虚拟机内存页信息放入内存页信息表中之后,所述方法还可包括:
S403、判断所述内存页信息表中项目的数量是否达到阈值。
若所述内存页信息表中项目的数量达到阈值,则执行将所述内存页信息表分为两个以上的内存页信息表段的步骤,否则执行步骤S400。
本申请中通过阈值来集中控制内存页信息表中项目的数量,即通过阈值集中控制一个循环内的脏页的数量,可在一个循环内集中传输一定数量的脏页,这样,可有效减少循环次数,缩短迁移时间。
所述阈值的确定方式可采用图3所示实施例中阈值的确定方式,在此不再赘述。
图7为本申请另一实施例虚拟机内存数据迁移方法流程示意图,参看图7,本实施例与图5所示实施例基本相同,不同之处在于,本实施例中,所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息表,即接收端虚拟机监视器,可从发送端虚拟机监视器直接接收需要迁入的虚拟机内存数据的内存页信息表,然后,可直接将所述内存页信息表发送给主安全处理器,具体地,本实施例的迁移方法,可包括如下步骤:
S400‘、接收需要迁入的虚拟机内存数据和内存页信息表。
接收端虚拟机监视器,从发送端虚拟机监视器接收需要迁入的虚拟机内存数据和迁移信息,所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息表。
S402‘、将所述内存页信息表发送给主安全处理器。
S404‘、将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器。
主安全处理器,将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器。
S406‘、各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理后发送给主安全处理器。
本实施例中,接收端虚拟机监视器,可从发送端虚拟机监视器直接接收需要迁入的虚拟机内存数据的内存页信息表,这样可省去接收端虚拟机监视器收集内存页信息形成内存页信息表的过程,从而提升迁移效率。
下面以一个实施例为例说明应用于虚拟机迁移接收端的虚拟机内存数据迁移方法。
图8为本申请另一实施例虚拟机内存数据迁移方法流程示意图,参看图8,本实施例虚拟机内存数据迁移方法,用于接收端,可包括如下步骤:
S500、接收需要迁入的虚拟机内存页数据及内存页信息。
迁移开始后,接收端虚拟机监视器,从发送端虚拟机监视器接收需要迁入的虚拟机内存页数据及内存页信息。
S502、将内存页信息放入到内存页信息表中。
接收端虚拟机监视器,将接收到的内存页信息放入到虚拟机内存页信息表中,直到内存页信息表中的项目数量达到一定的阈值。
S504、判断内存页信息表中项目数量是否达到阈值。
接收端虚拟机监视器,将需要迁入的虚拟机内存页信息放入到虚拟机内存页信息表中后,判断内存页信息表中的项目数量是否达到阈值。若内存页信息表中的项目数量达到阈值,则执行步骤S506,否则执行步骤S500。
S506、递交内存页信息表给主安全处理器处理。
接收端虚拟机监视器,将内存页信息表递交给主安全处理器处理,并等待主安全处理器返回处理结果。
S508、获取内存页信息表和从安全处理器数量。
S510、根据主安全处理器和从安全处理器的数量对内存页信息表进行分段。
主安全处理器,根据主安全处理器和从安全处理器的数量对内存页信息表进行分段,得到两个以上的存页信息表段。两个以上的存页信息表段的数量可等于主安全处理器和从安全处理器的数量。
S512、将划分给从安全处理器的内存页信息表段发送给对应从安全处理器。
主安全处理器对内存页信息表进行分段后,可将分段后得到的存页信息表段进行划分,部分由从安全处理器处理,部分(可以是一段)由主安全处理器自身进行处理。
S514、获取内存页信息表段并开始处理。
各从安全处理器根据主安全处理所发送的内存页信息表段,获取相应的内存数据并进行处理。具体地,各从安全处理器可将读取的虚拟机内存数据进行加密处理。除了进行加密处理外,还可生成完整性校验数据,以防止数据被篡改。
S516、处理划分给主安全处理器的内存页信息表段。
主安全处理器,将划分给从安全处理器的内存页信息表段发送给对应从安全处理器后,处理划分给自身的内存页信息表段,即根据划分给自身的内存页信息表段,获取相应的内存数据并进行处理,具体地,主安全处理器可将读取的虚拟机内存数据进行加密处理。除了进行加密处理外,还可生成完整性校验数据,以防止数据被篡改。
S518、处理完成后通知主安全处理器。
各从安全处理器对相应的内存数据处理完成后,通知主安全处理器。
S520、等待所有从安全处理器处理完成。
S522、返回结果,等待下一次交互请求。
主安全处理器和从安全处理器对读取的内存数据进行处理后,通过主安全处理器向虚拟机监视器返回结果,等待下一次交互请求。
S524、接收安全处理器返回的结果并处理。
接收端虚拟机监视器,将本地所有安全处理器返回的处理后的内存数据,通过接收端的内存控制器,写入接收端的虚拟机内存。
S526、判断是否满足迁入结束条件。
接收端虚拟机监视器,判断是否满足迁入结束条件,若是则结束迁移流程,否则,执行步骤500。所述迁入接收条件可以是接收端虚拟机监视器接收到发送端虚拟机监视器发送的迁移结束通知消息。
图9为本申请另一实施例虚拟机内存数据迁移方法流程示意图,参看图9,本实施例虚拟机内存数据迁移方法,与图8所示实施例的方法基本相同,不同之处在于,本实施例中,接收端虚拟机监视器,可从发送端虚拟机监视器直接接收需要迁入的虚拟机内存数据的内存页信息表,并直接将所述内存页信息表发送给主安全处理器,具体地,本实施例的迁移方法。可包括如下步骤:
S500‘、接收需要迁入的虚拟机内存页数据及内存页信息表。
迁移开始后,接收端虚拟机监视器,从发送端虚拟机监视器接收需要迁入的虚拟机内存页数据及内存页信息表。
S502‘、递交内存页信息表给主安全处理器处理。
接收端虚拟机监视器,将内存页信息表递交给主安全处理器处理,并等待主安全处理器返回处理结果。
S504‘、获取内存页信息表和从安全处理器数量。
S506‘、根据主安全处理器和从安全处理器的数量对内存页信息表进行分段。
主安全处理器,根据主安全处理器和从安全处理器的数量对内存页信息表进行分段,得到两个以上的存页信息表段。两个以上的存页信息表段的数量可等于主安全处理器和从安全处理器的数量。
S508‘、将划分给从安全处理器的内存页信息表段发送给对应从安全处理器。
主安全处理器对内存页信息表进行分段后,可将分段后得到的存页信息表段进行划分,部分由从安全处理器处理,部分(可以是一段)由主安全处理器自身进行处理。
S510‘、获取内存页信息表段并开始处理。
各从安全处理器根据主安全处理所发送的内存页信息表段,获取相应的内存数据并进行处理。具体地,各从安全处理器可将读取的虚拟机内存数据进行加密处理。除了进行加密处理外,还可生成完整性校验数据,以防止数据被篡改。
S512‘、处理划分给主安全处理器的内存页信息表段。
主安全处理器,将划分给从安全处理器的内存页信息表段发送给对应从安全处理器后,处理划分给自身的内存页信息表段,即根据划分给自身的内存页信息表段,获取相应的内存数据并进行处理,具体地,主安全处理器可将读取的虚拟机内存数据进行加密处理。除了进行加密处理外,还可生成完整性校验数据,以防止数据被篡改。
S514‘、处理完成后通知主安全处理器。
各从安全处理器对相应的内存数据处理完成后,通知主安全处理器。
S516‘、等待所有从安全处理器处理完成。
S518‘、返回结果,等待下一次交互请求。
主安全处理器和从安全处理器对读取的内存数据进行处理后,通过主安全处理器向虚拟机监视器返回结果,等待下一次交互请求。
S520‘、收到安全处理器返回的结果并处理。
接收端虚拟机监视器,将本地所有安全处理器返回的处理后的内存数据,通过接收端的内存控制器,写入接收端的虚拟机内存。
S522‘、判断是否满足迁入结束条件。
接收端虚拟机监视器,判断是否满足迁入结束条件,若是则结束迁移流程,否则,执行步骤500‘。所述迁入接收条件可以是接收端虚拟机监视器接收到发送端虚拟机监视器发送的迁移结束通知消息。
本实施例中,接收端虚拟机监视器,可从发送端虚拟机监视器直接接收需要迁入的虚拟机内存数据的内存页信息表,这样可省去接收端虚拟机监视器收集内存页信息形成内存页信息表的过程,从而提升迁移效率。
图10为本申请一实施例CPU芯片的框图,参看图10,本申请实施例CPU芯片10,包括:处理器核心14、主安全处理器16和从安全处理器18;其中,所述处理器核心14,用于运行虚拟机监视器,以通过所述虚拟机监视器将需要迁移的虚拟机内存页信息放入内存页信息表中;将所述内存页信息表发送给主安全处理器16;所述主安全处理器16,与所述处理核心电连接,用于将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器18;所述从安全处理器18,数量为两个以上,比如为三个、四个或五个等,分别与所述主安全处理器16电连接,用于根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器16,以使所述主安全处理器16将处理后的虚拟机内存数据发送给虚拟机监视器;所述处理器核心14,还用于通过所述虚拟机监视器将处理后的虚拟机内存数据及迁移信息向目标机发送,以进行虚拟机内存数据的迁移,其中,所述迁移信息包括所述需要迁移的虚拟机内存页信息或所述内存页信息表。
处理器核心和安全处理器可采用相同架构的处理器,比如均可采用X86架构的处理器,也可采用不同架构的处理器,比如处理器核心采用X86架构的处理器,而安全处理器采用ARM架构的处理器。
本实施例的CPU芯片,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在一些实施方式中,所述处理器核心14,还用于:通过所述虚拟机监视器判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则将所述内存页信息表发送给主安全处理器16;所述内存页信息表中的一个项目对应至少一条需要迁移的虚拟机内存页信息。
本实施方式的CPU芯片,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在一些实施方式中,所述主安全处理器16,具体用于:根据主安全处理器16从安全处理器18的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器16和从安全处理器18的数量之和。
在一些实施方式中,所述主安全处理器16,还用于:将所述内存页信息表分为第一基本段和第二基本段;根据主安全处理器16和当前时刻空闲的从安全处理器18的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于主安全处理器16和当前时刻空闲的从安全处理器18的数量之和;将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器18;根据下一时刻空闲的从安全处理器18的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器18的数量;将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器18。
在一些实施方式中,所述从安全处理器18,具体用于:根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据进行加密处理后或进行加密处理及生成完整性校验数据后发送给所述主安全处理器16。
在一些实施方式中,所述处理器核心14,还用于通过本地的虚拟机监视器,与接收端虚拟机监视器动态协商确定所述阈值,或者,根据迁移网络状态确定所述阈值。
在一些实施方式中,所述从安全处理器18,具体用于根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据经由本地的密码协处理器处理后,发送给所述主安全处理器16。
在一些实施方式中,所述主安全处理器16,还用于:在将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器18时,自身保留一段内存页信息表段;并在将不同的内存页信息表段,发送给不同的从安全处理器18之后,根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
本实施例的CPU芯片,可以用于执行图1、图3或图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本申请一实施例CPU芯片的方框示意图,参看图11,本申请实施例CPU芯片10’,包括:处理器核心14’、主安全处理器16’和从安全处理器18’;其中,所述处理器核心14’,用于运行虚拟机监视器,以通过所述虚拟机监视器接收需要迁入的虚拟机内存数据和迁移信息,所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息或内存页信息表;若所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息,则将所述内存页信息放入内存页信息表中;将所述内存页信息表发送给主安全处理器16’;所述主安全处理器16’,与所述处理器核心14’电连接,用于将所述内存页信息表分为两个以上的内存页信息表段;将不同的内存页信息表段,发送给不同的从安全处理器18’;所述从安全处理器18’,数量为两个以上,比如为三个、四个或五个等,分别与所述主安全处理器16’电连接,用于根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理后发送给所述主安全处理器16’。
本实施例中,处理器核心和安全处理器可采用相同架构的处理器,比如均可采用X86架构的处理器,也可采用不同架构的处理器,比如处理器核心采用X86架构的处理器,而安全处理器采用ARM架构的处理器。
本实施例的CPU芯片,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在一些实施方式中,所述处理器核心14’,还用于:通过所述虚拟机监视器判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则将所述内存页信息表发送给主安全处理器16’;其中,所述内存页信息表中的一个项目对应至少一条需要迁入的虚拟机内存页信息。
本实施方式的CPU芯片,可以用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在一些实施方式中,所述主安全处理器16’,还用于:根据主安全处理器16’和从安全处理器18’的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器16’和从安全处理器18’的数量之和。
在一些实施方式中,所述主安全处理器16’,还用于:将所述内存页信息表分为第一基本段和第二基本段;根据当前时刻空闲的从安全处理器18’的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于当前时刻空闲的从安全处理器18’的数量;将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器18’;根据下一时刻空闲的从安全处理器18’的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器18’的数量;将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器18’。
在一些实施方式中,所述从安全处理器18’具体用于:根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据进行解密处理后,或进行解密处理及完整性校验成功后发送给主安全处理器16’。
在一些实施方式中,所述核心处理器,还用于通过本地虚拟机监视器与发送端虚拟机监视器动态协商确定所述阈值,或者,根据迁移网络状态确定所述阈值。
在一些实施方式中,所述从安全处理器18’具体用于:根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据经由本地的密码协处理器处理后,发送给主安全处理器16’。
在一些实施方式中,所述主安全处理器16’,还用于:在将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器18’时,自身保留一段内存页信息表段;并在将不同的内存页信息表段,发送给不同的从安全处理器18’之后,根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
本实施例的CPU芯片,可以用于执行图5至图9所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图12为本申请一实施例服务器的方框图,参看图12,所述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;其中,处理器42通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的迁移方法,其实现原理和技术效果类似,此处不再赘述。
服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
本申请实施例虚拟机内存数据迁移方法、CPU芯片及服务器,虚拟机迁移发送端可借助虚拟机内存页信息表,将需要迁移的内存页信息批量发送给主安全处理器处理,而不是一页一页单独处理,可提高处理效率。此外,本申请中,多个安全处理器之间具有主从关系,主安全处理器用来管理从安全处理器;虚拟机监视器将内存页信息表发送给主安全处理器后,主安全处理器可将一张内存页信息表分段后分派到多个从安全处理器来实现并发处理多页内存,减少虚拟机监视器和安全处理器的交互时间,提升迁移效率,减少迁移时间开销,减少停机时间;此外,在多个从安全处理器并发处理多页内存时,主安全处理器也可对内存页信息表段进行并行处理,进一步提高数据处理效率,减少虚拟机监视器和安全处理器的交互时间,提升迁移效率,减少迁移时间开销,减少停机时间。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本申请时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (33)
1.一种虚拟机内存数据迁移方法,其特征在于,应用于发送端,包括:
虚拟机监视器将需要迁移的虚拟机内存页信息放入内存页信息表中,并将所述内存页信息表发送给主安全处理器;
所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器;
各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器,所述主安全处理器将处理后的虚拟机内存数据发送给所述虚拟机监视器;
所述虚拟机监视器将处理后的虚拟机内存数据及迁移信息向目标机发送,以进行虚拟机内存数据的迁移,其中,所述迁移信息包括所述需要迁移的虚拟机内存页信息或所述内存页信息表。
2.根据权利要求1所述的迁移方法,其特征在于,在虚拟机监视器将需要迁移的虚拟机内存页信息放入内存页信息表中之后,所述方法还包括:
虚拟机监视器判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则将所述内存页信息表发送给主安全处理器;其中,所述内存页信息表中的一个项目对应至少一条需要迁移的虚拟机内存页信息。
3.根据权利要求1所述的迁移方法,其特征在于,所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,包括:
主安全处理器根据主安全处理器和从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器和从安全处理器的数量之和。
4.根据权利要求1所述的迁移方法,其特征在于,所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,包括:
主安全处理器将所述内存页信息表分为第一基本段和第二基本段;
根据主安全处理器和当前时刻空闲的从安全处理器的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于主安全处理器和当前时刻空闲的从安全处理器的数量之和;
所述将不同的内存页信息表段,发送给不同的从安全处理器,包括:将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器;
根据下一时刻空闲的从安全处理器的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量;
所述将不同的内存页信息表段,发送给不同的从安全处理器,包括:将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器。
5.根据权利要求1所述的迁移方法,其特征在于,所述各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器,包括:
各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据进行加密处理后或进行加密处理及生成完整性校验数据后发送给所述主安全处理器。
6.根据权利要求2所述的迁移方法,其特征在于,在判断所述内存页信息表中项目的数量是否达到阈值之前,所述方法还包括:
与接收端动态协商确定所述阈值;或者,
根据迁移网络状态确定所述阈值。
7.根据权利要求1所述的迁移方法,其特征在于,所述各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器,包括:
各从安全处理器根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据经由本地的密码协处理器处理后,发送给所述主安全处理器。
8.根据权利要求1所述的迁移方法,其特征在于,在所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,所述方法还包括:所述主安全处理器自身保留一段内存页信息表段;
所述主安全处理器,在将不同的内存页信息表段,发送给不同的从安全处理器之后,所述主安全处理器根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
9.一种虚拟机内存数据迁移方法,其特征在于,应用于接收端,包括:
虚拟机监视器接收需要迁入的虚拟机内存数据和迁移信息,所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息或内存页信息表;若所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息,则将所述内存页信息放入内存页信息表中;
所述虚拟机监视器并将所述内存页信息表发送给主安全处理器;
所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器;
各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理后发送给所述主安全处理器。
10.根据权利要求9所述的迁移方法,其特征在于,若所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息,将所述内存页信息放入内存页信息表中之后,所述方法还包括:
判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则执行将所述内存页信息表发送给主安全处理器的步骤;其中,所述内存页信息表中的一个项目对应至少一条需要迁入的虚拟机内存页信息。
11.根据权利要求9所述的迁移方法,其特征在于,所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,包括:
主安全处理器根据主安全处理器和从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器和从安全处理器的数量之和。
12.根据权利要求9所述的迁移方法,其特征在于,所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,包括:
主安全处理器将所述内存页信息表分为第一基本段和第二基本段;
根据主安全处理器和当前时刻空闲的从安全处理器的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于主安全处理器和当前时刻空闲的从安全处理器的数量之和;
所述将不同的内存页信息表段,发送给不同的从安全处理器,包括:将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器;
根据下一时刻空闲的从安全处理器的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量;
所述将不同的内存页信息表段,发送给不同的从安全处理器,包括:将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器。
13.根据权利要求9所述的迁移方法,其特征在于,所述各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理发送给主安全处理器,包括:
各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据进行解密处理后,或进行解密处理及完整性校验成功后发送给主安全处理器。
14.根据权利要求10所述的迁移方法,其特征在于,在判断所述内存页信息表中项目的数量是否达到阈值之前,所述方法还包括:
与发送端动态协商确定所述阈值;或者,
根据迁移网络状态确定所述阈值。
15.根据权利要求9所述的迁移方法,其特征在于,所述各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理后发送给主安全处理器,包括:
各从安全处理器根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据经由本地的密码协处理器处理后,发送给主安全处理器。
16.根据权利要求9所述的迁移方法,其特征在于,在所述主安全处理器将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,所述方法还包括:所述主安全处理器,自身保留一段内存页信息表段;
所述主安全处理器,在将不同的内存页信息表段,发送给不同的从安全处理器之后,所述主安全处理器根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
17.一种CPU芯片,其特征在于,包括:处理器核心、主安全处理器和从安全处理器;其中,
所述处理器核心,用于运行虚拟机监视器,以通过所述虚拟机监视器将需要迁移的虚拟机内存页信息放入内存页信息表中;将所述内存页信息表发送给主安全处理器;
所述主安全处理器,与所述处理核心电连接,用于将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器;
所述从安全处理器,数量为两个以上,分别与所述主安全处理器电连接,用于根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据处理后发送给所述主安全处理器,以使所述主安全处理器将处理后的虚拟机内存数据发送给虚拟机监视器;
所述处理器核心,还用于通过所述虚拟机监视器将处理后的虚拟机内存数据及迁移信息向目标机发送,以进行虚拟机内存数据的迁移,其中,所述迁移信息包括所述需要迁移的虚拟机内存页信息或所述内存页信息表。
18.根据权利要求17所述的CPU芯片,其特征在于,所述处理器核心,还用于:通过所述虚拟机监视器判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则将所述内存页信息表发送给主安全处理器;所述内存页信息表中的一个项目对应至少一条需要迁移的虚拟机内存页信息。
19.根据权利要求17所述的CPU芯片,其特征在于,所述主安全处理器,具体用于:根据主安全处理器从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器和从安全处理器的数量之和。
20.根据权利要求17所述的CPU芯片,其特征在于,所述主安全处理器,还用于:将所述内存页信息表分为第一基本段和第二基本段;根据主安全处理器和当前时刻空闲的从安全处理器的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于主安全处理器和当前时刻空闲的从安全处理器的数量之和;将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器;
根据下一时刻空闲的从安全处理器的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量;将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器。
21.根据权利要求17所述的CPU芯片,其特征在于,所述从安全处理器,具体用于:根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据进行加密处理后或进行加密处理及生成完整性校验数据后发送给所述主安全处理器。
22.根据权利要求18所述的CPU芯片,其特征在于,所述处理器核心,还用于通过本地的虚拟机监视器,与接收端虚拟机监视器动态协商确定所述阈值,或者,根据迁移网络状态确定所述阈值。
23.根据权利要求17所述的CPU芯片,其特征在于,所述从安全处理器,具体用于根据接收到的内存页信息表段,读取虚拟机内存数据,并将读取的虚拟机内存数据经由本地的密码协处理器处理后,发送给所述主安全处理器。
24.根据权利要求17所述的CPU芯片,其特征在于,所述主安全处理器,还用于:在将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,自身保留一段内存页信息表段;并在将不同的内存页信息表段,发送给不同的从安全处理器之后,根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
25.一种CPU芯片,其特征在于,包括:处理器核心、主安全处理器和从安全处理器;其中,
所述处理器核心,用于运行虚拟机监视器,以通过所述虚拟机监视器接收需要迁入的虚拟机内存数据和迁移信息,所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息或内存页信息表;若所述迁移信息中包括需要迁入的虚拟机内存数据的内存页信息,则将所述内存页信息放入内存页信息表中;将所述内存页信息表发送给主安全处理器;
所述主安全处理器,与所述处理器核心电连接,用于将所述内存页信息表分为两个以上的内存页信息表段;将不同的内存页信息表段,发送给不同的从安全处理器;
所述从安全处理器,数量为两个以上,分别与所述主安全处理器电连接,用于根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据处理后发送给所述主安全处理器。
26.根据权利要求25所述的CPU芯片,其特征在于,所述处理器核心,还用于:通过所述虚拟机监视器判断所述内存页信息表中项目的数量是否达到阈值,若所述内存页信息表中项目的数量达到阈值,则将所述内存页信息表发送给主安全处理器;其中,所述内存页信息表中的一个项目对应至少一条需要迁入的虚拟机内存页信息。
27.根据权利要求25所述的CPU芯片,其特征在于,所述主安全处理器,还用于:根据主安全处理器和从安全处理器的数量,将所述内存页信息表分为两个以上的内存页信息表段;所述两个以上的内存页信息表段的数量,小于或等于主安全处理器和从安全处理器的数量之和。
28.根据权利要求25所述的CPU芯片,其特征在于,所述主安全处理器,还用于:将所述内存页信息表分为第一基本段和第二基本段;
根据当前时刻空闲的从安全处理器的数量,将所述第一基本段分为两个以上的第一子段;所述两个以上的第一子段的数量,小于或等于当前时刻空闲的从安全处理器的数量;将不同的第一子段,发送给当前时刻空闲的不同的从安全处理器;
根据下一时刻空闲的从安全处理器的数量,将所述第二基本段分为两个以上的第二子段;所述两个以上的第二子段的数量,小于或等于下一时刻空闲的从安全处理器的数量;将不同的第二子段,发送给下一时刻空闲的不同的从安全处理器。
29.根据权利要求25所述的CPU芯片,其特征在于,所述从安全处理器具体用于:根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据进行解密处理后,或进行解密处理及完整性校验成功后发送给主安全处理器。
30.根据权利要求26所述的CPU芯片,其特征在于,所述核心处理器,还用于通过本地虚拟机监视器与发送端虚拟机监视器动态协商确定所述阈值,或者,根据迁移网络状态确定所述阈值。
31.根据权利要求25所述的CPU芯片,其特征在于,所述从安全处理器具体用于:根据接收到的内存页信息表段,读取所述需要迁入的虚拟机内存数据,并将读取的所述需要迁入的虚拟机内存数据经由本地的密码协处理器处理后,发送给主安全处理器。
32.根据权利要求25所述的CPU芯片,其特征在于,所述主安全处理器,还用于:在将所述内存页信息表分为两个以上的内存页信息表段,并将不同的内存页信息表段,发送给不同的从安全处理器时,自身保留一段内存页信息表段;并在将不同的内存页信息表段,发送给不同的从安全处理器之后,根据自身保留的内存页信息表段,读取虚拟机内存数据,并对读取的虚拟机内存数据进行处理。
33.一种服务器,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1至16任一项所述的迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911290531.8A CN111158853A (zh) | 2019-12-13 | 2019-12-13 | 虚拟机内存数据迁移方法、cpu芯片及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911290531.8A CN111158853A (zh) | 2019-12-13 | 2019-12-13 | 虚拟机内存数据迁移方法、cpu芯片及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111158853A true CN111158853A (zh) | 2020-05-15 |
Family
ID=70557131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911290531.8A Pending CN111158853A (zh) | 2019-12-13 | 2019-12-13 | 虚拟机内存数据迁移方法、cpu芯片及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158853A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241305A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 |
CN112256391A (zh) * | 2020-10-22 | 2021-01-22 | 海光信息技术股份有限公司 | 一种虚拟机内存迁移方法、装置、及设备 |
CN112363801A (zh) * | 2020-11-10 | 2021-02-12 | 海光信息技术股份有限公司 | 虚拟机迁移方法、处理方法、系统、装置、芯片及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854353A (zh) * | 2010-04-28 | 2010-10-06 | 国网电力科学研究院 | 一种基于fpga的多芯片并行加密方法 |
CN102855450A (zh) * | 2011-06-28 | 2013-01-02 | 上海网技信息技术有限公司 | 用于对虚拟计算环境进行隔离保护的方法及系统 |
CN106127024A (zh) * | 2016-07-20 | 2016-11-16 | 浪潮电子信息产业股份有限公司 | 一种高效的vm迁移数据保护方案 |
CN109165080A (zh) * | 2018-08-10 | 2019-01-08 | 云宏信息科技股份有限公司 | 虚拟机在线迁移过程内存数据的保护方法、装置及物理机 |
CN109684037A (zh) * | 2018-12-18 | 2019-04-26 | 北京可信华泰信息技术有限公司 | 一种虚拟机安全迁移方法 |
CN109901839A (zh) * | 2019-01-23 | 2019-06-18 | 国家新闻出版广电总局广播电视规划院 | 一种广播电视关键信息基础设施网络安全攻防实训平台构建方法 |
-
2019
- 2019-12-13 CN CN201911290531.8A patent/CN111158853A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854353A (zh) * | 2010-04-28 | 2010-10-06 | 国网电力科学研究院 | 一种基于fpga的多芯片并行加密方法 |
CN102855450A (zh) * | 2011-06-28 | 2013-01-02 | 上海网技信息技术有限公司 | 用于对虚拟计算环境进行隔离保护的方法及系统 |
CN106127024A (zh) * | 2016-07-20 | 2016-11-16 | 浪潮电子信息产业股份有限公司 | 一种高效的vm迁移数据保护方案 |
CN109165080A (zh) * | 2018-08-10 | 2019-01-08 | 云宏信息科技股份有限公司 | 虚拟机在线迁移过程内存数据的保护方法、装置及物理机 |
CN109684037A (zh) * | 2018-12-18 | 2019-04-26 | 北京可信华泰信息技术有限公司 | 一种虚拟机安全迁移方法 |
CN109901839A (zh) * | 2019-01-23 | 2019-06-18 | 国家新闻出版广电总局广播电视规划院 | 一种广播电视关键信息基础设施网络安全攻防实训平台构建方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241305A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 |
CN112241305B (zh) * | 2020-10-21 | 2023-01-31 | 海光信息技术股份有限公司 | 虚拟机脏页处理方法、处理芯片、计算机设备及存储介质 |
CN112256391A (zh) * | 2020-10-22 | 2021-01-22 | 海光信息技术股份有限公司 | 一种虚拟机内存迁移方法、装置、及设备 |
CN112363801A (zh) * | 2020-11-10 | 2021-02-12 | 海光信息技术股份有限公司 | 虚拟机迁移方法、处理方法、系统、装置、芯片及介质 |
CN112363801B (zh) * | 2020-11-10 | 2022-10-21 | 海光信息技术股份有限公司 | 虚拟机迁移方法、处理方法、系统、装置、芯片及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11494213B2 (en) | Virtual machine memory migration by storage | |
CN109564524B (zh) | 虚拟化管理器的安全引导 | |
AU2017290252B2 (en) | Memory allocation techniques at partially-offloaded virtualization managers | |
CN111124599B (zh) | 虚拟机内存数据迁移方法、装置、电子设备及存储介质 | |
Miłós et al. | Satori: Enlightened page sharing | |
US8171267B2 (en) | Method and apparatus for migrating task in multi-processor system | |
CN111090869B (zh) | 一种数据加密方法、处理器及计算机设备 | |
EP4033693B1 (en) | Trusted computing base evidence binding for a migratable virtual machine | |
US9367459B2 (en) | Scheduling method and multi-core processor system | |
CN102314377B (zh) | 加速器及其实现支持虚拟机迁移的方法 | |
CN111158853A (zh) | 虚拟机内存数据迁移方法、cpu芯片及服务器 | |
US11301396B2 (en) | Technologies for accelerated data access and physical data security for edge devices | |
CN109564523B (zh) | 使用机会性管理程序降低性能可变性 | |
JP5737050B2 (ja) | 情報処理装置、割込み制御方法および割込み制御プログラム | |
CN103744716B (zh) | 一种基于当前vcpu调度状态的动态中断均衡映射方法 | |
JP2011100431A (ja) | 仮想マシン制御装置及び仮想マシン制御方法 | |
CN111949372B (zh) | 一种虚拟机迁移方法、通用处理器及电子设备 | |
US10579419B2 (en) | Data analysis in storage system | |
CN116860391A (zh) | Gpu算力资源调度方法、装置、设备和介质 | |
CN107949828B (zh) | 用于将应用中的机器代码的执行动态地迁移至虚拟机的方法和装置 | |
CN105677481B (zh) | 一种数据处理方法、系统及电子设备 | |
US20210357339A1 (en) | Efficient management of bus bandwidth for multiple drivers | |
CN114816777A (zh) | 命令处理装置、方法、电子设备以及计算机可读存储介质 | |
CN111666036B (zh) | 一种迁移数据的方法、装置及系统 | |
JP2015022380A (ja) | 情報処理装置、仮想マシンの移行方法及び仮想マシンの移行プログラム |
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 | ||
CB02 | Change of applicant information |
Address after: 300000 North 2-204 industrial incubation-3-8, No. 18, Haitai West Road, Huayuan Industrial Zone, Binhai New Area, Tianjin Applicant after: Haiguang Information Technology Co., Ltd Address before: 300000 North 2-204 industrial incubation-3-8, No. 18, Haitai West Road, Huayuan Industrial Zone, Binhai New Area, Tianjin Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information |