CN104067288B - 存储加密方法 - Google Patents

存储加密方法 Download PDF

Info

Publication number
CN104067288B
CN104067288B CN201380006284.9A CN201380006284A CN104067288B CN 104067288 B CN104067288 B CN 104067288B CN 201380006284 A CN201380006284 A CN 201380006284A CN 104067288 B CN104067288 B CN 104067288B
Authority
CN
China
Prior art keywords
encryption key
virtual machine
memory area
encryption
computing device
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.)
Expired - Fee Related
Application number
CN201380006284.9A
Other languages
English (en)
Other versions
CN104067288A (zh
Inventor
M·波塞尔
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN104067288A publication Critical patent/CN104067288A/zh
Application granted granted Critical
Publication of CN104067288B publication Critical patent/CN104067288B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

一种可以在位置(例如,物理设备、网络位置等)之间迁移的与虚拟机或者其它类型的设备关联的存储装置。为了维持存储装置的安全性,系统可以管理存储区域的加密,从而使得用可以通过迁移来维持的第一加密密钥对存储区域加密。在另一方面,可以使用第二加密密钥对存储区域的头部加密,并且可以在头部中存储第一加密密钥。在传送时,可以对头部重新加密以影响安全性的传送。

Description

存储加密方法
相关申请的交叉引用
本申请要求来自名称为“STORAGE ENCRYPTION”并且提交于2013年1月23日的第61/589,591号美国临时申请的优先权并且是该美国临时申请的非临时申请。前述申请的内容通过引用整体并入于此。
技术领域
本发明申请涉及存储加密方法。
背景技术
可以在不同设备和/或主机之间迁移虚拟机。虚拟机还可以与被供应以用于由那些虚拟机使用的存储库关联。为了安全起见,可以使用各种加密算法和协议对存储库加密。
在一些布置中,用户或者服务提供者或者其它实体可能希望从一个设备向另一设备迁移虚拟机。在这样的实例中,例如,如果原有主机知道适当的加密密钥或者解密代码,则原有设备可以仍然具有对存储库的访问。因而,需要一种用于在设备之间迁移虚拟机而维持它们的关联存储库的有效安全控制和管理的系统和方法。
发明内容
鉴于前述背景技术,下文呈现本公开内容的简化发明内容以便提供这里描述的一些方面的基本理解。这一发明内容不是广泛的概述并且未旨在于标识重要或者关键要素或者界定权利要求的范围。以下发明内容仅以简化形式将各种描述的方面呈现作为以下提供的更具体描述的序言。
为了解决以上不足和将在阅读公开内容时实现的附加益处,这里的方面提供一种用于在从一个设备向另一设备传送存储库时维持存储安全性的系统和方法。在一个示例中,可以使用第一密钥K1对存储库的数据存储系统加密,并且可以在存储库的头部中存储K1。为了控制对数据存储系统的访问,可以使用第二密钥K2对存储库密钥K1加密。因而,可以因此通过密钥K1的加密来控制对加密的文件系统的访问而无需对整个文件系统进行替换、解密和重新加密。在将迁移虚拟机时,设备可以初始地生成传送密钥并且用传送密钥对存储密钥K1加密。然后与传送密钥和存储头部分节(section)一起向新设备迁移虚拟机。新设备然后可以生成用于对存储库密钥K1加密的新加密密钥K3(不为原有设备所知)。
附图说明
已经这样用一般措词描述了公开内容的方面,现在将参照附图,这些附图未必按比例绘制,并且其中:
图1A描绘了提供对可以执行应用程序的计算设备的远程访问的网络环境的实施例。
图1B和图1C是描绘了计算设备的实施例的框图。
图2A和图2B是描绘了虚拟化环境的实施例的框图。
图3是描绘了虚拟化环境和虚拟桌面构架(infrastructure)环境的实施例的框图。
图4是图示了根据这里描述的一个或者多个方面的可以用来从一个设备向另一设备迁移虚拟机的示例过程的流程图。
图5图示了示例框图,该示例框图图示了根据这里描述的一个或者多个方面的数据存储库结构。
图6A至图6D图示了根据这里描述的一个或者多个方面的虚拟机迁移过程。
具体实施方式
在各种实施例的以下描述中参照附图,这些附图形成其部分,并且在附图中通过示例示出了其中可以实践这里描述的方面的各种实施例。将理解,可以利用其它实施例并且可以进行结构和功能修改而未脱离本公开内容的范围和精神实质。
如本领域技术人员将在阅读以下公开内容时领会到的那样,这里描述的各种方面可以被体现为方法、数据处理系统或者计算机程序产品。因而,那些方面可以采用全硬件实施例、全软件实施例或者组合软件和硬件方面的实施例的形式。另外,这样的方面可以采用由一个或者多个计算机可读存储介质存储的计算机程序产品的形式,该一个或者多个计算机可读存储介质具有在存储介质中或者上体现的计算机可读程序代码或者指令。可以利用包括硬盘、CD-ROM、光存储设备、磁存储设备和/或其任何组合的任何适当计算机可读存储介质。此外,可以用经过信号传导介质(比如金属接线、光纤和/或无线传输介质(例如,空气和/或空间))行进的电磁波的形式在源与目的地之间传送如这里描述的代表数据或者事件的各种信号。
图1A图示了与一个或者多个服务器106A-106N(这里被统称为“服务器106”)的一个或者多个客户端机器102A-102N(这里被统称为“客户端机器102”)的计算环境101的一个实施例。在客户端机器102与服务器106之间安装有网络。
在一个实施例中,计算环境101可以包括在服务器106与客户端机器102之间安装的装置。这一装置可以管理客户端/服务器连接并且在一些情况下可以对在多个后端服务器之中的客户端连接进行负载平衡。
客户端机器102在一些实施例中可以被称为单个客户端机器102或者单组客户端机器,而服务器106可以被称为单个服务器106或者单组服务器106。在一个实施例中,单个客户端机器102与多于一个服务器106通信,而在另一实施例中,单个服务器106与多于一个客户端机器通信。在又一实施例中,单个客户端机器102与单个服务器106通信。
客户端机器102在一些实施例中可以被以下术语中的任何术语指代:客户端机器102;客户端;客户端计算机;客户端设备;客户端计算设备;本地机器;远程机器;客户端节点;端点;端点节点;或者第二机器。服务器106在一些实施例中可以被以下术语中的任何术语指代:服务器、本地机器;远程机器;服务器群、主机计算设备或者第一机器。
在一个实施例中,客户端机器102可以是虚拟机102C。虚拟机102C可以是任何虚拟机,而在一些实施例中,虚拟机102C可以是由XenSolutions、Citrix Systems、IBM、VMware开发的管理程序或者任何其它管理程序管理的任何虚拟机。在其它实施例中,虚拟机102C可以由任何管理程序管理,而在更多其它实施例中,虚拟机102C可以由在服务器106上执行的管理程序或者在客户端102上执行的管理程序管理。
客户端机器102在一些实施例中可以执行、操作或者以其它方式提供应用,该应用可以是以下各项中的任何一项:软件;程序;可执行指令;虚拟机;管理程序;web浏览器;基于web的客户端;客户端-服务器应用;瘦客户端计算客户端;ActiveX控件;Java小应用;与通过网际协议的语音(VoIP)通信有关的软件(比如软IP电话);用于流传输视频和/或音频的应用;用于有助于实时数据通信的应用;HTTP客户端;FTP客户端;Oscar客户端;Telnet客户端;或者任何其它可执行指令集。更多其它实施例包括客户端设备102,客户端设备102显示由在服务器106或者其它远程定位的机器上远程执行的应用生成的应用输出。在这些实施例中,客户端设备102可以在应用视窗、浏览器或者其它输出视窗中显示应用输出。在一个实施例中,应用是桌面,而在其它实施例中,应用是生成桌面的应用。
服务器106在一些实施例中执行远程呈现客户端或者其它客户端或者程序,该远程呈现客户端或者其它客户端或者程序使用瘦客户端或者远程显示协议以捕获由在服务器106上执行的应用生成的显示输出并且向远程客户端102传输应用显示输出。瘦客户端或者远程显示协议可以是以下协议中的任何协议:由佛罗里达州的劳德代尔堡的CitrixSystems,inc.制造的独立计算架构(ICA)协议;或者由华盛顿州的雷德蒙德的MicrosoftCorporation制造的远程桌面协议(RDP)。
计算环境101可以包括多于一个服务器106A-106N,从而使得服务器106A-106N在逻辑上被一起分组成服务器群106。服务器群106可以包括在地理上分散并且在服务器群106中在逻辑上分组在一起的服务器106或者相互邻近定位并且在服务器群106中在逻辑上分组在一起的服务器106。在服务器群106内的在地理上分散的服务器106A-106N在一些实施例中可以使用WAN、MAN或者LAN来通信,其中不同地理地区可以被表征为:不同大陆;大陆的不同地区;不同国家;不同州、不同城市;不同校园;不同房间;或者前述地理位置的任何组合。在一些实施例中,可以作为单个实体监管服务器群106,而在其它实施例中,服务器群106可以包括多个服务器群106。
在一些实施例中,服务器群106可以包括执行基本上相似类型的操作系统平台(例如,由华盛顿州的雷德蒙德的Microsoft Corporation制造的WINDOWS NT、UNIX LINUX或者SNOW LEOPARD)的服务器106。在其它实施例中,服务器群106可以包括执行第一类型的操作系统平台的第一组服务器106和执行第二类型的操作系统平台的第二组服务器106。服务器群106在其它实施例中可以包括执行不同类型的操作系统平台的服务器106。
服务器106在一些实施例中可以是任何服务器类型。在其它实施例中,服务器106可以是以下服务器类型中的任何服务器类型:文件服务器;应用服务器;web服务器;代理服务器;装置;网络装置;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;SSL VPN服务器;防火墙;web服务器;应用服务器或者作为主控应用服务器;执行活跃目录的服务器106;或者执行应用加速程序的服务器106,该应用加速程序提供防火墙功能、应用功能或者负载平衡功能。在一些实施例中,服务器106可以是包括远程认证拨号接入用户服务的RADIUS服务器。在服务器106包括装置的实施例中,服务器106可以是由以下制造商中的任何制造商制造的装置:Citrix Application Networking Group;Silver Peak Systems,Inc.;Riverbed Technology,Inc.;F5Networks,Inc.;或者Juniper Networks,Inc.。一些实施例包括第一服务器106A,第一服务器106A从客户端机器102接收请求、向第二服务器106B转发请求并且用来自第二服务器106B的响应对由客户端机器102生成的请求做出响应。第一服务器106A可以获取可用于客户端机器102的应用的枚举以及与主控在应用的枚举内标识的应用的应用服务器106关联的地址信息。第一服务器106A然后可以使用web界面呈现对客户端的请求的响应并且与客户端102直接通信以向客户端102提供对标识的应用的访问。
服务器106在一些实施例中可以执行以下应用中的任何应用:使用瘦客户端协议以向客户端传输应用显示数据的瘦客户端应用;远程显示呈现应用;Citrix Systems,Inc.的CITRIX ACCESS SUITE的任何部分,比如METAFRAME或者CITRIX PRESENATION SERVER;由Microsoft Corporation制造的MICROSOFT WINDOWS终端服务;或者由Citrix Systems,Inc.开发的ICA客户端。另一实施例包括服务器106,该服务器106是应用服务器,比如:提供电子邮件服务的电子邮件服务器,比如由Microsoft Corporation制造的MICROSOFTEXCHANGE;web或者因特网服务器;桌面共享服务器;协作服务器;或者任何其它类型的应用服务器。更多其它实施例包括服务器106,该服务器106执行以下类型的托管的服务器应用中的任何类型的托管的服务器应用:由Citrix Online Division,Inc.提供的GOTOMEETING;由加利福尼亚州的圣克拉拉的WebEx,Inc.提供的WEBEX;或者由MicrosoftCorporation提供的Microsoft Office LIVE MEETING。
客户端机器102在一些实施例中可以是寻求访问由服务器106提供的资源的客户端节点。在其它实施例中,服务器106可以向客户端102或者客户端节点提供对托管的资源的访问。服务器106在一些实施例中作为主节点工作,从而使得它与一个或者多个客户端102或者服务器106通信。在一些实施例中,主节点可以标识并且向一个或者多个客户端102或者服务器106提供与主控请求的应用的服务器106关联的地址信息。在更多其它实施例中,主节点可以是服务器群106、客户端102、客户端节点102的群集或者装置。
一个或者多个客户端102和/或一个或者多个服务器106可以通过在计算环境101内的机器与装置之间安装的网络104传输数据。网络104可以包括一个或者多个子网络并且可以安装于在计算环境101内包括的客户端102、服务器106、计算机器和装置的任何组合之间。在一些实施例中,网络104可以是:局域网(LAN);城域网(MAN);广域网(WAN);由位于客户端机器102与服务器106之间的多个子网络104组成的主网络104;具有私用子网络104的主公用网络104;具有公用子网络104的主私用网络104;或者具有私用子网络104的主私用网络104。更多其它实施例包括网络104,该网络104可以是以下网络类型中的任何网络类型:点到点网络;广播网络;电信网络;数据通信网络;计算机网络;ATM(异步传输模式)网络;SONET(同步光网络)网络;SDH(同步数字分级)网络;无线网络;有线网络;或者包括无线链路的网络104,其中无线链路可以是红外线通道或者卫星频带。网络104的网络拓扑可以在不同实施例内不同,可能的网络拓扑包括:总线网络拓扑;星型网络拓扑;环形网络拓扑;基于中继器的网络拓扑;或者分层星型网络拓扑。附加实施例可以包括使用协议以在移动设备之中通信的移动电话网络的网络104,其中协议可以是以下协议中的任何协议:AMPS;TDMA;CDMA;GSM;GPRS UMTS;或者能够在移动设备之中传输数据的任何其它协议。
在图1B中图示了计算设备100的一个实施例,其中在图1A中所图示的客户端机器102和服务器106可以被部署为这里图示和描述的计算设备100的任何实施例或者在该任何实施例上被执行。在计算设备100内包括与以下部件通信的系统总线150:中央处理单元121;主存储器122;存储装置存储器128;输入/输出(I/O)控制器123;显示器设备124A-124N;安装设备116;以及网络接口118。在一个实施例中,存储装置存储器128包括:操作系统、软件例程和客户端代理120。I/O控制器123在一些实施例中还连接到键盘126和指点设备127。其它实施例可以包括连接到多于一个输入/输出设备130A-130N的I/O控制器123。
图1C图示了计算设备100的一个实施例,其中在图1A中所图示的客户端机器102和服务器106可以被部署为这里图示和描述的计算设备100的任何实施例或者在该任何实施例上被执行。在计算设备100内包括与以下部件通信的系统总线150:网桥170和第一I/O设备130A。在另一实施例中,网桥170还与主中央处理单元121通信,其中中央处理单元121还可以与第二I/O设备130B、主存储器122和高速缓存存储器140通信。在中央处理单元121内包括I/O端口、存储器端口103和主处理器。
计算机器100的实施例可以包括以以下部件配置中的任何部件配置为特征的中央处理单元121:对从主存储器单元122取读的指令做出响应并且处理这些指令的逻辑电路;微处理器单元,比如:由Inter Corporation制造的微处理器单元;由MotorolaCorporation制造的微处理器单元;由加利福尼亚州的圣克拉拉的Transmeta Corporation制造的微处理器单元;RS/6000处理器,比如由International Business Machines制造的处理器;处理器,比如由Advanced Micro Devices制造的处理器;或者逻辑电路的任何其它组合。中央处理单元122的更多其它实施例可以包括以下各项的任何组合:微处理器、微控制器、具有单个处理核的中央处理单元、具有两个处理核的中央处理单元或者具有多于一个处理核的中央处理单元。
尽管图1C图示了包括单个中央处理单元121的计算设备100,但是在一些实施例中,计算设备100可以包括一个或者多个处理单元121。在这些实施例中,计算设备100可以存储和执行在被执行时指引一个或者多个处理单元121同时执行指令或者对单条数据同时执行指令的固件或者其它可执行指令。在其它实施例中,计算设备100可以存储和执行在被执行时指引一个或者多个处理单元各自执行指令组的一部分的固件或者其它可执行指令。例如,每个处理单元121可以被指令执行程序的一部分或者在程序内的特定模块。
在一些实施例中,处理单元121可以包括一个或者多个处理核。例如,处理单元121可以具有两个核、四个核、八个核等。在一个实施例中,处理单元121可以包括一个或者多个并行处理核。处理单元121的处理核在一些实施例中可以访问作为全局地址空间的可用存储器,或者在其它实施例中,在计算设备100内的存储器可以被分段并且指派给在处理单元121内的特定核。在一个实施例中,在计算设备100中的一个或者多个处理核或者处理器可以各自访问本地存储器。在又一实施例中,可以在一个或者多个处理器或者处理核之中共享在计算设备100内的存储器,而其它存储器可以被特定处理器或者处理器子集访问。在计算设备100包括多于一个处理单元的实施例中,可以在单个集成电路(IC)中包括多个处理单元。这些多个处理器在一些实施例中可以被可以被称为单元互连总线的内部高速总线链接在一起。
在计算设备100包括一个或者多个处理单元121或者一个包括一个或者多个处理核的处理单元121的实施例中,处理器可以对多条数据同时执行单个指令(SIMD)或者在其它实施例中可以对多条数据(MIMD)同时执行多个指令。在一些实施例中,计算设备100可以包括任何数目的SIMD和MIMD处理器。
计算设备100在一些实施例中可以包括图形处理器或者图形处理单元(未示出)。图形处理单元可以包括软件和硬件的任何组合并且还可以输入图形数据和图形指令、根据输入的数据和指令渲染图形以及输出渲染的图形。在一些实施例中,可以在处理单元121内包括图形处理单元。在其它实施例中,计算设备100可以包括一个或者多个处理单元121,其中至少一个处理单元121专用于处理和渲染图形。
计算机器100的一个实施例包括经由也被称为后侧总线的次总线与高速缓存存储器140通信的中央处理单元121,而计算机器100的另一实施例包括经由系统总线150与高速缓存存储器通信的中央处理单元121。本地系统总线150在一些实施例中也可以被中央处理单元用来与多于一个类型的I/O设备130A-130N通信。在一些实施例中,本地系统总线150可以是以下类型的总线中的任何类型的总线:VESA VL总线;ISA总线;EISA总线;多通道架构(MCA)总线;PCI总线;PCI-X总线;PCI-快速总线;或者NuBus。计算机器100的其它实施例包括I/O设备130A-130N,I/O设备130A-130N是与中央处理单元121通信的视频显示器124。计算机器100的更多其它版本包括经由以下连接中的任何连接而被连接到I/O设备130A-130N的处理器121:超传输、快速I/O或者无限带宽。计算机器100的更多实施例包括使用本地互连总线来与一个I/O设备130A通信并且使用直接连接来与第二I/O设备130B通信的处理器121。
计算设备100在一些实施例中包括主存储器单元122和高速缓存存储器140。高速缓存存储器140可以是任何存储器类型并且在一些实施例中可以是以下存储器类型中的任何存储器类型:SRAM;BSRAM;或者EDRAM。其它实施例包括高速缓存存储器140和主存储器单元122,其可以是以下存储器类型中的任何存储器类型:静态随机存取存储器(SRAM)、突发SRAM或者同步突发SRAM(BSRAM);动态随机存取存储器(DRAM);快速页面模式DRAM(FPMDRAM);增强型DRAM(EDRAM)、扩展式数据输出RAM(EDO RAM);扩展式数据输出DRAM(EDODRAM);突发扩展式数据输出DRAM(BEDO DRAM);增强型DRAM(EDRAM);同步DRAM(SDRAM);JEDEC SRAM;PC100SDRAM;双数据速率SDRAM(DDR SDRAM);增强型SDRAM(ESDRAM);SyncLinkDRAM(SLDRAM);直接Rambus DRAM(DRDRAM);铁电RAM(FRAM);或者任何其它类型的存储器。更多实施例包括可以经由以下各项访问主存储器122的中央处理单元121:系统总线150;存储器端口103;或者允许处理器121访问存储器122的任何其它连接、总线或者端口。
计算设备100的一个实施例提供对于以下安装设备116中的任何安装设备的支持:CD-ROM驱动、CD-R/RW驱动、DVD-ROM驱动、各种格式的带驱动、USB设备、可引导介质、可引导CD、用于GNU/Linux分发的可引导CD(比如)、硬驱动或者适合用于安装应用或者软件的任何其它设备。应用在一些实施例中可以包括客户端代理120或者客户端代理120的任何部分。计算设备100还可以包括存储设备128,存储设备128可以是一个或者多个硬盘驱动或者一个或者多个独立盘冗余阵列;其中存储设备被配置用于存储操作系统、软件、程序应用或者客户端代理120的至少一部分。计算设备100的又一实施例包括被用作存储设备128的安装设备126。
计算设备100还可以包括用于通过多种连接对接到局域网(LAN)、广域网(WAN)或者因特网的网络接口118,这些连接包括但不限于标准电话线、LAN或者WAN链路(例如,802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(例如,ISDN、帧中继、ATM、吉比特以太网、在SONET之上的以太网)、无线连接或者上述连接中的任何或者所有连接的某个组合。也可以使用多种通信协议(例如,TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布式数据接口(FDDI)、RS 232、RS485、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)来建立连接。计算设备100的一个版本包括能够经由任何类型和/或形式的网关或者隧道传输协议(比如安全套接字层(SSL)或者传送层安全(TLS))或者由Citrix Systems,Inc.制造的Citrix网关协议与附加计算设备100’通信的网络接口118。网络接口118的版本可以包括以下版本中的任何版本:内置式网络适配器;网络接口卡;PCMCIA网卡;卡总线网络适配器;无线网络适配器;USB网络适配器;调制解调器;或者适合用于将计算设备100对接到能够通信以及执行这里描述的方法和系统的网络的任何其它设备。
计算设备100的实施例包括以下I/O设备130A-130N中的任何I/O设备:键盘126;指点设备127;鼠标;跟踪板;光笔;跟踪球;麦克风、绘图写字板;视频显示器;扬声器;喷墨打印机;激光打印机;以及颜料升华打印机;或者能够执行这里描述的方法和系统的任何其它输入/输出设备。I/O控制器123在一些实施例中可以连接到多个I/O设备130A-130N以控制一个或者多个I/O设备。I/O设备130A-130N的一些实施例可以被配置用于提供存储或者安装介质116,而其它实施例可以提供用于接收USB存储设备的通用串行总线(USB)接口,比如由Twintech Industry,Inc.制造的设备的USB闪存驱动线。更多其它实施例包括I/O设备130,该I/O设备130可以是在系统总线150与外部通信总线(比如:USB总线;Apple Desktop总线;RS-232串行连接;SCSI总线;FireWire总线;FireWire 800总线;以太网总线;AppleTalk总线;吉比特以太网总线;异步传输模式总线;HIPPI总线;Super HIPPI总线;SerialPlus总线;SCI/LAMP总线;FibreChannel总线;或者串行附接小型计算机系统接口总线)之间的网桥。
在一些实施例中,计算机器100可以连接到多个显示器设备124A-124N,在其它实施例中,计算设备100可以连接到单个显示器设备124,而在更多其它实施例中,计算设备100可以到属于相同显示器类型或者形式的显示器设备124A-124N或者属于不同类型或者形式的显示器设备。显示器设备124A-124N的实施例可以被以下各项支持和启用:一个或者多个I/O设备130A-130N;I/O控制器123;I/O设备130A-130N和I/O控制器123的组合;能够支持显示器设备124A-124N的硬件和软件的任何组合;用于对接、通信、连接或者以其它方式使用显示器设备124A-124N的任何类型和/或形式的视频适配器、视频卡、驱动器和/或库。计算设备100在一些实施例中可以被配置用于使用一个或者多个显示器设备124A-124N,这些配置包括:具有用于对接到多个显示器设备124A-124N的多个连接器;具有多个视频适配器而每个视频适配器连接到显示器设备124A-124N中的一个或者多个显示器设备;具有被配置用于支持多个显示器124A-124N的操作系统;使用在计算设备100内包括的电路和软件以连接到并且使用多个显示器设备124A-124N;以及在主计算设备100和多个次计算设备上执行软件以使主计算设备100能够使用次计算设备的显示器作为用于主计算设备100的显示器设备124A-124N。计算设备100的更多其它实施例可以包括由多个次计算设备提供的并且经由网络连接到主计算设备100的多个显示器设备124A-124N。
在一些实施例中,计算机器100可以执行任何操作系统,而在其它实施例中,计算机器100可以执行以下操作系统中的任何操作系统:MICROSOFT WINDOWS操作系统的版本,比如WINDOWS3.x;WINDOWS 95;WINDOWS 98;WINDOWS 2000;WINDOWS NT 3.51;WINDOWS NT4.0;WINDOWS CE;WINDOWS XP;以及WINDOWS VISTA;Unix和Linux操作系统的不同发布;由Apple Computer制造的MAC OS的任何版本;由International Business Machines制造的OS/2;任何嵌入式操作系统;任何实时操作系统;任何开源操作系统;任何私用操作系统;用于移动计算设备的任何操作系统;或者任何其它操作系统。在又一实施例中,计算机器100可以执行多个操作系统。例如,计算机器100可以执行PARALLELS或者可以执行或者另一虚拟化平台,该另一虚拟化平台管理虚拟机,该虚拟机执行第一操作系统,而计算机器100执行与第一操作系统不同的第二操作系统。
可以在以下计算设备中的任何计算设备中体现计算机器100:计算工作站;台式计算机;膝上型或者笔记本计算机;服务器;手持计算机;移动电话;便携电信设备;媒体播放设备;游戏系统;移动计算设备;上网本;由Apple Computer制造的IPOD系列设备中的设备;由Sony Corporation制造的PLAYSTATION系列设备中的任何设备;由Nintendo Co制造的Nintendo系列设备中的任何设备;由Microsoft Corporation制造的XBOX系列设备中的任何设备;或者能够通信并且具有充分处理器能力和存储器容量以执行这里描述的方法和系统的任何其它类型和/或形式的计算、电信或者媒体设备。在其它实施例中,计算机器100可以是移动设备,比如以下移动设备中的任何移动设备:具有JAVA功能的蜂窝电话或者个人数字助理(PDA),比如都是由Motorola Corp制造的i55sr、i58sr、i85s、i88s、i90c、i95cl或者im1100;由Kyocera制造的6035或者7135;由Samsung Electronics,Co.,Ltd制造的i300或者i330;由Palm制造的TREO 180、270、600、650、680、700p、700w或者750智能电话;具有与设备一致的不同处理器、操作系统和输入设备的任何计算设备;或者能够执行这里描述的方法和系统的任何其它移动计算设备。在更多其它实施例中,计算设备100可以是以下移动计算设备中的任何移动计算设备:由Research In Motion Limited制造的任何一个系列Blackberry或者其它手持设备;由Apple Computer制造的iPhone;Palm Pre;Pocket PC;Pocket PC Phone;或者任何其它手持移动设备。
在图2A中图示了虚拟化环境的一个实施例。在计算设备201上包括硬件层,该硬件层包括一个或者多个物理盘204、一个或者多个物理设备206、一个或者多个物理处理器208和物理存储器216。在一些实施例中,固件212可以存储于物理存储器216中的存储器单元内并且可以由物理处理器208中的一个或者多个物理处理器执行。计算设备201还可以包括可以存储于物理存储器216中的存储器单元中并且由物理处理器208中的一个或者多个物理处理器执行的操作系统214。再进而,管理程序202可以存储于物理存储器216中的存储器单元中并且可以由物理处理器208中的一个或者多个物理处理器执行。在物理处理器208中的一个或者多个物理处理器上执行的可以是一个或者多个虚拟机232A-C(统称232)。每个虚拟机232可以具有虚拟盘226A-C和虚拟处理器228A-C。
如在图2A中所示,虚拟盘不限于位于与在其上实例化虚拟机的设备相同的物理设备中的存储设备。作为替代,可以在网络存储站点(比如云)或者网络系统250上提供或者供应虚拟盘(比如虚拟盘226A和226B),而可以在设备201内物理地包括虚拟盘226C。云系统可以包括各种服务器、交换机、网络和存储装置与虚拟化层(例如,管理程序、特殊网络虚拟化、存储虚拟化等)一起的布置。这些单元然后可以被配置用于向用户提供包括云存储、安全系统、开发环境、用户界面等的各种服务。云可以包括私用和/或公用部件。例如,云可以被配置为私有云以被一个或者多个特定实体和/或经由私用网络使用,而公用云可以通过开放网络被一般公众使用。尽管虚拟盘226A和226B被图示为相同云250的部分,但是也可以在不同云、服务器或者系统中供应虚拟盘226A和226B。
在一些实施例中,第一虚拟机232A可以在虚拟处理器228A上执行包括工具栈224的控制程序220。在其它实施例中,一个或者多个虚拟机232B-C可以在虚拟处理器228B-C上执行访客操作系统230A-B。
进一步参照图2A,并且更具体而言,在一个实施例中,描述的虚拟化环境包括类型2管理程序202或者在执行于计算设备201上的操作系统214内执行的管理程序。类型2管理程序在一些实施例中在操作系统214的环境内执行,并且虚拟机在管理程序以上的级别执行。在许多实施例中,类型2管理程序在用户的操作系统的情境内执行,从而使得类型2管理程序与用户的操作系统交互。
在一些实施例中,虚拟化环境包括计算设备201。计算设备201可以是任何计算设备,并且在一些实施例中,计算设备201可以是这里描述的任何计算机、设备或者计算机器。尽管图2A图示了单个计算设备201,但是在一些实施例中,计算设备201存储和执行的模块、程序、虚拟机和命令可以由多于一个计算设备201执行。在更多其它实施例中,计算设备201可以是服务器群。
在一个实施例中,计算设备201可以包括硬件层210,硬件层210包括与计算机器201通信的一件或者多件硬件。在一些实施例中,硬件层210可以包括在计算设备201中包括的任何硬件。在其它实施例中,硬件层210可以包括一个或者多个物理盘204、一个或者多个物理设备206、一个或者多个物理处理器208和存储器216。
硬件层210在一些实施例中可以包括一个或者多个物理盘204。物理盘204可以是任何硬盘,而在一些实施例中,物理盘204可以是这里描述的任何硬盘。在一些实施例中,硬件层210可以包括一个物理盘204。在其它实施例中,硬件层210可以包括多于一个物理盘204。计算设备201在一些实施例中可以与在硬件层210中作为物理盘204而被包括的外部硬盘通信。
在其它实施例中,硬件层210可以包括处理器208。处理器208在一些实施例中可以是任何处理器,而在其它实施例中,处理器208可以是这里描述的任何处理器。处理器208可以包括一个或者多个处理核。在其它实施例中,计算设备201可以包括一个或者多个处理器208。在一些实施例中,计算设备201可以包括一个或者多个不同处理器,例如,处理单元、图形处理单元或者物理引擎。
物理设备206在一些实施例中可以是在计算设备201中包括的任何设备。在一些实施例中,物理设备206可以是在计算设备201中包括的设备和与计算设备201通信的外部设备的任何组合。计算设备201在一些实施例中可以包括一个或者多个物理设备206。物理设备206可以是以下物理设备中的任何物理设备:网络接口卡;视频卡、键盘;鼠标;输入设备;监视器;显示器设备;扬声器;光驱动;存储设备;通用串行总线连接;连接到计算设备201的任何设备;与计算设备201通信的任何设备;打印机;扫描仪;或者任何其它设备或者这里描述的设备。
硬件层210还可以包括物理存储器216,物理存储器216可以包括任何类型的存储器。在一些实施例中,物理存储器216可以包括这里描述的任何存储器类型。物理存储器216可以存储数据,并且在一些实施例中可以存储一个或者多个程序或者可执行指令集。图2A图示了一个实施例,其中固件212存储于计算设备201的物理存储器216内。在物理存储器216中存储的程序或者可执行指令可以由计算设备201的一个或者多个处理器208执行。
固件212在一些实施例中可以是控制与计算设备201通信或者在计算设备201内包括的硬件的可执行指令和硬件的任何组合。在一些实施例中,固件212可以控制在硬件层210内的一件或者多件硬件。固件212在许多实施例中可以由在计算设备201内的一个或者多个处理器208执行。在一些实施例中,固件212可以是引导固件,比如基本输入/输出系统(BIOS)。在计算设备201上执行的附加固件212可以与BIOS对接。
在一个实施例中,计算设备201可以包括由一个或者多个物理处理器208执行的操作系统214。在一些实施例中,操作系统214是可以直接访问在硬件层210中的硬件设备的用户操作系统。操作系统214可以是任何操作系统,并且在一些实施例中,操作系统214可以是这里描述的任何操作系统。图2A图示了一个实施例,其中管理程序201在执行于计算设备201上的操作系统214的情境内执行。在这一实施例中,操作系统214可以被称为主机操作系统214,而其它操作系统可以被称为访客操作系统。访客操作系统可以包括在虚拟机232上执行的访客操作系统230A-B和/或控制程序220。
在一些实施例中,计算设备201可以包括管理程序202。管理程序202在一些实施例中可以是由处理器208在计算设备201上执行的用于管理任何数目的虚拟机的程序。管理程序202可以被称为虚拟机监视器或者平台虚拟化软件。在一些实施例中,管理程序202可以是监视在计算机器上执行的虚拟机的可执行指令和硬件的任何组合。尽管图2图示了包括类型2管理程序202的虚拟化环境,但是计算设备201可以执行任何其它类型的管理程序。例如,计算设备201可以执行包括类型1管理程序202的虚拟化环境。在一些实施例中,计算设备201可以执行一个或者多个管理程序202。这些一个或者多个管理程序202可以是相同管理程序类型,或者在其它实施例中可以是不同管理程序类型。
管理程序202在一些实施例中可以用任何如下方式向在虚拟机232上执行的操作系统230或者控制程序220提供虚拟资源,该方式模拟具有对系统资源的直接访问的操作系统230或者控制程序220。系统资源可以包括:物理设备;物理盘;物理处理器;物理存储器216和在计算设备201的硬件层210中包括的任何其它部件。在这些实施例中,管理程序202可以用来模仿虚拟硬件、对物理硬件分区、虚拟化物理硬件或者执行提供对计算环境的访问的虚拟机。在更多其它实施例中,管理程序202控制用于在计算设备201上执行的虚拟机232的处理器调度和存储器分区。管理程序202可以包括由帕洛阿尔托的VMWare,Inc.制造的管理程序;XEN管理程序,这是其开发被开源Xen.org团体监督的开源产品;由Microsoft提供的HyperV、VirtualServer或者虚拟PC管理程序或者其它管理程序。在一些实施例中,计算设备201执行管理程序202,管理程序202创建访客操作系统可以在其上执行的虚拟机平台。在这些实施例中,计算设备201可以被称为主机服务器。这样的计算设备的示例是由佛罗里达州的劳德代尔堡的Citrix Systems,Inc.提供的XEN SERVER。
在一个实施例中,管理程序202可以创建操作系统230在其中执行的虚拟机232A-B(统称232)。例如,在这些实施例之一中,管理程序202加载虚拟机映像以创建虚拟机232。在这些实施例中的另一实施例中,管理程序202在虚拟机232内执行操作系统230。在这些实施例中的又一实施例中,虚拟机232执行操作系统230。
在一个实施例中,管理程序202控制至少一个虚拟机232的执行。在另一实施例中,管理程序202向至少一个虚拟机232呈现由计算设备201提供的至少一个硬件资源的抽象化。抽象化还可以被称为在计算设备201上可用的硬件、存储器处理器和其它系统资源的虚拟化或者虚拟视图。硬件或者硬件资源在一些实施例中可以是在硬件层210内可用的任何硬件资源。在其它实施例中,管理程序202控制虚拟机232访问在计算设备201中可用的物理处理器208的方式。控制对物理处理器208的访问可以包括确定虚拟机232是否应当具有对处理器208的访问和如何向虚拟机232呈现物理处理器能力。
在一些实施例中,计算设备201可以托管或者执行一个或者多个虚拟机232。虚拟机232可以被称为域、访客和/或DOMAIN U。虚拟机232是可执行指令集,该可执行指令集在被处理器208执行时模仿物理计算机的操作,从而使得虚拟机232可以很像物理计算设备一样执行程序和过程。尽管图2图示了其中计算设备202托管三个虚拟机232的一个实施例,但是在其它实施例中,计算设备201可以托管任何数目的虚拟机232。管理程序232在一些实施例中向每个虚拟机232提供可用于该虚拟机232的物理硬件、存储器、处理器和其它系统资源的唯一虚拟视图。在一些实施例中,唯一虚拟视图可以基于以下各项中的任何一项:虚拟机权限;将策略引擎应用于一个或者多个虚拟机标识符;用户访问虚拟机;应用在虚拟机上执行;由虚拟机访问的网络;或者任何其它相似标准;管理程序202在其它实施例中向每个虚拟机232提供可用于虚拟机232的物理硬件、存储器、处理器和其它系统资源的基本上相似虚拟视图。
每个虚拟机232可以包括虚拟盘226A-C(统称226)和虚拟处理器228A-C(统称228)。虚拟盘226在一些实施例中是计算设备201的一个或者多个物理盘204或者计算设备201的一个或者多个物理盘204的一部分的虚拟化的视图。物理盘204的虚拟化的视图可以由管理程序202生成、提供和管理。在一些实施例中,管理程序202向每个虚拟机232提供物理盘204的唯一视图。因此,在这些实施例中,为每个虚拟机232供应的虚拟盘226在与其它虚拟盘226比较时可以是唯一的。
虚拟处理器228可以是计算设备201的一个或者多个物理处理器208的虚拟化的视图。在一些实施例中,物理处理器208的虚拟化的视图可以由管理程序202生成、提供和管理。在一些实施例中,虚拟处理器228具有至少一个物理处理器208的基本上所有相同特性。在其它实施例中,虚拟处理器208提供物理处理器208的修改的视图,从而使得虚拟处理器228的特性中的至少一些特性不同于对应物理处理器208的特性。
控制程序220可以执行用于管理和配置在虚拟机232上并且在一些实施例中在计算设备201上执行的访客操作系统的至少一个应用。在一些实施例中,控制程序220可以被称为控制操作系统、控制域、域0或者dom 0。控制程序220在一些实施例中可以是XEN管理程序的DOMAIN 0或者DOM0。控制程序220可以执行监管应用或者程序,该监管应用或者程序可以进一步显示用户界面,管理员可以使用该用户界面以访问每个虚拟机232的功能和/或管理虚拟机232。在一些实施例中,由监管程序生成的用户界面可以用来终止虚拟机232的执行、向虚拟机232分配资源、向虚拟机232指派权限或者管理与虚拟机232关联的安全证书。控制程序220在一些实施例中可以启动新虚拟机232或者终止执行虚拟机232的执行。在其它实施例中,控制程序220可以直接访问在硬件层210内的硬件和/或资源。在更多其它实施例中,控制程序220可以与在计算设备201上和在虚拟机232的情境以外执行的程序和应用对接。相似地,控制程序220可以与在虚拟机232的情境内执行的程序和应用对接。
在一个实施例中,管理程序202可以在虚拟机232内执行控制程序220。管理程序202可以创建和启动虚拟机232。在其中管理程序202在虚拟机232内执行控制程序220的实施例中,虚拟机232可以被称为控制虚拟机232。在又一实施例中,控制程序220在被授权直接访问在计算设备201上的物理资源的虚拟机232内执行。
在一些实施例中,在第一计算设备201A(未示出)上的控制程序220A(未示出)可以与在第二计算设备201B(未示出)上的控制程序220B(未示出)交换数据。在这些实施例中,第一计算设备201A可以与第二计算设备201B远离定位。控制程序220A-B可以经由在执行于第一计算设备201A上的管理程序202A(未示出)与执行于第二计算设备201B上的管理程序202B(未示出)之间的通信链路交换数据。通过这一通信链路,计算设备201A-B可以交换关于在资源池中可用的处理器和其它物理资源的数据。另外,通过在管理程序202A-B之间的这一连接,管理程序202A-B可以管理跨越一个或者多个计算设备201A-B分布的资源池,例如,在第一计算设备201A和第二计算设备201B上可用的资源。管理程序202A-B还可以虚拟化这些资源并且使它们可用于在计算设备201A-B上执行的虚拟机232。在这一实施例的另一实例中,单个管理程序202可以管理和控制在两个计算设备201A-B上执行的虚拟机232。
在一些实施例中,控制程序220与一个或者多个访客操作系统230A-B(统称230)交互。控制程序220可以通过管理程序202与访客操作系统230通信。通过管理程序202,访客操作系统230可以请求访问在硬件层210中的物理盘204、物理处理器208、存储器216、物理设备206和任何其它部件。在更多其它实施例中,访客操作系统230可以经由被管理程序202建立的通信通道(如比如经由被管理程序202变成可用的多个共享存储器页面)与控制程序220通信。
在一些实施例中,控制程序220包括用于与由计算设备201提供的联网硬件直接通信的网络后端服驱动器。在这些实施例之一中,网络后端驱动器处理来自至少一个访客操作系统230的至少一个虚拟机请求。在其它实施例中,控制程序220包括用于与在计算设备201上的存储单元通信的块后端驱动器。在这些实施例之一中,块后端驱动器基于从访客操作系统230接收的至少一个请求从存储单元读取和写入数据。
在另一实施例中,控制程序220包括工具栈224。在另一实施例中,工具栈224提供用于与管理程序202对接、与其它控制程序220(例如,在第二计算设备201B上)通信或者管理在计算设备201上的虚拟机232的功能。在另一实施例中,工具栈224包括用于向虚拟机群的管理员提供改进的管理功能的定制的应用。在一些实施例中,工具栈224和控制程序220中的至少一项包括提供用于远程配置和控制在计算设备201上运行的虚拟机232的接口的管理API。在其它实施例中,控制程序220通过工具栈224与管理程序202通信。
在一个实施例中,管理程序202在由管理程序202创建的虚拟机232内执行访客操作系统230。在另一实施例中,访客操作系统230向计算设备201的用户提供对在计算环境内的资源的访问。在又一实施例中,资源包括程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境或者变成可用于计算设备201的用户的其它资源。在又一实施例中,可以经由多种访问方法向计算设备201递送资源,这些访问方法包括但不限于直接在计算设备201上常规安装、经由用于应用流传输的方法向计算设备201递送、向计算设备201递送通过在第二计算设备201’上执行资源而生成的并且经由呈现层协议向计算设备201传达的输出数据、向计算设备201递送通过经由在第二计算设备201’上执行的虚拟机执行资源或者从连接到计算设备201的远程存储设备(比如USB设备)或者经由在计算设备201上执行并且生成输出数据的虚拟机执行而生成的输出数据。在一些实施例中,计算设备201向另一计算设备201’传输通过执行资源而生成的输出数据。
在一个实施例中,访客操作系统230与它在其上执行的虚拟机结合形成全虚拟化的虚拟机,该虚拟机不了解它是虚拟机;这样的机器可以被称为“域U HVM(硬件虚拟机)虚拟机”。在另一实施例中,全虚拟化的机器包括如下软件,该软件模仿基本输入/输出系统(BIOS)以便在全虚拟化的机器内执行操作系统。在又一实施例中,全虚拟化的机器可以包括通过与管理层202通信来提供功能的驱动器。在这样的实施例中,驱动器通常了解它在虚拟化的环境内执行。
在另一实施例中,访客操作系统230与它在其上执行的虚拟机结合形成超虚拟化的(paravirtualized)虚拟机,该虚拟机了解它是虚拟机;这样的机器可以被称为“域U PV虚拟机”。在另一实施例中,超虚拟化的机器包括全虚拟化的机器并不包括的附加驱动器。在又一实施例中,超虚拟化的机器包括如以上描述的在控制器程序220中包括的网络后端驱动器和块后端驱动器。
在图2B中图示了虚拟化环境的另一实施例,该虚拟化环境图示了类型1管理程序202。在计算设备201上执行的是可以直接访问在硬件层210内的硬件和资源的管理程序202。由管理程序202管理的虚拟机232可以是不安全虚拟机232B和/或安全虚拟机232C。在图2A中描绘的虚拟化环境图示了主机操作系统214,而图2B中的虚拟化环境实施例并不执行主机操作系统。
进一步参照图2B,并且更具体而言,虚拟化环境包括类型1管理程序202。类型1管理程序202在一些实施例中在“裸金属”上执行,从而使得管理程序202具有对在计算设备201上执行的所有应用和过程、在计算设备201上的所有资源和在计算设备201上或者与计算设备201通信的所有硬件的直接访问。尽管类型2管理程序202通过主机操作系统214访问系统资源,但是类型1管理程序202可以直接访问所有系统资源。类型1管理程序202可以在计算设备201的一个或者多个物理处理器上直接执行并且可以包括在物理存储器216中存储的程序数据。
在运用类型1管理程序202配置的虚拟化环境中,主机操作系统可以被一个或者多个虚拟机232执行。因此,计算设备201的用户可以将一个或者多个虚拟机232指明作为用户的个人机器。这一虚拟机可以通过允许用户以与用户将经由主机操作系统214与计算设备201交互基本上相同的方式与计算设备201交互来模拟主机操作系统。
虚拟机232可以是不安全虚拟机232B和安全虚拟机232C。尽管图2B图示了安全和不安全虚拟机,但是它们有时可以被称为有特权和无特权虚拟机。在一些实施例中,虚拟机的安全性可以基于比较虚拟机与在相同虚拟化环境内执行的其它虚拟机被确定。例如,第一虚拟机具有对资源池的访问而第二虚拟机不具有对相同资源池的访问;第二虚拟机可以被视为不安全虚拟机232B,而第一虚拟机可以被视为安全虚拟机232A。在一些实施例中,虚拟机323的用于访问一个或者多个系统资源的能力可以使用被控制程序220或者管理程序202生成的配置界面被配置。在其它实施例中,向虚拟机232给予的访问级别可以是以下标准集中的任何标准集的审查结果:用户访问虚拟机;一个或者多个应用在虚拟机上执行;虚拟机标识符;基于一个或者多个因素向虚拟机指派的风险水平;或者任何其它相似标准。
在一些实施例中,可以防止不安全虚拟机232B访问安全虚拟机232A可以访问的资源、硬件、存储器位置和程序。例如,安全虚拟机232C可以能够访问一个或者多个公司资源,而不安全虚拟机232B不能访问任何公司资源。
在图3中了图示系统的一个实施例,该系统包括执行虚拟化环境302的计算设备201以及执行虚拟桌面构架(VDI)平台310和性能监视系统316的计算设备203。在计算设备201上执行的虚拟化环境302可以是这里描述的任何虚拟化环境。所示实施例描绘了包括管理程序202、控制虚拟机232A和一个或者多个附加虚拟机232B的虚拟化环境302。控制虚拟机232A可以包括与虚拟盘226A通信的控制程序220,虚拟盘226A与元数据322关联。控制程序220还可以包括盘类型数据库350,盘类型数据库350可以存储与虚拟化环境302的虚拟盘226关联的元数据322。附加虚拟机232B可以执行与虚拟盘226B通信的访客操作系统230A,虚拟盘226B与元数据322关联。计算设备201可以包括与管理程序202对接并且包括存储子系统316的硬件层201。另一个计算设备203可以包括VDI平台310,VDI平台310可以涵盖一个或者多个虚拟机模板323A-N(这里统称为虚拟机模板323)的虚拟机模板池318和包括一个或者多个用户会话304A-N(这里统称为用户会话304)的一组VDI用户会话314。另一个计算设备203也可以执行虚拟机创建器330。
进一步参照图3,并且更具体而言,在一个实施例中,每个计算设备201、203可以是这里描述的任何计算设备100。在一些实施例中,计算设备201、203可以是服务器106或者客户端102。计算设备201、203可以被称为第一计算机、第二计算机、第三计算机等。另外,计算设备201、203可以通过网络(比如这里描述的任何网络104)相互通信。在一个实施例中,一个计算设备201可以是远程计算机201,而另一个计算设备可以是本地计算机203。由于计算设备201、203可以是这里描述的任何计算机器100,因此硬件层210也可以是这里描述的任何硬件层210并且可以包括这里描述的任何计算机硬件。
在计算设备201上执行的虚拟化环境302可以是这里描述的任何虚拟化环境。特别地,虚拟化环境302可以包括任何管理程序配置或者在图2A中所示的管理程序配置或者在图2B中所示的管理程序配置。在一个实施例中,在虚拟化环境302中包括的管理程序202可以是任何管理程序202或者这里描述的任何管理程序202。
已经在图1至图3中描述例如各种示例计算设备、计算环境以及可以在这样的系统中包括的某些软件和功能,将领会的是,可以使用除以上标识的软件和硬件之外的其它软件和硬件。此外,以下段落提供与迁移虚拟机而保持向虚拟机供应的存储库的安全性有关的各种方法和系统的附加示例。
图4是图示了可以在两个设备、虚拟化环境或者域之间迁移虚拟机而保持关联存储库的安全性的示例方法的流程图。在一个示例中,安全性的保持可以包括一旦已经向新设备迁移了关联虚拟机就防止先前设备、主机或者域(例如,传送器虚拟化环境)能够访问加密的存储装置。在步骤400中,虚拟机当前在其上存在的第一设备可以供应用于虚拟机的存储库。例如,供应存储库可以包括对在服务器上的用于特定虚拟机的存储空间进行分区和/或分配在云上的存储空间。在一些示例中,在公用或者私用云的云集成层内的一个或者多个部件可以供应用于虚拟机(比如控制虚拟机,该控制虚拟机指令管理程序供应存储装置并且向虚拟机分配该存储装置)的存储库。云构架平台在一些实例中可以在向特定虚拟机供应存储库之前向虚拟化环境或者域供应存储装置。在步骤405中,第一设备可以生成存储加密密钥K1并且使用存储加密密钥K1对存储库加密。可以基于各种已知加密协议(比如AES、三重数字加密标准(DES)等)中的任何加密协议来生成存储加密密钥K1。然后,可以在步骤410中在存储库的头部分节中存储该存储加密密钥K1。在一些示例中,存储库的头部分节可以在逻辑上与存储库的其余部分分离,并且因此可以未被存储加密密钥K1加密。因此,可以从存储库的数据存储分节分离地对头部进行访问和/或加密。
在步骤415中,第一设备还可以生成后续用来对存储加密密钥K1加密的第二密钥H1VM1。第二密钥H1VM1然后可以存储于如以下更具体描述的密钥存储区域中。通过对存储加密密钥K1加密,可以通过控制对存储加密库K1的访问来保护对存储库的访问。因而,为了访问存储加密密钥K1以对在数据存储库中存储的数据解密,系统或者用户必须已知第二密钥H1VM1(例如,以对存储加密密钥K1解密)。然后可以使用解密的存储加密密钥对存储库解密。使用这样的安全机制,可以修改用于存储库的访问控制而无需用旧存储加密密钥K1对整个存储库解密并且后续用新存储加密密钥对整个存储库重新加密。作为替代,仅可以替换加密密钥H1VM1以影响访问控制修改而无需修改下层存储加密密钥(例如密钥K1)。
图5图示了存储库结构的示例框图。存储库501可以包括存储头部505和数据存储分节507。数据可以存储于数据存储分节507中而参数、标志、元数据等可以存储于头部分节505中。头部分节505还可以包括用来对数据存储分节507加密的存储加密密钥509。如描述的那样,可以使用在密钥存储区域511中指定的一个或者多个密钥对存储加密密钥509加密。可以在头部分节505内包括密钥存储区域511。在一个或者多个其它示例中,可以与数据存储库501分离地存储密钥存储装置511。密钥存储区域511可以包括槽0-3,槽0-3可以被配置用于存储用来对存储加密密钥509加密的加密密钥,由此控制对存储库501的总体访问。例如,修改密钥存储装置511的密钥槽(例如,向它存储密钥和从它去除密钥)可以使用加密密钥被控制。尽管在图5中图示了四个密钥槽,但是密钥存储区域511可以如需要或者必要的那样存储更少或者更多密钥槽。可以使用应用协议接口(API)来有助于对头部505的改变和对存储库501的访问。例如,可以使用API向密钥存储区域511的槽中插入新密钥,该API使用新密钥作为参数或者输入。相似地,可以使用删除API从密钥存储区域511删除密钥,该删除API指定将从其删除密钥的槽。在另一示例中,通过使用数据取回API从存储分节507取回数据,该数据取回API需要与在密钥存储装置511中存储的密钥中的一个或者多个密钥对应的密钥作为参数。
回顾图4,第一设备可以在步骤420中接收对于向另一设备(例如,第二设备)迁移与存储库关联的虚拟机的请求。响应于该请求,第一设备可以在步骤425中生成和使用传送密钥TK1以对存储加密密钥K1加密。传送密钥TK1因此有效地替换先前加密密钥(比如密钥H1VM1)作为用来对存储加密密钥加密的密钥。例如,第一设备可以初始地使用H1VM1对存储加密密钥解密,然后使用TK1对存储加密密钥重新加密而无需对数据存储库的整个数据存储区域解密和重新加密。在一些示例中,可以通过创建存储加密密钥的新实例化并且对新实例化加密来用传送密钥TK1对存储加密密钥加密。然后可以删除(使用先前加密密钥加密的)先前实例化。传送密钥TK1然后可以存储于槽之一中的密钥存储区域中,并且可以从密钥存储区域删除或者以其它方式去除密钥H1VM1。可以在H1VM1将被再次使用或者用于第一设备进行的其它加密的情况下取代H1VM1将传送密钥TK1用于迁移虚拟机。因而,第一设备可能希望维持H1VM1的保密,并且因此可能未向迁移目的地设备传送H1VM1或者甚至未离开第一设备。在步骤430中,第一设备可以发起向目的地第二设备迁移虚拟机。虚拟机的迁移可以包括保存虚拟机的当前状态并且从一个设备向另一设备复制状态信息而且接收者设备使用接收的状态信息来实例化新虚拟机。
第一设备还可以在步骤435中通过安全通信通道与存储库的头部分节一起向第二设备传输传送密钥TK1。在一些示例中,可以在相同通道中或者在不同通道中传输头部和传送密钥。用来传输传送密钥和/或头部的安全通道可以不同于用来传输与虚拟机迁移关联的一个或者多个其它通信或者通信类型的通道。一旦已经迁移了虚拟机并且接收了传送密钥TK1和存储库头部,则目的地第二设备可以在步骤440中生成用于替换传送密钥TK1的新密钥H2VM1。此外,在步骤445中,第二设备可以向存储库中导入接收的头部。第二设备然后可以使用传送密钥TK1在步骤450中使用在导入的头部内的H2VM1对存储加密密钥K1加密。例如,设备可以使用传送密钥TK1和新密钥H2VM1作为输入或者参数来调用存储密钥加密API。在存储密钥加密API中传递TK1可以证实授权使用新密钥对存储加密密钥K1重新加密(或者对它的新实例化加密)。此外,第二设备一旦存储加密密钥已经用新密钥H2VM1被加密就可以从密钥存储区域去除密钥TK1并且向存储库头部的密钥存储区域存储新密钥H2VM1。使用前述过程,可以使用先前设备(即第一设备)未知的新密钥来重新保护存储库而无需文件系统/存储库的完整解密和重新加密。
图6A至图6D图示了具有对应结构及其改变的虚拟机迁移过程。图6A例如图示了提供虚拟机603的计算设备601。存储库603可以被供应用于虚拟机602并且可以存在于如这里讨论的云系统内。在一些实例中,可以经由云构架平台(比如CLOUDSTACK或者OPENSTACK)管理或者以其它方式调节存储库603。在其它布置中,存储库可以在物理上位于相同设备(例如,设备601)内。设备601还可以使用向存储库603的头部分节605存储的存储加密密钥609对存储库603加密。此外,设备601可以生成用于对存储加密密钥609加密的加密密钥H1VM1并且向密钥存储区域611的槽(比如槽0)存储它。
在图6B中,在接收对于向新设备迁移虚拟机602的请求时,设备601可以生成传送密钥TK1并且向密钥存储区域611的槽1中存储该传送密钥。主机601还可以用TK1对存储加密密钥609重新加密并且随后从槽0去除加密密钥H1VM1。在图6B的过程之后,将用TK1而不是H1VM1对存储加密密钥609加密。
图6C图示了从设备601向设备621迁移虚拟机602。作为迁移的部分,可以与存储库603的头部分节605一起或者分离地以安全方式向设备621传输传送密钥TK1。一旦已经向设备621迁移了虚拟机602,设备621就可以生成它自己的用于对存储加密密钥609重新加密的保密密钥H1VM2并且还可以向密钥存储区域611存储密钥H1VM2(例如,在槽2中)。与在图6B中替换H1VM1的过程相似,设备621可以用TK1对存储加密密钥609解密并且用H1VM2对存储加密密钥609重新加密。然后可以从密钥存储区域611删除TK1。
图6D图示了迁移的虚拟机602和具有用设备621自己的如在密钥存储区域611中所示的密钥H1VM2新加密的存储加密密钥609的虚拟机602。因而,在未知H1VM2时,先前设备(即主机601)很可能不能访问存储库603。
虽然已经用结构特征和/或方法动作特有的语言描述了主题内容,但是将理解,这里定义的主题内容未必限于以上描述的具体特征或者动作。实际上,以上描述的具体特征和动作被公开作为例示性形式。

Claims (11)

1.一种存储加密方法,包括:
用第一加密密钥对为虚拟机或者实际机器供应的存储区域加密;
在所述存储区域的头部中存储所述第一加密密钥,其中所述头部和所述存储区域在逻辑上相互分离;
用第四加密密钥对所述头部和所述第一加密密钥加密;
接收对于从第一位置向第二位置迁移所述存储区域的请求;
响应于接收对于迁移所述存储区域的所述请求来生成第二加密密钥;
通过用所述第四加密密钥对所述第一加密密钥解密来用所述第二加密密钥对所述头部和在其中存储的所述第一加密密钥加密;以及
迁移所述存储区域,包括:
用所述第二加密密钥对所述第一加密密钥解密;并且
用第三加密密钥对所述第一加密密钥重新加密。
2.根据权利要求1所述的方法,其中用所述第三加密密钥对所述第一加密密钥重新加密包括用所述第三加密密钥对所述头部重新加密。
3.根据权利要求1所述的方法,其中迁移所述存储区域而未修改所述存储区域的加密。
4.根据权利要求1所述的方法,还包括:为虚拟机供应所述存储区域,
其中迁移所述存储区域包括从第一设备向第二设备迁移所述虚拟机。
5.根据权利要求4所述的方法,其中所述虚拟机的迁移包括:
保存所述虚拟机的当前状态;
从所述第一设备向所述第二设备复制状态信息;以及
由所述第二设备使用接收的所述状态信息来实例化新虚拟机。
6.一种存储加密方法,包括:
用第一加密密钥对为虚拟机或者实际机器供应的存储区域加密;
在所述存储区域的头部中存储所述第一加密密钥,其中所述头部和所述存储区域在逻辑上相互分离;
用第二加密密钥对所述头部和在其中存储的所述第一加密密钥加密;
在所述头部中存储所述第二加密密钥;
迁移所述存储区域,包括:
用所述第二加密密钥对所述第一加密密钥解密;并且
用第三加密密钥对所述第一加密密钥重新加密;以及
在用所述第三加密密钥对所述第一加密密钥重新加密之后从所述头部去除所述第二加密密钥。
7.一种存储加密方法,包括:
为虚拟机确定存储区域;
用第一加密密钥对所述存储区域加密;
在所述存储区域的头部中存储所述第一加密密钥,其中所述头部在逻辑上与所述存储区域分离;
用第二加密密钥对所述头部和在其中存储的所述第一加密密钥加密;
接收对于迁移所述虚拟机的请求;
响应于所述请求并且在迁移所述虚拟机之前:
生成第三加密密钥;
使用所述第二加密密钥对至少所述第一加密密钥解密;并且
使用所述第三加密密钥对所述第一加密密钥重新加密;以及
在生成所述第三加密密钥之后并且在迁移所述虚拟机之前从所述头部去除所述第二加密密钥。
8.根据权利要求7所述的方法,还包括在使用所述第二加密密钥对所述至少所述第一加密密钥解密之后存储所述第三加密密钥。
9.根据权利要求7所述的方法,其中在第一网络位置中供应所述存储区域并且在与所述第一网络位置不同的第二网络位置提供所述虚拟机。
10.根据权利要求7所述的方法,其中使用所述第三加密密钥对所述第一加密密钥重新加密而维持用所述第一加密密钥对所述存储区域加密。
11.根据权利要求7所述的方法,其中所述虚拟机的迁移包括:
保存所述虚拟机的当前状态;以及
从所述虚拟机所在的装置向另一装置复制状态信息。
CN201380006284.9A 2012-01-23 2013-01-23 存储加密方法 Expired - Fee Related CN104067288B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261589591P 2012-01-23 2012-01-23
US61/589,591 2012-01-23
PCT/US2013/022679 WO2013112538A1 (en) 2012-01-23 2013-01-23 Storage encryption

Publications (2)

Publication Number Publication Date
CN104067288A CN104067288A (zh) 2014-09-24
CN104067288B true CN104067288B (zh) 2017-03-29

Family

ID=47846121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380006284.9A Expired - Fee Related CN104067288B (zh) 2012-01-23 2013-01-23 存储加密方法

Country Status (4)

Country Link
US (2) US9003203B2 (zh)
EP (1) EP2807599B1 (zh)
CN (1) CN104067288B (zh)
WO (1) WO2013112538A1 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9503527B1 (en) * 2013-03-15 2016-11-22 Cisco Technology, Inc. Personalized phone registration based on virtual desktop infrastructure
DK3063919T3 (da) * 2013-10-28 2017-11-06 Sepior Aps System og fremgangsmåde til håndtering af fortrolige data
US9519498B2 (en) 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9563569B2 (en) 2014-01-28 2017-02-07 Red Hat Israel, Ltd. Memory transformation in virtual machine live migration
US9785378B2 (en) 2014-01-28 2017-10-10 Red Hat Israel, Ltd. Tracking transformed memory pages in virtual machine chain migration
US9792448B2 (en) 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
WO2015175426A1 (en) * 2014-05-12 2015-11-19 Google Inc. Managing nic-encrypted flows for migrating guests or tasks
US9419952B2 (en) * 2014-06-05 2016-08-16 Stmicroelectronics (Grenoble 2) Sas Memory encryption method compatible with a memory interleaved system and corresponding system
EP3198779B1 (en) 2014-09-26 2020-04-15 British Telecommunications public limited company Secure virtualised data volumes
US9584317B2 (en) 2014-10-13 2017-02-28 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US10229272B2 (en) 2014-10-13 2019-03-12 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
GB2532415A (en) * 2014-11-11 2016-05-25 Ibm Processing a guest event in a hypervisor-controlled system
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
US10102151B2 (en) * 2015-11-06 2018-10-16 International Business Machines Corporation Protecting a memory from unauthorized access
US10210010B1 (en) * 2015-12-30 2019-02-19 Nutanix, Inc. Network reconfiguration in hypervisor-agnostic disaster recovery scenarios
EP3408784A1 (en) * 2016-01-29 2018-12-05 British Telecommunications public limited company Secure data storage
US10719346B2 (en) 2016-01-29 2020-07-21 British Telecommunications Public Limited Company Disk encryption
WO2017129530A1 (en) 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Disk encryption
WO2017129657A1 (en) * 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Disk encryption
US20170277898A1 (en) * 2016-03-25 2017-09-28 Advanced Micro Devices, Inc. Key management for secure memory address spaces
US10303899B2 (en) * 2016-08-11 2019-05-28 Intel Corporation Secure public cloud with protected guest-verified host control
CN106295341A (zh) * 2016-08-11 2017-01-04 浪潮电子信息产业股份有限公司 基于虚拟化的企业数据中心安全解决方法
US11989332B2 (en) 2016-08-11 2024-05-21 Intel Corporation Secure public cloud with protected guest-verified host control
US10516528B2 (en) * 2016-08-31 2019-12-24 Nicira, Inc. System and method for managing secret information using virtualization
US10528746B2 (en) * 2016-12-27 2020-01-07 Intel Corporation System, apparatus and method for trusted channel creation using execute-only code
US10503237B2 (en) * 2017-02-13 2019-12-10 Gbs Laboratories, Llc Mobile device virtualization solution based on bare-metal hypervisor with optimal resource usage and power consumption
US10579439B2 (en) 2017-08-29 2020-03-03 Red Hat, Inc. Batched storage hinting with fast guest storage allocation
US10956216B2 (en) 2017-08-31 2021-03-23 Red Hat, Inc. Free page hinting with multiple page sizes
US10474382B2 (en) 2017-12-01 2019-11-12 Red Hat, Inc. Fast virtual machine storage allocation with encrypted storage
US10958423B2 (en) * 2018-02-06 2021-03-23 Microsoft Technology Licensing, Llc Automated changeover of transfer encryption key
EP3785409B1 (en) 2018-04-25 2023-08-02 British Telecommunications public limited company Data message sharing
US11411726B2 (en) 2018-05-24 2022-08-09 British Telecommunications Public Limited Company Cryptographic key generation using multiple random sources
WO2019223979A1 (en) 2018-05-24 2019-11-28 British Telecommunications Public Limited Company Cryptographic key generation and storage
CN108718316B (zh) * 2018-06-11 2020-11-24 山东超越数控电子股份有限公司 一种虚拟机密码信息安全迁移的实现方法及系统
US20210019172A1 (en) * 2018-06-28 2021-01-21 Intel Corporation Secure virtual machine migration using encrypted memory technologies
US11290426B2 (en) * 2019-06-17 2022-03-29 The Government Of The United States, As Represented By The Secretary Of The Army Block chain network and hash-based cuckoo filter
US11436141B2 (en) 2019-12-13 2022-09-06 Red Hat, Inc. Free memory page hinting by virtual machines
US11750379B2 (en) 2020-06-11 2023-09-05 Western Digital Technologies, Inc. Secure optical communication link

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567914B1 (en) * 1998-07-22 2003-05-20 Entrust Technologies Limited Apparatus and method for reducing transmission bandwidth and storage requirements in a cryptographic security system
CN1602480A (zh) * 2001-12-10 2005-03-30 单球体有限公司 管理附装在数据网络上的存储器资源

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681034B1 (en) 2001-12-12 2010-03-16 Chang-Ping Lee Method and apparatus for securing electronic data
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US8045714B2 (en) * 2005-02-07 2011-10-25 Microsoft Corporation Systems and methods for managing multiple keys for file encryption and decryption
US7577258B2 (en) * 2005-06-30 2009-08-18 Intel Corporation Apparatus and method for group session key and establishment using a certified migration key
US7444670B2 (en) * 2006-03-21 2008-10-28 International Business Machines Corporation Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance
US7802102B2 (en) 2006-10-24 2010-09-21 International Business Machines Corporation Method for efficient and secure data migration between data processing systems
US20080189432A1 (en) * 2007-02-02 2008-08-07 International Business Machines Corporation Method and system for vm migration in an infiniband network
US9112681B2 (en) * 2007-06-22 2015-08-18 Fujitsu Limited Method and apparatus for secure information transfer to support migration
US20090125996A1 (en) * 2007-09-19 2009-05-14 Interdigital Patent Holdings, Inc. Virtual subscriber identity module
US8208637B2 (en) * 2007-12-17 2012-06-26 Microsoft Corporation Migration of computer secrets
US8259948B2 (en) * 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US20110202765A1 (en) * 2010-02-17 2011-08-18 Microsoft Corporation Securely move virtual machines between host servers
CA2795206C (en) * 2010-03-31 2014-12-23 Rick L. Orsini Systems and methods for securing data in motion
US8433901B2 (en) 2010-04-07 2013-04-30 Apple Inc. System and method for wiping encrypted data on a device having file-level content protection
US20110289310A1 (en) 2010-05-20 2011-11-24 Selgas Thomas D Cloud computing appliance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567914B1 (en) * 1998-07-22 2003-05-20 Entrust Technologies Limited Apparatus and method for reducing transmission bandwidth and storage requirements in a cryptographic security system
CN1602480A (zh) * 2001-12-10 2005-03-30 单球体有限公司 管理附装在数据网络上的存储器资源

Also Published As

Publication number Publication date
CN104067288A (zh) 2014-09-24
WO2013112538A1 (en) 2013-08-01
EP2807599A1 (en) 2014-12-03
US20150215120A1 (en) 2015-07-30
EP2807599B1 (en) 2020-03-25
US9509501B2 (en) 2016-11-29
US20130191648A1 (en) 2013-07-25
US9003203B2 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
CN104067288B (zh) 存储加密方法
CN104246703B (zh) 为云资源指定状态
CN102202049B (zh) 用于多虚拟机设备的网络策略实现
CN104067231B (zh) 使用虚拟交换代理控制网络接口
CN102971722B (zh) 用于创建和传送加密的虚拟盘的系统和方法
CN102754077B (zh) 可从外部媒体装置引导的安全虚拟化环境
CN104106052B (zh) 用于主控的服务的连接租赁
EP2842049B1 (en) Secure administration of virtual machines
CN103262024B (zh) 用于强制应用将数据存储在安全的存储位置中的方法和系统
US10019177B2 (en) System updates with personal virtual disks
US8997172B2 (en) Controlling information disclosure during application streaming and publishing
CN104956329A (zh) 在云计算环境中的网络方案
CN104731658A (zh) 供应和合并共享资源以最大化资源可用性的方法和系统
WO2013163119A2 (en) Trusted file indirection
CN103649950A (zh) 为由外部存储提供者进行的文件存储提供多个安全性层
US20120297069A1 (en) Managing Unallocated Server Farms In A Desktop Virtualization System
US11150926B2 (en) Native code generation for cloud services
CN104115471A (zh) 托管的服务中的客户端带宽模拟
US20210158232A1 (en) Quantum computing task translation supporting multiple quantum computing technologies
JP2023551527A (ja) 準同型暗号化を使用したセキュアなコンピューティング・リソース配置
Rastogi et al. Deployment of cloud using open-source virtualization: study of vm migration methods and benefits
EP4066174A1 (en) Quantum computing service supporting multiple quantum computing technologies
Jiang et al. Research on the Deployment Strategy of Enterprise-Level JCOS Cloud Platform
Vishwakarma et al. Desktop Virtualization on different system using Hyper-V

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170329

CF01 Termination of patent right due to non-payment of annual fee