CN108370382B - 用于虚拟机之间的数据传输的可缩放技术 - Google Patents

用于虚拟机之间的数据传输的可缩放技术 Download PDF

Info

Publication number
CN108370382B
CN108370382B CN201680075748.5A CN201680075748A CN108370382B CN 108370382 B CN108370382 B CN 108370382B CN 201680075748 A CN201680075748 A CN 201680075748A CN 108370382 B CN108370382 B CN 108370382B
Authority
CN
China
Prior art keywords
virtual machine
virtual
memory space
data
common
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.)
Active
Application number
CN201680075748.5A
Other languages
English (en)
Other versions
CN108370382A (zh
Inventor
B-Z.弗里德曼
E.塔米尔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN108370382A publication Critical patent/CN108370382A/zh
Application granted granted Critical
Publication of CN108370382B publication Critical patent/CN108370382B/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/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/54Interprogram communication
    • 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/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述了用于虚拟机(VM)之间的数据传输的可缩放技术。在示例实施例中,设备可以包括:电路;虚拟机管理组件,用于由电路执行以:定义多个公共虚拟存储器空间,并将所述多个公共虚拟存储器空间中的每一个指配给包括第一VM和第二VM的多个VM中的相应一个;以及虚拟机执行组件,用于由所述电路执行以执行对应于所述第一VM的第一虚拟机进程和对应于所述第二VM的第二虚拟机进程,所述第一虚拟机进程标识要由第一VM提供给第二VM的数据,并通过写到指配给第一VM的公共虚拟存储器空间将数据提供给第二VM。描述并要求保护其它实施例。

Description

用于虚拟机之间的数据传输的可缩放技术
相关申请的交叉引用
本申请要求2015年12月24日提交的先前提交的美国专利申请序列号14 / 998,361的权益和优先权,其主题通过引用以其整体被结合于本文。
技术领域
本文的实施例通常涉及虚拟机管理、存储器分配、I/O和连网。
背景技术
在多种上下文中,主机配置成支持在该主机上运行的虚拟机(VM)之间的数据的传输可以是可期望的。例如,提供VM间数据传输支持可以能够实现安全性装备VM的实现,该安全设备VM检查对文件系统数据的改变并将其自身置于客户端VM与一个或多个存储资源(诸如本地直接附连存储装置、网络附连存储装置(NAS)和/或存储区域网络(SAN)存储资源)之间。此类安全性装备VM可以配置成例如防止恶意软件从存储装置被加载和/或防止客户端VM将已知的恶意内容存储到文件系统。
附图说明
图1示出了第一操作环境的实施例。
图2示出了第二操作环境的实施例。
图3示出了第三操作环境的实施例。
图4示出了指配方案的实施例。
图5示出了设备的实施例。
图6示出了逻辑流的实施例。
图7示出了存储介质的实施例。
图8示出了计算架构的实施例。
图9示出了通信架构的实施例。
具体实施方式
各种实施例通常可以针对用于虚拟机(VM)之间的数据传输的可缩放技术。在示例实施例中,设备可以包括电路;虚拟机管理组件,用于由电路执行以:定义多个公共虚拟存储器空间,并将所述多个公共虚拟存储器空间中的每一个指配给包括第一VM和第二VM的多个VM中的相应一个;以及虚拟机执行组件,用于由所述电路执行以执行对应于所述第一VM的第一虚拟机进程和对应于所述第二VM的第二虚拟机进程,所述第一虚拟机进程用于标识要由第一VM提供给第二VM的数据,并通过写到指配给第一VM的公共虚拟存储器空间将数据提供给第二VM。描述并要求保护其它实施例。
各种实施例可以包括一个或多个元件。元件可以包括布置成执行某些操作的任何结构。如针对设计参数或性能约束的给定集合所期望的,每个元件可以被实现为硬件、软件或其任何组合。尽管通过示例,实施例可以通过某个拓扑中的有限数量的元件来描述,所述实施例可以在备选拓扑中包括更多或更少的元件(如针对给定实现所期望的)。值得注意的是,对“一个实施例”或“一实施例”的任何引用意味着结合所述实施例描述的具体特征、结构或特性被包括在至少一个实施例中。说明书中各种地方出现的短语“在一个实施例中”、“在一些实施例中”和“在各种实施例中”并不一定全部指的是相同实施例。
图1示出了可以表示各种实施例的操作环境100的示例。在操作环境100中,电路102可运行复数数量N个虚拟机108-1至108-N。在一些实施例中,虚拟机108-1至108-N中的每个可以包括在电路102上运行的单独的相应操作系统(OS)。在各种实施例中,电路102可以包括处理器或逻辑装置的电路。在一些实施例中,电路102可以与存储器104通信地耦合,存储器104通常可以包括能够存储数据的机器可读或计算机可读存储介质。在各种实施例中,电路102可以经由总线110与存储器104中的一些或全部通信地耦合。在一些实施例中,存储器104中的一些或全部可以被包括在与电路102相同的集成电路上。在各种实施例中,存储器104中的一些和全部可以被设置在在电路102的集成电路的外部的集成电路或其它介质上,例如硬盘驱动器。实施例不被限制在此上下文中。
在一些实施例中,主机106通常可以负责创建和管理使用电路102实现的虚拟机。在各种实施例中,主机106可以包括主机OS,并且虚拟机108-1至108-N中的每个可以包括在该主机OS内运行的相应客户端OS。在一些实施例中,主机106可以包括管理程序。在各种实施例中,主机106通常可以负责分配用于由虚拟机108-1至108-N使用的存储器资源。在一些实施例中,主机106可以按照虚拟存储器方案分配存储器资源。在各种实施例中,根据此类虚拟存储器方案,主机106可以将虚拟存储器资源112的集合与存储器104中包括的物理存储器资源114的集合关联。在一些实施例中,主机106可以将对应于虚拟存储器资源112的虚拟存储器地址映射到对应于物理存储器资源114的物理存储器地址。在各种实施例中,主机106可以维持存储器映射信息116,其标识其已经在具体虚拟存储器资源和具体物理存储器资源之间被定义的映射。在一些实施例中,主机106可以实现分页的虚拟存储器方案,根据该方案它可以采用虚拟存储器页的单位来分配虚拟存储器资源112。在各种此类实施例中,存储器映射信息116可以被包括在标识虚拟存储器页和具体物理存储器资源114之间的映射的页表中。实施例不被限制在此上下文中。
在一些实施例中,主机106可以将相应的虚拟存储器空间118-1至118-N分配给虚拟机108-1至108-N。在各种实施例中,虚拟存储器空间118-1至118-N中的每个可以包括主机106可以与物理存储器资源114关联的虚拟存储器资源112的相应子集。在其中主机106实现分页虚拟存储器方案的一些实施例中,虚拟存储器空间118-1至118-N中的每个可以包括虚拟存储器的一个或多个页的相应集合。在各种实施例中,对于虚拟存储器空间118-1至118-N中的每个,存储器映射信息116可以标识相应的物理存储器空间120-1至120-N。在一些实施例中,物理存储器空间120-1至120-N中的每个可以包括物理存储器资源的集合,所述物理存储器资源的集合对应于在映射到该物理存储器空间的虚拟存储器空间中包括的虚拟存储器资源的集合。实施例不被限制在此上下文中。
在各种实施例中,主机106可以生成和/或维持存储器分配信息122。在一些实施例中,存储器分配信息122通常可以包括主机106可以用于跟踪它可以定义的各种虚拟存储器空间和/或用于跟踪各种虚拟机(它可以将此类虚拟存储器空间指配给所述虚拟机)的信息。在一些实施例中,存储器分配信息122可以包括指示虚拟存储器空间118-1至118-N中的每个中包括的虚拟存储器资源112的相应具体集合的信息。在各种实施例中,存储器分配信息122可以包括指示相应虚拟机108-1至108-N(虚拟存储器空间118-1至118-N中的每个已被指配给其)的信息。在一些实施例中,虚拟机108-1至108-N中的每个可以仅被允许访问如由存储器分配信息122指定的其相应指配的虚拟存储器空间内包括的虚拟存储器资源。实施例不被限制在此上下文中。
值得注意的是,在各种实施例中,电路102可以包括多个装置的电路。例如,在一些实施例中,电路102可以包括多个处理器或逻辑装置的电路。在各种实施例中,给定的虚拟机可以同时(at once)在多于一个此类处理器或逻辑装置上运行。在其中使用多个装置的电路实现电路102的一些实施例中,那些多个装置可以基本上并置。例如,在各种实施例中,电路102可以包括相同服务器的多个处理器的电路。在其它实施例中,电路102可以包括多个不同服务器的相应处理器/逻辑装置的电路。在一些此类实施例中,在各种服务器的相应处理器/逻辑装置上运行的虚拟机可以使用那些服务器之间的网络连接性来连网。实施例不被限制在此上下文中。
图2示出了可以表示各种实施例的操作环境200的示例。在操作环境200中,可以定义虚拟存储器空间218-1和218-2,其包括虚拟存储器资源212的相应集合。在一些实施例中,在虚拟存储器空间218-1中包括的虚拟存储器资源212的集合可以映射到物理存储器空间220-1中包括的物理存储器资源214的集合。在各种实施例中,虚拟存储器空间218-2中包括的虚拟存储器资源212的集合可以映射到物理存储器空间220-2中包括的物理存储器资源214的集合。在一些实施例中,虚拟存储器空间218-1可以被指配给虚拟机208-1,并且虚拟存储器空间218-2可以被指配给虚拟机208-2。在各种实施例中,可允许虚拟机208-1访问虚拟存储器空间218-1中包括的虚拟存储器资源,但不允许访问虚拟存储器空间218-2中包括的虚拟存储器资源,并且可允许虚拟机208-2访问虚拟存储器空间218-2中包括的虚拟存储器资源,但不允许访问虚拟存储器空间218-1中包括的虚拟存储器资源。
在一些实施例中,虚拟机208-1可以选择将数据224写到存储器。在各种实施例中,虚拟机208-1可将数据224写到虚拟存储器空间218-1中包括的虚拟存储器位置,并且因此,数据224可被存储在物理存储器空间220-1内包括的物理存储器资源中。在一些实施例中,虚拟机208-2被提供有数据224可以是可期望的。然而,在各种实施例中,虚拟机208-2可能不被允许访问虚拟存储器空间218-1中包括的虚拟存储器资源,并且因此可能不能够从物理存储器空间220-1检索数据224。在一些此类实施例中,可能不允许虚拟机208-1访问虚拟存储器空间218-2中包括的虚拟存储器资源,并且因此可能不能够将数据224存储在物理存储器空间220-2的物理存储器资源内,物理存储器空间220-2是经由虚拟存储器空间218-2对虚拟机208-2可访问的。实施例不限于此示例。
图3示出了可以表示各种实施例的操作环境300的示例。更具体地,操作环境300可以表示用于支持虚拟机之间的数据传输的基于邮箱的方案的实现。在操作环境300中,虚拟存储器资源的相应集合可以被指定于用作邮箱326-1和326-2。在一些实施例中,邮箱326-1可以包括被特定地指定于由虚拟机208-1用于将数据提供给虚拟机208-2的虚拟存储器空间。在各种实施例中,邮箱326-2可以包括被特定地指定于由虚拟机208-2用于将数据提供给虚拟机208-1的虚拟存储器空间。在一些实施例中,只有虚拟机208-1可以被允许写到邮箱326-1,并且只有虚拟机208-2可以被允许读虚拟机208-1可以写到邮箱326-1的任何数据。在各种实施例中,只有虚拟机208-2可以被允许写到邮箱326-2,并且只有虚拟机208-1可以被允许读虚拟机208-2可以写到邮箱326-2的任何数据。实施例不被限制在此上下文中。
在一些实施例中,为了将数据224提供给虚拟机208-2,虚拟机208-1可以将数据224写到邮箱326-1中包括的虚拟存储器资源。在各种实施例中,邮箱326-1的虚拟存储器资源可以映射到物理存储器空间320中包括的物理存储器资源。在一些实施例中,当虚拟机208-1将数据224写到邮箱326-1中包括的虚拟存储器资源时,数据224可以被存储在物理存储器空间320内包括的物理存储器资源中。在各种实施例中,邮箱326-2的虚拟存储器资源可以映射到与物理存储器空间220-1、物理存储器空间220-2或物理存储器空间320不同的物理存储器空间中包括的物理存储器资源。实施例不被限制在此上下文中。
图4示出了指配方案400的示例。指配方案400可以表示上面参考图3的操作环境300讨论的基于邮箱的方案的概括。根据指配方案400,定义了邮箱池,其中的每个可以对应于虚拟存储器资源的不同的相应集合。邮箱池包括对于相对于N个虚拟机VM#1到VM#N的池的数据出让方和数据受让方的每个可能组合的相应专用邮箱。每个虚拟机被指配N-1个邮箱的集合,它可以将数据写到N-1个邮箱中的每个以提供给所述池中的N-1个其它虚拟机中相应的一个虚拟机。每个虚拟机能够从N-1个邮箱的另一集合的每个邮箱读数据,可以由所述池中N-1个其它虚拟机中的相应一个写到N-1个邮箱中的每个,以便将数据提供给该虚拟机。
图4中邮箱的每个行包括给定虚拟机能够写到的邮箱。例如,第一行包括VM#1能够写到的N-1个邮箱,第二行包括VM#2能够写到的N-1个邮箱等等。图4中邮箱的每个列包括给定虚拟机能够从中读的邮箱。例如,第一列包括VM#1能够从中读的N-1个邮箱,第二行包括VM#2能够从中读的N-1个邮箱等等。图4中的邮箱池按升序编号,并且从左以采用逐行方式写。例如,第一行包括邮箱1到N-1,第二行包括邮箱N到2*(N-1)等等。池中的最后邮箱(被强调为元件402)是邮箱N*(N-1)。因此,要求总共N*(N-1)个邮箱来实现针对N个虚拟机的池的指配方案400。因此,根据指配方案400,所要求的邮箱的数量按池中虚拟机的数量的平方而增加。
在一些实施例中,图4中的每个邮箱可以对应于大小M的相应虚拟存储器缓冲器。在各种实施例中,容纳邮箱池的各种邮箱所要求的虚拟存储器空间MTOT的总量可以等于M*N*(N-1),并且因此MTOT可以与虚拟机数量N的平方成比例地增加。在各种实施例中,可以存在缓冲器大小M的最小允许值。例如,在一些实施例中,最小允许缓冲器大小可以是4千字节。在一些实施例中,对于N的较大值,MTOT的值可以超过可以分配给邮箱池而不会负面影响性能的虚拟存储器空间的量。在各种实施例中,指配方案400因此可能对于与更大的虚拟机池结合的实现不是可行可缩放的。
图5示出了在一些实施例中可以实现用于虚拟机之间的数据传输的一种或多种可缩放技术的设备500的示例。根据各种此类技术,可以针对N个虚拟机的池定义N个“发件箱”的池,并且可以将N个发件箱中的每个可以被指配给N个虚拟机中的相应一个。如图5中所示出的,设备500包括多个元件(包括电路502、存储器504和存储装置544)。然而,实施例不限于此图中所示出的元件的类型、数量或布置。
在一些实施例中,装置500可以包括电路502。电路502可以布置成执行一个或多个软件或固件实现的模块或组件,其可以包括虚拟机管理组件506和虚拟机执行组件507。在各种实施例中,电路502可以包括处理器或逻辑装置的电路,诸如复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、x86指令集兼容处理器、实现指令集的组合的处理器、诸如双核处理器或双核移动处理器的多核处理器、或任何其它微处理器或中央处理单元(CPU)。在一些实施例中,电路502可以包括专用处理器的电路,诸如控制器、微控制器、嵌入式处理器、芯片多处理器(CMP)、协处理器、数字信号处理器(DSP)、网络处理器、媒体处理器、输入/输出(I/O)处理器、媒体访问控制(MAC)处理器、无线电基带处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)等等。在各种实施例中,电路502可以使用各种商业上可用的处理器中的任何个来实现,包括但不限于AMD®Athlon®、Duron®和Opteron®处理器;ARM®应用、嵌入式和安全处理器;IBM®和Motorola®DragonBall®和PowerPC®处理器;IBM和Sony®Cell处理器;Intel®Atom®、Celeron®、Core(2)Duo®、Core i3、Core i5、Core i7、Itanium®、Pentium®、Xeon®、XeonPhi®和XScale®处理器;以及类似的处理器。实施例不被限制在此上下文中。
在各种实施例中,设备500可以包括或布置成与存储器504通信地耦合。存储器504可以使用能够存储数据的任何机器可读或计算机可读介质来实现,包括易失性和非易失性存储器两者。例如,存储器504可以包括只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、诸如铁电聚合物存储器的聚合物存储器、奥氏存储器、相变或铁电存储器、硅氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、或适合用于存储信息的任何其它类型的介质。值得注意的是,存储器单元504的某一部分或全部可以被包括在与电路502相同的集成电路上,或者备选地,存储器504的某一部分或全部可以被设置在集成电路或其它介质上,例如硬盘驱动器,其在电路502的集成电路的外部。尽管存储器504被包括在图5中的设备500内,在一些实施例中,存储器504可以在装置500的外部。实施例不被限制在此上下文中。
在各种实施例中,设备500可以包括存储装置544。存储装置544可以被实现为非易失性存储装置,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储装置、附连存储装置、闪速存储器、电池备份SDRAM(同步DRAM)和/或网络可访问存储装置。在实施例中,例如,当包括多个硬驱动器时,存储装置544可以包括用于增加对于有价值的数字媒体的存储性能增强保护的技术。存储装置544的进一步示例可以包括硬盘、软盘、紧致盘只读存储器(CD-ROM)、可记录紧致盘(CD-R)、可重写紧致盘(CD-RW)、光盘、磁介质、磁光介质、可移除存储器卡或盘、各种类型的DVD装置、磁带装置、卡带装置等等。实施例不被限制在此上下文中。
在一些实施例中,虚拟机执行组件507可以由电路502执行以运行一个或多个虚拟机。在各种实施例中,虚拟机执行组件507可由电路502执行以例示并执行用于每个此类虚拟机的相应虚拟机进程。在图5的示例中,虚拟机执行组件507可以执行对应于第一虚拟机的虚拟机进程508-1和对应于第二虚拟机的虚拟机进程508-2。在一些实施例中,虚拟机进程508-1可对应于图2和图3的虚拟机208-1,并且虚拟机进程508-2可对应于图2和图3的虚拟机208-2。实施例不被限制在此上下文中。
在各种实施例中,虚拟机管理组件506通常可以负责分配用于由可以由虚拟机执行组件507例示和执行的虚拟机进程所使用的存储器资源。在一些实施例中,虚拟机管理组件506可按照虚拟存储器方案分配存储器资源。在各种实施例中,根据此类虚拟存储器方案,虚拟机管理组件506可将虚拟存储器资源512的集合与存储器504中包括的物理存储器资源514的集合关联。在一些实施例中,虚拟机管理组件506可将对应于虚拟存储器资源512的虚拟存储器地址映射到对应于物理存储器资源514的物理存储器地址。在各种实施例中,虚拟机管理组件506可以维持存储器映射信息516,其标识已在具体虚拟存储器资源和具体物理内存资源之间被定义的映射。在一些实施例中,虚拟机管理组件506可以实现分页的虚拟存储器方案,根据所述方案它可以采用虚拟存储器页的单位分配虚拟存储器资源512。在各种此类实施例中,存储器映射信息516可以被包括在标识具体物理存储器资源514和虚拟存储器页之间的映射的页表中。实施例不被限制在此上下文中。
在一些实施例中,虚拟机管理组件506可以定义多个私有虚拟存储器空间,并且可以将所述多个私有虚拟存储器空间中的每一个指配给多个虚拟机中的相应一个。在各种实施例中,每个私有虚拟存储器空间可仅对它被指配给的虚拟机是可访问的。在一些实施例中,每个此类私有虚拟存储器空间可以包括虚拟机管理组件506可以与物理存储器资源514关联的虚拟存储器资源512的相应子集。在其中虚拟机管理组件506实现分页虚拟存储器方案的各种实施例中,每个私有虚拟存储器空间可以包括虚拟存储器的一个或多个页的相应集合。在一些实施例中,对于每个私有虚拟存储器空间,存储器映射信息516可以标识相应的物理存储器空间。在各种实施例中,每个此类物理存储器空间可以包括物理存储器资源的集合,其对应于映射到该物理存储器空间的虚拟存储器空间中包括的虚拟存储器资源的集合。实施例不被限制在此上下文中。
在一些实施例中,虚拟机管理组件506可定义私有虚拟存储器空间518并将其指配给对应于虚拟机进程508-1的虚拟机。在各种实施例中,私有虚拟存储器空间518可能仅对虚拟机进程508-1是可访问的。在一些实施例中,专用虚拟存储器空间518中包括的虚拟存储器资源可以映射到物理存储器空间520中包括的物理存储器资源。在各种实施例中,存储器映射信息516可以包括指示私有虚拟存储器空间518对应于物理存储器空间520的信息。实施例不被限制在此上下文中。
在一些实施例中,虚拟机管理组件506可以定义多个公共虚拟存储器空间,并且可以将所述多个公共虚拟存储器空间中的每一个指配给多个虚拟机中的相应一个。在各种实施例中,每个此类公共虚拟存储器空间可以包括用于由虚拟机使用的虚拟存储器空间,它被指配给虚拟机作为“发件箱”,在所述“发件箱”中存储要提供给一个或多个其它虚拟机的数据。在一些实施例中,每个此类公共虚拟存储器空间可以是由它被指配给的虚拟机可写的,并且可以是由所述多个虚拟机中的每个其它虚拟机可读的。在各种实施例中,每个此类公共虚拟存储器空间可以包括虚拟机管理组件506可以与物理存储器资源514关联的虚拟存储器资源512的相应子集。在其中虚拟机管理组件506实现分页虚拟存储器方案的一些实施例中,每个公共虚拟存储器空间可以包括虚拟存储器的一个或多个页的相应集合。在各种实施例中,对于每个公共虚拟存储器空间,存储器映射信息516可以标识相应的物理存储器空间。在一些实施例中,每个此类物理存储器空间可以包括物理存储器资源的集合,所述物理存储器资源对应于在映射到该物理存储器空间的虚拟存储器空间中包括的虚拟存储器资源的集合。实施例不被限制在此上下文中。
在各种实施例中,虚拟机管理组件506可以定义公共虚拟存储器空间526并将其指配给对应于虚拟机进程508-1的虚拟机。在一些实施例中,公共虚拟存储器空间526可以包括用于由对应于虚拟机进程508-1的虚拟机用作发件箱的虚拟存储器空间,在所述发件箱中存储要提供给一个或多个其它虚拟机的数据。在各种实施例中,公共虚拟存储器空间526可以是由虚拟机进程508-1可写的,并且可以是由虚拟机进程508-2可读的。在一些实施例中,公共虚拟存储器空间526中包括的虚拟存储器资源可以映射到物理存储器空间528中包括的物理存储器资源。在各种实施例中,存储器映射信息516可以包括指示公共虚拟存储器空间526对应于物理存储器空间528的信息。实施例不被限制在此上下文中。
在一些实施例中,虚拟机管理组件506可以生成和/或维持存储器分配信息522。在一些实施例中,存储器分配信息522通常可以包括虚拟机管理组件506可以用于跟踪其可以定义的各种私有和公共虚拟存储器空间和/或用于跟踪它可以指配此类虚拟存储器空间到的各种虚拟机的信息。在各种实施例中,存储器分配信息522可以包括指示私有虚拟存储器空间518和公共虚拟存储器空间526中包括的虚拟存储器资源512的相应具体集合的信息。在一些实施例中,存储器分配信息522可以包括指示私有虚拟存储器空间518和公共虚拟存储器空间526已被指配给对应于虚拟机进程508-1的虚拟机的信息。实施例不被限制在此上下文中。
在各种实施例中,虚拟机进程508-1可以标识要由对应于虚拟机进程508-1的虚拟机来提供给对应于虚拟机进程508-2的虚拟机的数据524。在一些实施例中,虚拟机进程508-1可以从物理存储器空间520检索数据524。在各种实施例中,虚拟机进程508-1可以通过写到公共虚拟存储器空间526来将数据524提供给对应于虚拟机进程508-2的虚拟机。
在一些实施例中,虚拟机进程508-1和508-2可对应于大量虚拟机的池之中的两个虚拟机。在此类实施例中,公共虚拟存储器空间526可以是由虚拟机进程508-2和由对应于池中的其它虚拟机的虚拟机进程可读的。在各种实施例中,为了保留数据524的安全性,虚拟机进程508-1可以在写到公共虚拟存储器空间526之前加密数据524。在一些实施例中,虚拟机进程508-1可以使用加密密钥530加密数据524以便获得加密的数据532,并且可以将加密的数据532写到公共虚拟存储器空间526。
在各种实施例中,加密密钥530可以包括对称加密密钥。在一些此类实施例中,加密密钥530可以包括高级加密标准(AES)对称加密密钥。在各种实施例中,加密密钥530可以包括专用加密密钥,用于在由对应于虚拟机进程508-1的虚拟机提供给对应于虚拟机进程508-2的虚拟机的数据的加密和解密中使用。在一些实施例中,加密密钥530可以包括非对称加密密钥。在各种实施例中,加密密钥530可以包括私有密钥/公共密钥对中的公共密钥。在一些此类实施例中,加密密钥530可以包括专用密钥,用于在提供给对应于虚拟机进程508-2的虚拟机的数据的加密中使用。在各种实施例中,加密密钥530可以包括由对应于虚拟机进程508-2的虚拟机选择的公共密钥。在一些此类实施例中,虚拟机管理组件506可以代表对应于虚拟机进程508-2的虚拟机发布加密密钥530。实施例不被限制在此上下文中。
在各种实施例中,虚拟机进程508-2可以从公共虚拟存储器空间526检索加密的数据532,并且使用加密密钥536解密加密的数据532。在一些实施例中,虚拟机管理组件506可以生成共享数据通知534以通知对应于虚拟机进程508-2的虚拟机:公共虚拟存储器空间526包含要提供给该虚拟机的加密的数据532。在各种此类实施例中,响应于共享数据通知534,虚拟机进程508-2可以检索和解密加密的数据532。在一些实施例中,共享数据通知534可以标识包括加密的数据532的一个或多个虚拟存储器页。在各种实施例中,共享数据通知534可以将对应于虚拟机进程508-1的虚拟机标识为加密的数据532的源。在一些实施例中,共享数据通知534可以将对应于虚拟机进程508-2的虚拟机标识为加密的数据532的预期接收方。实施例不被限制在此上下文中。
在各种实施例中,加密密钥536可以包括对称加密密钥。在一些此类实施例中,加密密钥536可以包括AES对称加密密钥。在各种实施例中,加密密钥536可以包括专用加密密钥,用于在由对应于虚拟机进程508-1的虚拟机提供给对应于虚拟机进程508-2的虚拟机的数据的加密和解密中使用。在一些实施例中,加密密钥536可以包括与加密密钥530相同的对称加密密钥。在各种实施例中,加密密钥536可以包括非对称加密密钥。在一些实施例中,加密密钥536可以包括私有密钥/公共密钥对的私有密钥。在各种此类实施例中,加密密钥536可以包括私有密钥/公共密钥对的私有密钥,相对于其加密密钥530包括公共密钥。在一些实施例中,加密密钥536可以包括专用密钥,用于在被提供给对应于虚拟机进程508-2的虚拟机的加密数据的解密中使用。实施例不被限制在此上下文中。
值得注意的是,在其中加密密钥530和536包括相同的对称加密密钥的一些实施例中,可以结合将该对称加密密钥提供给虚拟机进程508-2使用非对称加密密钥。例如,在各种实施例中,虚拟机进程508-1可以随机选择对称加密密钥作为加密密钥530,并且可以使用私有密钥/公共密钥对的公共密钥对加密密钥530进行加密以获得加密的对称加密密钥。在此类实施例中,虚拟机进程508-2可以使用私有密钥/公共密钥对的公共密钥来对加密的对称加密密钥进行解密,并且可以将对称加密密钥标识为加密密钥536。实施例不限于此示例。
上面的实施例的操作可参考以下附图和所附示例进一步描述。一些附图可以包括逻辑流。尽管本文呈现的此类附图可以包括具体逻辑流,可以意识到,逻辑流仅仅提供可以如何实现如本文描述的通用功能性的示例。此外,给定的逻辑流不一定必须按所呈现的顺序执行,除非以其它方式指示。另外,给定的逻辑流可以由硬件元件,由处理器执行的软件元件或其任何组合来实现。实施例不被限制在此上下文中。
图6示出了根据各种实施例的可以表示用于虚拟机之间的数据传输的所公开的可缩放技术中的一个或多个技术的实现的逻辑流600的示例。例如,逻辑流600可以表示可以由图5的设备500中的电路502在一些实施例中执行的操作。如图6中所示出的,在602可以定义多个公共虚拟存储器空间。例如,图5的虚拟机管理组件506可以定义多个公共虚拟存储器空间,其可以包括公共虚拟存储器空间526。在604,所述多个公共虚拟存储器空间中的每一个可以被指配给包括第一虚拟机和第二虚拟机的多个虚拟机中的相应一个。例如,图5的虚拟机管理组件506可以将多个公共虚拟存储器空间中的每一个指配给包括对应于虚拟机进程508-1的虚拟机和对应于虚拟机进程508-2的虚拟机的多个虚拟机中的相应一个。
在606,可以执行对应于第一虚拟机的第一虚拟机进程,以及可以执行对应于第二虚拟机的第二虚拟机进程。例如,图5的虚拟机管理组件506可以执行虚拟机进程508-2,其可以对应于第一虚拟机,并且可以执行虚拟机进程508-2,其可以对应于第二虚拟机。在608,可以生成共享数据通知以通知第二虚拟机:在指配给第一虚拟机的公共虚拟存储器空间中存在加密数据。例如,图5的虚拟机管理组件506可以生成共享数据通知534,以便通知对应于虚拟机进程508-2的虚拟机:在指配给对应于虚拟机进程508-1的虚拟机的公共虚拟存储器空间526中存在加密的数据532。实施例不限于这些示例。
图7示出了存储介质700的实施例。存储介质700可以包括任何非暂态计算机可读存储介质或机器可读存储介质,诸如光、磁或半导体存储介质。在各种实施例中,存储介质700可以包括制品。在一些实施例中,存储介质700可以存储计算机可执行指令,诸如用于实现图6的逻辑流600的计算机可执行指令。计算机可读存储介质或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写或可重写存储器等等。计算机可执行指令的示例可以包括任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等等。实施例不被限制在此上下文中。
图8示出了适合用于实现如先前所描述的各种实施例的示范计算架构800的实施例。在各种实施例中,计算架构800可以包括或者实现为电子装置的一部分。在一些实施例中,计算架构800可以表示例如图5的设备500。实施例不被限制在此上下文中。
如在本申请中所使用的,术语“系统”和“组件”和“模块”预期指的是计算机相关的实体(或硬件、硬件和软件的组合、软件或执行中软件),其示例由示范计算架构800提供。例如,组件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、(光和/或磁存储介质的)多个存储驱动器、对象、可执行、执行线程、程序和/或计算机。通过说明,在服务器上运行的应用和该服务器可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一个计算机上和/或分布在两个或多个计算机之间。此外,组件可以通过各种类型的通信介质彼此通信地耦合以协调操作。协调可以涉及信息的单向或双向交换。例如,组件可以采用在通信介质上传递的信号形式来传递信息。所述信息可以被实现为分配给各种信号线的信号。在此类分配中,每个消息是信号。然而,进一步实施例可以备选地采用数据消息。此类数据消息可以跨各种连接被发送。示范连接包括并行接口、串行接口和总线接口。
计算架构800包括各种通用计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片集、控制器、外设、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件,功率供应等等。然而,所述实施例不限于通过计算架构800的实现。
如图8中所示出的,计算架构800包括处理单元804、系统存储器806和系统总线808。处理单元804可以是各种商业上可用的处理器中的任何种,包括但不限于AMD®Athlon®、Duron®和Opteron®处理器;ARM®应用、嵌入式和安全处理器;IBM®和Motorola®DragonBall®和PowerPC®处理器;IBM和Sony®Cell处理器;Intel®Celeron®、Core(2)Duo®、Itanium®、Pentium®、Xeon®和XScale®处理器;以及类似的处理器。双微处理器,多核处理器和其它多处理器架构也可以被采用作为处理单元804。
系统总线808为系统组件提供接口,包括但不限于系统存储器806到处理单元804。系统总线808可以是若干类型的总线结构中的任何种,其可以进一步互连到使用各种商业上可用的总线架构中的任何种的存储器总线(具有或不具有存储器控制器)、外设总线和本地总线。接口适配器可以经由插槽架构连接到系统总线808。示例插槽架构可包括但不限于加速图形端口(AGP)、卡总线、(扩展)工业标准架构((E)ISA)、微通道架构(MCA)、NuBus、外设组件互连(扩展)(PCI(X))、高速PCI、个人计算机存储器卡国际协会(PCMCIA)等等。
系统存储器806可以包括以一个或多个较高速度存储器单元形式的各种类型的计算机可读存储介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM))、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、聚合物存储器(诸如铁电聚合物存储器)、奥氏存储器,相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、诸如独立盘冗余阵列(RAID)驱动器的装置阵列、固态存储器装置(例如,USB存储器、固态驱动器(SSD))以及适合用于存储信息的任何其它类型的存储介质。在图8中所示出的说明的实施例中,系统存储器806可以包括非易失性存储器810和/或易失性存储器812。基本输入/输出系统(BIOS)可以被存储在非易失性存储器810中。
计算机802可以包括以一个或多个较低速度存储器单元形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)814、用于读自或写到可移动磁盘818的磁性软盘驱动器(FDD)816,以及用于读自和写到可移动光盘822(例如,CD-ROM或DVD)的光盘驱动器820。HDD 814、FDD 816和光盘驱动器820可分别通过HDD接口824、FDD接口826和光驱动器接口828连接到系统总线808。用于外部驱动器实现的HDD接口824可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一个或两者。
驱动器和关联的计算机可读介质提供数据、数据结构、计算机可执行指令等等的易失性和/或非易失性数据存储。例如,多个程序模块可以被存储在驱动器和存储器单元810、812中,包括操作系统830、一个或多个应用程序832,其它程序模块834和程序数据836。在一个实施例中,一个或多个应用程序832、其它程序模块834和程序数据836可以包括例如图5的设备500的各种应用和/或组件。
用户可以通过一个或多个有线/无线输入装置(例如,键盘838和诸如鼠标840的指向装置)将命令和信息输入到计算机802中。其它输入装置可以包括麦克风、红外(IR)远程控制、射频(RF)远程控制、游戏板、记录笔、读卡器、软件狗、指纹阅读器、手套、图形平板、游戏杆、键盘、视网膜阅读器、触摸屏(例如电容式,电阻式等)、跟踪球、跟踪板、传感器、指示笔等等。这些和其它输入装置通常通过输入装置接口842(其被耦合到系统总线808)被连接到处理单元804,但是可以通过其它接口(例如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等等)被连接。
监视器844或其它类型的显示装置也经由诸如视频适配器846的接口被连接到系统总线808。监视器844可以在计算机802内部或外部。除了监视器844之外,计算机典型地还包括其它外设输出装置,例如扬声器,打印机等等。
计算机802可以使用经由有线和/或无线通信到一个或多个远程计算机(诸如远程计算机848)的逻辑连接在连网环境中操作。远程计算机848可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐装备、对等装置或其它公共网络节点,并且典型地包括相对于计算机802描述的许多或全部元件,尽管为了简洁目的,仅示出了存储器/存储装置850。所描绘的逻辑连接包括到局域网(LAN)852和/或更大网络(例如广域网(WAN)854)的有线/无线连接性。此类LAN和WAN连网环境在办公室和公司中是平常的,并且促进企业范围的计算机网络,例如内联网,其的全部可以连接到全球通信网络,例如互联网。
当在LAN连网环境中使用时,计算机802通过有线和/或无线通信网络接口或适配器856被连接到LAN 852。适配器856可以促进到LAN 852的有线和/或无线通信,LAN 852也可以包括设置在其上的用于与适配器856的无线功能性进行通信的无线接入点。
当在WAN连网环境中使用时,计算机802可以包括调制解调器858,或者被连接到WAN 854上的通信服务器,或者具有用于在WAN 854上(例如通过因特网)建立通信的其它部件。可以是内部或外部以及有线和/或无线装置的调制解调器858经由输入装置接口842连接到系统总线808。在连网环境中,相对于计算机802或其部分描绘的程序模块,可以被存储在远程存储器/存储装置850中。将意识到,所示出的网络连接是示范性的,并且可以使用在计算机之间建立通信链路的其它部件。
计算机802可操作以使用IEEE 802族的标准与有线和无线装置或实体进行通信,诸如可操作地设置在无线通信(例如,IEEE 802.16空中调制技术)中的无线装置。这至少包括Wi-Fi(或无线保真)、WiMax和Bluetooth™无线技术等等。因此,所述通信可以是与常规网络一样的预定义结构,或者仅仅是至少两个装置之间的特别通信。Wi-Fi网络使用称为IEEE 802.11x(a,b,g,n等)的无线电技术来提供安全、可靠、快速的无线连接性。Wi-Fi网络可被用于将计算机彼此连接、连接到互联网,以及连接到有线网络(其使用IEEE 802.3相关的介质和功能)。在一些实施例中,在此类有线网络上的通信可以经由诸如InfiniBand接口或Intel®全向路径构造接口的构造接口来执行。实施例不限于这些示例。
图9示出了适用于实现如先前所描述的各种实施例的示范通信架构900的框图。通信架构900包括各种常见通信元件,诸如传送器、接收器、收发器、无线电、网络接口、基带处理器、天线、放大器、过滤器、功率供应等等。然而,实施例不限于通过通信框架900的实现。
如图9中所示的,通信框架900包括一个或多个客户端902和服务器904。客户端902和服务器904可操作地连接到一个或多个相应的客户端数据存储908和服务器数据存储910,其可以被采用于存储对相应客户端902和服务器904本地的信息,诸如cookie和/或关联的上下文信息。客户端902和/或服务器904中的任何一个可以实现图5的设备500、图6的逻辑流600、图7的存储介质700以及图8的计算架构800中的一个或多个。在各种实施例中,图5的设备500可以在通信框架906中的一个或多个交换装置和/或路由选择装置中实现。
客户端902和服务器904可以使用通信框架906在彼此之间传递信息。通信框架906可以实现任何公知的通信技术和协议。通信框架906可以被实现为分组交换网络(例如,诸如因特网的公共网络,诸如企业内联网的私有网络等等),电路交换网络(例如公共交换电话网络)或者分组交换网络和电路交换网络的组合(通过适合的网关和转换器)。
通信框架906可以实现布置成接受、传递和连接到通信网络的各种网络接口。网络接口可以被认为是输入输出接口的专门形式。网络接口可以采用连接协议,包括但不限于直接连接、以太网(例如粗、细、双绞线10/100/1000 Base T等等)、令牌环、无线网络接口、蜂窝网络接口、IEEE802.11ax网络接口、IEEE 802.16网络接口、IEEE 802.20网络接口等等。此外,可以使用多个网络接口来与各种通信网络类型进行衔接。例如,可以采用多个网络接口来允许通过广播、多播和单播网络的通信。如果处理要求规定更大量的速度和容量,则可以类似地采用分布式网络控制器架构来集中(pool),负载平衡和以其它方式增加由客户端902和服务器904要求的通信带宽。通信网络可以是有线和/或无线网络的任何一个或组合,所述有线和/或无线网络包括但不限于直接互连、安全定制连接、私有网络(例如,企业内联网)、公共网络(例如因特网)、个域网(PAN)、局域网(LAN)、城域网(MAN)、作为互联网上的节点的操作任务(OMNI)、广域网(WAN)、无线网络、蜂窝网络和其它通信网络。
各种实施例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑装置(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体装置、芯片、微芯片、芯片集等等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现实施例可以按照任何数量的因素而变化,例如期望的计算速率、功率等级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束。
如本文中所使用的,术语“电路”可以指的是、或以下硬件组件一部分、或包括专用集成电路(ASIC)、电子电路、处理器(共享的,专用的或群组)和/或存储器(共享的,专用的或群组)(执行一个或多个软件或固件程序)、组合逻辑电路和/或提供所描述的功能性的其它适合的硬件组件。在一些实施例中,电路可以在一个或多个软件或固件模块中实现,或者与电路关联的功能可以由一个或多个软件或固件模块实现。在一些实施例中,电路可以包括至少部分地在硬件中可操作的逻辑。
至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的表示性指令来实现,该机器可读介质表示处理器内的各种逻辑,所述逻辑在由机器读时使机器制造逻辑以执行本文描述的技术。被称为“IP核”的此类表示可以被存储在有形的机器可读介质上并且供应给各种客户或制造设施以加载到实际做出逻辑或处理器的制造机器中。一些实施例可以例如使用机器可读介质或物品来实现,该机器可读介质或物品可以存储指令或指令的集合,如果由机器执行所述指令或指令的集合,可以使机器执行按照实施例的方法和/或操作。此类机器可以包括例如任何适合的处理平台、计算平台、计算装置、处理装置、计算系统、处理系统、计算机、处理器等等,并且可以使用硬件和/或软件的任何适合组合来实现。机器可读介质或物品可以包括例如任何适合类型的存储器单元、存储器装置、存储器物品、存储器介质、存储装置、存储物品、存储介质和/或存储单元,例如存储器、可移除的或不可移除的介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、紧致盘只读存储器(CD-ROM)、可记录紧致盘(CD-R)、可重写紧致盘(CD-RW)、光盘、磁介质、磁光介质、可移除存储卡或盘、各种类型的数字通用盘(DVD)、磁带、盒式磁带等等。指令可以包括使用任何适合的高级、低级、面向对象、可视、编译和/或解释的编程语言实现的任何适合类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等等。
以下示例有关于进一步实施例:
示例1是一种设备,包括:电路;虚拟机管理组件,用于由所述电路执行以:定义多个公共虚拟存储器空间,以及将所述多个公共虚拟存储器空间中的每一个指配给包括第一虚拟机和第二虚拟机的多个虚拟机中的相应一个;以及虚拟机执行组件,用于由所述电路执行以:执行对应于所述第一虚拟机的第一虚拟机进程和对应于所述第二虚拟机的第二虚拟机进程,所述第一虚拟机进程要标识要由所述第一虚拟机提供给所述第二虚拟机的数据,并且通过写到指配给所述第一虚拟机的公共虚拟存储器空间来将所述数据提供给所述第二虚拟机。
示例2是示例1的设备,所述第一虚拟机进程要从所述第一虚拟机的私有虚拟存储器空间检索所述数据。
示例3是示例1至2的任何一个的设备,所述第一虚拟机进程要加密所述数据并将加密的数据写到指配给所述第一虚拟机的所述公共虚拟存储器空间。
示例4是示例3的设备,所述第一虚拟机进程要使用对称加密密钥来加密所述数据。
示例5是示例4的设备,所述对称加密密钥要包括高级加密标准(AES)加密密钥。
示例6是示例4至5的任何一个的设备,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
示例7是示例1的设备,所述第一虚拟机进程要使用非对称加密密钥加密所述数据。
示例8是示例7的设备,所述非对称密钥要包括私有密钥/公共密钥对的公共密钥。
示例9是示例8的设备,所述公共密钥要包括用于在要提供给所述第二虚拟机的数据的加密中使用的专用密钥。
示例10是示例8至9中任何一个的设备,所述第二虚拟机进程要使用私有密钥/公共密钥对的私有密钥解密所述加密的数据。
示例11是示例10的设备,所述私有密钥要包括用于在提供给所述第二虚拟机的加密的数据的解密中使用的专用密钥。
示例12是示例1至11中任何一个的设备,所述第二虚拟机进程要通过访问指配给所述第一虚拟机的所述公共虚拟存储器空间来获得所述数据。
示例13是示例12的设备,所述第一虚拟机进程要加密所述数据并将所述加密的数据写到指配给第一虚拟机的所述公共虚拟存储器空间,第二虚拟机进程要从指配给所述第一虚拟机的所述公共虚拟存储器空间检索所述加密的数据并解密所述加密的数据。
示例14是示例13的设备,所述第二虚拟机进程要使用对称加密密钥解密所述加密的数据。
示例15是示例14的设备,所述对称加密密钥要包括高级加密标准(AES)加密密钥。
示例16是示例14至15中的任何一个的设备,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
示例17是示例13的设备,所述第二虚拟机进程要使用非对称加密密钥解密所述加密的数据。
示例18是示例17的设备,所述非对称密钥要包括私有密钥/公共密钥对的私有密钥。
示例19是示例18的设备,所述私有密钥要包括用于在提供给第二虚拟机的加密的数据的解密中使用的专用密钥。
示例20是示例18至19中任何一个的设备,所述第一虚拟机进程要使用私有密钥/公共密钥对的公共密钥加密所述数据。
示例21是示例20的设备,所述公共密钥要包括用于在要提供给所述第二虚拟机的数据的加密中使用的专用公共密钥。
示例22是示例20至21中的任何一个的设备,所述虚拟机管理组件用于由电路执行以代表所述第二虚拟机发布所述公共密钥。
示例23是示例13至22中任何一个的设备,所述虚拟机管理组件用于由电路执行以生成共享数据通知,以通知所述第二虚拟机在指配给所述第一虚拟机的所述公共虚拟存储器空间中存在所述加密的数据。
示例24是示例23的设备,所述共享数据通知要标识包括所述加密的数据的一个或多个虚拟存储器页。
示例25是示例23至24中的任何一个的设备,所述共享数据通知要将所述第一虚拟机标识为所述加密的数据的源。
示例26是示例23至25中的任何一个的设备,所述共享数据通知要将所述第二虚拟机标识为所述加密的数据的预期接收方。
示例27是示例23至26中任何一个的设备,所述第二虚拟机进程要响应于所述共享数据通知来检索和解密所述加密的数据。
示例28是包括根据示例1至27中的任何一个的设备以及至少一个网络接口的系统。
示例29是一种方法,包括:定义多个公共虚拟存储器空间;将所述多个公共虚拟存储器空间中的每一个指配给包括第一虚拟机和第二虚拟机的多个虚拟机中的相应一个;以及由处理电路执行对应于所述第一虚拟机的第一虚拟机进程和对应于所述第二虚拟机的第二虚拟机进程,所述第一虚拟机进程要标识要由所述第一虚拟机提供给所述第二虚拟机的数据,并且通过写到指配给所述第一虚拟机的公共虚拟存储器空间来将所述数据提供给所述第二虚拟机。
示例30是示例29的方法,所述第一虚拟机进程要从所述第一虚拟机的私有虚拟存储器空间检索所述数据。
示例31是示例29至30的任何一个的方法,所述第一虚拟机进程要加密所述数据并将加密的数据写到指配给所述第一虚拟机的所述公共虚拟存储器空间。
示例32是示例31的方法,所述第一虚拟机进程要使用对称加密密钥来加密所述数据。
示例33是示例32的方法,所述对称加密密钥要包括高级加密标准(AES)加密密钥。
示例34是示例32至33的任何一个的方法,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
示例35是示例29的方法,所述第一虚拟机进程要使用非对称加密密钥加密所述数据。
示例36是示例35的方法,所述非对称密钥要包括私有密钥/公共密钥对的公共密钥。
示例37是示例36的方法,所述公共密钥要包括用于在要提供给所述第二虚拟机的数据的加密中使用的专用密钥。
示例38是示例36至37中任何一个的方法,所述第二虚拟机进程要使用私有密钥/公共密钥对的私有密钥解密所述加密的数据。
示例39是示例38的方法,所述私有密钥要包括用于在提供给所述第二虚拟机的加密的数据的解密中使用的专用密钥。
示例40是示例29至39中任何一个的方法,所述第二虚拟机进程要通过访问指配给所述第一虚拟机的所述公共虚拟存储器空间来获得所述数据。
示例41是示例40的方法,所述第一虚拟机进程要加密所述数据并将所述加密的数据写到指配给第一虚拟机的所述公共虚拟存储器空间,第二虚拟机进程要从指配给所述第一虚拟机的所述公共虚拟存储器空间检索所述加密的数据并解密所述加密的数据。
示例42是示例41的方法,所述第二虚拟机进程要使用对称加密密钥解密所述加密的数据。
示例43是示例42的方法,所述对称加密密钥要包括高级加密标准(AES)加密密钥。
示例44是示例42至43中的任何一个的方法,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
示例45是示例41的方法,所述第二虚拟机进程要使用非对称加密密钥解密所述加密的数据。
示例46是示例45的方法,所述非对称密钥要包括私有密钥/公共密钥对的私有密钥。
示例47是示例46的方法,所述私有密钥要包括用于在提供给第二虚拟机的加密的数据的解密中使用的专用密钥。
示例48是示例46至47中任何一个的方法,所述第一虚拟机进程要使用私有密钥/公共密钥对的公共密钥加密所述数据。
示例49是示例48的方法,所述公共密钥要包括用于在要提供给所述第二虚拟机的数据的加密中使用的专用公共密钥。
示例50是示例48至49中的任何一个的方法,包括代表所述第二虚拟机发布所述公共密钥。
示例51是示例41至50中任何一个的方法,包括生成共享数据通知,以通知第二虚拟机在指配给所述第一虚拟机的所述公共虚拟存储器空间中存在所述加密的数据。
示例52是示例51的方法,所述共享数据通知要标识包括所述加密的数据的一个或多个虚拟存储器页。
示例53是示例51至52中的任何一个的方法,所述共享数据通知要将所述第一虚拟机标识为所述加密的数据的源。
示例54是示例51至53中的任何一个的方法,所述共享数据通知要将所述第二虚拟机标识为所述加密的数据的预期接收方。
示例55是示例51至54中任何一个的方法,所述第二虚拟机进程要响应于所述共享数据通知来检索和解密所述加密的数据。
示例56是包括指令集合的至少一个计算机可读存储介质,所述指令响应于在计算装置上执行而使计算装置执行根据示例29至55中的任何一个的方法。
示例57是包括用于执行根据示例29至55中的任何一个的方法的部件的设备。
示例58是包括示例57的装置和至少一个网络接口的系统。
示例59是包括指令集合的至少一种非暂时性计算机可读存储介质,所述指令响应于在计算装置上执行而使所述计算装置:定义多个公共虚拟存储器空间;将所述多个公共虚拟存储器空间中的每一个指配给包括第一虚拟机和第二虚拟机的多个虚拟机中的相应一个;以及执行对应于所述第一虚拟机的第一虚拟机进程和对应于所述第二虚拟机的第二虚拟机进程,所述第一虚拟机进程要标识要由所述第一虚拟机提供给所述第二虚拟机的数据,并且通过写到指配给所述第一虚拟机的公共虚拟存储器空间来将所述数据提供给所述第二虚拟机。
示例60是示例59的至少一种计算机可读存储介质,所述第一虚拟机进程要从所述第一虚拟机的私有虚拟存储器空间检索所述数据。
示例61是示例59至60的任何一个的至少一种计算机可读存储介质,所述第一虚拟机进程要加密所述数据并将加密的数据写到指配给所述第一虚拟机的所述公共虚拟存储器空间。
示例62是示例61的至少一种计算机可读存储介质,所述第一虚拟机进程要使用对称加密密钥来加密所述数据。
示例63是示例62的至少一种计算机可读存储介质,所述对称加密密钥要包括高级加密标准(AES)加密密钥。
示例64是示例62至63的任何一个的至少一种计算机可读存储介质,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
示例65是示例59的至少一种计算机可读存储介质,所述第一虚拟机进程要使用非对称加密密钥加密所述数据。
示例66是示例65的至少一种计算机可读存储介质,所述非对称密钥要包括私有密钥/公共密钥对的公共密钥。
示例67是示例66的至少一种计算机可读存储介质,所述公共密钥要包括用于在要提供给所述第二虚拟机的数据的加密中使用的专用密钥。
示例68是示例66至67中任何一个的至少一种计算机可读存储介质,所述第二虚拟机进程要使用私有密钥/公共密钥对的私有密钥解密所述加密的数据。
示例69是示例68的至少一种计算机可读存储介质,所述私有密钥要包括用于在提供给所述第二虚拟机的加密的数据的解密中使用的专用密钥。
示例70是示例59至69中任何一个的至少一种计算机可读存储介质,所述第二虚拟机进程要通过访问指配给所述第一虚拟机的所述公共虚拟存储器空间来获得所述数据。
示例71是示例70的至少一种计算机可读存储介质,所述第一虚拟机进程要加密所述数据并将所述加密的数据写到指配给第一虚拟机的所述公共虚拟存储器空间,第二虚拟机进程要从指配给所述第一虚拟机的所述公共虚拟存储器空间检索所述加密的数据并解密所述加密的数据。
示例72是示例71的至少一种计算机可读存储介质,所述第二虚拟机进程要使用对称加密密钥解密所述加密的数据。
示例73是示例72的至少一种计算机可读存储介质,所述对称加密密钥要包括高级加密标准(AES)加密密钥。
示例74是示例72至73中的任何一个的至少一种计算机可读存储介质,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
示例75是示例71的至少一种计算机可读存储介质,所述第二虚拟机进程要使用非对称加密密钥解密所述加密的数据。
示例76是示例75的至少一种计算机可读存储介质,所述非对称密钥要包括私有密钥/公共密钥对的私有密钥。
示例77是示例76的至少一种计算机可读存储介质,所述私有密钥要包括用于在提供给第二虚拟机的加密的数据的解密中使用的专用密钥。
示例78是示例76至77中任何一个的至少一种计算机可读存储介质,所述第一虚拟机进程要使用私有密钥/公共密钥对的公共密钥加密所述数据。
示例79是示例78的至少一种计算机可读存储介质,所述公共密钥要包括用于在要提供给所述第二虚拟机的数据的加密中使用的专用公共密钥。
示例80是示例78至79中的任何一个的至少一种计算机可读存储介质,包括指令,所述指令响应与在所述计算装置上执行使所述计算装置代表所述第二虚拟机发布所述公共密钥。
示例81是示例71至80中任何一个的至少一种计算机可读存储介质,包括指令,所述指令响应与在所述计算装置上执行使所述计算装置生成共享数据通知,以通知第二虚拟机在指配给所述第一虚拟机的所述公共虚拟存储器空间中存在所述加密的数据。
示例82是示例81的至少一种计算机可读存储介质,所述共享数据通知要标识包括所述加密的数据的一个或多个虚拟存储器页。
示例83是示例81至82中的任何一个的至少一种计算机可读存储介质,所述共享数据通知要将所述第一虚拟机标识为所述加密的数据的源。
示例84是示例81至83中的任何一个的至少一种计算机可读存储介质,所述共享数据通知要将所述第二虚拟机标识为所述加密的数据的预期接收方。
示例85是示例81至84中任何一个的至少一种计算机可读存储介质,所述第二虚拟机进程要响应于所述共享数据通知来检索和解密所述加密的数据。
示例86是一种设备,包括:用于定义多个公共虚拟存储器空间的部件;用于将所述多个公共虚拟存储器空间中的每一个指配给包括第一虚拟机和第二虚拟机的多个虚拟机中的相应一个的部件;以及用于执行对应于所述第一虚拟机的第一虚拟机进程和对应于所述第二虚拟机的第二虚拟机进程的部件,所述第一虚拟机进程要标识要由所述第一虚拟机提供给所述第二虚拟机的数据,并且通过写到指配给所述第一虚拟机的公共虚拟存储器空间来将所述数据提供给所述第二虚拟机。
示例87是示例86的设备,所述第一虚拟机进程要从所述第一虚拟机的私有虚拟存储器空间检索所述数据。
示例88是示例86至87的任何一个的设备,所述第一虚拟机进程要加密所述数据并将加密的数据写到指配给所述第一虚拟机的所述公共虚拟存储器空间。
示例89是示例88的设备,所述第一虚拟机进程要使用对称加密密钥来加密所述数据。
示例90是示例89的设备,所述对称加密密钥要包括高级加密标准(AES)加密密钥。
示例91是示例89至90的任何一个的设备,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
示例92是示例86的设备,所述第一虚拟机进程要使用非对称加密密钥加密所述数据。
示例93是示例92的设备,所述非对称密钥要包括私有密钥/公共密钥对的公共密钥。
示例94是示例93的设备,所述公共密钥要包括用于在要提供给所述第二虚拟机的数据的加密中使用的专用密钥。
示例95是示例93至94中任何一个的设备,所述第二虚拟机进程要使用私有密钥/公共密钥对的私有密钥解密所述加密的数据。
示例96是示例95的设备,所述私有密钥要包括用于在提供给所述第二虚拟机的加密的数据的解密中使用的专用密钥。
示例97是示例86至96中任何一个的设备,所述第二虚拟机进程要通过访问指配给所述第一虚拟机的所述公共虚拟存储器空间来获得所述数据。
示例98是示例97的设备,所述第一虚拟机进程要加密所述数据并将所述加密的数据写到指配给第一虚拟机的所述公共虚拟存储器空间,第二虚拟机进程要从指配给所述第一虚拟机的所述公共虚拟存储器空间检索所述加密的数据并解密所述加密的数据。
示例99是示例98的设备,所述第二虚拟机进程要使用对称加密密钥解密所述加密的数据。
示例100是示例99的设备,所述对称加密密钥要包括高级加密标准(AES)加密密钥。
示例101是示例99至100中的任何一个的设备,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
示例102是示例98的设备,所述第二虚拟机进程要使用非对称加密密钥解密所述加密的数据。
示例103是示例102的设备,所述非对称密钥要包括私有密钥/公共密钥对的私有密钥。
示例104是示例103的设备,所述私有密钥要包括用于在提供给第二虚拟机的加密的数据的解密中使用的专用密钥。
示例105是示例103至104中任何一个的设备,所述第一虚拟机进程要使用私有密钥/公共密钥对的公共密钥加密所述数据。
示例106是示例105的设备,所述公共密钥要包括用于在要提供给所述第二虚拟机的数据的加密中使用的专用公共密钥。
示例107是示例105至106中的任何一个的设备,包括用于代表所述第二虚拟机发布所述公共密钥的部件。
示例108是示例98至107中任何一个的设备,包括用于生成共享数据通知以通知第二虚拟机在指配给所述第一虚拟机的所述公共虚拟存储器空间中存在所述加密的数据的部件。
示例109是示例108的设备,所述共享数据通知要标识包括所述加密的数据的一个或多个虚拟存储器页。
示例110是示例108至109中的任何一个的设备,所述共享数据通知要将所述第一虚拟机标识为所述加密的数据的源。
示例111是示例108至110中的任何一个的设备,所述共享数据通知要将所述第二虚拟机标识为所述加密的数据的预期接收方。
示例112是示例108至110中任何一个的设备,所述第二虚拟机进程要响应于所述共享数据通知来检索和解密所述加密的数据。
示例113是包括根据示例86至112中的任何一个的设备和至少一个网络接口的系统。
本文阐述了许多特定细节以提供对实施例的透彻理解。然而,本领域技术人员将理解,可以在没有这些特定细节的情况下实践所述实施例。在其它实例中,公知的操作、组件和电路未被详细描述以免模糊实施例。可以意识到,本文公开的特定结构和功能细节可以是表示性的,并且不一定限制实施例的范围。
可以使用表达“耦合”和“连接”连同其派生词来描述一些实施例。这些术语不预期作为彼此的同义词。例如,可以使用术语“连接”和/或“耦合”来描述一些实施例,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”也可以意味着两个或更多个元件彼此不直接接触,但仍然彼此协作或交互。
除非以其它方式具体陈述,可以意识到,诸如“处理”、“计算”、“演算”、“确定”等等的术语指的是计算机或计算系统或类似电子计算装置的动作和/或过程,其将在计算系统的寄存器和/或存储器内表示为物理量(例如,电子)的数据操纵和/或转换成类似地表示为计算系统的存储器、寄存器或其它此类信息存储、传送或显示装置内的物理量。实施例不被限制在此上下文中。
应该注意到,本文描述的方法不必以所描述的顺序或者以任何具体的顺序执行。此外,相对于本文所标识的方法描述的各种活动可以以串行或并行方式来执行。
尽管本文已经示出和描述了特定实施例,但应该意识到,被演算来实现相同目的的任何布置可以替代所示的特定实施例。本公开预期覆盖各种实施例的任何和所有适配或变化。要理解,上面描述以说明性的方式进行,并且不是限制性描述。在回顾上面描述时,上面实施例的组合和本文未具体描述的其它实施例将对本领域技术人员显而易见。因此,各种实施例的范围包括其中使用了上面的组成、结构和方法的任何其它应用。
强调的是,提供了本公开的摘要以符合37 C.F.R.§1.72(b),要求摘要将允许读者迅速断定技术公开的性质。它被提交伴有如下理解:它将不会被用于解释或限制权利要求的范围或含义。另外,在前面的具体实施方式中,可以看出,为了简化本公开的目的,各种特征在单个实施例中被分组在一起。本公开的方法要不被解释为反映以下预期:所要求保护的实施例要求比每个权利要求中明确记载的特征更多的特征。相反,如以下权利要求所反映的,发明的主题在于少于单个公开实施例的所有特征中。因此,随附的权利要求由此被结合在具体实施方式中,其中每个权利要求独立作为单独的优选实施例。在所附的权利要求中,术语“包括”和“在其中”分别用作相应术语“包括”和“其中”的普通英语等效物。此外,术语“第一”、“第二”和“第三”等仅被用作标签,并且不预期对其对象施加数字要求。
尽管已经用对结构特征和/或方法论动作特定的语言描述了主题,但是要理解,所附的权利要求中定义的主题不一定限于上面描述的特定特征或动作。相反,上面描述的特定特征和动作被公开作为实现权利要求的示例形式。

Claims (20)

1.一种设备,包括:
电路;
虚拟机管理组件,用于由所述电路执行以:
定义多个公共虚拟存储器空间,其包括第一公共虚拟存储器空间和第二公共虚拟存储器空间;以及
针对所述公共虚拟存储器空间中的每一个,将相应的公共虚拟存储器空间指配给多个虚拟机中的相应一个,所述多个虚拟机包括第一虚拟机和第二虚拟机,所述第一公共虚拟存储器空间要被指配给所述第一虚拟机,所述第二公共虚拟存储器空间要被指配给所述第二虚拟机,每个公共虚拟存储器空间仅由该公共虚拟存储器空间被指配给的虚拟机可写,并且由所述多个虚拟机可读;以及
其中所述第一虚拟机要:
通过写到所述第一公共虚拟存储器空间来识别要提供给所述第二虚拟机的数据,所述第二虚拟机不被允许写到所述第一公共虚拟存储器空间,
使用专用于供加密用于所述第二虚拟机的数据所使用的对称加密密钥来对数据进行加密,以及
将加密数据写到所述第一公共虚拟存储器空间,以及
其中所述第二虚拟机要使用所述对称加密密钥来解密所述第一公共虚拟存储器空间中的加密数据。
2.根据权利要求1所述的设备,所述第二虚拟机进程要从指配给所述第一虚拟机的所述公共虚拟存储器空间检索所述加密的数据并且解密所述加密的数据。
3.根据权利要求1所述的设备,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
4.根据权利要求1所述的设备,所述第一虚拟机进程要使用私有密钥/公共密钥对的公共密钥来加密所述对称加密密钥,所述第二虚拟机进程要使用所述私有密钥/公共密钥对的私有密钥解密被加密的对称加密密钥。
5.根据权利要求4所述的设备,所述公共密钥要包括用于在要提供给所述第二虚拟机的对称加密密钥的加密中使用的专用密钥,所述私有密钥要包括用于在提供给所述第二虚拟机的所述被加密的对称加密密钥的解密中使用的专用密钥。
6.根据权利要求1所述的设备,所述第二虚拟机进程要通过访问指配给所述第一虚拟机的所述公共虚拟存储器空间来获得所述数据。
7.一种系统,包括:
根据权利要求1至6的任一项的设备;
以及至少一个网络接口。
8.一种方法,包括:
定义多个公共虚拟存储器空间,其包括第一公共虚拟存储器空间和第二公共虚拟存储器空间;
针对所述公共虚拟存储器空间中的每一个,将相应的公共虚拟存储器空间指配给多个虚拟机中的相应一个,所述多个虚拟机包括第一虚拟机和第二虚拟机,所述第一公共虚拟存储器空间要被指配给所述第一虚拟机,所述第二公共虚拟存储器空间要被指配给所述第二虚拟机,每个公共虚拟存储器空间仅由该公共虚拟存储器空间被指配给的虚拟机可写,并且由所述多个虚拟机可读;以及
其中所述第一虚拟机要:
通过写到所述第一公共虚拟存储器空间来识别要提供给所述第二虚拟机的数据,所述第二虚拟机不被允许写到所述第一公共虚拟存储器空间,
使用专用于供加密用于所述第二虚拟机的数据所使用的对称加密密钥来对数据进行加密,以及
将加密数据写到所述第一公共虚拟存储器空间,以及
其中所述第二虚拟机要使用所述对称加密密钥来解密所述第一公共虚拟存储器空间中的加密数据。
9.根据权利要求8所述的方法,所述第二虚拟机进程要从指配给所述第一虚拟机的所述公共虚拟存储器空间检索所述加密的数据并且解密所述加密的数据。
10.根据权利要求8所述的方法,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
11.根据权利要求8所述的方法,所述第一虚拟机进程要使用私有密钥/公共密钥对的公共密钥来加密所述对称加密密钥,所述第二虚拟机进程要使用所述私有密钥/公共密钥对的私有密钥来解密被加密的对称加密密钥。
12.根据权利要求11所述的方法,所述公共密钥要包括用于在要提供给所述第二虚拟机的对称加密密钥的加密中使用的专用密钥,所述私有密钥包括用于在提供给所述第二虚拟机的所述被加密的对称加密密钥的解密中使用的专用密钥。
13.根据权利要求8所述的方法,所述第二虚拟机进程要通过访问指配给所述第一虚拟机的所述公共虚拟存储器空间来获得所述数据。
14.一种设备,包括:
用于定义包括第一公共虚拟存储器空间和第二公共虚拟存储器空间的多个公共虚拟存储器空间的部件;
用于针对所述公共虚拟存储器空间中的每一个,将相应的公共虚拟存储器空间指配给多个虚拟机中的相应一个的部件,所述多个虚拟机包括第一虚拟机和第二虚拟机的多个虚拟机,所述第一公共虚拟存储器空间要被指配给所述第一虚拟机,所述第二公共虚拟存储器空间要被指配给所述第二虚拟机,每个公共虚拟存储器空间仅由该公共虚拟存储器空间被指配给的虚拟机可写,并且由所述多个虚拟机可读;以及
其中所述第一虚拟机要:
通过写到所述第一公共虚拟存储器空间来识别要提供给所述第二虚拟机的数据,所述第二虚拟机不被允许写到所述第一公共虚拟存储器空间,
使用专用于供加密用于所述第二虚拟机的数据所使用的对称加密密钥来对数据进行加密,以及
将加密数据写到所述第一公共虚拟存储器空间,以及
其中所述第二虚拟机要使用所述对称加密密钥来解密所述第一公共虚拟存储器空间中的加密数据。
15.根据权利要求14所述的设备,所述第二虚拟机进程要从指配给所述第一虚拟机的所述公共虚拟存储器空间检索所述加密的数据并且解密所述加密的数据。
16.根据权利要求14所述的设备,所述对称加密密钥要包括用于在要由所述第一虚拟机提供给所述第二虚拟机的数据的加密和解密中使用的专用密钥。
17.根据权利要求14所述的设备,所述第一虚拟机进程要使用私有密钥/公共密钥对的公共密钥来加密所述对称加密密钥,所述第二虚拟机进程要使用所述私有密钥/公共密钥对的私有密钥解密被加密的对称加密密钥。
18.根据权利要求17所述的设备,所述公共密钥要包括用于在要提供给所述第二虚拟机的对称加密密钥的加密中使用的专用密钥,所述私有密钥要包括用于在提供给所述第二虚拟机的所述被加密的对称加密密钥的解密中使用的专用密钥。
19.根据权利要求14所述的设备,所述第二虚拟机进程要通过访问指配给所述第一虚拟机的所述公共虚拟存储器空间来获得所述数据。
20.一种机器可读介质,所述机器可读介质上存储有指令,所述指令在被执行时促使计算装置执行根据权利要求8-13中的任一项所述的方法。
CN201680075748.5A 2015-12-24 2016-11-23 用于虚拟机之间的数据传输的可缩放技术 Active CN108370382B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/998361 2015-12-24
US14/998,361 US10628192B2 (en) 2015-12-24 2015-12-24 Scalable techniques for data transfer between virtual machines
PCT/US2016/063692 WO2017112325A1 (en) 2015-12-24 2016-11-23 Scalable techniques for data transfer between virtual machines

Publications (2)

Publication Number Publication Date
CN108370382A CN108370382A (zh) 2018-08-03
CN108370382B true CN108370382B (zh) 2022-03-15

Family

ID=59087321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680075748.5A Active CN108370382B (zh) 2015-12-24 2016-11-23 用于虚拟机之间的数据传输的可缩放技术

Country Status (4)

Country Link
US (2) US10628192B2 (zh)
CN (1) CN108370382B (zh)
DE (1) DE112016006047T5 (zh)
WO (1) WO2017112325A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10666443B2 (en) * 2016-10-18 2020-05-26 Red Hat, Inc. Continued verification and monitoring of application code in containerized execution environment
US10528746B2 (en) * 2016-12-27 2020-01-07 Intel Corporation System, apparatus and method for trusted channel creation using execute-only code
WO2020000391A1 (en) * 2018-06-29 2020-01-02 Intel Corporation Virtual storage services for client computing devices
US11023179B2 (en) 2018-11-18 2021-06-01 Pure Storage, Inc. Cloud-based storage system storage management
WO2020211071A1 (en) * 2019-04-19 2020-10-22 Intel Corporation Process-to-process secure data movement in network functions virtualization infrastructures
US11099911B1 (en) 2019-07-01 2021-08-24 Northrop Grumman Systems Corporation Systems and methods for inter-partition communication
US11874777B2 (en) * 2021-12-16 2024-01-16 International Business Machines Corporation Secure communication of virtual machine encrypted memory
EP4250105A1 (en) * 2022-03-22 2023-09-27 Samsung Electronics Co., Ltd. Communication method between virtual machines using mailboxes, system-on chip performing communication method, and in-vehicle infotainment system including same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139159A (zh) * 2011-11-28 2013-06-05 上海贝尔股份有限公司 云计算架构中的虚拟机之间的安全通信
US8943203B1 (en) * 2009-07-10 2015-01-27 Netapp, Inc. System and method for storage and deployment of virtual machines in a virtual server environment
CN104468803A (zh) * 2014-12-12 2015-03-25 华为技术有限公司 一种虚拟数据中心资源映射方法和设备

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978892A (en) * 1996-05-03 1999-11-02 Digital Equipment Corporation Virtual memory allocation in a virtual address space having an inaccessible gap
US6351536B1 (en) * 1997-10-01 2002-02-26 Minoru Sasaki Encryption network system and method
GB2385951A (en) * 2001-09-21 2003-09-03 Sun Microsystems Inc Data encryption and decryption
WO2003090052A2 (en) * 2002-04-18 2003-10-30 Advanced Micro Devices Inc. A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US8954751B2 (en) * 2004-10-08 2015-02-10 International Business Machines Corporation Secure memory control parameters in table look aside buffer data fields and support memory array
US20080126322A1 (en) * 2006-10-05 2008-05-29 Holt John M Synchronization with partial memory replication
US8271604B2 (en) * 2006-12-19 2012-09-18 International Business Machines Corporation Initializing shared memories for sharing endpoints across a plurality of root complexes
US8316190B2 (en) * 2007-04-06 2012-11-20 Waratek Pty. Ltd. Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping
US9027025B2 (en) * 2007-04-17 2015-05-05 Oracle International Corporation Real-time database exception monitoring tool using instance eviction data
KR100895298B1 (ko) * 2007-04-30 2009-05-07 한국전자통신연구원 멀티미디어 데이터의 효율적인 병렬 처리를 위한 장치,방법, 데이터 처리 엘리먼트
US8359437B2 (en) 2008-05-13 2013-01-22 International Business Machines Corporation Virtual computing memory stacking
US20100161908A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient Memory Allocation Across Multiple Accessing Systems
US20100161879A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient and Secure Main Memory Sharing Across Multiple Processors
JP5245869B2 (ja) * 2009-01-29 2013-07-24 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
JP5338435B2 (ja) * 2009-03-31 2013-11-13 富士通株式会社 情報処理プログラム、情報処理装置および情報処理方法
US8812796B2 (en) * 2009-06-26 2014-08-19 Microsoft Corporation Private memory regions and coherence optimizations
US8627112B2 (en) 2010-03-30 2014-01-07 Novell, Inc. Secure virtual machine memory
CA2807972A1 (en) * 2010-08-11 2012-02-16 Security First Corp. Systems and methods for secure multi-tenant data storage
KR101671494B1 (ko) * 2010-10-08 2016-11-02 삼성전자주식회사 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법
US8458413B2 (en) * 2010-10-27 2013-06-04 International Business Machines Corporation Supporting virtual input/output (I/O) server (VIOS) active memory sharing in a cluster environment
US9152573B2 (en) 2010-11-16 2015-10-06 Vmware, Inc. Sharing memory pages having regular expressions within a virtual machine
US9201677B2 (en) * 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8782658B2 (en) * 2011-05-20 2014-07-15 Lsi Corporation System and apparatus for managing a storage array utilizing a plurality of virtual machines
CN103064796B (zh) * 2011-10-18 2015-09-23 财团法人工业技术研究院 虚拟机内存的共享方法与计算机系统
EP2834768B1 (en) * 2012-04-06 2018-05-09 Security First Corp. Systems and methods for securing and restoring virtual machines
US9454392B2 (en) * 2012-11-27 2016-09-27 Red Hat Israel, Ltd. Routing data packets between virtual machines using shared memory without copying the data packet
US9729517B2 (en) * 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration
JP6040101B2 (ja) * 2013-05-31 2016-12-07 株式会社日立製作所 ストレージ装置の制御方法、ストレージ装置及び情報処理装置
US9124569B2 (en) * 2013-06-14 2015-09-01 Microsoft Technology Licensing, Llc User authentication in a cloud environment
WO2015003312A1 (en) 2013-07-09 2015-01-15 Hua Zhong University Of Science Technology Data communication on a virtual machine
US9311011B2 (en) * 2013-08-07 2016-04-12 Qualcomm Incorporated Dynamic address negotiation for shared memory regions in heterogenous multiprocessor systems
KR20150092890A (ko) 2014-02-06 2015-08-17 한국전자통신연구원 가상화 기반 보안 강화 장치 및 그 방법
US9251090B1 (en) * 2014-06-03 2016-02-02 Amazon Technologies, Inc. Hypervisor assisted virtual memory obfuscation
US9619268B2 (en) * 2014-08-23 2017-04-11 Vmware, Inc. Rapid suspend/resume for virtual machines via resource sharing
US9442752B1 (en) * 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
US9772962B2 (en) * 2015-05-28 2017-09-26 Red Hat Israel, Ltd. Memory sharing for direct memory access by a device assigned to a guest operating system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943203B1 (en) * 2009-07-10 2015-01-27 Netapp, Inc. System and method for storage and deployment of virtual machines in a virtual server environment
CN103139159A (zh) * 2011-11-28 2013-06-05 上海贝尔股份有限公司 云计算架构中的虚拟机之间的安全通信
CN104468803A (zh) * 2014-12-12 2015-03-25 华为技术有限公司 一种虚拟数据中心资源映射方法和设备

Also Published As

Publication number Publication date
CN108370382A (zh) 2018-08-03
DE112016006047T5 (de) 2018-09-06
WO2017112325A1 (en) 2017-06-29
US20200201668A1 (en) 2020-06-25
US20170187694A1 (en) 2017-06-29
US10628192B2 (en) 2020-04-21
US11494220B2 (en) 2022-11-08

Similar Documents

Publication Publication Date Title
CN108370382B (zh) 用于虚拟机之间的数据传输的可缩放技术
US11656853B2 (en) Techniques for distributed operation of secure controllers
US20210264042A1 (en) Techniques to provide client-side security for storage of data in a network environment
US11239997B2 (en) Techniques for cipher system conversion
US9489293B2 (en) Techniques for opportunistic data storage
US20170277903A1 (en) Data Protection Using Virtual Resource Views
WO2019041765A1 (zh) 一种访问桌面云虚拟机的方法、装置及桌面云控制器
US11321136B2 (en) Techniques for collective operations in distributed systems
US10810137B2 (en) Physical address randomization for secure encrypted memory
US10838773B2 (en) Techniques for dynamic resource allocation among cryptographic domains
US20170123943A1 (en) Distributed data storage and processing techniques
US20150195236A1 (en) Techniques for implementing a secure mailbox in resource-constrained embedded systems
EP3353699A1 (en) Techniques for coordinating device boot security
US20230214363A1 (en) Techniques for asynchronous snapshot invalidation
JP2015022763A (ja) オペレ−ティングシステム構成装置及び方法
US20190102321A1 (en) Techniques to provide access protection to shared virtual memory
US20180373896A1 (en) Techniques to provide granular control flow enforcement
US20150370816A1 (en) Load-balancing techniques for auditing file accesses in a storage system
CN106250562B (zh) 数据信息处理系统
CN108959932B (zh) 用于可信执行环境的安全芯片存储器的技术
US11899953B1 (en) Method of efficiently identifying rollback requests
US12086076B2 (en) Computing devices for encryption and decryption of data
US10128984B2 (en) Packet tracking techniques for communication networks

Legal Events

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