CN104823163B - 基于元数据的虚拟机配置 - Google Patents

基于元数据的虚拟机配置 Download PDF

Info

Publication number
CN104823163B
CN104823163B CN201380063264.5A CN201380063264A CN104823163B CN 104823163 B CN104823163 B CN 104823163B CN 201380063264 A CN201380063264 A CN 201380063264A CN 104823163 B CN104823163 B CN 104823163B
Authority
CN
China
Prior art keywords
metadata
identifier
key
virtual machine
value pair
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380063264.5A
Other languages
English (en)
Other versions
CN104823163A (zh
Inventor
约瑟夫·S·贝达三世
克雷格·I·麦克卢基
克里斯托弗·L·埃克
马丁·R·甘恩霍尔姆
埃文·K·安德森
马修·A·米尔斯
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Priority to CN201811268712.6A priority Critical patent/CN109375986B/zh
Publication of CN104823163A publication Critical patent/CN104823163A/zh
Application granted granted Critical
Publication of CN104823163B publication Critical patent/CN104823163B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/144Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/156Query results presentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

方法、系统和装置,包括在计算机存储介质上进行编码的计算机程序,用于将多个元数据集合中的一个或多个与一个或多个相应标识符相关联,其中每个元数据集合包括元数据属性与元数据值的一个或多个配对,并且其中每个标识符是项目标识符、标签标识符或实例标识符之一;基于与虚拟机实例相关联的标识符信息识别要提供至该虚拟机实例的一个或多个元数据值,其中该标识符信息指定项目标识符、标签标识符和实例标识符中的一个或多个,并且其中每个所识别的元数据值属于与该标识符信息中所指定的标识符相关联的元数据集合;并且向该虚拟机实例提供所识别的一个或多个元数据值。

Description

基于元数据的虚拟机配置
技术领域
本说明书涉及云计算。
背景技术
云计算是基于网络的计算,其中通常存放在数据中心或“服务器群”中的大型服务器集合按照需要向终端用户提供计算资源和数据存储。一些云计算服务向终端用户提供诸如文字处理器以及其它常用应用之类的软件应用,所述终端用户通过web浏览器或其它客户端侧软件与所述应用进行交互。用户的电子数据文件通常存储在该服务器群中而不是用户的计算设备上。在服务器群上保存软件应用和用户数据简化了终端用户计算设备的管理。一些云计算服务允许终端用户在虚拟机中执行软件应用。
发明内容
用户能够定义要在配置虚拟机实例时使用的元数据,例如将元数据属性与元数据值的配对。如该说明书中所使用的,术语元数据属性与元数据值的配对、以及元数据键值对能够互换地使用。每个元数据键值对能够与一个或多个标识符相关联。该标识符例如可以包括引用一个或多个虚拟机实例与之相关联的特定项目的项目标识符、引用特定虚拟机实例的实例标识符、或者引用一个或多个虚拟机实例与之相关联的特定标签的标签标识符。每个元数据键值对存储在由特定标识符所识别的元数据集合中。例如,与项目标识符P1和标签标识符T1相关联的元数据键值对存储在由项目标识符P1所识别的第一元数据集合以及由标签标识符T1所识别的第二元数据集合中。
当对虚拟机实例进行初始化时,如以上所描述的,用户能够将每个虚拟机实例与例如项目标识符、实例标识符或标签标识符的一个或多个标识符相关联。每个虚拟机实例例如能够从元数据服务器获得元数据。在一些实施方式中,与特定标识符相关联的虚拟机实例能够获得同样与该特定标识符相关联的元数据。每个虚拟机示例能够应用所获得的元数据键值对,以对与相应虚拟机实例相关联的各种设置进行配置。
总体上,该说明书中所描述的主题的一个方面能够被体现为方法,该方法包括动作:将多个元数据集合中的一个或多个与一个或多个相应标识符相关联,其中每个元数据集合包括元数据属性与元数据值的一个或多个配对,并且其中每个标识符是项目标识符、标签标识符或实例标识符之一;基于与虚拟机实例相关联的标识符信息识别要提供至该虚拟机实例的一个或多个元数据值,其中该标识符信息指定项目标识符、标签标识符和实例标识符中的一个或多个,并且其中每个所识别的元数据值属于与该标识符信息中所指定的标识符相关联的元数据集合;并且向该虚拟机实例提供所识别的一个或多个元数据值。这个方面的其他实施例包括对应的系统、装置和计算机程序产品。
这些和其它实施例可选地可以包括以下特征中的一个或多个。该方法进一步包括:从该虚拟机实例接收包括标识符信息的元数据查询;以及响应于接收到该元数据查询而识别该一个或多个元数据值。该元数据查询是使用Hanging GET操作来通信的。该方法进一步包括:接收包括一个或多个用户所指定的标识符、以及一个或多个用户所指定的元数据值与元数据属性的配对的数据;生成包括该一个或多个用户所指定的配对的元数据集合;以及将所生成的元数据集合与该用户所指定的标识符相关联。元数据集合包括第一元数据集合和第二元数据集合,该第一元数据集合与第一标识符相关联并且包括第一元数据属性与第一元数据值的配对,并且第二元数据集合与第二标识符相关联并且包括第一元数据属性与第二元数据值的配对,该第一元数据值不同于该第二元数据值。
该方法进一步包括将该第一元数据值和第二元数据值提供至该虚拟机实例。该方法进一步包括基于对该第一标识符和第二标识符的评估而确定该第一元数据集合具有比第二元数据集合更高的优先级级别;并且将第一元数据值而不是第二元数据值提供至该虚拟机实例。该第一标识符是实例标识符或标签标识符,而该第二标识符是项目标识符,或者该第一标识符是实例标识符,而该第二标识符是标签标识符或项目标识符。该方法进一步包括:接收指定标识符、以及元数据属性与元数据值的新的配对的数据,以及更新与该数据中所执行的标识符相关联的元数据集合以包括该新的配对。
该说明书中所描述主题的特定实施例能够被实施,以便实现以下优势中的一种或多种。虚拟机角色能够基于它们相应的标签标识符进行定义。用户能够指定元数据键值对,并且所指定的元数据键值对能够被用来对一个或多个虚拟机实例的设置进行共同配置。虚拟机示例的设置和角色能够在更新时被动态更新。元数据能够与项目标识符或标签标识符相关联以简化多个虚拟机实例的共同配置和属性的实施。在虚拟机实例并未访问与实例标识符相关联的元数据的情况下,或者如果对元数据的访问被策略所禁止,则能够简化使用标准配置的虚拟机实例的审核。
该说明书的主题的一个或多个实施例的细节在附图和以下描述中给出。该主题的其它特征、方面和优势将从说明书、附图和权利要求而变得显而易见。
附图说明
图1是示例虚拟机系统的示意性图示。
图2是图示使用元数据属性与元数据值的配对的虚拟机实例的配置的泳道图。
图3是用于使用元数据属性与元数据值的配对配置虚拟机实例的示例处理的流程图。
图4是示例主机机器的示意图。
各图中同样的附图标记和指定形式指示同样的元素。
具体实施方式
图1是示例虚拟机系统100的示意性图示。系统100包括一个或多个主机机器,例如主机机器102和主机机器104。一般来讲,主机机器是一个或多个数据处理装置,诸如机架安装的服务器或其它计算设备。数据处理装置能够处于不同的物理位置并且可以具有不同的能力和计算机架构。主机机器可以通过内部数据通信网络116互相通信。该内部网络例如可以包括一个或多个有线网络—例如,以太网,或者无线网络—例如WiFi。在一些实施方式中,内部网络116是企业内部网。主机机器还可以通过一个或多个网关120与诸如互联网122的外部网络上的设备进行通信,网关120是负责对内部网络116和外部网络122之间的数据通信进行路由的数据处理装置。其它类型的外部网络也是可能的。
每个主机机器102、104执行主机操作系统106、108。主机操作系统106、108管理主机机器资源。在该示例中,主机操作系统106、108运行例如虚拟机监视器(“VMM”)或监管程序的软件,其对基础的主机机器硬件进行虚拟化并且管理一个或多个虚拟机(“VM”)实例的同时执行。在该示例中,主机操作系统106管理两个VM实例—VM 110和VM 112,而不同的主机操作系统108则管理单个VM 114。VM实例能够从一个主机机器迁移至另一个主机机器。此外,单个VM实例能够由多个主机机器进行管理。一个主机机器通常能够管理多个虚拟机,然而,数量可能基于主机机器的物理资源而受到限制。
每个VM实例提供对物理硬件系统的仿真,该物理硬件系统可基于主机机器的硬件架构但是并非需要如此。硬件的仿真版本被称作虚拟机,例如虚拟硬件110a、112a和114a。由虚拟硬件所执行的软件被称作访客软件。在一些实施方式中,访客软件无法确定其正在被虚拟硬件还是被物理主机机器所执行。如果在VM实例中执行的访客软件或者VM实例自身被盗用、出现故障或者被中断,在该主机机器上执行的其它VM实例并不会受到影响。主机机器的(多个)微处理器可以包括多个处理器级别的机制而使得虚拟硬件能够通过允许访客软件指令直接在主机机器的微处理器上执行而并不要求进行代码重写、重新编译或指令仿真而有效地执行软件应用。
例如VM 110、112和114的每个VM实例从基础主机操作系统的虚拟存储器被分配以虚拟存储器页面的集合,并且从一个或多个虚拟磁盘驱动器被分配以虚拟磁盘分块以供VM实例上所执行的访客软件所使用。例如,主机操作系统106向VM 110和VM 112分配存储器页面和磁盘分块,而主机操作系统108则对VM 114进行同样操作。在一些实施方式中,给定VM实例无法访问指配给其它VM的虚拟存储器页面。例如,VM 110无法访问已经被指配给VM112的存储器页面。虚拟磁盘驱动器经过VM示例的重启也能够被持久保留。虚拟磁盘分块例如在耦合至主机机器或者通过内部网络116可用的物理磁盘驱动器上进行分配。除了虚拟存储器和磁盘资源之外,VM示例能够被分配以网络地址,它们各自的访客软件能够通过所述网络地址与能够通过内部网络116或互联网122进行联系的其它处理进行通信。例如,在VM 110上执行的访客软件能够与在VM 112或VM 114上执行的访客软件进行通信。在一些实施方式中,每个VM实例被分配以一个或多个唯一的互联网协议(IP)版本4或版本6地址。使用其它的地址方案是可能的。例如,VM实例的IP地址能够在内部网络116上进行寻址,并且在一些实施方式中,在地址使用适当路由协议进行广播的情况下能够在互联网122上进行寻址。
VM实例的访客软件可以包括访客操作系统,例如访客操作系统110b、112b和114b,访客操作系统是控制例如访客应用110c、112c和114c在相应访客软件应用在VM实例中的执行并且向那些应用提供服务的软件。例如,访客操作系统可以是UNIX操作系统的变化形式。例如Microsoft Windows的其它操作系统以及这些操作系统的不同版本能够被用作访客操作系统。每个VM实例能够执行相同的访客操作系统或者不同的访客操作系统。在另外的实施方式中,VM实例并不需要访客操作系统以便执行访客软件应用。访客操作系统对诸如网络和虚拟磁盘存储之类的资源的访问由基础主机操作系统所控制。
通过图示的方式并且参考虚拟机110,例如,当访客应用110c或访客操作系统110b尝试在虚拟磁盘上执行输入/输出操作、发起网络通信或者执行特权操作时,虚拟硬件110a被中断而使得主机操作系统106能够代表虚拟机110执行动作。主机操作系统106能够用在内核处理空间106b、用户处理空间106a或两者中执行的处理来执行这些动作。
例如,内核处理空间106b是为主机操作系统106的内核106d所保留的虚拟存储器,内核106d可以包括内核扩展和设备驱动器。内核处理空间具有提升的特权,有时被称作“监管程序模式”;也就是说,内核106d能够针对用户处理空间106a中所运行的处理执行某些脱离了限制的特权操作。特权操作的示例包括访问不同地址空间,访问主机机器中诸如存储器管理单元之类的特殊功能处理器单元,等等。用户处理空间106a是为用户模式处理所保留的虚拟存储器的单独部分。用户模式处理无法直接执行特权操作。
在各种实施方式中,VM实例的网络通信功能的一部分以例如通信处理106c的通信处理来实施。在一些实施方式中,通信处理在例如主机操作系统106的主机操作系统的例如用户处理空间106a的用户处理空间中执行。在其它实施方式中,通信处理能够在主机操作系统的例如内核处理空间106d的内核处理空间中执行。在又另外的实施方式中,通信处理的某个部分在用户处理空间中执行,而另一部分在内核处理空间中执行。
系统100包括元数据服务器130,元数据服务器130管理并提供针对系统100中的VM实例的元数据的访问。元数据服务器130能够被实施为在系统100中的一个或多个计算机上安装的一个或多个计算机程序。元数据服务器130例如可以安装在特定的主机机器上。元数据服务器130还能够被实施为系统100中的VM实例。通常,元数据服务器130与元数据服务器130所服务的VM实例处于相同的数据中心之中,虽然元数据服务器130也能够位于其它地方并且例如能够通过互联网进行访问。
元数据可以使用任何适当的网络通信协议被写入元数据服务器130或者从其进行读取。在一些实施方式中,使用常规的超文本传输协议(HTTP)的“GET”和“PUT”命令来实施读取和写入命令。在一些实施方式中,用户能够使用应用编程接口(API)向元数据服务器130提供定制元数据。
元数据的每个元素是键值对。键或者属性唯一地识别元数据的类型。值则可以是一条或多条数据,例如文本串。例如,用户能够指定元数据键“hostname”以及相对应的元数据值“myinst.myproject.mydomain.internal”。用户还能够将每个键值对与一个或多个相应标识符相关联。在一些实施方式中,一个或多个标识符包括项目标识符、实例标识符或标签标识符。例如,项目标识符能够引用用户所创建的特定项目。实例标识符能够引用特定虚拟机实例。标签标识符能够引用一个或多个机器实例与之相关联的特定标签,例如“front-end webserver”或“sql server”。在一些实施方式中,用户能够指定可能与键值对相关联的定制标识符。例如,用户能够指定能够与元数据键“hostname”相关联的机器类型标识符。
在一些实施方式中,对与一个或多个标识符相关联的元数据的访问被限制于同样与该一个或多个标识符相关联的VM实例。例如,与项目标识符P1相关联的VM实例能够访问与项目标识符P1相关联的元数据,但是无法访问与项目标识符P2相关联的元数据。类似地,相似的标签标识符能够与不同的项目标识符相关联。因此,例如,第一标签标识符“front-end webserver”可以与项目标识符P1相关联,而第二标签标识符“front-end webserver”可以与项目标识符P2相关联。在该示例中,与项目P1中的第一标签标识符“front-endwebserver”相关联的元数据和与项目P2中的第二标签标识符“front-end webserver”相关联的元数据无关。因此,与项目标识符P1相关联的VM实例无法访问与项目标识符P2相关联的元数据。类似地,与项目标识符P2相关联的VM实例无法访问与项目标识符P1相关联的元数据。这对于多组织用户系统而言是有用的特性,因为其确保了元数据保持机密并且无法被并非与正确标识符相关联的VM实例所看到。
元数据服务器130被配置为接收用户所指定的键值对及其相对应的标识符。在一些实施方式中,元数据服务器130基于所接收的键值对各自的标识符对它们进行归类并且存储在一个或多个元数据集合中。例如,与项目标识符P1和标签标识符T1相关联的键值对能够被存储在与项目标识符P1相对应的第一元数据集合以及与标签标识符T1相对应的第二元数据集合中。
元数据服务器130还被配置为从VM实例接收请求元数据的查询。用户能够通过将VM实例与一个或多个相应标识符相关联而定制在系统100中运行的VM实例的配置,所述标识符例如是如上所述的项目标识符、实例标识符或标签标识符。例如,用户能够指定VM实例与项目标识符P1、实例标识符M1以及标签标识符“sql server”和“front-end webserver”相关联。在一些实施方式中,每个VM实例仅能够与一个项目标识符相关联。
在启动时,VM实例能够查询元数据服务器130以获得与关联该VM实例的相同标识符相关联的元数据。因此,例如,与项目标识符P1、实例标识符M1以及标签标识符“sqlserver”和“front-end webserver”相关联的VM实例能够查询元数据服务器130以获得同样与项目标识符P1、实例标识符M1以及标签标识符“sql server”和“front-end webserver”相关联的元数据。响应于接收到该查询,元数据服务器130能够识别出分别与项目标识符P1、实例标识符M1以及标签标识符“sql server”和“front-end webserver”相对应的元数据集合。元数据服务器130能够将归类于所识别的元数据集合中的元数据提供给VM实例。该VM实例能够应用所接收到的元数据以配置与VM实例相关联的各种设置。
例如,用户能够将第一元数据键“sshKeys”和例如“joe:ssh-rsa<SSH key>”的描述用户账户和对应的SSH公钥的对应值与项目标识符P1相关联。用户还能够将第二元数据键“allowedHosts”和例如“192.0.2.24/30”的描述允许连接至VM实例的互联网协议(IP)地址的对应值与项目标识符P1相关联。该用户然后能够将第三元数据键“startupScript”和例如配置并启动web服务器的shell脚本与标签标识符“web”相关联。最后,该用户能够将第四元数据键“allowedHosts”和例如“0.0.0.0/0”的描述允许连接至VM实例的IP地址的对应值与实例标识符“shell”相关联。
在一些实施方式中,用户能够使用应用编程接口(API)指定要与一个或多个VM实例相关联的特定标识符。每个VM实例中的系统组件被配置为获取用户所指定的标识符,并且将该标识符与相应的VM实例相关联。
用户能够初始化VM实例并且能够将该VM实例与项目标识符P1和实例标识符“shell”相关联。在启动时,VM实例能够查询元数据数据库130以获得与项目标识符P1和实例标识符“shell”相关联的元数据。响应于该查询,元数据服务器130能够为VM实例提供与项目标识符P1相关联的元数据,例如第一和第二元数据键值对,以及与实例标识符“shell”相关联的元数据,例如第四元数据键值对。在一些实施方式中,元数据服务器130为该VM实例提供引用所请求元数据的相应统一资源定位符(URL)路径。例如,元数据服务器130能够提供例如引用与项目标识符P1相关联的“sshKeys”键值对的“/v1beta/computemetadata/project/attributes/sshKeys”的第一URL、例如引用与项目标识符P1相关联的“allowedHosts”键值对的“/v1beta/computemetadata/project/attributes/allowedHosts”的第二URL、以及例如引用与实例标识符“shell”相关联的“allowedHosts”键值对的“/v1beta/computemetadata/instance/attributes/allowedHosts”的第三URL。VM实例然后能够对所接收到的元数据进行处理以配置该VM实例。在该示例中,如果用户已经将VM实例与标签标识符“web”相关联,则元数据服务器130还将为该VM实例提供例如引用与标签标识符“web”相关联的键值对“startupScript”的“/v1beta/computemetadata/tags/web/attributes/startupScript”的第四URL。
在一些情况下,在针对与多于一个元数据集合相关联——例如与多于一个的标识符相关联——的元数据键指定不同值时,以及在VM实例与那些标识符相关联时,可能出现元数据冲突。如以上示例中所描述的,与项目标识符P1相关联的第二元数据键“allowedHosts”具有对应的值“192.0.2.24/30”,而与实例标识符“shell”相关联的第四元数据键“allowedHosts”具有对应的值“0.0.0.0/0”。在该示例中,由于VM实例与项目标识符P1和实例标识符“shell”相关联,所以关于是否使用例如“192.0.2.24/30”的对应于第二元数据键“allowedHosts”还是例如“0.0.0.0/0”的对应于第四元数据键“allowedHosts”的元数据值配置该VM实例,存在冲突。
在一些实施方式中,元数据服务器130将所有冲突的元数据都提供给VM实例,并且该VM实例自行确定使用哪个元数据值来配置该VM实例。在一些实施方式中,元数据服务器130通过评估与元数据键值对相关联的相应标识符而确定哪个元数据键值对具有更高的优先级级别,并且向该VM实例提供与更高优先级级别相关联的元数据键值对。在一些实施方式中,实例标识符和标签标识符的优先级高于项目标识符。在一些实施方式中,实例标识符的优先级高于标签标识符和项目标识符两者。
在一些实施方式中,用户能够通过更新元数据集合而对VM实例进行动态配置。例如,用户能够指定新的元数据键值对或者用户能够针对现有元数据键更新元数据值。如以下参考图2所描述的,VM实例能够被配置为自动查询元数据服务器130以获得新的或经更新的元数据。该VM实例能够使用所获得的元数据来重新配置与该VM实例相关联的各种设置。
在一些实施方式中,例如VM 110、112或114的每个VM实例与例如元数据服务器130的不同元数据服务器进行配对。在一些实施方式中,例如主机机器102或104的每个主机机器与例如元数据服务器130的不同元数据服务器进行配对。在一些实施方式中,例如元数据服务器130的元数据服务器被配置为分布式系统。
图2是图示使用元数据属性与元数据值的配对的虚拟机实例的配置的泳道图。
如以上所描述的,操作用户设备的用户向元数据服务器提供例如键值对的元数据以及一个或多个对应的标识符(202)。在一些实施方式中,用户能够针对元数据键提供例如“attached-disks”的值以指定短暂或持久磁盘的列表,并且能够将该元数据与一个或多个标识符相关联以配置同样与该一个或多个标识符相关联的VM实例以使用所识别的短暂或持久磁盘。用户能够为其提供定制值的元数据的其它示例包括用于指定实例描述的例如“description”的元数据键、用于指定VM实例主机名的域的例如“domain”的元数据键、用于指定实例的主机名的例如“hostname”的元数据键、用于指定要被用于初始化VM实例的例如“image”的元数据键。
此外,用户能够提供用于以下元数据键的定制值:识别机器类型的例如“machine-type”的元数据键,例如具有特定数量的中央处理单元(CPU)和存储器配置的机器;用于指定网络信息的例如“network”的元数据键;用于指定时区的例如“zone”的元数据键。另外,用户能够提供用于以下元数据键的定制值:例如用于指定能够被用来连接至实例的SecureShell(SSH)键的列表的例如“sshKeys”的元数据键、用于指定要在实例启动时执行的启动脚本的例如“startup-script”的元数据键、用于指定要在实例启动时执行的启动脚本的URL(统一资源定位符)的例如“startup-script-url”的元数据键。
元数据服务器将一个或多个元数据集合与相应标识符相关联(204)。如以上所描述的,在一些实施方式中,元数据服务器基于与所接收到的元数据相对应的标识符对所接收到的元数据进行归类并且存储在一个或多个相应的元数据集合中。因此,例如,元数据服务器能够将与例如P1的特定项目标识符相关联的所有所接收到的元数据归类并存储到第一元数据集合中,并且能够将该第一元数据集合与例如P1的特定项目标识符相关联。类似地,元数据服务器能够将与例如T1的特定标签标识符相关联的所有所接收到的元数据归类并存储到第一元数据集合中,并且能够将该第二元数据集合与例如T1的特定标签标识符相关联。
与特定标识符相关联的VM实例向元数据服务器发送元数据查询以获得同样与该特定标识符相关联的元数据(206)。在一些实施方式中,VM实例被配置为在该VM实例被初始化时——例如在启动时——针对元数据查询元数据服务器。在一些实施方式中,VM实例被配置为以所指定的时间间隔针对元数据查询元数据服务器,上述时间建立例如在计划任务中进行指定。
在一些实施方式中,VM实例被配置为使用“Hanging GET”操作查询元数据服务器。例如,VM实例能够使用常规的超文本传输协议(HTTP)“GET”操作来请求元数据。在元数据服务器已经为VM实例提供了元数据的情况下,VM实例能够“挂起”或者保持HTTP“GET”连接,以继续进行等待直至元数据服务器具有新的或经更新的元数据要提供给VM实例。在这样的实施方式中,如果HTTP“GET”连接由于无活动而关闭,例如超时,则VM示例能够被配置为重新建立该连接并且继续等待新的或经更新的元数据。
如以上所描述的,元数据服务器接收与特定标识符相关联的元数据的查询(208)。元数据服务器能够使用任何适当的网络通信协议或者使用常规的超文本传输协议(HTTP)“GET”和“PUT”命令来进行例如查询和元数据的数据的通信。
元数据服务器响应于该元数据查询识别元数据(210)。如以上参考图1所描述的,元数据服务器能够识别分别与特定标识符相对应的一个或多个元数据集合。
元数据服务器响应于对VM实例的查询提供元数据(212)。如以上所描述的,元数据服务器能够将在所识别的元数据集合中归类并存储的元数据提供至VM实例。
VM实例接收并应用该元数据以配置VM实例(214)。在一些实施方式中,VM实例通过更新与VM示例相关联的特定设置,例如通过更新特定文件中的数据,而对其自身进行配置。例如,VM实例能够接收元数据键“hostname”及其对应的值“example.com”。基于该键“hostname”,VM实例能够被配置为用该值“example.com”更新特定文件,例如“/etc/hostname”。一旦更新文件“/etc/hostname”,则VM实例能够实现其联网配置而使得VM实例的域对应于“example.com”。
图3是用于使用元数据属性与元数据值的配对配置虚拟机实例的示例处理300的流程图。为了方便,将关于例如元数据服务器130的系统对处理300进行描述,该系统包括执行处理300的一个或多个计算设备。
如以上所描述的,该系统将一个或多个元数据集合与相应标识符相关联(302)。
如以上所描述的,该系统接收请求与特定标识符相关联的元数据的元数据查询(304)。例如,该系统能够从同样与特定标识符相关联的VM实例接收该查询。
如以上所描述的,该系统响应于该元数据查询而识别元数据(306)。
如以上所描述的,该系统将元数据提供至VM实例。
图4是示例主机机器的示意图。主机机器400总体上由数据处理装置402所组成。数据处理装置402可选地能够通过网络480与一个或多个其它计算机490进行通信。虽然图4中仅示出了一个数据处理装置402,但是在一个或多个位置能够使用多个数据处理装置。数据处理装置402包括各种模块,例如可执行软件程序。所述模块之一是主机操作系统的内核406(例如,主机操作系统106)。虚拟机模块408(例如,虚拟机110)包括虚拟硬件(例如,虚拟硬件110a)、访客操作系统(例如,访客操作系统110b)和访客应用(访客应用110c)。虽然图示出了若干软件模块,但是可以有更少或更多的软件模块。此外,软件模块能够在通过一个或多个网络或其它适当通信介质连接的一个或多个数据处理装置上进行分布。
数据处理装置402还包括硬件或固件设备,包括一个或多个处理器412、一个或多个附加设备414、计算机可读存储介质416、通信接口418、以及可选地一个或多个用户接口设备420。每个处理器412能够处理指令以用于在数据处理装置402内执行。在一些实施方式中,处理器412是单线程或多线程处理器。每个处理器412能够处理存储在计算机可读存储介质416或者诸如附加设备414之一的存储设备上的指令。数据处理装置402使用其通信接口418例如通过网络480与一个或多个计算机490进行通信。用户接口设备420的示例包括显示器、相机、扬声器、麦克风、触觉反馈设备、键盘和鼠标。数据处理装置402例如能够在计算机可读存储介质416或者一个或多个附加设备414上存储实施与以上所描述的模块相关联的操作的指令,附加设备414例如软盘设备、硬盘设备、光盘设备或、磁带设备中的一个或多个。
图4也是示例元数据服务器的示意图。元数据服务器总体上由一个或多个位置中的一个或多个数据处理装置所组成。数据处理装置包括硬件或固件设备,包括一个或多个处理器、计算机可读存储介质和通信接口。每个处理器能够处理指令以用于在数据处理装置内执行。在一些实施方式中,处理器是单线程或多线程处理器。每个处理器能够处理存储在计算机可读存储介质或者诸如附加设备之一的存储设备上的指令。数据处理装置使用其通信接口例如通过网络与一个或多个计算机进行通信。
该说明书中所描述的主题的实施例以及功能操作能够以数字电路来实施,以有形方式所体现的计算机软件或固件,以计算机硬件来实施,包括该说明书中所公开的结构及其结构等同形式,或者以它们中一个或多个的组合来实施。该说明书中所描述的主题的实施例能够被实施为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,它们在一个或多个计算机存储介质上进行编码以便由数据处理装置来执行或者控制其操作。可替换地或除此之外,该程序指令能够在人为生成的传播信号上进行编码,例如被生成以对信息进行编码从而传输至适当接收器装置以便由数据处理装置所执行的机器所生成的电、光或电磁信号。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备,或者它们中一个或多个的组合。
术语“数据处理装置”涵盖了用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机,或者多个处理器或计算机。该装置可以包括例如FPGA(现场可编程门阵列)或ASIC(应用特定集成电路)的专用逻辑电路。除了硬件之外,该装置可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中一个或多个的组合的代码。
计算机程序(也被称作程序、软件、软件应用、脚本或代码)能够以任何形式的编程语言进行编写,包括编译或解释语言、或者声明或过程语言,并且其能够以任何形式进行部署,包括作为独立程序或者作为适合于在计算环境中使用的模块、组件、子例程、或其它单元。计算机程序可以对应于文件系统中的文件但并非需要如此。程序可以存储在保存其它程序或数据的文件的一部分之中,例如标记语言文档中所存储的一个或多个脚本;存储在专用于所讨论程序的单个文件中;或者存储在多个协同文件中,例如存储一个或多个模块、子程序或代码部分的文件。计算机程序能够被部署为在一台计算机上执行或者在位于一个地点或跨多个地点分布并且通过通信网络进行互连的多台计算机上执行。
该说明书中所描述的处理和逻辑流程能够由一个或多个可编程处理器所执行,后者执行一个或多个计算机程序以通过对输入数据进行操作并生成输出而执行功能。该处理和逻辑流程也能够由例如FPGA(现场可编程门阵列)或ASIC(应用特定集成电路)的专用逻辑电路所执行,并且该装置也可以被实施为上述专用逻辑电路。
作为示例,适合于执行计算机程序的计算机包括通用或专用微处理器或两者,或者任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或者两者接收指令和数据。计算机的必要部件是用于执行或进行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合成从用于存储数据的一个或多个大型存储设备接收数据或向其传输数据,或两者,大型存储设备例如磁盘、磁性光盘或光盘。然而,计算机并非需要具有这样的设备。此外,计算机能够嵌入在另一个设备中,后者例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器、或者便携式存储设备,例如,通用串行接口(USB)闪速驱动器,这仅是举出几个示例。
适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁性光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以被补充以专用逻辑电路或者整合于其中。
为了提供与用户的交互,本说明书中所描述的主题的实施方式能够在具有用于向用户显示信息的显示设备以及用户能够通过其向计算机提供输入的键盘和指示设备的计算机上实施,该显示设备例如CRT(阴极射线管)或LCD(液晶显示器)监视器,该指示设备例如鼠标或轨迹球。也能够使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以为任何感应反馈的形式,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入能够以任何形式被接收,包括声音、语音或触觉输入。此外,计算机能够通过往来于用户所使用的设备发送和接收文档而与用户进行交互;例如,通过响应于从用户的客户端设备上的web浏览器所接收到的请求而向该web浏览器发送网页。
该说明书中所描述的主题的实施例能够在计算系统中实施,该计算系统包括例如数据服务器的后端组件或者包括例如应用服务器的中间件组件或者包括例如客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合,所述客户端计算机具有用户能够通过其与该说明书中所描述主题的实施方式进行交互的图形用户界面或web浏览器。该系统的组件能够通过例如通信网络的任何形式或介质的数字数据通信进行互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如,互联网。
该计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系源自于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序。
虽然该说明书包括了一些具体实现细节,但是这些并不应当被理解为是对任何发明或者可以请求保护的范围的限制,而是作为可能对特定发明的特定实施例而言具体的特征的描述。该说明书中以单独实施例为背景所描述的某些特征也能够在单个实施例中组合实施。相反,以单个实施例为背景所描述的各个特征也能够在多个实施例中单独实施或者以任何适当的子组合实施。此外,虽然特征在上文中可以被描述为以某种组合发生作用并且甚至最初如此要求保护,但是来所请求保护的组合的一个或多个特征在一些情况下能够脱离该组合并且所请求保护的组合可以针对子组合或子组合的变化形式。
类似地,虽然在图中以特定顺序描绘了操作,但是这并不应当被理解为为了实现所期望的结果而要求这样的操作以所示出的特定顺序或以连续顺序来执行,或者执行所有所图示的操作。在某些情况下,多任务和并行处理可能是有利的。此外,以上所说明的各个系统模块和组件的划分并不应当被理解为要求这样的划分,并且应当理解的是,所描述的程序组件和系统一般能够共同集成在单个软件产品中或者被封装为多个软件产品。
已经对主题的特定实施例进行了描述。其它实施例处于权利要求的范围之内。例如,权利要求中所引用的动作可以以不同顺序执行并且仍然实现所期望的结果。作为一个示例,附图中所描绘的处理并非必然要求所示出的特定顺序或连续顺序来实现所期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

Claims (27)

1.一种由一个或多个计算设备执行的方法,所述方法包括:
将多个用户所指定的元数据键值对中的每一个元数据键值对与多个标识符中的一个或多个相应标识符相关联,其中每个标识符是项目标识符、标签标识符或实例标识符之一;
由元数据服务从虚拟机实例接收元数据查询;
获得与所述虚拟机实例相关联的标识符信息,其中所述标识符信息指定所述多个标识符中的两个或更多个标识符;
基于与所述虚拟机实例相关联的所述标识符信息识别所述用户所指定的元数据键值对中的一个或多个元数据键值对,每个元数据键值对与由关联于所述虚拟机实例的所述标识符信息指定的所述两个或更多个标识符中的至少一个标识符相关联,所述一个或多个元数据键值对是要提供至所述虚拟机实例的键值对,并且其中所述虚拟机实例与在所述标识符信息中所指定的所述两个或更多个标识符中的全部标识符相关联;以及
响应于接收到所述元数据查询,向所述虚拟机实例提供所识别的一个或多个元数据键值对。
2.根据权利要求1所述的方法,进一步包括:
从用户接收所述虚拟机实例的所述两个或更多个标识符信息;以及
将所述虚拟机实例与从所述用户接收的所述两个或更多个标识符中的每一个标识符相关联。
3.根据权利要求2所述的方法,其中所述元数据查询是使用Hanging GET操作来通信的。
4.根据权利要求1所述的方法,进一步包括:
接收包括一个或多个用户所指定的标识符、以及一个或多个用户所指定的元数据键值对的数据;以及
将所述元数据键值对与所述一个或多个用户所指定的标识符相关联。
5.根据权利要求1所述的方法,其中每个标识符与元数据键值对的集合相对应。
6.根据权利要求1所述的方法,进一步包括:
确定所识别的元数据键值对包括两个冲突的元数据键值对,所述冲突的元数据键值对包括与第二元数据键相同的第一元数据键,以及与第二元数据值不同的第一元数据值,所述第一元数据键与所述第一元数据值配对,并且所述第二元数据键与所述第二元数据值配对;以及
将所述第一元数据值和所述第二元数据值都提供至所述虚拟机实例,其中所述虚拟机实例通过选择两个冲突的元数据键值对中的一个元数据键值对的值来解析所述冲突的元数据键值对。
7.根据权利要求1所述的方法,进一步包括:
确定所识别的元数据键值对包括两个冲突的元数据键值对,所述冲突的元数据键值对包括与第二元数据键相同的第一元数据键,以及与第二元数据值不同的第一元数据值,所述第一元数据键与所述第一元数据值配对,并且所述第二元数据键与所述第二元数据值配对;
确定所述第一元数据键与具有比和所述第二元数据键相关联的第二标识符更高的优先级级别的第一标识符相关联;以及
响应于所述确定,将所述第一元数据值而不是所述第二元数据值提供至所述虚拟机实例。
8.根据权利要求7所述的方法,其中:
所述第一标识符是实例标识符或标签标识符,而所述第二标识符是项目标识符;或者
所述第一标识符是实例标识符,而所述第二标识符是标签标识符或项目标识符。
9.根据权利要求1所述的方法,其中,在所述虚拟机实例启动时,所述虚拟机实例向所述元数据服务提供所述元数据查询,并且根据一个或多个所接收到的元数据键值对来配置所述虚拟机实例的一个或多个设置。
10.一种用指令进行编码的非暂时性计算机存储介质,当被一个或多个计算机执行时,所述指令使得所述一个或多个计算机执行操作,包括:
将多个用户所指定的元数据键值对中的每一个元数据键值对与多个标识符中的一个或多个相应标识符相关联其中每个标识符是项目标识符、标签标识符或实例标识符之一;
由元数据服务从虚拟机实例接收元数据查询;
获得与所述虚拟机实例相关联的标识符信息,其中所述标识符信息指定所述多个标识符中的两个或更多个标识符;
基于与所述虚拟机实例相关联的所述标识符信息识别所述用户所指定的元数据键值对中的一个或多个元数据键值对,每个元数据键值对与由关联于所述虚拟机实例的所述标识符信息指定的所述两个或更多个标识符中的至少一个标识符相关联,所述一个或多个元数据键值对是要提供至所述虚拟机实例的键值对,并且其中所述虚拟机实例与在所述标识符信息中所指定的所述两个或更多个标识符中的全部标识符相关联;以及
响应于接收到所述元数据查询,向所述虚拟机实例提供所识别的一个或多个元数据键值对。
11.根据权利要求10所述的计算机存储介质,进一步包括:
从用户接收所述虚拟机实例的所述两个或更多个标识符信息;以及
将所述虚拟机实例与从所述用户接收的所述两个或更多个标识符中的每一个标识符相关联。
12.根据权利要求11所述的计算机存储介质,其中所述元数据查询是使用Hanging GET操作来通信的。
13.根据权利要求10所述的计算机存储介质,进一步包括:
接收包括一个或多个用户所指定的标识符、以及一个或多个用户所指定的元数据键值对的数据;
生成包括所述一个或多个用户所指定的配对的元数据集合;以及
将所述元数据键值对与所述一个或多个用户所指定的标识符相关联。
14.根据权利要求10所述的计算机存储介质,其中每个标识符与元数据键值对的集合相对应。
15.根据权利要求10所述的计算机存储介质,其中所述操作进一步包括:
确定所识别的元数据键值对包括两个冲突的元数据键值对,所述冲突的元数据键值对包括与第二元数据键相同的第一元数据键,以及与第二元数据值不同的第一元数据值,所述第一元数据键与所述第一元数据值配对,并且所述第二元数据键与所述第二元数据值配对;以及
将所述第一元数据值和所述第二元数据值都提供至所述虚拟机实例,其中所述虚拟机实例通过选择两个冲突的元数据键值对中的一个元数据键值对的值来解析所述冲突的元数据键值对。
16.根据权利要求10所述的计算机存储介质,其中所述操作进一步包括:
确定所识别的元数据键值对包括两个冲突的元数据键值对,所述冲突的元数据键值对包括与第二元数据键相同的第一元数据键,以及与第二元数据值不同的第一元数据值,所述第一元数据键与所述第一元数据值配对,并且所述第二元数据键与所述第二元数据值配对;
确定所述第一元数据键与具有比和所述第二元数据键相关联的第二标识符更高的优先级级别的第一标识符相关联;以及
响应于所述确定,将所述第一元数据值而不是所述第二元数据值提供至所述虚拟机实例。
17.根据权利要求16所述的计算机存储介质,其中:
所述第一标识符是实例标识符或标签标识符,而所述第二标识符是项目标识符;或者
所述第一标识符是实例标识符,而所述第二标识符是标签标识符或项目标识符。
18.根据权利要求10所述的计算机存储介质,其中,在所述虚拟机实例启动时,所述虚拟机实例向所述元数据服务提供所述元数据查询,并且根据一个或多个所接收到的元数据键值对来配置所述虚拟机实例的一个或多个设置。
19.一种云计算系统,包括:
一个或多个计算机以及存储指令的一个或多个存储设备,当被所述一个或多个计算机所执行时,所述指令可操作来使得所述一个或多个计算机执行操作,所述操作包括:
将多个用户所指定的元数据键值对中的每一个元数据键值对与多个标识符中的一个或多个相应标识符相关联,其中每个标识符是项目标识符、标签标识符或实例标识符之一;
由元数据服务从虚拟机实例接收元数据查询;
获得与所述虚拟机实例相关联的标识符信息,其中所述标识符信息指定所述多个标识符中的两个或更多个标识符;
基于与所述虚拟机实例相关联的所述标识符信息识别所述用户所指定的元数据键值对中的一个或多个元数据键值对,每个元数据键值对与由关联于所述虚拟机实例的所述标识符信息指定的所述两个或更多个标识符中的至少一个标识符相关联,所述一个或多个元数据键值对是要提供至所述虚拟机实例的键值对,并且其中所述虚拟机实例与在所述标识符信息中所指定的所述两个或更多个标识符中的全部标识符相关联;以及
响应于接收到所述元数据查询,向所述虚拟机实例提供所识别的一个或多个元数据键值对。
20.根据权利要求19所述的系统,进一步包括:
从用户接收所述虚拟机实例的所述两个或更多个标识符信息;以及
将所述虚拟机实例与从所述用户接收的所述两个或更多个标识符中的每一个标识符相关联。
21.根据权利要求20所述的系统,其中所述元数据查询是使用Hanging GET操作来通信的。
22.根据权利要求19所述的系统,进一步包括:
接收包括一个或多个用户所指定的标识符、以及一个或多个用户所指定的元数据键值对的数据;以及
将所述元数据键值对与所述一个或多个用户所指定的标识符相关联。
23.根据权利要求19所述的系统,其中每个标识符与元数据键值对的集合相对应。
24.根据权利要求19所述的系统,其中所述操作进一步包括:
确定所识别的元数据键值对包括两个冲突的元数据键值对,所述冲突的元数据键值对包括与第二元数据键相同的第一元数据键,以及与第二元数据值不同的第一元数据值,所述第一元数据键与所述第一元数据值配对,并且所述第二元数据键与所述第二元数据值配对;以及
将所述第一元数据值和所述第二元数据值都提供至所述虚拟机实例,其中所述虚拟机实例通过选择两个冲突的元数据键值对中的一个元数据键值对的值来解析所述冲突的元数据键值对。
25.根据权利要求19所述的系统,其中所述操作进一步包括:
确定所识别的元数据键值对包括两个冲突的元数据键值对,所述冲突的元数据键值对包括与第二元数据键相同的第一元数据键,以及与第二元数据值不同的第一元数据值,所述第一元数据键与所述第一元数据值配对,并且所述第二元数据键与所述第二元数据值配对;
确定所述第一元数据键与具有比和所述第二元数据键相关联的第二标识符更高的优先级级别的第一标识符相关联;以及
响应于所述确定,将所述第一元数据值而不是所述第二元数据值提供至所述虚拟机实例。
26.根据权利要求25所述的系统,其中:
所述第一标识符是实例标识符或标签标识符,并且所述第二标识符是项目标识符;或者
所述第一标识符是实例标识符,并且所述第二标识符是标签标识符或项目标识符。
27.根据权利要求19所述的系统,其中,在所述虚拟机实例启动时,所述虚拟机实例向所述元数据服务提供所述元数据查询,并且根据一个或多个所接收到的元数据键值对来配置所述虚拟机实例的一个或多个设置。
CN201380063264.5A 2012-10-31 2013-10-30 基于元数据的虚拟机配置 Active CN104823163B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811268712.6A CN109375986B (zh) 2012-10-31 2013-10-30 基于元数据的虚拟机配置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/665,890 2012-10-31
US13/665,890 US9170834B2 (en) 2012-10-31 2012-10-31 Metadata-based virtual machine configuration
PCT/US2013/067507 WO2014070891A2 (en) 2012-10-31 2013-10-30 Metadata-based virtual machine configuration

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201811268712.6A Division CN109375986B (zh) 2012-10-31 2013-10-30 基于元数据的虚拟机配置

Publications (2)

Publication Number Publication Date
CN104823163A CN104823163A (zh) 2015-08-05
CN104823163B true CN104823163B (zh) 2018-11-23

Family

ID=49582818

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380063264.5A Active CN104823163B (zh) 2012-10-31 2013-10-30 基于元数据的虚拟机配置
CN201811268712.6A Active CN109375986B (zh) 2012-10-31 2013-10-30 基于元数据的虚拟机配置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201811268712.6A Active CN109375986B (zh) 2012-10-31 2013-10-30 基于元数据的虚拟机配置

Country Status (5)

Country Link
US (2) US9170834B2 (zh)
EP (1) EP2915042B1 (zh)
CN (2) CN104823163B (zh)
DE (1) DE202013012495U1 (zh)
WO (1) WO2014070891A2 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2972856B1 (en) * 2013-03-15 2017-05-10 Oracle International Corporation System and method for generic product wiring in a virtual assembly builder environment
US9430255B1 (en) * 2013-03-15 2016-08-30 Google Inc. Updating virtual machine generated metadata to a distribution service for sharing and backup
US10491533B1 (en) * 2013-05-29 2019-11-26 Amazon Technologies, Inc. Dynamically configured overlay multicast
JP6460101B2 (ja) 2014-05-23 2019-01-30 日本電気株式会社 通信装置、通信方法、通信システムおよびプログラム
US10659523B1 (en) * 2014-05-23 2020-05-19 Amazon Technologies, Inc. Isolating compute clusters created for a customer
US9519503B2 (en) * 2014-12-01 2016-12-13 Dell Products, L.P. Systems and methods for virtual machine attribution with fault resilient memory tag
US11157288B2 (en) * 2015-05-06 2021-10-26 Hewlett Packard Enterprise Development Lp Securely and reliably transferring startup script
US9853913B2 (en) * 2015-08-25 2017-12-26 Accenture Global Services Limited Multi-cloud network proxy for control and normalization of tagging data
US10289398B2 (en) * 2015-09-26 2019-05-14 Cisco Technology, Inc. In-service upgrade of kernel loadable modules
US20170147355A1 (en) * 2015-11-24 2017-05-25 Le Holdings (Beijing) Co., Ltd. Method and system for accelerating intelligent terminal boot speed
US9678857B1 (en) * 2015-11-30 2017-06-13 International Business Machines Corporation Listing optimal machine instances
US10650007B2 (en) * 2016-04-25 2020-05-12 Microsoft Technology Licensing, Llc Ranking contextual metadata to generate relevant data insights
GB201607825D0 (en) * 2016-05-04 2016-06-15 King Com Ltd A method and apparatus for processing data
CN107770095B (zh) * 2016-08-22 2021-07-06 阿里巴巴集团控股有限公司 一种用于控制虚拟机元数据访问的方法与设备
US10437928B2 (en) * 2016-12-30 2019-10-08 Google Llc Device identifier dependent operation processing of packet based data communication
JP7007401B2 (ja) * 2017-06-16 2022-01-24 マイクロソフト テクノロジー ライセンシング,エルエルシー ルールベースのユーザインタフェース生成
US11481383B2 (en) 2017-11-15 2022-10-25 Sumo Logic, Inc. Key name synthesis
US11182434B2 (en) 2017-11-15 2021-11-23 Sumo Logic, Inc. Cardinality of time series
US11615142B2 (en) * 2018-08-20 2023-03-28 Salesforce, Inc. Mapping and query service between object oriented programming objects and deep key-value data stores
US11327814B2 (en) * 2018-11-28 2022-05-10 International Business Machines Corporation Semaphores for serverless computing
CN109726592B (zh) * 2018-12-31 2021-02-23 联动优势科技有限公司 一种数据沙盒的处理方法及装置
US11620147B2 (en) * 2019-04-02 2023-04-04 International Business Machines Corporation Metadata service provisioning in a cloud environment
US11237747B1 (en) * 2019-06-06 2022-02-01 Amazon Technologies, Inc. Arbitrary server metadata persistence for control plane static stability
CN112559114A (zh) * 2019-09-24 2021-03-26 阿里巴巴集团控股有限公司 虚拟机的生成方法和装置
WO2022068796A1 (zh) * 2020-09-30 2022-04-07 华为云计算技术有限公司 云平台及基于云平台的程序代码处理方法
US11941125B2 (en) 2021-03-14 2024-03-26 Microsoft Technology Licensing, Llc Automatic update of VM sets
US20230106318A1 (en) * 2021-10-05 2023-04-06 Vmware,Inc. Automated methods and systems that provide resource recommendations for virtual machines
CN114299522B (zh) * 2022-01-10 2023-08-29 北京百度网讯科技有限公司 图像识别方法装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577251A (zh) * 2003-07-28 2005-02-09 国际商业机器公司 小服务器程序的远程协作方法和系统
CN1989489A (zh) * 2004-05-20 2007-06-27 Sap股份公司 在运行时系统中共享对象

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208988B1 (en) * 1998-06-01 2001-03-27 Bigchalk.Com, Inc. Method for identifying themes associated with a search query using metadata and for organizing documents responsive to the search query in accordance with the themes
US6678695B1 (en) * 2001-06-29 2004-01-13 Trilogy Development Group, Inc. Master data maintenance tool for single source data
US7962545B2 (en) 2002-12-27 2011-06-14 Intel Corporation Dynamic service registry for virtual machines
EP2369479A3 (en) * 2006-01-24 2011-12-21 Citrix Systems, Inc. Methods and systems for providing access to a computing environment
US20080104586A1 (en) * 2006-10-27 2008-05-01 Microsoft Corporation Allowing Virtual Machine to Discover Virtual Status Thereof
JP5397691B2 (ja) * 2007-05-23 2014-01-22 日本電気株式会社 情報共有システム、コンピュータ、プロジェクト管理サーバ及びそれらに用いる情報共有方法
US9344401B2 (en) * 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
US8516217B2 (en) * 2009-03-27 2013-08-20 International Business Machines Corporation Managing a logically partitioned computing system through a virtual file system
US9229748B2 (en) 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8607054B2 (en) * 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
US8924964B2 (en) * 2010-11-01 2014-12-30 Microsoft Corporation Dynamic allocation and assignment of virtual environment
US8959511B2 (en) 2010-12-14 2015-02-17 Microsoft Corporation Template virtual machines
US8386619B2 (en) * 2011-03-23 2013-02-26 Color Labs, Inc. Sharing content among a group of devices
US8935704B2 (en) * 2012-08-10 2015-01-13 International Business Machines Corporation Resource management using reliable and efficient delivery of application performance information in a cloud computing system
US8838961B2 (en) * 2012-09-14 2014-09-16 Netflix, Inc. Security credential deployment in cloud environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577251A (zh) * 2003-07-28 2005-02-09 国际商业机器公司 小服务器程序的远程协作方法和系统
CN1989489A (zh) * 2004-05-20 2007-06-27 Sap股份公司 在运行时系统中共享对象

Also Published As

Publication number Publication date
WO2014070891A2 (en) 2014-05-08
EP2915042A2 (en) 2015-09-09
EP2915042B1 (en) 2022-12-28
US9798566B2 (en) 2017-10-24
CN109375986A (zh) 2019-02-22
US20160048410A1 (en) 2016-02-18
WO2014070891A3 (en) 2014-11-06
CN104823163A (zh) 2015-08-05
DE202013012495U1 (de) 2017-01-24
US9170834B2 (en) 2015-10-27
US20140123136A1 (en) 2014-05-01
CN109375986B (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
CN104823163B (zh) 基于元数据的虚拟机配置
US10827008B2 (en) Integrated user interface for consuming services across different distributed networks
US11405274B2 (en) Managing virtual network functions
JP6860179B2 (ja) 管理されたコンテナインスタンスを有するシステムおよびその方法
US10091055B2 (en) Configuration service for configuring instances
US11842222B2 (en) Using scripts to bootstrap applications with metadata from a template
US7451071B2 (en) Data model for automated server configuration
JP2018537783A (ja) 事前に生成されたコンポーネントを使用してアプリケーションを稼働させること
JP6201917B2 (ja) フィールドデバイスを設定するためのシステムおよび方法
US11068127B2 (en) Springboard interface for quick task transitions
JP2018523192A (ja) 分散型コンピューティング環境における仮想マシンインスタンス上のコマンドの実行
US20240297828A1 (en) Network management system, method, and apparatus, and electronic device
CA3159291A1 (en) Virtual workspace experience visualization and optimization
EP3298756B1 (en) Interfacing with servers having different apis to obtain advertisement data
CN111712799A (zh) 供在非边缘装置和边缘装置上执行的模型的自动分布
US10523591B2 (en) Discovering resource availability across regions
US20220200929A1 (en) Multi-cloud deployment and validation
US11856067B2 (en) Methods and apparatus to centralize localization of micro-services messages in a distributed cloud environment
US11843517B1 (en) Satellite virtual private cloud network environments
KR101519720B1 (ko) 모바일 어플리케이션의 꾸미기 요소 공유 방법 및 그 시스템
US20240303101A1 (en) Graphical User Interface For Fungible Configurable Attributes For A Compute Instance
CN114153472A (zh) 裸金属服务器部署方法、装置、电子设备及存储介质
WO2024186667A1 (en) System selected fungible configurable attributes for a compute instance
CN116775056A (zh) Dds集群仿真的方法、装置、电子设备及介质
CN113703798A (zh) 分布式服务更新方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant