CN102368201A - 虚拟化环境中存储优化选择 - Google Patents
虚拟化环境中存储优化选择 Download PDFInfo
- Publication number
- CN102368201A CN102368201A CN2011100793796A CN201110079379A CN102368201A CN 102368201 A CN102368201 A CN 102368201A CN 2011100793796 A CN2011100793796 A CN 2011100793796A CN 201110079379 A CN201110079379 A CN 201110079379A CN 102368201 A CN102368201 A CN 102368201A
- Authority
- CN
- China
- Prior art keywords
- virtual
- disk
- virtual machine
- metadata
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 155
- 238000005457 optimization Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 claims description 55
- 230000004044 response Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 244000078534 Vaccinium myrtillus Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- IRLPACMLTUPBCL-KQYNXXCUSA-N 5'-adenylyl sulfate Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP(O)(=O)OS(O)(=O)=O)[C@@H](O)[C@H]1O IRLPACMLTUPBCL-KQYNXXCUSA-N 0.000 description 1
- 241000501754 Astronotus ocellatus Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 101000666896 Homo sapiens V-type immunoglobulin domain-containing suppressor of T-cell activation Proteins 0.000 description 1
- 241000721662 Juniperus Species 0.000 description 1
- 241001147389 Panthera uncia Species 0.000 description 1
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 102100038282 V-type immunoglobulin domain-containing suppressor of T-cell activation Human genes 0.000 description 1
- 235000003095 Vaccinium corymbosum Nutrition 0.000 description 1
- 235000017537 Vaccinium myrtillus Nutrition 0.000 description 1
- 235000021014 blueberries Nutrition 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- IJJVMEJXYNJXOJ-UHFFFAOYSA-N fluquinconazole Chemical compound C=1C=C(Cl)C=C(Cl)C=1N1C(=O)C2=CC(F)=CC=C2N=C1N1C=NC=N1 IJJVMEJXYNJXOJ-UHFFFAOYSA-N 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于虚拟化环境的虚拟磁盘的存储优化选择,其中可部分地基于被包含在虚拟机中的虚拟磁盘的磁盘类型选择存储优化。由虚拟化环境向虚拟化环境中数据库查询与虚拟磁盘相关联的元数据可发现虚拟磁盘的磁盘类型。当虚拟桌面架构创建虚拟磁盘和包括至少一个虚拟磁盘的虚拟机模板时元数据可被创建。虚拟磁盘可被修改以包括描述虚拟磁盘的磁盘类型的元数据或者与之相关联。当执行包括经修改的虚拟磁盘的虚拟机时,虚拟化环境的存储子系统可获得虚拟磁盘的元数据以发现虚拟磁盘的磁盘类型。
Description
技术领域
本申请总的涉及虚拟机配置。本申请尤其涉及配置虚拟机中的虚拟磁盘。
背景技术
虚拟机典型地可以访问使用一个或多个存储优化所配置的虚拟磁盘。配置虚拟磁盘以具有特定存储优化通常要求了解虚拟磁盘的磁盘类型。当虚拟机被创建时,被包含在其内的虚拟磁盘的类型可能是不为所知的。在这些实例中,因为虚拟机创建器可能不了解虚拟磁盘的磁盘类型,所以虚拟机创建器不能够选择有效的存储优化。
在虚拟桌面架构环境中,虚拟磁盘可以是任何磁盘类型。例如,虚拟磁盘可以存储操作系统映像,虚拟机可以从该操作系统映像启动;或者虚拟磁盘可包括存放当虚拟机重启时无效的和被损坏的数据的非持久性回写高速缓存。在一些实例中,虚拟磁盘可以是被创建以传递用于在虚拟机启动后定制虚拟机的数据和二进制数据的映像定制磁盘。不同的磁盘类型通常有不同的性能,因此这些不同磁盘类型通常映射到不同的磁盘存储优化。
虚拟化平台通常不能识别被包含在特定虚拟机中的磁盘的类型。相反地,创建虚拟机的系统通常是了解特定虚拟机中虚拟磁盘的磁盘类型的唯一系统。因此为虚拟化平台选择存储特定的优化可能是困难的,因为该平台不了解被包含在特定虚拟机中的虚拟机磁盘是什么类型。
发明内容
从最广义的意义上,本发明描述了向虚拟化环境通知被包含在虚拟机中虚拟磁盘的磁盘类型的方法和系统。在多个实例中,虚拟化环境不了解虚拟机中虚拟磁盘的磁盘类型。因此虚拟化环境通常不能为虚拟机适当地选择存储特定的优化。通过向虚拟化环境通知虚拟机中虚拟磁盘的磁盘类型,那个虚拟化环境可为那个虚拟机选择合适的存储特定的优化。
在一个方面,此处描述了使用指示磁盘的磁盘类型的元数据为虚拟化环境中的磁盘选择存储优化的方法。在计算设备上执行的虚拟桌面架构创建包括至少一个虚拟磁盘的虚拟机模板。接着,虚拟桌面架构响应于创建所述虚拟机模板修改所述至少一个虚拟磁盘以便与描述所述至少一个虚拟磁盘的磁盘类型的元数据相关联或者包括描述所述至少一个虚拟磁盘的磁盘类型的元数据。虚拟化环境执行使用由虚拟桌面架构创建的虚拟机模板所创建的虚拟机。虚拟化环境的存储子系统获得所述至少一个虚拟磁盘的元数据,并且部分地基于所述元数据中所描述的磁盘类型为所述至少一个虚拟磁盘选择存储优化。
在一些实施例中,该方法还包括复制虚拟机模板以创建包括包含描述磁盘类型的元数据的所述至少一个虚拟磁盘的第二虚拟机模板。
在其他实施例中,该方法还包括根据所选择的存储优化附接经优化的存储。
仍在其他实施例中,存储子系统部分地基于所述磁盘类型和指定的磁盘存储类型选择存储优化。在一些实施例中,修改虚拟磁盘还包括修改所述虚拟磁盘以与描述操作系统映像磁盘类型的元数据的相关联或包括描述操作系统映像磁盘类型的元数据。在这些实施例中,存储子系统选择包括创建虚拟磁盘的高速缓存的存储优化。
在一个实施例中,虚拟磁盘可以被修改以便与描述非持久性高速缓存磁盘类型的元数据相关联或者包括描述非持久性高速缓存磁盘类型的元数据。在这个实施例中,存储子系统可选择包括重排序写操作和提前的写确认的任何一个的存储优化。
在又一个实施例中,虚拟磁盘可以被修改以便与描述映像定制磁盘类型的元数据相关联或者包括描述映像定制磁盘类型的元数据。在这个实施例中,存储子系统可选择包括安全措施的存储优化。
在另一个方面,此处描述的是一种使用指示磁盘的磁盘类型的元数据为虚拟化环境中的磁盘选择存储优化的系统。所述系统包括在计算设备上执行以创建包括至少一个虚拟磁盘的虚拟机模板的虚拟桌面架构。该虚拟桌面架构接着响应于创建所述虚拟机模板,修改所述至少一个虚拟磁盘以便与描述所述至少一个虚拟磁盘的磁盘类型的元数据相关联或包括描述所述至少一个虚拟磁盘的磁盘类型的元数据。该系统还包括在虚拟化环境中执行的虚拟机,其中所述虚拟机是使用由所述虚拟桌面架构创建的虚拟 机模板创建的。该系统也包括在虚拟化环境中执行以获得所述至少一个虚拟磁盘的元数据的存储子系统。当获得所述元数据时,存储子系统部分地基于所述元数据中所描述的磁盘类型为所述至少一个虚拟磁盘选择存储优化。
附图说明
在下面的附图描述了此处描述的系统和方法的某些示意性实施例,其中相同的附图标记涉及相同的元件。这些所描述的实施例应被理解所公开的方法和系统的示意性说明,而不是对于本申请的任何限制。
图1A描述了提供对可执行应用程序的计算设备的远程访问的网络环境的实施例;
图1B和图1C是描述计算设备的实施例的框图;
图2A和图2B是描述虚拟化环境的实施例的框图;
图3是描述虚拟化环境和虚拟桌面架构环境的实施例的框图;
图4A是描述用于修改虚拟磁盘的方法的实施例的流程图;
图4B是描述用于选择存储优化的方法的实施例的流程图。
具体实施方式
图1A描述了计算环境101的一个实施例,该计算环境包括与一个或多个服务器106A-106N(总的称为“服务器106”)通信的一个或多个客户机102A-102N(总的称为“客户机102”)。网络被安装在客户机102与服务器106之间。
在一个实施例中,计算环境101可包括安装在服务器106和客户机102之间的设备。这个设备可管理客户机/服务器连接,并且在一些情况下可在多个后端服务器之间负载平衡客户机连接。
客户机102在一些实施例中可被认为是单个客户机102或客户机102的一个组,而服务器106可被认为是单个服务器106或服务器106的一个组。在一个实施例中,单个客户机102可与不只一个服务器106通信,而在另一个实施例中,单个服务器106可与不只一个客户机102通信。仍在另一个实施例中,单个客户机102与单个服务器106通信。
在一些实施例中,客户机102可被称为下面术语中的任何一个:客户机102、客户端、客户计算机、客户设备、客户计算设备、本地机器、远程机 器、客户节点、端点、端节点或第二机器。在一些实施例中,服务器106可被称为下列术语中的任何一个:服务器、本地机器、服务器群、主计算设备或第一机器。
在一个实施例中,客户机102可以是虚拟机102C。虚拟机102C可以是任何虚拟机,而在一些实施例中虚拟机102C可以是由XenSolution、CitrixSystems、IBM、VMware公司开发的虚拟机监控程序或任何其他虚拟机监控程序管理的任何虚拟机。在其他实施例中,虚拟机102C可以由任何虚拟机监控程序管理,而仍在其他实施例中,虚拟机102C可由在服务器106上执行的虚拟机监控程序或在客户机102上执行的虚拟机监控程序管理。
在一些实施例中,客户机102可以执行、操作或者以其它方式提供应用,该应用可为下列应用中的任何一个:软件、程序、可执行指令、虚拟机、虚拟机监控程序、web浏览器、基于web的客户机、客户机-服务器应用、瘦客户端计算客户机、ActiveX控件、Java小程序、与类似软IP电话的网络电话(VoIP)通信相关的软件、流式传输视频和/或音频的应用、促进实时数据通信的应用、HTTP客户机、FTP客户机、Oscar客户机、Telnet客户机或可执行指令的任何其他集合。仍在其他实施例中包括显示由在服务器106或其他位于远程的机器上远程执行的应用所产生的应用输出的客户设备102。在这些实施例中,客户设备102可以在应用窗口、浏览器或其他输出窗口中显示应用输出。在一个实施例中,应用是桌面,而在其他实施例中,应用是产生桌面的应用。
在一些实施例中,服务器106执行远程呈现客户端或其他客户端或程序,这些客户端或程序使用瘦客户端或远程显示协议来捕获由在服务器106上执行的应用产生的显示输出并且将应用显示输出传输到远程客户机102。瘦客户端或远程显示协议可以是下列协议的任何一个:由位于Ft.LauderdaleFlorida的Citrix Systems公司制造的独立计算架构(ICA)协议;或由位于Washington,Redmond的Microsoft公司制造的远程桌面(RDP)协议。
计算环境101可包括不只一个服务器106A-106N,这样的服务器106A-106N逻辑上一起聚合到服务器群106中。服务器群106可包括地理上分散并且逻辑上一起聚合到服务器群106中的服务器106,或者互相之间位置接近的并且逻辑上一起聚合到服务器群106中的服务器106。在一些实施例中,服务器群106中地理上分散的服务器106A-106N可使用WAN、MAN或LAN通信,其中不同地理区域可以被表征为:不同大陆、大陆的不同地区、 不同国家、不同州、不同城市、不同校园、不同房间、或前述地理位置的任何组合。在一些实施例中,服务器群106可以作为单个实体被管理,而在其它实施例中,服务器群106可包括多个服务器群106。
在一些实施例中,服务器群106可包括执行实质上类似的类型的操作系统平台(例如,由Washington,Redmond的Microsoft公司制造的WINDOWS NT、Unix、Linux或SNOW LEOPARD)。在其他实施例中,服务器群106可包括执行第一类型操作系统平台的第一组服务器106和执行第二类型操作系统平台的第二组服务器106。在其他实施例中,服务器群106可包括执行不同类型操作系统平台的服务器106。
在一些实施例中,服务器106可为任何服务器类型。在其他实施例中,服务器106可以是下列服务器类型的任何一个:文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器、防火墙、应用服务器或主应用服务器、执行活动目录的服务器106、或者执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器106。在一些实施例中,服务器106可以是包含远程认证拨入用户服务的RADIUS服务器。在服务器106包括设备的实施例中,服务器106可以是由下列制造商的任何一个制造的设备:Citrix应用网络组、Silver Peak Systems公司、Riverbed Thechnology公司、F5 Networks公司、或Juniper NetWorks公司。一些实施例中包括第一服务器106A,其接收来自客户机102的请求、转发该请求到的第二服务器106B,以及使用来自第二服务器106B的响应来对客户机102所产生的请求进行响应。第一服务器106A可获得对客户机102可用的应用列表,以及与寄载应用列表中所识别的应用的应用服务器106相关的地址信息。第一服务器106A还可使用web接口对客户机请求提供响应,并直接与客户机102通信以向客户机102提供对所识别应用的访问。
在一些实施例中,服务器106可执行下列应用中的任何一个:使用瘦客户端协议传输应用显示数据到客户机的瘦客户端应用、远程显示呈现应用、Citrix Systems公司的CITRIX ACCESS SUITE的任何部分,诸如METAFRAM或者CITRIX PRESENTATION SERVER;Microsoft公司制造的MICROSOFT WINDOWS终端服务或由Citrix Systems公司开发的ICA客户端。另一个实施例中包括是诸如下列应用服务器的服务器106:提供电子邮件服务的邮件服务器,例如由Microsoft公司制造的MICROSOFT EXCHANGE;web或Internet服务 器、桌面共享服务器,协同服务器或任何其他类型的应用服务器。仍在其他实施例中服务器106执行下列类型的所寄载的服务器应用的任何一个:Citrix Online Division公司提供的GOTOMEETING、位于California,SantaClara的WebEx公司提供的WEBEX,或者Microsoft公司提供的MicrosoftOffice LIVE MEETING。
在一些实施例中,客户机102可以是寻求访问服务器106提供的资源的客户机节点。在其他实施例中,服务器106可为客户机102或客户机节点提供对所寄载的资源的访问。在一些实施例中,服务器106作为主节点运行,这样它可与一个或多个客户机102或服务器106通信。在一些实施例中,主节点可识别并且向一个或多个客户机102或服务器106提供与寄载所请求的应用的服务器106相关的地址信息。仍在其他实施例中,主节点可以是服务器群106、客户机102、客户机节点102的集群或设备。
一个或多个客户机102和/或一个或多个服务器106可以在被安装在计算环境中的机器和设备之间的网络104上传输数据。网络104可包括一个或多个子网,且可被安装在客户机102、服务器106和被包含在计算环境101中的计算机器和设备的任何组合之间。在一些实施例中网络104可以是:局域网(LAN)、城域网(MAN)、广域网(WAN),包括位于客户机102和服务器106之间的多个子网104的主网104、具有专用子网104的主公共网104、具有公共子网104的主专用网104或者具有专用子网104的主专用网104。仍在进一步的实施例中网络104可以是任何的下列网络类型:点对点网络、广播网络、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光纤网络)网络、SDH(同步数字体系)网络、无线网络、有线网络或包括诸如红外信道或者卫星频带无线链路的网络104。网络104的拓扑在不同的实施例中可以不同,可能的网络拓扑包括:总线型网络拓扑、星型网络拓扑、环型网络拓扑、基于中继器的网络拓扑或者分层星型网络拓扑。其他的实施例中包括使用协议在移动设备间通信的移动电话网络的网络104,其中,协议可以是下列协议的任何一个:AMPS、TDMA、CDMA、GSM、GPRSUMTS或可在移动设备间传输数据的其他任何协议。
图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通信。I/O端口、存储器端口103和主处理器被包含在中央处理单元121中。
在计算设备100的实施例中可包括被下列组件配置的任何一个表征的中央处理单元121:响应并处理从主存储器单元122取出的指令的逻辑电路;微处理器单元,诸如:由Intel公司制造的微处理器单元;由Motorola公司制造的微处理器单元;由Califirnia,Santa Clara的Transmeta公司制造的微处理器单元;诸如国际商业机器公司制造的RS/6000处理器;由Advanced Micro Devices公司制造的处理器;或逻辑电路的任何其他组合。仍在中央处理单元122的其他实施例可包括下列任何组合:微处理器、微控制器、具有单处理核的中央处理单元、具有两个处理核的中央处理单元或具有不只一个处理核的中央处理单元。
尽管图1C描述了包括单个中央处理单元121的计算设备,但在一些实施例中计算设备100可包括一个或多个处理单元121。在这些实施例中,计算设备100可存储和执行固件或其他可执行指令,这些固件或指令在被执行时,指引一个或多个处理单元121来同时执行指令或同时在一个数据片上执行指令。在其他实施例中,计算设备100可存储和执行固件或其他可执行指令,这些固件或指令在被执行时,指引一个或多个处理单元121各自执行一组指令的一部分。例如每个处理单元121可被指示执行程序的一部分或者程序中的特定模块。
在一些实施例中,处理单元121可包括一个或多个处理核。例如处理单元121可有两个核、四个核、8个核等。在一个实施例中,处理单元121可包括一个或多个并行处理核。在一些实施例中处理单元121的处理核可访问作为全局地址空间的可利用内存、或在其他实施例中,计算设备100的存储 器可被分段并分配到处理单元121的特定核。在一个实施例中,计算设备100中的一个或多个处理核或处理器可各自访问本地存储器。仍在又一个实施例中,计算设备100的存储器可在一个或多个处理器或处理核之间共享,而其他存储器可被特定处理器或处理器子集访问。在计算设备100包括不只一个处理单元的实施例中,多个处理单元可被包含在单个集成电路(IC)中。在一些实施例中,这些多个处理器可通过内部高速总线连接在一起,该总线可被称为元件互联总线。
在计算设备100包括一个或多个处理单元121,或处理单元121包括一个或多个处理核的实施例中,处理器可同时在多片数据上执行单个指令(SIMD),或在其他实施例中处理器可同时在多片数据上执行多个指令(MIMD)。在一些实施例中,计算设备100可包括任意数量的SIMD和MIMD处理器。
在一些实施例中,计算设备100可包括图像处理器或图形处理单元(未示出)。图形处理单元可包括软件和硬件的任何组合,并且还可输入图形数据和图形指令、从所输入的数据和指令渲染图形和输出所渲染的图形。在一些实施例中,图形处理单元可被包含在处理单元121的内部。在其他实施例中,计算设备100可包括一个或多个处理单元121,其中至少一个处理单元121被专用于处理和渲染图形。
在计算设备100的一个实施例中包括通过也称为背侧总线的第二总线与高速缓冲存储器140通信的中央处理单元,而在计算设备100的又一个实施例中包括使用系统总线150与高速缓冲存储器140通信的中央处理单元121。在一些实施例中,本地系统总线150也被中央处理单元所使用来与多种类型的I/O设备130A-130N进行通信。在一些实施例中,本地系统总线150可以是下列类型总线的任何一个:VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。计算设备100的其他实施例中包括是与中央处理单元121通信的视频显示器124的I/O设备130A-130N。仍在计算设备100的其他形式中包括通过下列连接的任何一个连接到I/O设备130A-130N的处理器121,这些连接如下:。超传输(HyperTransport)、快速I/O或者InfiniBand。计算设备100的进一步的实施例包括处理器121,该处理器使用本地互连总线与一个I/O设备130A进行通信,并使用直接连接与第二I/O设备130B进行通信。
在一些实施例中,计算设备100包括主存储器单元122和高速缓冲存储 器140。高速缓冲存储器140可以是任何存储器类型,且在一些实施例中可以是下列类型存储器的任何一个:SRAM、BSRAM或EDRAM。其他实施例中包括的高速缓冲存储器140和主存储器单元122,可以是下列类型存储器的任何一个:静态随机访问存储器(SRAM)、Burst(脉冲串)SRAM或SynchBurstSRAM(BSRAM)、动态随机访问存储器DRAM、快速页模式DRAM(FPM DRAM)、增强DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDODRAM)、脉冲串扩展数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、双数据传输率SDRAM(DDRSDRAM)、增强SRAM(ESDRAM)、同步链路DRAM(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,这里存储设备被配置为存储操作系统、软件、程序应用、或者至少客户机代理120的一部分。计算设备100的进一步实施例中包括用作存储设备128的安装设备116。
计算设备100还可包括网络接口118以通过多种连接,包括但不限于标准电话线路、LAN或WAN链路(例如802.11,T1,T3、56kb、X.25、SNA、DECNET)、宽带连接(如ISDN、帧中继、ATM、千兆以太网、SONET上以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的一些组合,来连接到局域网(LAN)、广域网(WAN)或因特网。使用多种通信协议(例如TCP/IP、IPX、SPX、NetVIOS、Ehernet、ARCNET、SONET、SIDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE802.11、IEEE802.11aIEEE802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)也可建立连接。计算设备100的一个形式包括可以通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS),或Citrix Systems公司制造的Gitrix 网关协议的隧道协议来与其他计算设备100’通信的网络接口118。网络接口118的形式可以包括内置网络适配器、网络接口卡、PCMCIA网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算设备100连接到能够通信并执行这里所描述的方法和系统的网络的任意其它设备中的任何一个。
计算设备100的实施例包括下列I/O设备130A-130N的任何一个:键盘126、定位设备127、鼠标、触控板、光笔、轨迹球、话筒、绘图板、视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机、或可执行此处描述的方法和系统的任何其他输入/输出设备。在一些实施例中I/O控制器123可连接多个I/O设备130A-130N以便控制一个或多个I/O设备。I/O设备130A-130N的一些实施例被配置为提供存储或安装介质116,而其他实施例可为接收诸如由Twintech Industry公司制造的设备的USB闪存驱动线的USB存储设备提供通用串行总线(USB)。仍在其他实施例中I/O设备130可以是系统总线150和外部通信总线,如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线或串行SCSI总线之间的桥。
在一些实施例中,计算设备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能使用次级计算设备的显示设 备作为用于主计算设备的显示设备124A-124N。仍在计算设备100的其它实施例中,可包括由多个次级计算设备提供的多个显示设备124A-124N并通过网络连接到主计算设备100。
在一些实施例中,计算设备100可执行任意操作系统,而在其他实施例中,计算设备100可执行下列操作系统的任何一个:诸如WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT 4.0、WINDOWS CE、WINDOWS XP和WINDOWS VISTA的版本的MICROSOFT WINDOWS的操作系统;不同发行版本的Unix和Linux操作系统;由苹果计算机出品的MAC OS的任意版本;由国际商业机器公司出品的OS/2;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;任意用于移动计算设备的操作系统,或者任意其它操作系统。仍在其他实施例中,计算设备100可执行多个操作系统。例如计算设备100可执行PARALLELS或能执行或管理执行第一操作系统的虚拟机的又一个虚拟化平台,而计算设备100执行不同于第一操作系统的第二操作系统。
计算设备100可以体现为下列计算设备的任何一个:计算工作站、桌面计算机、膝上型或笔记本计算机、服务器、手持计算机、移动电话、便携通信设备、媒体播放设备、游戏系统、移动计算设备、笔记本、由苹果计算机公司出品的IPOD系列设备、由索尼公司出品的PLAYSTATION系列设备的任何一个、由Nintendo公司出品的Nintendo系列设备的任何一个;由微软公司出品的XBOX系列设备的任何一个或能够通信并有足够的处理器能力和存储容量以执行此处所述的方法和系统的任意其它类型和/或形式的计算或者电信或媒体设备。在其它实施例中,计算设备100可以是诸如下列移动设备的任何一个的移动设备:JAVA使能蜂窝电话或个人数据助理(PDA),诸如i55sr、i58sr,i85s,i88s,i90c,i95c1或im1100,以上这些均由摩托罗拉公司制造;由Kyocera公司制造的6035或7135;由Samsung电子有限公司制造的i300或i330;由Palm公司出品的Treo180、270、600、650、680、700p、700w或750智能电话;或能执行此处所述的方法和系统的任何其他移动计算设备。仍在其他实施例中,计算设备100可以是下列移动计算设备中的任何一个:黑莓的任一系列,或由Research In Motion Limited公司出品的其他手持设备;由苹果计算机公司出品的iPhone;Palm Pre;掌上电脑;掌上电脑电话或任何其他手持移动设备。
图2A示出虚拟化环境的一个实施例。被包括在计算设备201中的硬件 层可包括一个或多个物理磁盘204、一个或多个物理设备206、一个或多个物理处理器208和物理存储器216。在一些实施例中,固件212可被存储在物理存储器216的存储器元件中并且由一个或多个物理处理器208执行。计算设备210还可包括被存储在物理存储器216的存储器元件中并且由一个或多个物理处理器208执行的操作系统214。仍进一步,虚拟机监控程序202可被储在物理存储器216的存储器元件中并且由一个或多个物理处理器208执行。一个或多个虚拟机232A-C(总称为232)在一个或多个物理处理器208上执行。每个虚拟机232可以有虚拟磁盘226A-C和虚拟处理器228A-C。在一些实施例中,第一虚拟机232A可在虚拟处理器228A上执行包括工具堆栈234的控制程序220。在其他实施例中,一个或多个虚拟机232B-C可在虚拟处理器228B-C上执行客户操作系统230A-B。
进一步参考图2A,在一个实施例的更多细节中,所描述的虚拟化环境包括Type2虚拟机监控程序202,或执行在计算设备201上的操作系统214中的虚拟机监控程序。在一些实施例中,Type2虚拟机监控程序在操作系统214环境中执行并且虚拟机在虚拟机监控程序之上的层次执行。在许多实施例中,Type2虚拟机监控程序在用户操作系统的上下文中执行,这样Type2虚拟机监控程序与用户操作系统进行交互。
在一些实施例中,虚拟化计算环境包括计算设备201。计算设备201可以是任何计算设备,在一些实施例中计算设备201可以是此处描述的任何计算机、设备或计算机器。尽管图2A示出了单个计算设备201,在一些实施例中由计算设备201存储和执行的模块、程序、虚拟机和命令可以被不只一个计算设备201执行。仍在其他实施例中,计算设备201可以是服务器群。
在一个实施例中,计算设备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可包括一个或多个物理设备206。物理设备206可以是下列设备中的任何一个:网络接口卡、视频卡、键盘、鼠标、输入设备、显示器、显示设备、扬声器、光驱、存储设备、通用串行总线连接、连接到计算设备201的任何设备、与计算设备201通信的任何设备、打印机、扫描仪或任何其他设备或此处所描述的任何设备。
硬件层210还可包括可包含任何类型存储器的物理存储器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示出了一个实施例,其中虚拟机监控程序202在计算设备201上执行的操作系统214的上下文中执行。在这个实施例中,操作系统214可被称为宿主操作系统214,而其他操作系统可被称为客户操作系统。客户操作系统可包括执行在虚拟机232上的客户操作系统230A-B,和/或控制程序220。
在一些实施例中,计算设备201可包括虚拟机监控程序202。在一些实 施例中,虚拟机监控程序202可以是在计算设备201上由处理器208执行以便管理任一数量的虚拟机的程序。虚拟机监控程序202可以被称为虚拟机监控器,或平台虚拟化软件。在一些实施例中,虚拟机监控程序202可以是监控执行在计算设备上的虚拟机的可执行指令和硬件的任何组合。尽管图2A示出了包括Type2虚拟机监控程序202的虚拟化环境,计算设备201可执行任何其他类型的虚拟机监控程序。例如,计算设备201可以执行包括Type1虚拟机监控程序202的虚拟化环境。在一些实施例中,计算设备201可执行一个或多个虚拟机监控程序202。这些一个或多个虚拟机监控程序202可以是相同类型的虚拟机监控程序,或在其他实施例中可以是不同类型的虚拟机监控程序。
在一些实施例中,虚拟机监控程序202可以以模拟直接访问系统资源的操作系统230或控制程序220的任何方式向在虚拟机232上执行的操作系统230或控制程序220提供虚拟资源。系统资源可包括:物理设备、物理磁盘、物理处理器、物理存储器216和被包含在计算设备201硬件层210中的任何其他组件。在这些实施例中,虚拟机监控程序202可被用来仿真虚拟硬件、划分物理硬件、虚拟化物理硬件和执行访问计算环境的虚拟机。仍在其他实施例中,虚拟机监控程序202为在计算设备201上执行的虚拟机232控制处理器调度和存储器分区。虚拟机监控程序202可包括由位于California,Palo Alto的VMWare公司制造的虚拟机监控程序;XEN虚拟机监控程序,其开发由开源Xen.org社区监督的开源产品;由微软公司提供的HyperV、虚拟服务器和虚拟PC虚拟机监控程序,或其他。在一些实施例中,计算设备201执行虚拟机监控程序202,该虚拟机监控程序创建客户操作系统可在其上执行的虚拟机平台。在这些实施例中,计算设备201可被称为宿主服务器。这样的计算设备的例子是由位于FL,Fort Lauderdale的Citrix Systems公司提供的XEN SERVER。
在一个实施例中,虚拟机监控程序202创建操作系统230在其中执行的虚拟机232A-B(总的表示为232)。例如,在这些实施例的一个中,虚拟机监控程序202加载虚拟机映像以创建虚拟机232。在这些实施例的另一个中,虚拟机监控程序202在虚拟机232中执行操作系统230。仍在这些实施例的另一个中,虚拟机232执行操作系统230。
在一个实施例中,虚拟机监控程序202控制至少一个虚拟机232的执行。在又一个实施例中,虚拟机监控程序202将由计算设备201提供的至少一个 硬件资源的抽象提供给至少一个虚拟机232。这个抽象还可被称为计算设备201上可利用的硬件、内存、处理器和其他系统资源的虚拟化或虚拟视图。在一些实施例中,硬件或硬件资源可以是在硬件层210中可利用的任何硬件资源。在其他实施例中,虚拟机监控程序202控制虚拟机232访问计算设备201中可利用的物理处理器208的方式。控制对物理处理器208的访问可包括确定虚拟机232是否应该访问处理器208以及物理处理器性能如何呈现给虚拟机232。
在一些实施例中,计算设备201可寄载或执行一个或多个虚拟机232。虚拟机232可被称为域、客户和/或DOMAIN U。虚拟机232是一组可执行指令,当其被处理器208执行时,模拟物理计算机的操作,从而虚拟机232可类似物理计算设备执行程序或进程。尽管图2A计算设备201寄载3个虚拟机232的实施例,在其他实施例中,计算设备201可寄载任何数量的虚拟机232。在一些实施例中,虚拟机监控程序202为每个虚拟机232提供物理硬件、内存、处理器和对该虚拟机可利用的其他系统资源的唯一的虚拟视图。在一些实施例中,该唯一的虚拟视图可以基于下列的任何一个:虚拟机许可;向一个或多个虚拟机标识符应用的策略引擎;访问虚拟机的用户;在虚拟机上执行的应用;被虚拟机访问的网络;或任何其他类似标准。在其他实施例中,虚拟机监控程序202向每个虚拟机232提供物理硬件、存储器、处理器和对该虚拟机可利用的其他系统资源的基本上类似的虚拟视图。
每个虚拟机232可包括虚拟磁盘226A-C(总称为226)和虚拟处理器228A-C(总称为228)。在一些实施例中,虚拟磁盘226是计算设备201的一个或多个物理磁盘204的虚拟化视图,或计算设备201的一个或多个物理磁盘204的一部分的虚拟化视图。物理磁盘204的虚拟化视图可由虚拟机监控程序202产生、提供和管理。在一些实施例中,虚拟机监控程序202可为每个虚拟机232提供物理磁盘204的唯一视图。因此,在这些实施例中,当与其他虚拟磁盘226相比较时,被包含在每个虚拟机232中的虚拟磁盘226可以是唯一的。
虚拟处理器228可以是计算设备201的一个或多个物理处理器208的虚拟化视图。在一些实施例中,物理处理器208的虚拟化视图可由虚拟机监控程序202产生、提供和管理。在一些实施例中,虚拟处理器228基本上具有至少一个物理处理器208的所有相同特征。在其他实施例中,虚拟处理器228提供物理处理器208的经修改的视图,从而虚拟处理器228的至少一些特征 可以不同于相应的物理处理器208。
控制程序220可执行至少一个应用来管理和配置在虚拟机232以及在一些实施例中计算设备上执行的客户操作系统。在一些实施例中,控制程序220可被称为控制操作系统、控制域、域0或dom 0。在一些实施例中,控制程序220可以是XEN虚拟机监控程序的DOMAIN 0或DOM 0。控制程序220可以执行管理应用或程序以进一步显示管理员用来访问每个虚拟机232的功能和/和管理虚拟机232的用户接口。在一些实施例中,由管理程序产生的用户接口可被用于终止虚拟机232的执行、为虚拟机232分配资源、为虚拟机232指派权限或者管理与虚拟机232相关的安全证书。在一些实施例中,控制程序220可启动新的虚拟机232或终止正在执行的虚拟机232。在其他实施例中,控制程序220可直接访问硬件层210内的硬件和/或资源。仍在又一个实施例中,控制程序220可与在计算设备210上且在虚拟机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可请求访问物理磁盘204、物理处理器208、存储器216、物理设备206和硬件层210中的任何其他组件。仍在其他实施例中,客户操作系统230可通过由虚拟机监控程序202建立的通信信道与控制程序220通信,诸如,例如通过由虚拟机监控程序202使可利用的多个共享内存页。
在一些实施例中,控制程序220包括用于与计算设备201所提供的网络硬件直接通信的网络后端驱动程序。在这些实施例的一个,网络后端驱动程序处理来自至少一个客户操作系统230的至少一个虚拟机请求。在其他实施例中,控制程序220包括用于与计算设备201上存储元件通信的块后端驱动程序。在这些实施例的一个,块后端驱动程序根据从客户操作系统230接收到的至少一个请求从存储元件中读数据和写数据。
在又一个实施例中,控制程序220包括工具堆栈224。在又一个实施例中,工具堆栈224提供用于与虚拟机监控程序202交互、与其他控制程序220(例如,在第二计算设备201B上)通信或管理计算设备201上的虚拟机232的功能。在又一个实施例中,工具堆栈224包括用于向虚拟机群的管理员提供改善的管理功能的经定制的应用。在一些实施例中,至少一个工具堆栈224和控制程序220包括用于提供远程配置和控制运行在计算设备201上的虚拟机的接口的管理API。在其他实施例中,控制程序220通过工具堆栈224与虚拟机监控程序202通信。
在一个实施例中,虚拟机监控程序202在由虚拟机监控程序202创建的虚拟机232内执行客户操作系统230。在又一个实施例中,客户操作系统230向计算设备201的使用者提供对计算环境中的资源的访问。仍在又一个实施例中,资源包括程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境和对计算设备201可利用的其他资源。仍在又一个实施例中,资源可以通过多种访问方法传送到计算设备201,这些访问方法包括但不限于以下方法:传统直接在计算设备上安装、通过应用流的方法传送到计算设备201上、将第二计算设备201’上资源的执行所产生的输出数据传送到计算设备201且通过表示层协议与计算设备201通信、将通过在第二计算设备201’上执行的虚拟机执行资源所产生的输出数据传送到计算设备201,或者从连接到计算设备201上的诸如USB设备的可移动存储设备 上执行或通过在设备201上执行的虚拟机执行并且产生输出数据。在一些实施例中,计算设备201传输由资源的执行所产生的输出数据到另一个计算设备201’。
在一个实施例中,客户操作系统230与该客户操作系统230在其上执行的虚拟机结合在一起,形成意识不到其是虚拟机的完全虚拟化的虚拟机;这样的机器可被称为“Domain U HVM(硬件虚拟机)虚拟机”。在又一个实施例中,完全虚拟化机包括模拟基本输入/输出系统(BIOS)的软件以便在完全虚拟化机中执行操作系统。仍在又一个实施例中,完全虚拟化机可包括提供与虚拟机监控程序202通信的功能的驱动程序。在这样的实施例中,驱动程序典型地意识到自己执行在虚拟化的环境中。
在又一个实施例中,客户操作系统230与该客户操作系统230在其上所执行的虚拟机结合在一起,形成意识到其是虚拟机的超虚拟化(paravirtualized)的虚拟机;这样的机器可被称为“Domain U PV虚拟机”。在又一个实施例中,超虚拟化机包括完全虚拟化机中所不包含的另外的驱动程序。仍在又一个实施例中,超虚拟化机包括如上所述的被包含在控制程序220中的网络后端驱动程序和块驱动程序。
图2B中所示的是说明Type1虚拟机监控程序202的虚拟化环境的又一个实施例。在计算设备201上执行的虚拟机监控程序202可以直接访问硬件层210中的硬件和资源。由虚拟机监控程序202管理的虚拟机232可以是不安全的虚拟机232B和/或安全虚拟机232C。尽管图2A所描述的虚拟化环境中图示了宿主操作系统214,图2B中的虚拟化环境的实施例不执行宿主操作系统。
进一步参考图2B,更详细地,虚拟化环境包括Type1虚拟机监控程序202。在一些实施例中Type1虚拟机监控程序202执行在“裸金属”上,从而虚拟机监控程序202可以直接访问计算设备201上执行的所有应用和进程、计算设备201上所有资源和计算设备201上所有硬件或与计算设备201通信的所有硬件。尽管Type2虚拟机监控程序202通过宿主操作系统214访问系统资源,Type1虚拟机监控程序202可直接访问所有系统资源。Type1虚拟机监控程序202可直接执行在计算设备201的一个或多个物理处理器上,并且可包括存储在物理存储器216中的程序数据。
在采用Type1虚拟机监控程序202配置的虚拟化环境中,宿主操作系统可被一个或多个虚拟机232所执行。这样计算设备201的使用者可以指派一 个或多个虚拟机232作为该使用者的个人机器。这个虚拟机可通过允许用户以与用户通过宿主操作系统与计算设备201交互的基本上相同方式来与计算设备交互来模拟宿主操作系统。
虚拟机232可以是不安全的虚拟机232B和安全的虚拟机232C。尽管图2B示出了安全的虚拟机和不安全的虚拟机,有时它们也被称为有特权的和无特权的虚拟机。在一些实施例中,可基于虚拟机与在相同虚拟化环境中执行的其他虚拟机的比较来确定虚拟机的安全。例如,要是第一虚拟机访问资源池则第二虚拟机不访问相同的资源池;当第一虚拟机被认为是安全虚拟机232A时第二虚拟机可被认为是不安全的虚拟机232B。在一些实施例中,虚拟机323访问一个或多个系统资源的能力可使用由控制程序220或虚拟机监控程序202产生的配置接口来进行配置。在其他实施例中,虚拟机232可承受的访问量可以是回顾下列标准集的任意集的结果:访问虚拟机的用户、在虚拟机上执行的一个或多个应用、虚拟机标识符、基于一个或多个因素指派给虚拟机的风险等级或任何其他类似标准。
在一些实施例中,不安全虚拟机232B可被阻止访问安全虚拟机232A可以访问的资源、硬件、存储器位置和应用。例如安全虚拟机232C可访问一个或多个公司资源,而不安全虚拟机232B不能访问任何公司资源。
图3所示的是包括在虚拟化环境302执行的计算设备201和执行虚拟桌面架构(VDI)平台310的计算设备203以及性能监控系统316的系统的一个实施例。在计算设备201上执行的虚拟化环境302可包括此处所描述的任一虚拟化环境。图示实施例描述了包括虚拟机监控程序202、控制虚拟机232A、一个或多个附加虚拟机232B的虚拟化环境302。控制虚拟机232A可包括与和元数据322相关联的虚拟磁盘226A通信的控制程序220。控制程序220可进一步包括可存储和虚拟化环境302的虚拟磁盘226相关联的元数据322的磁盘类型数据库350。附加虚拟机232B可执行与和元数据322相关联的虚拟磁盘226B通信的客户操作系统230A。计算设备201可包括与虚拟机监控程序202相接口并且包括存储子系统316的硬件层210。另一个计算设备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。
图3示出了包括虚拟化环境302的计算设备302,该虚拟化环境302包括诸如此处所描述的任一控制虚拟机232的控制虚拟机232。控制虚拟机232可执行诸如此处所述的任一控制程序220的控制程序220,并且可包括诸如此处所述的任一虚拟磁盘226的虚拟磁盘226。尽管图3图示了包括控制虚拟机232A和另一个虚拟机232B的虚拟化环境302,在一些实施例中,虚拟化环境302可包括任何数量的虚拟机232。虚拟机232可执行诸如此处所描述的任一客户操作系统230的客户操作系统230,并且可包括诸如此处所述的任一虚拟磁盘226的虚拟磁盘226。
在一些实施例中,硬件层210包括存储子系统310。在一个实施例中,存储子系统316可以是包括计算设备201的物理硬盘以及管理读写那些物理磁盘的管理程序的系统。仍在其他实施例中,存储子系统316可包括计算设备的任何物理存储仓库,该物理存储仓库包括永久性存储器存储、暂时存储器存储、磁盘驱动器(例如,光盘、软盘、磁带),硬盘、外部硬驱动、闪存、网络附加存储、存储区域网络或计算设备201可访问的任何其他存储仓库。当存储子系统316根据被包含在虚拟机232中的虚拟磁盘226优化存储器特性时,可包括确定读/写计算设备201的物理磁盘的优化方式以便服务于访问虚拟磁盘226的请求。
在一些实施例中,存储子系统316可选择存储优化以优化物理存储器资源的管理。在这些实施例中,虚拟化环境302不选择存储优化而是传递磁盘类型数据和虚拟盘226信息到存储子系统316以便于子系统316可以选择存 储优化。取决于可利用存储的类型和虚拟磁盘226的磁盘类型,存储子系统316可具访问不同的存储优化。通过插件或其他模块化应用可以利用这些优化。存储子系统316可以使用关于虚拟磁盘226磁盘类型和计算设备201的物理存储的数量、类型及其上的限制的信息来选择合适的存储优化。
在一个实施例中,被包含在每个虚拟机232中的虚拟磁盘226还可存储、包含元数据322或与之相关联。元数据322可被存储在控制程序220中的磁盘类型数据库350中,或者被存储在计算设备201的任何集中式存储仓库中。例如,元数据322可被存储在控制虚拟机232的存储仓库中,或虚拟机监控程序202可访问的存储仓库中,或任何其他类似存储机制。在一些实施例中,元数据322可被直接存储在虚拟磁盘226上。元数据322可以是任意形式的元数据,例如:电子信息、电子文件、标签、图像、文档、文本文件、列表、或包含信息的电子数据的任何其他形式。元数据322可包含关于虚拟磁盘226的信息,例如磁盘类型、和磁盘相关联的功能特性、用于磁盘的压缩方案,或关于磁盘的任何其他信息。
在一些实施例中,元数据322被存储在控制程序220的上下文中所存储的磁盘类型数据库350中。在其他实施例中,磁盘类型数据库350可被存储在控制虚拟机232A中或者可被虚拟化环境302中的每个虚拟机232和控制程序220访问的任何集中式存储区域。磁盘类型数据库350可以是任何数据库,且在一些实施例中可以是任何存储仓库。被存储在磁盘类型数据库350中的元数据322可以是此处所描述的任何类型的元数据322,以及可以是和虚拟化环境302的虚拟磁盘226相关联的元数据322。尽管图3描述了单台物理机器201上的虚拟化环境302,在其他实施例中,存储元数据322的数据库350可作为磁盘类型数据库350为不在同一物理机器201上执行的虚拟机232中的虚拟磁盘226存储元数据322。在其他实施例中,磁盘类型数据库350可为多个虚拟化环境302中多个虚拟磁盘226存储元数据322,其中虚拟化环境可以在不同的和分开的物理计算机上执行。仍在其他实施例中,磁盘类型数据库350可位于远离计算设备201的计算机或存储设备上。
在一个实施例中,每个虚拟磁盘226可有磁盘类型。磁盘类型是虚拟磁盘执行的功能的表征。在一些实施例中,磁盘类型可以涉及虚拟磁盘226的基本用途。尽管磁盘类型可指示基本功能或目的,在一些实施例中虚拟磁盘226可执行没有列入被指派给虚拟磁盘226的磁盘类型的典型特性的范围内的其他功能。下面的图表说明了示例磁盘类型和用于该磁盘类型的典型的存 储优化。这个图表不是决定每种可能的磁盘类型或存储优化,而是描述磁盘类型和伴随的存储优化的实施例。
图表1:磁盘类型/存储优化实施例
如上面的图表1所示,在一个实施例中具有识别虚拟磁盘226为OS映像的磁盘类型的磁盘可以通过确定应该创建共同父本的本地的存储器内高速缓存来进行优化。在这个实施例中,所选择的优化可基于许多OS映像是从包含基本程序包的“规范标准”映像(“gold standard”image)而被创建的假设来进行选择。因此,与具有这个虚拟磁盘的虚拟机在同一虚拟化环境中执行的其他虚拟机也包含从基本上同一个“规范标准”映像创建的OS映像,这是有很高可能性的。OS映像虚拟磁盘226的特征能导致确定优化存储子系统的方式可以是创建快照链中磁盘父本的存储器内(in-memory)按主机(per-host)的高速缓存。通过以这种方式优化存储系统316,存储系统316现在可从“规范标准”磁盘的单个存储器内高速缓存读取而不是不得不从虚拟化环境302的每个虚拟机磁盘226读取。而且,通过优化存储子系统316,系统可以被这样优化:由于控制程序220只需从OS的单个“规范标准”高速缓存读取,所以可减少虚拟机232启动时间。类似地,因为当所请求的信息涉及OS映像时,每个进程或应用不是必须从每个虚拟机232读取,这些进程和应用而是可从“规范标准”高速缓存读取,所以输入/输出操作的数量可以被减少。因此在这个实施例中,高速缓存虚拟磁盘的父映像可导致系统优化,例如被减少的启动时间,被减少的输入/输出操作、被减少的读请求的数量和将OS映像存储划分到虚拟化环境302中的单个位置。
还是如图表1所示,具有识别虚拟磁盘226为非持久性高速缓存的磁盘类型的磁盘的实施例。在一个实施例中,有用于非持久性高速缓存虚拟磁盘226的多个优化存储子系统的方法。图表1描述了可优化存储子系统316的3个示例方法。在一个实施例中,存储子系统316可被允许重排序所发出的 到虚拟磁盘226的写操作。典型地存储子系统316不能重排序由应用发出的到虚拟磁盘226的写操作。这个限制由在操作系统上下文中执行的存储子系统316、操作系统和应用之间的关系引起,导致以写操作被接收的顺序向磁盘提交写操作。实施这个策略确保系统一致性。然而,当虚拟机在崩溃后启动时,存储在虚拟机232的磁盘226上的数据可能被损坏,因此重排序对磁盘226的写操作成为是安全的。在一些方面,允许存储子系统316或在存储子系统316中执行的磁盘调度器具有重排序写操作的能力可以增加存储子系统316服务最大数量的输入/输出操作的能力。通过允许对虚拟磁盘226写操作的重排序以及由此引起的服务最大数量输入/输出操作,对于动作或进程可以减少所要求的存储目标的数量。
在又一个实施例中,当虚拟磁盘226的磁盘类型是非持久性高速缓存时,存储子系统可被允许发出提前的写确认。存储子系统典型地直到写操作已经被提交时才确认对磁盘的写操作。当存在系统崩溃或随后的自发关闭事件时,存储子系统316的这个特性允许应用、操作系统和事务处理系统依赖存储子系统316的这个特性。因此,当写操作被存放在缓冲高速缓存中时,存储子系统316典型地可能不会确认对虚拟磁盘226的该写操作。在系统崩溃后,当写操作被存放在缓冲高速缓存中时以及该写操作被提交到虚拟磁盘226之前确认写操作可能是有益的,因为更快地发出写操作确认,该确认被更快地传输回到发出该写操作的应用或机器。更快的响应时间可允许应用更快地执行,因为应用花更少的时间等待来自存储子系统316的确认。仍在又一个实施例中,非持久性高速缓存磁盘类型可与指引存储子系统316使用本地存储的优化一起工作。存储在非持久性高速缓存磁盘上的数据经常是不包含用户关键的或系统关键的信息的,以及当虚拟机启动时可能是无效的低优先级数据。因此,在多个实施例中,虚拟机232可以不需要磁盘专用于非持久性高速缓存。在这些实施例中,虚拟化环境302可配置虚拟机232和磁盘226使得虚拟机232或环境302中的本地存储可被用作非持久性高速缓存。通过允许本地存储兼作非持久性高速缓存,可以减少部署虚拟机232和它的虚拟磁盘226所必需的昂贵的共享存储的数量,同样地可减少网络上的负载。
图表1也描述了具有用户数据磁盘类型的虚拟磁盘226和存储子系统316优化的示例配对,在该存储子系统316优化方式中以保守的方式管理、修改、删除和访问磁盘数据。用户数据经常可包括诸如用户文档和文件、关键信息、要求大量安全和/或加密的敏感信息,或其他类型信息的信息。因 此存储子系统316可以被优化使得关于虚拟磁盘226所采取的任何动作与用户数据的重要性一致。在一些实施例中,这种优化可包括禁止诸如“重排序写操作”、“提前的写确认”和用户本地存储的其他优化。
在一些实施例中,控制程序220可与VDI平台310建立连接以便控制程序220可接收虚拟机模板232和来自VDI平台310的其他信息。在一些实施例中,该连接可以是控制程序220和VDI平台310在其上通信的通信链路或虚通道。虚通道上所传输的或被流式传输的数据和信息可被封装在诸如此处所描述的任何协议的协议中。在一些实施例中,信息可被封装在诸如由位于Ft.Lauderdale Florida的Citrix Systems公司开发的ICA协议的表示层协议中。在一些实施例中,控制程序220可从VDI平台310流式传输或下载虚拟机信息。尽管图3图示了控制程序220与VDI平台310建立通信连接的系统,但在其他实施例中,诸如VDI客户端的另一个应用可以建立这个通信连接。在这些实施例中,另一个应用可在控制程序220、控制虚拟机232或虚拟机监控程序202中执行。
在一些实施例中,当控制程序220从VDI平台310流式传输或下载虚拟机模板323时,控制程序220可执行使用虚拟机模板323数据的虚拟机,或者控制程序220可使用虚拟机模板323实例化虚拟机的实例。在一些实例中,从虚拟机模板323产生的虚拟机232包括与被包含在虚拟机模板323中的信息基本上相同的信息。因此包含在虚拟机模板323中的数据、虚拟磁盘或任何应用被包含在虚拟机232中。
在一个实施例中,远程计算设备203可执行VDI平台310。VDI平台310可以是能实现和管理虚拟桌面架构的任何平台。在一个实施例中,VDI平台310可与在计算设备203上执行的其他应用或程序通信,并且在一些实施例中,可与性能监控系统316通信。在其他实施例中,VDI平台310可以是由位于Ft.Lauderdale Florida的Citrix Systems公司制造的XEN DESKTOP产品系列提供的任何平台。在一个实施例中,VDI平台310可以是在用户和VDI平台310间建立用户会话,以及为用户会话分配虚拟机232、虚拟桌面和其他类似资源的平台。VDI平台310也可管理被分配给用户会话的虚拟资源并且还可执行负载平衡功能以基于多种标准负载平衡用户会话间的虚拟资源。
在一些实施例中,VDI平台310可管理虚拟机模板池或组(此处总称为虚拟机池318)。这个虚拟机池或组可包括一个、两个或多个虚拟机模板323。 在一些实施例中,虚拟机模板323可以是虚拟机。在其他实施例中,虚拟机模板323可被流式传输或下载到虚拟化环境302中,并且可被配置和执行以产生或实例化虚拟机232。在其他实施例中,虚拟机模板323可是可执行指令、应用或其他计算资源的集合,这些计算资源当被流式传输或下载到虚拟化环境302中时可被配置和执行以产生或实例化虚拟机232。
在一些实施例中,虚拟机模板323可被配置为当虚拟机模板323被克隆时包括与该模板相关联的元数据的拷贝。因此,在一些实施例中,当虚拟机模板323被克隆或复制以创建虚拟机模板323的拷贝时,虚拟磁盘的元数据322被保留。因此,当虚拟机模板323被流式传输或下载到虚拟化环境302时,虚拟化环境302保留虚拟磁盘226的元数据322,并且将存储在元数据322中的磁盘类型传播到从虚拟机模板302创建的虚拟机实例。
在一些实施例中,VDI平台310可管理用户会话池或组314(此处总称为用户会话池314)。用户会话池或组314可包括在用户和VDI平台310之间被创建的一个或多个用户会话304。在一些实施例中,当位于远离计算设备203的客户端计算设备的用户请求虚拟桌面或虚拟机,或者请求访问虚拟桌面或虚拟机时,可产生用户会话304。在其他实施例中,当用户通过远程客户端计算机登录到VDI平台310时可创建用户会话304。仍在其他实施例中包括当用户请求通过虚拟机或虚拟桌面访问可利用的应用或资源时所创建的用户会话304。
在一些实施例中,用户会话304可以是计算设备203和客户机的用户之间的会话,或者是VDI平台310和客户机的用户之间的会话。在这些实施例的每一个中,客户机可以是位于远离计算设备203的计算机,或者客户机可以是在虚拟化环境302中执行的远程计算机201。在一个实施例中,响应于登录VDI平台310的用户请求、访问应用或资源的用户请求,或者用于虚拟机和虚拟桌面的用户请求,VDI平台310可创建用户会话304。用户可从用户会话304中访问VDI平台310的一些方面,类似地,用户可在用户会话304中与被分配给用户的虚拟机232交互。
在一些实施例中,计算设备203可包括可组合来自虚拟机模板318的虚拟机232的虚拟机创建器330。在一些实施例中,在从虚拟机模板323创建虚拟机232后,虚拟机创建器330可从计算机203流式传输虚拟机到虚拟化环境302。尽管图3图示例包括虚拟机创建器330的计算机,但在一些实施例中,计算机203可以不包括虚拟机创建器330。在这些实施例中,控制虚 拟机232可从所接收的虚拟机模板323创建或以其他方式启动虚拟机232。在一些实施例中,虚拟机创建器330可基于用户请求创建虚拟机模板323,或者可以注释或以其他方式修改虚拟机模板323中的虚拟磁盘226以便包含描述该虚拟磁盘226的磁盘类型的元数据。
图4A所示的是用于修改被包含在虚拟机模板323中的虚拟磁盘的方法400的一个实施例。在这个方法中,虚拟机模板可被创建(步骤402),在该虚拟机模板323中的虚拟磁盘226可被修改以包括描述磁盘类型的元数据(步骤404),和该虚拟机模板323可被分配给虚拟桌面架构310的用户(步骤406)。
进一步参考图4A,在一个实施例的更多细节中虚拟机模板可被创建(步骤402)。在一些实施例中,虚拟桌面架构310创建虚拟机模板323,而在其他实施例中虚拟机创建器330创建虚拟机模板323。仍在其他实施例中在虚拟桌面架构310中执行的子程序或应用可创建虚拟机模板323。虚拟机模板323可响应于对虚拟机232的用户请求而被创建。用户规范可被用于确定什么将包含在虚拟机模板323中(例如虚拟磁盘的类型,OS的类型,应用等)。在一个实施例中,虚拟机模板323可响应于访问一个或多个应用或资源的用户请求而被创建。
在创建虚拟机模板时,虚拟桌面架构310可修改被包含在虚拟机模板323中的虚拟磁盘226以便包括描述虚拟磁盘226的磁盘类型的元数据(步骤404)。在一些实施例中,修改虚拟磁盘226可包括扩展虚拟磁盘226的元数据322以包括用于记录虚拟磁盘226的磁盘类型的字段。仍在其他实施例中,修改虚拟磁盘226可包括注释虚拟磁盘226以便包括描述虚拟磁盘226的磁盘类型的元数据322。仍在又一个实施例中,修改虚拟磁盘226可包括产生映射虚拟磁盘226到指定虚拟磁盘类型的元数据322,并且在虚拟磁盘226上存储元数据322。在虚拟磁盘226不是物理磁盘条件下,在虚拟磁盘226上存储元数据322可包括以虚拟磁盘226数据并且以指示元数据322应该表现为被存储在虚拟磁盘226的扇区的指令来存储元数据322。
在一些实施例中,元数据322可被存储在附属虚拟磁盘266的仓库中。当VDI平台310传输或流式传输虚拟机模板323到控制程序220时,VDI平台310也可传输或流式传输与被包含在虚拟机模板323的每个虚拟磁盘226相关联的元数据322。当控制程序220接收到虚拟机模板323和虚拟磁盘元数据322时,其可以在诸如控制程序220的磁盘类型数据库350的数据库中 存储虚拟磁盘元数据322。在其他实施例中,控制程序220可以在可被控制程序220和存储子系统316访问的虚拟化环境的任何存储仓库中存储虚拟磁盘元数据322。一个实施例包括可将元数据322和虚拟机模板323中的虚拟磁盘存储在一起的VDI平台310。在这个实施例中,控制程序在收到来自VDI平台310的虚拟机模板323时可以提取出虚拟磁盘元数据322。一旦控制程序220提取虚拟磁盘元数据322,控制程序220可以将虚拟磁盘元数据322插入到磁盘类型数据库350中。插入虚拟磁盘元数据322可包括在磁盘类型数据库350中生成记录,该记录将虚拟磁盘226与虚拟磁盘元数据322中所识别的磁盘类型相关联。该记录也可包括:包含虚拟磁盘226的虚拟机232的名称;虚拟机232的标识符;虚拟机被分配给其的用户会话或用户的名称,和任何类似信息。
虚拟桌面架构310接着可分配虚拟机给用户(步骤406)。可根据任何类型的标准,例如用户性能指标、虚拟机指标、用户请求等,来选择虚拟机模板323。尽管在一些实施例中虚拟机模板是基于用户信息被分配的,而在其他实施例中,虚拟机模板323可以被随机分配给用户。在一些实施例中,由于为那个用户特别地创建虚拟机模板323,所以方法400不包括分配虚拟机模板给用户的步骤(步骤406),
图4B所示是选择存储优化的方法420的一个实施例。虚拟化环境302可从虚拟机模板323启动虚拟机232的实例(步骤422)。当启动虚拟机232的实例时,虚拟化环境302可获得和读取被包含在虚拟机232中的虚拟磁盘226的元数据322(步骤424)以便确定虚拟磁盘226的磁盘类型(步骤426)。然后,虚拟化环境302可传递该磁盘类型信息到存储子系统316(步骤428),接着,存储子系统316可基于所接收到的磁盘类型选择存储优化(步骤430)。当选择存储优化时,存储子系统316可将经优化的存储附接到虚拟机实例232(步骤432)。
进一步参考图4B,和在一个实施例的更多细节中,虚拟化环境302启动虚拟机232的实例(步骤422)。可基于从虚拟桌面架构310传输到虚拟化环境302的虚拟机模板323来创建虚拟机实例232。因此,当虚拟桌面架构310分配虚拟机模板323给用户时,虚拟桌面架构310接着可传输虚拟机模板323到虚拟化环境302中。当接收到虚拟机模板323时,虚拟化环境302可从虚拟机模板323启动虚拟机232。
从虚拟机模板323启动一个虚拟机232,虚拟化环境302可获得和读取 被包含在虚拟机232的每个虚拟磁盘226的元数据322。获得元数据322可包括从由虚拟磁盘226指定的存储位置读取元数据322。在其他实施例中,读取元数据322可包括从虚拟磁盘226的虚拟存储扇区检索元数据322,其中虚拟存储扇区对应于计算机器上的物理存储仓库。
尽管4B说明在其中获得和读取元数据的方法420,在其他实施例中控制程序220不获得元数据而是向磁盘类型数据库350查询与虚拟机232相关联的磁盘类型信息。这个查询可包括用于查找被包含在所启动的虚拟机232的一个或多个虚拟磁盘226的磁盘类型的相关信息,例如:虚拟机名称或其他标识符;磁盘标识符;和用户或用户会话标识符。
当为虚拟机232的每个虚拟磁盘226检索、获得或以其他方式读取元数据322时,虚拟化环境302可确定虚拟磁盘226的磁盘类型(步骤426)并且传递磁盘类型到存储子系统316(步骤428)。在一些实施例中,虚拟化环境302可通过虚拟机监控程序202且使用与计算机的存储子系统316相接口的应用程序接口来传递磁盘类型到存储子系统316。在其他实施例中,虚拟化环境302可使用在简单发送消息的应用编程接口的字段来传递磁盘类型到存储子系统316。
存储子系统316可从虚拟化环境302接收磁盘类型,并且使用磁盘类型信息选择存储优化(步骤430)。在一些实施例中,存储子系统316可根据此处所描述的任何组合选择优化。在其他实施例中,存储子系统316可根据适合特定磁盘类型的那些存储优化来选择存储优化。
尽管已经参照附图描述和示意了一些示例实施例,应该理解这些实施例仅是说明性的而不限于此处所描述的方法和系统。另外地,可在硬件、可编程设备、固件、软件或上述组合中实现此处描述的方法和系统或它们的部分特征。此处描述的方法和系统或此处描述的方法和系统的一部分也可以在诸如磁介质(例如,硬驱、软驱)、光介质(光盘,数字通用光盘)或半导体存储介质(易失的和非易失的)的处理器可读的存储介质或机器可读的介质中实现。
Claims (20)
1.一种使用指示磁盘的磁盘类型的元数据为虚拟化环境中磁盘选择存储优化的方法,所述方法包括:
由在计算设备上执行的虚拟桌面架构创建包括至少一个虚拟磁盘的虚拟机模板;
由所述虚拟桌面架构响应于创建所述虚拟机模板修改所述至少一个虚拟磁盘以包括描述所述至少一个虚拟磁盘的磁盘类型的元数据;
由虚拟化环境执行使用由所述虚拟桌面架构创建的所述虚拟机模板所创建的虚拟机;
由所述虚拟化环境的存储子系统获得所述至少一个虚拟磁盘的元数据;以及;
由所述存储子系统部分地基于所述元数据中所描述的所述磁盘类型为所述至少一个虚拟磁盘选择存储优化。
2.根据权利要求1所述的方法,还包括复制所述虚拟机模板以创建包括包含描述磁盘类型的元数据的所述至少一个虚拟磁盘的第二虚拟机模板。
3.根据权利要求1所述的方法,还包括根据所述虚拟机附接经优化的存储。
4.根据权利要求1所述的方法,其中选择所述存储优化还包括部分地基于所述磁盘类型和特定的磁盘存储类型选择存储优化。
5.根据权利要求1所述的方法,其中修改所述虚拟磁盘以包括描述磁盘类型的元数据还包括修改所述虚拟磁盘以包括描述操作系统映像磁盘类型的元数据。
6.根据权利要求5所述的方法,其中选择存储优化还包括选择包括创建虚拟磁盘的高速缓存的存储优化。
7.根据权利要求1所述的方法,其中修改所述虚拟磁盘以包括描述磁盘类型的元数据还包括修改所述虚拟磁盘以包括描述非持久性高速缓存磁盘类型的元数据。
8.根据权利要求7所述的方法,其中选择存储优化还包括选择包括重排序写操作和提前的写确认中的任何一个的存储优化。
9.根据权利要求1所述的方法,其中修改所述虚拟磁盘以包括描述磁盘类型的元数据还包括修改所述虚拟磁盘以包括描述映像定制磁盘类型的元数据。
10.根据权利要求9所述的方法,其中选择存储优化还包括选择包括安全措施的存储优化。
11.一种使用指示磁盘的磁盘类型的元数据为虚拟化环境中磁盘选择存储优化的系统,所述系统包括:
在计算设备上执行的虚拟桌面架构,用于:
创建包括至少一个虚拟磁盘的虚拟机模板,
响应于创建所述虚拟机模板,修改所述至少一个虚拟磁盘以包括描述所述至少一个虚拟磁盘的磁盘类型的元数据;以及
在虚拟化环境中执行的虚拟机,所述虚拟机是使用由所述虚拟桌面架构创建的所述虚拟机模板创建的;以及
所述虚拟化环境的存储子系统,用于获得所述至少一个虚拟磁盘的元数据;并且部分地基于所述元数据中所描述的所述磁盘类型为所述至少一个虚拟磁盘选择存储优化。
12.根据权利要求11所述的系统,其中所述虚拟桌面架构复制虚拟机模板以创建包括包含描述磁盘类型的元数据的所述至少一个虚拟磁盘的第二虚拟机模板。
13.根据权利要求11所述的系统,其中所述存储子系统根据所选择的存储优化附接经优化的存储。
14.根据权利要求11所述的系统,其中所述存储子系统部分地基于所述磁盘类型和特定的磁盘存储类型选择所述存储优化。
15.根据权利要求11所述的系统,其中所述元数据描述操作系统映像磁盘类型。
16.根据权利要求15所述的系统,其中所述存储优化包括所述虚拟磁盘的高速缓存。
17.根据权利要求11所述的系统,其中所述元数据描述非持久性高速缓存磁盘类型。
18.根据权利要求17所述的系统,其中所述存储优化包括重排序写操作和提前的写确认中的任何一个。
19.根据权利要求11所述的系统,其中所述元数据描述映像定制磁盘类型。
20.根据权利要求19所述的系统,其中所述存储优化包括安全措施。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/750,089 US8413142B2 (en) | 2010-03-30 | 2010-03-30 | Storage optimization selection within a virtualization environment |
US12/750089 | 2010-03-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102368201A true CN102368201A (zh) | 2012-03-07 |
CN102368201B CN102368201B (zh) | 2014-08-27 |
Family
ID=44202514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110079379.6A Expired - Fee Related CN102368201B (zh) | 2010-03-30 | 2011-03-30 | 虚拟化环境中存储优化选择 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8413142B2 (zh) |
EP (1) | EP2372519B1 (zh) |
CN (1) | CN102368201B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104380255A (zh) * | 2012-05-24 | 2015-02-25 | 国际商业机器公司 | 虚拟机独占缓存 |
US9246992B2 (en) | 2012-04-05 | 2016-01-26 | Huawei Technologies Co., Ltd. | Virtual desktop implementation method, apparatus, and system |
CN110932905A (zh) * | 2019-11-29 | 2020-03-27 | 烽火通信科技股份有限公司 | 一种室外机柜环境监控方法及系统 |
CN113364581A (zh) * | 2020-03-05 | 2021-09-07 | 美光科技公司 | 虚拟化鉴认装置 |
CN113590364A (zh) * | 2021-09-29 | 2021-11-02 | 阿里云计算有限公司 | 一种基于分布式共享内存系统的数据处理方法和装置 |
Families Citing this family (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9959131B2 (en) * | 2009-08-03 | 2018-05-01 | Quantum Corporation | Systems and methods for providing a file system viewing of a storeage environment |
US8473531B2 (en) | 2009-09-03 | 2013-06-25 | Quantum Corporation | Presenting a file system for a file containing items |
US8874891B2 (en) * | 2010-05-20 | 2014-10-28 | Hewlett-Packard Development Company, L.P. | Systems and methods for activation of applications using client-specific data |
US10715457B2 (en) | 2010-06-15 | 2020-07-14 | Oracle International Corporation | Coordination of processes in cloud computing environments |
WO2011159842A2 (en) | 2010-06-15 | 2011-12-22 | Nimbula, Inc. | Virtual computing infrastructure |
US8813072B1 (en) * | 2011-03-18 | 2014-08-19 | DirectPacket Research Inc. | Inverse virtual machine |
KR101228424B1 (ko) * | 2011-05-18 | 2013-01-31 | 백인호 | 모바일 디바이스용 가상 데스크탑 파일 접근 서비스 시스템 및 그 방법 |
KR20130022091A (ko) * | 2011-08-24 | 2013-03-06 | 주식회사 케이티 | 클라우드 컴퓨팅 서버 시스템의 가상머신 제어 장치 및 방법 |
US20130086579A1 (en) * | 2011-09-30 | 2013-04-04 | Virtual Bridges, Inc. | System, method, and computer readable medium for improving virtual desktop infrastructure performance |
US9215153B2 (en) * | 2011-10-04 | 2015-12-15 | International Business Machines Corporation | Providing status information for virtual resource computing environment |
US10073656B2 (en) * | 2012-01-27 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for storage virtualization |
US10326708B2 (en) | 2012-02-10 | 2019-06-18 | Oracle International Corporation | Cloud computing services framework |
US9417891B2 (en) * | 2012-06-11 | 2016-08-16 | Vmware, Inc. | Unified storage/VDI provisioning methodology |
US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
US10225164B2 (en) * | 2012-09-07 | 2019-03-05 | Oracle International Corporation | System and method for providing a cloud computing environment |
US9098322B2 (en) | 2013-03-15 | 2015-08-04 | Bmc Software, Inc. | Managing a server template |
GB2512604A (en) * | 2013-04-03 | 2014-10-08 | Ibm | Flexibly storing defined presets for configuration of a storage controller |
US9619545B2 (en) | 2013-06-28 | 2017-04-11 | Oracle International Corporation | Naïve, client-side sharding with online addition of shards |
CN103389884A (zh) | 2013-07-29 | 2013-11-13 | 华为技术有限公司 | 处理输入/输出请求的方法、宿主机、服务器和虚拟机 |
JP6418419B2 (ja) * | 2014-04-30 | 2018-11-07 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ハードディスクがアプリケーションコードを実行するための方法および装置 |
US9798489B2 (en) * | 2014-07-02 | 2017-10-24 | Hedvig, Inc. | Cloning a virtual disk in a storage platform |
US9483205B2 (en) | 2014-07-02 | 2016-11-01 | Hedvig, Inc. | Writing to a storage platform including a plurality of storage clusters |
US9558085B2 (en) | 2014-07-02 | 2017-01-31 | Hedvig, Inc. | Creating and reverting to a snapshot of a virtual disk |
US9424151B2 (en) | 2014-07-02 | 2016-08-23 | Hedvig, Inc. | Disk failure recovery for virtual disk with policies |
US9875063B2 (en) * | 2014-07-02 | 2018-01-23 | Hedvig, Inc. | Method for writing data to a virtual disk using a controller virtual machine and different storage and communication protocols |
US9864530B2 (en) | 2014-07-02 | 2018-01-09 | Hedvig, Inc. | Method for writing data to virtual disk using a controller virtual machine and different storage and communication protocols on a single storage platform |
US10067722B2 (en) * | 2014-07-02 | 2018-09-04 | Hedvig, Inc | Storage system for provisioning and storing data to a virtual disk |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9715402B2 (en) | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US9413626B2 (en) | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management of resource sizing |
US10545779B2 (en) * | 2015-01-23 | 2020-01-28 | Nec Corporation | Network functions virtualization management and orchestration method, network functions virtualization management and orchestration system, and program |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
CN104660710A (zh) * | 2015-03-13 | 2015-05-27 | 华存数据信息技术有限公司 | 一种虚拟桌面实现方法、系统及相应的服务器 |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
KR101972997B1 (ko) * | 2015-06-19 | 2019-04-29 | 한국전자통신연구원 | 이기종 서버에서의 가상 데스크탑 구동을 위한 프로파일 관리 방법 및 이를 이용한 장치 |
US9965431B2 (en) * | 2015-08-26 | 2018-05-08 | Dell Products L.P. | System and method to improve USB mass storage device arrival acceleration for redirected USB mass storage devices |
US10148755B2 (en) | 2015-08-27 | 2018-12-04 | Dell Products L.P. | System and method to redirect USB mass storage devices in high latency VDI environments |
US9811434B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10235431B2 (en) * | 2016-01-29 | 2019-03-19 | Splunk Inc. | Optimizing index file sizes based on indexed data storage conditions |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US10248174B2 (en) | 2016-05-24 | 2019-04-02 | Hedvig, Inc. | Persistent reservations for virtual disk using multiple targets |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
CN106534351A (zh) * | 2016-12-09 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种支持共享存储的云桌面系统和方法 |
US10909271B2 (en) | 2017-09-28 | 2021-02-02 | Citrix Systems, Inc. | Policy based persistence |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US10848468B1 (en) | 2018-03-05 | 2020-11-24 | Commvault Systems, Inc. | In-flight data encryption/decryption for a distributed storage platform |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11921637B2 (en) * | 2019-05-24 | 2024-03-05 | Texas Instruments Incorporated | Write streaming with cache write acknowledgment in a processor |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
US11855847B2 (en) * | 2022-04-18 | 2023-12-26 | Dell Products L.P. | Method and system for a common-attribute virtual desktop infrastructure (VDI) environment with tiered network access capabilities |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490651B1 (en) * | 2000-03-14 | 2002-12-03 | Maxtor Corporation | Host-based virtual disk drive for improving the performance of a hard disk drive's input/output |
US20070294676A1 (en) * | 2006-06-19 | 2007-12-20 | Ewan Ellis Mellor | Open virtual appliance |
US20080163171A1 (en) * | 2007-01-02 | 2008-07-03 | David Michael Chess | Virtual resource templates |
US20100070978A1 (en) * | 2008-09-12 | 2010-03-18 | Vmware, Inc. | VDI Storage Overcommit And Rebalancing |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2481687A1 (en) | 2002-04-11 | 2003-10-23 | Linuxcare, Inc. | Managing multiple virtual machines |
US8209680B1 (en) * | 2003-04-11 | 2012-06-26 | Vmware, Inc. | System and method for disk imaging on diverse computers |
US7689767B2 (en) * | 2004-09-30 | 2010-03-30 | Symantec Operating Corporation | Method to detect and suggest corrective actions when performance and availability rules are violated in an environment deploying virtualization at multiple levels |
US8370819B2 (en) * | 2005-03-25 | 2013-02-05 | Microsoft Corporation | Mechanism to store information describing a virtual machine in a virtual disk image |
US7606868B1 (en) * | 2006-03-30 | 2009-10-20 | Wmware, Inc. | Universal file access architecture for a heterogeneous computing environment |
US7774391B1 (en) * | 2006-03-30 | 2010-08-10 | Vmware, Inc. | Method of universal file access for a heterogeneous computing environment |
US20070294476A1 (en) * | 2006-06-16 | 2007-12-20 | Corn Vance E | Method For Representing Foreign RAID Configurations |
US8566502B2 (en) * | 2008-05-29 | 2013-10-22 | Vmware, Inc. | Offloading storage operations to storage hardware using a switch |
US8266099B2 (en) * | 2008-05-29 | 2012-09-11 | Vmware, Inc. | Offloading storage operations to storage hardware using a third party server |
US8150801B2 (en) * | 2008-08-20 | 2012-04-03 | Microsoft Corporation | Recovery of a computer that includes virtual disks |
US8364802B1 (en) | 2008-09-23 | 2013-01-29 | Gogrid, LLC | System and method for monitoring a grid of hosting resources in order to facilitate management of the hosting resources |
US8332570B1 (en) * | 2008-09-30 | 2012-12-11 | Symantec Corporation | Methods and systems for defragmenting virtual machine prefetch data on physical storage |
US8055937B2 (en) * | 2008-12-22 | 2011-11-08 | QuorumLabs, Inc. | High availability and disaster recovery using virtualization |
US8327096B2 (en) * | 2008-12-31 | 2012-12-04 | International Business Machines Corporation | Method and system for efficient image customization for mass deployment |
US8099391B1 (en) * | 2009-03-17 | 2012-01-17 | Symantec Corporation | Incremental and differential backups of virtual machine files |
US8321857B1 (en) * | 2009-09-14 | 2012-11-27 | Symantec Corporation | Automated generation of application data for application distribution |
US8250638B2 (en) * | 2010-02-01 | 2012-08-21 | Vmware, Inc. | Maintaining the domain access of a virtual machine |
US20110191522A1 (en) * | 2010-02-02 | 2011-08-04 | Condict Michael N | Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory |
-
2010
- 2010-03-30 US US12/750,089 patent/US8413142B2/en active Active
-
2011
- 2011-03-23 EP EP11159381.0A patent/EP2372519B1/en active Active
- 2011-03-30 CN CN201110079379.6A patent/CN102368201B/zh not_active Expired - Fee Related
-
2013
- 2013-03-13 US US13/799,776 patent/US9286087B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490651B1 (en) * | 2000-03-14 | 2002-12-03 | Maxtor Corporation | Host-based virtual disk drive for improving the performance of a hard disk drive's input/output |
US20070294676A1 (en) * | 2006-06-19 | 2007-12-20 | Ewan Ellis Mellor | Open virtual appliance |
US20080163171A1 (en) * | 2007-01-02 | 2008-07-03 | David Michael Chess | Virtual resource templates |
US20100070978A1 (en) * | 2008-09-12 | 2010-03-18 | Vmware, Inc. | VDI Storage Overcommit And Rebalancing |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9246992B2 (en) | 2012-04-05 | 2016-01-26 | Huawei Technologies Co., Ltd. | Virtual desktop implementation method, apparatus, and system |
CN104380255A (zh) * | 2012-05-24 | 2015-02-25 | 国际商业机器公司 | 虚拟机独占缓存 |
CN110932905A (zh) * | 2019-11-29 | 2020-03-27 | 烽火通信科技股份有限公司 | 一种室外机柜环境监控方法及系统 |
CN110932905B (zh) * | 2019-11-29 | 2022-09-02 | 烽火通信科技股份有限公司 | 一种室外机柜环境监控方法及系统 |
CN113364581A (zh) * | 2020-03-05 | 2021-09-07 | 美光科技公司 | 虚拟化鉴认装置 |
US11997217B2 (en) | 2020-03-05 | 2024-05-28 | Micron Technology, Inc. | Virtualized authentication device |
CN113590364A (zh) * | 2021-09-29 | 2021-11-02 | 阿里云计算有限公司 | 一种基于分布式共享内存系统的数据处理方法和装置 |
CN113590364B (zh) * | 2021-09-29 | 2021-12-21 | 阿里云计算有限公司 | 一种基于分布式共享内存系统的数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2372519A3 (en) | 2012-10-03 |
US8413142B2 (en) | 2013-04-02 |
EP2372519B1 (en) | 2018-06-20 |
CN102368201B (zh) | 2014-08-27 |
US20130198748A1 (en) | 2013-08-01 |
EP2372519A2 (en) | 2011-10-05 |
US20110246984A1 (en) | 2011-10-06 |
US9286087B2 (en) | 2016-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102368201B (zh) | 虚拟化环境中存储优化选择 | |
CN102202049B (zh) | 用于多虚拟机设备的网络策略实现 | |
CN102446121A (zh) | 根据用户指定的虚拟机指标分配虚拟机 | |
JP6883111B2 (ja) | イベント駆動型ブロックチェーンワークフロー処理 | |
CN102037710B (zh) | 用于远程处理多媒体插件调用的方法和系统 | |
KR102319172B1 (ko) | 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법 | |
CN102754077A (zh) | 可从外部媒体装置引导的安全虚拟化环境 | |
CN104067288B (zh) | 存储加密方法 | |
US8473585B1 (en) | Multi-threaded optimization for data upload | |
JP6518346B2 (ja) | 分散型コンピューティング環境における仮想マシンインスタンス上のコマンドの実行 | |
CN105677250B (zh) | 对象存储系统中的对象数据的更新方法和更新装置 | |
US20170124103A1 (en) | Method and Apparatus for Creating System Disk Snapshot of Virtual Machine | |
US10127243B2 (en) | Fast recovery using self-describing replica files in a distributed storage system | |
JP2019517042A (ja) | オフラインでのハイブリッドアプリケーションへのアクセスの提供 | |
CN111901294A (zh) | 一种构建在线机器学习项目的方法及机器学习系统 | |
CN104067231A (zh) | 使用虚拟交换代理控制网络接口 | |
CN104487943A (zh) | 受信文件间接操作 | |
CN104981776A (zh) | 对个人虚拟磁盘的系统更新 | |
US20180276057A1 (en) | Enhanced copy-and-paste | |
CN109597640B (zh) | 一种应用程序的账号管理方法、装置、设备和介质 | |
WO2013190405A1 (en) | Storage collaboration and access | |
CN103119551A (zh) | 优化的恢复 | |
US20230058148A1 (en) | Detection and resolution of data synchronization conflicts | |
CN104115471A (zh) | 托管的服务中的客户端带宽模拟 | |
CN110851853B (zh) | 一种数据隔离方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140827 |
|
CF01 | Termination of patent right due to non-payment of annual fee |