CN102426543B - 使用硬和软限制将对象放置在主机上 - Google Patents

使用硬和软限制将对象放置在主机上 Download PDF

Info

Publication number
CN102426543B
CN102426543B CN201110340491.0A CN201110340491A CN102426543B CN 102426543 B CN102426543 B CN 102426543B CN 201110340491 A CN201110340491 A CN 201110340491A CN 102426543 B CN102426543 B CN 102426543B
Authority
CN
China
Prior art keywords
main frame
restriction
network
machine
virtual machine
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
CN201110340491.0A
Other languages
English (en)
Other versions
CN102426543A (zh
Inventor
A·霍普曼
M·K·温德尔
P·西梅克
E·R·莱尔马
D·罗森塞尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102426543A publication Critical patent/CN102426543A/zh
Application granted granted Critical
Publication of CN102426543B publication Critical patent/CN102426543B/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

使用硬限制和软限制将对象放置在主机上。要被放置在主机上的对象可以是多种不同类型的对象。例如,要放置的对象可包括数据库中的承租人、物理机上的虚拟机、虚拟机上的数据库、目录森林中的承租人、场中的承租人,诸如此类。当为对象确定主机时,通过一系列硬限制对主机池进行过滤。剩下的主机池进一步通过软限制来过滤以帮助选择主机。随后,从剩余的主机中选择主机。

Description

使用硬和软限制将对象放置在主机上
技术领域
本发明涉及通信领域,尤其涉及使用限制来将对象部署在主机上的技术。
背景技术
基于web的服务包括位于web服务器上的文件以及存储在数据库中的数据。例如,存在大量位于不同网络中的服务器,以处理针对该服务的通信量。管理和部署大量服务器是需要会受到人类错误影响的庞大运营人员队伍的费时过程。
发明内容
提供本发明内容以便以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
使用硬限制和软限制将对象放置在主机上。要被放置在主机上的对象可以是多种不同类型的对象。例如,要放置的对象可包括数据库中的承租人、物理机上的虚拟机、虚拟机上的数据库、目录林中的承租人、场中的承租人,诸如此类。当为对象确定主机时,通过一系列硬限制对主机池进行过滤。剩下的主机池进一步通过软限制来过滤以帮助选择主机。随后,从剩余的主机中选择主机。
附图说明
图1示出了用于管理与诸如内容管理服务之类的在线服务相关联的网络的云管理器系统。
图2示出了包括管理器和相关联的数据库的云管理器;
图3示出了存储在数据库的行内的示例性作业记录;
图4示出了用于网络的示例系统,所述网络包括用于在线服务的前端和后端服务器;
图5示出计算机的计算机体系结构;
图6示出了使用硬和软限制来控制和管理对象在主机上的部署的机器管理器;以及
图7示出了使用硬和软限制来将对象放置在主机上的过程。
具体实施方式
现将参考其中相同的标号代表相似的元素的附图来描述各实施例。
一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。也可使用其它计算机系统配置,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等等。也可使用在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
图1示出了用于管理与在线服务相关联的网络的云管理系统。系统100示出了云管理器105,该云管理器105连接到并且管理可能分布在世界各地的不同网络。网络中的每个被配置成为一个或多个承租人(tenant)(例如客户、顾客)提供内容服务。这些网络可以被主存在云服务内和/或内部部署的(on-premises)数据中心内。云管理器105用于部署、配置和管理这些网络。云管理器被配置为通过可容忍间歇性网络故障的幂等的和异步的应用web服务应用编程接口(API)150来接收请求。
如所示的,云管理器105包括工作管理器110、机器管理器115、应用专用管理器120、脚本130以及诸如数据存储140(例如数据库)的中央储存库。未包括在所示管理器之一内的功能可以驻留在云管理器的某个其他位置处。根据一个实施例,应用管理器120是SharePoint承租人管理器,该管理器包括SharePoint专用逻辑。
工作管理器110管理任务的执行,并且启用对较长时间运行的任务的调度和重试。工作管理器110启动存储在作业队列112中的作业并且跟踪正在运行的作业。当已经流逝了预定的时间时,工作管理器110可以自动地取消任务并且执行与该任务相关的某些进一步处理。根据一个实施例,作业队列112中的任务由工作管理器110通过调用一个或多个脚本130来执行。例如,可以使用诸如微软的的脚本语言来对由工作管理器110执行的任务进行编程。每个脚本可以作为新进程运行。尽管将每个脚本作为新进程来执行可以具有相当高的CPU开销,但是该系统是可伸缩的,并且帮助为每次脚本执行确保干净的环境,加上在脚本完成时进行完全的清理。
机器管理器115被配置为管理网络(例如网络1、网络2、网络3)中的物理机。一般而言,机器管理器115理解网络、物理机、虚拟机(VM)、VM映像(VHD)等等。机器管理器不具有到网络内运行的特定服务的强绑定,而是在“角色”方面跟踪网络中的各种组件。例如,可以通过API 150请求机器管理器115在网络3上部署类型为“Foo”的具有版本12.34.56.78的VM。响应于对云管理器105的请求,机器管理器115对位于网络3上的合适物理机进行定位,并且根据与VM的角色相关联的VM映像来配置VM。使用类型为Foo的具有版本12.34.56.78的VHD来配置物理机,该VHD存储在诸如数据存储140的数据存储内。在网络内使用的映像也可以存储在其他位置处,诸如用于网络中的一个或多个的本地数据共享中。可以运行脚本来执行VHD在物理机上的安装以及用于执行任何部署后的配置。机器管理器115跟踪每个网络的机器配置。例如,机器管理器115可以跟踪VM的角色(VM的类型)、VM的状态(供应、运行、停止、故障)、版本以及VM是否存在于给定场(farm)中(这隐含了其网络)。
脚本130被配置为存储将要执行以便既本地地为云管理器105执行工作又远程地在所述网络中的一个或多个上执行工作的脚本。脚本130中的一个或多个还可以存储在其他位置。例如,将要在网络(例如网络1、网络2、网络3)上执行的脚本可以本地地存储到该网络。这些脚本可用于许多不同目的。例如,所述脚本可以用于执行:对网络中的一个或多个中的机器的配置,改变之前配置的机器上的设定,添加新的VM,添加新的数据库,将数据从一个机器移动到另一个,移动承租人,改变方案等。根据一个实施例,这些脚本是微软的脚本。也可以使用其他编程实施方式。例如,可以使用经编译的和/或前期绑定的编程语言来实现该功能。然而,脚本是一种表达将要执行的任务中的许多个的相当精确的语言。用诸如C#的编程语言对其等价物进行编程将常常需要冗长得多的实施方式。脚本还被后期绑定,这意味着可以以多个版本的底层代码库为目标,而不必不断地链接到不同的接口DLL。使用PowerShell脚本将允许进程由云管理器105本地地启动,云管理器105进而可以启动远程机器(即,所附连的网络之一中的物理机)上的进程。还可以使用其他技术来启动远程机器上的进程,诸如安全外壳(SSH)等。
云管理器105正在管理的应用专用信息由应用程序管理器120来执行。根据一个实施例,应用专用信息与微软有关。由此,应用管理器120被配置为了解SharePoint承租人、站点集合等。
每个网络可以被配置成用于承租人的专用网络和/或服务于一个以上客户的多承租人网络。网络可以包括变化数目的物理机/虚拟机,物理机/虚拟机的配置在部署之后也变化。一般而言,只要未超过联网极限(例如,负载平衡器和网络交换机),网络就可以继续增长。例如,网络可以从十个服务器开始,并且之后扩充为一百个或更多个服务器。可以给网络内的物理机分配类或类型。例如,机器中的某些可以是计算机器(用于web前端和应用服务器),而其他机器可以是与计算机器相比配备有更多存储的存储机器。根据一实施例,云管理器105用多个版本的映像文件来配置网络内的机器。根据一实施例,场常常具有相同版本的映像文件。
根据一个实施例,在网络内由云管理器系统100通过虚拟化机器并且管理该网络内部独立地行动的“场”来管理软件极限。每个网络可以包括一个或多个场(例如,参见网络1)。根据一个实施例,网络被认为是经网络负载平衡的机器的单个群集,所述机器向外部世界展示一个或多个VIP(虚拟IP)并且可以将通信路由到网络内的任何机器。网络中的机器通常是紧耦合的,并且具有最小等待时间(即<1ms的查验(ping)等待时间)。
场是用于对需要紧密绑定关系的应用进行协调的机器的基本分组。例如,内容场可以部署在每个网络内以用于诸如Microsoft的内容管理应用。一般而言,场的每一个中的那组机器一起提供web服务和应用服务器功能。通常,场内的机器运行相同构建的应用(即SharePoint)并且共享公共的配置数据库以服务特定的承租人和站点集合。
场可以包含异构的虚拟机组。云管理器105在数据存储140内维护“场目标”,该场目标是每个场的每种角色的机器的目标数目。一些角色包括内容前端、内容中央管理、内容计时器服务、联合中央管理、联合应用服务器等。例如,内容场是处理传入顾客的请求的基本SharePoint场。联合服务场包含可以跨场操作的诸如搜索和简档存储这样的SharePoint服务。场可以用于托管大容量公共因特网站点。某些场可以包含一组活动目录服务器和供应端口监控程序(Provisioning Daemon)。云管理器105自动地部署网络中的虚拟机和/或停用网络中的虚拟机,以帮助满足所定义的目标。这些场目标可以自动地和/或手动地来配置。例如,场目标可以响应于活动和容量需求的改变而改变。网络场-每个网络存在一个包含可以作为整个网络的资源的容易扩展的所有VM角色的网络场。
云管理器web服务API 150被设计为在可大规模伸缩的全局服务的上下文中工作。该API假定:任何网络请求可能失效和/或停留在传送中。对云管理器105的调用被配置为是幂等的。换言之,可以对云管理器105进行多次相同的调用(只要参数是相同的)而不改变结果。
云管理器105被设计为在向任何给定的请求返回响应之前进行非常少的处理(<10ms,<50ms)。云管理器105维护记录以跟踪当前请求。例如,云管理器105更新本地数据库中的记录,并且若需要则稍后调度“作业”以执行更长的活动。
云管理器跟踪作为用于在网络内部署新机器的模板的映像(诸如,虚拟盘映像)。映像引用可以存储在诸如数据库140的数据库中和/或某个其他位置。映像可以存储在对其上将部署映像的网络而言是本地的一个或多个共享的数据存储中。根据一个实施例,每个映像都包括:虚拟机(VM)角色类型,其指定映像可以部署的VM的类型;该映像应当使用的处理器的数目;将分配给该映像的RAM的量;用于找出附近安装点的网络ID(使得它们不会通过跨数据中心链接被反复地复制);以及可以被部署代码用于访问VHD的共享路径。
一般而言,由云系统100所管理的网络中的机器不是以传统方式通过下载数据并且将该数据合并到机器上的现有软件中来升级的。相反,机器是通过用已更新的VHD替换VHD来更新的。例如,当场需要新版本的软件时,部署安装了该新版本的新场。当部署新场时,将承租人从旧场移动到该新场。以此方式,由于升级造成的停机时间被最小化,并且场中的每个机器具有已被测试的相同版本。当虚拟机需要升级时,机器上的VM可以被删除并且被配置为运行所需服务的VM所代替。
尽管对现有软件的升级不是最优的,但是网络内的某些服务器的确使用原地升级的传统更新过程。例如,活动目录域控制器是通过更新服务器上的当前软件而不是完全替换机器上的映像来升级的。在一些实例中,云管理器也可以原地升级。
图2示出了包括管理器和相关联的数据库的云管理器。如所示的,云管理器200包括工作管理器210、工作数据库215、机器管理器220、机器数据库225、承租人管理器230、承租人数据库235、私密数据库245、以及web服务API 240。
一般而言,将在云管理系统(例如系统100)内使用的数据库的大小调整为实现高性能。例如,数据库(诸如,工作数据库215、机器数据库225、承租人数据库235和私密数据库245)不能超过预定义的大小限制(例如30GB、50GB、100GB等)。根据一实施例,调整数据库的大小以使得其小得足以适合物理机的存储器中。这有助于高读取I/O性能。还可以基于对于应用程序(诸如,与SQL服务器交互)的性能来选择数据库的大小。还可以调整在场中使用的数据库的大小以实现高性能。例如,它们的大小可以被调整为适合主机的存储器中和/或被调整为使得备份操作、移动操作、复制操作、恢复操作一般在预定的时间段内执行。
云管理器200将云管理器数据划分成四个数据库。工作数据库215用于工作管理器。机器数据库225用于机器管理器220。承租人数据库235用于承租人管理器230,以及私密数据库245用于存储敏感信息,诸如系统账户和口令信息、凭证、证书等。数据库可以位于相同的服务器上,或者跨服务器分割。根据一实施例,每个数据库被镜像以获得高可用性,并且都是SQL数据库。
云管理器200被配置为使用缩减的SQL特征组与数据库交互以便有助于在数据库升级期间提供云管理器200的可用性。例如,尝试避免外来密钥或已存储的过程。外来密钥可能使方案变化变得困难并且导致意料之外的失效情况。已存储的过程将应用中的更多个放置在数据库本身中。
尝试最小化与SQL服务器的通信,因为与底层操作的成本相比,往返可能是昂贵的。例如,如果当前SQL服务器到单个数据库的全部交互被包装在单个往返中,则常常是效率高得多的。
极少在数据库(215,225,235)内使用限制。一般而言,限制在其有助于在没有额外查询的情况下提供具有正确类型的错误处理的简单更新时是有益的。例如,完全合格的域名(FQDN)表具有对施加在“名称”上的限制,以帮助防止承租人意外地试图主张与已经被分配给不同承租人的FQDN相同的FQDN。
当添加索引时使用警告。索引通常以写入操作的额外I/O为代价来改善读取性能。由于数据库内的数据主要是驻留在RAM上的,因此即使全表扫描仍然是相对快的。根据一实施例,一旦查询模式已经稳定就可以添加索引,并且可以根据所提出的索引来确定性能改善。根据一实施例,如果添加索引将可能花费长时间,则可以指定“ONLINE=ON(在线=开启)”选项,以使得在最初构该建索引时表不被锁定。
根据一实施例,可以执行对云管理器内数据库的升级而不导致云管理器系统停工。换言之,即使在云管理器升级期间,云管理器继续处理已接收的请求。由此,对方案作出的改变将与之前的方案兼容。在云管理器所使用的web服务器被升级之前进行SQL方案升级。当web服务器升级时,它们可以开始使用数据库中所启用的新特性。数据库升级被限制以使得升级中所涉及的操作是快速和有效的。例如,可以添加表,并且可以向现有列添加新的可空列。可以在表的结尾处添加新的列。一般而言,避免对数据库的耗时操作。例如,在存在大量数据时,在创建时间向新添加的列添加默认值可能是非常耗时的操作。然而,添加可空列是非常快速的操作。如上面所讨论的,允许添加新的索引,但是在添加新的限制时应当采取警告,以帮助保证方案升级不会破除现有数据。例如,当添加限制时,该限制可以被设置为如下状态:该限制不被检查并且避免对现有行和潜在的错误进行高成本的验证。旧表和未使用的列在新版本被使用并且云管理器不访问这些表和列以后被移除。
一般而言,数据库的每一个中的单个行用于指示任务和/或所需状态。例如,承租人数据库235包括每个承租人的单个行。给定的承租人可以包括所需版本(Required Version)记录。该记录用于帮助确保该承租人被放置在运行所需版本的场上。例如,对于要停留在SharePoint 14SP1上的承租人1而言,该承租人的所需版本可以被设置为“14.1”,并且包括14.1的任何版本都将匹配并且任何其他版本(例如14.2.xxxx)都将不匹配。承租人记录可以包括其他项目,诸如已授权的用户数目、限额(例如所允许的总数据使用、每用户的数据使用等)、时间限制等。某个组织可能具有代表不同地理位置、组合或容量的多个承租人。根据一实施例,将承租人彼此隔开而没有(经由外联网或其他特性)对用户的明确邀请。
根据一个实施例,每个承租人都被锁定到一专用网络中。承租人被保持为相对于一小组数据库而言是本地化的。承租人或者是小的(小于将填充一个数据库的程度),在这种情况下,该承租人处于与其他承租人共享的恰好一个数据库中。这意味着共享该数据库的所有承租人需要同时升级。当承租人变大时,其可被移动到其自己的专用数据库,并且现在可以具有一个以上、但是不与其他承租人共享的数据库。在一个或多个专用数据库中维护大承租人有助于减少需要在单次升级中同时升级的数据库的数目。
类似地,工作数据库215为每个作业包括单个行。机器数据库225可以包括每个物理机、VM、场等的行。例如,机器管理器数据库225可以包括版本串。根据实施例,网络内的每个VHD、场和VM具有相关联的版本串。
根据一个实施例,云管理器包括简单日志系统,该简单日志系统可以被配置为为每个web服务调用记录日志条目。可以实现包括如所期望的那样少和/或那样多的特性的日志系统。一般而言,日志系统被用于度量使用和性能剖析。
根据一实施例,web服务API 240是使用具有ASP.net的SOAP构建的。API中的各种web方法遵循两种主要模式——获取(Get)和更新(Update)。一般而言,更新方法采取数据结构作为输入,并且返回相同的结构作为输出。输出结构返回数据库中的底层对象的当前状态,其中如果确认或其他业务逻辑改变了一些属性或者以其他方式填充了附加属性(例如记录ID或由云管理器计算出的其他值),则该底层对象可能不同于输入对象。这些更新方法被用于初始对象创建以及随后的更新。换言之,对web服务API 240的调用者可以简单地请求它们想要的配置并且它们不需要跟踪对象是否已经存在。另外,这意味着更新是幂等的,因为相同更新调用可以进行两次,其中相同效果仅仅发生一次。根据一示例实施例,更新方法可以包括LastUpdated(最后更新)属性。当存在LastUpdated属性时,云管理器200在LastUpdated的值不与数据库中当前存储的值匹配的情况下拒绝该更新。一些更新方法包括在第一次调用该方法时被设置并且在该方法的其他调用时未被设置的属性。
云管理器200被配置为避免使用回调。由于回调可能是不可靠的,因此与云管理器200交互的客户可以在他们想要检查更新状况时使用web服务API来检查对象状况。根据一实施例,对更新方法的调用致使云管理器200将底层对象的状态设置为“供应”,并且当更新完成时,该状态被设置为“活动”。
图3示出了存储在数据库的行内的示例性作业记录。如所示那样,记录300包括作业标识符302、类型304、数据306、所有者308、步骤310、上一次运行312、期满时间314、下次时间316、状态318以及状况320。
一般而言,针对所请求执行的每个任务,云管理器都在数据库350(例如,图2的工作数据库215)中创建记录。
作业标识符302用于为所请求的任务指定唯一的标识符。
类型304指定要执行的任务。例如,类型可以包括将要执行的脚本的名称。例如,当任务是运行名称为“DeployVM.ps1”的脚本时,则数据306可以包括该标识符(例如“-VMID 123”)。这允许将新任务类型添加到系统,而不需要对该系统的经编译的或其他二进制部分进行任何改变。
数据306用于存储与该任务相关联的数据。例如,数据可以被设置成其上将执行该任务的承租人、机器、网络、VM等等。数据306还可以存储数据库中的值被设置成的一个或多个值。运行该任务的进程可以注意作业记录以查看所期望的机器数目被设置成何值。脚本使用数据库中的值来执行操作。
所有者308指定进程/执行该进程的机器。例如,当云管理器机器开始执行作业时,该机器用该机器的ID来更新记录的所有者308部分。
步骤310提供对当前脚本的步骤的指示。例如,脚本可以将任务划分成任何数目的步骤。当该进程完成该脚本的步骤时,步骤310被更新。进程还可以查看步骤310以确定在该脚本中要执行什么步骤以及避免必须重新执行之前完成的步骤。
上一次运行312提供脚本上一次启动的时间。每当脚本启动时,上一次运行时间都被更新。
期满时间314是指示该进程应当何时终止的时间。根据一实施例,期满时间是在进程启动以后的预定的时间量(例如5分钟、10分钟...)。期满时间可以通过经由web服务API的请求进程来更新。
下次时间316是指示任务下次应当何时被执行的时间。例如,进程可以在完成一步骤以后停止,并且被指示等待直到所指定的下次时间316以恢复处理。
状态318指示当前状态,并且状况320指示作业的状况(例如已创建、已挂起、已恢复、执行中、已删除)。
如果数据库中的重复行具有相同的任务类型和数据值,则它们可以在被执行以前被移除。例如,可以进行多个请求以执行存储在数据库的多个行中的相同任务。
作业可以具有相关联的一个或多个锁355。如果锁不可用,则作业将不被调度运行,直到锁可用。这些锁可以以许多不同的方式来配置。例如,锁可以基于互斥、信号量等等。一般而言,互斥防止代码被一个以上线程并发地执行,而信号量将共享资源的同时使用的数目限制为最高为最大数目。根据一实施例,锁是表示资源的字符串。该资源可以是任何类型的资源。例如,锁可以是场、机器、承租人等等。一般而言,锁用于推迟一个或多个任务的执行。每个作业都可以指定其在运行以前需要的一个或多个锁。作业可以在其操作期间的任何时间释放锁。当存在锁时,作业不被调度。需要一个以上锁的作业立刻请求被要求的所有锁。例如,已经拥有锁的作业可以不请求附加的锁。这样的方案有助于防止由多个作业间的循环锁依赖性造成的可能的死锁情况。
图4示出了用于网络的示例性系统400,该网络包括用于在线服务的前端和后端服务器。示例性系统400包括客户机402和404、网络406、负载平衡器408、WFE服务器410、412、414以及后端服务器416-419。可使用更多或更少的客户机、WFE、后端服务器、负载平衡器和网络。另外,由系统400中的组件所提供的一些功能可以由其他组件来执行。例如,一些负载平衡可以在WFE中执行。
在示例实施例中,客户机402和404是诸如台式计算机、膝上型计算机、终端计算机、个人数字助理、或蜂窝电话设备之类的计算设备。客户机402和404可包括输入/输出设备、中央处理单元(“CPU”)、数据存储设备和网络设备。在本申请中,术语客户机和客户机计算机互换地使用。
WFE 410、412和414可由客户机402和404经由负载平衡器408通过网络406访问。如所讨论的那样,这些服务器可以在场中配置。后端服务器416对WFE 410、412和414是可访问的。负载平衡器408是专用网络设备和/或一个或多个服务器计算机。负载平衡器408、420、WFE 410、412和414以及后端服务器416可包括输入/输出设备、中央处理单元(“CPU”)、数据存储设备和网络设备。在示例实施例中,网络406是因特网,并且客户机402和404可以远程地访问WFE 410、412和414以及连接到WFE 410、412和414的资源。
在示例实施例中,系统400是在线的、基于浏览器的文档协作系统。在线的、基于浏览器的文档协作系统的一个示例是来自美国华盛顿州雷蒙德市的微软公司的Microsoft在系统400中,一个或多个后端服务器416-419是SQL服务器,例如,来自美国华盛顿州雷蒙德市的微软公司的SQL服务器。
WFE 410、412和414提供客户机402和404与后端服务器416-419之间的接口。负载平衡器408、420将请求从自客户机402和404定向到WFE 410、412和414,以及从WFF定向到后端服务器416-419。负载平衡器408使用诸如WFE的利用、连接到WFE的连接数目和整体WFE性能之类的因素来确定哪个WFE服务器接收客户机请求。类似地,负载平衡器420使用诸如后端服务器的利用、连接到服务器的连接数目和整体性能之类的因素来确定哪个后端服务器接收请求。
客户机请求的示例可以是:访问存储在后端服务器中的一个上的文档;编辑存储在后端服务器(例如416-419)上的文档;或者将文档存储在后端服务器上。当负载平衡器408通过网络406接收客户机请求时,负载平衡器408确定WFE服务器410、412和414中的哪个接收该客户机请求。类似地,负载平衡器420确定后端服务器416-419中的哪个从该WFE服务器接收请求。后端服务器可以被配置为存储一个或多个承租人(例如顾客)的数据。
现在参考图5,将描述在各实施例中利用的计算机500的说明性计算机体系结构。图5所示的计算机体系结构可被配置为服务器、台式或移动计算机,并且包括中央处理单元5(“CPU”)、包括随机存取存储器9(“RAM”)和只读存储器(“ROM”)11的系统存储器7、以及将存储器耦合至中央处理单元(“CPU”)5的系统总线12。
基本输入/输出系统存储在ROM 11中,所述基本输入/输出系统包含帮助在诸如启动期间在计算机内元件之间传递信息的基本例程。计算机500还包括大容量存储设备14以用于存储操作系统16、应用程序10、数据存储24、文件、以及与云系统100的执行和同云系统100的交互相关的云程序26。
大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)连接到CPU 5。大容量存储设备14及其相关联的计算机可读介质为计算机500提供非易失性的存储。虽然此处包含的计算机可读介质的描述针对诸如硬盘或CD-ROM驱动器等大容量存储设备,但是计算机可读介质可以是能够由计算机100访问的任何可用介质。
作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、可擦除可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPROM”)、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机500访问的任何其它介质。
根据各实施例,计算机500可以使用通过诸如因特网等网络18至远程计算机的逻辑连接在联网环境中操作。计算机500可以通过连接至总线12的网络接口单元20来连接到网络18。网络连接可以是无线的和/或有线的。网络接口单元20也可用于连接到其它类型的网络和远程计算机系统。计算机500还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器22,这些设备包括键盘、鼠标或者电子指示笔(未在图5中示出)。类似地,输入/输出控制器22可以为显示屏28、打印机或其它类型的输出设备提供输出。
如上面简要提到的那样,多个程序模块和数据文件可以存储在计算机500的大容量存储设备14和RAM 9内,包括适于控制联网计算机的操作的操作系统16,比如华盛顿州雷蒙德市的微软公司的操作系统。大容量存储设备14和RAM 9还可以存储一个或多个程序模块。具体而言地,大容量存储设备14和RAM 9可以存储诸如云程序26之类的执行与云系统相关的任务的一个或多个应用程序。
图6示出了使用硬和软限制来控制和管理对象在主机上的部署的机器管理器.如所示出的,系统600示出云管理器605,云管理器605包括工作管理器110、机器管理器610、应用管理器120、数据存储612、脚本130、限制615以及web服务API 620。机器管理器610被用于确定对象放置并且主存并控制跨不同网络(网络1、网络2)的对象的自动部署。尽管仅仅示出了两个网络,但是一般许多更多的网络(例如十个、一百个、一千个、一万个等等)被管理。云管理器605操作,并且可以与上面所示和所描述的云管理器系统类似地来配置。根据一实施例,机器管理器610被配置为管理和部署用在诸如SharePoint在线服务之类的在线内容协作服务中的主机(例如,物理和虚拟机的部署、数据库、诸如此类)上的对象。例如,机器管理器610可将虚拟机放置在物理机上、数据库放置在SQL服务器上,诸如此类。应用管理器120可将承租人放置在数据库/场中、将承租人放置在目录中,诸如此类。一般来说,管理器可将任何类型的对象放置在任何类型的主机上。机器管理器610可以用于为其他在线服务部署对象和管理机器。
机器管理器610理解网络的物理拓扑,并且跟踪作为每个网络内的成员的物理机器和虚拟机的位置。机器管理器610知道网络内的每个机架的位置以及位于该机架内的每个机器。机器管理器610还跟踪在每个机器上使用的软件的具体版本以及安装在每个机器上的虚拟机(VM)映像。每个VM映像都对应于不同的服务器角色。
机器管理器610还被配置成为每个场内的每个(物理的和虚拟的)机器确定角色。该确定可以手动地和/或动态地执行。例如,网络可以最初被定义为包括15个物理机和数个虚拟机,其中5个被编组为内容场660,5个位于联合服务场665中,并且5个位于SQL场670中。在在线服务的操作期间,机器管理器610可以收集与网络内的场和机器相关的性能特性,并且基于所收集的性能特性动态地调整网络的资源。例如,当确定内容场过载时,机器管理器610可以创建一作业,该作业将另一虚拟机部署在内容场内以提供附加容量。还可以监控机器/网络的健康。机器管理器610可以替换网络内的机器,将通信量定向到新的一组机器,和/或响应于对机器的健康的确定来执行一些其他动作。例如,如果一个或多个虚拟机停工,则机器管理器610部署新的虚拟机并且将通信量定向到新部署的虚拟机。
机器管理器610跟踪作为执行服务工作的实际服务器的虚拟机,并且将该信息存储在的数据存储中,诸如存储在数据存储612内的数据库内。如所讨论的那样,每个VM都具有代表特定服务器的功能的特定角色,并且它们进一步被编组为场,这些场通常是一组一起工作的运行完全相同版本软件的机器。
当新软件可用时,机器管理器610管理新软件的部署。一般而言,场/网络内的各个机器不被升级或打补丁。替代地,机器管理器610启动由工作管理器110所管理的工作,所述工作管理器部署包括该新软件的新的机器和场。在用新软件配置新场以后,机器管理器610将通信量/负载移动到该新场,并且阻止通信量去往旧场。
数据存储(例如数据存储612)被配置成存储关于补丁和虚拟硬盘(VHD)映像的信息,所述虚拟硬盘映像驻留在各个远程网络中的数据存储上并且正被使用和/或将被部署在一个或多个网络中的一个或多个机器上。根据一实施例,使用VHD文件格式,该格式指定可以驻留在封装在单个文件内的本机主文件系统上的虚拟机硬盘。用在特定网络内的映像可以移动到全局共享645和/或网络本地的网络共享(例如网络共享655)。
根据一实施例,机器管理器610并不在机器上实际安装软件。相反,如前面所讨论的那样,在被执行时执行完成该任务的动作的作业被放置在作业队列中。一旦映像被安装在机器上时,机器管理器610启动机器运行。可对部署进行角色专用的定制的0个或更多角色专用脚本可以在虚拟机启动以后运行。这些脚本可以位于网络的共享(例如网络共享655)、全局共享645、脚本630内或某个其他位置处。
在配置期间,向执行脚本的进程提供所需的口令以设置和部署机器。例如,当执行部署场的进程时,向部署场进程提供口令,使得可以配置和启动场。在安装映像和对配置进行任何定制的期间,场不连接到在线服务,并且因此不具有任何通信量。一旦通信量被定向到场,则机器就被锁定并且口令不能在机器上或通过web接口被访问。
在机器管理器创建部署新虚拟机的作业之前,机器管理器为新虚拟机选择位置。机器管理器610被配置成在确定将对象放置在在线系统内的主机上的何处时使用包括硬和软限制的放置限制(例如限制615)。主机是包括对象的实体。例如,主机可以是物理机、数据库、场、森林,诸如此类。对象是存在于主机上的实体。例如,对象可以是虚拟机、承租人、数据库、用户,诸如此类。对象和主机具有多对一的关系。主机可包含许多对象,但每个对象属于一个主机。
当对象要被放置时(即在部署、重新配置期间),机器管理器610尝试将符合硬限制并且比软限制优先的对象放置在主机上。硬限制从主机的选择池中消除了不适于放置对象的主机。软限制是确定哪些主机比其它主机更适合对象放置的优先级。
限制还可被归类。例如,可能存在高可用性限制和性能限制。高可用性限制被用于帮助当主机故障时提供在线服务的总体可用性。例如,高可用性限制可规定要将虚拟机放置在尚未具有相同角色的虚拟机以及处于同一场中的主机上。性能限制被用于帮助防止主机过量加载对象而使其变为瓶颈。
如所讨论的,云管理器605所管理的在线服务被配置为高度可用。例如,在线系统的每个资源可被冗余地部署。可存在资源的任意数量的冗余部署。例如,可存在两个、十个、二十个、一百个等等相似的冗余资源。
机器管理器610使用限制615来帮助确保冗余资源(例如,场和网络内的角色)以避免具有单点故障的方式被放置在主机(例如物理机)上。例如,将一个场的全部机器放置在单个机架上将是一个单点故障。当可能时,尝试避免单点故障。例如,当多个机架可用时,场中的机器被分布在各个机架上。
类似的,执行场的相同角色的虚拟机应当被硬限制于不同的物理机。出于提供对于一个场的高可用性的目的来使用该场内的冗余虚拟机角色。由于物理机被视为单点故障,因此场内冗余的任何角色可被限制于被放置在不同的物理机上。以此方式,由虚拟机执行的角色跨各个物理机分布,由此减少了物理机故障的影响。
机器管理器610将限制应用于各主机,以确定如何将对象放置在采用包括硬限制和优化的高可用性模型的各主机上。硬限制可包括许多不同限制。以下是在将对象放置在主机上时可采用的示例性的硬限制。可采用更多或更少的硬限制。
相同网络限制规定主机位于与将要被部署对象的场相同的网络内。物理机与各网络(例如,网络1、网络2)中个的一个相关联。主存在物理机上的对象应属于位于网络内的场。例如,主存在机器上的虚拟机应属于寄宿在该网络中的场。
正确类型限制规定主机具有用于处理对象的正确的类型。物理机类型被定义成容纳不同的硬件SKU和用于特定角色的配置。例如,可存在为SQL、特定的虚拟机角色、数据库的部署等设计的物理机。
运行限制规定主机处于运行状态。如果物理机不在运行,则对象的部署不会成功。
容量限制规定主机包括足够的容量以容纳对象。例如,对象需要一定水平的处理能力、存储器、存储等等。
冗余限制规定主机尚未具有相同类型的对象。某些对象可要求机器的完全使用。例如,根据一实施例,SQL机器要求物理机的全部性能能力。角色限制规定主机尚未具有多于一定数量(例如,1、2、……)的执行相同角色的对象。场和网络内的冗余角色是在场内取得高可用性的机制。这一硬限制有助于确保在物理机故障的情况下,场能够保持对于在线服务可用。.如另一实施例,在同一物理机上支持两个web前端服务器,但不同类型的第三虚拟机也可共享同一机器。
备份限制规定主机尚未主存可被用作备份的角色。例如,如果角色中的一个不可用时(例如在CCA上进行了供应任务,但在CCA不可用的情况下故障恢复(failback)到CCT机器),某些角色可能够执行另一角色的任务。
除了硬限制之外,还可存在任意数量的软限制优化,其可被应用以帮助将对象放置在主机上。根据一实施例,软限制被主要设计为将对象跨各个主机分布以倾向于整体上表现更好的系统,而不是最大化以供使用。换句话说,将偏好赋予各个空的主机,而不是尝试将尽可能多的虚拟机放置在一个主机上。取决于系统的要求,这一偏好可改变。
在线服务的一些示例性软限制包括:相同类型的对象应驻留在不同主机上;主机应当具有尽可能多的空闲资源;主机应驻留在尚未包括相同类型和角色的对象的机架上;主机不应已具有相同角色的虚拟机;主机应当被放置在最近可用版本的物理机上;对象应被放置在具有最多处理可用的主机上;诸如此类。软限制可被排序并区分优先级别以帮助主机的选择。例如,将对象放置在具有最多可用资源(例如,处理能力、存储器、存储中的一个或多个)的主机上可被优先化为最高,使得对象利用全部的可用主机。
当存在不止一个对象待放置时,机器管理器610可使用特性来确定放置对象的顺序。例如,对象的大小、对象的角色、对象的类型等可被用于确定顺序。例如,为了有助于防止许多小尺寸的对象(例如虚拟机、承租人)已被放置在主机上并且不再有任何空间来放置较大尺寸的对象的情况,对象可从最小到最大来排序。
这些软限制用作放置优先次序,并且意在获取满足硬限制的候选主机的列表,并通过尽可能多的软限制对它们进行过滤,直到抵达剩下“最佳选择”的那一点。在即使全部的标准都被应用之后还存在多个可用的候选机器的情况下,可随机选择或基于不同的准则选择那些可用的候选机器中的一个。即使当主机不符合软限制的期望时,对象仍将被放置在主机上,因为这些软限制被用于对放置进行区分优先级而不是阻止放置。
当硬限制不能被满足时,云管理器605可掷出指示部署不能成功的异常,该异常具有由硬限制所定义的哪一或哪些限制不能被满足的细节。该异常可指示自动放置逻辑不能找到符合所有被要求的放置限制的主机。
现在参考图7,将描述一种使用硬和软限制来将对象放置在主机上的过程。
当阅读对在此提供的例程的讨论时,应当理解,各实施例的逻辑操作被实现为(1)运行于计算系统上的一系列计算机实现的动作或程序模块,和/或(2)计算系统内互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算系统的性能要求来选择的。因此,所例示的并且构成此处所描述的实施例的逻辑操作被不同地表示为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及它们的任何组合来实现。
参考图7,在开始操作后,过程700流向操作710,在操作710中对将对象放置在主机上作出确定。可以出于许多不同原因来部署对象。例如,一个或多个场可被部署,新的网络可被部署,机器可被添加,数据库可被添加,承租人可被添加,诸如此类。该确定可以通过经由诸如上述web服务API之类的API的请求来进行,和/或可以自动地确定。例如,当场的目标改变时,新的场可被手动地/自动地部署,并且对象可被自动放置在场的各主机上。主机是包括对象的任意实体。例如,主机可以是物理机、数据库服务器、数据库、场、微软活动目录森林(Microsoft Active Directory forest),诸如此类。对象是存在于主机上的实体。例如,对象可以是虚拟机、承租人、数据库、用户,诸如此类。
移到操作720,获取用于放置对象的放置限制。放置限制被用于确定合适的或偏好的主机以供放置对象。根据一实施例,限制包括硬限制和软限制。硬限制从主机池中消除了对于被放置的对象不适合的主机。软限制是确定哪些主机比其它主机更适合对象放置的优先级。限制可从数据存储中获得和/或通过另一方式获得。例如,可通过如所描述的API来接收限制。
流到操作730,通过应用硬限制来对可用主机的池进行过滤。根据一实施例,硬限制涉及即使当主机故障时也提供在线服务的总体可用性。可以用不同的方式来确定待使用的主机池。例如,主机池可包含所有的现存主机,或者它可包含所有符合最初准则的主机。
移动到判定操作740,对在应用硬限制后是否存在任何剩余的主机作出确定。当不存在任何剩余的主机时,过程移动到操作750,在此掷出指示不存在符合所定义的限制的可用主机的异常。当存在剩余的主机时,过程移动到操作760。
在操作760,针对剩余主机池应用软限制。软限制被用于从剩余主机池中选择最优主机。根据一实施例,软限制被主要设计为将对象的放置跨各个主机分布以倾向于整体上表现更好的系统,而不是最大化单个主机以供使用。
移动到操作770,主机被选择。可以用许多不同的方式选择主机。例如,可基于根据所应用的软限制而对主机作出的优先次序来选择主机。也可从剩余主机中随机选择主机。
流到操作780,对象被部署在所选择的主机上。可在云系统内请求作业,从而启动将对象部署到主机上的进程。随后该过程移至结束框并返回以处理其它动作。
以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。

Claims (10)

1.一种用于在在线服务中将对象放置在主机上的方法,包括:
确定何时将对象放置在在线服务中的一主机上,其中所述在线服务包括数据库、虚拟机(VM)以及物理机,其中所述物理机被布置在执行网络中的角色的场中(710);
获取用于所述对象的放置限制,所述放置限制包括硬限制和软限制,其中硬限制从主机的选择池中消除了不适于放置所述对象的主机,其中软限制确定哪些主机相比于其它主机更为适合(720);
对网络内的主机应用所述硬限制,这产生剩余主机池(730),其中所述硬限制包括高可用性限制和性能限制,其中应用所述高可用性限制消除了一个或多个主机以确保所述网络内具有冗余角色的对象被放置在不同主机上;
对所述剩余主机池应用软限制,这产生所述选择主机池(760);
从所述选择主机池中自动选择在其上放置对象的主机(770);以及
将所述对象自动部署在所选择的主机上(780)。
2.如权利要求1所述的方法,其特征在于,要放置在主机上的对象是以下之一:虚拟机(VM)、承租人以及数据库,其中主机是以下之一:物理机、数据库、场、保持物理机的机架、以及虚拟机(VM)(600)。
3.如权利要求2所述的方法,其特征在于,当对象是虚拟机而主机是物理机时,所述硬限制包括对所述主机应用以下限制中的两个或更多:主机位于与将要被部署虚拟机的场相同的网络内;主机是基于虚拟机的角色的正确的类型;主机处于运行状态;主机包括容纳所述虚拟机的容量;以及主机尚未具有相同角色和场的虚拟机(600)。
4.如权利要求1所述的方法,其特征在于,所述放置限制被用于将所述网络内具有冗余角色的对象放置在不同主机上,以避免网络内的单点故障(610)。
5.如权利要求1所述的方法,其特征在于,当对象是虚拟机而主机是物理机时,所述硬限制包括对所述主机应用以下限制中的两个或更多:主机是正确类型;主机处于运行状态;主机包括用于容纳所述对象的容量;以及主机尚未具有相同类型的对象(600)。
6.如权利要求1所述的方法,其特征在于,所述软限制是这样的优化:在被应用于所述剩余主机池时,将相同类型的对象的部署分布在不同主机上(760)。
7.一种用于在在线服务中将对象放置在主机上的系统,包括:
用于确定何时将对象放置在在线服务中的一主机上的装置,其中所述在线服务包括数据库、虚拟机(VM)以及物理机,其中所述物理机被布置在执行网络中的角色的场中(710);
用于获取用于所述对象的放置限制的装置,所述放置限制包括硬限制和软限制,其中硬限制从主机的选择池中消除了不适于放置所述对象的主机,其中软限制确定哪些主机相比于其它主机更为适合(720);
用于对网络内的主机应用所述硬限制的装置,这产生剩余主机池(730),其中所述硬限制包括高可用性限制和性能限制,其中应用所述高可用性限制消除了一个或多个主机以确保所述网络内具有冗余角色的对象被放置在不同主机上;
用于对所述剩余主机池应用软限制的装置,这产生所述选择主机池(760);
用于从所述选择主机池中自动选择在其上放置对象的主机(770)的装置;以及
用于将所述对象自动部署在所选择的主机上(780)的装置。
8.一种用于为在线服务将对象部署在主机上的方法,包括:
确定何时将对象放置在主机上,其中所述在线服务包括网络(600),所述网络包含物理机、用于保持物理机的机架、虚拟机(VM)以及数据库,其中所述物理机被布置在各自执行一个角色的场中;其中要放置在主机上的对象是以下之一:虚拟机(VM)、承租人以及数据库;其中所述主机是以下之一:物理机、数据库、场、机架、以及虚拟机(710);
获取用于对象的放置限制,所述放置限制包括硬限制和软限制,其中硬限制从主机的选择池中消除了不适于放置所述对象的主机,其中软限制确定哪些主机相比于其它主机更为适合(720);
对网络内的主机应用所述硬限制,这产生剩余主机池(730),其中所述硬限制包括高可用性限制和性能限制,其中应用所述高可用性限制消除了一个或多个主机以确保所述网络内具有冗余角色的对象被放置在不同主机上;
对所述剩余主机池应用所述软限制,这产生所述选择主机池(760);
从所述选择主机池中自动选择将在其上放置所述对象的主机(770);以及
将所述对象自动部署在所选择的主机上(780)。
9.如权利要求8所述的方法,其特征在于,当对象是虚拟机而主机是物理机时,所述硬限制包括对所述主机应用以下限制中的两个或更多:主机位于与将要被部署虚拟机的场相同的网络内;主机是基于虚拟机的角色的正确的类型;主机处于运行状态;主机包括容纳所述虚拟机的容量;以及主机尚未具有相同角色和场的虚拟机(730)。
10.如权利要求8所述的方法,其特征在于,当对象是数据库而主机是SQL服务器机器时,所述硬限制包括对所述主机应用以下限制中的两个或更多:主机是正确的类型;主机处于运行状态;主机包括用于容纳数据库的容量(730)。
CN201110340491.0A 2010-10-20 2011-10-19 使用硬和软限制将对象放置在主机上 Active CN102426543B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/908,681 US9075661B2 (en) 2010-10-20 2010-10-20 Placing objects on hosts using hard and soft constraints
US12/908,681 2010-10-20

