CN103516777B - 用于在云计算机环境中进行供应的方法和系统 - Google Patents
用于在云计算机环境中进行供应的方法和系统 Download PDFInfo
- Publication number
- CN103516777B CN103516777B CN201310226533.7A CN201310226533A CN103516777B CN 103516777 B CN103516777 B CN 103516777B CN 201310226533 A CN201310226533 A CN 201310226533A CN 103516777 B CN103516777 B CN 103516777B
- Authority
- CN
- China
- Prior art keywords
- cache
- patch
- request
- template
- cloud
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种在具有彼此相关联的云主机集合的云计算环境中进行供应的方法。该方法通过将与云主机相关联的部分数据存储声明为高速缓存并且在该所述高速缓存中存储模板图像和补丁,而跨云主机集合形成分布式协作高速缓存作为开始。跨该分布式协作高速缓存的高速缓存活动通过令该高速缓存共享与其各自内容相关的信息而进行协调。高速缓存处的控制例程接收针对模板或补丁的请求,如果所请求的制品可用则对该请求进行响应,或者在高速缓存缺失时将该请求转发至另一高速缓存。定期地,计算分布式协作高速缓存的构成,并且使用所计算的高速缓存构成将模板图像和补丁填入高速缓存之中。
Description
技术领域
本公开总体上涉及例如虚拟机的消耗资源的虚拟实体在例如数据中心或分布式计算资源的“云”之类的计算环境中的规划和部署。
背景技术
一种新兴的信息技术(IT)传递模型是云计算,共享资源、软件和信息通过其而在互联网上按需要被提供至计算机和其他设备。云计算能够明显降低IT成本和复杂度,同时改善工作负载优化和服务传递。利用该方法,应用实例能够被保管并且使得其能够从基于互联网的资源而使用,该资源可经HTTP通过常规Web浏览器进行访问。示例应用可能是提供一般消息功能集合的应用,诸如电子邮件、日历、联系人管理和即时消息。用户随后将通过互联网直接访问服务。使用该服务,企业将把其电子邮件、日历和/或合作基础设施置入云中,并且终端用户将使用适当客户端来访问其电子邮件,或者执行日历操作。
云计算资源通常驻留在运行联网应用的大型服务器群中,其通常使用虚拟化架构,其中应用在映射到数据中心机构的物理服务器上的虚拟服务器或所谓的“虚拟机”(VM)中运行。虚拟机通常在管理程序(hypervisor)顶端运行,该管理程序是向虚拟机分配物理资源的控制程序。
在软件即服务(SaaS)的云传递模型中,主机中心按照需要在服务器上部署VM图像模板。图像模板通常保存在中央知识库中。虚拟器件(VA)是虚拟机图像文件,其包括预先配置的操作系统环境,以及在该环境中安装、配置和测试的(多个)应用。使用VA作为在云中进行部署的基本单位为云服务提供商带来的新的挑战。VA图像文件庞大,其大小经常为数十GB。当接收到针对VA模板的请求时,必须将整个文件传输至主机物理服务器以便进行例示。然而,主机中心通常在地理上是分散的,而图像知识库则可能是集中的。因此,为云中的VM的请求进行供应所必需的时间主要耗费在从图像知识库输送图像,这通常是由于站点之间带宽有限的连接(以及文件庞大)所致。因此,通过互联网访问知识库以取得GB大小的文件会明显降低服务器供应速度。
发明内容
本公开描述了一种在通常处于云传递位置的、具有彼此相关联的云主机集合的云计算环境中进行供应的方法。根据该方法,通过将与云主机相关联的部分数据存储声明为高速缓存并且在该高速缓存中存储模板图像和补丁而跨云主机集合形成分布式协作高速缓存。跨该分布式协作高速缓存进行的高速缓存活动优选地由关联于高速缓存的特定之一而执行的控制例程(“高速缓存看管器”)通过令高速缓存共享与其各自内容相关的信息而协调。该控制例程接收针对模板图像或补丁的请求,如果所请求的制品(artifact)在相关联高速缓存中可用则对该请求进行响应,或者在高速缓存缺失(在进行接收的高速缓存处)时,则有选择地将该请求转发至另一个高速缓存。以这种方式,如果可能的话,则试图从存储在分布式协作高速缓存中的信息而不是使用环境之外的资源(模板和/或补丁)来对请求进行服务以提供虚拟资源。
定期地,计算分布式协作高速缓存的构成,并且使用所计算的高速缓存构成将模板图像和补丁填入高速缓存之中。在优选实施例中,模板图像和补丁根据使得对服务请求进行响应的总成本最小化的成本函数而被填入高速缓存之中。
以上已经对本发明的一些更为相关的特征进行了概述。这些特征应当被理解为仅是说明性的。通过以不同方式对所公开的发明加以应用或者通过对将要描述的发明进行修改能够获得许多其它的有益效果。
附图说明
为了更为完整地理解本发明及其优势,现在参考下面结合附图所进行的描述,其中:
图1描绘了可以在其中实施说明性实施例的示例性方面的分布式数据处理环境的示例性框图;
图2是可以在其中实施说明性实施例的示例性方面的数据处理系统的示例性框图;
图3图示了可以在其中实施所公开主题的示例性云计算架构;
图4图示了图像模板通常如何包含在云环境之中;
图5图示了根据本公开的用于使用基于补丁的高速缓存而在云传递位置对VA服务请求进行处理的处理流程;
图6图示了跨彼此在地理上分离的一对云计算站点实施的多层分布式高速缓存架构;
图7图示了根据本公开的云传递位置,其保管虚拟服务器并且实施用于使得通过差异化模板高速缓存对请求进行服务时的延时最小化的技术;
图8图示了补丁如何被应用于基本模板图像以生成目标模板图像;
图9图示了根据本公开另一个方面的用于特定云计算站点的集中管理的分布式高速缓存架构;
图10图示了根据优选实施例的表格,该表格示出了在用于确定用来填充分布式高速缓存的成本函数的线性问题公式中所使用的不同符号;以及
图11A-11B图示了用于计算包括要在每个节点进行维护的模板和补丁的高速缓存构成的代表性差异化模板高速缓存算法。
具体实施方式
现在参考附图特别是图1-2,提供了可以在其中实施本公开的说明性实施例的数据处理环境的示例性图。应当意识到,图1-2仅是示例性的而并非意在关于可以在其中实施所公开主题的方面或实施例的环境断言或暗示任何限制。可以对所描绘的环境进行许多修改而并不背离本发明的精神和范围。
客户端-服务器技术
现在参考附图,图1描绘了可以在其中实施说明性实施例的示例性分布式数据处理系统的图形表示。分布式数据处理系统100可以包括可以在其中实施说明性实施例的各方面的计算机网络。分布式数据处理系统100包含至少一个网络102,其是用来在分布式数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括连接,诸如有线、无线通信链路或者光纤线缆。
在所描绘的示例中,服务器104和服务器106连同存储单元108一起连接至网络102。此外,客户端110、112和114也连接至网络102。这些客户端110、112和114例如可以是个人计算机、网络计算机等。在所描绘的示例中,服务器104向客户端110、112和114提供诸如引导文件、操作系统图像和应用之类的数据。
客户端110、112和114在所描绘的示例中是针对服务器104的客户端。分布式数据处理系统100可以包括没有示出的附加服务器、客户端和其它设备。在所描绘的示例中,分布式数据处理系统100是互联网,其中网络102表示全球范围的网络和网关集合,其使用传输控制协议/互联网协议(TCP/IP)协议套件互相通信。互联网的核心是主要节点或主机计算机之间的高速数据通信线路的骨干,其由数千个路由数据和消息的商业、政府、教育和其它计算机系统所构成。当然,分布式数据处理系统100也可以被实施为包括多种不同类型的网络,例如企业内部网、局域网(LAN)、广域网(WAN)等。如以上所指出的,图1意在作为示例而并非所公开主题的不同实施例的架构性限制,因此图1中所示出的特定要素不应当被理解为是关于可以在其中实施本发明的说明性实施例的环境所进行的限制。
现在参考图2,示出了可以在其中实施说明性实施例的各方面的示例性数据处理系统的框图。数据处理系统200是诸如图1的客户端110的计算机的示例,实施本公开的说明性实施例的处理的计算机可用代码或指令可以位于其中。
现在参考图2,示出了可以在其中实施说明性实施例的数据处理系统的框图。数据处理系统200是诸如图1的服务器104或客户端110的计算机的示例,对于说明性实施例,实施处理的计算机可用程序代码或指令可以位于其中。在该说明性示例中,数据处理系统20包括通信结构202,其在处理器单元204、存储器206、持久性存储208、通信单元210、输入/输出(I/O)单元212和显示器214之间提供通信。
处理器单元204用来执行可以加载到存储器206中的软件的指令。根据特定实施方式,处理器单元204可以是一个或多个处理器的集合或者可以是多个处理器核心。另外,处理器单元204可以使用一个或多个异类处理器系统来实施,其中主要处理器和次要处理器一起提供在单个芯片上。作为另一个说明性示例,处理器单元204可以是包含相同类型的多个处理器的对称多处理器(SMP)系统。
存储器206和持久性存储208是存储设备的示例。存储设备是能够以临时和/或永久的基础来存储信息的任意硬件。在这些示例中,存储器206例如可以是随机访问存储器或者任意其它适当的易失性或非易失性存储设备。持久性存储208可以根据特定实施方式而采用各种形式。例如,持久性存储208可以包含一个或多个组件或设备。例如,持久性存储208可以是硬盘、闪存、可重写光盘、可重写磁带,或者以上的一些组合形式。持久性存储208所使用的介质也可以是可移动的。例如,可以为持久性存储208使用可移动硬盘。
在这些示例中,通信单元210提供与其它数据处理系统或设备的通信。在这些示例中,通信单元210是网络接口卡。通信单元210可以通过使用物理和无线通信链路之一或二者来提供通信。
输入/输出单元212允许利用可连接至数据处理系统200的其它设备来输入和输出数据。例如,输入/输出单元212可以提供用于通过键盘和鼠标进行用户输入的连接。另外,输入/输出单元212可以向打印机发送输出。显示器214提供用于向用户显示信息的机制。
用于操作系统以及应用或程序的指令位于持久性存储208上。这些指令可以加载到存储器206中以便由处理器单元204来执行。不同实施例的处理可以由处理器单元204使用计算机所实施的指令来执行,该指令可以位于诸如存储器206的存储器中。这些指令被称作可以由处理器单元204中的处理器读取并执行的程序代码、计算机可用程序代码或计算机可读程序代码。不同实施例中的程序代码可以被实现在诸如存储器206或持久性存储208的不同物理或有形计算机可读介质上。
程序代码216以功能形式位于计算机可读介质218上,其有选择地是可移动的并且可以被加载或传输到数据处理系统200以便由处理器单元204所执行。程序代码216和计算机可读介质218形成这些示例中的计算机程序产品220。在一个示例中,计算机可读介质218可以为有形形式,例如插入或置入作为持久性存储208的一部分的驱动器或其它设备之中的光盘或磁盘以便转移到诸如作为持久性存储208的一部分的硬盘之类的存储设备上。以有形形式,计算机可读介质218也可以采用持久性存储的形式,诸如连接至数据处理系统200的硬盘、指状驱动器或闪存。有形形式的计算机可读介质218也被称作计算机可读存储介质。在一些情况下,计算机可读介质218可以不是可移动的。
可替换地,程序代码216可以通过到通信单元210的通信链路和/或通过到输入/输出单元212的连接从计算机可读介质218传输至数据处理系统200。通信链路和/或连接在说明性示例中可以是物理或无线的。计算机可读介质也可以采取非有形介质的形式,诸如包含程序代码的通信链路或无线传输。针对数据处理系统200所图示的不同组件并非意在对可以实施不同实施例的方式提供架构性限制。不同说明性实施例可以在包括除针对数据处理系统200所图示的那些之外或者作为其替代的组件的数据处理系统中实施。图2所示的其它组件可以根据所示出的说明性示例变化。作为一个示例,数据处理系统200中的存储设备是可以存储数据的任意硬件装置。存储器206、持久性存储208和计算机可读介质218是有形形式的存储设备的示例。
在另一个示例中,可以使用总线系统来实施通信结构202并且可以由诸如系统总线或输入/输出总线的一个或多个总线所组成。当然,总线系统可以使用在接合至总线系统的不同组件或设备之间提供数据传输的任意适当类型的架构来实施。此外,通信单元可以包括一个或多个用来传送和接收数据的设备,诸如调制解调器或网络适配器。另外,存储器例如可以是存储器206或者诸如在接口中找到的高速缓存以及可以出现在通信结构202中的存储控制器集线器。
用于执行本发明的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,其中包括诸如JavaTM、Smalltalk、C++、C#、Objective-C等的面向对象编程语言以及传统的过程编程语言。程序代码可以作为独立软件包整体在用户计算机上执行,部分在用户计算机上执行,部分在用户计算机上部分在远程计算机上执行,或者整体在远程计算机或服务器上执行。在后者的情形中,远程计算机可以通过任意类型的网络连接至用户计算机,网络包括局域网(LAN)或广域网(WAN),或者可以向外部计算机形成该连接(例如,使用互联网服务提供商通过互联网)。
本领域技术人员将会意识到,图1-2中的硬件可以根据实施方式而变化。除了图1-2中所描绘的硬件之外或者作为其替代,可以使用诸如闪存、等同的非易失性存储器或光盘驱动器等的其它内部硬件或外部设备。而且,说明性实施例的处理可以应用于不同于之前所提到的SMP系统的多处理器数据处理系统,而并不背离所公开主题的精神和范围。
如将会看到的,这里所描述的技术可以结合诸如图1所示的标准客户端-服务器范例进行操作,其中客户机与在一个或多个机器的集合上执行的互联网可访问的基于Web的端口进行通信。终端用户对能够访问端口并与之交互的互联网可连接设备(例如,台式计算机、笔记本计算机、支持互联网的移动设备等)进行操作。典型地,每个客户端或服务器机器是诸如图2所示的包括硬件和软件的数据处理系统,并且这些实体通过诸如互联网、企业内部网、外部网、私有网络或者任意其它通信介质或链路的网络相互通信。数据处理系统通常包括一个或多个处理器、操作系统、一个或多个应用以及一个或多个工具。数据处理系统上的应用提供对Web服务的本地支持,并非作为限制,尤其针对HTTP、SOAP、XML、WSDL、UDDI和WSFL的支持。与SOAP、WSDL、UDDI和WSFL相关的信息可从万维网联盟(W3C)获取,其负责这些标准的开发和维护;与HTTP和XML相关的另外信息可从互联网工程任务组(IETF)获取。假定这些标准是熟悉的。
云计算模型
云计算是一种服务传递模型,其使得能够对利用最少的管理工作或者与服务提供商的交互而能够快速提供并释放的可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池进行便利的、按需网络访问。这种云模型可以包括至少五种特性,至少三种服务模型,以及至少四种部署模型,所有这些都在Peter Mell和Tim Grance于2009年10月7日发表的“Draft NIST Working Definition of CloudComputing”中特别地有所描述和定义。
特别地,以下为典型特性:
按需自助服务:云消费者能够按照需要自动地单方面提供诸如服务器时间和网络存储的计算能力,而并不要求人员与服务提供商进行交互。
宽泛网络访问:能力可在网络上获取并且通过促进由异类的瘦或厚客户端平台(例如,移动电话、膝上计算机和PDA)进行使用的标准机制访问。
资源池:提供商的计算资源被合并以使用多租户模型为多个消费者进行服务,其中不同的物理和虚拟资源根据需求动态进行分配和重分配。在位置独立性方面的意义在于,消费者一般并不对所提供的资源的确切位置有所控制或了解,但是能够指定更高抽象等级的位置(例如,国家,州或数据中心)。
快速回弹性:在一些情况下,能力能够自动地迅速且弹性地提供以快速向外扩展(scale out)并且迅速释放以快速收缩(scale in)。对于消费者而言,可供提供的能力经常看上去是无限的并且能够在任意时间以任意数量进行购买。
经测量的服务:云系统通过以适用于服务类型(例如,存储、处理、带宽和活动用户账户)的一定抽象等级对计量能力进行权衡而自动控制并优化资源使用。资源使用可以被监视、控制和报告,这为所利用服务的提供商和消费者提供了透明性。
服务模型通常如下:
软件即服务(SaaS):提供给消费者的能力是使用在云架构上运行的提供商应用。可通过诸如web浏览器的瘦客户端接口(例如,基于web的电子邮件)从各种客户端设备进行访问应用。消费者并不对包括网络、服务器、操作系统、存储或者甚至个体应用能力的潜在云架构进行管理和控制,这可能除了有限的特定用户的应用配置设置之外。
平台即服务(PaaS):提供给消费者的能力是将使用提供商所支持的编程语言和工具所创建的消费者创建或获取的应用部署到云架构之上。消费者并不对包括网络、服务器、操作系统或存储的潜在云架构进行管理和控制,但是对所部署的应用以及保管环境配置的可能应用有所控制。
架构即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和其它基础计算资源,其中消费者能够部署并运行可包括操作系统和应用的任意软件。消费者并不对潜在的云架构进行管理或控制但是对操作系统、存储、所部署的应用有所控制以及可能对所选择的网络组件(例如,主机防火墙)具有有限的控制。
部署模型通常如下:
私有云:云架构仅针对组织进行操作。其可以由组织或第三方管理并且可以在场内(on-premises)或场外(off-premises)存在。
社区云:云架构由若干组织所共享并且支持具有共享问题(例如,任务、安全要求、策略和合规性考虑)的具体社区。其可以由组织或第三方管理并且可以在场内或场外存在。
公众云:该云架构被使得可用于一般公众或者大型产业群体并且被销售云服务的组织所有。
混合云:该云架构是两个或更多云(私有、社区或公众)的合成,其保留唯一实体但是通过支持数据和应用便携性的标准化或所有权技术(例如,用于云之间的负载平衡的云爆发)而组合在一起。
云计算环境是面向服务的,其关注于无国籍、低耦合、模块化和语义互操作性。云计算的核心在于包括互连节点的网络的架构。代表性的云计算节点如以上图2所示。特别地,在云计算节点中具有计算机系统/服务器,其利用大量的其它通用或专用计算系统环境或配置进行操作。可适用于随计算机系统/服务器使用的公知计算系统、环境和/或配置的示例包括但不限于:个人计算机系统、服务器计算机系统、瘦客户端、厚客户端、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子器件、网络PC、迷你计算机系统、大型计算机系统以及包括任意以上系统或设备的分布式云计算环境等。计算机系统/服务器可以在被计算机系统所执行的诸如程序模块的计算机系统可执行指令的一般环境中进行描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器可以在分布式云计算环境中进行实践,其中任务由通过通信网络而链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于本地和远程计算机系统的包括存储器存储设备的存储介质之中。
现在参考图3,利用附加背景示出了云计算环境所提供的功能抽象层的集合。事先应当理解的是,图3所示的组件、层和功能仅意在是说明性的,而本发明的实施例并不局限于此。如所描绘的,提供了以下层和相对应的功能:
硬件和软件层300包括硬件和软件组件。硬件组件的示例包括大型机,在一个示例中为系统;基于RISC(精简指令集计算机)架构的服务器,在一个实例中为系统;IBM系统;系统;存储设备;网络和网络组件。软件组件的示例包括网络应用服务器软件,在一个示例中为IBM应用服务器软件;和数据库软件,在一个实施例中为IBM数据库软件。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere和DB2是国际商业机器公司在全球许多司法辖区所注册的商标)。
虚拟化层302提供抽象层,从该抽象层可以提供以下虚拟实体的示例:虚拟服务器;虚拟存储;虚拟网络,包括虚拟私有网络;虚拟应用和操作系统;以及虚拟客户端。
在一个示例中,管理层304可以提供以下所描述的功能。资源供应提供用来在云计算环境中执行任务的计算资源和其它资源的动态采购。由于资源在云计算环境中被使用,计量和定价提供成本追踪,并且对这些资源的消耗开具账单或发票。在一个实施例中,这些资源可以包括应用软件许可权。安全性为云消费者和任务提供身份验证,以及针对数据和其它资源提供保护。用户端口针对消费者和系统管理员提供对云计算环境的访问。服务层管理提供云计算资源分配和管理以使得所要求的服务等级得到满足。服务等级协议(SLA)规划和实现针对依据SLA预计未来需求的云计算资源提供预先配置及其采购。
工作负载层306提供可以针对其利用云计算环境的功能示例。可以从该层提供的工作负载和功能的示例包括:映射和导航;软件开发和生命周期管理;虚拟教室教育传递;数据分析处理;事务处理;以及差异化模板高速缓存(根据本公开)。
事先所要理解的是,虽然本公开包括了有关云计算的详细描述,但是这里所引用的教导的实施方式并不局限于云计算环境。相反,本发明的实施例能够结合现在已知或后续开发的任意其它类型的计算环境来实施。
因此,代表性的云计算环境具有高级别功能组件的集合,其包括前端身份管理器、商务支持服务(BSS)功能组件、操作支持服务(OSS)功能组件和计算云组件。身份管理器负责与进行请求的客户端对接以提供身份管理,并且该组件可以利用诸如可从纽约Armonk的IBM公司获取的Tivoli Federated Identity Manager(TFIM)之类的一个或多个已知系统来实施。在适当情况下,TFIM可以被用来向其它云组件提供联合单点登录(F-SSO)。商业支持服务组件提供某些管理功能,诸如账单支持。操作支持服务组件被用来提供诸如虚拟机(VM)实例的其它云组件的供应和管理。云组件表示主要计算资源,其通常为多个用来执行可经由云进行访问的目标应用的虚拟机实例。一个或多个数据库被用来存储目录、日志和其它工作数据。所有这些组件(包括前端身份管理器)位于云“之内”,但是并非要求如此。在可替换实施例中,身份管理器可在云之外进行操作。服务提供商也可以在云之外进行操作。
图像模板
利用附加背景,在基于SaaS的云传递模型中,已知主机中心在服务器上按需部署VM图像模板。图像模板通常维护于中央知识库中。还已知图像模板经常具有高程度的共性。如以下将会描述的,本公开的技术以唯一方式对模板文件之间所存在的这种共性加以利用以使得在云服务环境中响应请求而提供虚拟器件时的延时最小化。特别地,该技术所利用的重要发现在于,虽然图像模板的数量可能非常高(并且预计可能随时间指数增长),但是随后所演进的实际终端用户模块通常仅有数个原始基本模板。因此,在通常情况下,用户从目录中拣取图像模板。例如,假设用户(其自身也可能是提供商)选择具有特定Linux版本的模板,在其中安装附加软件组件,针对群组对其进行定制,并且将其保存在知识库中以供公众或私人使用。如图4所示,每个群组可以被视觉化为树,其以基本模板开始并且具有沿不同方向对上方层级进行精炼的后续层级,因此(潜在地在任意特定层级)导致了父机器图像文件中的小幅变化。在该示例中,Linux模板400是基本模板,在其上安装有两个(2)应用,即和应用服务器(WAS)。这生成了两个新的图像模板402和404。在下一个后续层级,模板402进一步进行修改以通过安装诸如 之类的其它应用来创建另一个新的图像模板406。当然,这些应用仅是示例性的。虽然原始的基本模板经常非常大(例如,十亿字节(GB)大小),但是在每个层级所增加以及用来创建新图像模板(特别是在树中下方的每个后续层级)的程序则小得多(例如,大多数为兆字节(MB)大小)。另外,随着树的深度增加,图像模板之间的大小差异趋于降低。
使得通过云中高速缓存的差异化模板对请求进行服务的延时最小化
根据本公开,替代对每个图像模板进行高速缓存(这在存储方面可能是禁止的),本公开的技术实施了一种高速缓存构架,其对跨图像模块的高程度共性以及可以添加以创建特定VA的一个或多个应用相对小的大小(与基本模板相比较)加以利用。根据本公开,在两个图像模板之间生成差异文件(或“补丁”)。如这里所使用的,差异文件或补丁被应用于模板(其可以是基本模板)之上以生成新的模板,其有时被称作目标图像模板。代替对大型模板进行高速缓存,这里的构架对补丁和模板进行高速缓存,并且补丁(在请求时)被用作生成目标图像模板的必要内容。
图5是图示本公开的基本操作范例的VA请求处理流程。在该处理流程中,假设主机中心(或者更为一般地,云传递位置)对云计算基础设置进行操作并且按需部署VM图像模板。在步骤500,已经接收到针对图像的请求。在步骤502,对请求参数进行评估以确定所请求的图像。在步骤504,(通常在本地)执行搜索以识别所请求的图像模板是否可用。如果是,则处理分支进行至步骤506以从图像模板创建克隆并且响应于请求在一个或多个本地云主机上对其进行例示。在该后者的情形中,这使得请求的处理得以完成。然而,如果图像模板不可用,则该例程在步骤508继续进行以确定可以从其得出目标图像模板的基本模板在本地高速缓存中是否可用。如果步骤508的测试结果是肯定的,则该例程在步骤510继续进行以确定补丁是否本地可用。如果补丁是可用的,则该例程分支进行至步骤512,其中基本模板被打上补丁以生成所请求的(目标)图像。然而,如果补丁在本地不可用,则该例程在步骤514继续进行以从另一个源请求补丁。通常,从端点高速缓存请求补丁,或者在此失败的情况下,从邻近高速缓存、父高速缓存(如果高速缓存为分层组织)或者原点(origin)进行请求。在步骤516,从外部源接收补丁并且处理返回至步骤512。步骤508的否定测试结果意味着基本模板也非本地可用。在这样的情况下,该例程在步骤518继续进行以从另一个源请求基本模板,该另一个源例如端点高速缓存、邻近高速缓存、父高速缓存等。在步骤520接收到基本模板时,控制返回至步骤510。
优选地,在一个或多个主机位置(或者更为一般地,节点)中的每一个位置实施用于使用图5所示的基于补丁的高速缓存进行VA服务请求处理的例程。这样的主机位置的集合(即,两个或更多这样的主机位置)可以被用来共同形成“分布式”高速缓存,其对频繁请求的机器图像和补丁文件进行高速缓存。在图6中示出了用于分布式高速缓存存储图形模板及其补丁的一种代表性架构。在仅为代表性的该架构中,具有多个云计算站点(或者“云传递位置”600),其中每一个支持多个计算主机602。该位置通常在地理上彼此分隔,虽然并非要求如此。根据本公开,图像模板和补丁文件被存储在一个或多个模板高速缓存604中。当如示例中所示的那样共同放置时,模板高速缓存彼此形成端点,或者均为所谓的“端点高速缓存”。指向特定云计算站点600的用户请求可以使用请求负载平衡器606进行负载平衡,并且高速缓存计算逻辑(如以下将要详细描述的)被用来智能填写本地高速缓存。除了分布式高速缓存组件之外,所图示的系统包括一个或多个数据存储610,其中每个数据存储包括一个或多个图像知识库612。每个图像知识库612可以与特定供应商或供货方相关联。在分布式高速缓存技术的操作中,传递位置600可以在本地对VA(或VM)供应请求进行服务(如果可以如此),或者(在有必要时)联系知识库以获取所需资源。所图示的分布式高速缓存架构被提供以对频繁请求的机器图像和文件进行高速缓存。优选地以及如在图5的处理流程中所描述的,分布式高速缓存实现了n层设计,其中(响应于针对图像模板和/或补丁的请求)搜索本地模板,随后(按照需要)搜索端点高速缓存,并且在此之后访问图像知识库。根据图像模板和补丁的数量、其大小等可以实施一个或多个附加的中间层。
优选地,图6所示的高速缓存组件被实施为现有云计算站点基础设施的一部分。在可替换形式中,可以为此而分配专用的硬件、存储和软件资源。分布式高速缓存的整体大小可以按照需要而变化,并且其通常与云设置中的节点数量成比例。通过使用分布式高速缓存,可以利用很少的可感知网络延迟或者在没有该延迟的情况下对请求进行处理。
图7图示了特定的云传递位置700,其保管有可通过互联网连接至供货方知识库704的虚拟服务器702。在这种情形中,一个或多个供货方中的每一个维护其自己的可全局寻址的知识库704,并且云主机中心维护有针对知识库的索引以便在需要时取得文件。在图7中,不同供货方维护个体图像知识库,虽然并非要求如此。响应于来自用户的供应VA(或VM)的请求,传递位置以之前所描述的方式尝试从其本地图像高速缓存706对请求进行服务。为此,图像高速缓存706以之前所描述的方式对基本模板708以及补丁文件710进行高速缓存。随后,如果能够通过生成用户请求的图像模板712(目标)(例如通过使用补丁文件710对基本模板708打补丁)而对用户请求进行服务,则该目标得以被生成并且在云主机上进行例示。然而,如果有必要,主机可以联系知识库以对请求进行服务。
图8图示了如何通过向基本模板图像Ii应用补丁(Diff dij)来生成目标图像Ij。在一个实施例中,通过向目标图像和基本模板图像应用差异算法RDIFF而生成补丁文件。可以使用任意其它差异技术。然而,此外并不要求应用差异算法或方法来生成补丁文件,因为补丁可能是事先已知的或者通过利用特定VA的特性来轻易确定。因此,作为示例并且再次参考图4,特定基本模板图像可以是Linux上的DB2,在这种情况下(给定模板图像406作为目标),补丁文件仅是Microsoft Office的实例。
如本领域技术人员将会理解的,该方法(对基本模板打补丁以生成目标模板,优选地按照需求进行)在响应于供应请求时,用补丁生成时间来交换对大型模板进行高速缓存并且传递它们的更费成本且耗时的技术。补丁生成处理占用数分钟(甚至更少)量级的时间,并且其可以离线执行。用来打补丁的时间通常与补丁的大小成比例,并且所描述的方法利用了基于补丁的高速缓存以避免大型图像模板的高速缓存和传递。如果能够利用高速缓存的补丁文件对任意高速缓存的模板打补丁,则能够生成在本地高速缓存中缺失的模板,由此以相对小的打补丁时间为代价而节约了从知识库(或其它地方)进行传输的时间。
高速缓存填入
以周期性间隔计算到高速缓存的模板和补丁。在一种方法中,模板的请求到达历史被用来计算每个模板的相对未来重要性。随后可以使用例如最常用模板或最近使用模板之类的不同机制来生成模板排序。因此,例如给定通过被请求可能性进行排序的模板集合,并且给定固定的高速缓存空间,则高速缓存方案可以通过对最重要的模板进行高速缓存而开始直至高速缓存空间被完全利用。现在,如果百分比(例如,50%)的高速缓存空间被用来存储模板而其余部分被用来存储补丁,则模板基于重要性排序而被再次存储,但是现在例程还确定排序之中的给定模板是否能够通过对任意现有存储模板打补丁而生成;在这样的情况下,该例程随后使用一些可用补丁存储来存储补丁而不是给定模板。类似地,针对其它模板存储补丁直至高速缓存空间用尽。
以上依比例分配高速缓存空间的方案可以被显著优化以使得分布式高速缓存以更为智能的方式而被填入。
特别地,当模板高速缓存为“分布式”并且因此跨多个高速缓存定位(处于特定计算设备内或者甚至跨多个位置)时,期望提供附加的技术来确定要在每个本地高速缓存中进行存储的补丁和模板的最优选择,由此通过使得文件传输(例如,从知识库到计算主机,从其它高速缓存到计算主机,等等)次数最小化而减少平均请求服务时间。为此,这里为了方便起见而被称作DiffCache(并且在下文中更为详细地进行描述)的差异化模板高速缓存算法提供了高速缓存的这种“智能”填入。一般而言以及如将要描述的,该算法基于一个或多个因数计算模板和补丁的最优选择,上述因数诸如针对具体模板的请求频率、针对不同图像的请求率、图像和补丁的大小、打补丁时间、图像知识库和云传递位置(在此接收供应请求)之间的可用带宽、从一个端节点到另一个端节点的带宽等等。
如图9所示,智能高速缓存填入技术可以使用集中管理的放置计算而跨特定云传递位置内的高速缓存来实施。在该实施例中,云传递位置中的每个计算主机900支持其自己的模板高速缓存902,并且每个主机执行高速缓存看管器处理904。每个高速缓存看管器处理在软件中被实施为由一个或多个硬件处理器所执行的计算机程序指令集合。模板高速缓存902例如通过本地网络互相通信。总之,模板高速缓存相互协作并且因此包括分布式协作高速缓存。在计算主机上执行的高速缓存看管器处理904管理其相关联的模板高速缓存902并且还与其它高速缓存看管器处理进行通信。优选地,特定高速缓存看管器处理作为主方(master)高速缓存看管器并且特别地通过执行放置计算906来决定放置策略。并非作为限制,DiffCache算法可以用作放置计算,并且该计算优选地在由一个或多个处理实体所执行的软件中实施。另外,处理904可以使用任意已知算法来选择用作主方的看管器。代表性算法是领导选择算法(leader election algorithm)。使用高速缓存看管器处理以及已知的通信方法(诸如ICP、Spread等),每个高速缓存了解其它高速缓存的内容,并且特定节点的高速缓存看管器处理能够与处于一个或多个其它主机的高速缓存看管器处理进行通信以获得它可能所需的来对请求进行服务。模板高速缓存902可以改变其构成;当其改变时,相关联的高速缓存看管器处理将那些变化广播至其它高速缓存以使得所有高速缓存继续具有作为整体的高速缓存内容的全局视图(至少针对站点自身)。高速缓存通常在发生某个可配置百分比的高速缓存缺失时改变其构成。高速缓存缺失被定义为在本地高速缓存中没有找到所请求图像的事件。优选地,高速缓存更新异步进行。
在可替换实施例中(未示出),代替使用主方高速缓存看管器以及集中化放置计算906,每个节点的高速缓存看管器处理决定其相关联的模板高速缓存中留存什么。该方法可以在存在针对多于一个管理器的要求的情况下或者考虑隐私和/或安全性问题的情况下使用。
虽然并未如此限制,但是以上所说明的方法可以关联于具有主机集合的云计算设备关联实施。在一个实施例中,每个主机的部分磁盘空间被声明为高速缓存(模板高速缓存),该高速缓存具有定义了可用的高速缓存空间的最小和最大界限。高速缓存看管器处理作为软件处理执行并且协调对所请求图像进行服务以及与诸如知识库之类的其它高速缓存看管器(或者,作为必要)的外部源进行通信的活动。高速缓存看管器从其它节点,特别地是在这样的其他节点上运行的高速缓存看管器处获得整体高速缓存构成的变化的通知。在从另一主机接收到更新之后,高速缓存看管器更新它自己对其它在参与的高速缓存的内容的估计。在从另一高速缓存看管器接收到针对图像或补丁的请求时,接收该请求的高速缓存看管器在本地进行搜索;如果所请求的制品(artifact)存在,则高速缓存看管器通过将其发送回请求方而进行响应。否则,高速缓存看管器可以将该请求路由至另一高速缓存看管器以对该请求进行服务。以有规律的间隔,主方高速缓存看管器调用高速缓存放置计算以便计算本地高速缓存新的构成。
当高速缓存看管器需要从其它高速缓存请求文件时,其可以向所有其它高速缓存发出请求并且等待响应。用于实施该功能的已知高速缓存协议是高速缓存间协议(ICP)。具有所请求文件的任意其它高速缓存可以发送确认并且进入锁定;该锁定防止进行确认的高速缓存改变其高速缓存构成。一旦接收到确认,进行请求的高速缓存要求进行确认的高速缓存之一发送文件并且指示其它进行确认的高速缓存去除其锁定。
利用附加背景,高速缓存填入问题能够公式化为线性编程问题,其中该目标是使得对针对图像的请求进行服务的成本最小化,其中成本可以是业务流或服务时间。该成本可能由诸如以上参考图5所描述的若干种情形而引发。因此,如果图像被高速缓存在本地高速缓存中,则成本仅是克隆图像并且将其提供给用户所必需的时间和费用。如果图像并未被高速缓存但是一些相对应的补丁被高速缓存,则该成本是对图像打补丁并且将结果提供给用户所必需的时间和费用。然而,如果相对应的补丁并未被高速缓存,则引入附加高速缓存以从端点高速缓存获取它,并且随后利用基本模板对其打补丁并将结果提供给用户。在该后者的情形中,总成本包括取得补丁并且应用它以生成目标图像模板所必需的时间。再另一种情形是需要从一些端点高速缓存获取完整图像并将其提供给用户;这种情形下的成本是从端点高速缓存获得图像所需要的成本。当必需从更远的高速缓存或知识库自身取得基本和/或补丁时引发额外的成本。优选地,该算法使得成本最小化,同时还考虑到高速缓存的大小限制。
公式化中所使用的主要概念之一是在节点所请求的图像模板可以使用存在于不同节点上的另一模板以及另一节点上的补丁来生成。为了方便,此概念可以由以下符号来表示:Ij@H1=Ii@H2@patchij@H3,其中模板Ij在主机H1被请求并且通过使用从主机H2所取得的模板Ii以及从主机H3所获取的补丁patchij而生成。在必要文件没有被高速缓存的情况下,(可以)联系知识库以便获取适当文件。
令存在N中不同类型的能够被请求的模板,并且K表示主机数量。在这些主机中,使用指标0来表示知识库主机,并且数值(1,...K)表示云主机站点中的主机。指标i和j指示模板,并且其从(1,...N)进行变化。指标p、q分别表示保管基本模板和补丁的主机的指标,并且从(1,...K)进行变化。还使用指标r作为主机指标来表示请求新模板的主机,并且因此其从(1,...K)进行变化。其它符号在图10所示的表格中有所描述。
具体问题是得出基本模板和补丁的集合,并且确定它们在可用主机上的放置。通常,存在应当被满足以精确定义问题的若干种约束。现在对这些约束进行描述。
唯一解约束
对于针对主机处的模板的请求,具有多种方式来使得模板可用。通常,可以确定一种方式来确保最低成本。为此,使用决策变量Sijpqr来指示在具体主机处构建模板的方法。针对该决策变量的约束在这里被称作唯一解约束,并且其可以由以下等式(1)所表示:
针对在主机Hr所请求的模板Ij的解的数量(即,Sijpqr中1的数量)为1。
使用约束
为了在主机Hr生成模板Ij,可使用主机Hq的模板Ii以及Hp的patchij。如果在设置中存在若干模板,其使用来自主机Hq的模板Ii以及来自Hp的patchij,则这些实体的使用计数必须被统计以使得当为它们的活跃用户时它们不会被错误清除。对使用计数的思想进行编码的约束通过在完成查找决策时对模板和补丁使用进行统计来定义。该约束在这里被称作使用约束,并且其由以下的等式(2)和(3)所表达:
注意,Siiqqq表示Hq上的模板Ii;符号patchijp表示从模板i生成模板j的补丁处于主机Hp上。等式(2)左侧表示模板Ii是否应当被置于主机Hq上。注意,如果其被标记为使用至少一次,则模板将在主机Hq被高速缓存(即,变量Siiqqq的数值将为1)。右侧三项总和确定主机Hq的模板Ii是否被用于针对主机Hr的模板Ij的任何请求。由于变量Siiqqq的数值应当为1或0,总体计数被除以被高速缓存的实体能够被使用的最大次数(其由主机数量和模板数量的乘积所给出)。因此,表达式被界定在0和1之内。该表达式的上界满足Siiqqq的完整性约束。等式(3)能够被类似理解,其中patchijp是[0,1]中的整数。
容量约束
容量约束确保了每个节点上的高速缓存的可用空间不会在放置模板和补丁之后被超出。每个节点上可以有多个被高速缓存的模板和补丁,并且该约束确保了所使用的总空间小于高速缓存空间。优选地,容量约束由等式(4)所表达:
等式(4)找出主机Hr的高速缓存使用。该空间被基本模板文件和补丁文件所消耗。正如等式(2)和(3),通过分别查看Sijrrr和patchijr而确定基本模板Ij和patchijr是否被使用。如果它们被使用,则意味着它们被高速缓存在主机Hr。这些等式对主机Hr上的所有模板和补丁的大小进行加总以计算在Hr上消耗的总空间,并且该总空间对于每个Hr而言应当小于Hr的容量。
成本函数
为针对主机Hr上的模板Ij的请求进行服务的成本取决于模板依据前一轮的高速缓存计算中所进行的放置的可用性。如图5中的处理流程中所解释的,具有若干种记录高速缓存命中的方式:(i)模板Ij在主机Hr上可用;(ii)模板Ij在端点节点上可用;(iii)模板Ij能够使用Ii和patchij所生成,并且Ii和patchij在Hr或其任意端点节点上可用。如果所有这些情形都失败,则可能需要从知识库取得patchij(当基本模板Ii在一个端点节点上可用时),或者可能需要从知识库取得模板Ij。
基于将如何对请求进行服务以及给定高速缓存构成,能够计算对请求进行服务的延时或者所传输的总字节。这两种成本中的任一种的最小化能够通过相同的高速缓存构成来实现。特别地,当请求在服务器上本地处理时,如果需要打补丁,则除了打补丁之外,所耗费的总时间是在从本地高速缓存复制图像文件中。假设传输时间为LocalTx。如果联系端点服务器,则传输是在局域网上进行(通常情况下),并且传输速率为PeerTx。当涉及到知识库时,则传输速率为RepoTx。注意,通常情况下,LocalTx>PeerTx>>RepoTx。为了计算对请求进行服务的延时,必须知道所使用模板和补丁的大小以及传输速率。为了计算所传输的字节,仅需要大小数据。为了生成成本,成本矩阵存储对针对主机处的模板的请求进行服务的数值。如之前所描述的,决策变量Sijpqr表示用于在节点构建所请求模板的具体组合。因此,给定如矩阵中所存储的构建成本,容易计算出对所有请求进行服务的总成本。另外,如果到达历史可用,则节点上每个模板的请求负载被计算并由fjr表示。最后,使得对所有预计请求进行服务的总成本最小化的目标函数因此由以下的等式(5)所给出:
等式(5)找出了对主机Hr的每个请求Ij进行服务的总成本。这计算了总计成本,原因在于其还考虑了模板在主机上被请求的频率,也就是fjr。变量Sijpqr对要用来对针对Hr的模板Ij的请求进行服务的解进行编码并且变量ijprq给出了对应于解的成本。
以上问题的公式化因此提供了整数线性程序,一旦被求解,其就提供了模板和补丁的最优放置以使得对请求进行服务的总成本最小化。
以下对Diffcache进行描述,这是利用基本模板和补丁对高速缓存进行预先填充的算法。该问题是NP难度的问题。现在对用于解决该问题的启发式算法进行描述,即给定多个输入参数(例如,针对节点上的每个模板的请求到达频率,对节点上的请求进行服务的成本,其中模板和补丁的大小已知,等等)的情况下用于计算高速缓存的最佳构成的启发式算法。
优选地,该算法以多轮来计算放置。图11A-11B图示了Diffcache算法的实施例。在每轮,要求是选择主机上的模板,加上连同其主机一起的补丁。每轮优选地以两个步骤运行。在第一步骤,将模板置于节点之上同时满足容量约束(图11B,第16行)。给定该放置,该算法搜索跨所有节点的补丁以便使得总成本最小化(图11B的PickPatches,第25行)。该算法确保了在完成一轮之前考虑了模板和节点的所有组合(图11B的PickimageAndPatches,第12行)。在每轮,拣取新的模板并且重复该步骤直至高速缓存空间被耗尽。在每轮结束时,对若干数据结构进行更新(UpdateDataStructures)。特别地,LookUpTable是从其获取相应项的连同主机(其可以是知识库)一起返回模板和补丁的哈希表(hashtable)。该哈希表的关键在于模板id以及在其上需要它的主机。在每轮,当新的模板和补丁被添加至高速缓存时,查找能够经历变化。使用哈希表确保了确切地存在一个解在主机上构建模板。在具有大量模板的可替换实施例中,可以使用数据库来存储解以加速搜索。如之前所描述的,针对主机上的每个模板,并且针对主机上的补丁,在查找条目进行更新时维持使用计数(Usage-Count)。这确保了补丁或模板不会在假设其未被使用的情况下从高速缓存移除。另外,在每轮之后,基于新的放置更新每个节点上用于高速缓存的可用空间(Available-Space)。
这里所描述的主题相对于现有技术具有显著优势。总体而言,使用所描述的高速缓存改善了(通过减少)供应时间和成本。通过将所请求的图像高速缓存在主机节点的高速缓存之中,明显减少了从集中高速缓存向主机节点传输图像的网络成本。通过差异技术(例如,RDIFF)进行权衡,从高速缓存的模板创建所请求的图像模板,与从主机节点的集中高速缓存进行同样操作相比占用更少量的时间。该方法使得云服务提供商能够维护更普遍请求的图像模板的更大量的冗余副本。所描述的方法提供了一种减少云端设置的网络使用同时仍然保持高速缓存效率的方式。该技术提供了高度可靠、可高度缩放以及高度可用的方法来输送虚拟器件。优选地,VA中最为普遍的部分被识别并高速缓存为基本图像,以使得能够使用基本以及预先计算的差异图像(或补丁)而在繁忙中容易且可靠地构建目标VA。与仅高速缓存模板文件相比,与以上描述方式的高速缓存智能填入相耦合的基于补丁的高速缓存提供了在服务请求延时方面的显著改进。
该技术进一步的优势在于其对图像模板经常表现出高度共性的事实加以了利用。已知通过仅存储跨模板的共用模块来利用该特性并且优化存储需求。该主题技术采用该方法进一步在高速缓存的同时对模板之间的共性加以利用。如已经描述的,两个相似模板之间的补丁文件通常大小很小。如果模板和补丁文件处于高速缓存之中,则能够通过使用高速缓存中的模板和补丁来生成新的模板。该方法不仅确保了从高速缓存对请求进行服务,而且在高速缓存空间要求方面也有所节省。特别地,由于补丁文件的大小很小,所以提供商能够通过仅存储少量模板和多个补丁而有效地对更多模板进行高速缓存。因此,给定针对模板和可用高速缓存空间的请求模式,可能计算使得联系知识库以便得到服务所需的请求次数最小化的最优高速缓存构成。所描述的DiffCache算法利用补丁和模板填入高速缓存,这与仅存储模板文件的标准高速缓存技术相比,使得网络业务流最小化并且在减少服务时间方面产生明显增益。
如已经描述的,以上所描述的功能可以被实施为独立方法,例如处理器所执行的基于软件的功能,或者其可被用作管理服务(包括经由SOAP/XML接口的web服务)。这里所描述的特定硬件和软件实施方式的细节仅是出于说明的目的而并非意在对所描述主题的范围进行限制。
更一般地,所公开主题的范围之内的计算设备均为包括硬件和软件的数据处理系统(诸如图2所示),并且这些实体通过网络互相通信,该网络诸如互联网、企业内部网、外部网、私有网络,或者任意其它通信介质或链路。数据处理系统上的应用提供对Web和其它已知服务和协议的本地支持,尤其包括但不局限于对HTTP、FTP、SMTP、SOAP、XML、WSDL、UDDI和WSFL的支持。与SOAP、WSDL、UDDI和WSFL相关的信息可从万维网联盟(W3C)获取,其负责这些标准的开发和维护;与HTTP、FTP、SMTP和XML相关的另外信息可从互联网工程任务组(IETF)获取。假定这些已知标准是熟悉的。
这里所描述的方案可以以各种服务器侧的架构或者与之相结合进行实施,其包括简单的n层架构、web端口、联合系统等。这里的技术可以在松散耦合的服务器(包括基于“云”的)环境中进行实践。虚拟机规划框架或其组件可以在云中进行保管。
更一般地,这里所描述的主题可以采用完全硬件实施例、完全软件实施例或者包含硬件和软件元素的实施例的形式。在优选实施例中,信任的平台模块功能以软件实施,其包括但并不局限于固件、驻留软件、微代码等。此外,虚拟机布置框架能够采取可从计算机可用或计算机可读介质进行访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供程序代码以便由计算机或任意指令执行系统使用或者结合其使用。出于该描述的目的,计算机可用或计算机可读介质可以为能够包含或存储程序以便由指令执行系统、装置或设备使用或者结合其使用的任意装置。该介质可以为电子的、磁的、光的、电磁的、红外的或半导体的系统(或者装置或设备)。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机卡带、随机访问存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前示例包括紧致盘-只读存储器(CD-ROM)、紧致盘-读/写(CD-R/W)和DVD。计算机可读介质是有形的非瞬时介质。
计算机程序产品可以是具有程序指令(或程序代码)以实施所描述功能中的一个或多个功能的产品。那些指令或代码可以通过网络从远程数据处理系统进行下载之后被存储在数据处理系统的计算机可读存储介质中。或者,那些指令或代码可以被存储在服务器数据处理系统的计算机可读存储介质中并且适于通过网络被下载到远程数据处理系统中以便在远程系统内的计算机可读存储介质中使用。
在代表性实施例中,构架组件在专用计算平台中实施,优选地地在一个或多个处理器所执行的软件中实施。该软件保存在与一个或多个处理器相关联的一个或多个数据存储或存储器中,并且该软件可以被实施为一个或多个计算机程序。总之,该专用硬件和软件包括以上所描述的功能。
另外,这里所提供的构架功能可以被实施为针对现有云计算管理解决方案的附属或扩展。
虽然以上描述了通过本发明的某些实施例所执行的特定顺序的操作,但是应当以理解的是,这样的顺序是示例性的,因为可替换实施例可以以不同顺序来执行该操作,对某些操作进行合并,对某些操作进行重复,等等。说明书中对给定实施例的参考表示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例都并非必需包括特定特征、结构或特性。
最后,虽然已经单独对系统的给定组件进行了描述,但是本领域技术人员将会意识到的是,一些功能可以在给定指令、程序序列、代码部分等中进行合并或共享。
这里所描述的技术可以被用来在云计算环境中供应任意的虚拟“资源”。如这里所使用的“资源”通常为虚拟器件,但是并不局限于此。资源可以是虚拟机、监管资源或者任意其它机器、设备、数据存储、处理或程序。
如这里所描述的“补丁”应当被宽泛地理解为是指被附加至图像模板或者以其它方式与之相关联以创建所期望的虚拟资源的任意补充、增加或扩展。
已经对我们的发明进行了描述,我们所请求保护的内容详见权利要求书。
Claims (16)
1.一种在具有云主机集合的云计算环境中进行供应的方法,包括:
跨所述云主机集合形成分布式协作高速缓存;
跨所述分布式协作高速缓存对高速缓存活动进行协调;以及
尝试对请求进行服务以从存储在所述分布式协作高速缓存中的信息供应虚拟资源,其中所述分布式协作高速缓存通过以下步骤形成:
将与云主机相关联的部分数据存储声明为高速缓存;
在所述高速缓存中存储模板图像和补丁;以及
令每个高速缓存利用与其高速缓存的内容相关的信息对至少一个或多个其它高速缓存进行更新。
2.根据权利要求1所述的方法,其中所述高速缓存活动通过以下步骤协调:
在高速缓存之一处接收针对模板图像或补丁的请求;
如果所述模板图像或补丁存在于接收所述请求的所述高速缓存处,则对所述请求进行响应;以及
如果所述模板图像或补丁并不存在于接收所述请求的所述高速缓存处,则将所述请求路由至所述分布式协作高速缓存中的另一个高速缓存。
3.根据权利要求1所述的方法,其中所述高速缓存活动通过所述高速缓存的作为主方的选定高速缓存而协调。
4.根据权利要求1所述的方法,进一步包括定期计算所述分布式协作高速缓存的构成。
5.根据权利要求4所述的方法,进一步包括基于所述构成将模板图像和补丁填入形成所述分布式协作高速缓存的高速缓存中。
6.根据权利要求5所述的方法,其中根据使得对服务请求作出响应的总成本最小化的成本函数而将所述模板图像和补丁填入所述高速缓存中。
7.一种在具有云主机集合的云计算环境中进行供应的装置,包括:
处理器;
保存有计算机程序指令的计算机存储器,当被所述处理器执行时,所述计算机程序指令执行一种在云计算环境中进行供应的方法,该方法包括:
跨云主机集合形成分布式协作高速缓存;
跨所述分布式协作高速缓存对高速缓存活动进行协调;并且
尝试对请求进行服务以从存储在所述分布式协作高速缓存中的信息供应虚拟资源,其中所述分布式协作高速缓存通过以下步骤形成:
将与云主机相关联的部分数据存储声明为高速缓存;
在所述高速缓存中存储模板图像和补丁;并且
令每个高速缓存利用与其高速缓存的内容相关的信息对至少一个或多个其它高速缓存进行更新。
8.根据权利要求7所述的装置,其中高速缓存活动通过以下步骤协调:
在高速缓存之一处接收针对模板图像或补丁的请求;
如果所述模板图像或补丁存在于接收所述请求的所述高速缓存处,则对所述请求进行响应;以及
如果所述模板图像或补丁并不存在于接收所述请求的所述高速缓存处,则将所述请求路由至所述分布式协作高速缓存中的另一个高速缓存。
9.根据权利要求7所述的装置,其中所述高速缓存活动通过高速缓存的作为主方选择的高速缓存而协调。
10.根据权利要求7所述的装置,其中所述方法进一步包括定期计算所述分布式协作高速缓存的构成。
11.根据权利要求10所述的装置,其中所述方法进一步包括基于所述构成将模板图像和补丁填入形成所述分布式协作高速缓存的高速缓存中。
12.根据权利要求11所述的装置,其中根据使得对服务请求作出响应的总成本最小化的成本函数而将所述模板图像和补丁填入高速缓存中。
13.一种云计算基础设施,包括:
云主机的集合,每个云主机包括硬件组件;
两个或更多高速缓存,共同地包括分布式协作高速缓存;
在所述分布式协作高速缓存中进行高速缓存的模板图像和补丁的集合,
其中补丁适于被应用于给定模板图像以生成新的模板图像;
控制例程,在处理器中执行以确定模板图像和补丁在所述分布式协作高速缓存中的构成,所述构成是使得对虚拟资源请求进行服务的总成本最小化的构成。
14.根据权利要求13所述的云计算基础设施,其中所述两个或更多高速缓存共同放置。
15.根据权利要求13所述的云计算基础设施,进一步包括高速缓存看管器,其跨所述分布式协作高速缓存对高速缓存活动进行协调。
16.根据权利要求13所述的云计算基础设施,其中所述高速缓存看管器调用控制例程以定期地确定所述构成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/525,497 US8880638B2 (en) | 2012-06-18 | 2012-06-18 | Distributed image cache for servicing virtual resource requests in the cloud |
US13/525,497 | 2012-06-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103516777A CN103516777A (zh) | 2014-01-15 |
CN103516777B true CN103516777B (zh) | 2016-12-28 |
Family
ID=49756945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310226533.7A Active CN103516777B (zh) | 2012-06-18 | 2013-06-07 | 用于在云计算机环境中进行供应的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8880638B2 (zh) |
CN (1) | CN103516777B (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9459807B2 (en) * | 2013-03-14 | 2016-10-04 | Qualcomm Incorporated | Methods and systems for providing resources for cloud storage |
US9218140B2 (en) * | 2013-08-30 | 2015-12-22 | Vmware, Inc. | System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines |
CN105900059B (zh) | 2014-01-21 | 2019-06-07 | 甲骨文国际公司 | 用于在应用服务器、云或其它环境中支持多租户的系统和方法 |
US10061808B2 (en) * | 2014-06-03 | 2018-08-28 | Sap Se | Cached views |
US10027595B2 (en) * | 2014-06-23 | 2018-07-17 | Oracle International Corporation | System and method for providing a work manager in a multitenant application server environment |
US11477278B2 (en) * | 2014-06-24 | 2022-10-18 | Oracle International Corporation | System and method for supporting partitions in a multitenant application server environment |
US10547562B2 (en) | 2014-07-31 | 2020-01-28 | Hewlett Packard Enterprise Development Lp | Cloud resource pool |
US10462249B2 (en) * | 2014-08-25 | 2019-10-29 | Super Micro Computer, Inc. | Globally distributed virtual cache for worldwide real-time data access |
US11586358B2 (en) * | 2014-12-17 | 2023-02-21 | Red Hat, Inc. | Building file system images using cached logical volume snapshots |
US9977681B2 (en) | 2015-01-21 | 2018-05-22 | Oracle International Corporation | System and method for partition startup/shutdown in a multitenant application server environment |
US10250512B2 (en) | 2015-01-21 | 2019-04-02 | Oracle International Corporation | System and method for traffic director support in a multitenant application server environment |
US10225209B2 (en) | 2015-01-21 | 2019-03-05 | Oracle International Corporation | System and method for interceptors in a multitenant application server environment |
US9906597B2 (en) | 2015-04-07 | 2018-02-27 | Microsoft Technology Licensing, Llc | Collaboration data proxy system in cloud computing platforms |
US10114835B2 (en) | 2015-04-29 | 2018-10-30 | Box, Inc. | Virtual file system for cloud-based shared content |
US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US10409599B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Decoding information about a group of instructions including a size of the group of instructions |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
US10169044B2 (en) | 2015-06-26 | 2019-01-01 | Microsoft Technology Licensing, Llc | Processing an encoding format field to interpret header information regarding a group of instructions |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
US10255081B2 (en) * | 2015-07-17 | 2019-04-09 | Accenture Global Solutions Limited | Method and system for intelligent cloud planning and decommissioning |
US11126433B2 (en) | 2015-09-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Block-based processor core composition register |
US10768936B2 (en) | 2015-09-19 | 2020-09-08 | Microsoft Technology Licensing, Llc | Block-based processor including topology and control registers to indicate resource sharing and size of logical processor |
US11016770B2 (en) | 2015-09-19 | 2021-05-25 | Microsoft Technology Licensing, Llc | Distinct system registers for logical processors |
US20170132027A1 (en) * | 2015-11-09 | 2017-05-11 | Symantec Corporation | Systems and methods for coordinating data caching on virtual storage appliances |
US10007556B2 (en) | 2015-12-07 | 2018-06-26 | International Business Machines Corporation | Reducing utilization speed of disk storage based on rate of resource provisioning |
US10013265B2 (en) | 2016-06-23 | 2018-07-03 | International Business Machines Corporation | Management of container host clusters |
US11385919B1 (en) * | 2016-07-12 | 2022-07-12 | Amazon Technologies, Inc. | Machine image launch system |
US10565110B2 (en) * | 2016-08-02 | 2020-02-18 | Microsoft Technology Licensing, Llc | Reducing memory usage for long standing computations |
US11138017B2 (en) | 2016-09-16 | 2021-10-05 | Oracle International Corporation | System and method for partition administrative targeting in an application server environment |
US11057263B2 (en) * | 2016-09-27 | 2021-07-06 | Vmware, Inc. | Methods and subsystems that efficiently distribute VM images in distributed computing systems |
US11531552B2 (en) | 2017-02-06 | 2022-12-20 | Microsoft Technology Licensing, Llc | Executing multiple programs simultaneously on a processor core |
US10341428B2 (en) | 2017-02-22 | 2019-07-02 | International Business Machines Corporation | Synchronized release of resources used in deferential cloud services |
US11470131B2 (en) | 2017-07-07 | 2022-10-11 | Box, Inc. | User device processing of information from a network-accessible collaboration system |
US10929210B2 (en) | 2017-07-07 | 2021-02-23 | Box, Inc. | Collaboration system protocol processing |
US10846108B1 (en) * | 2018-06-26 | 2020-11-24 | Amazon Technologies, Inc. | Providing limited access within a private network |
WO2020173886A1 (en) * | 2019-02-28 | 2020-09-03 | Cytiva Sweden Ab | Control of a buffer preparation process |
CN113535329B (zh) * | 2021-07-23 | 2023-07-18 | 中国科学技术大学苏州高等研究院 | 一种多租户云中虚拟机的部署方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096596A (zh) * | 2010-11-29 | 2011-06-15 | 华中科技大学 | 一种基于虚拟机内存模板的云计算服务Cache系统 |
CN102307206A (zh) * | 2010-09-25 | 2012-01-04 | 广东电子工业研究院有限公司 | 基于云存储的快速访问虚拟机镜像的缓存系统及其方法 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7555528B2 (en) | 2000-09-06 | 2009-06-30 | Xanboo Inc. | Systems and methods for virtually representing devices at remote sites |
US7577722B1 (en) | 2002-04-05 | 2009-08-18 | Vmware, Inc. | Provisioning of computer systems using virtual machines |
US9547485B2 (en) | 2006-03-31 | 2017-01-17 | Prowess Consulting, Llc | System and method for deploying a virtual machine |
CN101290583B (zh) * | 2007-04-19 | 2011-03-16 | 国际商业机器公司 | 为虚拟机供应图像的方法和系统 |
US8166448B2 (en) | 2007-05-25 | 2012-04-24 | Microsoft Corporation | Rapid development of distributed web service |
US20090063652A1 (en) * | 2007-09-04 | 2009-03-05 | Yoon Sub Hwang | Localized Media Content Delivery |
US7921179B1 (en) | 2008-01-15 | 2011-04-05 | Net App, Inc. | Reducing latency of access requests in distributed storage systems having a shared data set |
US8799396B2 (en) | 2008-02-04 | 2014-08-05 | Cisco Technology, Inc. | Method and system for an efficient distributed cache with a shared cache repository |
US8543998B2 (en) | 2008-05-30 | 2013-09-24 | Oracle International Corporation | System and method for building virtual appliances using a repository metadata server and a dependency resolution service |
US8943271B2 (en) | 2008-06-12 | 2015-01-27 | Microsoft Corporation | Distributed cache arrangement |
US9747340B2 (en) * | 2008-06-19 | 2017-08-29 | Microsoft Technology Licensing, Llc | Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic |
US8250215B2 (en) | 2008-08-12 | 2012-08-21 | Sap Ag | Method and system for intelligently leveraging cloud computing resources |
CN101662483A (zh) * | 2008-08-28 | 2010-03-03 | 盛大计算机(上海)有限公司 | 云计算网络的缓存系统及其方法 |
US8151062B2 (en) * | 2008-10-26 | 2012-04-03 | Microsoft Corporation | Consistency models in a distributed store |
US8572587B2 (en) | 2009-02-27 | 2013-10-29 | Red Hat, Inc. | Systems and methods for providing a library of virtual images in a software provisioning environment |
US8560649B2 (en) | 2009-03-13 | 2013-10-15 | Aspect Software, Inc. | Virtual appliance automation tool |
WO2010127365A1 (en) * | 2009-05-01 | 2010-11-04 | Citrix Systems, Inc. | Systems and methods for establishing a cloud bridge between virtual storage resources |
CN102033755A (zh) | 2009-09-30 | 2011-04-27 | 国际商业机器公司 | 用于运行虚拟机镜像的方法和系统 |
GB2476878A (en) | 2010-01-08 | 2011-07-13 | Viewfinity Inc | Management of pool member configuration in the provision of virtual desktop images to users |
US9098456B2 (en) | 2010-01-13 | 2015-08-04 | International Business Machines Corporation | System and method for reducing latency time with cloud services |
US8392838B2 (en) | 2010-01-27 | 2013-03-05 | Vmware, Inc. | Accessing virtual disk content of a virtual machine using a control virtual machine |
US8805968B2 (en) * | 2010-05-03 | 2014-08-12 | Panzura, Inc. | Accessing cached data from a peer cloud controller in a distributed filesystem |
US8601226B1 (en) * | 2010-05-20 | 2013-12-03 | Gogrid, LLC | System and method for storing server images in a hosting system |
US20110320733A1 (en) * | 2010-06-04 | 2011-12-29 | Steven Ted Sanford | Cache management and acceleration of storage media |
US8601129B2 (en) | 2010-06-30 | 2013-12-03 | International Business Machines Corporation | Hypervisor selection for hosting a virtual machine image |
US8612413B2 (en) * | 2010-08-12 | 2013-12-17 | Cdnetworks Co., Ltd. | Distributed data cache for on-demand application acceleration |
US8595722B2 (en) | 2010-10-14 | 2013-11-26 | International Business Machines Corporation | Preprovisioning virtual machines based on request frequency and current network configuration |
US9329886B2 (en) | 2010-12-10 | 2016-05-03 | Amazon Technologies, Inc. | Virtual machine morphing for heterogeneous migration environments |
US8793684B2 (en) * | 2011-03-16 | 2014-07-29 | International Business Machines Corporation | Optimized deployment and replication of virtual machines |
US10853306B2 (en) * | 2011-08-02 | 2020-12-01 | Ajay JADHAV | Cloud-based distributed persistence and cache data model |
US10200493B2 (en) * | 2011-10-17 | 2019-02-05 | Microsoft Technology Licensing, Llc | High-density multi-tenant distributed cache as a service |
US9195488B2 (en) * | 2011-11-21 | 2015-11-24 | International Business Machines Corporation | Image deployment in a cloud environment |
WO2013112151A1 (en) | 2012-01-26 | 2013-08-01 | Empire Technology Development Llc | Data center with continuous world switch security |
-
2012
- 2012-06-18 US US13/525,497 patent/US8880638B2/en active Active
-
2013
- 2013-06-07 CN CN201310226533.7A patent/CN103516777B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307206A (zh) * | 2010-09-25 | 2012-01-04 | 广东电子工业研究院有限公司 | 基于云存储的快速访问虚拟机镜像的缓存系统及其方法 |
CN102096596A (zh) * | 2010-11-29 | 2011-06-15 | 华中科技大学 | 一种基于虚拟机内存模板的云计算服务Cache系统 |
Also Published As
Publication number | Publication date |
---|---|
US20130339470A1 (en) | 2013-12-19 |
CN103516777A (zh) | 2014-01-15 |
US8880638B2 (en) | 2014-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103516777B (zh) | 用于在云计算机环境中进行供应的方法和系统 | |
CN105978704B (zh) | 用于创建新的云资源指令集体系结构的系统和方法 | |
CN105897688B (zh) | 使得在云中部署的应用能够访问内部资源的方法和装置 | |
CN109643312B (zh) | 托管查询服务 | |
CN102760074B (zh) | 用于高负荷业务流程可扩展性的方法及其系统 | |
Kim et al. | CometCloud: An autonomic cloud engine | |
US9086923B2 (en) | Autonomic workflow management in dynamically federated, hybrid cloud infrastructures | |
US8914469B2 (en) | Negotiating agreements within a cloud computing environment | |
CN104580349B (zh) | 安全云管理代理 | |
CN103403683A (zh) | 虚拟数据中心服务请求的基于能力的路由 | |
US20140344323A1 (en) | State-based configuration management for distributed systems | |
CN109086134A (zh) | 一种深度学习作业的运行方法和装置 | |
CN109213724A (zh) | 自动化桌面布置 | |
CN107005422A (zh) | 第二天操作的基于拓扑的管理 | |
El Malki et al. | Guiding architectural decision making on service mesh based microservice architectures | |
US9332074B2 (en) | Memory to memory communication and storage for hybrid systems | |
CN102902536A (zh) | 一种物联网计算机系统 | |
US20170017907A1 (en) | Supply chain excellence as a service | |
CN101069384B (zh) | 在网络环境中管理基于消息的工作负荷的方法和系统 | |
CN110658794A (zh) | 一种制造执行系统 | |
CN108076133A (zh) | 数联网 | |
Ruparelia | Cloud computing | |
US10776172B1 (en) | Cost optimized services for dynamic service levels | |
Chaczko et al. | Smart Hospital Management System: An integration of enterprise level solutions utilising open group architecture framework (TOGAF) | |
Singh | Energy Management in Cloud Through Green Cloud Technologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |