CN107533478A - 计算机系统的迁移 - Google Patents

计算机系统的迁移 Download PDF

Info

Publication number
CN107533478A
CN107533478A CN201580079050.6A CN201580079050A CN107533478A CN 107533478 A CN107533478 A CN 107533478A CN 201580079050 A CN201580079050 A CN 201580079050A CN 107533478 A CN107533478 A CN 107533478A
Authority
CN
China
Prior art keywords
computing device
processor
dram
register value
security code
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
CN201580079050.6A
Other languages
English (en)
Inventor
A·肖
K·马利尚
D·普拉坎
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.)
Hewlett Packard Development Co LP
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN107533478A publication Critical patent/CN107533478A/zh
Pending legal-status Critical Current

Links

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
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

提供了一种用于将实时操作系统从第一计算设备迁移到第二计算设备的示例性方法。该示例性方法包括(a)将第一计算设备的处理器的寄存器值提供给与第一计算设备通信的第二计算设备;(b)向第二计算设备提供第一计算设备的动态随机存取存储器DRAM的内容;(c)将寄存器值存储在第二计算设备的受保护存储器中,其中,受保护存储器与在第二计算设备的正常操作期间由第二计算设备使用的存储器分开;(d)将第一计算设备的DRAM的内容存储在第二计算设备的DRAM中;以及(e)将来自受保护存储器的寄存器值加载到第二计算设备的处理器的寄存器中。

Description

计算机系统的迁移
背景技术
计算机系统从第一节点迁移到第二节点可以通过将计算机系统封装在虚拟机中,然后使用实体(例如管理程序(hypervisor))将计算机系统的状态传送到第二节点而不中断虚拟机的执行来实现。
附图说明
以下详细描述参考附图,其中:
图1是示例性第一计算设备和示例性第二计算设备的框图;
图2是示例性第一计算设备和示例性第二计算设备的框图;
图3是示例性第一计算设备和示例性第二计算设备的框图;且
图4是用于由示例性第一计算设备和示例性第二计算设备执行的示例性方法的流程图;
图5是示例性的第一计算设备执行的示例性方法的流程图;
图6是示例性的第二计算设备执行的示例性方法的流程图;
图7是示例性第一计算设备和示例性第二计算设备执行的示例性方法的流程图;
图8是示例性第二计算设备执行的示例性方法的流程图;
图9是示例性第一计算设备执行的示例性方法的流程图;且
图10是示例性第二计算设备执行的示例性方法的流程图。
具体实施方式
以下详细描述参照附图。应当明确地理解,附图仅用于说明和描述的目的。虽然本文档中描述了若干示例,但修改、改动和其他实现方式是可能的。因此,以下详细描述并不限制所公开的示例。相反,公开的示例的适当范围可以由所附权利要求限定。
可以通过将计算系统封装在虚拟机中来实现计算机系统从第一物理设备到第二物理设备的实时迁移。创建虚拟机涉及虚拟化计算机系统的存储器、记录计算机系统的所有交互以及仿真第一物理设备的硬件设备和CPU指令的实体(例如虚拟机管理器(VMM)或管理程序)。然后,管理程序可以逐渐将计算机系统的状态转移到第二物理设备,而不会中断虚拟机的执行。因此,可以在不需要内核支持或程序修改的情况下将工作负载程序跨不同的机器移动,且不需要在移动后重新启动。
使用虚拟机将计算机系统从一个物理设备实时迁移到另一个物理设备,可能存在技术挑战。运行诸如管理程序或VMM的程序并不总是可行的。例如,一个或两个物理设备的底层硬件(例如CPU)可能不提供虚拟化支持,这将导致虚拟机的执行非常慢。此外,任何管理程序与性能开销相关联,并且在一些系统上,例如,具有受约束资源的系统,导致这种性能开销是不可行的。此外,并不总是可以在虚拟机中运行工作负载。例如,管理程序或VMM可以向在其虚拟机中运行的操作系统呈现实际主机硬件的通用虚拟化版本,但是虚拟机中的某些应用/工作负载可能使用在虚拟化的环境中不可用的底层硬件设备的特定功能。
本文公开的实施例提供了针对这些技术挑战的技术解决方案。示例性方法提供用于将实时操作系统从第一物理计算设备迁移到第二物理计算设备的基于硬件的过程。
本文使用的术语是为了描述特定示例的目的,而不旨在是限制性的。如本文所使用的,单数形式“一(a)”,“一个(an)”和“该(the)”意图也包括复数形式,除非上下文另有明确指示。如本文所使用的术语“多个”被定义为两个或两个以上。本文所用的术语“另一”定义为至少第二个或更多个。除非另有说明,本文所用的术语“耦合”被定义为连接,无论是直接地没有任何中间元件还是间接地借助至少一个中间元件。两个元件可以通过通信信道、通路、网络或系统而机械、电气或通信连接地耦合。本文所用的术语“和/或”是指和包括相关联列出的项目的任何和所有可能的组合。还将理解,尽管术语第一、第二、第三等可以用于描述各种元素,但是这些元素不应该被这些术语限制,因为这些术语仅用于将一个元件与另一个元件区分开,除非另有陈述或者上下文另有说明。如本文所使用的,术语“包括”是指包括但不限于,术语“包括有”是指包括但不限于。术语“基于”是指至少部分地基于。
图1示出了可以实现用于将实时操作系统从一个物理设备迁移到另一物理设备的基于硬件的方法的示例性第一计算设备1和示例性第二计算设备2。
第一计算设备1可以是“源”计算设备,即它包括要移动到另一“目标”计算设备的操作系统。第一计算设备1包括处理器11、动态随机存取存储器(DRAM)12和安全代码组件13。处理器11可以是任何类型的处理器,包括例如中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)等。在第一计算设备1的正常操作期间,DRAM 12由处理器11用于存储数据。
“正常操作”是指计算设备执行其预期的基本功能的操作。例如,诸如PC或笔记本电脑的通用计算机的预期基本功能是响应于来自用户的输入来执行不同类型的程序。为了当前说明书的目的,计算设备的“正常操作”不包括执行迁移过程中涉及的操作,也不包括在与迁移过程相关联的任何安全模式中的操作。
响应于由第一计算设备1接收的迁移命令来执行安全代码组件13。在一些示例中,响应于来自硬件管理系统(例如在管理服务器机器上运行的程序,可以通过网络管理若干物理机器)的迁移命令,而执行安全代码组件13。安全代码组件可以包括例如一条可信代码、可信固件、可信执行环境(TEE)等。TEE可以例如基于由ARM提供的专有TrustZone技术。安全代码组件13可以包括在第一计算设备1的CPU中。安全代码组件13可以包括在处理器11中。在一些示例中,安全代码组件13支持物理存储器、CPU和I/O分区(例如,分为安全部分和非安全部分)。
安全代码组件13包括当被执行时(例如由第一(源)计算设备的处理器)使得第一计算设备进行以下操作的指令:
–使得处理器11的寄存器值对目标计算设备(例如,第二计算设备2)可用;并且
–使得存储在DRAM 12中的数据对目标计算设备(例如,第二计算设备2)可用。
使寄存器值和数据对目标计算设备可用可以包括第一计算设备经由通信链路(例如,网络)向目标计算设备发送寄存器值和数据。这样的通信链路可以是安全通信链路。使寄存器值和数据对目标计算设备可用可以包括第一计算设备将寄存器值和数据存储在可由目标计算设备访问的存储器中。这样的存储器可以是安全存储器。安全存储器可由源和/或目标计算设备的安全代码组件访问,但不能由源计算设备和目标计算设备的任何其他组件访问。例如,源计算设备在源计算设备的正常操作期间或目标计算设备在目标计算设备的正常操作期间可能无法访问安全存储器。在一些示例中,安全存储器由源计算设备和/或目标计算设备的CPU/芯片组物理保护。例如,在个人计算机(PC)上,RAM在BIOS和操作系统之间分配。BIOS可以预留存储器的部分(例如16MB)由BIOS专用,以便当PC的处理器以“安全模式”(称为SMM)运行时,可以访问预留的存储器,其中操作系统暂停,而BIOS具有执行控制,但在处理器的正常操作期间无法访问。ARM TrustZone技术可以创建类似的安排。特别地,TrustZone可以将RAM的地址空间分成两部分,使得每个部分由处理器的分开的模式专门使用(即,一个部分专用于安全模式,另一部分专用于正常操作模式)。
在一些示例中,使存储在DRAM 12中的数据可用于目标计算设备2包括使得DRAM12的地址空间的至少一部分可用于目标计算设备。在一些示例中,使得存储在DRAM 12中的数据可用于目标计算设备2包括使DRAM 12的地址空间的包含数据的区域可用,并且不使DRAM 12的地址空间的不包含数据的区域可用。例如,DRAM 12的地址空间可以包含I/O区域和/或存储器空穴,在这种情况下,这些区域在某些示例中不可供目标计算设备2使用。
指令被布置成使得当执行时,它们使得第一计算设备在执行由指令指定的操作(即,使寄存器值可用、使得数据可用等的操作)期间暂停正常操作。在一些示例中,指令被布置成使得当执行时,它们使得第一计算设备在执行由指令指定的所有操作期间暂停正常操作。在一些示例中,指令被布置为使得当被执行时,它们使得第一计算设备暂停正常操作,除非或直到第一计算设备接收到恢复正常操作的命令。
暂停正常操作包括将第一计算设备转换到安全操作模式,使得在第一计算设备处于安全操作模式的同时执行由指令指定的操作。在一些示例中,当计算设备处于“安全操作模式”时,在设备上执行的任何程序、过程等与在处于“正常操作模式”时在设备中执行的任何程序、过程等完全隔离。因此,提供安全操作模式使得安全程序能够在设备上的正常操作系统的外部运行且受其保护。在一些示例中,第一计算设备的安全代码组件以第一计算设备的安全模式执行。此外,在计算设备的安全模式中执行的代码组件(例如,第一计算设备的安全代码组件)可以完全访问计算设备的正常操作模式的寄存器内容和DRAM,因为它在正常的操作环境之外执行。
指令可以被布置为使得当被执行时,它们使第一计算设备在预定的最大时间段内执行由指令指定的操作。预定义的最大时间段可以是几秒钟的量级。预定义的最大时间段可以少于1秒。预定义的最大时间段可以在0.1s至1s的范围内。可以设置预定义的最大时间段,例如,由操作者启动迁移过程。可以选择预定义的最大时间段,例如由操作者基于操作系统被迁移以抵抗时钟漂移的能力。例如,如果正在迁移的操作系统可以承受显著的时钟漂移,则预定义的最大时间段可能会比如果正在迁移的操作系统无法承受显著的时钟漂移更长。
在一些示例中,第一计算设备1还包括受保护存储器14。受保护存储器14可以与在第一计算设备1的正常操作期间由第一计算设备使用的存储器分开。受保护存储器14可以与在第一计算设备1的正常操作期间由第一计算设备使用的每个存储器分开。在一些示例中,受保护存储器14由安全代码组件13创建。例如,受保护存储器可以在第一计算设备1的引导过程期间由安全代码组件配置。受保护存储器14可以被安全代码组件用于在将第一计算设备的操作系统迁移到另一计算设备例如第二计算设备的过程期间存储数据。
第二计算设备2可以是“目标”计算设备,即它将接收已经从源计算设备移动的操作系统。第二计算设备2的属性可以满足某些预定义的标准,其中定义了预定义标准,使得具有满足标准的性质的计算设备适合于作为迁移过程期间从源计算设备接收操作系统的目标计算设备,并且具有不符合标准的属性的计算设备不适合作为用于在迁移过程期间从源计算设备接收操作系统的目标计算设备。属性可以包括例如固件版本、存储器大小,CPU型号。在一些示例中,如果第二计算设备的属性与第一(源)计算设备的相应属性相匹配,则第二计算设备的属性可以满足预定义标准。
第二计算设备2包括处理器21、DRAM 22和安全代码组件23。处理器21可以是任何类型的处理器,包括例如中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)等。第二计算设备2的处理器21与第一计算设备1的处理器11相同。特别地,第二计算设备2的处理器21的硬件与第一计算设备1的处理器11的硬件相同。在第二计算设备2的正常操作期间,DRAM 22被处理器21用于存储数据。第二计算设备的DRAM22具有与第一计算设备的DRAM 12相同的存储器布局。DRAM的存储器内容对DRAM的配置高度特定,这意味着如果目标设备上的DRAM(即,DRAM 22)的配置与源设备上的DRAM(即,DRAM 12)的配置不匹配,那么目标计算设备在迁移过程完成后返回到正常操作模式时可能无法正确地操作。
响应于由第二计算设备1接收到的迁移命令来执行安全代码组件23。在一些示例中,响应于来自硬件管理系统(例如在管理服务器机器上运行的程序,其可以通过网络管理若干物理机器)的迁移命令来执行安全代码组件23。安全代码组件可以包括例如一条可信代码、可信固件、可信执行环境(TEE)等。安全代码组件23可以包括在第二计算设备2的CPU中。安全代码组件23可以包括在处理器21中。在一些示例中,安全代码组件23支持物理存储器、CPU和I/O分区。安全代码组件23可以与第一计算设备1的安全代码组件13相同。
第二计算设备2还包括受保护存储器24。受保护存储器24与在第二计算设备2的正常操作期间由第二计算设备使用的存储器分开。受保护存储器24可以与在第二计算设备2的正常操作期间由第二计算设备使用的每个存储器分开。在一些示例中,受保护存储器24由安全代码组件23创建。例如,受保护存储器可以在第一计算设备2引导过程期间由安全代码组件配置。受保护存储器24可以由安全代码组件用于在将第一计算设备1的操作系统迁移到第二计算设备2的过程期间存储数据。
安全代码组件23包括当被执行(例如由第二计算设备2的处理器)使得第二(目标)计算设备进行以下操作的指令:
-接收源计算设备(例如,第一计算设备1)的处理器的寄存器值;
-将所接收的寄存器值存储在受保护存储器24中;
-接收存储在源计算设备(例如,第一计算设备1)的DRAM中的数据;
-将接收到的数据存储在目标(第二)计算设备的DRAM(例如,DRAM22)中;以及
-将寄存器值从受保护存储器24加载到处理器21的寄存器中。
从源计算设备接收寄存器值和数据可以包括目标计算设备经由通信链路(例如,网络)将寄存器值和数据接收到目标计算设备。这样的通信链路可以是安全通信链路。从源计算设备接收寄存器值和数据可以包括目标计算设备从目标计算设备可访问的存储器中取回寄存器值和数据。这样的存储器可以是安全存储器,例如受加密密钥保护。
将寄存器值存储在受保护存储器24中可以包括覆写已经包含在受保护存储器24中的寄存器值(例如,第二计算设备2的处理器的寄存器值)。在一些示例中,第一计算设备的处理器和/或第二计算设备的处理器可以包括无法通过将寄存器值从第一计算设备拷贝到第二计算设备而进行复制的嵌入式或内部处理器状态。在这种示例中,可以将操作系统(即正在迁移的操作系统)的驱动程序布置成处理由如第一计算设备1的处理器和第二计算设备2的处理器之间的这样的嵌入式或内部处理器状态的差异引起的故障。
指令可以被布置为使得当执行时,响应于存储所接收的寄存器值并且存储所接收的数据两个操作已经完成,自动地执行加载寄存器值的操作。指令可以被布置成使得当被执行时,响应于第二计算设备2接收到命令来执行加载寄存器值的操作,例如,加载寄存器值和/或进入正常操作模式等。这样的命令可以包括中断。
指令被布置成使得当被执行时,它们使得第二计算设备在执行由指令指定的操作期间暂停正常操作(即,接收寄存器值、存储所接收的寄存器值、接收数据、存储接收到的数据,并加载寄存器值等的操作)。在一些示例中,指令被布置成使得当执行时,它们使得第二计算设备在执行由指令指定的所有操作期间暂停正常操作。在一些示例中,指令被布置成使得当被执行时,它们使得第二计算设备暂停正常操作,除非或直到第二计算设备接收到恢复正常操作的命令。
暂停正常操作包括将第二计算设备转换到安全操作模式,使得在第二计算设备处于安全操作模式的同时执行由指令指定的操作。第二计算设备的安全操作模式可以具有如上所述的第一计算设备的安全操作模式的任何特征。第二计算设备的安全操作模式与第一计算设备的安全操作模式相同。
在一些示例中,指令被布置成使得当被执行时,它们使得第二计算设备使第二计算设备的处理器的设置与第一计算设备的处理器的设置同步。在一些示例中,指令被布置成使得当被执行时,它们使得第二计算设备在第二计算设备从受保护的存储器加载寄存器值之前将第二计算设备的处理器的设置与第一计算设备的处理器的设置同步。如果例如第一计算设备的处理器和/或第二计算设备的处理器包括不能通过将寄存器值从第一计算设备拷贝到第二计算设备而复制的嵌入式或内部处理器状态,则该特征可能是有利的。
指令可以被布置成使得当被执行时,它们使得第二计算设备在预定义的最大时间段内执行由指令指定的操作。预定义的最大时间段可以是几秒的量级。预定义的最大时间段可以少于1秒。预定义的最大时间段可以在0.1s至1s的范围内。可以设置预定义的最大时间段,例如,由操作者启动迁移过程。可以选择预定义的最大时间段,例如由操作者基于操作系统被迁移以抵抗时钟漂移的能力。例如,如果正在迁移的操作系统可以承受显著的时钟漂移,则预定义的最大时间段可能会比如果正在迁移的操作系统无法承受显著的时钟漂移更长。
第一计算设备1和第二计算设备2由通信链路15耦合。通信链路15可以是高速通信链路。通信链路15可以是光通信链路。通信链路15可以包括有线或无线通信网络。
在一些示例中,通信链路被布置为使得能够在最大时间段内执行操作系统从第一计算设备1到第二计算设备2的迁移。最大时间段可以是预定义的最大时间段。最大时间段的持续时间可以是几秒钟的量级。预定义的最大时间段可以少于1秒。预定义的最大时间段可以在0.1s至1s的范围内。可以设置预定义的最大时间段,例如,由操作者启动迁移过程。可以选择预定义的最大时间段,例如由操作者基于操作系统被迁移以抵抗时钟漂移的能力。例如,如果正在迁移的操作系统可以承受显著的时钟漂移,则预定义的最大时间段可能会比如果正在迁移的操作系统无法承受显著的时钟漂移更长。在最大时间段内执行迁移可以包括在最大时间段内第一计算设备1执行由其安全代码组件13的指令集指定的操作和第二计算设备2执行由其安全代码组件23的指令集指定的操作。在短时间段内执行迁移可以防止在在迁移期间运行的时间或时钟相关程序的执行中发生错误。
在本文描述的图1和其它附图中,可以使用与所描绘的不同数量的组件、处理单元或者实体。例如,第一计算设备1和第二计算设备2可以包括多个处理器和/或多个DRAM。
在一些示例中,第一、源计算设备和第二、目标计算设备都能够访问安全共享存储器。在一些示例中,当以安全模式操作时,源计算设备能够访问安全共享存储器,并且当以安全模式操作时,目标计算设备能够访问安全共享存储器。安全共享存储器可以由源计算设备和目标计算设备的安全代码组件访问,但不能由源计算设备和目标计算设备的任何其他组件访问。例如,源计算设备在源计算设备的正常操作期间或目标计算设备在目标计算设备的正常操作期间可能无法访问安全存储器。图2示出了一个这样的示例,其中第一计算设备1和第二计算设备2都能够访问安全共享存储器26。第一计算设备1可以通过通信链路17连接到安全共享存储器26,并且第二计算设备2可以通过通信链路27连接到安全共享存储器26。通信链路17,27可以是高速通信链路。通信链路17,27可以是光通信链路。通信链路17,27中的一个或两个可以包括有线或无线通信网络。在一些示例中,第一和第二计算设备均物理耦合到安全共享存储器26。安全共享存储器26可以是非易失性存储器(NVM)。在一些示例中,安全共享存储器26被加密,在这种情况下,第一和第二计算设备中的每一个被提供有用于访问安全共享存储器26的加密密钥。在一些这样的示例中,集中式密钥管理器(例如,在与第一和第二计算设备通信的安全服务器上)调解用于安全共享存储器26的加密密钥的访问。
在第一、源计算设备和第二、目标计算设备每个都能够访问安全共享存储器(例如,图2的示例)的示例中,第一计算设备1的安全代码组件13的指令集可以被布置为使得当被执行时(例如由第一计算设备的处理器),第一计算设备通过将寄存器值存储在安全共享存储器26中,使第一计算设备1的处理器11的寄存器值对第二计算设备2可用。第一计算设备1的安全代码组件13的指令集可以被布置成使得当被执行时(例如由第一计算设备的处理器),计算设备通过向第二计算设备2发送消息,使得第一计算设备1的处理器11的寄存器值对第二计算设备2可用。这样的消息可以包括寄存器值已经存储在安全共享存储设备26中的指示。这样的消息可以包括在寄存器值在安全共享存储设备26中的位置的指示。
第一计算设备1的安全代码组件13的指令集可以被布置成使得当被执行时(例如,通过第一计算设备的处理器),计算设备通过将数据存储在安全共享存储器26中使存储在第一计算设备1的DRAM 12中的数据对第二计算设备2可用。第一计算设备1的安全代码组件13的指令集可以被布置为使得当被执行时(例如,由第一计算设备的处理器),计算设备通过向第二计算设备2发送消息使存储在第一计算设备1的DRAM 12中的数据对第二计算设备2可用。这样的消息可以包括DRAM内容已经存储在安全共享存储设备26中的指示。这样的消息可以包括在安全共享存储设备26中的DRAM内容的位置的指示。
在这样的示例中,第二计算设备2的安全代码组件23的指令集可以被布置成使得当被执行时(例如,由第二计算设备的处理器),第二计算设备2通过从安全共享存储器26取回寄存器值来接收第一计算设备1的处理器11的寄存器值。在一些示例中,第二计算设备可以响应于第二计算设备从第一计算设备接收消息来取回寄存器值。该消息可以指示寄存器值已被存储在安全共享存储设备中,和/或可以指示寄存器值在安全共享存储设备中的位置。
第二计算设备2的安全代码组件23的指令集可以被布置成使得当被执行时(例如,由第二计算设备的处理器),第二计算设备2通过从安全共享存储器26取回数据来接收存储在第一计算设备1的DRAM 12中的数据(即DRAM 12的内容)。在一些示例中,第二计算设备可以响应于第二计算设备从第一计算设备接收消息而取回DRAM内容。该消息可以指示DRAM内容已经存储在安全共享存储设备中,和/或可以指示DRAM内容在安全共享存储设备中的位置。
在一些示例中,辅助存储设备与源计算设备相关联并且可由源计算设备访问。在一些示例中,辅助存储设备与源计算设备相关联并且可由源计算设备访问,并且还可由目标计算设备访问。图3示出了一个这样的示例,其中第一计算设备1和第二计算设备2都能够访问辅助存储设备30。第一计算设备可以在第一计算设备的正常操作期间将数据存储在辅助存储设备30中。第一计算设备1可以通过通信链路37连接到辅助存储设备30,并且第二计算设备2可以通过通信链路38连接到辅助存储设备30。通信链路37,38可以是高速通信链接。通信链路37,38可以是光通信链路。通信链路37,38中的一个或两个可以包括有线或无线通信网络。在一些示例中,第一计算设备和第二计算设备每个均物理耦合到辅助存储设备30。辅助存储设备30可以是非易失性存储器(NVM)。
在图3的示例中,第一计算设备1的安全代码组件13的指令集被布置为使得当被执行时(例如,由第一计算设备的处理器),其使得第一计算设备1使辅助存储设备30的内容对第二计算设备2可用。第一计算设备可以以上述关于使得寄存器值和DRAM数据对第二计算设备可用的任何方式使辅助存储设备30的内容对第二计算设备2可用。
在一些示例中,辅助存储设备30被加密,其中第一计算设备1包括用于访问辅助存储设备30的加密密钥。在一些这样的示例中,集中式密钥管理器调解辅助存储设备30的加密密钥的访问。集中式密钥管理器可以包括在例如与第一计算设备1和第二计算设备2通信并且由第一计算设备1和第二计算设备2两者信任的第三计算设备中。在一些示例中,第一计算设备1的安全代码组件13的指令集被布置成使得当被执行时(例如,由第一计算设备的处理器),其使得第一计算设备1使加密密钥对第二计算设备2可用以使第二计算设备2能够解密辅助存储设备30(或解密辅助存储设备30的内容)。
第一计算设备1可以通过向集中式密钥管理器发送请求以向第二计算设备2提供加密密钥来使加密密钥对第二计算设备2可用。集中式密钥管理器可以在向第二计算设备2提供密钥之前验证这样的请求。向第二计算设备2提供密钥可以包括集中式密钥管理器将加密密钥的所有权从第一计算设备1转移到第二计算设备2。向第二计算设备2提供密钥可以包括集中式密钥管理器创建供第二计算设备2使用的另外的加密密钥,使得第一计算设备和第二计算设备都能够解密辅助存储设备30(或其内容)。
在一些示例中,辅助存储设备与源计算设备相关联并且可由源计算设备访问,但是不能被目标计算设备访问(例如,因为目标设备不耦合到辅助存储设备)。在这样的示例中,使得辅助存储设备30的内容对第二计算设备可用可以包括第一计算设备1将辅助存储设备30的内容(例如,经由通信链路15)发送到第二计算设备2。在一些示例中,使辅助存储设备30的内容对第二计算设备可用可以包括第一计算设备1将辅助存储设备的内容存储在由第二计算设备可访问的安全共享存储器(例如,安全共享存储器26)中。
在目标计算设备不能访问与源计算设备相关联的辅助存储设备的示例中,由第二计算设备接收辅助存储设备的内容可以包括第二计算设备经由与第一计算设备的通信链路(例如通信链路15)接收内容。在一些示例中,接收辅助存储设备的内容可以包括第二计算设备从安全共享存储器(例如,安全共享存储器26)取回辅助存储设备的内容。在一些示例中,第二计算设备的安全代码组件的指令集被布置成使得当被执行时,其使第二计算设备存储辅助存储设备的内容。第二计算设备可以将辅助存储设备的内容存储在包括在第二计算设备中或可由第二计算设备访问的存储器中,例如DRAM 22、受保护存储器24或安全共享存储设备26。
图4是用于由示例性的第一(源)计算设备和示例的第二(目标)计算设备执行的示例方法的流程图,例如用于将实时操作系统从第一计算设备迁移到第二计算设备。尽管下面描述的方法的执行参考图1-3的第一和第二计算设备,可以采用用于执行该方法的其它合适的设备来实施本技术。图4和其他图中描述的流程图可以由本文所述的组件或多个组件,和/或以电子电路的形式,以可执行指令(例如,安全代码组件13的指令集和/或安全代码组件23的指令集)的形式来实现,所述可执行指令存储在机器可读存储介质上,诸如受保护存储器14、受保护存储器24和/或安全共享存储器26。
图4中描绘的各种处理块和/或数据流在本文中更详细地描述。所描述的处理块可以使用上面详细描述的一些或全部系统组件来实现,并且在一些实现方式中,可以以不同的顺序执行各种处理块,并且可以省略各种处理块。可以与所描绘的流程图中所示的一些或所有处理块一起执行附加的处理块。一些处理块可以同时执行。因此,如图所示(并且在下面更详细地描述)在流程图中所示的操作意在作为示例,因此不应被视为限制。
在框401中,将第一计算设备(例如,第一计算设备1)的处理器(例如,处理器11)的寄存器值提供给与第一计算设备通信的第二计算设备(例如,第二计算设备2)。提供寄存器值可以以关于第一计算设备1的操作的上面描述的任何方式来实现。
在框402中,将第一计算设备的DRAM(例如DRAM 12)的内容提供给第二计算设备。在第一计算设备的正常操作期间,DRAM的内容可以包括由第一计算设备存储在DRAM中的数据。提供寄存器值可以以关于第一计算设备1的操作的上面描述的任何方式来实现。
在框403中,例如通过第二计算设备将寄存器值(即,提供的第一计算设备的处理器的寄存器值)存储在第二计算设备的受保护存储器(例如受保护存储器24)中。受保护存储器与在第二计算设备的正常操作期间由第二计算设备使用的存储器分开。寄存器值的存储可以以关于计算设备2的操作的上面描述的任何方式来实现。
在框404中,例如通过第二计算设备将DRAM的内容(即,第一计算设备的DRAM的内容)存储在第二计算设备的DRAM(例如DRAM 22)中。第二计算设备的DRAM可以是由第二计算设备用于在第二计算设备的正常操作期间存储数据的DRAM。DRAM内容/数据的存储可以以关于计算设备2的操作的上面描述的任何方式来实现。
在框405中,例如,由第二计算设备2将寄存器值加载到第二计算设备的处理器(例如处理器21)的寄存器中。寄存器值的加载可以以关于计算设备2的操作的上面描述的任何方式来实现。框405可以响应于框403和框404的执行完成而自动执行。框405可以响应于接收例如来自远程节点、来自第一和/或第二计算设备的操作者等的命令而执行。可以响应于接收到转换到正常操作模式的命令来执行框405。
在一些示例中,框401-505在最大时间段内完成。最大时间段可以具有关于第一和第二计算设备1,2的操作的上面描述的任何特征。
在一些示例中,框401和402由包括在第一计算设备中的安全代码组件执行,并且框403,404和405由包括在第二计算设备中的安全代码组件来执行。第一和第二计算设备的这种安全代码组件可以具有关于第一和第二计算设备1,2的操作的上面描述的任何特征。
在一些示例中,响应于第一计算设备接收迁移命令而执行框401和402。图5是由示例性第一(源)计算设备执行的示例性方法的流程图,其涉及接收迁移命令。在框501中,接收迁移命令,例如,由第一计算设备1。迁移命令可以具有关于第一计算设备的操作的上面描述的任何特征。框502对应于图4的框401。框503对应于图4的框402。响应于接收迁移命令而执行框502和503。框502和503可以分别以与图4的框401和402相同的方式执行。
在一些示例中,响应于第二计算设备接收到迁移命令而执行框403和404。图6是通过示例性的第二(目标)计算设备执行的示例性方法的流程图,其涉及接收迁移命令。在框601中,接收迁移命令,例如由第二计算设备2。迁移命令可以具有关于第二计算设备的操作的上面描述的任何特征。框602对应于图4的框403。框603对应于图4的框404。框604对应于图4的框405。响应于接收到迁移命令而执行框602和603。框602,603和604可以分别以与图4的框403,404和405相同的方式执行。
在执行框401和402期间暂停第一计算设备的正常操作。在执行框403,404和405期间暂停第二计算设备的正常操作。暂停第一计算设备的正常操作包括将第一计算设备转换到安全操作模式。暂停第二计算设备的正常操作包括将第二计算设备转换到安全操作模式。第一计算设备的安全操作模式可以具有关于第一计算设备1的操作的上面描述的任何特征。第二计算设备的安全操作模式可以具有关于第二计算设备2的操作的上面描述的任何特征。
图7是由示例的第一(源)计算设备和示例的第二(目标)计算设备执行的示例性方法的流程图,其涉及将第一和第二计算设备转换为安全操作模式。
在框701中,第一计算设备(例如,第一计算设备1)被转换到安全操作模式。将第一计算设备转换到安全操作模式可以响应于由第一计算设备接收到命令(例如,迁移命令)来执行。可以以关于第一计算设备1的操作的上面描述的任何方式来实现将第一计算设备转换为安全操作模式。
框702和703分别对应于图4的框401和402,并且可以以相同的方式执行。在第一计算设备处于安全操作模式的同时执行框702和703。
在框701中,第二计算设备(例如,第二计算设备2)被转换到安全操作模式。将第二计算设备转换到安全操作模式可以响应于由第二计算设备接收到命令(例如,迁移命令)来执行。将第二计算设备转换到安全操作模式可以以关于第二计算设备2的操作的上面描述的任何方式来实现。
框705,706和707分别对应于图4的框403,404和405,并且可以以相同的方式执行。在第二计算设备处于安全操作模式的同时执行框705,706和707。
在一些示例中,第一(源)计算设备的处理器的寄存器值可能不能完全捕获第一计算设备的处理器的内部状态。因此,用于将实时操作系统从第一(源)计算设备迁移到第二(目标)计算设备的方法的一些示例包括使第二计算设备的处理器的设置与第一计算设备的处理器的设置同步。图8示出了一个这样的示例。
图8是通过示例性的第二(目标)计算设备执行的示例性方法的流程图。框801,802和804分别对应于图4的框403,404和405,并且可以以相同的方式执行。在框803中,第二计算设备的处理器的设置与第一计算设备的处理器的设置同步。框803可以在框804之前执行。同步第一计算设备的处理器的设置与第二计算设备的处理器的设置可以包括第二计算设备的安全代码组件重配置第二计算设备的存储器管理单元(MMU)。
在一些示例中,辅助存储设备与源计算设备相关联并且可由源计算设备访问。在这样的示例中,使包含在辅助存储设备中的数据在迁移过程期间对目标计算设备可用。图9示出了一个这样的示例。
图9是由示例的第一(源)计算设备(例如,第一计算设备1)和示例的第二(目标)计算设备(例如第二计算设备2)执行的示例性方法的流程图。框901和902对应于图4的框401和402,并且可以以相同的方式执行。在框903中,向第二计算设备提供与第一计算设备相关联和可由其访问的辅助存储设备(例如辅助存储设备30)的内容。辅助存储设备可以具有关于辅助存储设备30的操作的上面描述的任何特征。提供辅助存储设备的内容可以以关于第一计算设备1的操作的上面描述的任何方式来实现。
在一些示例中,第二计算设备可能不耦合到辅助存储设备,和/或可能不能访问辅助存储设备。在这种示例中,第一计算设备可以直接向第二计算设备提供辅助存储设备的内容,例如通过经由网络发送内容。在一些这样的示例中,第二计算设备可以将辅助存储设备的内容存储在第二计算设备的或可由第二计算设备访问的存储器(例如,连接到第二计算设备的DRAM 22或非易失性存储器)中。图10示出了一个这样的示例。
图10是由示例的第二(目标)计算设备(例如,第二计算设备2)执行的示例性方法的流程图。框1001,1002和1004对应于图4的框403,404和405,并且可以以相同的方式执行。在框1003中,已经对于第二计算设备可用的与第一计算设备相关并可由第一计算设备访问的辅助存储设备(例如辅助存储设备30)的内容(例如由第二计算设备2)存储在第二计算设备的DRAM(例如DRAM 22)中。存储辅助存储设备的内容可以以关于第二计算设备2的操作的上面描述的任何方式来实现。
在一些示例(未示出)中,第二计算设备被选择为目标计算设备,该目标计算设备基于第二计算设备的属性是否满足某一预定义标准,而在迁移过程期间从第一源计算设备接收操作系统。第二计算设备的属性可以包括关于第二计算设备2的操作的上面描述的任何属性。预定义标准可以具有关于第二计算设备2的操作的上面描述的任何特征。在这样的示例中,可以根据第二计算设备2符合预定义标准而执行图4的方法。在一些示例中,图4的方法可以包括要在框401之前执行的选择第二计算设备的可选框。选择第二计算设备可以包括识别耦合到第一计算设备1并且具有满足预定义标准的属性的计算设备。选择第二计算设备可以包括确定耦合到第一计算设备1的计算设备是否具有满足预定义标准的属性。选择第二计算设备可以包括将具有符合预定义标准的属性的计算设备耦合到第一计算设备1。
本公开中的示例可以作为方法、系统或机器可读指令来提供。这种机器可读指令可以包括在其中或其上具有计算机可读程序代码的计算机可读存储介质(包括但不限于盘存储设备、CD-ROM、光存储设备、等)上。
参考根据本公开的示例的方法、设备和系统的流程图和/或框图来描述本公开。虽然上面描述的流程图显示了特定的执行顺序,但执行顺序可能与所描述的顺序不同。关于一个流程图描述的框可以与另一个流程图的那些框组合。应当理解,流程图和/或框图中的每个流程和/或框以及流程图和/或框图中的流程和/或图形的组合可以由机器可读指令来实现。
机器可读指令可以例如由通用计算机、专用计算机、嵌入式处理器或其他可编程数据处理设备的处理器执行,以实现在描述和图中描述的功能。特别地,处理器或处理装置可以执行机器可读指令。因此,装置和设备的功能模块或引擎可以由执行存储在存储器中的机器可读指令的处理器或者根据嵌入在逻辑电路中的指令运行的处理器来实现。术语“处理器”应被广泛地解释为包括CPU、处理单元、ASIC或可编程门阵列等。方法和功能模块可以全部由单个处理器执行或者在多个处理器之间分配。
这样的机器可读指令还可以存储在可以引导计算机或其他可编程数据处理设备以特定模式操作的计算机可读存储设备中。
这样的机器可读指令还可以被加载到计算机或其他可编程数据处理设备上,使得计算机或其他可编程数据处理设备执行一系列操作以产生计算机实现的处理,因此在计算机或其他可编程设备上执行的指令提供用于实现由流程图中的流程和/或框图中的框指定的功能的操作。
虽然已经参考某些示例描述了方法、装置和相关方面,但是在不脱离本公开的精神的情况下,可以进行各种修改、改变、省略和替换。因此,意图是所述方法、装置和相关方面仅受所附权利要求及其等同物的范围的限制。应当注意,上述示例说明了而不是限制本文所描述的内容,并且本领域技术人员将能够设计许多备选实现而不脱离所附权利要求的范围。
用词“包括”不排除除权利要求中列出的元素之外的元素的存在,“一(a)”或“一个(an)”不排除多个,并且单个处理器或其他单元可以实现在权利要求中叙述的多个单元的功能。
任何从属权利要求的特征可以与任何独立权利要求或其他从属权利要求的特征组合。

Claims (15)

1.一种用于将实时操作系统从第一计算设备迁移到第二计算设备的方法,所述方法包括:
(a)将第一计算设备的处理器的寄存器值提供给与所述第一计算设备通信的第二计算设备;
(b)将所述第一计算设备的动态随机存取存储器DRAM中的内容提供给所述第二计算设备;
(c)将所述寄存器值存储在所述第二计算设备的受保护存储器中,其中,所述受保护存储器与在所述第二计算设备的正常操作期间由所述第二计算设备使用的存储器分开;
(d)将所述第一计算设备的DRAM中的内容存储在所述第二计算设备的DRAM中;以及
(e)将来自所述受保护存储器的寄存器值加载到所述第二计算设备的处理器的寄存器中。
2.根据权利要求1所述的方法的方法,其中(a)和(b)由包括在所述第一计算设备中的安全代码组件执行,并且(c),(d)和(e)由包括在所述第二计算设备中的安全代码组件执行。
3.根据权利要求2所述的方法的方法,其中包括在所述第一计算设备中的所述安全代码组件和/或包括在所述第二计算设备中的所述安全代码组件包括以下之一:一段可信代码,可信固件,可信执行环境TEE。
4.根据权利要求1所述的方法的方法,还包括:
由所述第一计算设备接收迁移命令,其中(a)和(b)响应于所述第一计算设备接收到迁移命令而执行;以及
由所述第二计算设备接收迁移命令,其中(c)和(d)响应于所述第二计算设备接收到迁移命令而执行。
5.根据权利要求1所述的方法的方法,其中在执行(a)和(b)期间所述第一计算设备的正常操作被暂停,并且在执行(c),(d)和(e)期间所述第二计算设备的正常操作被暂停。
6.根据权利要求1所述的方法的方法,还包括将所述第一计算设备转换到安全操作模式,并且在所述安全操作模式下执行(a)和(b),以及将所述第二计算设备转换到安全操作模式,并且在所述安全操作模式下执行(c),(d)和(e)。
7.根据权利要求1所述的方法的方法,还包括,在执行(e)之前,使所述第二计算设备的处理器的设置与所述第一计算设备的处理器的设置同步。
8.根据权利要求1所述的方法的方法,其中响应于(c)和(d)的执行的完成,自动执行(e)。
9.根据权利要求1所述的方法的方法,其中:
执行(a)包括将所述第一计算设备的处理器的寄存器值存储在可由所述第一计算设备和所述第二计算设备访问的安全共享存储器中,以及从所述安全共享存储器取回所存储的所述第一计算设备的处理器的寄存器值;以及
执行(b)包括将所述第一计算设备的DRAM中的内容存储在可由所述第一计算设备和所述第二计算设备访问的安全共享存储器中,以及从所述安全共享存储器取回所述第一计算设备的DRAM中的内容。
10.根据权利要求1所述的方法的方法,其中:
执行(a)包括通过网络将所述第一计算设备的处理器的寄存器值发送到所述第二计算设备;以及
执行(b)包括通过网络将所述第一计算设备的DRAM中的内容发送到所述第二计算设备。
11.根据权利要求1所述的方法的方法,其中执行(b)包括提供所述DRAM的地址空间中的包含数据的区域,而不提供所述DRAM的地址空间中的不包含数据的区域。
12.根据权利要求1所述的方法的方法,还包括向所述第二计算设备提供与所述第一计算设备相关联且可由所述第一计算设备访问的辅助存储设备中的内容。
13.根据权利要求12所述的方法的方法,其中所述辅助存储设备被加密并且也可由所述第二计算设备访问,并且其中向所述第二计算设备提供所述辅助存储设备中的内容包括:向所述第二计算设备提供所述辅助存储设备的加密密钥,以使所述第二计算设备能够解密所述辅助存储设备。
14.一种源计算设备,包括:
动态随机存取存储器DRAM,用于存储数据;
处理器;以及
响应于所述源计算设备接收到的迁移命令而被执行的安全代码组件;
其中所述安全代码组件包括指令,所述指令在被执行时使所述处理器:
使得所述处理器的寄存器值对目标计算设备可用;以及
使得存储在所述DRAM中的数据对所述目标计算设备可用。
15.一种目标计算设备,包括:
动态随机存取存储器DRAM,用于存储数据;
处理器;
与在所述目标计算设备的正常操作期间由所述目标计算设备使用的存储器分开的受保护存储器;以及
响应于所述目标计算设备接收到的迁移命令而被执行的安全代码组件;
其中所述安全代码组件包括指令,所述指令在被执行时使所述处理器:
接收源计算设备的处理器的寄存器值;
将接收的寄存器值存储在所述受保护存储器中;
接收存储在源计算设备的DRAM中的数据;
将接收到的数据存储在所述目标计算设备的DRAM中;以及
将来自所述受保护存储器的所述寄存器值加载到所述处理器的寄存器中。
CN201580079050.6A 2015-07-31 2015-07-31 计算机系统的迁移 Pending CN107533478A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/067659 WO2017020927A1 (en) 2015-07-31 2015-07-31 Migration of computer systems

Publications (1)

Publication Number Publication Date
CN107533478A true CN107533478A (zh) 2018-01-02

Family

ID=53776603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580079050.6A Pending CN107533478A (zh) 2015-07-31 2015-07-31 计算机系统的迁移

Country Status (4)

Country Link
US (1) US20180107509A1 (zh)
EP (1) EP3278219A1 (zh)
CN (1) CN107533478A (zh)
WO (1) WO2017020927A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11422851B2 (en) * 2019-04-22 2022-08-23 EMC IP Holding Company LLC Cloning running computer systems having logical partitions in a physical computing system enclosure
CN113626131B (zh) * 2020-05-07 2023-03-28 中科寒武纪科技股份有限公司 实现热迁移的方法、芯片、板卡和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1917425A (zh) * 2005-08-16 2007-02-21 联想(北京)有限公司 在可信组之间传送电子邮件的方法
US20070150845A1 (en) * 2005-12-26 2007-06-28 Fujitsu Limited Designing apparatus, designing method, and program thereof
US20130031342A1 (en) * 2011-07-29 2013-01-31 Cisco Technology, Inc. Storage and transfer of physical machine state
US20140025961A1 (en) * 2010-12-21 2014-01-23 David N. Mackintosh Virtual machine validation
CN104239122A (zh) * 2014-09-04 2014-12-24 华为技术有限公司 一种虚拟机迁移方法和装置
US20150012567A1 (en) * 2013-07-02 2015-01-08 Hitachi Data Systems Engineering UK Limited Method and apparatus for migration of a virtualized file system, data storage system for migration of a virtualized file system, and file server for use in a data storage system
CN104520869A (zh) * 2012-08-03 2015-04-15 微软公司 可信执行环境虚拟机克隆

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108668B2 (en) * 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
JP2008033483A (ja) * 2006-07-27 2008-02-14 Nec Corp 計算機システム、計算機および計算機動作環境の移動方法
WO2010126048A1 (ja) * 2009-04-28 2010-11-04 日本電気株式会社 計算機システムにおける仮想装置の高速移動システム及び管理装置並びにその方法及びそのプログラム
US8689214B2 (en) * 2011-03-24 2014-04-01 Amazon Technologies, Inc. Replication of machine instances in a computing environment
US9317689B2 (en) * 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
US9075529B2 (en) * 2013-01-04 2015-07-07 International Business Machines Corporation Cloud based data migration and replication
US8671232B1 (en) * 2013-03-07 2014-03-11 Freescale Semiconductor, Inc. System and method for dynamically migrating stash transactions
US9055119B2 (en) * 2013-03-26 2015-06-09 Vmware, Inc. Method and system for VM-granular SSD/FLASH cache live migration
US9632958B2 (en) * 2014-07-06 2017-04-25 Freescale Semiconductor, Inc. System for migrating stash transactions
US9348655B1 (en) * 2014-11-18 2016-05-24 Red Hat Israel, Ltd. Migrating a VM in response to an access attempt by the VM to a shared memory page that has been migrated
US10176004B2 (en) * 2014-11-18 2019-01-08 International Business Machines Corporation Workload-aware load balancing to minimize scheduled downtime during maintenance of host or hypervisor of a virtualized computing system
US9509500B2 (en) * 2015-03-31 2016-11-29 Here Global B.V. Method and apparatus for migrating encrypted data
US9720721B2 (en) * 2015-07-01 2017-08-01 International Business Machines Corporation Protected guests in a hypervisor controlled system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1917425A (zh) * 2005-08-16 2007-02-21 联想(北京)有限公司 在可信组之间传送电子邮件的方法
US20070150845A1 (en) * 2005-12-26 2007-06-28 Fujitsu Limited Designing apparatus, designing method, and program thereof
US20140025961A1 (en) * 2010-12-21 2014-01-23 David N. Mackintosh Virtual machine validation
US20130031342A1 (en) * 2011-07-29 2013-01-31 Cisco Technology, Inc. Storage and transfer of physical machine state
CN104520869A (zh) * 2012-08-03 2015-04-15 微软公司 可信执行环境虚拟机克隆
US20150012567A1 (en) * 2013-07-02 2015-01-08 Hitachi Data Systems Engineering UK Limited Method and apparatus for migration of a virtualized file system, data storage system for migration of a virtualized file system, and file server for use in a data storage system
CN104239122A (zh) * 2014-09-04 2014-12-24 华为技术有限公司 一种虚拟机迁移方法和装置

Also Published As

Publication number Publication date
EP3278219A1 (en) 2018-02-07
WO2017020927A1 (en) 2017-02-09
US20180107509A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
US11956220B2 (en) Logic repository service using encrypted configuration data
Pinto et al. Demystifying arm trustzone: A comprehensive survey
CN103154925B (zh) 多处理器系统中的通信禁用
US10686605B2 (en) Technologies for implementing mutually distrusting domains
KR102347562B1 (ko) 보안 제어 방법 및 컴퓨터 시스템
CN109565444A (zh) 安全公共云
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
CN110023905A (zh) 联网可编程逻辑服务提供商
CN110998555A (zh) 支持可适应性主机逻辑的逻辑仓储服务
CN108027779A (zh) 允许受保护的容器存储器与输入/输出设备之间的安全通信的处理器、方法、系统和指令
US20180373878A1 (en) Secure boot for multi-core processor
JP2019537099A (ja) 論理リポジトリサービス
EP2815349A1 (en) Roots-of-trust for measurement of virtual machines
EP3646224B1 (en) Secure key storage for multi-core processor
CN103679060B (zh) 加密方法及加密装置
CN107729758A (zh) 用于多租户云工作量的安全处理器
EP3913513A1 (en) Secure debug of fpga design
EP3274896B1 (en) Configuration of a memory controller for copy-on-write with a resource controller
CN107533478A (zh) 计算机系统的迁移
CN109891425A (zh) 序列验证
TW200417216A (en) Control of access to a memory by a device
Maas et al. A high-performance oblivious RAM controller on the convey HC-2ex heterogeneous computing platform
Ray et al. E-IIPS: A Centralized Policy Implementation Architecture
Surminski et al. DMA’n’Play: Practical Remote Attestation Based on Direct Memory Access
Stark et al. How Flexible Is CXL's Memory Protection?

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180102

WD01 Invention patent application deemed withdrawn after publication