Publications (2)

Publication Number Publication Date
CN102426543A CN102426543A (zh) 2012-04-25
CN102426543B true CN102426543B (zh) 2015-10-21

Family

ID=45960531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110340491.0A Active CN102426543B (zh) 2010-10-20 2011-10-19 使用硬和软限制将对象放置在主机上

Country Status (5)

Country Link
US (2) US9075661B2 (zh)
EP (1) EP2630569A4 (zh)
CN (1) CN102426543B (zh)
TW (1) TWI520062B (zh)
WO (1) WO2012054405A2 (zh)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US8843633B2 (en) * 2011-03-23 2014-09-23 Bmc Software, Inc. Cloud-based resource identification and allocation
US9736065B2 (en) 2011-06-24 2017-08-15 Cisco Technology, Inc. Level of hierarchy in MST for traffic localization and load balancing
US8782242B2 (en) * 2011-10-13 2014-07-15 Vmware, Inc. Software application placement using computing resource containers
US8908698B2 (en) 2012-01-13 2014-12-09 Cisco Technology, Inc. System and method for managing site-to-site VPNs of a cloud managed network
US10387201B2 (en) * 2012-06-26 2019-08-20 Vmware, Inc. Storage performance-based virtual machine placement
US20140075170A1 (en) * 2012-09-12 2014-03-13 International Business Machines Corporation Automated firmware voting to enable multi-enclosure federated systems
US9185156B2 (en) 2012-11-13 2015-11-10 Google Inc. Network-independent programming model for online processing in distributed systems
CN103019861A (zh) * 2012-12-11 2013-04-03 华为技术有限公司 虚拟机分配方法及装置
US9098665B2 (en) 2013-03-13 2015-08-04 Synopsys, Inc. Prioritized soft constraint solving
US9634886B2 (en) * 2013-03-14 2017-04-25 Alcatel Lucent Method and apparatus for providing tenant redundancy
US9043439B2 (en) 2013-03-14 2015-05-26 Cisco Technology, Inc. Method for streaming packet captures from network access devices to a cloud server over HTTP
US20140359213A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Differencing disk improved deployment of virtual machines
CN106055381B (zh) 2013-10-23 2019-10-22 华为技术有限公司 一种创建虚拟机的方法和装置
US10193963B2 (en) * 2013-10-24 2019-01-29 Vmware, Inc. Container virtual machines for hadoop
CN103580923B (zh) * 2013-11-08 2017-02-15 华为技术有限公司 软件部署的方法和装置
WO2015156822A1 (en) * 2014-04-11 2015-10-15 Hewlett Packard Development Company, L.P. Environment preference
US9727379B1 (en) 2014-04-14 2017-08-08 Google Inc. Specifying behavior among a group of computing tasks
US9755858B2 (en) 2014-04-15 2017-09-05 Cisco Technology, Inc. Programmable infrastructure gateway for enabling hybrid cloud services in a network environment
US9473365B2 (en) 2014-05-08 2016-10-18 Cisco Technology, Inc. Collaborative inter-service scheduling of logical resources in cloud platforms
US10122605B2 (en) 2014-07-09 2018-11-06 Cisco Technology, Inc Annotation of network activity through different phases of execution
US9825878B2 (en) 2014-09-26 2017-11-21 Cisco Technology, Inc. Distributed application framework for prioritizing network traffic using application priority awareness
US20170329645A1 (en) * 2014-12-19 2017-11-16 Intel Corporation Apparatus and method for adding nodes to a computing cluster
US10050862B2 (en) 2015-02-09 2018-08-14 Cisco Technology, Inc. Distributed application framework that uses network and application awareness for placing data
US10708342B2 (en) 2015-02-27 2020-07-07 Cisco Technology, Inc. Dynamic troubleshooting workspaces for cloud and network management systems
US10037617B2 (en) 2015-02-27 2018-07-31 Cisco Technology, Inc. Enhanced user interface systems including dynamic context selection for cloud-based networks
US10382534B1 (en) 2015-04-04 2019-08-13 Cisco Technology, Inc. Selective load balancing of network traffic
US10476982B2 (en) 2015-05-15 2019-11-12 Cisco Technology, Inc. Multi-datacenter message queue
US10034201B2 (en) 2015-07-09 2018-07-24 Cisco Technology, Inc. Stateless load-balancing across multiple tunnels
US9659081B1 (en) * 2015-08-12 2017-05-23 Databricks Inc. Independent data processing environments within a big data cluster system
US20170068555A1 (en) * 2015-09-04 2017-03-09 International Business Machines Corporation Operation-specific virtual machine placement constraints
US10572626B2 (en) * 2015-10-05 2020-02-25 Ricoh Co., Ltd. Advanced telemedicine system with virtual doctor
US11005682B2 (en) 2015-10-06 2021-05-11 Cisco Technology, Inc. Policy-driven switch overlay bypass in a hybrid cloud network environment
US10067780B2 (en) 2015-10-06 2018-09-04 Cisco Technology, Inc. Performance-based public cloud selection for a hybrid cloud environment
US10462136B2 (en) 2015-10-13 2019-10-29 Cisco Technology, Inc. Hybrid cloud security groups
US10523657B2 (en) 2015-11-16 2019-12-31 Cisco Technology, Inc. Endpoint privacy preservation with cloud conferencing
US10205677B2 (en) 2015-11-24 2019-02-12 Cisco Technology, Inc. Cloud resource placement optimization and migration execution in federated clouds
US10084703B2 (en) 2015-12-04 2018-09-25 Cisco Technology, Inc. Infrastructure-exclusive service forwarding
US10367914B2 (en) 2016-01-12 2019-07-30 Cisco Technology, Inc. Attaching service level agreements to application containers and enabling service assurance
US10228924B2 (en) * 2016-04-19 2019-03-12 International Business Machines Corporation Application deployment and monitoring in a cloud environment to satisfy integrity and geo-fencing constraints
US10129177B2 (en) 2016-05-23 2018-11-13 Cisco Technology, Inc. Inter-cloud broker for hybrid cloud networks
US10659283B2 (en) 2016-07-08 2020-05-19 Cisco Technology, Inc. Reducing ARP/ND flooding in cloud environment
US10432532B2 (en) 2016-07-12 2019-10-01 Cisco Technology, Inc. Dynamically pinning micro-service to uplink port
US10382597B2 (en) 2016-07-20 2019-08-13 Cisco Technology, Inc. System and method for transport-layer level identification and isolation of container traffic
US10263898B2 (en) 2016-07-20 2019-04-16 Cisco Technology, Inc. System and method for implementing universal cloud classification (UCC) as a service (UCCaaS)
US10142346B2 (en) 2016-07-28 2018-11-27 Cisco Technology, Inc. Extension of a private cloud end-point group to a public cloud
US10567344B2 (en) 2016-08-23 2020-02-18 Cisco Technology, Inc. Automatic firewall configuration based on aggregated cloud managed information
US10523592B2 (en) 2016-10-10 2019-12-31 Cisco Technology, Inc. Orchestration system for migrating user data and services based on user information
US11044162B2 (en) 2016-12-06 2021-06-22 Cisco Technology, Inc. Orchestration of cloud and fog interactions
CN108205554A (zh) * 2016-12-16 2018-06-26 北京国双科技有限公司 数组对象的排序方法及装置
US10326817B2 (en) 2016-12-20 2019-06-18 Cisco Technology, Inc. System and method for quality-aware recording in large scale collaborate clouds
US10334029B2 (en) 2017-01-10 2019-06-25 Cisco Technology, Inc. Forming neighborhood groups from disperse cloud providers
US10552191B2 (en) 2017-01-26 2020-02-04 Cisco Technology, Inc. Distributed hybrid cloud orchestration model
US10320683B2 (en) 2017-01-30 2019-06-11 Cisco Technology, Inc. Reliable load-balancer using segment routing and real-time application monitoring
US10671571B2 (en) 2017-01-31 2020-06-02 Cisco Technology, Inc. Fast network performance in containerized environments for network function virtualization
US11005731B2 (en) 2017-04-05 2021-05-11 Cisco Technology, Inc. Estimating model parameters for automatic deployment of scalable micro services
US10439877B2 (en) 2017-06-26 2019-10-08 Cisco Technology, Inc. Systems and methods for enabling wide area multicast domain name system
US10382274B2 (en) 2017-06-26 2019-08-13 Cisco Technology, Inc. System and method for wide area zero-configuration network auto configuration
US10892940B2 (en) 2017-07-21 2021-01-12 Cisco Technology, Inc. Scalable statistics and analytics mechanisms in cloud networking
US10425288B2 (en) 2017-07-21 2019-09-24 Cisco Technology, Inc. Container telemetry in data center environments with blade servers and switches
US10601693B2 (en) 2017-07-24 2020-03-24 Cisco Technology, Inc. System and method for providing scalable flow monitoring in a data center fabric
US10541866B2 (en) 2017-07-25 2020-01-21 Cisco Technology, Inc. Detecting and resolving multicast traffic performance issues
US11113088B2 (en) * 2017-07-26 2021-09-07 Dell Products, L.P. Generating and managing groups of physical hosts associated with virtual machine managers in an information handling system
US10353800B2 (en) 2017-10-18 2019-07-16 Cisco Technology, Inc. System and method for graph based monitoring and management of distributed systems
US11481362B2 (en) 2017-11-13 2022-10-25 Cisco Technology, Inc. Using persistent memory to enable restartability of bulk load transactions in cloud databases
US10705882B2 (en) 2017-12-21 2020-07-07 Cisco Technology, Inc. System and method for resource placement across clouds for data intensive workloads
US11595474B2 (en) 2017-12-28 2023-02-28 Cisco Technology, Inc. Accelerating data replication using multicast and non-volatile memory enabled nodes
US10511534B2 (en) 2018-04-06 2019-12-17 Cisco Technology, Inc. Stateless distributed load-balancing
US10728361B2 (en) 2018-05-29 2020-07-28 Cisco Technology, Inc. System for association of customer information across subscribers
US10904322B2 (en) 2018-06-15 2021-01-26 Cisco Technology, Inc. Systems and methods for scaling down cloud-based servers handling secure connections
US10764266B2 (en) 2018-06-19 2020-09-01 Cisco Technology, Inc. Distributed authentication and authorization for rapid scaling of containerized services
US11019083B2 (en) 2018-06-20 2021-05-25 Cisco Technology, Inc. System for coordinating distributed website analysis
KR102116814B1 (ko) * 2018-06-22 2020-05-29 주식회사 티맥스 소프트 어플리케이션 무중단 배포 시 응용 프로그램 버전 정합성을 위한 방법 및 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램
US10819571B2 (en) 2018-06-29 2020-10-27 Cisco Technology, Inc. Network traffic optimization using in-situ notification system
US10904342B2 (en) 2018-07-30 2021-01-26 Cisco Technology, Inc. Container networking using communication tunnels
US10713082B2 (en) * 2018-11-28 2020-07-14 Sap Se Cloud platform integration load balancer
US11144342B2 (en) * 2019-03-27 2021-10-12 International Business Machines Corporation Workload execution in a distributed computing infrastructure on candidate nodes identified through plural test deployments
CN110347475B (zh) * 2019-06-19 2022-03-04 东软集团股份有限公司 服务调用方法、服务调用装置及服务调用系统
TWI795892B (zh) * 2021-08-26 2023-03-11 新加坡商鴻運科股份有限公司 資源調度方法、伺服器及存儲介質
US12058006B2 (en) 2022-03-08 2024-08-06 International Business Machines Corporation Resource topology generation for computer systems
US20230362234A1 (en) * 2022-05-04 2023-11-09 Microsoft Technology Licensing, Llc Method and system of managing resources in a cloud computing environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1989489A (zh) * 2004-05-20 2007-06-27 Sap股份公司 在运行时系统中共享对象
WO2010090899A1 (en) * 2009-02-04 2010-08-12 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
KR100980599B1 (ko) * 2010-01-19 2010-09-07 코아인텍주식회사 입출력 공유장치를 이용한 클라우드 서비스 시스템

Family Cites Families (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619747B2 (ja) * 1984-01-18 1994-03-16 株式会社日立製作所 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム
US5913032A (en) 1994-04-04 1999-06-15 Inprise Corporation System and methods for automatically distributing a particular shared data object through electronic mail
US5553215A (en) 1994-09-21 1996-09-03 Microsoft Corporation Method and system of sharing common formulas in a spreadsheet program and of adjusting the same to conform with editing operations
GB2294181A (en) 1994-10-04 1996-04-17 Motorola Ltd Handover in a multilayer cellular radio system
US5835910A (en) 1994-11-10 1998-11-10 Cadis, Inc. Method and system for comparing attributes in an object-oriented management system
US6157934A (en) 1995-10-24 2000-12-05 Ultimus, L.L.C. Method and apparatus for using distributed spreadsheets in a client/server architecture for workflow automation
US5857211A (en) 1996-01-29 1999-01-05 Apple Computer, Inc. System for automatically detecting cyclical and recursive links between document components
US5983268A (en) 1997-01-14 1999-11-09 Netmind Technologies, Inc. Spreadsheet user-interface for an internet-document change-detection tool
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6572662B2 (en) 1998-05-15 2003-06-03 International Business Machines Corporation Dynamic customized web tours
US6145000A (en) 1998-10-06 2000-11-07 Ameritech Corporation System and method for creating and navigating a linear hypermedia resource program
US6675226B1 (en) 1998-11-17 2004-01-06 Rockwell Automation Technologies, Inc. Network interface for industrial controller providing application programmer interface
US7200804B1 (en) 1998-12-08 2007-04-03 Yodlee.Com, Inc. Method and apparatus for providing automation to an internet navigation application
US6574657B1 (en) 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
US6654746B1 (en) 1999-05-03 2003-11-25 Symantec Corporation Methods and apparatuses for single-connection file synchronization workgroup file update
US6613098B1 (en) 1999-06-15 2003-09-02 Microsoft Corporation Storage of application specific data in HTML
US7463648B1 (en) 1999-08-23 2008-12-09 Sun Microsystems, Inc. Approach for allocating resources to an apparatus based on optional resource requirements
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6823384B1 (en) 1999-10-15 2004-11-23 James Wilson Methods and apparatus for securely collecting customer service agent data in a multi-tenant environment
US6983311B1 (en) 1999-10-19 2006-01-03 Netzero, Inc. Access to internet search capabilities
US7035926B1 (en) 1999-11-30 2006-04-25 International Business Machines Corporation Real-time monitoring of web activities
US6571283B1 (en) 1999-12-29 2003-05-27 Unisys Corporation Method for server farm configuration optimization
US6993559B2 (en) 2000-02-14 2006-01-31 Bigbow.Com, Inc. System, method, apparatus and computer program product for operating a web site by electronic mail
US6898727B1 (en) 2000-03-22 2005-05-24 Emc Corporation Method and apparatus for providing host resources for an electronic commerce site
US7562153B2 (en) 2000-05-12 2009-07-14 AT&T Intellectual Property II, L. P. Method and apparatus for content distribution network brokering and peering
US6341292B1 (en) 2000-05-30 2002-01-22 Outlooksoft Corporation Spreadsheet-based network information exchange with two-part cache
US7454471B2 (en) 2000-06-16 2008-11-18 Microsoft Corporation Sending a range
US6711593B1 (en) 2000-06-26 2004-03-23 Camstar Systems, Inc. System and method for live update of a manufacturing system
WO2002005065A2 (en) 2000-07-11 2002-01-17 Juice Software, Inc. A method and system for integrating network-based functionality into productivity applications and documents
US6934848B1 (en) 2000-07-19 2005-08-23 International Business Machines Corporation Technique for handling subsequent user identification and password requests within a certificate-based host session
US20020161814A1 (en) 2000-10-04 2002-10-31 Wical Kelly J. Batch processing system running in parallel on automated and distributed replication systems
US6988241B1 (en) 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US6912690B2 (en) 2000-10-24 2005-06-28 International Business Machines Corporation Method and system in an electronic spreadsheet for persistently copy-pasting a source range of cells onto one or more destination ranges of cells
US7082569B2 (en) 2001-01-17 2006-07-25 Outlooksoft Corporation Systems and methods providing dynamic spreadsheet functionality
US20030061365A1 (en) 2001-03-14 2003-03-27 Microsoft Corporation Service-to-service communication for network services
JP4426736B2 (ja) 2001-04-27 2010-03-03 株式会社日立製作所 プログラム修正方法およびプログラム
US7647409B2 (en) 2001-06-28 2010-01-12 International Business Machines Corporation Gradual online subscription removal
US20030208527A1 (en) 2001-07-20 2003-11-06 Lino Lglesais Method for smart device network application infrastructure (SDNA)
FI20011651A (fi) 2001-08-15 2003-02-16 Nokia Corp Palveluklusterin kuormituksen tasapainoittaminen
GB2378782B (en) 2001-08-16 2005-04-13 Sun Microsystems Inc Message brokering
US7047484B1 (en) 2001-10-18 2006-05-16 Microsoft Corporation Method, system, and apparatus for providing access to asynchronous data in a spreadsheet application program
US7000228B2 (en) 2002-01-17 2006-02-14 Sun Microsystems, Inc. Online upgrade of container-based software components
US6731323B2 (en) 2002-04-10 2004-05-04 International Business Machines Corporation Media-enhanced greetings and/or responses in communication systems
US20030204460A1 (en) 2002-04-30 2003-10-30 Rodney Robinson Data collection and transaction initiation using a financial messaging protocol
US20030221190A1 (en) 2002-05-22 2003-11-27 Sun Microsystems, Inc. System and method for performing patch installation on multiple devices
US7283465B2 (en) 2003-01-07 2007-10-16 Corrigent Systems Ltd. Hierarchical virtual private LAN service protection scheme
US7577964B2 (en) 2003-02-28 2009-08-18 Hewlett-Packard Development Company, L.P. System and methods for defining a binding for web-services
US20040210623A1 (en) 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US7363382B1 (en) * 2003-03-31 2008-04-22 Cisco Technology, Inc. Apparatus, methods, and articles incorporating multiple path failover driver mechanism
US20040237045A1 (en) 2003-05-21 2004-11-25 Eintelligence, Inc. Method for asynchronous sharing of integrated spreadsheets using a network
US6973654B1 (en) 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
US7203944B1 (en) 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
CA2438997A1 (en) 2003-08-28 2005-02-28 Ibm Canada Limited - Ibm Canada Limitee System and method for carrying out legacy application transitions
US7779039B2 (en) 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US7529728B2 (en) 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US7680933B2 (en) 2003-12-15 2010-03-16 International Business Machines Corporation Apparatus, system, and method for on-demand control of grid system resources
US7509636B2 (en) 2003-12-15 2009-03-24 Microsoft Corporation System and method for updating files utilizing delta compression patching
US20050262449A1 (en) 2004-05-03 2005-11-24 Microsoft Corporation Online service switching and customizations
US7360208B2 (en) 2004-05-17 2008-04-15 Oracle International Corp. Rolling upgrade of distributed software with automatic completion
US7657932B2 (en) 2004-07-14 2010-02-02 Microsoft Corporation Extendible security token management architecture and secure message handling methods
US7779431B2 (en) 2004-07-16 2010-08-17 Wallace Robert G Networked spreadsheet template designer
US7454659B1 (en) 2004-08-24 2008-11-18 The Mathworks, Inc. Distributed systems in test environments
US7555751B1 (en) 2004-08-11 2009-06-30 3Com Corporation Method and system for performing a live system upgrade
US7668961B2 (en) 2004-09-23 2010-02-23 Microsoft Corporation Unilateral web services interaction contract
US7840911B2 (en) 2004-09-27 2010-11-23 Scott Milener Method and apparatus for enhanced browsing
US8146073B2 (en) 2004-09-30 2012-03-27 Microsoft Corporation Updating software while it is running
US7496886B2 (en) 2004-09-30 2009-02-24 Microsoft Corporation Method and system for providing cross project commitments
US7325156B1 (en) 2004-10-07 2008-01-29 Hewlett-Packard Development Company, L.P. Methods and apparatus for backing up data in a data center
US9329905B2 (en) 2004-10-15 2016-05-03 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
GB2419701A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructure with dynamic control of mapping
US7899921B2 (en) 2004-12-08 2011-03-01 Microsoft Corporation Verifying and maintaining connection liveliness in a reliable messaging for web services environment
US7987225B2 (en) 2004-12-22 2011-07-26 International Business Machines Corporation Method for remembering resource allocation in grids
JP4555703B2 (ja) 2005-02-23 2010-10-06 株式会社日立製作所 領域集合設定方法、および、ネットワークシステム
US7480773B1 (en) * 2005-05-02 2009-01-20 Sprint Communications Company L.P. Virtual machine use and optimization of hardware configurations
US20060271542A1 (en) 2005-05-25 2006-11-30 Harris Steven T Clustered object state using logical actions
US20060277224A1 (en) 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
US7577661B2 (en) 2005-06-30 2009-08-18 Microsoft Corporation Extensible and automatically replicating server farm configuration management infrastructure
US7558857B2 (en) 2005-06-30 2009-07-07 Microsoft Corporation Solution deployment in a server farm
US7720820B2 (en) 2005-07-12 2010-05-18 Microsoft Corporation Logless persistent components for enterprise applications
WO2007021836A2 (en) * 2005-08-15 2007-02-22 Toutvirtual Inc. Virtual systems management
US7636704B2 (en) 2005-08-26 2009-12-22 Emc Corporation Methods and apparatus for scheduling an action on a computer
US8601159B2 (en) * 2005-09-27 2013-12-03 Microsoft Corporation Distributing and arbitrating media access control addresses on ethernet network
US7930736B2 (en) 2006-01-13 2011-04-19 Google, Inc. Providing selective access to a web site
US7603354B2 (en) 2006-02-09 2009-10-13 Cinnober Financial Technology Ab Method for enhancing the operation of a database
US20070198554A1 (en) 2006-02-10 2007-08-23 Sun Microsystems, Inc. Apparatus for business service oriented management infrastructure
US8117459B2 (en) 2006-02-24 2012-02-14 Microsoft Corporation Personal identification information schemas
US7941801B2 (en) 2006-03-07 2011-05-10 Oracle America Inc. Method and system for provisioning a virtual computer and scheduling resources of the provisioned virtual computer
US20070219956A1 (en) 2006-03-16 2007-09-20 Milton Michael L Excel spreadsheet parsing to share cells, formulas, tables, etc.
US20070220415A1 (en) 2006-03-16 2007-09-20 Morgan Mao Cheng Excel spreadsheet parsing to share cells, formulas, tables or entire spreadsheets across an enterprise with other users
US20070245235A1 (en) 2006-03-31 2007-10-18 Microsoft Corporation Efficient storage of drawing objects in synchronizable electronic documents
US7823145B1 (en) 2006-03-31 2010-10-26 Vmware, Inc. Updating software on dormant disks
US8261277B2 (en) 2006-04-10 2012-09-04 General Electric Company System and method for dynamic allocation of resources in a computing grid
US7818740B2 (en) 2006-05-05 2010-10-19 Microsoft Corporation Techniques to perform gradual upgrades
US20070271560A1 (en) 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
US20070285501A1 (en) 2006-06-09 2007-12-13 Wai Yim Videoconference System Clustering
US7512639B2 (en) 2006-06-15 2009-03-31 International Business Machines Corporation Management of time-variant data schemas in data warehouses
US7836212B2 (en) * 2006-07-20 2010-11-16 Oracle America, Inc. Reflecting bandwidth and priority in network attached storage I/O
CN100487701C (zh) 2006-08-02 2009-05-13 华为技术有限公司 一种嵌入式数据库的在线升级控制方法和装置
US8768332B2 (en) 2006-09-01 2014-07-01 At&T Mobility Ii Llc Interactive personal information management system
US7739219B2 (en) 2006-09-08 2010-06-15 Oracle International Corporation Techniques of optimizing queries using NULL expression analysis
US7730028B2 (en) 2006-09-22 2010-06-01 Research In Motion Limited Schema updating for synchronizing databases connected by wireless interface
US7870163B2 (en) 2006-09-28 2011-01-11 Oracle International Corporation Implementation of backward compatible XML schema evolution in a relational database system
CN101162988A (zh) 2006-10-11 2008-04-16 中兴通讯股份有限公司 一种采用主备用数据区实现不中断业务的数据同步方法
US8521706B2 (en) 2006-10-20 2013-08-27 Oracle International Corporation Low-downtime and zero-downtime upgrades of database-centric applications
US8909599B2 (en) 2006-11-16 2014-12-09 Oracle International Corporation Efficient migration of binary XML across databases
US7634505B2 (en) 2006-12-19 2009-12-15 Salesforce.Com, Inc. Methods and procedures to provide complete test copy environment of hosted applications
US7865556B2 (en) 2006-12-20 2011-01-04 International Business Machines Corporation Failover processing for automatic responder in mixed server environment
US20080154915A1 (en) 2006-12-20 2008-06-26 Microsoft Corporation Network-based recommendations
US20080189700A1 (en) * 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
US7680848B2 (en) 2007-03-29 2010-03-16 Microsoft Corporation Reliable and scalable multi-tenant asynchronous processing
US8095618B2 (en) 2007-03-30 2012-01-10 Microsoft Corporation In-memory caching of shared customizable multi-tenant data
US8019812B2 (en) 2007-04-13 2011-09-13 Microsoft Corporation Extensible and programmable multi-tenant service architecture
US8479194B2 (en) 2007-04-25 2013-07-02 Microsoft Corporation Virtual machine migration
US8122055B2 (en) 2007-04-26 2012-02-21 Microsoft Corporation Hosted multi-tenant application with per-tenant unshared private databases
US20080289020A1 (en) 2007-05-15 2008-11-20 Microsoft Corporation Identity Tokens Using Biometric Representations
US8244713B2 (en) 2007-07-12 2012-08-14 International Business Machines Corporation Content management system that retrieves data from an external data source and creates one or more objects in the repository
US20090083561A1 (en) 2007-09-26 2009-03-26 Nikos Kaburlasos Dynamic power management of dimms
US8181173B2 (en) 2007-10-12 2012-05-15 International Business Machines Corporation Determining priority for installing a patch into multiple patch recipients of a network
US8407518B2 (en) * 2007-10-26 2013-03-26 Vmware, Inc. Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
US8185902B2 (en) 2007-10-31 2012-05-22 International Business Machines Corporation Method, system and computer program for distributing a plurality of jobs to a plurality of computers
US8275855B2 (en) 2007-12-20 2012-09-25 Yahoo! Inc. Method and system for monitoring rest web services
US8990360B2 (en) 2008-02-22 2015-03-24 Sonos, Inc. System, method, and computer program for remotely managing a digital device
AU2009219470B2 (en) 2008-02-26 2012-06-21 VMware LLC Extending server-based desktop virtual machine architecture to client machines
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8196175B2 (en) 2008-03-05 2012-06-05 Microsoft Corporation Self-describing authorization policy for accessing cloud-based resources
GB2458154B (en) * 2008-03-07 2012-06-27 Hewlett Packard Development Co Routing across a virtual network
US7949636B2 (en) 2008-03-27 2011-05-24 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US8935692B2 (en) 2008-05-22 2015-01-13 Red Hat, Inc. Self-management of virtual machines in cloud-based networks
US9501124B2 (en) 2008-05-22 2016-11-22 Microsoft Technology Licensing, Llc Virtual machine placement based on power calculations
US7516367B1 (en) 2008-05-30 2009-04-07 International Business Machines Corporation Automated, distributed problem determination and upgrade planning tool
AU2009259876A1 (en) * 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US20090327139A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Loosely coupled hosted application system
US20100011409A1 (en) 2008-07-09 2010-01-14 Novell, Inc. Non-interactive information card token generation
US9600175B2 (en) 2008-07-14 2017-03-21 Sony Corporation Method and system for classification sign display
US8370472B2 (en) 2008-09-02 2013-02-05 Ca, Inc. System and method for efficient machine selection for job provisioning
US20100070466A1 (en) 2008-09-15 2010-03-18 Anand Prahlad Data transfer techniques within data storage devices, such as network attached storage performing data migration
US20100082860A1 (en) 2008-09-26 2010-04-01 Yahoo! Inc. System and method for updating the status of an asynchronous, idempotent message channel
US8185897B2 (en) 2008-09-30 2012-05-22 Verizon Patent And Licensing Inc. Task management system
US20100095198A1 (en) 2008-10-15 2010-04-15 Apple Inc. Shared comments for online document collaboration
US9300532B2 (en) 2008-10-24 2016-03-29 Microsoft Technology Licensing, Llc Automating deployment of service applications by exposing hosting environment constraints
US20100113159A1 (en) * 2008-11-06 2010-05-06 International Business Machines Corporation Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems
US7979512B2 (en) 2008-11-07 2011-07-12 Microsoft Corporation Service delivery online
US8271536B2 (en) 2008-11-14 2012-09-18 Microsoft Corporation Multi-tenancy using suite of authorization manager components
US9325695B2 (en) 2008-12-04 2016-04-26 International Business Machines Corporation Token caching in trust chain processing
US20100145861A1 (en) 2008-12-08 2010-06-10 Palm, Inc. Payment transaction processing for mobile computing devices
US8108779B1 (en) 2008-12-16 2012-01-31 Adobe Systems Incorporated Collaborative editing operations
US9229707B2 (en) 2008-12-18 2016-01-05 Sap Se Zero downtime mechanism for software upgrade of a distributed computer system
US9189221B2 (en) 2009-01-27 2015-11-17 Microsoft Technology Licensing, Llc Consistent operating system servicing for distributed nodes
US9208188B2 (en) 2009-02-17 2015-12-08 Microsoft Technology Licensing, Llc Tenant management of a hosted multi-tenant application
US9705888B2 (en) 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US8713060B2 (en) 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US20100262632A1 (en) 2009-04-14 2010-10-14 Microsoft Corporation Data transfer from on-line to on-premise deployment
US9274796B2 (en) 2009-05-11 2016-03-01 Arm Finance Overseas Limited Variable register and immediate field encoding in an instruction set architecture
US20100312810A1 (en) 2009-06-09 2010-12-09 Christopher Horton Secure identification of music files
US8359594B1 (en) * 2009-06-30 2013-01-22 Sychron Advanced Technologies, Inc. Automated rapid virtual machine provisioning system
US8261268B1 (en) * 2009-08-05 2012-09-04 Netapp, Inc. System and method for dynamic allocation of virtual machines in a virtual server environment
US8490150B2 (en) * 2009-09-23 2013-07-16 Ca, Inc. System, method, and software for enforcing access control policy rules on utility computing virtualization in cloud computing systems
US8667028B2 (en) 2009-09-28 2014-03-04 At&T Global Network Services Deutschland Gmbh System and method to determine database schema impact
US8276148B2 (en) * 2009-12-04 2012-09-25 International Business Machines Corporation Continuous optimization of archive management scheduling by use of integrated content-resource analytic model
US8875143B2 (en) 2009-12-31 2014-10-28 Bmc Software, Inc. Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment
US9959147B2 (en) * 2010-01-13 2018-05-01 Vmware, Inc. Cluster configuration through host ranking
US8103906B1 (en) * 2010-10-01 2012-01-24 Massoud Alibakhsh System and method for providing total real-time redundancy for a plurality of client-server systems
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US20120102480A1 (en) 2010-10-20 2012-04-26 Microsoft Corporation High availability of machines during patching
US20120102506A1 (en) 2010-10-20 2012-04-26 Microsoft Corporation Web service patterns for globally distributed service fabric
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1989489A (zh) * 2004-05-20 2007-06-27 Sap股份公司 在运行时系统中共享对象
WO2010090899A1 (en) * 2009-02-04 2010-08-12 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
KR100980599B1 (ko) * 2010-01-19 2010-09-07 코아인텍주식회사 입출력 공유장치를 이용한 클라우드 서비스 시스템

Also Published As

Publication number Publication date
TW201235944A (en) 2012-09-01
WO2012054405A2 (en) 2012-04-26
EP2630569A2 (en) 2013-08-28
US20120102199A1 (en) 2012-04-26
CN102426543A (zh) 2012-04-25
US20150317187A1 (en) 2015-11-05
EP2630569A4 (en) 2014-12-17
WO2012054405A8 (en) 2012-11-15
TWI520062B (zh) 2016-02-01
WO2012054405A3 (en) 2012-06-21
US9075661B2 (en) 2015-07-07

Similar Documents

Publication Publication Date Title
CN102426543B (zh) 使用硬和软限制将对象放置在主机上
CN102436485B (zh) 动态拆分多承租人数据库
CN102541987B (zh) 升级期间的在线数据库可用性
CN102438041B (zh) 高可用性场服务器组的升级
CN102571905B (zh) 一种为在线服务管理网络和机器的方法和系统
CN102571906B (zh) 打补丁期间机器的高可用性
CN102521009B (zh) 创建并部署服务准备完毕虚拟硬盘
CN102523101B (zh) 机器管理器服务结构
CN102420847B (zh) 在在线服务中以高可用性路由通信
CN102426530B (zh) 使用高特权过程远程安装软件
CN102455937A (zh) 用于全局分布的服务结构的Web服务模式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150805

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150805

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant