CN102460393B - 用于在虚拟存储资源之间建立云桥的系统和方法 - Google Patents

用于在虚拟存储资源之间建立云桥的系统和方法 Download PDF

Info

Publication number
CN102460393B
CN102460393B CN201080030002.5A CN201080030002A CN102460393B CN 102460393 B CN102460393 B CN 102460393B CN 201080030002 A CN201080030002 A CN 201080030002A CN 102460393 B CN102460393 B CN 102460393B
Authority
CN
China
Prior art keywords
network
equipment
server
application
virtual store
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
CN201080030002.5A
Other languages
English (en)
Other versions
CN102460393A (zh
Inventor
R·范德林顿
D·哈勒斯
S·沃特豪斯
P·H·贝努瓦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN102460393A publication Critical patent/CN102460393A/zh
Application granted granted Critical
Publication of CN102460393B publication Critical patent/CN102460393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Abstract

用于在两个虚拟存储资源之间建立云桥以及用于将数据从一个第一虚拟存储资源传输到另一个虚拟存储资源的方法和系统。该系统可包括第一虚拟存储资源或云,以及存储传送管理服务,所述存储传送管理服务在计算机上且在第一虚拟存储资源内执行。存储传送管理服务可以接收用户的用户证书,该用户证书识别存储适配器。在收到用户证书后,存储传送管理服务可以调用存储适配器,该存储适配器执行接口,该接口识别第二虚拟存储资源并包括接口转换文件。存储传送管理服务使用从第二虚拟存储资源获得的信息访问第二虚拟存储资源并与第二虚拟存储资源建立云桥,该信息是由该存储适配器使用接口转换文件来进行转换的。

Description

用于在虚拟存储资源之间建立云桥的系统和方法
相关申请
本专利申请要求2009年5月1日提交的美国临时专利申请序列号61/174,660的优先权,该申请的公开内容被视为本申请公开的一部分并且通过引用将其整体包含于此。
技术领域
本公开总的涉及用于提供对资源的访问的系统和方法。本公开尤其涉及用于在本地和远程企业寄载站点之间传送资源的系统和方法。
背景技术
在一些实例中用户可以访问多个云或虚拟存储资源。在这些实例中,用户可使用云来存储信息以及访问云中对用户可用的资源。云可以由一种或多种类型的服务提供并且可以专用于指定的功能。例如,用户可以有专用于工作信息和应用的一个云,和专用于由用户上载的个人应用和信息的另一个云。可能有时候会期望能够在一个云中访问来自另一个云内的可用的信息和资源。在其他方面,可能期望将一个云中的可用的资源和服务克隆到另一个云中以使得所有可用的资源和服务在单个云中是可用的。
云之间的通信可能是困难的,因为其常常要求从一组访问命令到另一组访问命令的转换。类似地,访问云需要了解用户证书。对于一个云而言,获得访问另一个云所需的用户证书以及进一步地将该用户证书信息传递到另一个云是很困难的。因此,需要解决由于尝试在两个不同云之间建立通信桥所产生的这些困难的方法和系统。
发明内容
在一个方面,此处描述的是用于在第一虚拟存储资源和第二虚拟存储资源之间建立云桥的方法,其中所述云桥可以被用于从一个虚拟存储资源向另一个虚拟存储资源传输数据。在第一虚拟存储资源内的计算机上执行的存储传送管理服务可以接收用户的用户证书,其中所述用户证书识别存储适配器。响应于接收用户证书,存储传送管理服务可以调用在该用户证书中识别的存储适配器。所调用的存储适配器接着可以执行接口,所述接口识别第二虚拟存储资源并包括接口转换文件。然后,存储传送管理服务可以通过该存储适配器来访问第二虚拟存储资源。接着,存储传送管理服务可以使用在第二虚拟存储资源中存储的信息在第一虚拟存储资源和第二虚拟存储资源之间建立云桥,所述信息是由该存储适配器使用第二虚拟存储资源的接口转换文件来进行转换的。
在一些实施例中,该方法可以包括响应于接收用户证书来列举与该用户关联的存储适配器的列表。在这些实施例中,调用存储适配器可包括从所列举的存储适配器的列表中选择存储适配器,并调用所选择的存储适配器。
在其他实施例中,该方法包括响应于调用存储适配器来列举与该存储适配器关联的虚拟存储资源的列表。
在其他实施例中,该方法包括响应于调用存储适配器来列举第二虚拟存储资源中的访问端口的列表。在一些实例中,该方法可包括从该访问端口列表中选择访问端口,向所选择的访问端口发出连接请求,所述连接请求是由存储适配器使用接口转换文件来进行转换的。在其他实例中,该方法还可以包括建立到第二虚拟存储资源的所选择的访问端口的连接,并且经由该访问端口访问在第二虚拟存储资源中存储的数据。
在又一个方面,此处描述的是用于在第一虚拟存储资源和第二虚拟存储资源之间建立云桥的系统,所述云桥被用于从第一虚拟存储资源和第二虚拟存储资源中的一个向第一虚拟存储资源和第二虚拟存储资源中的另一个传输数据。该系统可包括第一虚拟存储资源和存储传送管理服务,所述存储传送管理服务在计算机上执行且在第一虚拟存储资源内执行。存储传送管理服务可以接收用户的用户证书,其中所述用户证书识别存储适配器。响应于接收用户证书,存储传送管理服务可以调用在该用户证书中识别的存储适配器,其中所述存储适配器执行接口,所述接口识别第二虚拟存储资源并包括接口转换文件。然后,存储传送管理服务可以通过该存储适配器来访问第二虚拟存储资源。接着,存储传送管理服务可以使用在第二虚拟存储资源中存储的信息在第一虚拟存储资源和第二虚拟存储资源之间建立云桥,所述信息是由该存储适配器使用第二虚拟存储资源的接口转换文件来进行转换的。
附图说明
通过参考下述结合附图的描述,本公开的前述和其它目的、方面、特征和优点将会更加明显并更易于理解,其中:
图1A是描述包括管理程序层、虚拟化层和硬件层的计算环境的实施例的框图;
图1B、1C、1D和1E是描述用于此处所描述的方法和系统的计算装置的实施例的框图;
图1F是描述客户机通过一个或多个网络优化设备访问服务器的网络环境的实施例的框图;
图1G是描述客户机通过一个或多个网络优化设备和其他网络设备访问服务器的网络环境的实施例的框图;
图1H是描述客户机通过单独部署或者与其他网络设备联合部署的单个网络优化设备访问服务器的网络环境的实施例的框图;
图1I是描述客户机通过一个或多个网络优化设备和一个或多个网络中的其他网络设备访问服务器的网络环境的又一个实施例的框图;
图2A是描述用于处理客户机和服务器之间的通信的设备的实施例的框图;
图2B是描述部署设备的网络优化特征的客户机和/或服务器的又一个实施例的框图;
图2C是描述包括性能监控服务的传送计算环境和/或在客户机上操作计算环境的网络环境的实施例的框图;
图2D是描述使用多个监控代理来监控网络服务的设备的实施例的框图;
图3是描述使用网络优化特征与服务器通信的客户机的实施例的框图;
图4A是描述在其中多个网络提供寄载和传送服务的系统的一个实施例的框图;
图4B是描述用于桥接多个网络的系统的一个实施例的框图,所述多个网络中的一个提供计算和存储功能;
图5A是描述在其中云服务与寄载架构寄载代表企业信息技术网的至少一个服务的系统的一个实施例的框图;
图5B是描述在其中企业IT网408包括办公场所缓存服务器的系统的一个实施例的框图;
图5C是描述在其中企业IT网408包括办公场所缓存服务器并且云服务与寄载架构406包括资源服务器的系统的一个实施例的框图;
图5D是描述在其中企业IT网408和云服务与寄载架构的至少一个寄载给端用户提供对诸如桌面的资源的访问的资源服务器的系统的一个实施例的框图;
图5E是描述包括云服务与寄载架构、云系统管理接口和云系统协调组件的系统的一个实施例的框图;
图6A是描述用于云计算环境中由存储传送管理服务自动供应虚拟机的系统的实施例的框图;
图6B是描述在其中存储传送管理服务包括存储系统通信组件的系统的实施例的框图;
图6C是描述在其中存储传送管理服务包括结构管理组件的系统的一个实施例的框图;
图6D是描述在其中存储传送管理服务包括主计算装置通信组件的系统的一个实施例的框图;
图7是描述用于云计算环境中由存储传送管理服务自动供应虚拟机的方法的实施例的流程图;
图8是描述用于在通信协议间动态地转换的方法的实施例的流程图;
图9A是描述用于在云计算环境中从存储系统检索数据的方法的一个实施例的流程图;
图9B是描述接口转换文件的部分的一个实施例的框图;
图9C是描述识别与存储系统关联的数据的数据模型的一个实施例的框图;
图9D是描述用于在云计算环境中从存储系统检索数据的方法的又一个实施例的流程图;
图10是描述在选择用于执行虚拟机的物理主机中评价历史指标的系统的实施例的框图;
图11是描述在选择用于执行虚拟机的物理主机中评价历史指标的方法的实施例的流程图;
图12是描述自适应地负载平衡用户会话以及动态地管理多个服务器的功率模式以降低能耗的系统的实施例的框图;
图13是描述在自适应地负载平衡用户会话以降低能耗的方法中所采用的步骤的一个实施例的流程图;
图14是描述在通过动态地管理多个服务器的功率模式来降低能耗的方法中所采用的步骤的一个实施例的流程图;
图15A是描述自适应地负载平衡用户会话以及动态地管理多个表示服务器的功率模式以降低能耗的系统的实施例的框图
图15B和15C是在描述合并到与此处描述的方法和系统相关的服务器组之前和之后的多个用户会话的实施例的图表;
图16A和16B是描述用于功率计量和报告的系统的实施例的框图;
图17A和17B是描述用于控制服务器合并以降低能耗的系统的实施例的框图;
图18是描述用于降低多个服务器中的能耗的系统的实施例的框图;
图19是描述用于在至少两个云之间建立桥的方法的实施例的流程图。
具体实施方式
在讨论用于在本地和远程的企业寄载站点直接传送资源的系统和方法的实施例的细节之前,讨论可以在其中部署这样的实施例的网络和计算环境可以是有帮助的。现参考图1A,框图描述了虚拟化环境的一个实施例。简而言之,计算装置100包括管理程序层、虚拟化层和硬件层。管理程序层包括管理程序161(也称为虚拟化管理器),其通过在虚拟化层中执行的至少一个虚拟机来分配和管理对硬件层中的多个物理资源的访问(例如处理器221和盘228)。虚拟化层包括至少一个操作系统170和分配给至少一个操作系统170的多个虚拟资源,虚拟资源可包括而不限于多个虚拟处理器132a、132b、132c(总称为132)和虚拟盘142a、142b、142c(总称为142)、以及例如虚拟存储器和虚拟网络接口的虚拟资源。可将多个虚拟资源和操作系统170称为虚拟机166。虚拟机166可包括控制操作系统165,该控制操作系统165与管理程序161通信,并用于执行应用以管理并配置计算装置100上的其他虚拟机。
现参考图1A,具体而言,管理程序161可以以模拟访问物理设备的操作系统的任何方式向操作系统提供虚拟资源。管理程序161可以向任一数量的客户操作系统170a、170b(总称为170)提供虚拟资源。一些实施例中,计算装置100执行一种或多种管理程序。这些实施例中,管理程序可用于模拟虚拟硬件、划分物理硬件、虚拟化物理硬件并执行提供对计算环境的访问的虚拟机。管理程序可包括由位于美国加利福尼亚州的Palo Alto的VMWare公司制造的那些程序、XEN管理程序(一种开源产品,其开发由开源Xen.org协会监管)、由Microsoft公司提供的HyperV、VirtualServer或虚拟PC管理程序或其他。一些实施例中,计算装置100执行创建客户操作系统可在其上执行的虚拟机平台的管理程序,该计算装置100被称为宿主服务器。在这些实施例的一个中,例如,计算装置100是由位于美国佛罗里达州FortLauderdale的Citrix Systems公司提供的XEN SERVER。
一些实施例中,管理程序161在计算装置上执行的操作系统之内执行。在这些实施例的一个中,执行操作系统和管理程序161的计算装置可被视为具有宿主操作系统(在计算装置上执行的操作系统)和客户操作系统(在由管理程序161提供的计算资源分区内执行的操作系统)。其他实施例中,管理程序161和计算装置上的硬件直接交互而不是在宿主操作系统上执行。在这些实施例的一个中,管理程序161可被视为是在“裸金属(bare metal)”上执行,所述“裸金属”指包括计算装置的硬件。
一些实施例中,管理程序161可以创建操作系统170在其中执行的虚拟机166a-c(总称为166)。在这些实施例的一个中,管理程序161加载虚拟机映像以创建虚拟机166。在这些实施例的另一个中,管理程序161在虚拟机166内执行操作系统170。在这些实施例的另一个中,虚拟机166执行操作系统170。
一些实施例中,管理程序161控制对在计算装置100上执行的虚拟机166的处理器调度和内存划分。在这些实施例的一个中,管理程序161控制至少一个虚拟机166的执行。在这些实施例的另一个中,管理程序161向至少一个虚拟机166呈现对由计算装置100提供的至少一个硬件资源的抽象。其他实施例中,管理程序161控制是否以及如何把物理处理器能力提供给虚拟机166。
控制操作系统165可以执行用于管理和配置客户操作系统的至少一个应用。一个实施例中,控制操作系统165可以执行管理应用,如包括如下用户接口的应用,该用户接口为管理员提供对用于管理虚拟机执行的功能的访问,这些功能包括用于执行虚拟机、终止虚拟机执行或者识别要分配给虚拟机的物理资源类型的功能。另一个实施例中,管理程序161在由管理程序161创建的虚拟机166内执行控制操作系统165。在又一个实施例中,控制操作系统165在被授权直接访问计算装置100上的物理资源的虚拟机166上执行。一些实施例中,计算装置100a上的控制操作系统165a可经由管理程序161a和管理程序161b之间的通信与计算装置100b上的控制操作系统165b交换数据。这样,一个或多个计算装置100可以与一个或多个其他计算装置100交换关于资源池中可用的处理器和其他物理资源的数据。在这些实施例的一个中,该功能允许管理程序管理分布在多个物理计算装置上的资源池。在这些实施例的另一个中,多个管理程序管理在其中一个计算装置100上执行的一个或多个客户操作系统。
一个实施例中,控制操作系统165在被授权与至少一个客户操作系统170交互的虚拟机166上执行。另一个实施例中,客户操作系统170通过管理程序161与控制操作系统165通信,以请求访问盘或网络。在又一个实施例中,客户操作系统170和控制操作系统165可通过由管理程序161建立的通信信道通信,例如,通过由管理程序161提供的多个共享存储器页面通信。
一些实施例中,控制操作系统165包括用于直接与由计算装置100提供的网络硬件通信的网络后端驱动器。在这些实施例的一个中,网络后端驱动器处理来自至少一个客户操作系统170的至少一个虚拟机请求。其他实施例中,控制操作系统165包括用于与计算装置100上的存储单元通信的块后端驱动器。在这些实施例的一个中,块后端驱动器根据从客户操作系统170接收的至少一个请求从存储单元读写数据。
一个实施例,控制操作系统165包括工具堆栈164。其他实施例中,工具堆栈164提供如下功能:和管理程序161交互、和其他控制操作系统165(例如位于第二计算装置100b上)通信,或者管理计算装置100上的虚拟机166b、166c。另一个实施例中,工具堆栈164包括自定义应用,其用于向虚拟机群的管理员提供改进的管理功能。一些实施例中,工具堆栈164和控制操作系统165中的至少一个包括管理API,其提供用于远程配置并控制计算装置100上运行的虚拟机166的接口。其他实施例中,控制操作系统165通过工具堆栈164与管理程序161通信。
一个实施例中,管理程序161在由管理程序161创建的虚拟机166内执行客户操作系统170。另一个实施例中,客户操作系统170为计算装置100的用户提供对计算环境中的资源的访问。另一个实施例中,资源包括程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境或对计算装置100的用户可用的其他资源。另一个实施例中,可通过多个访问方法将资源传送给计算装置100,这些方法包括但不限于:常规的直接安装在计算装置100上、通过应用流的方法传送给计算装置100、将由在第二计算装置100’上执行资源产生的并通过表示层协议传送给计算装置100的输出数据传送给计算装置100、将由在第二计算装置100’上执行的虚拟机执行资源所产生的输出数据传送给计算装置100、或者从连接到计算装置100的移动存储装置(例如USB设备)执行,或者通过在计算装置100上执行的虚拟机执行并且产生输出数据。一些实施例中,计算装置100把执行资源所产生的输出数据传输给另一个计算装置100’。
一个实施例中,客户操作系统170和该客户操作系统170在其上执行的虚拟机结合形成完全虚拟化虚拟机,该完全虚拟化虚拟机并不知道自己是虚拟机,这样的机器可称为“Domain U HVM(硬件虚拟机)虚拟机”。另一个实施例中,完全虚拟化机包括模拟基本输入/输出系统(BIOS)的软件以便在完全虚拟化机中执行操作系统。在另一个实施例中,完全虚拟化机可包括驱动器,其通过和管理程序161通信提供功能。这样的实施例中,驱动器通常意识到自己在虚拟化环境中执行。
另一个实施例中,客户操作系统170和该客户操作系统170在其上执行的虚拟机结合形成超虚拟化虚拟机(paravirtualized),该超虚拟化虚拟机意识到自己是虚拟机,这样的机器可称为“Domain U PV虚拟机”。另一个实施例中,超虚拟化机包括完全虚拟化机不包括的额外驱动器。另一个实施例中,超虚拟化机包括如上所述的被包含在控制操作系统165中的网络后端驱动器和块后端驱动器。
计算装置100-以及在下面的更多的细节中所讨论的客户机102、服务器106、设备200和设备205-可以被部署为任意类型和形式的计算装置和/或在其上执行,例如能够与任意类型和形式的网络通信并且执行此处所描述的操作的计算机、网络装置或设备。图1B和1C描述了用于实施此处所描述的方法和系统的实施例的计算装置100的框图。如图1B和1C所示,计算装置100包括中央处理单元121和主存储器单元122。如图1B所示,计算装置100可包括存储装置128、安装装置116、网络接口118、I/O控制器123、显示装置124a-124n、键盘126和诸如鼠标的指示装置127。存储装置128可包括但不限于操作系统、软件和客户机代理120。如图1C所示,每个计算装置100也可包括另外的可选部件,例如存储器端口103、桥170、一个或多个输入/输出装置130a-130n(总的使用标号130表示)以及与中央处理单元121通信的高速缓存存储器140。
中央处理单元121是响应并处理从主存储器单元122取出的指令的任意逻辑电路。在一些实施例中,中央处理单元121由微处理器单元提供,例如:由位于美国加利福尼亚州Mountain View的Intel公司制造的微处理器单元;由位于美国伊利诺伊州Schaumburg的Motorola公司制造的微处理器单元;由位于美国加利福尼亚州Santa Clara的Transmeta公司制造的微处理器单元;RS/6000处理器,由位于美国纽约州White Plains的InternationalBusiness Machines公司制造的微处理器单元;或者由位于美国加利福尼亚州Sunnyvale的Advanced Micro Devices公司制造的微处理器单元。计算装置100可以基于这些处理器中的任意一种,或者能够按照这里所说明的那样运行的任意其它处理器。
主存储器单元122可以是能够存储数据并允许微处理器121直接访问任意存储位置的一个或多个存储器芯片,例如静态随机存取存储器(SRAM)、突发SRAM或同步突发SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页模式DRAM(FPM DRAM)、增强DRAM(EDRAM)、扩展数据输出DRAM(EDO DRAM)、突发扩展数据输出DRAM(BEDO DRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、双倍数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接RambusDRAM(DRDRAM)或铁电RAM(FRAM)。主存储器122可以基于上述存储器芯片的任意一种,或者能够像这里所说明的那样运行的任意其它可用存储器芯片。在图1B所示的实施例中处理器121通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图1C描述了在其中处理器通过存储器端口103直接与主存储器122通信的计算装置100的实施例。例如,在图1C中主存储器122可以是DRDRAM。
图1C描述在其中主处理器121通过有时被称为背侧总线的次级总线直接与高速缓存存储器140通信的实施例。其他实施例中,主处理器121使用系统总线150与高速缓存存储器140通信。高速缓存存储器140通常有比主存储器122更快的响应时间,并且通常由SRAM、BSRAM或EDRAM提供。在图1C所示的实施例中,处理器121通过本地系统总线150与各种I/O装置130进行通信。可以使用各种不同的总线将中央处理单元121连接到任意I/O装置130,包括VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O装置是视频显示器124的实施例,处理器121可以使用高级图形端口(AGP)与显示装置124通信。图1C描述了在其中主处理器121通过HYPERTRANSPORT、RAPIDIO、或INFINIBAND通信技术直接与I/O装置130b通信的计算机100的实施例。图1C也描述了在其中本地总线和直接通信相混合的实施例:处理器121使用本地互连总线与I/O装置130a通信同时直接与I/O装置130b通信。
提前参考图1D,计算装置100可以包括多个处理器,可以提供用于对不只一个数据片同时执行多个指令或者同时执行一个指令的功能。在一些实施例中,计算装置100可包括具有一个或多个核的并行处理器。在这些实施例的一个中,计算装置100是共享内存并行设备,具有多个处理器和/或多个处理器核,将所有可用内存作为一个全局地址空间进行访问。在这些实施例的又一个中,计算装置100是分布式存储器并行设备,具有多个处理器,每个处理器访问本地存储器。在这些实施例的又一个中,计算装置100既有共享的存储器又有仅由特定处理器或处理器子集访问的存储器。在这些实施例的又一个中,如多核微处理器的计算装置100将两个或多个独立处理器组合在一个封装中,通常在一个集成电路(IC)中。在这些实施例的又一个中,计算装置100包括具有单元宽带引擎(CELL BROADBAND ENGINE)架构的芯片,并包括高能处理器单元以及多个协同处理单元,高能处理器单元和多个协同处理单元通过内部高速总线连接在一起,可以将内部高速总线称为单元互连总线。
在一些实施例中,处理器提供用于对多个数据片同时执行单个指令(SIMD)的功能。其他实施例中,处理器提供用于对多个数据片同时执行多个指令(MIMD)的功能。又一个实施例中,处理器可以在单个装置中使用SIMD和MIMD核的任意组合。
在一些实施例中,计算装置100可包括图像处理单元。图1E所示的在这些实施例的一个中,计算装置100包括至少一个中央处理单元101和至少一个图像处理单元。在这些实施例的又一个中,计算装置100包括至少一个并行处理单元和至少一个图像处理单元。在这些实施例的又一个中,计算装置100包括任意类型的多个处理单元,多个处理单元中的一个包括图像处理单元。
回去参考图1B,计算装置100中可以有多种I/O装置130a-130n。输入装置包括键盘、鼠标、触控板、轨迹球、话筒、拨号盘和绘图板。输出装置包括视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机。如图1B所示,I/O装置可以由I/O控制器123控制。I/O控制器可以控制一个或多个I/O装置,例如键盘126和指示装置127(如鼠标或光笔)。此外,I/O装置还可以为计算装置100提供存储和/或安装介质116。在其它实施例中,计算装置100可以提供USB连接(未示出)以接收手持USB存储装置,例如由位于美国加利福尼亚州Los Alamitos的Twintech Industry公司生产的设备的USB闪存驱动线。
仍参考图1B,计算装置100可以支持任意适当的安装装置116,例如用于接收像3.5英寸、5.25英寸磁盘或ZIP磁盘这样的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、闪存驱动器、多种格式的磁带驱动器、USB设备、硬盘驱动器或适于安装软件和程序的任意其它设备。计算装置100还可以包括存储装置,诸如一个或者多个硬盘驱动器或者独立磁盘冗余阵列,用于存储操作系统和其它相关软件,以及用于存储诸如涉及客户机代理120的任意程序的应用软件程序。或者,可以使用安装装置116的任意一种作为存储装置。此外,操作系统和软件可从可引导介质运行,可引导介质例如是可引导CD,诸如KNOPPIX,其为一种用于GNU/Linux的可引导CD,可自knoppix.net作为GNU/Linux分发获得。
此外,计算装置100可以包括网络接口118以通过多种连接来与网络对接,所述连接包括但不限于标准电话线路、LAN或WAN链路(例如802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(如ISDN、帧中继、ATM、千兆以太网、SONET上以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的某种组合。可使用多种通信协议(例如TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE802.11、IEEE802.11a、IEEE802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)来建立连接。在一个实施例中,计算装置100可以通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS)协议,或由位于美国佛罗里达州Ft.Lauderdale的Citrix Systems公司制造的Citrix网关协议的隧道协议来与其他计算装置100’通信。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网络卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算装置100对接到能够通信并执行这里所说明的操作的任意类型的网络的任意其它设备。
在一些实施例中,计算装置100可以包括多个显示装置124a-124n或与其相连,这些显示装置各自可以是相同或不同的类型和/或形式。因而,任意一种I/O装置130a-130n和/或I/O控制器123可以包括任一类型和/或形式的适当的硬件、软件或硬件和软件的组合,以支持、允许或提供通过计算装置100连接和使用多个显示装置124a-124n。例如,计算装置100可以包括任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示装置124a-124n对接、通信、连接或以其他方式使用显示装置124a-124n。在一个实施例中,视频适配器可以包括多个连接器以与多个显示装置124a-124n对接。在其它实施例中,计算装置100可以包括多个视频适配器,每个视频适配器与显示装置124a-124n中的一个或多个连接。在一些实施例中,计算装置100的操作系统的任一部分都可以被配置用于使用多个显示器124a-124n。在其它实施例中,显示装置124a-124n中的一个或多个可以由一个或多个其它计算装置提供,诸如(例如通过网络)与计算装置100连接的计算装置100a和100b。这些实施例可以包括被设计和构造来使用另一个计算机的显示装置作为计算装置100的第二显示装置124a的任何类型的软件。本领域的普通技术人员会认识和意识到可以将计算装置100配置成拥有多个显示装置124a-124n的各种方式和实施例。
在进一步的实施例中,I/O装置130可以是系统总线150和外部通信总线之间的桥,所述外部通信总线如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线、串行SCSI总线或HDMI总线。
图1B和1C中所描述类型的计算装置100通常地在操作系统的控制下运行,操作系统控制任务的调度和对系统资源的访问。计算装置100可运行任一操作系统,诸如任一版本的MICROSOFT WINDOWS操作系统;不同发行版本的Unix和Linux操作系统;用于Macintosh计算机的MAC OS的任意版本;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;任意用于移动计算装置的操作系统,或者能够在计算装置上运行且执行此处所描述的操作的任意其它操作系统。典型的操作系统包括但不限于:WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT 4.0、WINDOWS CE、WINDOWS MOBILE、WINDOWS XP和WINDOWS VISTA,所有这些均由位于美国华盛顿州Redmond的微软公司出品;由位于美国加利福尼亚州Cupertino的苹果计算机公司出品的Mac OS;由位于美国纽约州Armonk的国际商业机器公司出品的OS/2;以及由位于美国犹他州Salt LakeCity的Caldera公司发布的可免费使用的Linux操作系统或者任意类型和/或形式的Unix操作系统,以及其它。
计算机系统100可以是任意工作站、电话、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话或其他便携电信设备、媒体播放设备、游戏系统、移动计算装置,或能够通信的任意其它类型和/或形式的计算、电信或者媒体装置。计算机系统100有足够的处理器能力和存储容量以执行此处所述的操作。例如,计算机系统100可包括由位于美国加利福尼亚州Cupertino的苹果计算机公司出品的IPOD系列设备、由位于日本Tokyo的索尼公司出品的PLAYSTATION2、PLAYSTATION3或PERSONAL PLAYSTATIONPORTABLE(PSP)设备,由位于日本Kyoto的Nintendo有限公司出品的NINTENDODS、NINTENDO GAMEBOY、NINTENDO GAMEBOY ADVANCED或NINTENDOREVOLUTION设备,或者由位于美国华盛顿州Redmond的微软公司出品的XBOX或XBOX 360设备。
在一些实施例中,计算装置100可以有不同的处理器、操作系统以及与该装置一致的输入设备。例如,在一个实施例中,计算装置100是由Palm公司出品的TREO180、270、600、650、680、700p、700w/wx、750、755p、800w、Centro和Pro智能电话。在这些实施例的一些中,TERO智能电话是在PalmOS操作系统的控制下操作并且包括笔输入设备以及五向导航设备。
在其他实施例中,计算装置200是移动设备,例如,JAVA使能蜂窝电话或个人数字助理(PDA),诸如i55sr、i58sr、i85s、i88s、i90c、i95c1、i335、i365、i570、I576、i580、i615、i760、i836、i850、i870、i880、i920、i930、ic502、ic602、ic902、i776或iml100,以上这些均由位于美国伊利诺伊州Schaumburg的摩托罗拉公司制造;由位于日本Kyoto的Kyocera公司制造的6035或7135;或者由位于韩国首尔的Samsung电子有限公司制造的i300或i330。在一些实施例中,计算装置100是由位于芬兰的诺基亚公司制造或由位于瑞典Lund的Sony Ericsson MobileCommunications AB公司制造的移动设备。
在其他实施例中,计算装置100是黑莓(Blackberry)手持或智能电话,诸如由Research In Motion有限公司制造的设备,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520、黑莓PERAL 8100、8700系列、8800系列、黑莓Storm、黑莓Bold、黑莓Curve 8900、黑莓Pearl Flip。在其他实施例中,计算装置100是智能电话、Pocket PC、Pocket PC电话,或支持Microsft Windows Mobile Software的其它手持移动设备。此外,计算装置100可以是任意工作站、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话、任意其它计算机、或能够通信并有足够的处理器能力和存储容量以执行此处所述操作的其它形式的计算或者电信设备。
在一些实施例中,计算装置100是数字音频播放器。在这些实施例的一个中,计算装置100是诸如由位于美国加利福尼亚州Cupertino的苹果计算机公司制造的Apple IPOD、IPOD Touch、IPOD NANO和IPOD SHUFFLE系列设备的数字音频播放器。在这些实施例的另一个中,数字音频播放器可作为便携媒体播放器和作为大容量存储装置来工作。在其他实施例中,计算装置100是诸如由位于美国新泽西州Ridgefield Park的Samsung ElectronicsAmerica公司制造的DigitalAudioPlayer Select MP3播放器,或由位于美国伊利诺伊州Schaumburg的Motorola公司制造的Motorola m500或m25的数字音频播放器。在其他实施例中,计算装置100是便携媒体播放器,诸如由Creative Technologies有限公司制造的ZEN VISION W、ZEN VISION系列、ZEN PORTABLE MEDIA CENTER设备或MP3播放器的Digital MP3系列。仍在其他实施例中,计算装置100是支持以下文件格式的便携媒体播放器或数字音频播放器,这些文件格式包括,但不限于MP3、WAV、M4A/AAC、WMAProtected AAC、AIFF、Audible音频书、Apple Lossless音频文件格式和.mov、.m4v以及.mp4MPEG-4(H.264/MPEG-4AVC)视频文件格式。
在一些实施例中,计算装置100包括设备的组合,例如与数字音频播放器或便携媒体播放器相组合的移动电话。在这些实施例的一个中,计算装置100是智能电话,例如由苹果计算机公司制造的iPhone,或由Research InMotion有限公司制造的黑莓设备。又一个实施例中,计算装置100是装有web浏览器和麦克风与扬声器系统(如电话耳机)的笔记本电脑或台式计算机。在这样的实施例中,计算装置100是web使能的(web-enabled)的并且能接听和启动电话呼叫。在其他实施例中,计算装置100是组合数字音频播放器和移动电话的Motorola RAZR或Motorola ROKR系列。
计算装置100可以是文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器或防火墙。在一些实施例中,计算装置100提供远程认证拨入用户服务,并被称为RADIUS服务器。在其他实施例中,计算装置100可以有作为应用服务器或者作为主应用服务器工作的能力。在其他实施例中,计算装置100是刀片服务器。
在一个实施例中,计算装置100可包括活动目录。计算装置100可以是应用加速设备。对于其中计算装置100是应用加速设备的实施例,计算装置100可提供包括防火墙功能、应用防火墙功能,或负载平衡功能的功能。在一些实施例中,计算装置100包括诸如由位于美国加州San Jose的CitrixApplication Networking Group、位于美国加州Mountain View的SilverPeak Systems公司、位于美国加州San Francisco的Riverbed Technology公司、位于美国华盛顿州Seattle的F5 Networks公司或位于美国加州Sunnyvale的Juniper Networks公司制造的设备系列中的一个设备。
在一些实施例中,计算装置100可以被称为服务器。在其他实施例中,计算装置100可被称为客户机节点、客户机器、端节点或端点。在一些实施例中,客户机100具有作为客户机节点寻求访问服务器所提供的资源的能力以及作为服务器节点为其它客户机提供对所寄载的资源访问的能力。
在一些实施例中,第一客户机计算装置100a与第二服务器计算装置100b通信。这样的计算装置100a也可被称为客户机节点、客户机器、端节点或端点。在一个实施例中,客户机与服务器群中的计算装置100之一进行通信。例如,通过网络,客户机可以请求执行由服务器群中的计算装置100所寄载的各种应用以及接收应用执行结果的输出数据以用于显示。在又一个实施例中,客户机执行程序邻近应用(program neighborhood application)以与服务器群中的计算装置100通信。在其他实施例中,第一计算装置100a从第二计算装置100b检索应用和资源以用于代表第三计算装置100c在第一计算装置100a上执行。在这些实施例的一个中,第一客户机计算装置100a与第二服务器计算装置100b可以被称为服务器。在其他实施例中,计算机系统100具有作为客户机节点寻求访问服务器所提供的资源的能力以及作为服务器节点为其它系统200提供对所寄载的资源访问的能力。
计算装置100可以执行、操作或者以其它方式提供应用,该应用可以是任何类型和/或形式的软件、程序或可执行指令,诸如任何类型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用、瘦客户端计算客户机、ActiveX控件、或Java小程序,或者能够在计算装置100上执行的任何其他类型和/或形式的可执行指令。在一些实施例中,应用可以是由第二计算装置代表第一计算装置的用户执行的基于服务器的或者基于远程的应用。在其他实施例中,第二计算装置可使用任何瘦客户端或远程显示协议向第一客户计算装置显示输出的数据,所述协议如:由位于美国佛罗里达州Ft.Lauderdale的Citrix Systems公司制造的独立计算架构(ICA)协议;或由位于美国华盛顿州Redmond的Microsoft公司制造的远程桌面协议(RDP);X11协议;由AT&T贝尔实验室制造的虚拟网络计算(VNC)协议;由位于美国加州Sunnyvale和以色列Raanana的Qumranet公司制造的SPICE协议;由位于美国加州Milpitas的VESA公司制造的Net2Display协议;由位于加拿大不列颠哥伦比亚省Burnaby的Teradici公司制造的PC-over-IP协议;由位于美国加州San Jose的Wyse Technology公司制造的TCX协议;由位于美国纽约州NewYork的纽约市哥伦比亚大学开发的THINC协议;或者由位于美国马萨诸塞州Chelmsford的Desktone公司制造的Virtual-1-D协议。应用可以使用任何类型的协议,并且其可以是例如HTTP客户机、FTP客户机、Oscar客户机或Telnet客户机。在其他实施例中,应用包括与诸如软IP电话的网络电话(VoIP)通信有关的任意类型的软件。在进一步的实施例中,应用包括与实时数据通信有关的任何应用,例如用于流式传输视频和/或音频的应用。
一些实施例中,第一计算装置100a代表客户计算装置100b的用户执行应用。在其他实施例中,计算装置100a执行虚拟机,其提供执行会话,在该会话中,代表客户计算装置100b的用户执行应用。在这些实施例的一个中,执行会话是寄载的桌面会话。在这些实施例的又一个中,计算装置100执行终端服务会话。终端服务会话可以提供寄载的桌面环境。在这些实施例的又一个中,执行会话提供对计算环境的访问,计算环境可包括以下的一个或多个:应用、多个应用、桌面应用以及在其中可执行一个或多个应用的桌面会话。
在一些实施例中,第一计算装置100a将虚拟机166传输到第二计算装置100b以用于执行。在这些实施例的一个中,第一计算装置100a传送虚拟机映像,第二计算装置100b上的管理程序101可以从该虚拟机映像执行虚拟机166。在这些实施例的又一个中,第二计算装置100b上的控制操作系统165b请求对来自第一计算装置100a上的控制操作系统165a的虚拟机映像的访问,以在执行虚拟机166b中使用。在这些实施例的又一个中,第二计算装置100b上的控制操作系统165b从第一计算装置100a检索执行虚拟机166b所需的数据;例如第一计算装置100a可以是在存储区域网、数据库和其他存储元件上的装置。
在一些实施例中,第一计算装置100a响应于确定第二计算装置100b要求虚拟机映像以满足来自计算装置100b的用户的请求,来将虚拟机映像传输到第二计算装置100b。在这些实施例的一个中,例如,计算装置100b的用户请求访问第二计算装置100b上的资源和组件(例如,控制操作系统165),识别提供对该资源访问所需的虚拟机166。
现在参见图1F,描述了网络环境的实施例。概括来讲,网络环境包括经由一个或多个网络104、104’、104”与一个或多个服务器106a-106n(同样总的称为服务器106,或远程机器106)通信的一个或多个客户机102a-102n(同样总的称为本地机器102,或客户机102)。在一个实施例中,客户机102a可以从服务器106a请求资源,同时向另一个客户机102b提供服务器106a的功能。在又一个实施例中,客户机102a可以代表客户机102a的用户从服务器106a请求资源。
在一些实施例中,客户机102经由一个或多个网络优化设备200、200’(总的称为设备200)与服务器106通信。在一个实施例中,网络优化设备200被设计为、配置为或适合于优化广域网(WAN)网络业务量。在一些实施例中,第一设备200与第二设备200’结合或协同工作来优化网络业务量。例如,第一设备200可位于分支机构和WAN连接之间而第二设备200’位于WAN和公司局域网(LAN)之间。设备200、200’可一起工作以优化在分支机构中的客户机和公司LAN上的服务器之间的WAN相关的网络业务。
虽然图1F示出了在客户机102和服务器106之间的网络104、网络104’和网络104”(总的称为网络104),但客户机102和服务器106可以位于同一个的网络104上。网络104、104’、104”可以是相同类型的网络或不同类型的网络。网络104可为局域网(LAN)(例如公司内网),城域网(MAN),或者广域网(WAN)(例如互联网或万维网)。网络104、104’、104”可为专用网络或公网。在一个实施例中,网络104’和网络104”可为专用网而网络104可为公网。在一些实施例中,网络104可为专用网而网络104’和/或网络104”可为公网。在又一个实施例中,网络104、104’、104”可都为专用网。在一些实施例中,客户机102可位于公司企业的分支机构中,经由网络104上的WAN连接与位于公司数据中心中的公司LAN上的服务器106进行通信。
网络104可以是任何类型和/或形式的网络,并且可包括任何下列任何一种网络:点对点网络,广播网络,广域网,局域网,电信网络,数据通信网络,计算机网络,ATM(异步传输模式)网络,SONET(同步光纤网络)网络,SDH(同步数字体系)网络,无线网络和有线网络。在一些实施例中,网络104可以包括诸如红外信道或者卫星频带的无线链路。网络104的拓扑可为总线型、星型或环型网络拓扑。网络104以及网络拓扑可以是本领域普通技术人员所知的能够支持此处描述的操作的任何这样的网络或网络拓扑。
如图1F所描述的,第一网络优化设备200被显示在网络104和104’之间,并且第二网络优化设备200’也在网络104’和104”之间。在一些实施例中,设备200可位于网络104上。例如,公司企业可在分支机构中部署设备200。在其它实施例中,设备200可以位于网络104’上。在一些实施例中,设备200可以位于网络104’或网络104”上。例如,设备200可位于公司的数据中心。在一个实施例中,设备200和200’在同一网络上,在又一个实施例中,设备200和200’在不同的网络上。
在一个实施例中,设备200是用于加速、优化或者以其他方式改善任何类型和形式的网络业务量的性能、操作或服务质量的装置。在一些实施例中,设备200是一个性能增强代理。在其它实施例中,设备200是任何类型和形式的WAN优化或加速装置,有时也被称为WAN优化控制器。在一个实施例中,设备200是由位于佛罗里达州Ft.Lauderdale的Citrix Systems公司出品的被称为WANScaler的产品实施例中的任何一种。在其它实施例中,设备200包括由位于华盛顿州Seattle的F5 Networks公司出品的被称为BIG-IP链路控制器和WANjet的产品实施例中的任何一种。在又一个实施例中,设备200包括由位于加利福尼亚州Sunnyvale的Juniper NetWorks公司出品的WX和WXC WAN加速装置平台中的任何一种。在一些实施例中,设备200包括由加利福尼亚州San Francisco的Riverbed Technology公司出品的虹鳟(steelhead)系列WAN优化设备中的任何一种。在其它实施例中,设备200包括由位于新泽西州Roseland的Expand Networks公司出品的WAN相关装置中的任何一种。在一个实施例中,设备200包括由位于加利福尼亚州Cupertino的Packeteer公司出品的任何一种WAN相关设备,例如由Packeteer提供的PacketShaper、iShared和SkyX产品实施例。在又一个实施例中,设备200包括由位于加利福尼亚州San Jose的Cisco Systems公司出品的任何WAN相关设备和/或软件,例如Cisco广域网应用服务软件和网络模块以及广域网引擎设备。
在一些实施例中,设备200为分支机构或远程办公室提供应用和数据加速业务。在一个实施例中,设备200包括广域文件服务(WAFS)的优化。在又一个实施例中,设备200加速文件的传送,例如经由通用互联网文件系统(CIFS)协议。在其它实施例中,设备200在存储器和/或存储装置中提供高速缓存来加速应用和数据的传送。在一个实施例中,设备200在任何级别的网络堆栈或在任何的协议或网络层中提供网络业务量的压缩。在又一个实施例中,设备200提供传输层协议优化、流量控制、性能增强或修改和/或管理,以加速WAN连接上的应用和数据的传送。例如,在一个实施例中,设备200提供传输控制协议(TCP)优化。在其它实施例中,设备200提供对于任何会话或应用层协议的优化、流量控制、性能增强或修改和/或管理。在下文的B部分中讨论设备200的架构、操作和优化技术的进一步的细节。
仍参考图1F,网络环境可包括多个逻辑分组的服务器106。在这些实施例中,服务器的逻辑分组可以被称为服务器群38。在这些实施例的一些中,服务器106可为地理上分散的。在一些情况中,群38可以作为单个实体被管理。在其它实施例中,服务器群38包括多个服务器群38。在一个实施例中,服务器群代表一个或多个客户机102执行一个或多个应用程序。
在一个实施例中,服务器群38中的服务器106可以被存储在高密度货架系统以及关联的存储系统中,并且位于企业数据中心。在该实施例中,以此方式联合服务器可以通过将服务器106和高性能存储系统设置在局部的高性能网络上来改善系统可管理性、数据安全、系统的物理安全和系统性能。集中管理服务器106和存储系统并且将它们与高级系统管理工具相结合允许更有效地使用服务器资源。
在每个群38中的服务器106可为不同种类。一个或多个服务器106可根据一种类型的操作系统平台(例如,由华盛顿州Redmond的Microsoft公司制造的WINDOWS NT)操作,而一个或多个其它服务器106可根据另一类型的操作系统平台(例如,Unix或Linux)操作。每个群38的服务器106不需要与同一群38内的另一个服务器106物理上接近。因此,被逻辑分组为群38的服务器106组可使用广域网(WAN)连接或城域网(MAN)连接互联。例如,群38可包括物理上位于不同大陆或大陆的不同区域、国家、州、城市、校园或房间的服务器106。如果使用局域网(LAN)连接或一些直连形式来连接服务器106,则可增加群38中的服务器106间的数据传送速度。此外,异构的服务器群38包括根据一种类型的操作系统操作的一个或多个服务器106,而一个或多个其他服务器106执行一种或多种类型的管理程序而不是操作系统。在这些实施例中,管理程序可用于模拟虚拟硬件、划分物理硬件、虚拟化物理硬件并执行提供对计算环境的访问的虚拟机。管理程序可包括由位于美国加利福尼亚州的Palo Alto的VMWare公司制造的那些程序、XEN管理程序(一种开源产品,其开发由开源Xen.org协会监管)、由Microsoft公司提供的HyperV、VirtualServer或虚拟PC管理程序或其他。
为了管理服务器群38,应该监控服务器群38中的服务器106的性能的至少一个方面。通常监控放置在每个服务器106上的负载或者运行在每个服务器106上的会话的状态。在一些实施例中,集中的服务可以提供对服务群38的管理。集中的服务可以聚集和存储关于多个服务器106的信息,对访问由服务器106寄载的资源的请求进行响应、以及在客户机102和服务器106之间建立连接。
或者,服务器群38的管理可以是非集中式的。例如,一个或多个服务器106可包括组件、子系统和模块来支持用于服务器群38的一个或多个管理服务。在这些实施例的一个中,一个或多个服务器106提供用于管理动态数据的功能,包括处理故障切换、数据复制和提高服务器群38的鲁棒性的技术。每个服务器106可以与持久存储器通信,并且在一些实施例中可以与动态存储器通信。
一些实施例中,管理程序在执行操作系统的服务器106上执行。在这些实施例的一个中,执行操作系统和管理程序的服务器106可以说是具有宿主操作系统(在机器上执行的操作系统)和客户操作系统(在由管理程序提供的计算资源分区内执行的操作系统)。在其他实施例中,管理程序与服务器106上的硬件直接交互而不是在宿主操作系统上执行。在这些实施例的一个中,管理程序161可以说是在“裸金属(bare metal)”上执行,所述“裸金属”指包括服务器106的硬件。
在一些实施例中,服务器106代表客户机102的用户执行应用。在其他实施例中,服务器106执行虚拟机,该虚拟机提供执行会话,在该执行会话中应用代表用户或客户机102来执行。在这些实施例的一个中,该执行会话是所寄载的桌面会话。在这些实施例的另一个中,该执行会话提供对计算环境的访问,该计算环境包括如下的一个或多个:应用、多个应用、桌面应用、和在其中执行一个或多个应用的桌面会话。
服务器106可指文件服务器、应用服务器、web服务器、代理服务器或者网关服务器。在一些实施例中,服务器106可以有作为应用服务器或者作为主应用服务器工作的能力。在一个实施例中,服务器106可包括活动目录。客户机102也可称为客户机节点或端点。在一些实施例中,客户机102可以有作为客户机节点寻求访问服务器上的应用的能力,也可以有作为应用服务器为其它客户机102a-102n提供对寄载的应用的访问的能力。
在一些实施例中,客户机102与服务器106通信。在一个实施例中,客户机102可与群38中的服务器106的其中一个直接通信。在又一个实施例中,客户机102执行程序邻近应用(program neighborhood application)以与群38内的服务器106通信。在又一个实施例中,服务器106提供主节点的功能。在一些实施例中,客户机102通过网络104与群38中的服务器106通信。通过网络104,客户机102例如可以请求执行由群38中的服务器106a-106n寄载的各种应用,并接收应用执行结果的输出进行显示。在一些实施例中,只有主节点提供识别和提供与寄载所请求的应用的服务器106’相关的地址信息所需的功能。
在一个实施例中,服务器106提供web服务器的功能。在又一个实施例中,服务器106a接收来自客户机102的请求,将请求转发到第二服务器106b,并使用来自服务器106b对该请求的响应来对客户机102的请求进行响应。在又一个实施例中,服务器106获得客户机102可用的应用的列举以及与由该应用的列举所识别的应用的服务器106相关的地址信息。在又一个实施例中,服务器106使用web接口将对请求的响应提供给客户机102。在一个实施例中,客户机102直接与服务器106通信以访问所识别的应用。在又一个实施例中,客户机102接收由执行服务器106上所识别的应用而产生的诸如显示数据的应用输出数据。
现参考图1G,描述了网络环境的又一个实施例,在其中,网络优化设备200和诸如网关、防火墙或加速设备的一个或多个其他设备205、205’(总的称为设备205或第二设备205)部署在一起。例如,在一个实施例中,设备205是防火墙或安全设备,而设备205’是LAN加速设备。在一些实施例中,客户机102可通过一个或多个第一设备200和一个或多个第二设备205与服务器106通信。
一个或多个设备200和205可以位于在客户机102和服务器106之间的网络或网络通信路径中的任一点处。在一些实施例中,第二设备205可与第一设备200位于同一网络104上。在其他实施例中,第二设备205可位于与第一设备200不同的网络104上。在又一个实施例中,第一设备200和第二设备205在同一网络上,例如网络104,而第一设备200’和第二设备205’在同一网络上,例如网络104’。
在一个实施例中,第二设备205包括任何类型和形式的传输控制协议或传输后终止装置,例如网关或防火墙装置。在一个实施例中,设备205通过与客户机建立第一传输控制协议连接并且与第二设备或服务器建立第二传输控制协议连接来终止传输控制协议。在又一个实施例中,设备205通过改变、管理或控制在客户机和服务器或第二设备之间的传输控制协议连接的行为来终止传输控制协议。例如,设备205可以改变、排队、转发或传输网络分组以有效地终止传输控制协议连接或者起到终止该连接的作用或模拟为终止该连接。
在一些实施例中,第二设备205是性能增强代理。在一个实施例中,设备205提供虚拟专用网(VPN)连接。在一些实施例中,设备205提供安全套接字层VPN(SSL VPN)连接。在其他实施例中,设备205提供基于Ipsec(互联网协议安全)的VPN连接。在一些实施例中,设备205提供任何一个或多个下列功能:压缩、加速、负载平衡、交换/路由、缓存和传输控制协议(TCP)加速。
在一个实施例中,设备205是由位于佛罗里达州Ft.Lauderdale的Citrix Systems公司出品的被称为访问网关、应用防火墙、应用网关或NetScaler的产品实施例中的任何一种。这样,在一些实施例中,设备200包括执行诸如SSL VPN连通、SSL卸载、交换/负载平衡、域名服务解析、LAN加速和应用防火墙的服务或功能的任何逻辑、功能、规则或操作。
在一些实施例中,设备205提供在客户机102和服务器106之间的SSLVPN连接。例如,第一网络104上的客户机102请求建立到第二网络104’上的服务器106的连接。在一些实施例中,第二网络104”是不能从第一网络104路由的。在其它实施例中,客户机102位于公用网络104上,而服务器106位于专用网络104’上,例如公司网。在一个实施例中,客户机代理拦截第一网络104上的客户机102的通信,加密该通信,并且经第一传输层连接发送该通信到设备205。设备205将第一网络104上的第一传输层连接与到第二网络104上的服务器106的第二传输层连接相关联。设备205接收来自客户机代理的被拦截的通信,解密该通信,并且经第二传输层连接发送该通信到第二网络104上的服务器106。第二传输层连接可以是池化的传输层连接。在一个实施例中,设备205为在两个网络104和104’之间的客户机102提供端到端安全传输层连接。
在一个实施例中,设备205寄载虚拟专用网络104上的客户机102的内部网互联网协议或者IntranetIP地址。客户机102具有本地网络标识符,诸如第一网络104上的互联网协议(IP)地址和/或主机名称。当经由设备205连接到第二网络104’时,设备205在第二网络104’上为客户机102建立、分配或者以其它方式提供IntranetIP(内部网IP),其是诸如IP地址和/或主机名称的网络标识符。使用客户机的所建立的IntranetIP,设备205在第二或专用网104’上监听并接收指向该客户机102的任何通信。在一个实施例中,设备205在第二专用网络104上用作或者代表客户机102。
在一些实施例中,设备205具有加密引擎,所述加密引擎提供用于操控诸如SSL或TLS的任何安全相关协议或其中涉及的任何功能的处理的逻辑、商业规则、功能或操作。例如,加密引擎加密并解密通过设备205传输的网络分组,或其任何部分。加密引擎也可代表客户机102a-102n、服务器106a-106n或设备200、205来设置或建立SSL或TLS连接。因此,加密引擎提供SSL处理的卸载和加速。在一个实施例中,加密引擎使用隧道协议来提供在客户机102a-102n和服务器106a-106n间的虚拟专用网络。在一些实施例中,加密引擎使用加密处理器。在其它实施例中,加密引擎包括运行在加密处理器260上的可执行指令。
在一些实施例中,设备205为在客户机102和服务器106之间的通信提供下列一个或多个加速技术:1)压缩、2)解压缩、3)传输控制协议池、4)传输控制协议多路复用、5)传输控制协议缓冲、以及6)高速缓存。
在一个实施例中,设备200通过打开与每一服务器106的一个或者多个传输层连接并且维持这些连接以允许由客户机经由互联网的重复数据访问,来为服务器106缓解由重复打开和关闭到客户机102的传输层连接所造成的大量处理负载。该技术此处称为“连接池”。
在一些实施例中,为了经由池化的传输层连接无缝拼接从客户机102到服务器106的通信,设备205通过在传输层协议级修改序列号和确认号来转换或多路复用通信。这被称为“连接多路复用”。在一些实施例中,不需要应用层协议相互作用。例如,在到来的分组(即,自客户机102接收的分组)的情况中,所述分组的源网络地址被改变为设备205的输出端口的网络地址,而目的网络地址被改为目的服务器的网络地址。在发出的分组(即,自服务器106接收的一个分组)的情况中,源网络地址被从服务器106的网络地址改变为设备205的输出端口的网络地址,而目的地址被从设备205的网络地址改变为请求的客户机102的网络地址。分组的序列号和确认号也被转换为到客户机102的设备205的传输层连接上的由客户机102所期待的序列号和确认。在一些实施例中,传输层协议的分组校验和被重新计算以计及这些转换。
在又一个实施例中,设备205为客户机102和服务器106之间的通信提供交换或负载平衡功能。在一些实施例中,设备205根据层4有效载荷或应用层请求数据来分配业务量并将客户机请求定向到服务器106。在一个实施例中,尽管网络分组的网络层或者层2标识了目的服务器106,但设备205利用承载为传输层分组的有效载荷的数据和应用信息来确定服务器106以便分发网络分组。在一个实施例中,设备205的健康监控程序监控服务器的健康来确定分发客户机请求到哪个服务器106。在一些实施例中,如果设备205检测到某个服务器106不可用或者具有超过预定阈值的负载,设备205可以将客户机请求定向或者分发到另一个服务器106。
在一些实施例中,设备205用作域名服务(DNS)解析器或以其他方式提供对来自客户机102的DNS请求的解析。在一些实施例中,设备拦截由客户机102发送的DNS请求。在一个实施例中,设备205以设备205的IP地址或其所寄载的IP地址来响应客户机的DNS请求。在此实施例中,客户机102把用于该域名的网络通信发送到设备200。在又一个实施例中,设备200以第二设备200’的或其所寄载的IP地址来响应客户机的DNS请求。在一些实施例中,设备205使用由设备200确定的服务器106的IP地址来响应客户机的DNS请求。
在又一个实施例中,设备205为客户机102和服务器106之间的通信提供应用防火墙功能。在一个实施例中,策略引擎295’提供用于检测和阻断非法请求的规则。在一些实施例中,应用防火墙防御拒绝服务(DoS)攻击。在其它实施例中,设备检查所拦截的请求的内容,以识别和阻断基于应用的攻击。在一些实施例中,规则/策略引擎包括用于提供对多个种类和类型的基于web或互联网的脆弱点的保护的一个或多个应用防火墙或安全控制策略,例如下列的一个或多个:1)缓冲区泄出,2)CGI-BIN参数操纵,3)表单/隐藏字段操纵,4)强制浏览,5)cookie或会话中毒,6)被破坏的访问控制列表(ACLs)或弱密码,7)跨站脚本处理(XSS),8)命令注入,9)SQL注入,10)错误触发敏感信息泄露,11)对加密的不安全使用,12)服务器错误配置,13)后门和调试选项,14)网站涂改,15)平台或操作系统弱点,和16)零天攻击。在一个实施例中,对下列情况的一种或多种,设备的防火墙以检查或分析网络通信的形式来提供HTML格式字段的保护:1)返回所需的字段,2)不允许附加字段,3)只读和隐藏字段强制(enforcement),4)下拉列表和单选按钮字段的一致,以及5)格式字段最大长度强制。在一些实施例中,设备205的应用防火墙确保cookie不被修改。在其它实施例中,设备205通过执行合法的URL来防御强制浏览。
在其他实施例中,应用防火墙设备205保护在网络通信中包含的任何机密信息。设备205可以根据策略引擎的规则或策略来检查或分析任一网络通信以识别在网络分组的任一字段中的任一机密信息。在一些实施例中,应用防火墙在网络通信中识别信用卡号、口令、社会保险号、姓名、病人代码、联系信息和年龄的一次或多次出现。网络通信的编码部分可以包括这些出现或机密信息。基于这些出现,在一个实施例中,应用防火墙可以对网络通信采取策略行动,诸如阻止发送网络通信。在又一个实施例中,应用防火墙可以重写、删除或者以其它方式掩盖该所识别的出现或者机密信息。
尽管总的称为网络优化或第一设备200和第二设备205,但第一设备200和第二设备205可以是相同类型和形式的设备。在一个实施例中,第二设备205可执行与第一设备200相同的功能,或部分相同的功能,反之亦然。例如,第一设备200和第二设备205都可以提供加速技术。在一个实施例中,第一设备200可执行LAN加速而第二设备205执行WAN加速,或者反之亦然。在又一个实施例中,第一设备200也可以与第二设备205一样是传输控制协议终止装置。而且,尽管设备200和205被显示为在网络上单独的装置,但设备200和/或设备205可以是客户机102或服务器106的一部分。
现参考图1H,描述了用于部署设备200的网络环境的其他实施例。在如图1H的上部所描述的又一个实施例中,设备200可以部署为网络104上单个设备或单个代理。例如,设备200可以被设计、构建或调整来执行此处所讨论的WAN优化技术,而不需要第二协同设备200’。在如图1H的下部所描述的其他实施例中,可以将单个设备200与一个或多个第二设备205部署在一起。例如,诸如Citrix WANScaler设备的WAN加速第一设备200可以与LAN加速或应用防火墙第二设备205(例如Citrix NetScaler)部署在一起。
现参考图1I,框图描述了用于部署设备200和设备205的网络环境的另外的实施例。在一些实施例中,如图1L的第一行所描绘的,第一设备200驻留在客户机102在其上驻留的网络104’上,而第二设备200’驻留在服务器在其上驻留的网络104”’上。在这些实施例的一个中,第一设备200和第二设备200’是由诸如广域网的第三网络隔开的。在其他实施例中,如图1I的第二行所描绘的,第一设备205驻留在客户机102在其上驻留的网络104’上,而第二设备205’驻留在服务器106在其上驻留的网络104”’上。在这些实施例的一个中,第一设备205和第二设备205’是由诸如广域网的第三网络104”隔开的。在其他实施例中,如图1I的第三行所描绘的,第一设备200和第一设备205驻留在客户机102在其上驻留的网络104’上,而第二设备200’和第二设备205’驻留在第二网络104”’上。在这些实施例的一个中,第一网络104’和第二网络104”’是由第三网络104”隔开的。在进一步的实施例中,第一设备200和第一设备205是作为一对来部署的对称装置。在这些实施例的一个中,网络104”’上的设备205驻留在设备200’和网络104”中的机器之间。
现在参考图2A,描述了用于传送和/或操作客户机上的计算环境的设备200的系统环境和架构的实施例。在一些实施例中,服务器106包括用于向一个或多个客户机102传送资源215-例如,计算环境、应用、数据文件和其他资源-的应用传送系统290。总的来说,客户机102经由网络104和设备200与服务器106通信。例如,客户机102可驻留在公司的远程办公室里,例如分支机构,而服务器106可驻留在公司数据中心。客户机102包括客户机代理120以及计算环境215。计算环境215可执行或操作用于访问、处理或使用数据文件的应用。可经由设备200和/或服务器106传送资源215。
在一个实施例中,资源215包括程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境或对本地机器102的用户可用的其他资源。可通过多个访问方法将资源215传送给本地机器102,这些方法包括但不限于:常规的直接安装在本地机器102上、通过应用流的方法传送给本地机器102、将由在第三机器106’上执行资源215产生的并通过表示层协议向本地机器102传送的输出数据传送给本地机器102、将由在远程机器106上执行的虚拟机执行资源所产生的输出数据传送给本地机器102、或者从连接到本地机器102的移动存储设备(例如USB设备)执行,或者通过在本地机器102上执行的虚拟机执行并且产生输出数据。一些实施例中,本地机器102将执行资源215所产生的输出数据传输给另一个本地机器102’。
现参考图2A,在更多细节中,在一些实施例中,设备200向客户机102加速传送资源215或者其任何部分。在一个实施例中,设备200通过应用传送系统290加速资源215的传送。例如,可使用此处描述的实施例来加速从公司中央数据中心到远程用户位置(例如公司的分支机构)的流应用及该流应用可处理的数据文件的传送。在又一个实施例中,此处所描述的实施例可以用于加速虚拟机映像的传送,该虚拟机映像可以是资源215或者可以执行该虚拟机映像来提供对资源215的访问。在又一个实施例中,设备200加速客户机102和服务器106之间的传输层业务量。在又一个实施例中,设备200控制、管理、或调整传输层协议以便加速计算环境的传送。在一些实施例中,设备200使用缓存和/或压缩技术来加速计算环境的传送。
在一些实施例中,基于多个执行方法并且基于通过策略引擎295所应用的任一验证和授权策略,应用传送管理系统290提供将计算环境传送到远程的或者其它的用户的桌面的应用传送技术。使用这些技术,远程用户可以从任何网络连接装置100获取计算环境并且访问存储应用和数据文件的服务器。在一个实施例中,应用传送系统290可驻留在服务器106上或在其上执行。在又一个实施例中,应用传送系统290可驻留在多个服务器106a-106n上或在其上执行。在一些实施例中,应用传送系统290可在服务器群38内执行。在一个实施例中,执行应用传送系统290的服务器106也可存储或提供应用和数据文件。在又一个实施例中,一个或多个服务器106的第一组可执行应用传送系统290,而不同的服务器106n可存储或提供应用和数据文件。在一些实施例中,应用传送系统290、应用和数据文件中的每一个可驻留或位于不同的服务器。在又一个实施例中,应用传送系统290的任何部分可驻留、执行、或被存储于或分发到设备200或多个设备。
客户机102可包括例如用于执行使用或处理数据文件的应用的计算环境的资源215。客户机102可通过网络104、104’和设备200请求来自服务器106的应用和数据文件。在一个实施例中,设备200可以将来自客户机102的请求转发到服务器106。例如,客户机102可能不具有本地存储或者本地可访问的应用和数据文件。响应于请求,应用传送系统290和/或服务器106可以传送应用和数据文件到客户机102。例如,在一个实施例中,服务器106可以把应用作为应用流来传输,以在客户机102上的资源215中操作。
在一些实施例中,应用传送系统290包括Citrix Systems公司的CITRIXACCESS SUITE的任一部分(例如MetaFrame或CITRIX PRESENTATION SERVER、CITRIX XEN APPLICATION服务器、CITRIX XEN SERVER),和/或由微软公司开发的Microsoft Windows终端服务中的任何一个。在一个实施例中,应用传送系统290可以通过远程显示协议或者以其它方式通过基于远程计算或者基于服务器计算来传送一个或者多个资源到客户机102或者用户。在又一个实施例中,应用传送系统290可以通过资源流来传送一个或者多个资源到客户机或者用户。
在一个实施例中,应用传送系统290包括策略引擎295,其用于控制和管理对应用的访问、应用执行方法的选择以及应用的传送。在一些实施例中,策略引擎295确定用户或者客户机102可以访问的一个或者多个应用。在又一个实施例中,策略引擎295确定应用应该如何被传送到用户或者客户机102,例如执行的方法。在一些实施例中,应用传送系统290提供多个传送技术,从中选择应用执行的方法,例如基于服务器的计算、本地流式传输或传送应用给客户机120以用于本地执行。
在一个实施例中,客户机102请求应用程序的执行而包括服务器106的应用传送系统290选择执行应用程序的方法。在一些实施例中,服务器106从客户机102接收证书。在又一个实施例中,服务器106从客户机102接收对于可用应用的列举的请求。在一个实施例中,响应该请求或者证书的接收,应用传送系统290列举对于客户机102可用的多个应用程序。应用传送系统290接收执行所列举的应用的请求。应用传送系统290选择预定数量的方法之一来执行所列举的应用,例如响应策略引擎的策略。应用传送系统290可以选择执行应用的方法,使得客户机102接收通过执行服务器106上的应用程序所产生的应用输出数据。应用传送系统290可以选择执行应用的方法,使得本地机器102在检索包括应用的多个应用文件之后本地执行应用程序。在又一个实施例中,应用传送系统290可以选择执行应用的方法,以通过网络104流式传输应用到客户机102。
客户机102可以执行、操作或者以其它方式提供应用,所述应用可为任何类型和/或形式的软件、程序或者可执行指令,例如任何类型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用、瘦客户端计算客户机、ActiveX控件、或者Java程序、或者可以在客户机102上执行的任何其它类型和/或形式的可执行指令。在一些实施例中,应用可以是代表客户机102在服务器106上执行的基于服务器或者基于远程的应用。在一个实施例中,服务器106可以使用任何瘦-客户端或远程显示协议来显示输出到客户机102,所述瘦-客户端或远程显示协议例如由位于佛罗里达州Ft.Lauderdale的CitrixSystems公司出品的独立计算架构(ICA)协议或由位于华盛顿州Redmond的微软公司出品的远程桌面协议(RDP)。应用可使用任何类型的协议,并且它可为,例如,HTTP客户机、FTP客户机、Oscar客户机或Telnet客户机。在其它实施例中,应用包括和VoIP通信相关的任何类型的软件,例如软IP电话。在进一步的实施例中,应用包括涉及到实时数据通信的任一应用,例如用于流式传输视频和/或音频的应用。
在一些实施例中,服务器106或服务器群38可运行一个或多个应用,例如提供瘦客户端计算或远程显示表示应用的应用。在一个实施例中,服务器106或服务器群38作为一个应用来执行Citrix Systems有限公司的CITRIX ACCESS SUITE的任一部分(例如METAFRAME或Citrix PRESENTATIONSERVER或XENAPP、XENSERVER),和/或微软公司开发的Microsoft Windows终端服务中的任何一个。在一个实施例中,该应用是位于佛罗里达州FortLauderdale的Citrix Systems Inc.开发的ICA客户机。在其它实施例中,该应用包括由位于华盛顿州Redmond的Microsoft公司开发的远程桌面(RDP)客户机。另外,服务器106可以运行一个应用,例如,其可以是提供电子邮件服务的应用服务器,例如由位于华盛顿州Redmond的Microsoft公司制造的Microsoft Exchange,web或Internet服务器,或者桌面共享服务器,或者协作服务器。在一些实施例中,任意应用可以包括任一类型的所寄载的服务或产品,例如位于加利福尼亚州Santa Barbara的CitrixOnline Division提供的GOTOMEETING,位于加利福尼亚州Santa Clara的WebEx有限公司提供的WEBEX,或者位于华盛顿州Redmond的Microsoft公司提供的Microsoft Office Live Meeting。
图2A也示出设备200的示例实施例。仅通过示例来提供图2A的设备200的架构并且不意于以任一方式受限。设备200可包括任何类型和形式的计算装置100,例如上文结合图1F和1G所讨论的任何元件或部分。概括来讲,设备200具有用于经由网络104接收和/或传输通信的一个或多个网络堆栈267A-267N和一个或多个网络端口266A-266N。设备200还具有用于优化、加速或以其他方式改善经过设备200的任何网络业务量或通信的质量、操作或性能。
设备200包括操作系统或在操作系统的控制之下。设备200的操作系统可以是任何类型和/或形式的Unix操作系统,尽管本发明并未这样限制。这样,设备200可以运行任何操作系统,如任何版本的Microsoft Windows操作系统、不同版本的Unix和Linux操作系统、用于Macintosh计算机的任何版本的Mac OS、任何的嵌入式操作系统、任何的网络操作系统、任何的实时操作系统、任何的开放源操作系统、任何的专用操作系统、用于移动计算装置或网络装置的任何操作系统、或者能够运行在设备200上并执行此处所描述的操作的任何其它操作系统。
设备200的操作系统分配、管理或以其他方式将可用的系统存储器分离到被称为内核或系统空间和用户或应用空间中。通常保留内核空间用于运行内核,所述内核包括任何设备驱动器,内核扩展或其他内核相关软件。就像本领域技术人员所知的,内核是操作系统的核心,并提供对设备200的资源和硬件相关的元件的访问、控制和管理。根据设备200的实施例,内核空间也包括与网络优化引擎250或其任何部分协同工作的多个网络服务或进程。另外,内核的实施例将依赖于通过设备200安装、配置或以其他方式使用的操作系统的实施例。与内核空间不同,用户空间是由用户模式应用或以其他方式运行于用户模式的程序所使用的操作系统的存储区域或部分。用户模式应用不能直接访问内核空间而使用服务调用以访问内核服务。操作系统使用用户或应用空间来执行或运行应用以及供应用户级程序、服务、进程和/或任务。
设备200具有一个或多个网络端口266,用于通过网络104传输和接收数据。网络端口266提供在计算装置和网络104或另一个装置100之间的物理和/或逻辑接口,用于传输和接收网络通信。网络端口266的类型和形式取决于网络的类型和形式以及用于连接到网络的介质的类型。而且,网络端口266和网络堆栈267的、为其供应的或者其使用的任何软件可运行在内核空间或用户空间。
在一个实施例中,设备200具有一个网络堆栈267,例如基于TCP/IP的堆栈,用于在网络105上与客户机102和/或服务器106通信。在一个实施例中,网络堆栈267用于与诸如网络104第一网络以及第二网络104’通信。在又一个实施例中,设备200可具有两个或多个网络堆栈,例如第一网络堆栈267A和第二网络堆栈267N。第一网络堆栈267A可与第一网络端口266A联合使用以在第一网络104上通信。第二网络堆栈可与第二网络端口266N联合使用以在第二网络104’上通信。在一个实施例中,网络堆栈267包括用于为由设备200产生的一个或多个网络分组进行排队的一个或多个缓冲器。
网络堆栈267可包括任何类型和形式的软件、或硬件或其组合,用于提供与网络的连接和通信。在一个实施例中,网络堆栈267包括用于网络协议组的软件实现。网络堆栈267可包括一个或多个网络层,例如为本领域技术人员所公认和了解的开放式系统互联(OSI)通信模型的任何网络层。这样,网络堆栈267可包括用于下列OSI模型的任何一层的任何类型和形式的协议:1)物理链路层;2)数据链路层;3)网络层;4)传输层;5)会话层);6)表示层,以及7)应用层。在一个实施例中,网络堆栈267可包括在互联网协议(IP)的网络层协议上的传输控制协议(TCP),通常称为TCP/IP。在一些实施例中,可在以太网协议上承载TCP/IP协议,所述以太网协议可包括IEEE广域网(WAN)或局域网(LAN)协议的任何族,例如被IEEE802.3覆盖的这些协议。在一些实施例中,网络堆栈267包括任何类型和形式的无线协议,例如IEEE 802.11和/或移动互联网协议。
考虑到基于TCP/IP的网络,可使用任何基于TCP/IP的协议,包括消息应用编程接口(MAPI)(email)、文件传输协议(FTP)、超文本传输协议(HTTP)、通用互联网文件系统(CIFS)协议(文件传输)、独立计算架构(ICA)协议、远程桌面协议(RDP)、无线应用协议(WAP)、移动IP协议,以及IP语音(VoIP)协议。在又一个实施例中,网络堆栈267包括任何类型和形式的传输控制协议,诸如修改的传输控制协议,例如事务TCP(T/TCP),带有选择确认的TCP(TCP-SACK),带有大窗口的TCP(TCP-LW),例如TCP-Vegas协议的拥塞预测协议,以及TCP欺骗协议。在其他实施例中,网络堆栈267可使用诸如IP上UDP的任何类型和形式的用户数据报协议(UDP),例如用于语音通信或实时数据通信。
另外,网络堆栈267可包括支持一个或多个层的一个或多个网络驱动器,例如TCP驱动器或网络层驱动器。网络层驱动器可作为计算装置100的操作系统的一部分或者作为计算装置100的任何网络接口卡或其它网络访问组件的一部分被包括。在一些实施例中,网络堆栈267的任何网络驱动器可被定制、修改或调整以提供支持此处描述的任何技术网络堆栈267的定制或修改部分。
在一个实施例中,设备200使用单个网络堆栈267来提供或维持在客户机102和服务器106之间的传输层连接。在一些实施例中,设备200通过改变、管理或控制在客户机和服务器之间的传输控制协议连接的行为来有效地终止传输层连接。在这些实施例中,设备200可使用单个网络堆栈267。在其他实施例中,设备200终止第一传输层连接,例如客户机102的TCP连接,并建立客户机102使用的或代表客户机102的到服务器106的第二传输层连接,例如,终止在设备200和服务器106的第二传输层连接。可通过单个网络堆栈267建立第一和第二传输层连接。在其他实施例中,设备200可使用多个网络堆栈,例如267A和267N。在这些实施例中,在第一网络堆栈267A可建立或终止第一传输层连接,且在第二网络堆栈267N可建立或者终止第二传输层连接。例如,一个网络堆栈可用于在第一网络上接收和传输网络分组,并且另一个网络堆栈可用于在第二网络上接收和传输网络分组。
如图2A所示,网络优化引擎250包括一个或多个下列元件、组件或模块:网络分组处理引擎250、LAN/WAN检测器210、流控制器220、Qos引擎236、协议加速器234、压缩引擎238、高速缓存管理器232和策略引擎295’。网络优化引擎250或其任何部分可包括软件、硬件或软件和硬件的任何组合。而且网络引擎250的、为其供应的或由其使用的任何软件可运行在内核空间或用户空间。例如,在一个实施例中,网络优化引擎250可运行在内核空间。在又一个实施例中,网络优化引擎250可运行在用户空间。在又一个实施例中,网络优化引擎250的第一部分可运行在内核空间而网络优化引擎250的第二部分可运行在用户空间。
网络分组引擎240,通常也称为分组处理引擎,或分组引擎,负责控制和管理对由设备200通过网络端口266和网络堆栈267接收和传输的分组的处理。网络分组引擎240可操作在网络堆栈267的任一层。在一个实施例中,网络分组引擎240操作在网络堆栈267的层2和层3.在一些实施例中,分组引擎240在网络层(例如,TCP/IP实施例中的IP层)拦截或以其他方式接收分组。在又一个实施例中,分组引擎240操作在网络堆栈267的层4。例如,在一些实施例中,分组引擎240在传输层拦截或以其他方式接收分组,例如在TCP/IP实施例中的TCP层拦截分组。在其他实施例中,分组引擎240操作在层4之上的任何会话或应用层。例如,在一个实施例中,分组引擎240在传输层协议层之上拦截或以其他方式接收的网络分组,例如在TCP实施例中的TCP分组的有效载荷。
分组引擎240可包括用于在例如接收网络分组或者传输网络分组的处理期间排队一个或多个网络分组的缓冲器。另外,分组引擎240与一个或多个网络堆栈267通信以通过网络端口266发送和接收网络分组。分组引擎240包括分组处理定时器。在一个实施例中,分组处理定时器提供一个或多个时间间隔以触发输入的(即,接收的)或输出的(即,传输的)网络分组的处理。在一些实施例中,分组引擎240响应于定时器来处理网络分组。分组处理定时器向分组引擎240提供任何类型和形式的信号以通知、触发或传输时间相关的事件、间隔或发生。在许多实施例中,分组处理定时器以毫秒级操作,例如100ms、50ms、25ms、10ms、5ms或1ms。
在操作期间,分组引擎240可与诸如LAN/WAN检测器210、流控制器220、Qos引擎236、协议加速器234、压缩引擎238、高速缓存管理器232和/或策略引擎295’的网络优化引擎250的任一部分接口、集成或通信。因此,可响应于分组处理定时器和/或分组引擎240来执行LAN/WAN检测器210、流控制器220、Qos引擎236、协议加速器234、压缩引擎238、高速缓存管理器232和策略引擎295’的任何逻辑、功能或操作。在一些实施例中,在由分组处理定时器提供的时间间隔粒度(例如,少于或等于10ms的时间间隔),可执行加密引擎234、高速缓存管理器232、策略引擎236以及多协议压缩引擎238的任何逻辑、功能或操作。例如,在一个实施例中,高速缓存管理器232可响应于集成分组引擎240和/或分组处理定时器242来执行任何高速缓存的对象的终止。在又一个实施例中,高速缓存的对象的终止或无效时间被设定为与分组处理定时器的时间间隔相同的粒度级,例如每10ms。
高速缓存管理器232可包括软件、硬件或软件和硬件的任何组合,以将数据、信息和对象存储到在存储器或存储中的高速缓存、提供高速缓存访问以及控制和管理高速缓存。由高速缓存管理器232处理和存储的数据、对象或内容可包括任何格式(例如标记语言)的数据,或者通过任何协议的通信的任何类型的数据。在一些实施例中,高速缓存管理器232复制存储在其他地方的原始数据或先前计算、生成或传输的数据,其中相对于读高速缓存存储器或存储元件,需要更长的访问时间以取得、计算或以其他方式得到原始数据。一旦数据被存储在高速缓存中,通过访问高速缓存的副本而不是重新获得或重新计算原始数据即可进行后续操作,因此而减少了访问时间。在一些实施例中,高速缓存可以包括设备200的存储器中的数据对象。在又一个实施例中,高速缓存可以包括设备200的任一类型和形式的存储元件,诸如硬盘的一部分。在一些实施例中,装置的处理单元可提供由高速缓存管理器232使用的高速缓存存储器。在又一个实施例中,高速缓存管理器232可使用存储器、存储区或处理单元的任何部分和组合来高速缓存数据、对象或其它内容。
另外,高速缓存管理器232包括用于执行设备200的任何高速缓存技术的任何逻辑、功能、规则或操作。在一些实施例中,高速缓存管理器232可作为应用、库、程序、服务、进程、线程或任务而操作。在一些实施例中,高速缓存管理器232可包括任何类型的通用处理器(GPP),或者任何其他类型的集成电路,例如现场可编程门阵列(FPGA),可编程逻辑设备(PLD),或者专用集成电路(ASIC)。
策略引擎295’包括用于提供和应用一个或多个策略或规则到设备200的任一部分的功能、操作或配置的任何逻辑、功能或操作。策略引擎295’可包括例如智能统计引擎或其它可编程应用。在一个实施例中,策略引擎295’提供配置机制以允许用户识别、指定、定义或配置用于网络优化引擎250或其任何部分的策略。例如,策略引擎295’可提供用于缓存哪些数据、何时缓存该数据、为谁缓存该数据、何时终止高速缓存中的对象或刷新高速缓存的策略。在其他实施例中,除了对安全、网络业务量、网络访问、压缩或由设备200执行的任何其它功能或操作的访问、控制和管理之外,策略引擎236可包括任何逻辑、规则、功能或操作以确定和提供对设备200所高速缓存的对象、数据、或内容的访问、控制和管理。
在一些实施例中,策略引擎295’可基于下列的任何一个或多个来提供和应用一个或多个策略:用户、客户机的标识、服务器的标识、连接的类型、连接的时间、网络的类型或网络业务量的内容。在一个实施例中,策略引擎295’基于网络分组的任何协议层的字段或首部来提供和应用策略。在又一个实施例中,策略引擎295’基于网络分组的任一有效载荷来提供和应用策略。例如,在一个实施例中,策略引擎295’基于对被承载为传输层分组的有效载荷的应用层协议内容的特定部分的识别来应用策略。在又一个实施例中,策略引擎295’基于由客户机、服务器或用户证书识别的任何信息来应用策略。在又一个实施例中,策略引擎295’基于例如通过任何类型和形式的端点检测(参见下面所描述的客户机代理的收集代理示例)所获得的关于客户机102的任何属性或特征来应用策略。
在一个实施例中,策略引擎295’和应用传送系统290的策略引擎295联合或协同工作。在一些实施例中,策略引擎295’是应用传送系统290的策略引擎295的一个分布式的部分。在又一个实施例中,应用传送系统290的策略引擎295被部署于或执行在设备200上。在一些实施例中,策略引擎295、295’都操作在设备200上。在又一个实施例中,设备200的策略引擎295’或其一部分操作在服务器106上。
压缩引擎238包括用于压缩一个或多个协议的网络分组(例如由设备200的网络堆栈267使用的任何协议)的任何逻辑、商业规则、功能或操作。压缩引擎238也可被称为多协议压缩引擎238,这是由于其可以被设计、构建为或能够压缩多个协议。在一个实施例中,压缩引擎238使用对上下文不敏感的压缩,其可在不了解数据类型的情况下对数据进行压缩。在又一个实施例中,压缩引擎238使用对上下文敏感的压缩。在该实施例中,压缩引擎238利用数据类型的知识来从一系列合适的算法中选择特定的压缩算法。在一些实施例中,使用特定协议的知识来执行上下文敏感的压缩。在一个实施例中,设备200或压缩引擎238可使用端口号(例如,公知端口),以及来自连接本身的数据来确定要使用的合适的压缩算法。一些协议仅使用一种类型的数据,仅要求当连接建立时可被选择的单个压缩算法。其他协议在不同的时间包含不同类型的数据。例如,POP、IMSP、SMTP和HTTP都移动夹杂其他协议数据的任意类型的文件。
在一个实施例中,压缩引擎238使用增量型压缩算法。在又一个实施例中,压缩引擎238使用首地点压缩以及搜索在高速缓存、存储器或盘中存储的数据间的重复模式。在一些实施例中,压缩引擎238使用无损压缩算法。在其他实施例中,压缩引擎238使用有损压缩算法。在一些情况下,数据类型的知识和有时来自用户的许可被要求使用有损压缩算法。压缩不限于协议的有效载荷。协议本身的控制字段也可以被压缩。在一些实施例中,压缩引擎238使用与用于有效载荷的算法不同的算法。
在一些实施例中,压缩引擎238在网络堆栈267的一个或多个层进行压缩。在一个实施例中,压缩引擎238在传输层协议处进行压缩。在又一个实施例中,压缩引擎238在应用层协议处进行压缩。在一些实施例中,压缩引擎238在层2-4协议处进行压缩。在其他实施例中,压缩引擎238在层5-7协议处进行压缩。在又一个实施例中,压缩引擎238压缩传输层协议和应用层协议。在一些实施例中,压缩引擎238压缩层2-4协议和层5-7协议。
在一些实施例中,压缩引擎238使用基于存储器的压缩、基于高速缓存的压缩或基于盘的压缩或上述的任一组合。这样,压缩引擎238也可以被称为多层压缩引擎。在一个实施例中,压缩引擎238使用在存储器(例如RAM)中存储的数据历史。在又一个实施例中,压缩引擎238使用在高速缓存(例如处理器的L2高速缓存)中存储的数据历史。在其他实施例中,压缩引擎238使用存储到盘或存储单元的数据历史。在一些实施例中,压缩引擎238使用基于高速缓存的、基于存储器的和基于盘的数据历史的分层结构。压缩引擎238可首先使用基于高速缓存的数据来确定用于压缩的一个或多个数据匹配,然后可检查基于存储器的数据以确定用于压缩的一个或多个数据匹配。在另一种情况下,压缩引擎238可在检查基于高速缓存的和/或基于存储器的数据历史之后检查盘存储来找出用于压缩的数据匹配。
在一个实施例中,多协议压缩引擎238双向压缩在客户机102a-102n和服务器106a-106n间任一基于TCP/IP的协议,包括消息应用编程接口(MAPI)(电子邮件)、文件传输协议(FTP)、超文本传输协议(HTTP)、通用互联网文件系统(CIFS)协议(文件传输)、独立计算架构(ICA)协议、远程桌面协议(RDP)、无线应用协议(WAP)、移动IP协议以及IP上语音(VoIP)协议。在其它实施例中,多协议压缩引擎238提供基于超文本标记语言(HTML)的协议的压缩,并且在一些实施例中,提供任何标记语言的压缩,例如可扩展标记语言(XML)。在一个实施例中,多协议压缩引擎238提供任何高性能协议的压缩,例如设计用于设备200到设备200通信的任何协议。在又一个实施例中,多协议压缩引擎238使用修改的传输控制协议来压缩任何通信的任何载荷或任何通信,例如事务TCP(T/TCP)、带有选择确认的TCP(TCP-SACK)、带有大窗口的TCP(TCP-LW)、诸如TCP-Vegas协议的拥塞预报协议以及TCP欺骗协议(TCP spoofing protocol)。
同样的,多协议压缩引擎238为用户加速经由桌面客户机以及甚至移动客户机访问应用的性能。所述桌面客户机例如Micosoft Outlook和非web瘦客户机,例如由像Oracle、SAP和Siebel的通用企业应用所启动的任何客户机,所述移动客户机例如掌上电脑。在一些实施例中,通过与访问网络堆栈267的分组处理引擎240集成,多协议压缩引擎能够压缩由传输层协议携带的任何协议,例如任何应用层协议。
LAN/WAN检测器238包括用于自动检测慢速侧连接(例如,诸如内部网的广域网(WAN)连接)和关联端口267,以及快速侧连接(例如,局域网(LAN)连接)和关联端口267的任何逻辑、商业规则、功能或操作。在一些实施例中,LAN/WAN检测器238监控设备200的网络端口267上的网络业务量以便检测同步分组(有时被称为“加标记的”网络分组)。同步分组识别网络业务量的类型或速度。在一个实施例中,同步分组识别WAN的速度或WAN类型的连接。LAN/WAN检测器238也识别对加标记的同步分组的确认分组的接收以及其在哪个端口上被接收。接着,设备200将自身配置为操作所识别的、加标记的同步分组到达的端口以使得该端口上的速度被设置为与连接到该端口的网络相关联的速度。那么,另一个端口被设置为与连接到该端口的网络相关联的速度。
为了此处讨论的方便,“快速”侧可参考关于与广域网(WAN)(例如,互联网)的连接,并且以该WAN的网络速度操作。类似地,“慢速”侧可参考关于与局域网(LAN)的连接并且以LAN的网络速度操作。然而,应指出网络的“快速”和“慢速”侧可以在每连接的基础上改变并且是对于网络连接的速度或者网络拓扑类型的相关术语。这样的配置可以用在复杂的网络拓扑中,其中网络仅在与相邻网络比较时是“快速”或“慢速”,而不是绝对的“快速”或“慢速”。
在一个实施例中,LAN/WAN检测器238可用于使设备200自动发现其所连接的网络。在又一个实施例中,LAN/WAN检测器238可用于检测在网络104中部署的第二设备200’的存在或在场。例如,根据图1A的操作中的自动发现机制起到以下作用:将设备200和200’置于与链接客户机102和服务器106的连接在一条线上。设备200和200’处于连接两个LAN的低速链路(例如,互联网)的端点处。在一个示例实施例中,设备200和200’各自包括两个端口,一个端口与“较低”速度的链路连接而另一个端口与“较高”速度的链路(例如,LAN)连接。到达一个端口的任一分组被复制到另一个端口。因此,设备200和200’各自被配置为充当两个网络104之间的桥。
当诸如客户机102的端节点打开与诸如服务器106的另一个端节点的新的TCP连接时,客户机102向服务器106发送具有同步(SYN)首部位组的TCP分组或SYN分组。在本例中,客户机102打开到服务器106的传输层连接。当SYN分组穿过设备200时,设备200给该分组插入、附加或以其他方式提供特有的TCP首部选项,以宣告其存在。如果该分组穿过第二设备(在该示例中设备200’),第二设备记录该SYN分组中的首部选项。服务器106用同步确认(SYN-ACK)分组来响应该SYN分组。当SYN-ACK分组穿过设备200’时,TCP首部选项被标记(例如,附加、插入或添加)到该SYN-ACK分组以便向设备200宣告设备200’的存在。当设备200收到该分组时,设备200,200’此时互相察觉并且该连接可以被适当地加速。
关于LAN/WAN检测器238的操作,描述了使用SYN分组来检测网络的“快速”侧和“慢速”侧的方法或过程。在客户机102和服务器106之间建立传输层连接的期间,设备200通过LAN/WAN检测器238确定SYN分组是否被加了确认(ACK)标记。如果其被加了标记,设备200将接收加标记的SYN分组(SYN-ACK)的端口标识或配置为“慢速”侧。在一个实施例中,设备200可选择在将该分组复制到另一个端口之前ACK标记从该分组删除。如果LAN/WAN检测器238确定该分组未加标记,那么设备200将接收未加标记的分组的端口标识或配置为“快速”侧。设备200接着给该SYN分组加上ACK标记并将该分组复制到另一个端口。
在又一个实施例中,LAN/WAN检测器238使用SYN-ACK分组来检测网络的快速侧和慢速侧。设备200通过LAN/WAN检测器238确定SYN-ACK分组是否被加了确认(ACK)标记。如果其被加了标记,设备200将接收加标记的SYN分组(SYN-ACK)的端口标识或配置为“慢速”侧。在一个实施例中,设备200可选择在将该分组复制到另一个端口之前从该分组删除ACK标记。如果LAN/WAN检测器238确定该分组未加标记,那么设备200将接收未加标记的分组的端口标识或配置为“快速”侧。LAN/WAN检测器238确定SYN分组是否被加了标记。如果该SYN分组没有被加标记,那么设备200将该分组复制到另一个端口。如果该SYN分组被加了标记,那么该设备在将该分组拷贝到另一个端口之前给SYN-ACK分组加标记。
设备200、200’可以添加、插入、修改、附加或以其他方式提供TCP选项首部中的任何信息或数据,以提供关于网络连接、网络业务流或者设备200的配置或操作的任何信息、数据或特征。在这种方式中,设备200不仅向另一个设备200’宣告其存在或者标记较高或较低速度的连接,该设备200还通过TCP选项首部提供关于该设备或该连接的其他信息和数据。TCP选项首部信息可能是对设备有用的或由设备用于控制、管理、优化、加速或改善经过设备200的网络业务流,或者以其他方式配置其自身或网络端口的操作。
尽管通常LAN/WAN检测器238被结合检测网络连接的速度或设备的存在来描述,但LAN/WAN检测器238可被用于将设备200的任何类型的功能、逻辑或操作应用到网络业务量的端口、连接或流。更具体地,每当设备在不同的端口执行不同的功能时都可以自动分配端口,其中给任务分配端口可以在该单元操作期间,和/或每个端口的网络段的性质可被设备200发现。
流控制器220包括用于优化、加速或以其他方式改善网络分组的传输层通信的性能、操作或服务质量或者在传输层的分组的发送的任何逻辑、商业规则、功能或操作。流控制器(有时也被称为流控制模块)调节、管理和控制数据传输速率。在一些实施例中,流控制器220被部署在或连接在网络104中的带宽瓶颈处。在一个实施例中,流控制器220有效地调节、管理和控制带宽的使用或利用。在其他实施例中,流控制模块也可以被部署在延迟转换(从低延迟到高延迟)的网络上的位置和具有介质损失的链路(例如无线或卫星链路)上的位置。
在一些实施例中,流控制器220可包括用于控制网络传输的接收速率的接收器侧流控制模块和用于控制网络分组的传输速率的发送器侧流控制模块。在其他实施例中,第一流控制器220包括接收器侧流控制模块并且第二流控制器220’包括发送器侧流控制模块。在一些实施例中,第一流控制器220被部署在第一设备200上并且第二流控制器220’被部署在第二设备200’上。同样,在一些实施例中,第一设备200控制接收器侧上的数据流而第二设备200′控制来自发送器侧的数据流。在又一个实施例中,单个设备200包括用于经过设备200的网络通信的接收器侧和发送器侧的流控制。
在一个实施例中,配置流控制模块220以使瓶颈处的带宽被更充分地利用,以及在一些实施例中,配置流控制模块220以使瓶颈处的带宽不被过度利用。在一些实施例中,流控制模块220透明地缓冲(或者重新缓冲例如发送器已经缓冲的数据)经过具有相关联的流控制模块220的节点间的网络会话。当会话经过两个或多个流控制模块220时,一个或多个流控制模块控制会话的速率。
在一个实施例中,用有关瓶颈带宽的预定数据来配置流控制模块200。在又一个实施例中,流控制模块220可被配置为检测瓶颈带宽或与其关联的数据。与诸如TCP的传统网络协议不同,接收器侧流控制模块220控制数据传输速率。接收器侧流控制模块220通过将传输速率限制转发到发送器侧流控制模块220来控制发送器侧流控制模块(例如,220)的数据传输速率。在一个实施例中,接收器侧流控制模块220在由接收器(例如服务器106)向发送器(例如客户机102)发送的确认(ACK)分组(或信号)上捎带这些传输速率限制。接收器侧流控制模块220响应于由发送器侧流控制模块220′发送的速率控制请求来执行这一工作。可以在由发送器106发送的数据分组上“捎带”来自发送器侧流控制模块220’的请求。
在一些实施例中,流控制器220操纵、调整、模拟、改变、改进或以其他方式修改传输层协议的行为以便提供传输层的传送、数据速率和/或带宽利用的改善的性能或操作。流控制器220可在传输层实现多个数据流控制技术,包括但不限于1)预确认,2)窗口虚拟化,3)重新拥塞技术,3)本地重传技术,4)波前检测和消除二义性,5)传输控制协议选择性确认,6)事务边界检测技术和7)重新分组。
尽管此处通常将发送器描述为客户机102,将接收器描述为服务器106,但发送器可以是诸如网络104上任一计算装置100或者服务器106的任一端点。同样地,接收器可以是客户机102或者网络104上的任何其他计算装置。
概括来讲预确认流控制技术,在一些实施例中,流控制器220处理确认并为发送器重传确认,有效地终止发送器与网络连接的下游部分的连接。参考图1B,描述用来实现该特征的,设备200在网络架构中的一个可能的部署。在该示例实施例中,发送计算机或者客户机102在网络104上例如经由交换机传输数据,其确定该数据发往VPN设备205。由于所选择的网络拓扑,发往VPN设备205的所有数据穿过设备200,使得设备200可以将任一必要的算法应用到该数据。
进一步在该示例中,客户机102传输由设备200接收的分组。当设备200接收从客户机102向接收者传输的经过VPN设备205的分组时,设备200保留分组的副本并且将该分组向下游转发到VPN设备205。设备200接着生成确认分组(ACK)并且将ACK分组发送回客户机102或者发送端点。该ACK(即预确认)使发送器102相信分组已经被成功传输、释放发送器的资源用于后续的处理。在要求重传分组的事件中,设备200保留该分组的副本,使得发送器102不必处理数据的重传。提前生成确认可以被称为“提前确认(preack)”。
如果要求重传分组,设备200将分组重传到发送器。设备200可以确定当发送器处于传统系统中时是否需要重传,例如,在预定时间段之后对于该分组如果没有接收到确认则确定分组丢失。为此,设备200监控由例如服务器106(或者任何其他下游网络实体)的接收端点生成的确认,以便其可以确定是否已经成功传送分组或者需要重传分组。如果设备200确定分组已经被成功传送,则设备200能够自由地丢弃所保存的分组数据。设备200还可以禁止转发对已经由发送端点接收的分组的确认。
在上述实施例中,设备200经由流控制器220通过预确认(也称为“提取确认”)的传送来控制发送器102,如同设备200是接收端点本身一样。由于设备200不是端点并且实际上不消耗数据,所以设备200包括用于给发送端点提供溢出控制的机制。如果没有溢出机制,设备200将耗尽存储器,因为设备200存储已经向发送端点提取确认的但还没有被确认为由接收端点接收的分组。因此,在发送器102传输分组到设备200快于设备200向下游转发分组的情况下,设备200中可用于存储未被确认的分组数据的存储器将迅速填满。用于溢出控制的机制允许设备200控制来自发送器的分组的传输以避免该问题。
在一个实施例中,设备200或者流控制器220包括固有的“自同步(self-clocking)”溢出控制机制。该自同步归因于这样的顺序,其中设备200可以被设计为向下游传输分组并向发送器102或者106发送ACK。在一些实施例中,设备200直到其向下游传输分组后为才提前确认分组。以此方式,发送器102将以设备200能够传输分组的速率而不是以设备200从发送器100接收分组的速率来接收ACK。这有助于调节来自发送器102的分组的传输。
设备200可以实现的另一个溢出控制机制是使用TCP窗口大小参数,其告知发送器接收器允许该发送器填满多少缓冲区。预确认中的非零窗口大小(例如至少一个最大段大小(MSS)的大小)允许发送端点继续向设备传输数据,而零窗口大小禁止进一步的数据传输。相应地,设备200可以例如当设备200的缓冲区变满时通过适当地设置每一预确认中的TCP窗口大小来调节来自发送器的分组的流量。
另一项用来降低该附加开销的技术是应用滞后作用(hysteresis)。当设备200将数据传送到较慢侧时,设备299中的溢出控制机制可以在向发送器发送非零窗口通告之前要求可用的最小数量的空间。在一个实施例中,设备200在发送非零窗口分组(例如,四个分组的窗口大小)之前进行等待直到存在最小的预定数量的分组(诸如四个分组)的可用空间为止。由于对于四个数据分组的每个组仅发送两个ACK分组,而不是对于四个数据分组要发送八个ACK分组,因此这将开销降低到大约原来的四分之一。
设备200或流控制器220可用于溢出控制的另一技术是TCP延迟ACK机制,其跳过ACK来降低网络业务量。TCP延迟ACK自动延迟ACK的发送,直到接收到两个分组或直到发生固定的超时为止。该机制单独导致开销减半,而且,通过将分组的数量增加到两个以上,降低了附加的开销。但是仅延迟ACK本身不足以控制溢出,并且设备200还可以使用在ACK上的通告窗口机制来控制发送器。当这样做时,在一个实施例中,设备200通过延迟ACK很长时间来避免触发发送器的超时机制。
在一个实施例中,流控制器220不对一组分组的最后一个分组进行提取确认。通过不提取确认最后一个分组或者该组中分组的至少一个,设备避免对一组分组的错误确认。例如,如果设备将发送对最后一个分组的预确认而该分组随后丢失,那么发送器在分组没有被传送时已经欺骗认为其被传送。考虑到分组已被传送,发送器将丢弃该数据。如果设备也丢失该分组,那么不能将该分组重传到接收者。通过不对一组分组的最后一个分组进行提前确认,发送器直到该分组被传送时才将其丢弃。
在又一个实施例中,流控制器220可以使用窗口虚拟化技术来控制网络连接的带宽利用或者流速。虽然根据检查诸如RFC1323的传统文献其可能不是直接明显的,但是用于诸如TCP的传输层协议的发送窗口是有效的。由于发送窗口消耗缓冲区空间(尽管在发送器上),所以发送窗口类似于接收窗口。发送器的发送窗口包括还没有被接收器确认的、由应用发送的所有数据。在要求重传的情况下,必须在存储器中保留该数据。由于存储器是共享资源,所以一些TCP堆栈的实现限制了该数据的大小。当发送窗口满时,应用程序尝试发送更多的数据导致阻塞应用程序直到空间可用为止。随后接收的确认将释放发送窗口存储器并且不再阻塞应用程序。在一些实施例中,该窗口大小就是一些TCP实现中的套接字缓冲区大小。
在一个实施例中,流控制模块220被配置为提供对增加的窗口(或缓冲区)大小的访问。该配置还可以被称为窗口虚拟化。在作为传输层协议的TCP的实施例中,TCP首部可以包括对应窗口比例(window scale)的位串。在一个实施例中,“窗口”可以在发送、接收或二者的上下文中提及。
窗口虚拟化的一个实施例是将预确认设备200插入到TCP会话中。参考图1D和1E的任何一个环境,建立例如客户机102(为讨论方便,现称为源节点102)的源节点与例如服务器106(为讨论方便,现称之为目标节点106)的目标节点之间数据通信会话的初始化。对于TCP通信,源节点102最初将同步信号(“SYN”)通过其局域网104传输到第一流控制模块220。第一流控制模块220将配置标识符插入到TCP首部选项区域中。该配置标识符将数据路径中的该点识别为流控制模块。
尽管具有例如16k字节的小缓冲区大小的端节点,但设备200经由流控制模块220提供窗口(或缓冲区)来允许提高会话内的数据缓冲能力。然而,RFC1323要求对大于64k字节的任何缓冲区大小进行窗口缩放(windowscaling),其必须在会话初始化(SYN、SYN-ACK信号)时设置。此外,窗口缩放对应于数据路径中的最小公分母,经常是具有小的缓冲区大小的端节点。该窗口比例通常是0或1的比例,其对应于高达64k或者128k字节的缓冲区大小。注意到,由于窗口大小被限定为每一分组中的、随窗口比例改变的窗口字段,窗口比例建立缓冲区的上限,但并不保证该缓冲区实际上就那么大。每个分组在窗口字段中指示接收器处当前可用的缓冲区空间。
在使用窗口虚拟化技术进行缩放的一个实施例中,在连接建立(即,会话初始化)期间,当第一流控制模块220从源节点102接收SYN信号(或者分组)时,流控制模块220源节点102(其是之前的节点)的窗口比例或者如果之前的节点的比例丢失则为窗口比例存储0。第一流控制模块220还在SYN-FCM信号中修改该比例,例如将该比例从0或者1增加到4。当第二流控制模块220接收SYN信号时,其存储来自第一流控制信号的增加的比例并且将该SYN信号中的比例重置为源节点103的比例值以用于到目标节点106的传输。当第二流控制器220接收到来自目标节点106的SYN-ACK信号时,其存储来自目标节点106的比例(例如,0或1)的比例并且将其修改为与SYN-ACK-FCM信号一起发送的增加的比例。第一流控制节点220接收并且记录所接收的窗口比例并且将被发回源节点102的窗口比例修订为降回到初始比例(例如0或者1)。基于上面在连接建立期间的窗口变换对话,会话的每个后续分组(例如TCP分组)的中的窗口字段必须随窗口变换对话而改变。
如上所述,窗口比例表示出大于64k的缓冲区大小,并且可以不需要窗口虚拟化。因此,窗口比例的变换可以用于表示在每个流控制模块220中的增加的缓冲区容量。该缓冲区容量的增加可作为窗口(或缓冲区)虚拟化而被提及。该缓冲区大小的增加允许更大的分组从各自的端节点102和106进出。注意到,TCP中的缓冲区大小典型地以字节表示,但是为了讨论的方便,由于“分组”和虚拟化相关,在此处描述中可以使用“分组”。
通过举例描述由流控制器220执行的窗口(或缓存区)虚拟化。在该示例中,源节点102和目标节点106被配置为与具有16k字节的有限的缓存区容量的传统端节点相似,其大约等于10个数据分组。通常,端节点102、106在能够传输下一组分组之前必须进行等待,直到该分组被传输并且收到确认为止。在一个实施例中,使用在流控制模块220中的增加的缓冲区容量,当源节点103传输其数据分组时,第一流控制模块220接收该分组,将该分组存储在其较大容量的缓存区(例如512个分组容量)中,并且立即将指示分组接收的确认信号(“REC-ACK”)发送回到源节点102。源节点102接着可以“刷新”其当前缓冲区,将10个新的数据分组载入到缓存区,并且将这些传输到第一流控制模块220上。再次,第一流控制模块220将REC-ACK信号发送回到源节点102,并且源节点102刷新其缓冲区并且对其载入10个更新的分组用于传输。
当第一流控制模块220接收到来自源节点的数据分组时,其相应地将该数据分组载入到缓冲区中。当其准备好时,第一流控制模块220可以开始将数据分组传输到第二流控制模块230,其也具有增加的缓存区大小,例如以便接收512个分组。第二流控制模块220’接收数据分组并且开始每次传输10个分组到目标节点106。在第二流控制节点220处接收的、来自目标节点106的每个REC-ACK致使又有10个分组被传输到目标节点106,直到所有的数据分组被传送为止。因此,本发明能够通过利用装置之间的流控制模块220、220’的较大的缓冲区来增加在源节点(发送器)102和目标节点(接收器)106之间的数据传输吞吐量。
注意到通过之前描述的“预确认”数据的传输,发送器(或源节点102)被允许传输比没有预确认时可能传输的数据更多的数据,因此造成更大的窗口大小。例如,在一个实施例中,流控制模块220、220’处于缺乏大窗口的节点(例如,源节点102或者目标节点106)“附近”时,该技术是有效的。
流控制器220的另一个技术或者算法被称为重新拥塞。众所周知标准的TCP拥塞避免算法在面对特定网络条件(包括:大的RTT(往返时间)、高分组丢失率,以及其它)时性能低下。当设备200检测到诸如长的往返时间或者高的分组丢失的拥塞条件时,设备200插入、代入更适合该特定网络调节的替代的拥塞避免算法。在一个实施例中,重新拥塞算法使用预确认来有效地终止发送器和接收器之间的连接。设备200接着使用不同的拥塞避免算法从自身重新发送分组到接收器。重新拥塞算法可以依赖于TCP连接的特征。设备200监控每个TCP连接,在不同的维度将其特征化,选择适合用于当前特征的重新拥塞算法。
在一个实施例中,当检测到由往返时间(RTT)限制的TCP连接时,应用表现为多个TCP连接的重新拥塞算法。每个TCP连接操作在其自身性能限度内,但是聚合带宽获得了更高的性能水平。该机制中的一个参数是所应用的并行连接的数量(N)。N值过大则连接束获得超过其合理份额的带宽。N值过小则连接束获得低于其合理份额的带宽。建立“N”的一个方法依赖于设备200监控实际连接的分组大小、RTT和分组丢失率。将这些数字插入TCP响应曲线方程来提供本配置中单个TCP连接的性能的上限。如果连接束中每个连接正获得与计算出的上限性能基本相同的性能,则应用额外的并行连接。如果当前束正获得低于上限的性能,则减少并行连接的数量。依次方式,由于单独的连接束包含的并行性不比消除协议自身所强加的限制所需的并行性更多,所以维持了系统的整体公平性。进一步,每个单独的连接保留TCP兼容性。
建立“N”的另一个方法是使用并行流控制算法,例如TCP“Vegas”算法或者其改进版本“稳定的Vegas”。在该方法中,与连接束中的连接相关联的网络信息(例如,RTT、丢失率、平均分组大小等等)被聚集并且被应用到替代的流控制算法。该算法的结果进而被分布到控制其数量(即,N)的束的连接之间。可选地,束中的每个连接仍旧使用标准TCP拥塞避免算法。
在又一个实施例中,并行束中的单独的连接被虚拟化,即不建立实际的单独的TCP连接。事实上拥塞避免算法被修改为表现得就好像存在N个并行连接一样。该方法的优点在于对于经过多个网络节点而言就如同单个连接一样。因此重新拥塞算法不影响这些节点的QOS、安全性和其他监控方法。在又一个实施例中,并行束中的单独的连接是真实存在的,即独立的。为束中的并行连接的每一个建立TCP连接。不必修改用于每个TCP连接的拥塞避免算法。
在一些实施例中,流控制器220可以使用本地重传技术。实施预确认的一个原因是为经过高损的链路(例如无线)作准备。在这些实施例中,预确认设备200或者流控制模块220最好位于无线链路“之前”。这使得要进行的重传更接近于高损链路,免去了网络的剩余部分的重传负担。设备200可提供本地重传,在这种情形中,由于链路错误而丢弃的分组由设备200直接重传。由于这消除了在端节点(诸如服务器106)和任一网络104的基础设施上的重传负担,所以这是有益的。利用设备200提供本地重传,丢弃的分组可以被重传通过高损链路而不必由端节点重传且不会引起端节点的数据传输率的对应下降。
实施预确认的另一个原因是避免接收超时(RTO)惩罚。在标准TCP中,即使是成功接收传输中的较大百分比的分组,但仍存在多种情况导致RTO。使用标准TCP算法,在一个RTT窗口中丢弃不只一个分组有可能会导致超时。此外,如果重传的分组被丢弃,则大部分TCP连接经历超时。在具有高带宽延迟产品的网络中,甚至相对小的分组丢失率也会导致频繁的重传超时(RTO)。在一个实施例中,设备200使用重传和超时算法来避免过早的RTO。设备200或者流控制器220基于每一分组来维持重传的计数。每传输一个分组,将计数加一,然后设备200继续传输分组。在一些实施例中,仅有当一个分组已经被重传预定的次数后才宣告RTO。
在一些实施例中,由于发送器传输数据分组,所以发送器保持被确认的数据分组传输的实例的数据结构。数据分组传输的每个实例由其序列号和传输号码标记。通过保持对于每个分组的传输号码,发送器保留数据分组的传输顺序。当发送器接收到ACK或者SACK时,发送器确定与接收器(在所接收的确认中)指示的已经接收的分组相关联的最高的传输号码。具有较低传输号码的任何未完成的未经确认的分组被假设为已丢失。
在一些实施例中,当到达分组已经被重传时,发送器呈现出模糊的情形:标准的ACK/SACK没有包含足够的信息来使发送器确定该到达分组的哪个传输触发了该确认。从而,在接收到模糊确认之后,发送器消除该确认二义性以将其与传输号码相关联。在不同的实施例中,多个技术的其中之一或者组合可以被用来解决该模糊性。
在一个实施例中,发送器在所传输的数据分组中包含标识符,然后,接收器在确认中返回该标识符或者该标识符的函数。该标识符可以是时间戳(例如在RFC1323中描述的TCP时间戳)、序列号、可以被用来在分组传输的两个或多个实例之间进行解析的任何其他信息。在TCP时间戳选项被用来消除确认的二义性的实施例中,使用高达32位唯一的信息来标记每个分组。接收到数据分组时,接收器通过确认将该唯一信息回送到发送器。发送器确保最初发送的分组和其重传的一个或者多个版本包含对于时间戳选项的不同值,这允许其明确地消除ACK的模糊性。发送器可以将该唯一信息保持在例如用来保存所发送的数据分组的状态的数据结构中。由于该技术与工业标准相兼容并且因此很少或不会遇到互操作性的问题,所以该技术是有益的。然而,该技术在一些实现中可能要求十个字节的TCP首部空间,这降低了网络上有效吞吐率并且减少了可用于其他TCP选项的空间。
在又一个实施例中,分组中的另一个字段,诸如IP ID字段,被用来以与上述TCP时间戳选项相似的方式来消除二义性。发送器安排该分组的最初和重传版本的ID字段值,以使在IP首部中具有不同的ID字段。在接收器或其代理装置接收到数据分组时,接收器将ACK分组的ID字段设置为触发该ACK的分组的ID字段的函数。由于该方法不需要发送额外的数据,保持了网络和TCP首部空间的效率,所以该方法是有益的。所选择的函数应有极大可能消除二义性。在优先实施例中,发送器选择IP ID值且将最高有效位设置为0。当接收器响应时,IP ID值被设置为相同的IP ID值,且最高有效位被设为1。
在又一个实施例中,与非模糊性确认相关联的传输号码被用来消除模糊确认的二义性。该技术基于这样的原理:由于两个分组在时间上更接近地传输,则对于这两个分组的确认将倾向于时间上更接近地接收。由于对于未被重传的分组所接收的确认可容易地与传输号码相关联,所以这样的分组不会导致模糊性。因此,可以将这些已知的传输号码与所接收的在时间上接近于已知确认的模糊确认的可能的传输号码相比较。发送器将模糊确认的传输号码与最近已知的所接收的传输号码相比较,选择对于已知的所接收的传输号码最接近的一个。例如,如果接收到对数据分组1的确认并且最后所接收的确认是针对数据分组5,那么发送器通过假设数据分组1的第三个实例导致了该确认来解决该模糊性。
设备200或者流控制器220的另一项技术是实现传输控制协议选择性确认或TCP SACK的实施例以确定已经收到哪些分组或没有收到哪些分组。该技术允许发送器明确地确定已经由接收器收到的分组的列表以及没有收到的分组的精确的列表。可以通过修改发送器和/或接收器或者通过将发送器侧和接收器侧流控制模块220插入到发送器和接收器之间的网络路径中来实现该功能。参考图1D或者1E,发送器(例如客户机102)被配置为通过网络104向接收器(例如服务器106)传输数据分组。作为响应,接收器将被称为SACK分组的TCP选择性确认选项返回给发送器。在一个实施例中,尽管此处为了简便仅讨论一个方向的通信,但是该通信是双向的。接收器保持包含接收器实际已收到的数据分组的序列号的一组范围的列表或者其他适合的数据结构。在一些实施例中,该列表根据序列号以升序或者降序排列。接收器还保持放弃的(left-off)指针,其包括对列表的引用并且指示从之前生成的SACK分组的放弃点。
当接收到数据分组时,接收器生成SACK分组并将其传输回到发送器。在一些实施例中,SACK分组包括多个字段,每个字段可以保留序列号的范围来指示一组已接收的数据分组。接收器用包括触发SACK分组的正在到达(landing)分组的序列号的范围来填充该SACK分组的第一字段。剩余可用的SACK字段用已收到的分组的列表的序列号的范围来填充。当该列表中的范围超过可以被载入SACK分组的范围时,接收器使用放弃指针来确定哪个范围被载入SACK分组。接收器从有序的列表连续插入SACK范围,从指针引用的范围开始并且沿列表持续向下,直到消耗完SACK分组的TCP首部中的可用的SACK范围空间。如果到达末端,则接收器环绕到列表的开始。在一些实施例中,两个或三个附加的SACK范围可以被添加到SACK范围信息。
一旦接收器生成SACK分组,接收器将确认发送会发送器。然后,接收器在列表中将放弃的指针前进一个或者多个SACK范围项。例如,如果接收器插入四个SACK范围,则放弃指针可以在列表中被推进两个SACK范围。当所推进的放弃的指针到达列表的末端,则指针被重置为列表的开始,从而有效地环绕已知所接收范围的列表,环绕该列表使得系统甚至能在SACK分组大量丢失的情况下良好地运行,这是由于一旦列表被环绕,则由于丢失的SACK分组导致的未被通信的SACK信息将最终被通信。
因此可以理解,SACK分组可以通信关于接收器的情况的多个细节。首先,SACK分组指示在SACK分组生成时接收器刚刚收到该SACK信息的第一字段中的数据分组。其次,SACK信息的第二和随后的字段指示接收器已经收到这些范围中的数据分组。SACK信息还暗示接收器在SACK分组生成时没有接收落入SACK信息的第二和随后的字段之间的任何一个数据分组。本质上,SACK信息中的第二和随后的字段之间的范围是所接收的数据中的“孔”,其中的数据是已知的未被传送的数据。因此,使用该方法,当SACK分组具有足够空间来包括多余两个的SACK范围时,接收器可以向发送器指示还没有被接收器接收的数据分组的范围。
在又一个实施例中,发送器使用上述的SACK分组结合上述重传技术来假定哪些数据分组已经被传送到接收器。例如,当重传算法(使用传输号码)宣告分组丢失时,发送器认为该分组仅是条件性丢失,因为有可能是识别该分组的接收的SACK分组丢失,而不是数据分组本身丢失。发送器因此将该分组添加到潜在丢失的分组的列表,称之为假定丢失的列表。每当SACK分组到达,将来自SACK分组的数据的已知丢失范围和假定丢失列表中的分组相比较。包括已知丢失的数据分组被宣告实际丢失并被随后重传。以此方式,组合这两个方案来将更好的关于已丢失且需要重传哪些分组的信息给予发送器。
在一些实施例中,设备200或流控制器220使用被称为事务边界检测的技术。在一个实施例中,该技术适合于乒乓(ping-pong)表现的连接。在TCP层,乒乓行为是当一个通信器(发送器)发送数据然后等待来自另一个通信器(接收器)的响应。乒乓行为的例子包括远程程序调用、HTTP和其他。以上描述的算法使用重传超时来从与事务相关的最后的一个分组或多个的丢弃进行恢复。由于在一些实施例中,TCP RTO机制极端粗略,例如在所有情况中要求最小1秒的值,在这些情况下可以看到差的应用行为。
在一个实施例中,数据的发送器或耦合到发送器的流控制模块220检测所发送的数据中的事务边界。在检测到事务边界时,发送器或者流控制器220发送额外的分组,额外的分组的接收从接收器生成额外的ACK或者SACK响应。额外的分组的插入优选地限于改善的应用响应时间和网络能力利用之间的平衡。所插入的额外的分组的数量可以根据与该连接相关联的当前丢失率来进行选择,对于较高的丢失率的连接选择更多的分组。
检测事务边界的一个方法是基于时间的。如果发送器已经发送数据并停止,则在一段时间之后发送器或流控制模块220宣告事务边界。这可以和其他技术相结合。例如,由发送器在TCP首部中设置PSH(TCP推送)位可以指示事务边界。因此,将基于时间的方法和这些附加的试探方法相组合可以提供对于事务边界的更精确的检测。在另一个技术中,如果发送器或者流控制模块220理解应用协议,其可以解析协议数据流并且直接确定事务边界。在一些实施例中,可以独立于任一基于时间的机制使用此最后的行为。
响应于检测事务边界,发送器或流控制模块220向接收器传输额外的数据分组以便从接收器引发确认。因此,额外的数据分组应该使得接收器将响应于接收数据分组来至少产生ACK或SACK。在一个实施例中,简单地重传事务的最后一个或多个分组。相比于仅发送虚拟的数据分组,如果最后一个或多个分组已经被丢弃,这就具有重传所需数据的增加的益处。在又一个实施例中,发送最后一个或多个分组的片段,允许发送器来消除来自于其最初分组的这些分组到来的二义性。这使接收器避免错误的混淆任意重新排序自适应算法。在又一个实施例中,任意数量的公知的前向纠错技术可被用来为所插入的分组生成额外的数据,这允许重新构造接收器处丢失的或以其他方式错过的数据。
在一些实施例中,当对事务中的最后的数据分组的确认被丢弃时,此处描述的边界检测技术有助于避免超时。当发送器或流控制模块220接收对于这些额外的数据分组的确认时,发送器可以从这些额外的确认来确定最后的数据分组是否已经被接收或这需要被重传,从而避免超时。在一个实施例中,如果最后的分组已经被接收但是它们的确认被丢弃,则流控制模块220生成对该数据分组的确认,并且将该确认发送到发送器,从而告知发送器该数据分组已经被传送。在又一个实施例中,如果没有收到最后的分组,则流控制模块220向发送器发送一个分组来使发送器重传丢弃的数据分组。
在又一个实施例中,设备200或流控制器220使用重新分组技术来改善传输层网络业务流。在一些实施例中,TCP性能和分组大小成比例。因此增加分组大小能改进性能,除非其引起大大增加的分组丢失率或其他非线性效应,例如I P分片。通常,有线介质(诸如铜缆或光纤)具有极低的误码率,低到可以忽略不计。对于这些介质,在分片发生之前,最大化分组大小是有益的(通过底层传输介质的协议来限制最大化的分组大小)。但是对于具有较高丢失率的传输介质(例如,诸如WiFi等的无线技术,或者诸如电力线网络等高损环境),增加分组大小可能导致较低的传输率,因为介质引发的错误导致整个分组被丢弃(即,介质引发的错误超过对于该介质的标准纠错码的能力),从而增加了分组丢失率。分组丢失率中的显著大的增加实际上否定了增加的分组大小的任何性能益处。在一些情况中,对于TCP端点来选择最优的分组大小可能是困难的。例如,最优的分组大小可以根据每个链路的性质在传输路径时发生变化。
通过将设备200或流控制模块220插入到传输路径中,流控制器220监控链路的特征并且根据所确定的链路特征重新分组。在一个实施例中,设备200或流控制器220将具有连续数据的分组重新分组为少量的较大分组。在又一个实施例中,设备200或流控制器220通过将一系列大分组分为大量的较小的分组来对分组进行重新分组。在其他实施例中,设备200或流控制器220监控链路特征并且通过重新组合来调整分组大小以提高吞吐量。
仍参考图2A,在一些实施例中,流控制器220可以包括QoS引擎236,(也被称为QoS控制器)。在又一个实施例中,例如,设备200和/或网络优化引擎250包括单独的但与流控制器220通信的QoS引擎236。QoS引擎236包括用于执行改善任何网络连接的性能、操作或服务质量的一个或多个服务质量(QoS)技术的任何逻辑、商业规则、功能或操作。在一些实施例中,QoS引擎236包括为不同用户、应用、数据流或连接提供不同优先级的网络业务量控制和管理机制。在其他实施例中,QoS引擎236为用户、应用、数据流或连接控制、维持或确保特定水平的性能。在一个实施例中,QoS引擎236为用户、应用、数据流或连接控制、维持或确保特定部分的带宽或网络容量。在一些实施例中,QoS引擎236监控对应于用户、应用、数据流或连接的性能或服务质量的所达到的水平,例如数据速率和延迟。响应于监控,QoS引擎236动态地控制或调整网络分组的调度优先级来获得期望水平的性能或服务质量。
在一些实施例中,QoS引擎236根据一个或多个类别或等级的服务来优先排序、调度和传输网络分组。在一些实施例中,服务类别或等级可以包括:1)尽最大努力,2)控制的负载,3)有保证的或者4)定性的。对于尽最大努力类的服务,设备200作出合理的努力来传送分组(标准服务水平)。对于控制的负载类的服务,设备200或QoS引擎236近似传输介质的标准的分组错误丢失或者近似轻度负载网络条件下的尽最大努力服务的行为。对于有保证类的服务,设备200或QoS引擎236保证来在连接期间以确定的速率传输数据的能力。对于定性类的服务,设备200或QoS引擎236将定性类服务用于要求或期望优先排序的业务量的应用、用户、数据流或者连接,但不能对资源需求或服务水平进行定量。在这些情况中,设备200或QoS引擎236基于QoS引擎236的任意逻辑或配置或者基于商业规则或策略来确定服务类别或优先级。例如,在一个实施例中,QoS引擎236根据策略引擎295、295’指定的一个或多个策略来优先排序、调度和传输网络分组。
协议加速器234包括用于优化、加速或以其他方式改善一个或多个协议的性能、操作或服务质量的任何逻辑、商业规则、功能或操作。在一个实施例中,协议加速器234在网络堆栈的层5-7的加速任何应用层协议。在其他实施例中,协议加速器234加速传输层或者层4协议。在一个实施例中,协议加速器234加速层2或层3的协议。在一些实施例中,协议加速器234被配置、构建或设计来根据数据类型、协议的特征和/或行为来优化或加速一个或多个协议的每一个。在又一个实施例中,协议加速器234被配置、构建或设计来改善用户体验、响应时间、网络或者计算机负载,和/或关于协议的网络或带宽利用。
在一个实施例中,协议加速器234被配置、构建或设计来最小化文件系统访问上的WAN延迟的影响。在一些实施例中,协议加速器234优化或加速CIFS(通用互联网文件系统)协议的使用来改善文件系统访问时间或对数据和文件的访问时间。在一些实施例中,协议加速器234优化或加速NFS(网络文件系统)协议的使用。在又一个实施例中,协议加速器234优化或加速文件传输协议(FTP)的使用。
在一个实施例中,协议加速器234被配置、构建或设计来优化或加速承载为有效载荷的或使用任何类型和形式的标记语言的协议。在其他实施例中,协议加速器234被配置、构建或设计来优化或加速超文本传输协议(HTTP)。在又一个实施例中,协议加速器234被配置、构建或设计来优化或加速承载有效载荷或以其他方式使用XML(可扩展标记语言)的协议。
在一些实施例中,设备200和/或网络优化引擎250对于通过诸如WAN链路的网络连接或链路的任何数据流是透明的。在一个实施例中,设备200和/或网络优化引擎250以这样的方式操作:通过WAN的数据流是由任何网络监控、QoS管理或网络分析工具可识别的。在一些实施例中,设备200和/或网络优化引擎250不创建用于传输可以隐藏、遮掩或以其他方式使网络业务量不透明的数据的任何隧道或流。在其他实施例中,设备200透明地操作,因为设备不改变网络分组的任何源和/或目标地址信息或端口信息,诸如互联网协议地址或端口号。在其他实施例中,设备200和/或网络优化引擎250被认为对于网络架构中的网络、应用、客户机、服务器或其他设备或计算装置透明地操作或运转。也就是在一些实施例中,设备是透明的,因为不必修改网络上的任何装置或设备的网络相关配置来支持设备200。
可以下面的部署配置的任何一个来部署设备200:1)串行业务量,2)代理模式,3)虚拟串行模式。在一些实施例中,设备200可以与以下的一个或多个串行部署:路由器、客户机、服务器或者另一个网络装置或设备。在其他实施例中,设备200可以与以下的一个或多个并行部署:路由器、客户机、服务器或者另一个网络装置或设备。在并行部署中,路由器、客户机、服务器或者其他网络设备可以被配置为转发、转换或通过网络至设备200或者经由设备200转发、转换或通过网络。
在串行的实施例中,设备200与路由器的WAN串行部署。以此方式,来自WAN的所有业务量在到达LAN的目的地之前穿过该设备。
在代理模式的实施例中,设备200被部署为客户机和服务器之间的代理装置。在一些实施例中,设备200使客户机与网络上的资源间接连接。例如,客户机经由设备200连接到资源,并且设备通过连接到该资源、不同的资源、或者通过从高速缓存供应该资源来提供资源。在一些情况中,设备可以对于不同的目的来改变客户机请求或者服务器响应,诸如对于此处所讨论的任何优化技术。在其他实施例中,设备200通过透明地拦截并转发到客户机和/或服务器的请求和响应来作为透明代理运行。不使用客户机侧配置,设备200可以将客户机请求重定向到不同的服务器或网络。在一些实施例中,设备200可以在穿过该设备的任何网络业务量上执行任何类型和形式的网络地址转换(被称为NAT)。
在一些实施例中,设备200以虚拟串行模式配置来部署。在该实施例中,具有路由或转换功能的路由器或网络装置被配置为转发、路由或以其他方式提供发往网络或设备200的网络分组。设备200接着在该网络分组上执行任一期望的处理,诸如此处讨论的任一WAN优化技术。当完成处理时,设备200将经处理的网络分组转发到路由器以传输到网络上的目的地。以此方式,设备200可以并行耦合到路由器,但仍如同设备200串行一样操作。该部署模式还提供透明性,因为当分组被处理并经由设备通过网络传输时,保留了源和目标地址以及端口信息。
尽管在上文网络优化引擎250总是结合设备200来描述,但是网络优化引擎250或其任何部分可以被部署、分布或以其他方式操作在诸如客户机102和/或服务器106的任一端节点上。由此,客户机或服务器可以提供此处所描述的结合一个或多个设备200或者不结合设备200的网络优化引擎250的任何系统和方法。
现参考图2B,描述部署在一个或多个端节点的网络优化引擎250的示例实施例。总的来说,客户机102可以包括第一网络优化引擎250’并且服务器106可以包括第二网络优化引擎250”。客户机102和服务器106可以建立传输层连接并且交换穿过或不穿过设备200的通信。
在一个实施例中,客户机102的网络优化引擎250’执行此处描述的技术来优化、加速或以其他方式改善与服务器106通信的网络业务量的性能、操作或服务质量。在又一个实施例中,服务器106的网络优化引擎250”执行此处描述的技术来优化、加速或以其他方式改善与客户机102通信的网络业务量的性能、操作或服务质量。在一些实施例中,客户机102的网络优化引擎250’和服务器106的网络优化引擎250”执行此处描述的技术来优化、加速或以其他方式改善在客户机102与服务器106之间通信的网络业务量的性能、操作或服务质量。在又一个实施例中,客户机102的网络优化引擎250’结合设备200执行此处描述的技术来优化、加速或以其他方式改善与客户机102通信的网络业务量的性能、操作或服务质量。在又一个实施例中,服务器106的网络优化引擎250”结合设备200执行此处描述的技术来优化、加速或以其他方式改善与服务器106通信的网络业务量的性能、操作或服务质量。
网络设备常用于提供对一个或多个网络服务的访问。网络设备可包括多个虚拟服务器,每个虚拟服务器提供对多个服务的访问。虚拟服务器可管理来自客户机的输入的连接,并将客户机请求定向到一个或多个服务。在管理输入的连接请求的过程中,网络设备可提供虚拟服务器间的负载平衡。当虚拟服务器下线或者不可用于服务连接请求时,该设备可使用备份虚拟服务器来管理输入的连接。
虚拟服务器可以是可操作的或可用的但没有操作在期望的性能水平。网络设备可将客户机请求或连接定向到操作在不到最优性能水平的虚拟服务器。例如,网络设备可将客户机请求定向到慢的虚拟服务器。在又一个实施例中,网络设备可以将客户机定向到正在服务于大量的响应或网络业务的虚拟服务器。虚拟服务器可以使用在客户机和服务之间传输请求和响应的显著的网络能力。在一些情形下,由于有限的带宽可利用率,如果虚拟服务器处理额外的客户机连接,则该虚拟服务器的响应时间可能增加。在其他情形下,由于有限的带宽可利用率,服务器和虚拟服务器之间或者客户机和服务器之间的往返时间可能增加。
现参考图2C,描述了用于传送和/或操作客户机102上的计算环境15的网络环境的又一个实施例。设备200可以提供用于加速从服务器106到客户机102的任意传输层有效载荷的加速技术,例如:1)传输层连接池,2)传输层连接多路复用,3)传输控制协议缓冲,4)压缩和5)高速缓存。在一个实施例中,设备200响应于来自客户机102的请求提供服务器106的负载平衡。在又一个实施例中,设备200充当代理或者访问服务器来提供对一个或者多个服务器106的访问。在又一个实施例中,设备200提供从客户机102的第一网络104到服务器106的第二网络104’的安全虚拟专用网络连接,诸如SSL VPN连接。在又一个实施例中,设备200提供客户机102和服务器106之间的连接和通信的应用防火墙安全、控制和管理。在一些实施例中,应用传送系统290、应用和数据文件中的每一个可驻留或位于不同的服务器。在其他实施例中,应用传送系统290的任何部分可驻留、执行、或被存储于或分布到设备200或多个设备。
仍参考图2C,网络环境的一个实施例可以包括监控服务器106A。监控服务器106A可以包括任何类型和形式的性能监控服务298。性能监控服务298可以包括监控、测量和/或管理软件和/或硬件,包括数据收集、集合、分析、管理和报告。在一个实施例中,性能监控服务298包括一个或多个监控代理297。监控代理297包括用于在诸如客户机102、服务器106或设备200和205的装置上执行监控、测量和数据收集活动的任意软件、硬件或其组合。在一些实施例中,监控代理297包括诸如Visual Basic脚本或Javascript任意类型和形式的脚本。在一个实施例中,监控代理297相对于装置的任意应用和/或用户透明地执行。在一些实施例中,监控代理297相对于应用或客户机不显眼地被安装和操作。在又一个实施例中,监控代理297的安装和操作不需要用于该应用或装置的任何设备。
在一些实施例中,监控代理297以预定频率监控、测量和收集数据。在其它实施例中,监控代理297基于检测到任意类型和形式的事件来监控、测量和收集数据。例如,监控代理297可以在检测到对web页面的请求或收到HTTP响应时收集数据。在另一个实例中,监控代理297可以在检测到诸如鼠标点击的任一用户输入事件时收集数据。监控代理297可以报告或提供任何所监控、测量或收集的数据给监控服务298。在一个实施例中,监控代理297根据时间安排或预定频率来发送信息给监控服务298。在又一个实施例中,监控代理297在检测到事件时发送信息给监控服务298。
在一些实施例中,监控服务298和/或监控代理297对诸如客户机、服务器、服务器群、设备200、设备205或网络连接的任意网络资源或网络基础结构元件的进行监控和性能测量。在一个实施例中,监控服务298和/或监控代理297执行诸如TCP或UDP连接的任意传输层连接的监控和性能测量。在又一个实施例中,监控服务298和/或监控代理297监控和测量网络等待时间。在又一个实施例中,监控服务298和/或监控代理297监控和测量带宽利用。
在其它实施例中,监控服务298和/或监控代理297监控和测量终端用户响应时间。在一些实施例中,监控服务298执行应用的监控和性能测量。在又一个实施例中,监控服务298和/或监控代理297执行到应用的任意会话或连接的监控和性能测量。在一个实施例中,监控服务298和/或监控代理297监控和测量浏览器的性能。在又一个实施例中,监控服务298和/或监控代理297监控和测量基于HTTP的事务的性能。在一些实施例中,监控服务298和/或监控代理297监控和测量IP电话(VoIP)应用或会话的性能。在其它实施例中,监控服务298和/或监控代理297监控和测量诸如ICA客户机或RDP客户机的远程显示协议应用的性能。在又一个实施例中,监控服务298和/或监控代理297监控和测量任意类型和形式的流媒体的性能。在进一步的实施例中,监控服务298和/或监控代理297监控和测量所寄载的应用或软件即服务(Software-As-A-Service,SaaS)传送模型的性能。
在一些实施例中,监控服务298和/或监控代理297执行与应用相关的一个或多个事务、请求或响应的监控和性能测量。在其它实施例中,监控服务298和/或监控代理297监控和测量应用层堆栈的任意部分,例如任意.NET或J2EE调用。在一个实施例中,监控服务298和/或监控代理297监控和测量数据库或SQL事务。在又一个实施例中,监控服务298和/或监控代理297监控和测量任意方法、函数或应用编程接口(API)调用。
在一个实施例中,监控服务298和/或监控代理297对经由诸如设备200和/或设备205的一个或多个设备从服务器到客户机的应用和/或数据的传送进行监控和性能测量。在一些实施例中,监控服务298和/或监控代理297监控和测量虚拟化应用的传送的性能。在其它实施例中,监控服务298和/或监控代理297监控和测量流式应用的传送的性能。在又一个实施例中,监控服务298和/或监控代理297监控和测量传送桌面应用到客户机和/或在客户机上执行桌面应用的性能。在又一个实施例中,监控服务298和/或监控代理297监控和测量客户机/服务器应用的性能。
在一个实施例中,监控服务298和/或监控代理297被设计和构造成为应用传送系统290提供应用性能管理。例如,监控服务298和/或监控代理297可以监控、测量和管理经由CITRIX PRESENTATION SERVER、CITRIX XENAPP或CITRIX XENDESKTOP解决方法来传送应用的性能。在该实例中,监控服务298和/或监控代理297监控单独的表示层协议会话,例如ICA会话。监控服务298和/或监控代理297可以测量总的以及每个会话的系统资源使用,以及应用和连网性能。监控服务298和/或监控代理297可以对于给定用户和/或用户会话来识别活动的服务器。在一些实施例中,监控服务298和/或监控代理297监控在应用传送系统290和应用和/或数据库服务器之间的后端连接。监控服务298和/或监控代理297可以测量每个用户会话或ICA会话的网络等待时间、延迟和容量。
在一些实施例中,监控服务298和/或监控代理297测量和监控对于应用传送系统290的诸如总的存储器使用、每个用户会话和/或每个进程的存储器使用。在其它实施例中,监控服务298和/或监控代理297测量和监控应用传送系统290的CPU使用,诸如总的CPU使用、每个用户会话和/或每个进程的CPU使用。在又一个实施例中,监控服务298和/或监控代理297测量和监控登录到应用、服务器或应用传送系统(例如,CITRIX PRESENTATIONSERVER、CITRIX XENAPP或CITRIX XENDESKTOP系统)所需的时间。在一个实施例中,监控服务298和/或监控代理297测量和监控用户登录应用、服务器或应用传送系统290的持续时间。在一些实施例中,监控服务298和/或监控代理297测量和监控应用、服务器106或应用传送系统会话的活动的和不活动的会话计数。在又一个实施例中,监控服务298和/或监控代理297测量和监控用户会话等待时间。
在进一步的实施例中,监控服务298和/或监控代理297测量和监控任意类型和形式的服务器指标(metrics)。在一个实施例中,监控服务298和/或监控代理297测量和监控与系统内存、CPU使用和磁盘存储器有关的指标。在又一个实施例中,监控服务298和/或监控代理297测量和监控和页错误有关的指标,诸如每秒页错误。在其它实施例中,监控服务298和/或监控代理297测量和监控往返时间的指标。在又一个实施例中,监控服务298和/或监控代理297测量和监控与应用崩溃、错误和/或中止相关的指标。
在一些实施例中,监控服务298和监控代理298包括性能监控或端用户监控程序,例如由位于佛罗里达州Ft.Lauderdale的Citrix Systems有限公司出品的EDGESIGHT。在又一个实施例中,性能监控服务298和/或监控代理298包括由位于加里福尼亚州Palo Alto的Symphoniq公司出品的被称为TRUEVIEW产品套件的产品实施例的任何部分。在一个实施例中,性能监控服务298和/或监控代理298包括由位于加里福尼亚州San Francisco的TeaLeaf技术公司出品的被称为TEALEAF CX产品套件的产品实施例的任何部分。在其它实施例中,性能监控服务298和/或监控代理298包括由位于德克萨斯州Houston的BMC软件有限公司出品的诸如BMC性能管理器和巡逻产品(BMC Performance Manager and Patrol products)的商业服务管理产品的任何部分。
在一些实施例中,监控代理297可以监控和测量客户机的任何应用的性能。在一个实施例中,监控代理297监控和测量客户机102上的浏览器的性能。在一些实施例中,监控代理297监控和测量经由客户机代理120传送的任何应用的性能。在其它实施例中,监控代理297测量和监控应用的最终用户响应时间,例如基于web的响应时间或HTTP响应时间。监控代理297可以监控和测量ICA或RDP客户机的性能。在又一个实施例中,监控代理297测量和监控用户会话或应用会话的指标。在一些实施例中,监控代理297测量和监控ICA或RDP会话。在一个实施例中,监控代理297测量和监控设备200在加速传送应用和/或数据到客户机102的过程中的性能。
在一些实施例中,设备200可以包括性能监控代理297。在一个实施例中,设备200从监控服务298或监控服务器106A接收监控代理297。在一些实施例中,设备200在诸如磁盘的存储装置中保存监控代理297,以用于传送给与设备200通信的任何客户机102或服务器106。例如,在一个实施例中,设备200在接收到建立传输层连接的请求时传输监控代理297到客户机102。在其它实施例中,设备200在建立与客户机102的传输层连接时传输监控代理297。在又一个实施例中,设备200在拦截或检测对web页面的请求时传输监控代理297到客户机102。在又一个实施例中,设备200响应于来自监控服务器298的请求来传输监控代理297到客户机102或服务器106。在一个实施例中,设备200传输监控代理297到第二设备200’(未示出)。
在一个实施例中,设备200执行监控代理297。在又一个实施例中,监控代理297测量和监控在设备200上执行的任何应用、程序、进程、服务、任务或线程的性能。例如,监控代理297可以监控和测量由设备200提供的虚拟服务器的性能与操作。在又一个实施例中,监控代理297测量和监控设备200的任何传输层连接的性能。在又一个实施例中,监控代理297测量和监控经过设备200的任何用户会话的性能。
在一个实施例中,监控代理297测量和监控经过设备200的诸如SSL VPN会话的任何虚拟专用网连接和/或会话的性能。在又一个实施例中,监控代理297测量和监控设备200的内存、CPU和磁盘使用以及性能。在又一个实施例中,监控代理297测量和监控诸如SSL卸载、连接池和多路复用、缓存以及压缩的由设备200执行的任何加速技术的性能。在一些实施例中,监控代理297测量和监控由设备200执行的任一负载平衡和/或内容交换的性能。在其它实施例中,监控代理297测量和监控由设备200执行的应用防火墙保护和处理的性能。
现参考图2D,示出了使用多个监控代理244来监控网络服务270的设备的框图。总的来说,设备200包括多个监控代理244。多个监控代理的每一个被分配给服务270。一个实施例中,可为多个监控代理的每一个分配权重。监控代理244也可被称为探测器或负载监控器。
仍参考图2D,设备200包括多个监控代理244。监控代理244可包括向设备200报告网络服务270的性能或操作的特征的任何程序、脚本、守护程序或其他计算例程。监控代理244可与网络服务270通信一次,或者以诸如每1毫秒或每1秒的预定频率通信。一些实施例中,监控代理244可使用请求/回复消息机制或协议与服务器106通信。其他实施例中,监控代理244可具有用于与服务器106通信的定制的或专用的交换协议。一些实施例中,单个监控代理244可监控多个服务器106。其他实施例中,多个监控代理244可监控单个服务器106。其他实施例中,多个监控代理244可各自监控多个服务器106,其中多个服务器106的每一个被多个监控代理244监控。
在所示的实施例中,一个或多个监控代理244与一个或多个网络服务270相关联。其他实施例中,一个或多个监控代理244可监控设备200、虚拟服务器、网络服务270、客户机102或任何其他网络资源。
一个实施例中,用户指定要与一个或多个监控代理244关联的网络服务270的类型。又一个实施例中,用户可以定制监控代理244。又一个实施例中,使用通用的监控代理244。又一个实施例中,一个或多个监控代理244确定一个或多个网络服务270用于响应下列类型的请求的响应时间:ping、传输控制协议(TCP)、TCP扩展内容验证、超文本传输协议(HTTP)、http扩展内容验证、超文本传输协议安全(HTTPS)、HTTPS扩展内容验证、用户数据报协议、域名服务和文件传输协议。
一些实施例中,一个或多个代理244是协议专用的代理,每个代理确定特定协议类型的网络服务的可用性。一些实施例中,监控代理244确定服务器106或网络服务270对TCP请求的响应时间。在这些实施例的一个中,监控代理244使用“TCP/ICMP echo request”命令来向网络服务270发送数据报,接收来自网络服务270响应的数据报,并基于数据报的往返时间来确定响应时间。在这些实施例的又一个中,监控代理244检验来自网络服务270的响应包括期待的内容且不包含错误。
在其他实施例中,监控代理244确定网络服务270对UDP请求的可用性。在这些实施例的一个中,监控代理244使用“UDP echo”命令来向网络服务270发送数据报,接收来自网络服务270响应的数据报,并基于数据报的往返时间来确定响应时间。在这些实施例的又一个中,监控代理244检验来自网络服务270的响应包括期待的内容且不包含错误。在其他实施例中,监控代理244确定网络服务270对FTP请求的可用性。在这些实施例的一个中,监控代理244向网络服务270发送诸如“get”或“put”的FTP命令,然后确定网络服务270响应该命令所需的时间。在这些实施例的又一个中,监控代理244检验来自网络服务270的响应包括期待的内容,例如由“get”命令所请求的文件的内容,并且不包含错误。
其他实施例中,监控代理244确定网络服务270对HTTP请求的可用性。在这些实施例的一个中,监控代理244向网络服务270发送HTTP命令,例如对统一资源定位符(URL)或文件的“get”请求,然后确定网络服务270响应该请求所需的时间。在这些实施例的又一个中,监控代理244检验来自网络服务270的响应包括期待的内容,例如由URL所识别的网页的内容,并且不包含错误。
进一步的实施例中,监控代理244确定网络服务270对DNS请求的可用性。在这些实施例的一个中,监控代理244向服务器106或网络服务270发送DNS请求,例如对知名网络地址的域名查询(dnsquery)或网络信息查询(nslookup),然后确定网络服务270响应该请求所需的时间。在这些实施例的又一个中,监控代理244检验来自网络服务270的响应包括期待的内容,例如与该知名网络地址关联的计算装置100的域名,并且不包含错误。
可由网络设备200给监控代理244分配权重。权重可包括整数、小数或任何其他的数字指示器。一些实施例中,用户可配置对应于给定的监控代理244的权重。一些实施例中,可为多个监控代理244分配相同的权重。其他实施例中,可为多个监控代理的每一个分配不同的权重。可基于指示相对重要性的任何标准来给监控器分配权重,所述标准包括但不限于所监控的服务的重要性,监控机制的可靠性和监控的频率。
一个实施例中,可基于设备200监控的服务270的相对重要性来给监控代理244分配权重。例如,如果在给定的环境中大部分用户请求是HTTP请求,监控服务器106的HTTP可用性的监控代理244可以被分配权重10,而监控服务器106的FTP可用性的监控代理244可能被分配权重3。或者,例如,如果管理员对UDP应用设置高的优先级,监控服务器106的UDP可用性的监控代理244可能被分配权重20,而DNS监控代理244可能被分配权重5。
一些实施例中,设备200可计算当前报告网络服务270可使用的监控代理244的权重之和。例如,如果各被分配权重为30的5个监控代理244监控网络服务270,5个监控代理244中的3个报告网络服务270为可用的,那么设备200可确定当前报告网络服务270可使用的监控代理244的和为90。或者例如,如果仅有两个监控代理244报告网络服务270为可用的,其中一个权重为20而另一个权重为40,那么设备200可计算当前报告服务器106可操作的监控代理244的和为60。
现参考图3,描述客户机代理120的实施例。客户机102包括客户机代理120,用于经由网络104与设备200、设备205和/或服务器106来建立、交换、管理和控制通信。在一些实施例中,客户机120(其也可以被称为WAN客户机)加速WAN网络通信和/或用于通过网络设备200通信。总的来说,客户机102在计算装置100上操作,该计算装置100拥有带有内核模式302以及用户模式303的操作系统,以及带有一个或多个层310a-310b的网络堆栈267。客户机102可以已经安装和/或执行一个或多个应用。在一些实施例中,一个或多个应用可通过网络堆栈267与网络104通信。所述应用之一,诸如web浏览器,也可包括第一程序322。例如,可在一些实施例中使用第一程序322来安装和/或执行客户机代理120,或其中任何部分。客户机代理120包括拦截机制或者拦截器350,用于从网络堆栈267拦截来自一个或者多个应用的网络通信。
与设备200一样,客户机102具有网络堆栈267,其包括任何类型和形式的软件、或硬件或其组合,用于提供与网络104的连接和通信。客户机102的网络堆栈267包括上文结合设备200所描述的任何一个网络堆栈实施例。在一些实施例中,客户机代理120或其任何部分被设计和构建为与由客户机102的操作系统安装或以其他方式提供的网络堆栈267一起操作或联合工作。
在进一步的细节中,客户机102或设备200(205)的网络堆栈267可包括任何类型和形式的接口,用于接收、获得、提供或以其它方式访问与客户机102的网络通信相关的任何信息和数据。在一个实施例中,与网络堆栈267的接口包括应用编程接口(API)。接口也可包括任何函数调用、钩子或过滤机制,事件或回调机制、或任何类型的接口技术。网络堆栈267通过接口可接收或提供与网络堆栈267的功能或操作相关的任何类型和形式的数据结构,例如对象。例如,数据结构可以包括与网络分组相关的信息和数据或者一个或多个网络分组。在一些实施例中,数据结构包括、引用或识别在网络堆栈267的协议层处理的网络分组的一部分,例如传输层的网络分组。在一些实施例中,数据结构325包括内核级别数据结构,而在其他实施例中,数据结构325包括用户模式数据结构。内核级数据结构可以包括获得的或与在内核模式302中操作的网络堆栈267的一部分、或者运行在内核模式302中的网络驱动程序或其它软件相关的数据结构、或者由运行或操作在操作系统的内核模式的服务、进程、任务、线程或其它可执行指令获得或收到的任何数据结构。
此外,网络堆栈267的一些部分可在内核模式302执行或操作,例如,数据链路或网络层,而其他部分在用户模式303执行或操作,例如网络堆栈267的应用层。例如,网络堆栈的第一部分310a可以给应用提供对网络堆栈267的用户模式访问,而网络堆栈267的第二部分310a提供对网络的访问。在一些实施例中,网络堆栈的第一部分310a可包括网络堆栈267的一个或多个更上层,例如层5-7的任何层。在其它实施例中,网络堆栈267的第二部分310b包括一个或多个较低的层,例如层1-4的任何层。网络堆栈267的第一部分310a和第二部分310b的每一个可包括网络堆栈267的任何部分,位于任何一个或多个网络层,处于用户模式203、内核模式202,或其组合,或在网络层的任何部分或者到网络层的接口点,或用户模式203和内核模式202的任何部分或到用户模式203和内核模式202的接口点。
拦截器350可以包括软件、硬件、或者软件和硬件的任何组合。在一个实施例中,拦截器350在网络堆栈267的任一点拦截或以其他方式接收网络通信,并且重定向或者传输网络通信到由拦截器350或者客户机代理120所期望的、管理的或者控制的目的地。例如,拦截器350可以拦截第一网络的网络堆栈267的网络通信并且传输该网络通信到设备200,用于在第二网络104上传输。在一些实施例中,拦截器350包括驱动器或是驱动器,例如被构建和设计来与网络堆栈267对接并一同工作的网络驱动器。在一些实施例中,客户机代理120和/或拦截器350操作在网络堆栈267的一个或者多个层,诸如在传输层。在一个实施例中,拦截器350包括过滤器驱动器、钩子机制、或者连接到网络堆栈的传输层的任一形式和类型的合适网络驱动器接口,诸如通过传输驱动器接口(TDI)。在一些实施例中,拦截器350连接到诸如传输层的第一协议层和诸如传输协议层之上的任何层的另一个协议层,例如,应用协议层。在一个实施例中,拦截器350可以包括遵守网络驱动器接口规范(NDIS)的驱动器,或者NDIS驱动器。在又一个实施例中,拦截器350可以包括微型过滤器或者微端口驱动器。在一个实施例中,拦截器350或其部分在内核模式202中操作。在又一个实施例中,拦截器350或其部分在用户模式203中操作。在一些实施例中,拦截器350的一部分在内核模式202中操作,而拦截器350的另一部分在用户模式203中操作。在其它实施例中,客户机代理120在用户模式203操作,但通过拦截器350连接到内核模式驱动器、进程、服务、任务或者操作系统的部分,诸如以获取内核级数据结构225。在其它实施例中,拦截器350为用户模式应用或者程序,诸如应用。
在一个实施例中,拦截器350拦截或接收任何的传输层连接请求。在这些实施例中,拦截器350执行传输层应用编程接口(API)调用以设置目的地信息,诸如到期望位置的目的地IP地址和/或端口用于定位。以此方式,拦截器350拦截并重定向传输层连接到由拦截器350或客户机代理120控制或管理的IP地址和端口。在一个实施例中,拦截器350把该连接的目的地信息设置为客户机代理120监听的客户机102的本地IP地址和端口。例如,客户机代理120可以包括为重定向的传输层通信监听本地IP地址和端口的代理服务。在一些实施例中,客户机代理120随后将重定向的传输层通信传送到设备200。
在一些实施例中,拦截器350拦截域名服务(DNS)请求。在一个实施例中,客户机代理120和/或拦截器350解析DNS请求。在又一个实施例中,拦截器发送所拦截的DNS请求到设备200以进行DNS解析。在一个实施例中,设备200解析DNS请求并且将DNS响应传送到客户机代理120。在一些实施例中,设备200经另一个设备200’或者DNS服务器106来解析DNS请求。
在又一个实施例中,客户机代理120可以包括两个代理120和120’。在一个实施例中,第一代理120可以包括在网络堆栈267的网络层操作的拦截器350。在一些实施例中,第一代理120拦截网络层请求,诸如互联网控制消息协议(ICMP)请求(例如,查验和跟踪路由)。在其它实施例中,第二代理120’可以在传输层操作并且拦截传输层通信。在一些实施例中,第一代理120在网络堆栈210的一层拦截通信并且与第二代理120’对接或者将所拦截的通信传送到第二代理120’。
客户机代理120和/或拦截器350可以以对网络堆栈267的任何其它协议层透明的方式在协议层操作或与之对接。例如,在一个实施例中,拦截器350可以以对诸如网络层的传输层之下的任何协议层和诸如会话、表示或应用层协议的传输层之上的任何协议层透明的方式在网络堆栈267的传输层操作或与之对接。这允许网络堆栈267的其它协议层如所期望的进行操作并无需修改以使用拦截器350。这样,客户机代理120和/或拦截器350可以与传输层对接以安全、优化、加速、路由或者负载平衡经由传输层承载的任一协议提供的任一通信,诸如TCP/IP上的任一应用层协议。
此外,客户机代理120和/或拦截器可以以对任何应用、客户机102的用户、客户机102和/或与客户机102通信的诸如服务器或设备200、206的任何其它计算装置100透明的方式在网络堆栈267上操作或与之对接。客户机代理120和/或拦截器350可以以无需修改应用的方式被安装和/或执行在客户机102上。在一个实施例中,客户机代理120或其任何部分被以对客户机102、设备200、205或服务器106的任何网络配置透明的方式被安装和/或执行。在一些实施例中,客户机代理120或其任何部分被以无需修改客户机102、设备200、205或服务器106的任何网络配置的方式被安装和/或执行。在一个实施例中,客户机102的用户或者与客户机102通信的计算装置未意识到客户机代理120或其任何部分的存在、执行或者操作。同样,在一些实施例中,相对于应用、客户机102的用户、客户机102、诸如服务器或设备200、205的另一个计算装置、或者在由拦截器350连接的协议层之上和/或之下的任何协议层透明地来安装、执行和/或操作客户机代理120和/或拦截器350。
客户机代理120包括流客户端306、收集代理304、SSL VPN代理308、网络优化引擎250和/或加速程序312。在一个实施例中,客户机代理120包括由佛罗里达州Fort Lauderdale的Citrix Systems有限公司开发的独立计算架构(ICA)客户机或其任一部分,并且也被称为ICA客户机。在一些实施例中,客户机代理120包括应用流客户端306,用于从服务器106流式传输应用到客户机102。在又一个实施例中,客户机代理120包括收集代理304,用于执行端点检测/扫描并且用于为设备200和/或服务器106收集端点信息。在一些实施例中,客户机代理120具有一个或多个网络加速或优化程序或代理,例如网络优化引擎250和加速程序312。在一个实施例中,加速程序312加速客户机102和服务器106之间的经过设备205’的通信。在一些实施例中,网络优化引擎250提供此处所讨论的WAN优化技术。
流客户端306是应用、程序、进程、服务、任务或者可执行指令集,所述应用、程序、进程、服务、任务或者可执行指令集用于接收和执行从服务器106所流式传输的应用。服务器106可以流式传输一个或者多个应用数据文件到流客户端306,用于播放、执行或者以其它方式引起客户机102上的应用被执行。在一些实施例中,服务器106发送一组压缩或者打包的应用数据文件到流客户端306。在一些实施例中,多个应用文件被压缩并存储在文件服务器上档案文件中,例如CAB、ZIP、SIT、TAR、JAR或其它档案文件。在一个实施例中,服务器106解压缩、解包或者解档应用文件并且将该文件发送到客户机102。在又一个实施例中,客户机102解压缩、解包或者解档应用文件。流客户端306动态安装应用或其部分,并且执行该应用。在一个实施例中,流客户端306可以是可执行程序。在一些实施例中,流客户端306可以能够启动另一个可执行程序。
收集代理304是用于识别、获取和/或收集关于客户机102的信息的应用、程序、进程、服务、任务或者可执行指令集。在一些实施例中,设备200发送收集代理304到客户机102或者客户机代理120。可以根据设备的策略引擎236的一个或多个策略来配置收集代理304。在其它实施例中,收集代理304发送在客户机102上收集的信息到设备200。在一个实施例中,设备200的策略引擎236使用所收集的信息来确定和提供客户机到网络104的连接的访问、验证和授权控制。
在一个实施例中,收集代理304包括端点检测和扫描机制,其识别并且确定客户机的一个或者多个属性或者特征。例如,收集代理304可以识别和确定任何一个或多个以下的客户机侧属性:1)操作系统和/或操作系统的版本,2)操作系统的服务包,3)运行的服务,4)运行的进程,和5)文件。收集代理304还可以识别并确定客户机上任何一个或多个以下软件的存在或版本:1)防病毒软件;2)个人防火墙软件;3)防垃圾邮件软件,和4)互联网安全软件。策略引擎236可以具有基于客户机或客户机侧属性的任何一个或多个属性或特性的一个或多个策略。
SSL VPN代理308是应用、程序、进程、服务、任务或者可执行指令集,所述应用、程序、进程、服务、任务或者可执行指令集用于建立从第一网络104到第二网络104’、104”的安全套接字层(SSL)虚拟专用网(VPN)连接,或从客户机102到服务器106的SSL VPN连接。在一个实施例中,SSL VPN代理308建立从公共网104到专用网104’或104”的SSL VPN连接。在一些实施例中,SSL VPN代理308和设备205联合工作以提供SSL VPN连接。在一个实施例中,SSL VPN代理308建立与设备205的第一传输层连接。在一些实施例中,设备205建立与服务器106的第二传输层连接。在又一个实施例中,SSL VPN代理308建立与客户机上应用的第一传输层连接,以及与设备205的第二传输层连接。在其他实施例中,SSL VPN代理308和WAN优化设备200联合工作以提供SSL VPN连通。
在一些实施例中,加速程序312是用于执行一个或多个加速技术的客户机侧加速程序,以加速、增强或者以其他方式改善客户机与服务器106的通信和/或对服务器106的访问,诸如访问由服务器106提供的应用。加速程序312的可执行指令的逻辑、功能和/或操作可以执行一个或多个下列加速技术:1)多协议压缩,2)传输控制协议池,3)传输控制协议多路复用,4)传输控制协议缓冲,以及5)通过高速缓存管理器的高速缓存。另外,加速程序312可执行由客户机102接收和/或发送的任何通信的加密和/或解密。在一些实施例中,加速程序312以集成的方式或者格式执行一个或者多个加速技术。另外,加速程序312可以对作为传输层协议的网络分组的有效载荷所承载的任一协议或者多协议执行压缩。
在一个实施例中,加速程序312被设计、构建或配置为与设备205一起工作以提供LAN侧加速或者提供通过设备205提供的加速技术。例如,在由Citrix System公司出品的NetScaler设备205的一个实施例中,加速程序312包括NetScaler客户机。在一些实施例中,加速程序312在例如分支机构中的远程装置中提供独立的NetScaler加速技术。在其他实施例中,加速程序312和一个或多个NetScaler设备205联合工作。在一个实施例中,加速程序312提供网络业务量的LAN侧或基于LAN的加速或优化。
在一些实施例中,网络优化引擎250可以被设计、构建或配置为与WAN优化设备200一起工作。在其他实施例中,网络优化引擎250可以被设计、构建或配置为用或不用设备200提供设备200的WAN优化技术。例如,在由Citrix Systems有限公司出品的WANScaler设备200的一个实施例中,网络优化引擎250包括WANScaler客户机。在一些实施例中,网络优化引擎250在例如分支机构的远程位置中提供独立的WANScaler加速技术。在其他实施例中,网络优化引擎250和一个或多个WANScaler设备200联合工作。
在又一个实施例中,网络优化引擎250包括加速程序312、或加速程序312的功能、操作和逻辑。在一些实施例中,加速程序312包括网络优化引擎250或网络优化引擎250的功能、操作和逻辑。在又一个实施例中,网络优化引擎250作为从加速程序312分开的程序或可执行指令集而被提供或安装。在其他实施例中,网络优化引擎250和加速程序312可被包括在同一程序或同一可执行指令集中。
在一些实施例中,仍参考图3,第一程序322可以用于自动地、静默地、透明地或者以其它方式安装和/或执行客户机代理120或其任何部分。在一个实施例中,第一程序322包括插件组件,例如ActiveX控件或Java控件或脚本,其加载到应用并由应用执行。例如,第一程序包括由web浏览器应用加载和运行的ActiveX控件,例如在存储器空间或应用的上下文中。在又一个实施例中,第一程序322包括被例如浏览器的应用载入并执行的可执行指令集。在一个实施例中,第一程序322是被设计和构造为安装客户机代理120的程序。在一些实施例中,第一程序322通过网络从另一个计算装置获得、下载、或接收客户机代理120。在又一个实施例中,第一程序322是安装程序或即插即用管理器,用于在客户机102的操作系统上安装诸如网络驱动和客户机代理120或其任何部分的程序。
在一些实施例中,客户机代理120的每一或任一部分(流客户端360、收集代理304、SSL VPN代理308和拦截代理350)可作为单独的应用、程序、进程、服务、任务或可执行指令集而被安装、执行、配置或操作。在其他实施例中,客户机代理120的每一或任一部分可以一起作为单个客户机代理120而被安装、执行、配置或操作。
现参考图4A,框图描述了在其中多个网络提供寄载和传送服务的系统的一个实施例。总的来说,该系统包括数据中心404、云服务与寄载架构406,以及企业信息技术(IT)网408。
在一个实施例中,数据中心404提供对与组织的核心业务和操作数据有关的应用的访问。在又一个实施例中,数据中心404包括计算装置,例如但不限于服务器(例如,包括应用服务器、文件服务器、数据库和备份服务器)、路由器、交换机和电信装备。在又一个实施例中,云服务与寄载架构406提供对(不限于)存储系统、数据库、应用服务器、桌面服务器、目录服务器和web服务器的访问。在又一个实施例中,企业IT网408也可以被称为驻地网(on-premise network)或端用户网。在一些实施例中,企业IT网104c可以提供本地服务,例如邮件服务和web服务。在其他实施例中,企业IT网104c可提供远程服务的本地版本,例如位于远程的打印服务器、数据库、应用服务器、桌面服务器、目录服务器和web服务器的本地缓存的版本。在其他实施例中,企业IT网104c提供允许远程用户访问由企业IT网104c提供的服务的功能;例如,访问网络104d的计算机的用户可以连接到网络104c中的应用服务器以访问企业资源。
如图4A所示,在一些实施例中,数据中心404和云服务与寄载架构406可以处于远离由该数据中心404和云服务与寄载架构406所支持的组织的位置;例如,数据中心404可驻留在第一网络104a,并且云服务与寄载架构406可驻留在第二网络104b上,而企业IT网408是分开的、第三网络104c。在其他实施例中,数据中心404和云服务与寄载机构406驻留在第一网络104a上而企业IT网408是分开的、第二网络104c。在其他实施例中,云服务与寄载架构406驻留在第一网络104a上而数据中心404和企业IT网408形成第二网络104c。尽管图4A仅描述了一个服务器106a、一个服务器106b、一个服务器106c、两个客户机102和三个网络104,但应理解该系统可提供任何这些组件或这些组件的每一个的多个,或者不提供这些组件。例如,在一些实施例中,可以有数据中心404或者企业IT网408。可以如上文结合图1A-3所描述的来提供服务器106、客户机102和网络104。
在一个实施例中,该系统包括驻留在数据中心404中的由寄载提供者提供的设施和硬件。在又一个实施例中,该系统包括在云服务与寄载架构406中驻留的提供虚拟化和管理程序功能的至少一个服务器;虚拟化和管理程序提供者可提供这样的服务器。在又一个实施例中,该系统包括在云服务与寄载架构406中驻留的提供用于执行虚拟机的功能的至少一个服务器;主干网寄载服务提供者可提供这样的服务器。在又一个实施例中,其他服务器可以驻留在云服务与寄载架构406中,其是由其他服务提供者提供的,所述服务提供者包括但不限于,架构服务提供者、应用服务提供者、平台服务提供者、工具服务提供者和桌面服务提供者。
在一个实施例中,IT架构可以从第一网络(例如由企业拥有和管理的网络)扩展到第二网络,所述第二网络可以是由与拥有和管理第一网络的实体不同的实体来拥有和管理的。由第二网络提供的资源可以说是“在云中”。驻留云的元件可包括但不限于,存储装置、服务器、数据库、计算环境(包括虚拟机和桌面)和应用。在其他实施例中,提供代表顾客的计算架构的一个或多个网络被称为云。在这些实施例的一个中,将下面的系统称为云计算环境,在该系统中第一网络的用户至少访问包含抽象的、可扩充的和管理的计算资源的池的第二网络,所述计算资源能够寄载用户资源。在这些实施例的又一个中,资源可包括但不限于虚拟化技术、数据中心资源、应用和管理工具。在一些实施例中,基于互联网的应用(其可以是通过“软件即服务”模型来提供的)可以被称为基于云的资源。在其他实施例中,可以将给用户提供诸如刀片服务器上的刀片或虚拟机的计算资源的网络称为计算云。在其他实施例中,可以将提供存储资源的网络(例如存储区域网)称为存储云。在进一步的实施例中,资源可以被缓存在本地网络中并且存储在云中。
在一个实施例中,例如,第一网络104b上的第一机器106b可以存储虚拟机映像,而第二网络104c上的第二机器106c可以检索虚拟机映像的副本并且将其进行本地缓存以提供增强功能,例如冗余性或改善的性能。在这样的实施例中,可以将虚拟机映像保存在远离将执行该虚拟机的用户的位置,(该虚拟机可以说是被存储在“云中”的位置)。
现参考图4B,框图描述用于桥接多个网络的系统一个实施例,所述多个网络中的一个提供计算和存储功能。如上指出的,在一些实施例中,上文所描述的系统用于将文件、应用、桌面、计算环境或其他数据从一个机器传送到另一个机器。在一个实施例中,云桥服务器402包括用于在支持的信息技术(IT)架构从第一网络扩展到一个或多个其他网络中的情景中传送数据的功能。
在一个实施例中,云桥服务器402包括用于供应、传送、加速传送、缓存和/或执行在一个或多个网络上存储的资源的功能。在又一个实施例中,云桥服务器402提供对驻留云的数据的加速的访问。在又一个实施例中,实现云桥服务器402提供对实验室和临时环境(staging environment)的支持。在又一个实施例中,云桥服务器402提供用于管理虚拟机生命周期的功能。在又一个实施例中,云桥服务器402提供容灾功能、灾难恢复功能和用于按需部署另外的计算或存储能力的功能。例如,云桥服务器402可通过允许管理员按需执行或终止另外的虚拟机的接口来按需提供能力。作为另一个示例,云桥服务器402可通过实用程序(utility)来按需提供能力,所述实用程序允许管理员导入或导出虚拟机映像(例如,所存储的与诸如开发虚拟化格式的标准兼容的虚拟机映像)。在一些实施例中,云桥服务器402提供用于存储数据的第二站点;这样的第二站点可以提供容灾功能。
在一个实施例中,云桥服务器402包括自动迁移实用程序。在又一个实施例中,自动迁移实用程序包括允许用户请求向和从远程网络或云中的其他位置迁移资源的接口。在又一个实施例中,自动迁移实用程序提供云服务与寄载架构406和企业IT网408之间的安全连接。在又一个实施例中,自动迁移实用程序提供允许用户负载平衡一个或多个资源的接口。
在一个实施例中,自动迁移实用程序包括允许用户将第一网络中的现有架构迁移到第二网络的接口;例如该接口允许用户(例如管理员)将现有的虚拟化架构迁移到网络104b中的云服务与寄载架构,或者从第一云服务与寄载架构406a迁移到在同一网络104b或不同网络104上的第二云服务与寄载架构406b。在又一个实施例中,例如,该接口可以包括允许用户将功能从云服务与寄载架构406迁移到企业IT网408的元件。在又一个实施例中,通过实现自动功能,云桥服务器402为处于企业IT网104c的用户提供零接触管理;这样的实现可以导致用户较低的操作代价。在一些实施例中,云桥服务器402包括管理能力,所述管理能力包括但不限于,基于应用的配置、配置变化管理过程支持,以及监控与工作流集成。
在一些实施例中,云桥服务器402与用于自适应地负载平衡用户会话以降低能耗的系统通信。在这些实施例的一个中,自动迁移实用程序与这样的系统通信。在这些实施例的又一个中,云桥服务器402的负载平衡组件与这样的系统通信。在这些实施例的又一个中,这样的系统包括功率管理控制台,其识别多个用户会话的每一个的会话类型,定义提供对具有公共会话类型的多个用户会话的子集的访问的服务器组,以及定义用于服务器组的功率管理调度表;该系统也可以将多个用户会话的子集合并到该服务器组中的至少一个服务器上的功率管理控制器。在其他实施例中,云桥服务器402与用于通过动态管理多个服务器的功率模式来降低能耗的系统通信,所述系统包括监控该多个服务器中的一个上的负载水平的功率管理代理。在这些实施例的一个中,该系统包括功率管理控制台,其与功率管理代理通信,为该多个服务器中的一个定义功率管理调度表,所述功率管理调度表是响应于所监控的负载水平而生成的。在这些实施例的又一个中,该系统包括功率管理控制器,其与功率管理控制台和功率管理代理通信,响应于功率管理调度表来动态地控制多个服务器中的一个的功率级别。在进一步实施例中,云桥服务器402与诸如下文结合图12-18描述的那些系统通信。
在一个实施例中,云桥服务器402包括提供弹性的虚拟机存储的功能。在又一个实施例中,云桥服务器402提供用于加速传送应用、计算环境、虚拟机映像和其他资源或用户数据的功能。在又一个实施例中,云桥服务器402包括资源传送组件,该资源传送组件向端用户网络104c流式传输应用、桌面、计算环境、虚拟机和其他资源。在又一个实施例中,云桥服务器402包括用于提供拨号音服务的功能。
在一个实施例中,云桥服务器402实现由为其使用的资源付费的端用户访问的功能;这样的实施例可以被称为“现收现付(pay-as-you-go)”系统。在又一个实施例中,云桥服务器402包括代理,所述代理监控用户对管理程序161的使用,生成用户指标,并识别对该用户的收费量。在这些实施例的又一个中,该代理监控物理资源的使用,例如存储、网络带宽中央处理单元(CPU)利用率和磁盘利用率。
在一个实施例中,云桥服务器402提供用于加速的输入/输出完成的文件中继器。在又一个实施例中,云桥服务器402提供用于加速的输入/输出完成的块中继器。在又一个实施例中,云桥服务器402提供用于从云服务与寄载架构406删除也被存储在企业网408上的文件或块的功能。
在一些实施例中,此处描述的系统提供复制存储的功能。在这些实施例的一个中,这样的功能提供快的应用输入/输出完成、有效的网络上重复数据删除技术、弹性容灾远程存储、网络断开操作、应用和数据加速、加速从虚拟机到存储中继器的输入/输出以及跨越云服务提供者聚集公共访问和安全。
在一个实施例中,云桥服务器402包括分支中继器,用于缓存文件、应用、计算环境、虚拟机和其他数据。在又一个实施例中,云桥服务器402与上文结合图1F-3所述的设备200通信。在又一个实施例中,云桥服务器402是设备200。
在一个实施例中,云桥服务器402提供虚拟化服务器410。在又一个实施例中,虚拟化服务器410提供对至少一个虚拟机的访问。在又一个实施例中,至少一个虚拟机提供对企业服务的访问,包括但不限于打印服务、目录服务(包括复制的MICROSOFT ACTIVE DIRECTORY数据库)和其他服务。在又一个实施例中,云桥服务器402与诸如优化装置200的设备通信,并且实现上文结合图1F-3所述的方法和系统以便优化资源向企业IT网408的传送。在一些实施例中,云桥服务器402提供用于集中管理虚拟机的功能。在其他实施例中,做出优化决策来确定是执行来自云服务与寄载架构406的服务还是执行来自企业IT网408的服务。
在一些实施例中,云桥服务器402支持基于可扩展标记语言(XML)对应用的优化、缓存和压缩。在这些实施例的一个中,云桥服务器402提供二进制XML支持。在这些实施例的又一个中,云桥服务器402包括用于负载平衡XML内容的功能。在这些实施例的又一个中,云桥服务器402包括用于动态XML内容的内容交换和路由的功能。
在其他实施例中,云桥服务器402提供对协议的支持,所述协议支持利用由内容和服务的联合而实现的轻量级商业模型的基于web的社区、所寄载的服务和资源。在进一步的实施例中,云桥服务器402提供对资源的优化、缓存或压缩的支持,所述资源利用互联网来允许用户对内容和其他应用(其也可以被称为“Web 2.0”或“Web 3.0”)的参与和贡献;包括,例如但不限于,社交网站、媒体共享网站、多媒体共享、互联网上的语音、对等通信、维基、博客、基于位置的应用和用户生成的分类法。
在一些实施例中,云桥服务器402提供扩展安全能力的功能。在这些实施例的一个中,云桥服务器402与企业身份和访问管理(IAM)系统(例如,OpenID)相集成。在这些实施例的又一个中,云桥服务器402提供对web服务的细粒度的访问控制。在这些实施例的又一个中,云桥服务器402扩展XML处理能力(例如,以防止隐私数据的泄漏(HIPAA)和用于威胁防御。)。
在一些实施例中,云桥服务器402包括安全管理器。在这些实施例的一个中,安全管理器提供用于加密虚拟机的功能。在这些实施例的又一个中,安全管理器提供用于加密虚拟机的启动扇区的功能。在这些实施例的又一个中,安全管理器提供用于实施有关虚拟机生命期的策略的功能。在这些实施例的又一个中,安全管理器提供用于实施有关虚拟机运行时间的策略的功能。在这些实施例的又一个中,安全管理器提供用于实施有关用户更新的策略的功能。在这些实施例的又一个中,安全管理器提供用于静态或动态地检查虚拟机安全的功能。
在一些实施例中,云桥服务器402包括多个管理代理,所述管理代理允许用户(例如管理员)来管理多个物理机器、存储资源和外围装置,支持在企业IT网408和云服务与寄载架构406的至少一个上存储、供应、传送和执行虚拟机。在这些实施例的一个中,管理代理可包括但不限于存储管理器、虚拟化管理器、可用性管理器、动态工作负载管理器和生命周期管理器的至少一个。
在一个实施例中,云桥服务器402包括允许供应和管理存储资源的存储管理器。在又一个实施例中,存储管理器提供用于自动供应虚拟机、生成虚拟机快照、克隆虚拟机、提供虚拟机的数据备份和提供对虚拟机的灾难恢复的集中的功能。在又一个实施例中,存储管理器提供通用的高速虚拟存储架构。在又一个实施例中,存储管理器允许存储资源(例如,网络附加存储或存储区域网)和虚拟机映像(其可以是,例如,ISO或VHD格式的)之间的格式独立。
在一个实施例中,存储管理器提供功能以管理在多个云服务与寄载架构406上存储的虚拟机映像。在又一个实施例中,云桥服务器402上的存储管理器提供接口适应。在又一个实施例中,存储管理器提供用于在企业IT网408上缓存远程地存储的虚拟机映像的功能。在又一个实施例中,存储管理器提供用于供应、配置和解除供应存储资源的功能。在一些实施例中,下面结合图6A-9详细地描述用于管理存储资源的功能。
在一个实施例中,云桥服务器402包括用于管理虚拟化资源的池的虚拟化管理器。在又一个实施例中,虚拟化管理器包括管理工具,该管理工具允许诸如管理员的用户来管理支持跨越多个网络执行多个虚拟机的多个物理机器。在这样的实施例中,多个物理机器可以被称为池。
在一个实施例中,云桥服务器402包括可用性管理器,其包括允许管理员识别云服务与寄载架构406和企业IT网408的至少一个以用于执行资源的功能。在又一个实施例中,这样的功能允许例如管理员将资源的执行从企业IT网408转换到提供高可用性、故障切换和灾难恢复的云服务与寄载架构406。在又一个实施例中,可用性管理器包括用于资源的自动的、策略控制的部署的功能;例如,可用性管理器可包括接口,该接口允许管理员指定何时企业IT网408提供对资源的访问以及何时云服务与寄载架构406提供该访问。
在一个实施例中,云桥服务器402包括动态的工作负载管理器,其允许管理员选择用于执行虚拟机的物理主机,所述物理主机驻留在云服务与寄载架构406中。在又一个实施例中,虚拟机的执行被称为工作负载。在又一个实施例中,根据诸如开放虚拟化格式的标准规定的虚拟设备的执行被称为工作负载。在又一个实施例中,工作单元被称为工作负载;这样的工作单元可以是用清楚的部署边界来与其他工作负载分开的。
在一个实施例中,要执行的应用或应用集合所需的基础服务的集合被称为工作负载。在又一个实施例中,多个虚拟机被称为工作负载。在又一个实施例中,工作负载是下列的至少一个:一组应用、一组应用服务、一组架构服务和一组应用服务。
在一个实施例中,动态工作负载管理涉及允许响应于刺激来执行或迁移虚拟机的功能,所述刺激例如用户请求、服务器利用率的变化或者服务器可用性的变化。在又一个实施例中,动态工作负载管理器提供对虚拟化数据中心架构的基于策略的控制。在又一个实施例中,动态工作负载管理器提供对根据服务级别协定管理的虚拟化数据中心架构的自动控制。在又一个实施例中,动态工作负载管理器提供对跨越多个物理主机的工作负载的平衡和优化。在一些实施例中,动态工作负载管理器包括诸如下面结合图10-11更详细地描述的功能。
在一个实施例中,云桥服务器402包括允许管理员供应和管理虚拟资源的生命周期管理器。在又一个实施例中,生命周期管理器提供对应用和工作负载生命周期的自动管理,从创建到测试、准备和更新。在又一个实施例中,生命周期管理器便于对在企业IT网408(例如实验室管理)和云服务与寄载架构406的至少一个上的应用或工作负载生命周期中的至少一个进程的管理。
现参考图5A,框图描述了在其中云服务与寄载架构寄载代表企业信息技术网的至少一个服务的系统的一个实施例。如图5A所示,管理员可识别至少一个企业服务-例如,文件存储、邮件服务或基于浏览器的协同和文档管理平台-以及安排云服务与寄载架构406来寄载所识别的至少一个企业服务。在一个实施例中,虚拟局域网(VLAN)被定义为是通过诸如SSL VPN的装置可访问的。在又一个实施例中,云服务与寄载架构406上的虚拟机可提供对所识别的至少一个企业服务的访问。在又一个实施例中,云服务与寄载架构406的管理员给企业IT网408的管理员提供对执行管理程序161的至少一个物理主机100的访问,并且企业IT网408的管理员指定由管理程序161执行的虚拟机为企业IT网408提供哪些服务。在一些实施例中,企业IT网408的管理员可以如上文结合图1F-3所述来部署设备200。
现参考图5B,框图描述在其中企业IT网408包括办公场所(premise)缓存服务器的系统的一个实施例。在一个实施例中,企业IT网408包括上文结合图1F-3所述的系统。
现参考图5C,框图描述在其中企业IT网408包括办公场所缓存服务器并且云服务与寄载架构406包括资源服务器的系统的一个实施例。在一个实施例中,企业IT网408包括上文结合图1F-3所述的系统。在又一个实施例中,云服务与寄载架构406包括资源服务器,该资源服务器执行资源并将资源输出数据传输到端用户。在又一个实施例中,云服务与寄载架构406包括资源服务器,该资源服务器存储资源并经由应用流的系统和方法将资源传输到端用户。在又一个实施例中,云服务与寄载架构406包括执行虚拟机的资源服务器,该虚拟机执行资源并将资源输出数据传输到端用户。在一些实施例中,企业IT网104c包括至少一个提供对企业服务(例如邮件服务和web服务)的本地访问的服务器。
现参考图5D,框图描述在其中企业IT网408和云服务与寄载架构406的至少一个包括给端用户提供对诸如桌面的资源的访问的资源服务器的系统的一个实施例。在一个实施例中,企业IT网408向端用户传送资源。在又一个实施例中,云服务与寄载架构406向端用户传送资源。在又一个实施例中,云服务与寄载架构406可包括允许用户选择用于执行的资源的功能;例如,云服务与寄载架构406可将可用的资源的列举传输到计算装置102,该计算装置102将该列举显示给用户,该用户选择所列举的资源中的一个用于执行。在又一个实施例中,云服务与寄载架构406可传输资源以给企业IT网408提供额外的能力;例如,缺省情况下,企业IT网408可传送资源,但是在企业IT网408资源服务器缺乏传输额外资源的能力的情况下,云服务与寄载架构406可以传输该资源以缓解临时的短缺。
在一个实施例中,云桥服务器402允许跨越企业IT网408的合并以便在提供服务器虚拟化时提高服务器利用率、降低操作支出、改善容灾、加强安全和兼容。在又一个实施例中,远程地访问应用可能增加对加速应用传送服务的需求。在一些实施例中,此处所描述的方法和系统的实现提供用于传送操作系统、服务器虚拟化服务和独立于位置和装置的应用的功能以满足该需求。
在其他实施例中,此处所描述的方法和系统的实现解决在合并数据中心中的应用服务或将其寄载到云中时所可能引起的需求。在这些实施例的一个中,提供“虚拟办公设备”,其本地运行虚拟机设备来为在分支机构或远程办公室的用户提供服务的子集。在这些实施例的又一个中,“虚拟办公室”包括多个服务器(其中一个服务器提供故障切换功能),执行虚拟化系统(例如管理程序和控制操作系统165)。在这些实施例的又一个中,“虚拟办公室”服务器执行集成/利用功能(例如上文结合图1F-3所述的那些功能)的服务和工作流以本地运行和缓存虚拟机设备。在一些实施例中,虚拟机映像是管理程序可从其执行虚拟机的映像。在这些实施例的一个中,虚拟机映像可以是与标准兼容的,所述标准例如开发虚拟化格式标准、VMWARE虚拟机磁盘格式(VMDK)、虚拟硬盘驱动格式(VHD)或其他格式。
在一些实施例中,可以在云中的位置(诸如云服务与寄载架构406)来供应、寄载或存储虚拟机。在这些实施例的一个中,可以将虚拟机缓存到驻留在企业IT网408中的服务器并且从企业IT网408执行该虚拟机。在这些实施例的又一个中,由于降低了网络中断,访问这样的虚拟机的用户可以获得改善的体验。在这些实施例的又一个中,这样的执行可充分利用企业IT网408的计算能力。
仍参考图5D,云服务与寄载架构406可执行资源服务器106b,所述资源服务器106提供对例如表示服务、资源传送或者代表在企业IT网408中的机器执行资源的虚拟机的访问。在这些实施例的一个中,云服务与寄载架构406服务器106b与企业IT网408中的资源服务器106c(其可以是例如打印服务器、web服务器或文件服务器)通信。在这样的实施例中,经由基于云的服务器106b访问资源的用户也可以访问驻留在企业IT网408中的服务器106c上的数据。在这些实施例的又一个中,设备200-如上文结合图1F-3所述的设备200-提供对在云服务与寄载架构406和企业IT网408之间的传输的数据的加速。在这些实施例的又一个中,设备-其可以是同一设备200或另一个设备-提供用于保护在云服务与寄载架构406和企业IT网408之间的通信的功能。在一些实施例中,多个资源服务器106b提供对资源的访问。在这些实施例的一个中,例如,资源服务器群用对资源的访问来提供对企业IT网408中的机器的访问。
在一个实施例中,云服务与寄载架构406中的服务器106b与企业IT网408中的服务器106c建立信任关系;例如,服务器可使用MICROSOFT ACTIVEDIRECTORY服务来建立该信任关系。在又一个实施例中,企业IT网络408中的服务器106b与企业IT网408中的服务器106c建立虚拟专用网(VPN)连接。在一些实施例中,诸如AMAZON ELASTIC COMPUTE CLOUD的系统可提供服务器106b,可以根据AMAZON机器映像规范来配置该服务器106b。在其他实施例中,诸如由位于得克萨斯州Piano的SoftLayer Technologies有限公司提供的系统的系统可以提供服务器106b。
在一个实施例中,云服务与寄载架构406中的服务器106b与企业IT网408中的服务器106c建立信任关系。在又一个实施例中,服务器106b建立从在云服务与寄载架构406中执行的虚拟机到在企业IT网408中执行的机器的隧道;该隧道例如可以支持来自在企业IT网408中执行的机器并发的用户会话。
在一些实施例中,在(驻留在企业IT网408中的)服务器106c上的客户机代理在第一用户连接和被认证时执行。在这些实施例的一个中,由客户机代理来自动地在客户机代理和服务器106b之间创建隧道。在这些实施例的又一个中,当第二用户连接时,第二用户经由在第一用户连接时建立的同一隧道来接收对服务器的访问。在这些实施例的又一个中,客户机代理确定已经在第二用户连接时建立隧道。在其他实施例中,在(驻留在云服务与寄载架构406中的)服务器106b上的客户机代理在第一用户(例如管理员)连接和被认证时执行。在这些实施例的一个中,在客户机代理和服务器106b之间创建隧道。在这些实施例的又一个中,当第二用户连接时,第二用户经由在第一用户连接时建立的同一隧道来接收对服务器的访问。在这些实施例的又一个中,客户机代理确定已经在第二用户连接时建立隧道。在其他实施例中,提供站点对站点的虚拟专用网的建立,允许在企业IT网408或云服务与寄载架构406中的机器来初始化连接的建立。在进一步的实施例中,计算装置被配置为在执行该计算装置时(例如,当其完成加电或启动周期时)自动认证用户(例如管理员)。在这样的实施例中,第一计算装置启动、认证用户和执行客户机代理,其自动建立到第二计算装置的安全连接,例如安全的VPN隧道;计算装置可以是两个服务器、两个客户机,或者客户机和服务器并且任一机器可建立该连接。
在一些实施例中,在云服务与寄载架构406中为与企业IT网408中的服务器106c通信的服务器106b建立单独的域。在其他实施例中,不实现单独的域。在其他实施例中,驻留在云服务与寄载架构406中的至少一个服务器106b与企业IT网408中的服务器106c建立信任关系和/或VPN会话;这样的服务器可以被称为云域控制器。在进一步的实施例中,管理工具存储用于建立信任关系和/或VPN会话的证书。
在一个实施例中,提供管理工具以允许诸如管理员的用户来最初地供应服务器106b。在又一个实施例中,用户识别要供应的服务器的数量(例如云域控制器的数量或者资源服务器106b的数量)。在又一个实施例中,管理工具包括允许用户配置至少一个服务器106b的接口。在又一个实施例中,管理工具包括允许用户提供与企业IT网408中的服务器106c关联的配置数据的接口。
现参考图5E,框图描述包括云服务与寄载架构、云系统管理接口502和云系统协调组件504的系统的一个实施例。在一些实施例中,由云服务与寄载架构406代表企业IT网408提供的云服务的管理包括复杂的操作。在这些实施例的一个中,例如,对于单个服务器106b操作可包括多个顺序的步骤-例如,实例化机器映像、基于该机器映像执行机器、供应至少一个存储资源并且将所供应的至少一个存储资源与服务器相关联,以及供应IP地址并将其与服务器相关联。在这些实施例的又一个中,作为又一个示例,操作可以包括多个服务器106b之间所采取的协调步骤-例如,执行域控制器服务器、将用户简档存储与域控制器服务器相关联、以及实例化与域控制器服务器相关联的至少一个资源服务器。
在一个实施例中,云系统协调组件504在企业IT网408中的服务器106c上执行。在又一个实施例中,云系统协调组件504在客户机102上执行。在又一个实施例中,云系统协调组件504在云服务与寄载架构406中的服务器106c上执行。在又一个实施例中,云系统协调组件504提供允许用户在云计算环境中执行管理操作的功能;例如,云系统协调组件504包括用于执行在上文示例中描述的操作的功能。在一些实施例中,云系统协调组件504和云系统管理接口502是由云桥402提供的。在其他实施例中,云系统协调组件504和云系统管理接口502与云桥402通信。
在一个实施例中,云系统管理接口502提供允许用户与云系统协调组件504交互并执行由其提供的功能的接口。在又一个实施例中,云系统管理接口502是图形用户接口。在又一个实施例中,云系统管理接口502是工具,例如CITRIX WORKFLOW STUDIO工具。在又一个实施例中,云系统管理接口502是定制的接口工具,其包括允许用户开始、停止云服务与寄载架构406中的机器或监控其健康的接口元素。在又一个实施例中,云系统管理接口502包括用于执行由云系统协调组件504提供的功能的至少一个脚本。
在一些实施例中,提供客户代理506用于在云服务与寄载架构406中的机器上执行。在这些实施例的一个中,客户代理506在云系统协调组件504和云服务与寄载架构406中的机器之间提供通信信道。在这些实施例的又一个中,客户代理506提供允许云系统协调组件504监控在云服务与寄载架构406中的机器的控制和监控信道。在这些实施例的又一个中,客户代理506提供允许云系统协调组件504控制由在云服务与寄载架构406中的机器提供的功能的执行的控制和监控信道。在这些实施例的又一个中,对于在云服务与寄载架构406中的机器的机器映像可包括钩子机制,其修改机器以允许客户代理506的执行或者实现代表客户代理506的功能。
在一些实施例中,客户代理506在机器映像的实例化期间检索数据或元数据。在这些实施例的又一个中,云系统协调组件504在实例化机器映像期间给在云服务与寄载架构406中的机器提供用户数据。在其他实施例中,代表云系统协调组件504执行的脚本检索数据或元数据。
回到图4B,在一些实施中,驻留在企业IT网408上的资源服务器106c执行虚拟机,该虚拟机给用户提供对分支机构服务的访问。在一个实施例中,分支机构服务包括但不限于文件服务器、打印服务器、提供基于IP的电话服务的电话服务器和web服务器。在又一个实施例中,分支机构服务包括但不限于网络服务器,例如域名服务器(DNS)或动态主机配置协议(DHCP)服务器。在又一个实施例中,分支机构服务包括但不限于例如应用服务器的表示服务,所述应用服务器执行应用并将应用输出数据传输到客户机102以用于向用户显示。在又一个实施例中,分支机构服务包括但不限于向客户机102传送例如应用、桌面计算环境和虚拟机的资源以用于在客户机102上执行的资源传送服务器,这样的资源传送服务器可实现应用流的方法以传送资源。在一些实施例中,通过将一组分支机构服务封装到虚拟机,此处描述的方法和系统通过数据中心404或云服务与寄载架构406来提供集中的服务管理。在这些实施例的一个中,服务可以作为被流式传输或以其他方式传送到物理或虚拟装置的虚拟设备来进行分布。在这些实施例的又一个中,此处描述的方法和系统提供用于当客户机102连接到资源服务器106c以访问应用时本地(企业IT网408)加速应用的功能,与在其中将大部分对访问服务的客户机请求重定向到云服务与寄载架构的系统相比,其可以改善性能。在这些实施例的又一个中,例如,销售点的零售组织可能具有到公司办公室的低带宽网络连接,而通过实现此处描述的系统和方法,可以给用户提供对本地缓存的服务和资源的访问,同时受益于集中的寄载和管理。
现参考图6A,框图描述了用于在云计算环境中由存储传送管理服务自动供应虚拟机的系统的一个实施例。总的来说,该系统包括存储传送管理服务610、主计算装置通信组件612、存储系统通信组件614、存储区域网络630和存储系统632。该系统可包括结构管理组件616。该系统可包括多个计算装置100、多个虚拟机166、多个管理程序161和多个通信组件。应该理解该系统可以可选地提供这些组件的任意多个或每一个。多个计算装置100可以各自作为与图1A-D有关的上文所描述的计算装置100而被提供。
由存储传送管理服务610执行的存储系统通信组件614与存储区域网络630中的存储系统适配器634通信以识别存储区域网络630中的存储系统632,并引导在所识别的存储系统632上虚拟存储资源640的自动供应,所述存储系统632提供用于供应虚拟存储资源640的资源。主计算装置通信组件612接收主计算装置106e访问虚拟存储资源640的请求,并且用所识别的存储系统632的网络端口的标识和所供应的虚拟存储资源640的标识来响应于主计算装置106e。
现参考图6A,更具体地,该系统包括存储传送管理服务610。在一个实施例中,存储传送管理服务610被称为虚拟存储管理器服务。一些实施例中,存储传送管理服务610是在服务器106a或其他计算装置100上执行的提供自动供应功能的计算机程序。其他实施例中,存储传送管理服务610是提供自动供应功能的硬件服务器106。进一步的实施例中,存储传送管理服务610在诸如服务器106的计算装置100上执行的虚拟机内执行。
一个实施例中,主计算装置通信组件612、存储系统通信组件614、结构管理组件616和其他通信组件作为存储传送管理服务610的一部分而被提供。又一个实施例中,至少一个通信组件或管理组件作为用于在存储传送管理服务610的更大的主机程序中操作的插件、模块、或其他自包含的可执行文件或程序而被提供。又一个实施例中,存储传送管理服务610可包括用于与每个组件通信的一个或多个接口。一些实施例中,诸如主计算装置通信组件612、存储系统通信组件614或结构管理组件616的通信组件可以以字节码提供,例如用字节码编程语言JAVA编写的应用。
一个实施例中,存储传送管理服务610包括管理控制台。在又一个实施例中,存储传送管理服务610与管理控制台通信。又一个实施例中,管理控制台包括网络104上可访问的用户接口;例如,该系统可包括基于web的图形用户接口用于通过管理控制台访问存储传送管理服务610的功能。又一个实施例中,诸如网络管理员的用户访问管理控制台来请求由存储传送管理服务610提供的服务。又一个实施例中,管理控制台被提供为基于MICROSOFT管理控制台(MMC)的图形用户接口,用于与由存储传送管理服务610提供的功能交互。
一个实施例中,存储传送管理服务610包括用于与管理控制台交互的接口。又一个实施例中,存储传送管理服务610包括用于接收跨越网络104的对由存储传送管理服务610提供的服务或功能的请求的接口。例如,存储传送管理服务610可根据简单对象访问协议(SOAP),或根据诸如.NET的框架来提供与计算装置100通信的web服务接口,所述框架包括对常见编程问题的预编码的解决方案库和管理专为该框架编写的程序的执行的虚拟机。一些实施例中,存储传送管理服务610提供面向服务架构中的中央接口用于与系统中的其他计算装置通信。
一些实施例中,存储传送管理服务610和管理控制台在单个服务器106上执行。其他实施例中,存储传送管理服务610和管理控制台在分开的服务器106上执行。进一步的实施例中,存储传送管理服务610和管理控制台在单个服务器106内的分开的虚拟机上执行。
在一个实施例中,主机100e和主机100f驻留在第一网络104a上,而存储区域网络630驻留在第二网络104b上。又一个实施例中,主机100e和主机100f跨越网络104与存储区域网络630中的一个或多个存储系统632通信,所述网络104可以是交换结构620。又一个实施例中,交换结构620是存储区域网络630的一部分。又一个实施例中,交换结构620是网络104。
一些实施例中,交换结构620是交换装置的互联网络。这些实施例的一个中,交换结构620包含用于与交换装置的网络中的一个交换机通信的多个输入和输出端口。在这些实施例的另一个中,交换结构620是用于将系统内的数据从线路卡的其中一个端口重定向到另一个线路卡的另一个端口的互联架构。其他实施例中,交换结构620是硬件和软件的组合,并可以包括节点中的交换单元(独立箱体)、交换单元包含的集成电路以及使交换路径可控的编制程序。
一些实施例中,存储系统适配器634驻留在存储区域网络630的服务器106g上。其他实施例中,存储系统适配器634是一个接口,通过该接口外部组件可以检索关于存储区域网络630的数据,例如存储系统632的标识、存储系统632提供的功能或资源的标识或存储系统632的状态。进一步的实施例中,存储系统632的提供者提供用于与服务器通信的存储系统适配器634。
现参考图6B,框图描述了包括存储系统通信组件614的存储传送管理服务610的一个实施例。一些实施例中,存储系统通信组件614包括用于与存储系统632通信的至少一个存储适配器。在这些实施例的一个中,该存储适配器与由存储系统632提供的存储适配器634通信。在这些实施例的另一个中,存储系统通信组件614包括使用应用编程接口与存储适配器632通信的适配器。在这些实施例的另一个中,作为存储系统通信组件614的一部分的存储适配器和由存储系统632提供的存储适配器634根据存储系统适配器协议进行通信,例如基于Web的企业管理协议(WBEM),其提供用于从存储系统检索数据的标准机制。在一些实施例中,由存储系统通信组件614提供的存储适配器使用标准的协议来检索与存储系统632a或632b关联的公共信息模型对象管理器(CIM OM)数据。其他实施例中,存储系统632c或632d的提供者创建定制的存储系统适配器622并向存储传送管理服务610提供该定制的存储系统适配器622以便在与存储系统632c或632d,或者与存储适配器634的通信中使用。
一个实施例中,存储系统632包括一个或多个硬件装置,所述硬件装置存储数据并提供对所存储的数据的访问。在又一个实施例中,存储系统632被称为存储阵列。在又一个实施例中,存储系统632包括在一个或多个硬件装置上的分区;例如,多个硬件装置可以各自包括一个物理存储元件(例如盘驱动器),多个硬件装置的每一个在所述物理存储元件上保留一部分(例如分区)用于为特定主计算装置106存储数据。又一个实施例中,在存储区域网络630中的可以从其创建存储系统632的多个硬件装置被称为存储池。
一个实施例中,存储系统632创建和存储用于由位于远程的计算装置106访问的虚拟存储资源。又一个实施例中,虚拟存储资源可以是用于由在主计算装置106e上执行的虚拟机使用的虚拟盘。在又一个实施例中,虚拟存储资源被称为存储节点。
一个实施例中,存储系统632中的一个或多个硬件装置是存储装置,例如由位于美国马萨诸塞州Hopkinton的EMC公司、位于美国加州Costa Mesa的Emulex公司、位于荷兰Maarssen的Fujitsu Siemens Computers GmBH公司、位于美国加州Palo Alto的Hewlett-Packard公司、位于日本东京的Hitachi有限责任公司、位于美国纽约州Armonk的IBM公司、位于美国加州Sunnyvale的NetAPP股份有限公司、位于美国加州Thousand Oaks的NexSanTechnologies公司、位于美国加州San Jose的Quantum公司和位于美国新泽西州Mahwah的Sanrad股份有限公司提供的那些存储装置。
一个实施例中,存储系统通信组件614接收供应虚拟存储资源640的请求。存储系统通信组件614与存储区域网络630中存储系统适配器634通信以识别存储区域网络630中的存储系统632。一个实施例中,存储系统通信组件614使用应用编程接口来与存储系统适配器634通信。
存储系统通信组件614引导在所识别的存储系统323上虚拟存储资源640的自动供应,所述存储系统632提供用于供应虚拟存储资源640的资源。一个实施例中,存储系统通信组件614向所识别的存储系统632传输第一计算装置106e上的至少一个网络端口的标识以便与虚拟存储资源640相关联。一个实施例中,存储系统通信组件614向所识别的存储系统632传输第二计算装置106f上的至少一个网络端口的标识,访问虚拟存储资源640的虚拟机已经迁移到所述第二计算装置106f。
一些实施例中,存储系统通信组件614将存储系统632配置为根据第一通信协议与执行虚拟机的第一物理计算装置通信。在这些实施例的一个中,存储系统通信组件614包括用于从存储系统632和存储系统适配器634的至少一个请求由存储系统632支持的通信协议的列举的功能;例如,存储系统通信组件614可以向存储系统适配器634传输从识别所支持的通信协议的存储系统632请求CIM OM数据的指令。在这些实施例的另一个中,存储系统通信组件614将存储系统632配置为根据第二通信协议与执行虚拟机的第二物理计算装置通信。在这些实施例的另一个中,第一和第二通信协议是相同的协议。在这些实施例的另一个中,第一和第二通信协议是不同的协议。
其他实施例中,存储系统通信组件614接收虚拟机从第一物理计算装置向第二物理计算装置迁移的通知。在这些实施例的一个中,存储系统通信组件614将存储系统632配置为在收到该通知后根据第二通信协议与第二物理计算装置通信。
进一步的实施例中,存储系统通信组件614给主计算装置通信组件612提供由计算装置106和存储系统632都支持的通信协议的标识。在这些实施例的一个中,主计算装置通信组件612向计算装置106传输提供对所供应的虚拟资源的访问的存储系统的标识。在这些实施例的另一个中,主计算装置通信组件612向计算装置106传输用于在与存储系统632通信中使用的通信协议的标识。
现参考图6C,框图描述了在其中存储传送管理服务610包括结构管理组件616的系统的一个实施例。一个实施例中,由存储传送管理服务610执行的结构管理组件616在交换结构620的至少一个交换机上产生访问控制列表,所述访问控制列表包括所识别的存储系统632的至少一个网络端口的标识和主计算装置106上至少一个网络端口的标识。如图6C所示,结构管理组件616与交换结构620通信。一些实施例中,存储区域网络630包括交换结构620。在这些实施例的一个中,存储区域网络630是交换结构620和一个或多个联网的存储系统632。其他实施例中,存储区域网络630是存储系统632的网络而交换结构620是与存储区域网络630分开的网络。在这些实施例的一个中,交换结构620是网络104,其将存储区域网络630连接到主计算装置106或连接到主计算装置106在其上驻留的网络104a。尽管在图6A、6B、6C中描述了分开的组件,但在一些实施例中,存储区域网络630是包括多个存储系统632和形成交换结构620的多个交换机的单个网络。一些实施例中,存储区域网络630是提供网络附加存储的网络。
一个实施例中,交换结构620包括一个或多个光纤通道交换机。又一个实施例中,交换结构620包括根据互联网小型计算机系统接口(iSCSI)协议通信的交换机。交换结构620可以是异构的,其包括根据光纤通道协议或互联网小型计算机系统接口(iSCSI)协议通信的交换机。又一个实施例中,交换结构620中的交换机将从服务器106或从与一个或多个存储系统632关联的其他计算装置100所接收的数据路由到特定的存储系统632的网络端口。
一些实施例中,交换结构620包括交换结构控制器。在这些实施例的一个中,交换结构控制器包括存储系统适配器634,存储区域网络630之外的组件(诸如结构管理组件616或存储系统通信组件614)可以与所述存储系统适配器634通信。在这些实施例的另一个中,存储系统适配器634驻留在存储系统632上。其他实施例中,交换结构620包括结构名称服务器,结构管理组件616与所述结构名称服务器通信。
一些实施例中,结构管理组件616包括结构通信适配器224。在这些实施例的一个中,结构管理组件616包括光纤通道主总线适配器(HBA)。在这些实施例的一个中,光纤通道HBA使用板载专用集成电路(ASIC)来进行光纤通道堆栈的处理。其他实施例中,结构管理组件616修改由交换结构存储的区域信息。其他实施例中,由交换结构620中的交换管理组件提供的区域控制接口允许结构管理组件616创建和修改区域信息。进一步的实施例中,结构管理组件616根据诸如存储管理主动规范(SMI-S)的标准与交换结构620中的交换机通信以访问数据,所述数据也可以是根据诸如CIM OM的标准被格式化和检索的。在这些实施例的一个中,交换结构620中的交换机执行管理服务,所述管理服务提供结构管理组件616与之交互的应用编程接口。
区域包括诸如存储系统632和被授权访问由一个或多个存储系统632存储的数据的主计算装置100的装置的标识。装置的标识可包括装置自身的唯一标识符(例如装置的唯一全球名称(WWN)),或者装置上的端口的唯一标识符,例如用于存储系统632的网络端口。通常,互相通信的装置(例如,存储系统632和被授权访问由该存储系统632存储的数据的主计算装置100)被标识于一个区域列表,所述区域列表也被称为访问控制列表。一些实施例中,如果装置没有被标识于该区域列表,它将不被允许访问由该区域列表的其他装置存储的数据。其他实施例中,区域列表包括存储系统632上的分区的标识,例如,在存储系统632的多个分区的一个上可提供逻辑单元或虚拟盘或其他虚拟存储资源并且给每个这样的分区分配端口用于识别访问控制列表中的分区。这样的功能通常被称为LUN屏蔽(LUN masking)。在一个实施例中,当主计算装置106或服务器402与存储系统632通信时,例如,请求存储系统632的标识、修改识别存储系统632的访问控制列表或访问由一个或多个存储系统提供的数据,该计算装置请求任意访问控制列表中所列出的每个装置的标识,所述访问控制列表也识别请求计算装置。
一些实施例中,结构管理组件616提供用于动态修改访问控制列表以包括被授权访问存储系统632的虚拟机的标识的功能。在这些实施例的另一个中,结构管理组件616提供用于动态修改访问控制列表以包括被授权访问存储系统632的主计算装置100的标识的功能。在这些实施例的另一个中,结构管理组件616提供用于动态修改访问控制列表以包括执行被授权访问存储系统632的虚拟机的主计算装置100的标识的功能。在这些实施例的另一个中,结构管理组件616提供用于修改识别执行虚拟机的第一计算装置的网络端口的访问控制列表以包括虚拟机已迁移到的第二计算装置的网络端口的标识的功能。
其他实施例中,结构管理组件616是可选的。在这些实施例的一个中,例如,存储传送管理服务610与存储区域网络630交互,所述存储区域网络630根据iSCSI协议而不是根据光纤通道标准来提供功能,在这种情形中,结构管理不是必须的,因为存储传送管理服务610和主计算装置100直接与存储系统632通信而不要求对交换结构620的修改或者交换结构620的管理。
现参考图6D,框图描述了在其中存储传送管理服务610执行主计算装置通信组件612的系统的一个实施例。主计算装置通信组件612接收主计算装置106访问虚拟存储资源640的请求。主计算装置通信组件612用所识别的存储系统632的网络端口的标识和所供应的虚拟存储资源640的标识来对该请求进行响应。一些实施例中,主计算装置106使用所识别的存储系统632的所识别的网络端口来直接与存储系统632通信。其他实施例中,主计算装置106通过存储网络630与存储系统632通信,所述存储网络630可以包括交换结构620。
一些实施例中,主计算装置通信组件612包括用于与主计算装置106通信的通信适配器。其他实施例中,主计算装置通信组件612包括用于与在主计算装置106上执行的虚拟机166a通信的通信适配器。在这些实施例的一个中,计算装置100包括管理程序,其接收来自主计算装置通信组件612的通信数据并将所接收的通信数据传输到虚拟机166a的控制操作系统165用于处理。在这些实施例的另一个中,虚拟机166a将来自控制操作系统165的响应传输到主计算装置通信组件612。在这些实施例的另一个中,控制操作系统165和主计算装置通信组件612交换关于在计算装置100上执行的虚拟机166b的供应或管理的通信。正如图1A有关的上文所描述的,管理程序可包括由位于美国加里福尼亚州Palo Alto的VMWare有限责任公司出品的管理程序;XEN管理程序(一种开源产品,其开发由开源Xen.org协会监管);由Microsoft提供的HyperV、VirtualServer或虚拟PC管理程序,或其他。一些实施例中,主计算装置通信组件612包括用于向管理程序传输数据的通信适配器。在这些实施例的一个中,如图6D所描述的,主计算装置通信组件612包括用于向每个不同种类的管理程序传输数据的单独的通信适配器。在这些实施例的另一个中,主计算装置通信组件612包括用于向每个不同种类的管理程序传输数据的通用通信适配器(未描述)。
一些实施例中,主计算装置通信组件612从代理服务器100a接收为包括至少一个网络端口的计算装置106e供应虚拟存储资源的请求。在这些实施例的一个中,主计算装置通信组件612将该请求传输到存储系统通信组件614。在这些实施例的另一个中,主计算装置通信组件612向代理服务器100a传输所供应的虚拟资源640的标识。在这些实施例的另一个中,主计算装置通信组件612包括用于从代理服务器101a接收请求的接口;例如,该接口可以是通过网络连接向代理服务器100a的用户显示的图形用户接口,或者web服务接口(例如上文所讨论的SOAP/.NET接口)。在其他实施例中,主计算装置通信组件612与控制操作系统165通信。其他实施例中,主计算装置通信组件612访问应用编程接口来与主计算装置100通信。
一些实施例中,存储传送管理服务610执行虚拟机迁移组件(未描述)。这些实施例的一个中,虚拟机迁移组件接收虚拟机从第一物理计算装置106e迁移到第二物理计算装置106f的通知。在这些实施例的另一个中,虚拟机迁移组件接收虚拟机从第一物理计算装置106e向第二物理计算装置106f迁移的请求。在这些实施例的另一个中,虚拟机迁移组件接收第二计算装置106f上的至少一个网络端口的标识。在这些实施例的另一个中,虚拟机迁移组件将第二计算装置106f上至少一个网络端口的标识传输到存储系统通信组件614;该存储系统通信组件614可向存储系统632传输第二计算装置上的至少一个网络端口的标识以便与虚拟存储资源640关联。在这些实施例的另一个中,虚拟机迁移组件向第二计算装置106f传输所供应的虚拟存储资源640的标识以及存储系统632的至少一个网络端口的标识。在这些实施例的另一个中,虚拟机迁移组件向结构管理器通信组件616传输存储系统632的至少一个网络端口的标识和第二计算装置106f的至少一个网络端口的标识。进一步的实施例中,由存储传送管理服务610执行的结构管理组件616在交换结构620的至少一个交换机上产生访问控制列表,所述访问控制列表包括所识别的存储系统632的至少一个网络端口的标识和主计算装置106e或106f上至少一个网络端口的标识。
一些实施例中,虚拟机迁移组件提供用于存储计算装置106e上的虚拟机的执行状态的功能。在这些实施例的一个中,虚拟机迁移组件传输终止虚拟机执行的指令。在这些实施例的另一个中,虚拟机迁移组件向第二物理计算装置106f迁移与所终止的虚拟机关联的虚拟机映像和所存储的虚拟机的执行状态。其他实施例中,虚拟机迁移组件是由控制操作系统165提供的,所述控制操作系统165在与存储传送管理服务610在同一服务器106上寄载的虚拟机166中执行。进一步的实施例中,虚拟机迁移组件是由控制操作系统165提供的,所述控制操作系统165在寄载于服务器106并与存储传送管理服务610通信的虚拟机166中执行。
一些实施例中,主计算装置通信组件612包括虚拟机迁移组件。其他实施例中,主计算装置通信组件612提供由虚拟机迁移组件提供的功能。
一些实施例中,主计算装置106e和主计算装置106f驻留在网络104a上。在这些实施例的一个中,主计算装置106执行向该主计算装置106的用户提供计算环境的虚拟机。在这些实施例的另一个中,虚拟机执行资源并将由资源产生的输出数据传输到客户计算机102用于在客户计算机102上向客户计算机102的用户进行显示。客户计算机102可以与主计算装置100驻留在同一网络104a上,或驻留在单独的网络104b上。其他实施例中,主计算装置106从驻留在网络104上的计算装置106检索执行虚拟机所必须的数据,例如,虚拟机映像或虚拟存储资源。然而,在其他实施例中,主计算装置106从存储网络630(其可以是网络104c)中的存储系统632检索执行虚拟机所必须的数据。进一步的实施例中,主计算装置106的提供者是存储区域网络630的提供者的顾客,其从存储区域网络630的提供者接收存储服务。在这些实施例的一个中,存储服务提供者可以在一个或多个网络104(例如存储区域网络630、交换结构620和在存储服务器提供者和主机100的提供者之间的其他中间网络104b)上提供存储服务。这样的实施例中,存储服务提供者可以说是提供云计算服务,因为它们提供对互联网络的“云”上的存储资源和存储服务的访问。
现参考图7,流程图描述了用于在云计算环境中自动供应虚拟资源的方法的一个实施例。总的来说,该方法700包括由存储传送管理服务为在包括至少一个网络端口的第一计算装置上执行的虚拟机引导在存储区域网络中的存储系统上的虚拟存储资源的供应(702)。该方法包括由存储传送管理服务向存储系统传输第一计算装置上至少一个网络端口的标识以便与虚拟存储资源关联(704)。该方法包括由存储传送管理服务向第一计算装置传输检索所供应的虚拟存储资源的标识和存储系统上至少一个网络端口的标识的指令(706)。该方法包括由存储传送管理服务接收从第一计算装置向第二计算装置迁移虚拟机的指示(708)。该方法包括由存储传送管理服务向存储系统传输第二计算装置上至少一个网络端口的标识以便与虚拟存储资源关联(710)。该方法包括由存储传送管理服务向第二计算装置传输检索所供应的虚拟存储资源的标识和存储系统上至少一个网络端口的标识的指令(712)。
现参考图7,更具体地,存储传送管理服务610为在包括至少一个网络端口的第一计算装置106e上执行的虚拟机166引导在存储区域网络630中的存储系统632上虚拟存储资源640的供应(702)。一些实施例中,存储传送管理服务610接收为包括至少一个网络端口的第一计算装置供应虚拟存储资源的请求。在这些实施例的一个中,存储传送管理服务610从代表计算装置106e的代理服务器106a接收供应虚拟存储资源的请求,所述计算装置106e包括至少一个网络端口。在这些实施例的另一个中,存储传送管理服务610从寄载虚拟机的主计算装置106e接收供应虚拟存储资源的请求。在这些实施例的另一个中,存储传送管理服务610识别存储区域网络中的存储系统,所述存储系统提供用于供应虚拟存储资源的资源。在这些实施例的另一个中,存储传送管理服务610与存储适配器634通信以识别存储系统632。在这些实施例的另一个中,存储系统通信组件614请求提供对用于供应虚拟存储资源的资源的访问的可用的存储系统632的标识;例如,存储系统通信组件614可请求能够创建和存储被分配了指定量的物理盘驱动器空间的虚拟盘的所有存储系统632的列举。
一些实施例中,供应新的虚拟存储资源。其他实施例中,将已有的虚拟存储资源从一个主计算装置106e重新分配给第二主计算装置106f。其他实施例中,通过将已有的虚拟存储资源的内容拷贝到新的虚拟存储资源来供应该新的虚拟存储资源。在这些实施例的一个中,克隆已有的虚拟存储资源。
一些实施例中,短期供应新的虚拟存储资源。在这些实施例的一个中,例如,主计算装置106e可请求供应额外的虚拟存储资源以便支持临时要求额外资源(例如,额外的虚拟盘空间)的虚拟机。在这些实施例的另一个中,虚拟机可能已临时超过其所分配的对先前供应的虚拟存储资源的使用或者开始执行将导致虚拟机超过所分配的资源的进程。在这些实施例的另一个中,可短期提供虚拟存储资源以支持要求额外资源的虚拟机。
在一些实施例中,当供应虚拟存储资源时,存储传送管理服务610接收实现n_port标识虚拟化的请求。在这些实施例的一个中,该请求包括给在计算装置上执行的虚拟机分配的虚拟主总线适配器的标识。在这些实施例又一个中,存储传送管理服务610接收对所供应的虚拟存储资源的访问的请求。在这些实施例的另一个中,存储传送管理服务610接收为虚拟机166供应虚拟存储资源的请求。在这些实施例的另一个中,存储传送管理服务610给虚拟主总线适配器分配唯一的标识符。在这些实施例的另一个中,存储传送管理服务610给第一计算装置106e传输该唯一的标识符的标识。在这些实施例的另一个中,存储传送管理服务610向存储系统632传输虚拟主总线适配器的唯一标识符。在一些这样的实施例中,存储传送管理服务610向交换结构620中的交换机传输虚拟主总线适配器的唯一标识符的标识以便包含在允许虚拟机166和存储系统632的访问控制列表中。其他实施例中,存储系统632向虚拟主总线适配器提供对所供应的虚拟存储资源的访问。进一步的实施例中,虚拟主总线适配器与存储系统632通信以便向在第一计算装置106e上执行的虚拟机提供对虚拟存储资源的访问。
一些实施例中,存储传送管理服务610接收供应虚拟存储资源的请求,识别能够提供所请求的虚拟存储资源的存储系统632以及引导该虚拟存储资源的供应。在这些实施例的一个中,存储系统通信组件614经由存储系统适配器634向存储系统632传输创建虚拟存储资源的指令。在这些实施例的另一个中,存储系统632经由存储系统适配器634向存储系统通信组件614传输所供应的虚拟存储资源的标识。
一些实施例中,在创建了虚拟机存储资源640后,存储传送管理服务610与存储系统适配器634通信以请求存储系统632给主计算装置的一个或多个端口分配新的存储资源640。在这些实施例的一个中,这被称为逻辑单元号(LUN)屏蔽和映射。在这些实施例又一个中,要求存储系统632返回识别所分配的虚拟存储资源640所必需的信息。在这些实施例的另一个中,主计算装置106e接收存储传送管理服务610的将虚拟存储资源640连接到合适的虚拟机的请求。其他实施例中,存储传送管理服务610通过发出SCSI查询命令来检索存储标识的各种模式页来接收所供应的存储资源的标识。在这些实施例的一个中,使用该信息,存储传送管理服务经由存储系统适配器634将模式页中的标识与存储系统632中所创建的虚拟存储资源640相关联。
存储传送管理服务610向存储系统632传输第一计算装置上至少一个网络端口的标识以便与虚拟存储资源关联(704)。一个实施例中,供应虚拟存储资源的请求包括至少一个网络端口的标识。又一个实施例中,存储传送管理服务610向存储系统632传输与在第一计算装置106e上执行的虚拟机关联的虚拟端口的标识。又一个实施例中,存储传送管理服务610向存储系统632传输与在第一计算装置106e上执行的虚拟机关联的物理端口的标识。
一些实施例中,存储传送管理服务610将交换结构620配置为允许主计算装置106访问存储系统632。这些实施例的一个中,结构管理组件616在交换结构的至少一个交换机上产生访问控制列表,所述访问控制列表包括存储系统632的至少一个网络端口的标识和计算装置上至少一个网络端口的标识。在这些实施例的另一个中,结构管理组件616修改已有的访问控制列表以包括计算装置上至少一个网络端口的标识。在这些实施例的另一个中,结构管理组件616修改已有的访问控制列表以包括存储系统632上至少一个网络端口的标识。
存储传送管理服务610向第一计算装置传输检索所供应的虚拟存储资源的标识和存储系统上至少一个网络端口的标识的指令(706)。一个实施例中,第一计算装置106e接收已经为由第一计算装置106e执行的虚拟机166供应虚拟存储资源的通知。在又一个实施例中,第一计算装置106e从存储传送管理服务610接收供应虚拟存储资源的存储系统632的标识。在又一个实施例中,第一计算装置106e接收请求更新可利用的存储资源的列举的指令。又一个实施例中,存储传送管理服务610向代理计算装置106a传输重定向到第一计算装置106e的指令。
一些实施例中,第一计算装置106e接收请求可用的虚拟存储资源的列举的指令。在这些实施例的一个中,第一计算装置106e向存储适配器634传输对可用的虚拟存储资源的请求。在这些实施例的另一个中,第一计算装置106e向存储区域网络630传输对可用的虚拟存储资源的请求。在这些实施例的另一个中,第一计算装置106e向交换结构620传输对可用的虚拟存储资源的请求。在这样的实施例中,交换结构620可检索访问控制列表的列举,所述访问控制列表列出第一计算装置106e、或第一计算装置106e的网络端口、或由第一计算装置106e执行的虚拟机166的网络端口,以及向第一计算装置106e提供第一计算装置106e可访问的存储系统632的列举。
一个实施例中,第一计算装置106e建立到所识别的存储系统632的至少一个端口的连接。又一个实施例中,第一计算装置106从交换结构620请求建立到所识别的存储系统632的至少一个端口的连接。又一个实施例中,交换结构620的至少一个交换机建立所识别的第一计算装置的至少一个网络端口和所识别的存储系统的至少一个网络端口之间的连接。又一个实施例中,第一计算装置106e向虚拟机166提供对所供应的虚拟存储资源的访问。
存储传送管理服务610接收从第一计算装置向第二计算装置迁移虚拟机的指示(708)。在一个实施例中,存储传送管理服务610接收迁移虚拟机166的请求。在又一个实施例中,存储传送管理服务610从代理计算机106a接收该请求。在又一个实施例中,存储传送管理服务610从虚拟机迁移组件接收该请求。
存储传送管理服务610向存储系统632传输第二计算装置上至少一个网络端口的标识以便与虚拟存储资源关联(710)。一个实施例中,存储传送管理服务610向交换结构620传输第二计算装置上的至少一个网络端口的标识以便与虚拟存储资源相关联。又一个实施例中,存储传送管理服务610与交换结构620中至少一个交换机通信以产生或修改允许存储系统632和第二计算装置的至少一个网络端口之间的通信的访问控制列表。又一个实施例中,存储传送管理服务610删除存储系统632与所识别的第一计算装置上的网络端口之间的关联。又一个实施例中,响应于接收迁移虚拟机的请求,存储传送管理服务610向存储系统632传输至少一个网络端口的标识。
存储传送管理服务610向第二计算装置传输所供应的虚拟存储资源的标识和存储系统上至少一个网络端口的标识(712)。一个实施例中,响应于所接收的所供应的虚拟存储资源的标识,第二计算装置106f建立与存储系统632的连接以访问虚拟存储资源。又一个实施例中,响应于所接收的存储系统上至少一个网络端口的标识,第二计算装置106f建立与存储系统632的连接以访问虚拟存储资源。又一个实施例中,第二计算装置106f从交换结构620请求建立到存储系统632的连接。又一个实施例中,第二计算装置106f向虚拟机166b提供对虚拟存储资源的访问。一些实施例中,第二计算装置106f例如,通过制作存储系统632上所存储的虚拟盘的本地副本,获得虚拟机166b可以在其上执行的虚拟存储资源的副本。其他实施例中,第二计算装置106f可通过网络104(其可包括交换结构620)而不是制作虚拟存储资源的本地副本来请求存储在虚拟存储资源640上的数据。
现参考图8,流程图描述了用于在通信协议之间动态转换的方法的一个实施例。总的来说,该方法400包括由存储传送管理服务将存储区域网中的存储系统配置为根据第一通信协议与执行虚拟机的第一物理计算装置通信,该存储系统向虚拟机提供对虚拟存储资源的访问(802)。该方法包括由存储传送管理服务接收从第一物理计算装置向第二物理计算装置迁移虚拟机的请求(804)。该方法包括由存储传送管理服务将存储系统配置为根据第二通信协议与第二物理计算装置通信(806)。该方法包括由存储传送管理服务向第二物理计算装置传输为虚拟机提供对虚拟存储资源的访问的存储系统的标识(808)。
现参考图8,更具体地,存储传送管理服务610将存储区域网络中存储系统配置为根据第一通信协议与执行虚拟机的第一物理计算装置通信,该存储系统向虚拟机提供对虚拟机存储资源的访问(802)。一个实施例中,主计算装置通信组件612请求由第一物理计算装置106e支持的通信协议的标识。又一个实施例中,存储系统通信组件614请求由存储系统632支持的通信协议的标识。又一个实施例中,存储系统通信组件614向存储系统适配器634传输对该标识的请求。又一个实施例中,存储传送管理服务610识别由第一计算装置106e和由存储系统632都支持的通信协议。又一个实施例中,存储系统通信组件614识别由第一计算装置106e和由存储系统632都支持的通信协议。
一个实施例中,存储系统通信组件614将存储系统632配置为在提供对虚拟存储资源640的访问中根据第一通信协议与第一物理计算装置106e通信。又一个实施例中,存储系统通信组件614向存储适配器634传输存储系统632的标识、第一物理计算装置106e上的至少一个网络端口的标识和在与第一物理计算装置106e通信中使用的通信协议的标识。
存储传送管理服务610接收从第一物理计算装置向第二物理计算装置迁移虚拟机的请求(804)。一个实施例中,主计算装置通信组件612接收迁移虚拟机的请求。在又一个实施例中,存储传送管理服务610接收迁移进程已开始的标识。又一个实施例中,虚拟机的迁移依赖于存储系统632向第二物理计算装置106f提供对虚拟存储资源访问的能力;例如,虚拟存储资源可能是虚拟盘,虚拟机166在所述虚拟盘上执行,并且如果没有该虚拟盘,则虚拟机166不应该执行。
存储传送管理服务610将存储系统配置为根据第二通信协议与第二物理计算装置通信(806)。一个实施例中,存储传送管理服务610从第二物理计算装置106f请求由第二物理计算装置106f支持的至少一个通信协议的标识。又一个实施例中,主计算装置通信组件612从第二物理计算装置106f请求由第二物理计算装置106f支持的至少一个通信协议的标识。又一个实施例中,存储传送管理服务610确定第二物理计算装置106支持与由第一计算装置支持的通信协议不同的通信协议。又一个实施例中,存储系统通信组件614从主计算装置通信组件612接收向第二物理计算装置迁移虚拟机的通知。又一个实施例中,存储系统通信组件614接收由第二物理计算装置106f支持的通信协议的标识。
在一个实施例中,存储传送管理服务610从存储系统632请求由存储系统632支持的通信协议的列举。在又一个实施例中,存储系统通信组件614从存储系统632请求由存储系统632支持的通信协议的列举。又一个实施例中,存储传送管理服务610确定存储系统632支持由第二物理计算装置106f支持的通信协议。
一些实施例中,计算装置用于与存储系统632通信的通信协议是存储协议。在这些实施例的一个中,存储协议是基于光纤通道的协议;例如,存储协议可以是光纤通道协议(其是光纤通道上的SCI的接口协议)或者IP之上的光纤通道(Fibre Channel over IP)协议,其提供隧道方式并在互联网工程任务组(IETF)文档RFC3821中进行定义。在这些实施例的另一个中,存储协议是iSCSI协议。
存储传送管理服务610向第二物理计算装置传输为虚拟机提供对虚拟存储资源的访问的存储系统的标识(808)。一个实施例中,主计算装置通信组件612向第二物理计算装置106f传输为虚拟机提供对虚拟存储资源的访问的存储系统的标识。又一个实施例中,主计算装置通信组件612向第二物理计算装置106f传输用于与存储系统632通信的通信协议的标识。又一个实施例中,主计算装置通信组件612向第二物理计算装置106f传输存储系统632支持由第二物理计算装置106f使用的缺省通信协议的确认。
一个实施例中,结构管理组件616将由交换结构620中的交换机存储的访问控制列表配置为包括第二物理计算装置106f的至少一个网络端口的标识。又一个实施例中,存储传送管理服务610向代理服务器106a传输向第二物理计算装置106f迁移虚拟机的标识。在又一个实施例中,存储传送管理服务610将虚拟机迁移到第二物理计算装置106f。一些实施例中,在虚拟机继续执行的同时进行迁移;这可以被称为实时迁移(live migration)。其他实施例中,在已经保存了虚拟机的执行状态并且终止虚拟机的执行之后进行迁移。在进一步的实施例中,存储传送管理服务610停止由第一物理计算装置106e对存储系统632提供的虚拟存储资源的访问。在这些实施例的一个中,存储传送管理服务610经由存储系统适配器634向存储系统632传输第一物理计算装置106e或第一物理计算装置106e的网络端口不再被授权访问虚拟存储资源的指示。在这些实施例的另一个中,存储传送管理服务610经由结构管理组件616向交换结构620中的交换机传输从将第一物理计算装置106e与存储系统632关联的访问控制列表删除第一物理计算装置106e或第一物理计算装置106e的网络端口的指示。
在虚拟机从一个物理计算装置106e迁移到第二物理计算装置106e的一些实施例中,在提供不同功能和支持不同通信协议的异构机器之间进行迁移。在这些实施例的一个中,此处所描述的方法和系统提供用于动态转换由虚拟机访问的存储系统上的通信协议配置的功能,从而改善了迁移过程。
现参考图9A,流程图描述了用于在云计算环境中从存储系统检索数据的方法的一个实施例。该方法500包括由接口对象从计算装置接收由存储系统供应虚拟存储资源的请求(902)。该方法包括由接口对象从存储系统接口对象请求供应虚拟存储资源(904)。该方法包括由接口对象从存储系统接口对象接收所供应的虚拟存储资源的标识(906)。该方法包括访问接口转换文件以将所供应的虚拟存储资源的标识从由存储系统接口对象实现的专用格式转换为标准格式,所述接口转换文件将多个专用格式的每一个与标准格式相映射(908)。该方法包括响应于所接收的请求来向计算装置传输经转换的标识(910)。
一些实施例中,存储传送管理服务610接收供应虚拟存储资源的请求502。在这些实施例的一个中,存储传送管理服务610将该请求传输到存储系统通信组件614。在这些实施例的又一个中,作为响应,存储系统通信组件614产生存储系统的标识,所述标识被格式化以用于由代理计算机106b进行处理。在这些实施例的又一个中,例如,存储系统适配器634可能传输供应商专用格式的存储系统632的标识;存储系统通信组件614可将该标识转换为代理计算机100a能处理的格式。
现参考图9A,更具体地,接口对象从计算装置接收由存储系统供应虚拟存储资源的请求(902)。一个实施例中,存储系统通信组件614包括诸如通用SMI-S适配器618的接口对象618。在又一个实施例中,接口对象618从存储系统通信组件614接收供应虚拟存储资源640的请求。在又一个实施例中,接口对象618从存储传送管理服务610接收供应虚拟存储资源640的请求。在又一个实施例中,接口对象618间接或直接从代理计算机100a接收该请求。
该方法包括由接口对象从存储系统接口对象请求供应虚拟存储资源(904)。一个实施例中,接口对象618与所提供的检索关于存储区域网络630中的存储系统632的数据以及向其发出命令的接口对象通信。在又一个实施例中,该接口对象是上文所描述的适配器634。在又一个实施例中,适配器634提供用于与存储系统632进行外部通信的机制,并就此给存储系统632提供接口。在又一个实施例中,存储系统632的供应商或其他提供者创建适配器,所述适配器允许诸如存储传送管理服务610的系统来访问由存储系统632提供的功能。一些实施例中,接口对象618和接口对象634根据用于检索CIM OM数据的协议或根据诸如SMI-S的规范来进行通信。在这些实施例的一个中,接口对象634可以根据由SMI-S的存储系统632的提供者实现的协议来格式化数据。其他实施例中,存储系统632的提供者可能已实现了SMI-S的定制版本。在这些实施例的一个中,例如,提供者可能提供除了SMI-S中的功能之外的额外功能,或者可能规定SMI-S未提到的格式细节。
该方法包括由接口对象从存储系统接口对象接收所供应的虚拟存储资源的标识(906)。一个实施例中,接口对象618从存储系统接口对象634接收所供应的虚拟存储资源的标识906。又一个实施例中,接口对象618从存储系统接口对象634接收所识别的存储系统632的标识。又一个实施例中,接口对象618从存储系统接口对象634接收对于对与存储系统632关联的数据的请求的响应。又一个实施例中,接口对象618从存储系统接口对象634接收对访问由存储系统632提供的功能的请求的响应。又一个实施例中,接口对象618从存储系统接口对象634接收对所传输的用于由存储系统632执行的指令的响应;例如,接口对象618可接收对执行供应虚拟存储资源的指令的确认。一些实施例中,举例来说,接口对象618接收对已为其提供存储证书的实体的认证。其他实施例中,如与图9D相关的下文的进一步的细节中所讨论的,接口对象618接收对存储区域网络630的特性的请求的响应,所述特性例如可用的存储系统、存储节点、池(pool)、虚拟化的存储资源或其他资源的标识。进一步的实施例中,从存储系统接口对象634接收的数据是供应商专用的格式,而且来自不同存储系统632的不同供应商的同一类型的响应可以有不同的格式。
一个实施例中,在供应商SMI-S提供者的实现中可变的范围涉及将存储系统、存储池(storage pool)和存储卷(storage volume)的标识符存储在对标识符的请求的响应中提供的数据模型内的何处。又一个实施例中,尽管大部分被充分记录在SMI_S规范中,但在实践中,在关于哪个属性用于存储盘标识符和存储系统序列号的实现之间仍有很多可变性,所述盘标识符和存储系统序列号都是由存储传送管理服务610为了装置关联的目的而使用的数据。又一个实施例中,可通过使用在接口转换文件中的自定义的设置来配置供应商数据的标准化的标识符的产生。
该方法包括访问接口转换文件以将所供应的虚拟存储资源的标识从由存储系统接口对象实现的专用格式转换为标准格式,所述接口转换文件将多个专用格式的每一个与标准格式相映射(908)。一个实施例中,存储系统632的供应商提供接口转换文件,其是描述如何将数据从供应商专用格式转换为标准格式的可配置的数据文件。又一个实施例中,管理存储传送管理服务610的实体创建一种接口转换文件,其可包括用于由提供者完成的模板,然后存储系统632的提供者完成该接口转换文件使得该接口转换文件包括存储传送管理服务610所请求的数据和接口对象634之间的映射。又一个实施例中,接口转换文件包含用于转换来自存储系统的多个提供者的每一个的数据的多个映射,从而产生了单个文件,其允许存储传送管理服务区610将数据从多个供应商专用格式转换为单个的、通用的格式用于由存储传送管理服务610、存储传送管理服务610的子组件和与其交互的系统进行处理。又一个实施例中,对于存储系统632的提供者和存储传送管理服务610的管理员而言,提供描述如何转换数据的映射而不是要求产生来自存储系统的每个提供者的新的接口对象618是更有效的和更划算的。一些实施例中,接口转换文件是用可扩展标记语言(XML)编写的动态可扩展文件。其他实施例中,当在存储系统632中提供新的或经修改的功能时,存储系统632的提供者可以更新接口转换文件。附录A包括但不限于对与存储系统关联的一些类型信息的描述,供应商可能为其将转换包含在XML转换文件中。
一些实施例中,接口对象618接收对与存储系统关联的数据的请求的响应(该响应是以供应商专用格式被格式化的),然后访问接口转换文件以将数据转换为通用格式。附录A包括描述用于接收来自存储系统接口对象634的供应商专用格式的数据的方法的一个实施例的流程图。
响应于所接收的请求,将经转换的标识传输到计算装置106(910)。一个实施例中,接口对象618将经转换的标识符直接传输到代理计算机100a。又一个实施例中,接口对象618通过将经转换的标识符提供给存储传送管理服务610,所述存储传送管理服务610接着可将该经转换的标识符传输到代理计算机100a,来间接地传输经转换的标识符。一些实施例中,缓存经转换的标识符以备后用。
现参考图9B,框图描述了接口转换文件的一部分的一个实施例。在一个实施例中,接口转换文件512提供将存储装置的标识标准化为通用格式(被称为存储节点标识符,其包含所请求的信息)的方式。如图5B所描述的,在一个实施例中,应用通用的格式化风格;例如该格式用双下划线或其他分隔符来划分数据(VENDOR_MODEL_STORAGE-SYSTEM-SERIAL-NUMBER_STORAGE-DEVICE-IDENTIFER)。
现参考图9C,框图描述了识别与存储系统关联的且可用于由存储传送管理系统610检索的数据的数据模型的一个实施例。一个实施例中,与存储系统关联的数据包括但不限于,标识符、别名、序列号、供应商名称或标识符、型号标识符、至少一个能力的标识和可用功能的标识。又一个实施例中,与存储系统关联的数据包括与该存储系统中存储节点关联的数据,其包括但不限于,节点标识符、系统标识符、别名、序列号、状态、访问控制列表、节点类型、节点大小、节点上已使用的空间、节点上可用的空间、与冗余特性相关联的信息、组标识符和可用功能的标识符。在又一个实施例中,与存储系统关联的数据包括与存储池关联的数据,其包括但不限于,池标识符、系统标识符、别名、父池标识符、池的大小、池中已使用的空间、池中的可用空间、与冗余特性相关的信息、与可用的供应功能的类型关联的信息、缺省配置数据和状态数据。
现参考图9D,流程图描述了用于在云计算环境中从存储系统检索数据的又一个方法的又一个实施例。总的来说,方法515包括由接口对象向存储系统接口对象查询由存储系统提供的资源的列举(920)。该方法包括接收至少一个所列举资源的以专用格式表示的标识(922)。该方法包括访问接口转换文件以便将该标识转换为以标准格式表示的标识,所述接口转换文件将多个专用格式的每一个映射到标准格式(924)。该方法包括接收对至少一个所列举资源的标识的请求(926)。该方法包括用经转换的标识来对该请求进行响应(928)。
现参考图9D,更具体地,接口对象618向存储系统接口对象634查询由存储系统提供的资源的列举(920)。一些实施例中,接口对象618进行发现过程以在存储传送管理服务610请求之前形成可用资源的列举。其他实施例中,接口对象618响应于存储传送管理服务610的请求来进行发现过程。
接口对象618接收至少一个所列举资源的以专用格式表示的标识(922)。如上文结合图9A所描述的,来自存储系统接口对象634的响应可能是供应商专用格式的,不论是否是与标准或规范兼容的供应商。
接口对象618访问接口转换文件来将该标识转换为以标准格式表示的标识,所述接口转换文件将多个专用格式的每一个映射到标准格式(924)。如上所述,在附录A中,接口对象618使用接口转换文件来识别在供应商专用的响应中的数据并产生采用该数据的通用标准格式的标识。
接口对象618接收对至少一个所列举资源的标识的请求(926)。在一个实施例中,接口对象618从存储系统通信组件614接收该请求。在又一个实施例中,接口对象618从存储传送管理服务610接收该请求。
接口对象618使用经转换的标识来对该请求进行响应(928)。一个实施例中,接口对象618将经转换的标识传输到正在请求的实体。又一个实施例中,接口对象618从缓存、数据库或其他存储单元检索经转换的标识并将所检索的经转换的标识传输到请求者。
一些实施例中,此处所描述的方法和系统的实现提供统一的管理接口用于将存储区域网络配置为提供由其他网络上的计算装置访问的虚拟存储资源。在这些实施例的一个中,云计算环境中的系统可包括遍布全球的多个虚拟计算环境。在这些实施例的又一个中,通过使用此处所描述的方法和系统,将存储系统提供者的顾客从不得不忙于伴随虚拟计算环境的管理的管理任务中脱离出来。在这些实施例中,由集中的管理服务处理管理任务,管理成为虚拟化的,这减轻了顾客的管理负担。这些实施例允许云计算环境的用户请求供应而不必亲自考虑执行请求的管理细节。通过将顾客从管理虚拟计算环境的管理任务中解脱出来,例如集中的、自动的虚拟存储管理服务使顾客专注于供应和管理其提供给自己的用户服务和客户的服务,例如对应用、虚拟机和其他资源的访问。
下面示意性的示例展示了此处所描述的方法和系统可以如何用于在云计算环境中由存储传送管理服务自动供应虚拟机。这些示例旨在示意但不限制本发明。
示例1
一个实施例中,存储传送管理系统610经由web服务接口接收来自代表主计算装置106e的代理计算机100a的供应虚拟存储资源640(例如虚拟盘)的请求。又一个实施例中,主计算装置通信组件612接收该请求。又一个实施例中,供应虚拟存储资源640的请求可以作为用于供应在主计算装置106e上执行的虚拟机166b的过程的一部分而出现。在一些实施例中,虚拟存储资源640是虚拟盘。然而,应该理解虚拟存储资源640可以是任何虚拟化的资源,包括上文结合图1A所描述的任何资源。
在一个实施例中,存储传送管理服务610将供应虚拟存储资源640的请求传输到存储系统通信组件614。又一个实施例中,存储系统通信组件614与存储系统适配器634通信以识别可用的提供供应所请求的虚拟存储资源所需的资源的存储系统632。在又一个实施例中,存储系统通信组件614将所识别的存储系统632的标识传输到存储传送管理服务610。在又一个实施例中,存储系统通信组件614将所供应的虚拟存储资源640的标识传输到存储传送管理服务610。又一个实施例中,存储传送管理服务610将存储系统632的标识存储在对代理计算机100a可访问的数据库中。一些实施例中,存储系统通信组件614与存储系统适配器634根据WBEM或其他存储协议进行通信。其他实施例中,存储系统通信组件614从存储适配器634请求与存储系统632关联的CIM OM数据或SMI-S数据。
在一个实施例中,代理计算机100a从主计算装置通信组件612接收存储系统632的标识。在又一个实施例中,代理计算机106a从可用存储系统的数据库检索存储系统632的标识。又一个实施例中,代理计算机100a确认存储系统632能够提供所请求虚拟存储资源。又一个实施例中,代理计算机100a向主计算装置106e传输存储系统632的标识。
在一个实施例中,主计算装置106e向主计算装置通信组件612传输访问对虚拟存储资源640访问的请求。又一个实施例中,主计算装置106e向主计算装置通信组件612传输对虚拟存储资源640的标识的请求。又一个实施例中,主计算装置通信组件612向主计算装置106e传输虚拟存储资源640的标识。
一个实施例中,主计算装置通信组件612向主计算装置106e传输从交换结构620请求该主计算装置106e被授权与其通信的存储系统632的列举的指令。又一个实施例中,主计算装置106e从交换结构620的组件接收该主计算装置106e被授权与其通信的存储系统632的列举。在又一个实施例中,主计算装置106e跨越交换结构620与存储系统632通信以访问虚拟存储资源640。
一个实施例中,主计算装置通信组件612从代理计算机100a接收将虚拟机166b从主计算装置106e迁移到主计算装置106f的请求。又一个实施例中,主计算装置通信组件612从代理计算机100a接收正在将虚拟机166b从主计算装置106e向主计算装置106f迁移的通知。又一个实施例中,主计算装置106e向代理计算机100a和存储传送管理服务610的至少一个传输将虚拟机166b迁移到第二主计算装置106e的请求。在又一个实施例中,主计算装置通信组件612从在代理计算机100a、主计算装置106e和第三主计算装置106f的至少一个上执行的控制操作系统165a接收迁移虚拟机的请求,所述第三主计算装置106f提供对于主计算装置在其上驻留的网络38的管理功能。又一个实施例中,主计算装置通信组件612接收给第二物理计算装置106f分配对虚拟存储资源640的访问的请求。一些实施例中,存储传送管理服务610接收该请求,因为如果没有对虚拟存储资源640的访问,向主计算装置106f迁移虚拟机166b可能出现意外的终止。其他实施例中,在收到迁移的请求或指示后,存储传送管理服务610与存储区域网络和交换结构620中的组件通信,所述组件需要改变对虚拟资源640的访问设置以使得第二计算装置可以访问虚拟存储资源640。
一个实施例中,通过执行主计算装置通信组件612和存储系统通信组件614,存储传送管理服务610将对虚拟存储资源的访问无缝地从第一计算装置转换到第二计算装置。又一个实施例中,通过执行结构管理组件616,存储传送管理服务610将交换结构620配置为允许由执行需要访问虚拟存储资源的虚拟机的物理计算装置对虚拟存储资源640的访问。又一个实施例中,通过提供用于自动更新访问控制列表的功能以及传输使存储系统632和第二计算会话设备建立通信会话和给虚拟机提供对虚拟资源的访问的所需的标识符,存储传送管理服务610提供对在云计算环境中供应和重新供应虚拟资源提供自动的、综合的支持。
现参考图10,框图描述在选择用于执行虚拟机的物理主机中评价历史指标的系统的一个实施例。总的来说,该系统包括多个计算装置、至少一个虚拟机166、池管理组件164a、主机推荐服务1002和分析引擎1006。如上所述,一个或多个计算装置100可与一个或多个其他计算装置100交换关于资源池中可用的处理器和其他物理资源的数据,这允许管理程序来管理分布在多个物理计算装置上的资源池。在一些实施例中,虚拟机166在其上执行的计算装置100被称为物理主机或主机100。池管理组件164a在第一计算装置106上执行并且请求要在其上执行虚拟机166的物理主机100的标识。在一个实施例中,池管理组件164a在云桥服务器402上执行。主机推荐服务1002在第二计算装置106e上执行并且接收对物理主机100的标识的请求。分析引擎1006在第二计算装置106e上执行并且接收来自主机推荐服务1002的对物理主机100的标识的请求。分析引擎1006检索多个指标,所述多个指标包括识别在多个物理主机的每一个上的当前负载水平的第一指标,以及包括识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标。分析引擎1006检索与虚拟机关联的多个指标,所述多个指标包括识别在当前时间段之前的时间段期间内由虚拟机放置在物理主机上的负载水平的至少一个指标。分析引擎1006确定与识别在多个物理主机的每一个上的当前负载水平的第一指标和识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标中的至少一个相关联的优先级。响应于所检索的多个指标和所确定的优先级,分析引擎1006给多个物理主机的每一个分配分数。分析引擎1006向主机推荐服务1002传输要在其上执行虚拟机的多个物理主机100中的一个的标识。
在一些实施例中,管理组件与主机推荐服务1002通信以识别要在其上执行虚拟机166的计算装置。在这些实施例的一个中,主机推荐服务1002将请求传输到分析引擎1006,所述分析引擎1006评价识别可用于执行虚拟机166的物理主机(计算装置100)上的负载水平的当前和历史指标,并将算法应用于所评价的指标以识别用于执行虚拟机166的最优物理主机100。在这些实施例的又一个中,主机推荐服务1002包括允许用户识别要优化哪些特征的功能-例如,是对虚拟机的最大性能进行优化还是对物理主机上虚拟机的最大密度进行优化。在这些实施例的又一个中,该系统包括指标采集服务1004,其提供用于从管理程序、虚拟机和物理主机收集性能数据并基于该性能数据生成指标以用于识别最优物理主机的功能。在这些实施例的又一个中,主机推荐服务1002包括用于使管理员具有定义将要监控哪个管理程序主机的性能数据的能力的功能。在这些实施例的又一个中,主机推荐服务1002包括用于生成关于管理程序和虚拟机性能数据的报告的功能。在进一步的实施例中,主机推荐服务1002包括用于就相对于物理主机的虚拟机放置策略进行推荐的功能。
现参考图10,更具体地,池管理组件请求要在其上执行虚拟机166的物理主机100的标识。在一个实施例中,池管理组件164a请求要向其迁移虚拟机166b的物理主机106f的标识。在又一个实施例中,池管理组件164a请求要在其上供应虚拟机166b的物理主机106f的标识。在一些实施例中,池管理组件164a接收执行虚拟机166的请求。在这些实施例的一个中,池管理组件164a识别与所请求的虚拟机166关联的虚拟机映像。在其他实施例中,池管理组件164a包括向主机推荐服务1002发送对物理主机标识的请求的发送器。
在一个实施例中,管理组件164a被称为池管理组件。在又一个实施例中,管理操作系统165a(其也可以被称为控制操作系统165a)包括管理组件。在一些实施例中,管理组件被称为工具堆栈。在这些实施例的一个中,管理组件是上文结合图1A所述的工具堆栈164。在其他实施例中,管理组件164提供用户接口,所述用户接口用于从诸如管理员的用户接收要供应和/或执行的虚拟机166的标识。在其他实施例中,管理组件164提供用户接口,所述用户接口用于从诸如管理员的用户接收从一个物理机器100向另一个物理机器迁移虚拟机166b的请求。在进一步的实施例中,管理组件164a识别要在其上执行所请求的虚拟机166d的计算装置100f并且指示管理程序161b在所识别的计算装置106f上执行所识别的虚拟机;这样的管理组件也可以被称为池管理组件。
主机推荐服务1002接收对要在其上执行虚拟机166的物理主机100的标识的请求。在一个实施例中,主机推荐服务基于在该请求中包含的信息来检索虚拟机的标识。在又一个实施例中,推荐服务1002在收到对要在其上执行虚拟机166的物理主机100的标识的请求之后执行分析引擎1006。在一些实施例中,例如,主机推荐服务1002可以作为诸如实验室管理程序、供应软件或其他提供管理能力的虚拟化平台的虚拟机管理产品的部分而执行。
在一个实施例中,主机推荐服务包括用于从池管理组件164a接收对要在其上执行虚拟机166的物理主机的标识的请求的接收器。在又一个实施例中,主机推荐服务包括用于从池管理组件164a接收对要向其迁移虚拟机166的物理主机的标识的请求的接收器。在又一个实施例中,主机推荐服务1002包括用于接收对要在其上执行虚拟机166的物理主机的标识的请求的用户接口。在又一个实施例中,主机推荐服务1002包括用于接收对要向其迁移虚拟机166的物理主机的标识的请求的用户接口。
在一个实施例中,主机推荐服务1002包括用于接收执行虚拟机所需的特征的标识的定制接口。在又一个实施例中,主机推荐服务1002包括用于接收对应用于给多个物理主机的每一个分配分数的算法的定制的标识的定制接口。在又一个实施例中,主机推荐服务1002与给用户提供工作负载分布和优化报告的报告服务通信;所述报告服务可以,例如包括但不限于,用于在用户接口中显示报告、通过电子邮件传输报告、实施真正简单的联合以分发报告以及提供允许用户询问最优化推荐和工作负载报告的应用编程接口(API)的功能。
在一个实施例中,主机推荐服务1002执行分析引擎1006。在又一个实施例中,分析引擎应用算法来生成分配给多个物理主机的至少一个的分数。在又一个实施例中,分析引擎1006为多个物理主机的每一个确定物理主机是否包括执行虚拟机所需的特征。在又一个实施例中,分析引擎1006包括优化主机/客户工作负载的进程。在又一个实施例中,分析引擎1006包括生成对要在其上执行虚拟机的物理主机的推荐的服务。
分析引擎1006在第二计算装置100c上执行并且与主机推荐服务1002通信。在一些实施例中,分析引擎1006是主机推荐服务1002的组件。在其他实施例中,分析引擎1006在第四计算装置106g上执行。
分析引擎1006检索多个指标,所述多个指标包括识别在多个物理主机的每一个上的当前负载水平的第一指标,以及包括识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标。分析引擎1006检索与虚拟机关联的多个指标,所述多个指标包括识别在当前时间段之前的时间段期间内由虚拟机放置在物理主机上的负载水平的至少一个指标。在一个实施例中,分析引擎1006包括用于访问数据库1016并从数据库1016检索多个指标的数据库交互组件。
分析引擎1006确定与识别在多个物理主机的每一个上的当前负载水平的第一指标和识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标中的至少一个相关联的优先级。在一个实施例中,优先级识别在评价和给物理主机分配分数中优先于其他时间段的时间段。在又一个实施例中,优先级识别在评价和给物理主机分配分数中优先于其他资源的资源类型的可用性级别。响应于所检索的多个指标和所确定的优先级,分析引擎1006给多个物理主机的每一个分配分数。在一个实施例中,分析引擎1006将算法应用于至少一个指标以生成分配给多个物理主机中的一个的分数。在又一个实施例中,分析引擎1006向主机推荐服务1002传输要在其上执行虚拟机的多个物理主机100中的一个的标识。
在一个实施例中,指标采集服务1004采集性能数据并使用该性能数据来生成多个指标,所述多个指标包括识别在多个物理主机的每一个上的当前负载水平的第一指标,以及包括识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标。在又一个实施例中,指标采集服务1004采集性能数据并使用该性能数据来生成与虚拟机关联的多个指标,所述多个指标包括识别在当前时间段之前的时间段期间内由虚拟机放置在物理主机上的负载水平的至少一个指标。在又一个实施例中,指标采集服务1004与主机推荐服务1002通信。
在一个实施例中,指标采集服务1004将所采集的指标存储在数据库1016中。在又一个实施例中,指标采集服务1004将数据存储在兼容ODBC的数据库中。例如,数据库1016可以作为由位于加利福尼亚州RedwoodShores的Oracle公司出品的ORACLE数据库、作为由位于华盛顿州Redmond的微软公司出品的Microsoft ACCESS数据库或Microsoft SQL服务器数据库而被提供。
在一些实施例中,指标采集服务1004与单独的指标生成服务(未示出)通信。在这些实施例的一个中,指标生成服务查询多个物理主机100的至少一个以检索包含负载水平的标识的性能数据。在这些实施例的又一个中,指标采集服务1004基于由指标生成服务检索的性能数据来为多个物理主机的每一个生成多个指标。在其他实施例中,指标采集服务1004向多个物理主机的至少一个查询负载水平的标识。在这些实施例的又一个中,指标采集服务1004为多个物理主机的每一个生成多个指标。
在一些实施例中,指标采集服务1004包括通信组件1010、数据收集组件1012和数据收集管理器1014。在这些实施例的一个中,通信组件1010提供允许在第一计算装置上执行的数据收集组件1012与在第二计算装置上执行的第二数据收集组件1012通信的功能。在这些实施例的又一个中,数据收集管理器1014识别在多个计算装置100中的计算装置106f上执行的管理程序的类型。在这些实施例的又一个中,数据收集管理器1014响应于所识别的管理程序类型来生成数据收集组件1012。
在这些实施例的一个中,数据收集组件1012与至少一个管理程序通信以检索在计算装置池中的计算装置(例如计算装置106f)上执行的至少一个虚拟机的性能数据的标识;例如,数据收集组件1012可以向至少一个管理程序查询由管理程序执行的每个虚拟机166的性能数据的标识。在这些实施例的一个中,数据收集组件1012周期性地向至少一个管理程序161询问由管理程序161执行的至少一个虚拟机166的性能数据。在这些实施例的又一个中,数据收集组件1012在数据库1016中存储所检索的性能数据。在这些实施例的又一个中,指标采集服务1004执行多个数据收集组件1012,该多个数据收集组件1012的每一个与不同类型的管理程序通信并从其检索性能数据。
在一些实施例中,数据收集组件1012在数据库1016中存储所收集的数据。在这些实施例的一个中,该系统包括队列管理组件,用于管理将要被添加到数据库的数据队列。在这些实施例的又一个中,该系统包括队列工作组件(queue worker component),用于从将要被添加到数据库的数据队列中检索数据并且将所检索的数据存储在数据库1016中。
在一些实施例中,指标采集服务1004是主机推荐服务1002的部分。在其他实施例中,指标采集服务1004与主机推荐服务1002在同一计算装置100上执行。在其他实施例中,指标采集服务1004在与主机推荐服务1002在其上执行的计算装置不同的计算装置106g上执行。在这些实施例的一个中,例如,在网络中可以有多个指标采集服务1004。在这些实施例的又一个中,指标采集服务1004在其上执行的计算装置100也可以被称为数据收集主机100。在这些实施例的又一个中,可以存在收集性能数据以及对数据收集组件1012收集性能数据进行协调的数据收集主机100a,和在其他数据收集主机100b上执行的指标采集服务1004;这样的数据收集主机100a可以被称为主数据收集主机,而其他数据收集主机被称为从属数据收集主机。在这些实施例的又一个中,主数据收集主机识别将要被监控的管理程序并确保从属数据收集主机继续收集所识别的管理程序的性能数据。
在一些实施例中,指标采集服务1004的主数据收集组件1012a通过如上文结合图1A-1H所述内部网或互联网与从属数据收集组件1012b通信。在其他实施例中,主数据收集组件1012a查询数据库1016以识别至少一个从属数据收集组件1012b、将要被监控和优化的管理程序池以及管理程序池和数据收集器之间的关系;主数据收集组件1012a给数据收集主机分配任何未被分配的管理程序池。在其他实施例中,主数据收集组件102a监控从属数据收集主机的状态并且在多个数据收集主机中的一个终止数据收集的情况下重新分布工作负载。在其他实施例中,多个从属数据收集组件1012b监控主数据收集组件1012a的状态,并且在主数据收集组件1012a停止对状态请求的响应的情况下,从属数据收集组件1012b从多个从属数据收集组件1012b中识别替换的主数据收集组件1012a。在这些实施例的一个中,数据收集主机可提供主从功能。在进一步的实施例中,数据收集主机是互相信任的域的成员。
现参考图11,流程图描述了在选择用于执行虚拟机的物理主机中评价历史指标的方法的一个实施例。总的来说,该方法包括由主机推荐服务接收虚拟机的标识和对要在其上执行该虚拟机的物理主机的标识的请求(1102)。该方法包括由与主机推荐服务通信的分析引擎检索可用于执行虚拟机的多个物理主机的每一个的多个指标,所述多个指标包括识别在多个物理主机的每一个上的当前负载水平的第一指标,以及包括识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标(1104)。该方法包括由分析引擎检索与虚拟机关联的多个指标,所述多个指标包括识别在当前时间段之前的时间段期间内由虚拟机放置在物理主机上的负载水平的至少一个指标(1106)。该方法包括由分析引擎确定与识别在多个物理主机的每一个上的当前负载水平的第一指标和识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标中的至少一个相关联的优先级(1108)。该方法包括由主机推荐服务响应于所检索的多个指标和所确定的优先级,给多个物理主机的每一个分配分数(1110)。该方法包括由主机推荐服务传输将要在其上执行虚拟机的多个物理主机中的一个的标识(1112)。在一些实施例中,提供具有用于在选择执行虚拟机的物理主机时评价历史指标的可执行代码的计算机可读介质。
现参考图11,更具体地,主机推荐服务接收虚拟机的标识和对要在其上执行该虚拟机的物理主机的标识的请求(1102)。在一个实施例中,主机推荐服务1002从池管理组件164来接收该标识和请求,池管理组件164管理在池中的多个物理计算装置上的工作负载。在又一个实施例中,主机推荐服务1002通过用户接口来接收该标识和请求,例如通过内部网或互联网向用户提供对管理功能访问的接口。在又一个实施例中,主机推荐服务1002接收对用于执行该虚拟机的虚拟机映像的标识。在又一个实施例中,主机推荐服务1002接收执行该虚拟机所期望的资源的标识。
分析引擎检索可用于执行虚拟机的多个物理主机的每一个的多个指标,所述多个指标包括识别在多个物理主机的每一个上的当前负载水平的第一指标,以及包括识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标(1104)。在一个实施例中,分析引擎1006评价多个指标并且基于该评价来给物理主机分配分数。在又一个实施例中,分析引擎1006访问数据库1016以检索多个指标。在一些实施例中,多个物理主机可以用于执行虚拟机。在这些实施例的一个中,通过给所有可能的主机打分并推荐具有最高分的主机来推荐最优的物理主机;所述分数是使用指标数据和许多可配置标准来计算的。
在一些实施例中,分析引擎1006检索可用于执行所识别的虚拟机的至少一个物理主机的标识。在这些实施例的一个中,分析引擎1006检索该至少一个物理主机的特征的标识;例如,特征的标识可包括但不限于,中央处理单元(CPU)的数量、CPU的处理速度的标识、主机上可用的存储量的标识以及由主机提供的物理网络接口的数量的标识。
在一个实施例中,分析引擎1006检索包含识别多个物理主机的每一个上的当前负载水平的第一指标的多个指标。在又一个实施例中,当前负载水平可包括在由多个物理主机的每一个提供的多个资源中的资源上的负载水平。在又一个实施例中,用户可将分类的时间段的定义指定为当前时间段。在又一个实施例中,例如,管理员可将分析引擎1006配置为检索识别在收到请求之前的5分钟期间在多个物理主机的每一个上的平均负载水平的第一指标;这样的时间间隔可以被称为当前时间段。
在一个实施例中,分析引擎1006检索包含识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标的多个指标。在又一个实施例中,负载水平可包括在由多个物理主机的每一个提供的多个资源中的资源上的负载水平。在又一个实施例中,用户可将分类的时间段的定义指定为当前时间段之前的时间段。在又一个实施例中,例如,管理员可将分析引擎1006配置为检索识别在收到请求前5分钟之前的30分钟期间在多个物理主机的每一个上的平均负载水平的第二指标;这样的时间间隔可以被称为最近时间段。
在一个实施例中,分析引擎1006检索包含第三指标的多个指标,所述第三指标识别在第二指标识别多个物理主机的每一个上的负载水平的时间段之前的时间段期间内在多个物理主机的每一个上的负载水平。在又一个实施例中,分析引擎1006检索识别多个物理主机的每一个上的历史的负载水平的第三指标。在一些实施例中,分析引擎1006检索被配置为识别比第二指标在大体上更长的时间段内的平均负载水平的第三指标。在其他实施例中,分析引擎1006检索被配置为识别与第二指标在大体上不同的时间段内的平均负载水平的第三指标。在其他实施例中,诸如第二指标一样,用户可将分类的时间段的定义指定为当前时间段之前的时间段。在这些实施例的一个中,例如,管理员可将分析引擎1006配置为检索识别在收到请求前5分钟之前的24小时期间在多个物理主机的每一个上的平均负载水平的第三指标;这样的时间间隔可以被称为历史时间段。
在一个实施例中,多个指标包括识别物理计算装置上的中央处理单元(CPU)的利用率的阈值的指标;例如,如果在分析引擎1006评价该计算装置期间该计算装置具有高的或临界的CPU利用水平,那么分析引擎1006可确定该计算装置不能执行额外的虚拟机。在又一个实施例中,多个指标包括识别物理计算装置上的可用存储器的阈值的指标;例如,如果在分析引擎1006评价该计算装置期间内,该计算装置具有高水平的或临界水平的不可用存储器,那么分析引擎1006可确定该计算装置不能执行额外的虚拟机。在又一个实施例中,多个指标包括识别物理计算装置对网络资源的利用率的阈值的指标;例如,如果在分析引擎1006评价该计算装置期间内,该计算装置具有高水平的或临界水平的网络接口利用率,那么分析引擎1006可确定该计算装置不能执行额外的虚拟机。在又一个实施例中,多个指标包括识别物理计算装置上的物理块装置的利用率(盘利用率)的阈值的指标;例如,如果在分析引擎1006评价该计算装置期间内,该计算装置具有高水平的或临界水平的盘利用率,那么分析引擎1006可确定该计算装置不能执行额外的虚拟机。在一些实施例中,分析引擎1006评价第一计算装置的指标并且确定第一计算装置能执行额外的虚拟机但具有与比第二计算装置更低的分数关联的资源利用率水平;例如,第一计算装置可具有比第二计算装置更接近于阈值的资源利用率水平(例如,被分类为中或高的水平),该第二计算装置可具有较低水平的资源利用率。在这些实施例的一个中,对于该指标,分析引擎1006可以给第一计算装置分配不同的(例如,较低的)分数。
分析引擎检索与虚拟机关联的多个指标,所述多个指标包括识别在当前时间段之前的时间段期间内由虚拟机放置在物理主机上的负载水平的至少一个指标(1106)。在一些实施例中,分析引擎1006访问数据库1016以检索多个指标。
在一个实施例中,多个指标包括识别虚拟机166对中央处理单元(CPU)的利用率水平的指标。在又一个实施例中,多个指标包括识别虚拟机166对存储器的利用率水平的指标。在又一个实施例中,多个指标包括识别虚拟机166对网络资源的利用率水平的指标。在又一个实施例中,多个指标包括识别虚拟机166对盘的利用率水平的指标。在一些实施例中,多个指标包括识别由虚拟机所需的资源的平均量的指标;例如,指标可识别但不限于,在先前执行虚拟机的期间内由该虚拟机访问的可用存储器的平均量、磁盘利用率的平均量、CPU利用率的平均量以及网络资源利用率的平均量。
在一些实施例中,主机推荐服务1002执行定制接口1008,诸如管理员的用户可使用该接口来配置要应用于多个指标的一个或多个权重,以及由此在确定是否将物理主机识别为要在其上执行虚拟机的计算装置时,定制归属于多个物理主机的多个指标的每一个的重要程度。在这些实施例的一个中,定制接口1008提供允许用户指定要分配给在其期间内生成至少一个指标的时间段的优先级的功能;例如,定制接口1008可包括接口元素,其允许用户指定在历史间段期间生成的指标要比在当前时间段期间生成的指标分配更高的优先级。在这些实施例的又一个中,定制接口1008提供允许用户指定权重以应用于给在用户指定的时间段期间所生成的指标打分。
在其他实施例中,主机推荐服务1002执行定制接口,诸如管理员的用户使用该接口能配置一个或多个规则以应用于为物理主机确定分数。在这些实施例的一个中,例如,规则可指定物理主机应该为虚拟机提供的可用资源的数量-例如,存储器、盘利用率或CPU利用率。在其他实施例中,主机推荐服务1002执行定制接口,诸如管理员的用户使用该接口能配置一个或多个优化首选项。在这些实施例的一个中,例如,用户可指定主机推荐服务1002应该给提供用于最大化虚拟机性能的资源的物理主机分配更高的分数(其可以被称为最大化性能优化模式)。在这些实施例的又一个中,例如,用户可指定主机推荐服务1002应该给为多个虚拟机提供资源的物理主机分配更高的分数,最小化管理多个物理主机上的总工作负载所需的总的物理主机的数量(其可以被称为最大化密度优化模式)。在这些实施例的又一个中,例如,用户可指定在其中主机推荐服务1002应根据优化模式操作的时间段。在这些实施例的又一个中,例如,用户可指定在其中主机推荐服务1002应根据第一优化模式操作的第一时间段和在其中主机推荐服务1002应根据第二优化模式操作的第二时间段。
分析引擎确定与识别在多个物理主机的每一个上的当前负载水平的第一指标和识别在当前时间段之前的时间段期间内在多个物理主机的每一个上的负载水平的第二指标中的至少一个相关联的优先级(1108)。在一个实施例中,分析引擎1006访问由主机推荐服务1002存储的且识别要应用于指标的优先级的数据的数据库。在又一个实施例中,例如,在给提供资源(例如盘空间或CPU利用率)的物理主机分配分数中,分析引擎1006检索识别要应用于可用资源利用率水平(例如可用盘空间的水平或者可用的磁盘利用率水平)的权重的数据;分析引擎1006基于对由物理主机提供的资源的可用性水平的评价来为该物理主机生成初始分数,确定权重与资源的可用性水平相关联,以及基于该权重为该物理主机修改初始分数。在又一个实施例中,作为又一个示例,分析引擎1006可检索要应用于时间段的权重,在该时间段内指标识别物理主机的至少一个上的负载水平和由物理主机提供的资源;例如,分析引擎1006为物理主机生成初始分数,确定所评价的指标识别时间段(例如当前时间段或历史时间段)期间的负载水平并且权重与该指标相关联,以及根据所确定的权重修改初始分数。
在一些实施例中,分析引擎1006检索在识别要执行虚拟机的物理主机中要应用的算法的标识。在这些实施例的一个中,例如,分析引擎1006检索为提供用于最大化虚拟机性能的资源的潜在的主机生成较高的分数的算法的标识。在这些实施例的又一个中,作为又一个示例,分析引擎1006检索算法的标识,该算法为能够执行多个虚拟机、导致每个物理主机上虚拟机的最大密度以及减少管理工作负载总量的物理主机数量的潜在主机生成较高的分数。在其他实施例中,分析引擎1006在确定执行虚拟机166所需的资源利用率水平时分析多个指标中的指标和分配给该指标的权重。
分析引擎响应于所检索的多个指标和所确定的优先级,给多个物理主机的每一个分配分数(1110)。在一个实施例中,分析引擎1006分析多个指标中的每个指标并且给多个物理主机中的每一个分配分数。在又一个实施例中,分析引擎1006为多个物理主机中的每一个确定物理计算装置是否包括执行虚拟机166所需的存储库。在又一个实施例中,分析引擎1006为多个物理主机中的每一个确定物理计算装置是否包括执行虚拟机166所需的可用存储器水平。在又一个实施例中,分析引擎1006为多个物理主机中的每一个确定物理计算装置是否包括执行虚拟机166所需的可用CPU的水平。在一些实施例中,分析引擎1006评价池配置数据、主机配置数据和多个指标以确定多个物理主机的每一个的分数。
在一个实施例中,分析引擎1006识别用于执行虚拟机的多个物理主机中的第一物理主机,该第一物理主机具有比多个物理主机中的第二物理主机更高的分数。在又一个实施例中,分析引擎1006识别用于执行虚拟机的多个物理主机中的第一物理主机,该第一物理主机包括执行虚拟机所需的至少一个特征,其由与优先考虑高水平的该至少一个特征的可用性的指标相关联的权重所识别的。在一些实施例中,分析引擎1006识别用于执行虚拟机的多个物理主机中的第一物理主机,该第一物理主机执行第二虚拟机。在这些实施例的一个中,分析引擎1006识别执行多个虚拟机的第一物理主机,以最大化在多个物理主机中的每个物理主机上虚拟机的密度。
在一些实施例中,分析引擎1006识别执行多个处理器或具有一个或多个核的并行处理器的物理主机。在这些实施例的一个中,例如,物理主机可以是如上文结合图1A-1H描述的计算装置100。在这些实施例的又一个中,分析引擎1006识别要在其上执行虚拟机的多个处理器中的处理器。在这些实施例的又一个中,分析引擎1006识别要用其执行虚拟机的多核处理器的一部分。在这些实施例的又一个中,分析引擎1006识别用于执行虚拟机的物理主机上可用处理器的子集。在其他实施例中,分析引擎1006识别物理主机和用于执行虚拟机的物理主机上可用处理器的子集。在其他实施例中,分析引擎1006接收物理主机的标识,实现此处所描述的方法,并且识别要在其上执行虚拟机的多个处理器中的处理器。
在一个实施例中,分析引擎1006选择用于执行虚拟机的物理主机,使得工作负载被大体上均匀地分布在多个物理计算装置100上以便最大化每个虚拟机的性能。在又一个实施例中,分析引擎1006选择用于执行虚拟机的物理主机,使得多个计算装置中的每个物理主机寄载与该物理主机的资源能支持的虚拟机一样多的虚拟机,以便最小化物理主机的数量。在一些实施例中,分析引擎1006执行定制接口,诸如管理员的用户能使用该接口来选择分析引擎1006应该在其中执行的优化模式;例如,管理员可配置分析引擎1006为优先考虑性能,将虚拟机放置在将为该虚拟机提供改善的性能的物理主机上,或者在又一个示例中,管理员可配置分析引擎1006来最大化密度,最小化运行总数量的虚拟机(物理主机池的工作负载)所需的物理主机的数量。
在一个实施例中,响应于所检索的多个指标,分析引擎1006分配分数,该分数包括分配给由多个物理主机的每一个提供的资源的小分(subscore)。在又一个实施例中,分析引擎1006基于包含分配给(不限于)可用的CPU利用水平、可用的存储器水平、可用的网络资源利用率水平和可用的磁盘利用率水平的分数的多个小分来生成分数。在又一个实施例中,多个小分的每一个被分为来自多个不同时间段的指标;例如,多个不同时间段可包括当前时间段、最近时间段和历史时间段。在又一个实施例中,基于虚拟机预期的利用水平来调整资源的可利用水平;例如,初始的可用的CPU利用水平可被识别为可用的总CPU利用量然后减去先前会话中的虚拟机使用的CPU利用量的百分比。
在一些实施例中,在其中分析引擎1006将虚拟机工作负载分布到尽可能少的物理主机上,打分过程可包括计算比例因子以允许用应用于密度的额外权重来在性能和密度之间进行平衡。在其他实施例中,在其中分析引擎1006将虚拟机工作负载分布到能够最大化每个虚拟机性能的物理主机,分析引擎1006可以对已为其接收对物理主机的标识的请求的多个虚拟机进行排序,将多个虚拟机机排序到列举表中,例如,其将具有更高分数(因此比其他虚拟机有更高的对资源的要求)的虚拟机放置在该表的开始位置。在这些实施例的一个中,通过为具有较高分的虚拟机比具有较低分的虚拟机更早地识别物理主机,分析引擎1006增加了具有最大化该虚拟机性能的资源的物理主机将是可用的可能性。
主机推荐服务传输将要在其上执行虚拟机的多个物理主机中的一个的标识(1112)。在一个实施例中,分析引擎向主机推荐服务1002传输将要在其上执行虚拟机的多个物理主机中的一个的标识。在一些实施例中,主机推荐服务1002向池管理组件164a传输该标识。在其他实施例中,主机推荐服务1002在主机推荐服务1002从其接收请求的用户接口中显示该标识。在其他实施例中,主机推荐服务1002将识别工作负载有关的趋势的数据与该标识一起传输。在进一步的实施例中,主机推荐服务1002将工作负载有关的报告与该标识一起传输。
在一些实施例中,主机推荐服务1002提供池优化推荐。在这些实施例的一个中,分析引擎1006生成池优化推荐。在这些实施例的又一个中,分析引擎1006监控池中多个物理主机的每一个物理主机的多个指标。在这些实施例的又一个中,分析引擎1006为多个物理主机的每一个确定对于多个指标中的任何指标,该物理主机是否超过为指定的时间阈值的配置的限制;例如,分析引擎1006可确定物理主机106f已经超过限制CPU利用量的阈值。在这些实施例的又一个中,主机推荐服务1002建议从超过阈值的物理主机向不同的物理主机迁移虚拟机,以便优化在整个物理主机池的工作负载的分布;主机推荐服务1002可识别要使用上文所述的方法和系统向其迁移虚拟机的物理主机。在这些实施例的又一个中,主机推荐服务1002给用户提供超过阈值的通知和所识别的任何迁移推荐。
在一些实施例中,此处所描述的方法和系统提供便于识别要在其上执行虚拟机的物理主机的功能。在这些实施例的一个中,通过评价与物理主机和虚拟机都关联的历史数据,此处所述的方法和系统优化了对虚拟机的放置并改善了对多个物理主机的工作负载水平的管理。
现参考图12,框图描述了用于自适应地负载平衡用户会话以及动态地管理多个服务器106的功率(power)模式以减少能耗的系统的实施例。总的来说,系统包括功率管理控制器1206、功率管理控制台1222、存储功率管理调度表1212的存储装置1290以及由至少一个功率管理代理1220监控的多个服务器106。功率管理控制台1222识别多个用户会话的每一个的会话类型,定义提供对具有共同会话类型的多个用户会话的子集的访问的服务器组,以及为该服务器组定义功率管理调度表1212。功率管理控制器1206将该多个用户会话的子集合并到该服务器组中的至少一个服务器106上。功率管理代理1220监控在多个服务器106中的一个上的负载水平。功率管理控制台1222与功率管理代理1220通信,为多个服务器106中的一个定义功率管理调度表1212,该功率管理调度表1212是响应于所监控的负载水平而生成的。功率管理控制器1206与功率管理控制台1222和功率管理代理1220通信,响应于功率管理调度表1212来动态地控制到多个服务器106中的一个的功率级别。
在一个实施例中,至少一个功率管理代理1220将与多个服务器106提供的用户会话相关联的信息传输到功率管理控制台1222和功率管理控制器1206的至少一个。在又一个实施例中,响应于所提供的信息,功率管理控制台1222识别具有共同会话类型的用户会话的子集并且定义服务器组以提供该用户会话的子集。在又一个实施例中,功率管理控制台1222基于该会话类型的负载特征来为该服务器组定义功率管理调度表1212以管理能耗。在又一个实施例中,功率管理控制器1206基于功率管理调度表和从至少一个功率管理代理1220接收的负载信息来控制服务器106的功率水平以降低总能耗。
现参考图12,更具体地,该系统包括服务器群38,该服务器群38包括多个服务器106a-n(此后统称为“多个服务器106”)。在一个实施例中,存储装置1290驻留在机器106’(未示出)中。在又一个实施例中,多个服务器106、功率管理控制器1206、功率管理控制台1222和机器106’可以是上文结合图1A-1I描述的任何类型的计算装置100。
在一个实施例中,多个服务器106给客户机102的用户提供对网络资源的访问。在又一个实施例中,多个服务器106的每一个可给至少一个客户机102提供至少一个用户会话。在又一个实施例中,提供对用户会话的访问的多个服务器106中的一个服务器可执行一个或多个应用或者处理一个或多个文件。在又一个实施例中,提供对网络资源(例如用户会话内访问的资源或者用户会话本身)的访问将计算负担放置在服务器106上-负载水平。在又一个实施例中,与用户会话关联的负载水平代表,例如,在执行一个或多个资源或者处理到用户的一个或多个数据文件中使用的处理资源。
在一个实施例中,与用户会话关联的负载水平代表与该用户会话关联的处理资源的总量,例如在预定时间段内利用的累积的处理资源。在又一个实施例中,与用户会话关联的负载水平代表与该用户会话关联的处理资源的平均量,其来源于任何类型的统计平均数,例如算术平均数、几何平均数、调和平均数、中位数和众数。在又一个实施例中,该统计平均数可以是瞬时平均数或者在任何持续时间内进行的平均。在又一个实施例中,与用户会话关联的处理资源的平均量是从预定时间段内利用的处理资源的历史确定的预测值。
在一些实施例中,负载水平代表有多少进程在排队等待访问服务器106中的处理器。在其他实施例中,负载水平是对系统所做工作的测量。在进一步的实施例中,使用本领域普通技术人员所知的技术来确定负载水平。
在一个实施例中,可以从与提供用户会话的服务器106相关联的性能指标来确定与该用户会话关联的负载水平。在又一个实施例中,性能指标可包括中央处理单元(CPU)负载、存储器使用量、分页活动、网络活动、盘活动和诸如响应等待时间的端用户性能指标。在又一个实施例中,功率管理代理1220监控服务器106上的性能指标。
在一个实施例中,功率管理代理1220可包括由驻留在服务器106、客户机102或机器中的监控代理244、297、1604,服务器代理1824或客户机代理120提供的功能。在又一个实施例中,多个服务器106的每一个包括功率管理代理1220。在又一个实施例中,多个服务器106包括至少一个功率管理代理1220。在又一个实施例中,功率管理代理1220监控与多个服务器106的子集关联的性能指标。
在一个实施例中,功率管理代理1220基于所监控的性能指标监控与提供至少一个用户会话关联的负载水平,并将该负载水平传送给功率管理控制台1222。在又一个实施例中,功率管理代理1220向功率管理控制台1222传输性能指标。在又一个实施例中,功率管理控制台1222基于所接收的性能指标确定与用户会话关联的负载水平。
在一个实施例中,功率管理代理1220可将来自每个所监控的性能指标的值与多个用户会话的每一个相关联。在又一个实施例中,功率管理代理1220基于所关联的值来确定与多个用户会话中的一个关联的负载水平。在又一个实施例中,功率管理代理1220向功率管理控制台1222传输所确定的负载水平。在又一个实施例中,功率管理代理1220向功率管理控制台1222传输与服务器106关联的性能指标和值。在这些实施例的又一个中,功率管理控制台1222基于所接收的性能指标和值来确定与用户会话关联的负载水平。在一些实施例中,下文将关于与用户会话关联的负载水平、性能指标和值的信息统称为“负载信息”。
在一个实施例中,功率管理代理1220将负载信息传输到功率管理控制台1222和功率管理控制器1206的至少一个。在又一个实施例中,定期地传输负载信息,例如以固定的时间间隔或根据调度表来传输。在又一个实施例中,响应于来自功率管理控制台1222或功率管理控制器1206的请求,功率管理代理1220传输负载信息。例如,用户可以从由功率管理控制台1222提供的用户接口1224发出请求。在又一个实施例中,多个功率管理代理1220可以一起工作或各自分别地工作。例如,多个功率管理代理1220的每一个可监控多个服务器106或服务器群38的子集,并且中央的功率管理代理1220可以收集由多个功率管理代理1220监控的负载信息,之后向功率管理控制台1222和功率管理控制器1206的至少一个传输。
在一个实施例中,功率管理代理1220给功率管理控制台1222和功率管理控制器1206的至少一个提供用于识别多个用户会话的至少一个的会话类型的信息。在又一个实施例中,用于识别多个用户会话的至少一个的会话类型的信息包括负载信息。在又一个实施例中,用于识别多个用户会话的至少一个的会话类型的信息包括有关在该用户会话中包含的任何应用或数据文件的信息。
在一个实施例中,由监控系统提供的代理将与服务器106关联的性能指标和值传输到功率管理控制台1222和功率管理控制器1206的至少一个。在又一个实施例中,由监控系统提供的代理将负载信息传输到功率管理控制台1222和功率管理控制器1206的至少一个。在又一个实施例中,由监控系统提供的代理给功率管理控制台1222和功率管理控制器1206的至少一个提供用于识别多个用户会话的至少一个的会话类型的信息。在又一个实施例中,监控系统是CITRIX EDGESIGHT系统。在一些实施例中,该代理包括由监控代理244、297、1604、服务器代理824或客户机代理120提供的功能。
在一个实施例中,工作流系统给功率管理控制台1222和功率管理控制器1206的至少一个提供与服务器106关联的性能指标和值。在又一个实施例中,工作流系统给功率管理控制台1222和功率管理控制器1206的至少一个提供负载信息。在又一个实施例中,工作流系统给功率管理控制台1222和功率管理控制器1206的至少一个提供用于识别多个用户会话的至少一个的会话类型的信息。在又一个实施例中,工作流系统是CITRIX WORKFLOWSTUDIO系统。
在一个实施例中,用于识别会话类型的信息包括有关用户会话的使用简档或时间性质、或用户会话中的应用或数据文件的信息。例如,用户会话或者该用户会话中的应用可以被表征为持续的或长期性的(例如桌面会话或者电子邮件客户端)。在又一个实施例中,用户会话或者该用户会话中的应用可以被表征为临时的、暂时的或短期性的(例如telnet会话或者web浏览器)。在又一个实施例中,用户会话或者该用户会话中的应用可以被表征为ad-hoc(例如文件传输协议会话或传真软件)。在又一个实施例中,用户会话或者该用户会话中的应用可以被表征为具有循环负载模式(例如通常在一天的营业时间被大量使用的销售点软件应用)。
功率管理控制台1222提供用于识别多个用户会话的每一个的会话类型的接口,定义提供对具有共同会话类型的多个用户会话的子集的访问的服务器组,以及为该服务器组定义功率管理调度表1212。功率管理控制台1222与功率管理代理1220通信,为多个服务器106中的一个定义功率管理调度表1212,该功率管理调度表1212是响应于所监控的负载水平而生成的。在一个实施例中,功率管理控制台1222从功率管理代理1220接收用于识别多个用户会话的每一个的会话类型的信息。在又一个实施例中,功率管理控制台1222提供用于识别多个用户会话的每一个的会话类型的接口。在又一个实施例中,响应于从功率管理代理1220接收的信息,功率管理控制台1222自动地识别多个用户会话的每一个的会话类型。在又一个实施例中,用户经由所提供的接口识别多个用户会话的每一个的会话类型。
在一个实施例中,用户会话的会话类型被识别为应用会话。例如,服务器1206可在应用会话内提供至少一个应用-例如文字处理或演示程序(例如,MICROSOFT POWERPOINT)。在又一个实施例中,用户会话的会话类型被识别为桌面会话。例如,服务器可给客户机102处的用户提供桌面会话,用户可从该桌面会话访问包括一个或多个应用和/或一个或多个数据文件的桌面环境。在又一个实施例中,用户会话的会话类型被识别到虚拟机的连接。例如,服务器106执行在服务器106上提供多个虚拟机的管理程序,并且可以经由到客户机102的连接来访问多个虚拟机的每一个。
在一个实施例中,用户会话的会话类型被识别为宽会话(broad session)类型。在又一个实施例中,可以将宽会话类型进一步分为多个会话类型。例如,被识别为宽会话类型的应用会话可以进一步地基于该应用会话的使用简档或时间性质而被指定为多个会话类型中的一个。例如,应用会话或桌面会话可以被指定为下列会话类型中的一个:持续的、临时的、即兴的(ad hoc)和循环的。
在一个实施例中,功率管理控制台1222从功率管理代理1220接收与用户会话关联的负载信息。在又一个实施例中,响应于所接收的与用户会话关联的负载信息,功率管理控制台1222提供用于识别负载水平的接口。在又一个实施例中,所识别的负载水平与用户会话的会话类型相关联。
功率管理控制台1222提供接口1224,该接口1224用于定义提供对具有共同会话类型的多个用户会话的子集的访问的服务器组。在一个实施例中,功率管理控制台1222给用户提供用于定义服务器组的接口1224。在又一个实施例中,多个用户会话的子集被识别为具有共同会话类型。在又一个实施例中,服务器组提供对具有共同会话类型的多个用户会话的子集的访问。在又一个实施例中,服务器组包括被充分优化的至少一个服务器106以提供对具有共同会话类型的用户会话。例如,包含AMD OPTERON处理器的服务器被充分地优化以执行处理大数据文件的64位应用。在又一个实施例中,服务器组可包括被充分地优化的至少一个服务器106以在提供特定会话类型的用户会话时消耗较少的电力。例如,对于执行多个销售点软件程序,刀片服务器可以比独立的桌面计算机耗电少。
在一个实施例中,功率管理控制台1222提供用于为多个服务器106中的服务器106定义功率管理调度表1212的接口1224。在又一个实施例中,功率管理控制台1222提供用于为服务器组定义功率管理调度表1212的接口。在又一个实施例中,功率管理控制台1222响应于识别多个用户会话的每一个的会话类型来自动地定义功率管理调度表1212。在又一个实施例中,响应于定义提供对具有共同会话类型的多个用户会话的子集的访问的服务器组,功率管理控制台1222自动地为该服务器组定义功率管理调度表1212。
在一个实施例中,功率管理调度表1212指示多个服务器106的至少一个的峰值期和非峰值期。在又一个实施例中,峰值期识别在其中多个服务器106的至少一个应保持加电用于提供至少一个用户会话的时间段。在又一个实施例中,非峰值期识别在其中多个服务器106中的至少一个能被关闭或置于低功率模式的时间段。在又一个实施例中,功率管理调度表1212可指示在其中将多个服务器106的至少一个保持在功率的某个级别的时间段,其可包括关闭电源、低功率、中等功率和高功率级别。例如,低功率级别可以由任何睡眠、休眠、待机、冬眠、节电或低功率等待模式来表示;中等功率级别可以由对多核系统中处理器的子集关闭电源来表示。
在一个实施例中,功率管理调度表1212可以被应用于单个服务器106、多个服务器106的子集、服务器组或服务器群38。在又一个实施例中,功率管理调度表1212包括用于将服务器106置于某个级别的功率的推荐的指示。在又一个实施例中,功率管理调度表1212包括用于将服务器106置于某个级别的功率的强制性指示。在又一个实施例中,在存储装置1290中存储功率管理调度表1212。
在一个实施例中,存储装置1290可以是上文结合图1B-1C描述的任何类型的存储器122。在又一个实施例中,存储装置1290可包括驻留在多个服务器106、功率管理控制台12222、功率管理控制器1206和连接到网络的任何其他机器的一个或多个中的多个分布的存储装置。在又一个实施例中,存储装置1290可以是持久存储器或动态存储器。在又一个实施例中,存储装置1290可以是在虚拟机环境中提供的虚拟盘。
在一个实施例中,存储装置1290可以存储至少一个功率管理调度表1212。在又一个实施例中,存储装置1290可存储任何形式或类型的信息,例如与服务器群38中的服务器106关联的负载水平或功率级别,以及服务器106、用户会话、会话类型和服务器组的列表。在又一个实施例中,存储装置1290通过由功率管理控制台1222提供的接口来给用户提供用于显示的信息。
在一个实施例中,用户通过由功率管理控制台1222提供的接口1224来给存储装置1290提供功率管理调度表1212。在又一个实施例中,接口1224可经由文件来从用户接收功率管理调度表1212。在又一个实施例中,接口1224是命令提示接口。在又一个实施例中,接口1224是图形用户接口(GUI)。在又一个实施例中,用户可通过所提供的接口生成功率管理调度表1212。
在一个实施例中,接口1224可提供任何形式或类型的信息来帮助用户生成功率管理调度表1212。在又一个实施例中,所提供的接口1224可提供服务器群38中多个服务器106、服务器组、多个用户会话及其关联的会话类型和所监控的服务器106或服务器群38的负载水平或功率级别的表示。在又一个实施例中,所提供的接口1224可以给该表示提供颜色编码或其他视觉辅助,例如,以便对负载在预定的负载水平或服务水平之上的服务器106的实例进行强调。在又一个实施例中,例如,可以将服务器群38、服务器组和单独的服务器106的分层或结构的表示提供为在GUI中能够通过鼠标或键盘操作被折叠或展开的节点。在又一个实施例中,节点可以被展开以显示额外的层次和/或信息,或者被折叠以隐藏一些层次和/或信息。
在一个实施例中,响应于服务器组中至少一个服务器106上的负载水平的变化,功率管理控制台1222动态地改变该服务器组的功率管理调度表1212。在又一个实施例中,响应于服务器组中至少一个服务器106上的负载水平中的变化,功率管理控制器1206动态地改变该服务器组的功率管理调度表1212。在又一个实施例中,在服务器组中的至少一个服务器106a上的负载水平中的变化可包括超过预定的服务水平阈值使得另一个服务器106b应该被加电或者被从低功率模式中唤醒,例如,以便响应于对新的用户会话的请求。在又一个实施例中,负载水平中的变化可包括低于预定的服务水平阈值使得服务器106a可以例如通过实时地将虚拟机从服务器106a迁移到另一个服务器106b来被关闭电源或被置于低功率模式。在又一个实施例中,例如,在预测到可能要求服务器组的更高的或更低的服务器能力的负载水平的进一步变化时,服务器106可以被加电或关闭电源。
功率管理控制器1206将多个用户会话的子集合并到服务器组中的至少一个服务器106上。在一个实施例中,功率管理控制器1206将具有共同会话类型的多个用户会话的子集合并到服务器组中的至少一个服务器106上。在又一个实施例中,功率管理控制器1206将该会话类型的多个用户会话的子集合并到用于该会话类型的充分地优化的至少一个服务器106上。在又一个实施例中,功率管理控制器1206将具有一个或多个会话类型的多个用户会话的子集合并到服务器组中的至少一个服务器106上。
在一个实施例中,功率管理控制器1206评价功率管理调度表1212以确定是否改变服务器106上的功率级别。在又一个实施例中,功率管理控制器1206与功率管理控制台和功率管理代理1220通信,响应于功率管理调度表来动态地控制到服务器106的功率级别。在又一个实施例中,功率管理控制器1206包括代理(未示出)以生成到第一服务器106a上的功率管理代理1220的关闭电源或进入低功率模式的命令。例如,在一个实施例中,功率管理控制器1206可以在第二服务器106b上复制与由第一服务器106a提供给客户机102的桌面会话相关联的会话状态,并用对由第二服务器106b提供的复制的桌面会话来代替用户对由第一服务器106a提供的桌面会话的访问;功率管理控制器1206可以接着关闭第一服务器106a的电源。在又一个实施例中,功率管理控制器1206可以实时地将在第一服务器106a上执行的虚拟机迁移到第二服务器106b。在又一个实施例中,功率管理控制器1206将具有共同会话类型的所有新的用户会话合并到服务器组中的至少一个服务器106上。
在一些实施例中,功率管理控制器1206包括代理(未示出)以动态地分配服务器组内的可用资源。在其他实施例中,功率管理控制器1206可提供评价所监控的负载水平的控制系统。在这些实施例的一个中,控制系统包括反馈机制以预测负载水平。在这些实施例的又一个中,控制系统可以对适度地改变的负载水平而不是快速地改变的负载水平作出反应。在其他实施例中,功率管理控制器1206可提供动态的响应系统以响应快速改变的负载水平。在这些实施例的一个中,动态响应系统可取代(override)控制系统。在这些实施例的又一个中,动态响应系统可以只在代理检测到快速改变的负载水平时操作。
在一个实施例中,在服务器组内的资源可以是多处理器系统中的处理器、存储器、通信端口、总线、虚拟机服务器1275或服务器106。在又一个实施例中,功率管理控制器1206可以分配或重新分配资源以提供服务器组内的用户会话。在又一个实施例中,当服务器组的用户会话过载时,功率管理控制器1206可以分配或重新分配跨越服务器组的资源。在又一个实施例中,功率管理控制器1206将多个用户会话的至少一个子集从服务器组中的第一服务器106a重新安置到服务器组中的第二服务器106b。在又一个实施例中,功率管理控制器1206将多个用户会话的至少一个子集从第一服务器组中的第一服务器106a重新安置到第二服务器组中的第二服务器106b。在又一个实施例中,第二服务器106b可以被加电或被从节电模式中唤醒以提供给经重新安置的用户会话。在又一个实施例中,功率管理控制器1206对至少一个功率管理代理1220生成重新安置用户会话、对服务器106加电或唤醒服务器106的命令。
在一个实施例中,响应于服务器组中至少一个服务器106上的负载水平中的变化,功率管理控制器1206动态地改变该服务器组的功率管理调度表1212。在又一个实施例中,功率管理控制器1206响应于至少一个控制系统和动态响应系统来更新功率管理调度表1212。在又一个实施例中,功率管理控制器1206动态地分配或重新分配资源,或者动态地在两个服务器106之间重新安置用户会话,而不改变功率管理调度表1212。在又一个实施例中,功率管理控制器1206响应于服务器组中至少一个服务器106上的负载水平中的变化来选择功率管理调度表1212,所述功率管理调度表1212是从在存储装置1290中存储的至少一个功率管理调度表1212中选择的。
功率管理控制器1206与功率管理控制台1222和功率管理代理1220通信,响应于功率管理调度表1212来动态地控制到多个服务器106中的一个的功率级别。在一个实施例中,功率管理控制器1206中的代理生成指导功率管理代理1220改变服务器106上的功率级别的命令。在又一个实施例中,该代理生成指导功率管理代理1220将服务器106置于关闭电源、低功率、中等功率或高功率状态的命令。在又一个实施例中,功率管理控制器1206包括发送器(未示出),用于向功率管理代理1220发送将服务器106置于关闭电源、低功率、中等功率或高功率状态的命令。在又一个实施例中,该命令可以被传输到至少一个功率管理代理1220以便例如,结合服务器106上改变的功率级别来在服务器106之间重新安置一个或多个用户会话。
在一个实施例中,除了负载信息,功率管理控制器1206还从功率管理代理1220接收与服务器106相关联的状态信息。在又一个实施例中,功率管理控制器1206使用该状态信息来确定服务器106上的服务限制。例如,服务限制可包括服务器106上的预定水平的存储器交换,在该预定水平上将导致尽管CPU负载低但执行应用的性能降低了。在又一个实施例中,功率管理控制台1222响应于功率管理调度表1212和/或所监控的负载水平使用服务限制来确定是否修改功率管理调度表1212、是否分配或重新分配资源,或者是否重新安置用户会话。在又一个实施例中,缺少来自功率管理代理1220的与服务器106关联的状态信息表明该服务器106处于关闭电源的模式。在又一个实施例中,来自功率管理代理1220的传输充当指示服务器106是响应的且在工作的“心跳”信号。
在一个实施例中,功率管理控制器1206结合多种外部功率控制方式指示功率管理代理1220来控制服务器106的功率级别。例如,对于智能机架中刀片服务器的情况,功率管理代理1220可向该智能机架传输对机架中单独的刀片服务器加电或关闭电源的命令。在又一个实施例中,该代理可向服务器106传输通过网络可访问的电源分配控制器和/或不间断电源系统控制电源的命令。在又一个实施例中,功率管理控制器1206可经由功率管理代理1220指示服务器106的操作系统来指导服务106进入任何功率模式,以及可利用诸如局域网唤醒(Wake ON LAN,WOL)的设施使服务器106脱离低功率状态。在又一个实施例中,WOL是允许机器被到该机器的网卡或主板的网络消息远程地加电或唤醒的联网标准。
在一个实施例中,功率管理控制器1206可以经由功率管理代理1220向服务器的基板管理控制器发送控制服务器106的功率级别的命令,例如,命令服务器106脱离低功率状态。在又一个实施例中,基板管理控制器独立于服务器的主处理器并且在服务器106被关闭电源时保持加电。在又一个实施例中,功率管理代理1220可以或可以不驻留在服务器106上,并且当服务器106被关闭电源时保持可操作或加电。
在一个实施例中,通过动态地改变可用的活动服务器106的数量,功率管理控制器1206可触发服务限制,使得其他评价器(例如负载平衡控制器)可以尝试在服务器群38上散布用户会话负载。在又一个实施例中,用于降低能耗的合并过程可以适合于这样操作:使用最小数量的服务器106且每个服务器106上充分优化的负载水平,同时满足最低的服务水平。
现参考图13,流程图描述在自适应地负载平衡用户会话以降低能耗的方法300中所采用的步骤的一个实施例。总的来说,该方法包括识别多个用户会话的每一个的会话类型(1312)。该方法包括定义提供对具有共同会话类型的多个用户会话的子集的访问的服务器组(1314)。该方法包括为该服务器组定义功率管理调度表1212(1316)。该方法包括将多个用户会话的子集合并到该服务器组中的至少一个服务器106上(1318)。
现参考图13,更具体地,功率管理控制台1222提供用于识别多个用户会话的每一个的会话类型的接口1224(1312)。在一个实施例中,多个用户会话的每一个的会话类型是基于由功率管理代理1220提供的信息而被识别的,该信息与多个用户会话的每一个有关。在又一个实施例中,功率管理控制台1222从功率管理代理1220接收用于识别多个用户会话的每一个的会话类型的信息。在又一个实施例中,功率管理代理1220监控多个用户会话的每一个中的负载水平的变化。在又一个实施例中,功率管理代理1220给功率管理控制台1222提供负载信息以便识别多个用户会话的每一个的会话类型,其中负载信息包括所监控的多个用户会话的每一个中的负载水平的变化。在又一个实施例中,功率管理代理1220提供有关被包含在多个用户会话的每一个中的任何应用或数据文件的信息,以识别多个用户会话的每一个的会话类型。
在一个实施例中,功率管理控制台1222基于所接收的信息自动地识别多个用户会话的每一个的会话类型。在又一个实施例中,功率管理控制台1222经由接口1224给用户显示所接收的信息。在又一个实施例中,用户基于所显示的信息,通过由功率管理控制台1222提供的接口1224来定义多个用户会话的每一个的会话类型。在又一个实施例中,功率管理控制台1222通过接口1224给用户显示多个用户会话的每一个的会话类型。
功率管理控制台1222提供接口1224,该接口1224用于定义提供对具有共同会话类型的多个用户会话的子集的访问的服务器组(1314)。在一个实施例中,功率管理控制台1222响应于识别多个用户会话的每一个的会话类型,自动地定义提供对具有共同会话类型的多个用户会话的子集的访问的服务器组。在又一个实施例中,功率管理控制台1222响应于从至少一个功率管理代理1220接收的信息,自动地定义提供对具有共同会话类型的多个用户会话的子集的访问的服务器组。在又一个实施例中,用户通过由功率管理控制台1222提供的接口1224定义提供对具有共同会话类型的多个用户会话的子集的访问的服务器组。
在一个实施例中,功率管理控制台1222定义服务器组,该服务器组包括被充分优化以提供具有共同会话类型的用户会话的至少一个服务器106。在又一个实施例中,用户通过由功率管理控制台1222提供的接口来定义服务器组,该服务器组包括被充分优化以提供具有共同会话类型的用户会话的至少一个服务器106。在又一个实施例中,用户或功率管理控制台1222从服务器群38中的多个服务器106中选择被充分地优化以提供具有共同会话类型的用户会话的服务器106。在又一个实施例中,用户或功率管理控制台1222例如基于多个用户会话的大小和所监控的多个用户会话的每一个的负载水平来定义服务器组的大小。
功率管理控制台1222提供用于定义服务器组的功率管理调度表的接口1224(1316)。在一个实施例中,用户通过由功率管理控制台1222提供的接口1224定义服务器组的功率管理调度表1212。在又一个实施例中,基于从至少一个功率管理代理1220接收的信息,功率管理控制台1222自动地定义服务器组的功率管理调度表1212。在又一个实施例中,功率管理控制台1222或用户选择服务器组的功率管理调度表1222,所述功率管理调度表1212是从存储装置1290中存储的至少一个功率管理调度表1212中选择的。在又一个实施例中,响应于服务器组的定义来定义功率管理调度表1212。在又一个实施例中,为服务器组中的至少一个服务器106定义功率管理调度表1212。
在一个实施例中,响应于与服务器106关联的负载水平的变化,功率管理控制台1222动态地修改该服务器组的功率管理调度表1212。在又一个实施例中,响应于与服务器106关联的负载水平的变化,功率管理控制器1206动态地修改该服务器组的功率管理调度表。在又一个实施例中,响应于与服务器106关联的负载水平的变化,功率管理控制器1206中的代理动态地分配或重新分配服务器组中可用的资源,例如为服务器106加电。在又一个实施例中,功率管理控制器1206中的代理为至少一个功率管理代理1220生成在服务器组内分配或重新分配服务器组内可用资源的命令。在又一个实施例中,功率管理控制台1222上的发送器向至少一个功率管理代理1220传输所生成的命令。
在一个实施例中,功率管理控制器1206中的代理为至少一个功率管理代理1220生成将至少一个用户会话从服务器组中的第一服务器106a重新安置到服务器组中的第二服务器106b的命令。在又一个实施例中,功率管理控制台1222上的发送器将所生成的命令传输到至少一个功率管理代理1220以将至少一个用户会话从服务器组中的第一服务器106a重新安置到服务器组中的第二服务器106b的命令。在又一个实施例中,功率管理控制器1206中的代理为与第一服务器106a关联的功率管理代理1220生成关闭服务器组中的第一服务器106a的电源的命令。在又一个实施例中,功率管理控制器1206上的发送器将所生成的命令传输到与第一服务器106a关联的功率管理代理1220以关闭服务器组中的第一服务器106a的电源。在又一个实施例中,可以将用户会话重新安置到消耗较低级别的功率的服务器106。
功率管理控制器1206将多个用户会话的子集合并到服务器组中的至少一个服务器上(1318)。在一个实施例中,功率管理控制器1206中的代理生成用于至少一个功率管理代理1220的、将多个用户会话的子集合并到服务器组中至少一个服务器106上的命令。在又一个实施例中,功率管理控制器1206中的发送器将命令传输到至少一个功率管理代理1220以将多个用户会话的子集合并到服务器组中至少一个服务器106上。
在一个实施例中,使用此处所述的方法和系统导致了功率管理调度表的产生,所述功率管理调度表可应用与多个服务器106的每一个并且是响应于多个服务器106的每一个的属性(例如负载水平或性能指标)而生成的。在又一个实施例中,使用此处所述的方法和系统导致了被识别为给用户提供对具有共同会话类型的资源的访问的多个服务器106-例如,给用户提供对位于服务器106上大致相似的负载水平的资源的访问,或者对具有大致相似的访问时间或访问时间长度的会话内的资源的访问-以及在其中多个用户会话被合并到多个服务器106上。
现参考图14,流程图描述了在通过动态地管理多个服务器的功率模式来降低能耗的方法1400中所采用的步骤的一个实施例。总的来说,该方法包括经由功率监控代理1220监控多个服务器中的一个上的负载水平(1402)。该方法包括由功率管理控制台1222响应于所监控的负载水平来为多个服务器106中的服务器生成功率管理调度表1212(1404)。该方法包括由功率管理控制器1206响应于功率管理调度表1212来动态地控制服务器的功率级别(1406)。
现参考图14,更具体地,功率监控代理1220监控在多个服务器106中的一个上的负载水平(1402)。在一个实施例中,功率管理代理1220监控多个服务器106中的一个的多个性能指标。在又一个实施例中,功率管理代理1220基于所监控的多个性能指标来确定多个服务器106中的一个的负载水平。在又一个实施例中,功率管理代理1220确定在多个服务器106中的一个上的至少一个用户会话的负载水平。在又一个实施例中,功率管理代理1220将所监控的负载水平提供给功率管理控制台1222和功率管理控制器1206的至少一个。在又一个实施例中,功率管理代理1220将负载信息提供给功率管理控制台1222和功率管理控制器1206的至少一个。在又一个实施例中,功率管理代理1220与监控代理244、297、1604、客户机代理120或服务器代理824通信,以提供所监控的负载水平或负载信息。
功率管理控制台1222响应于所监控的负载水平来为多个服务器106中的服务器106生成功率管理调度表1212(1404)。在一个实施例中,功率管理控制台1222从功率管理代理1220接收所监控的负载水平。在又一个实施例中,功率管理控制台1222从功率管理代理1220接收负载信息。在又一个实施例中,功率管理控制台1222基于负载信息确定负载水平。在又一个实施例中,功率管理控制台1222响应于所监控的负载水平来动态地为多个服务器106中的服务器106生成功率管理调度表1212。在又一个实施例中,功率管理控制台1222从存储装置1290中存储的至少一个功率管理调度表1212中选择功率管理调度表1212。
在一个实施例中,功率管理控制台1222给用户提供接口1224。在又一个实施例中,功率管理控制台1222经由接口1224给用户显示所监控的负载水平或所接收的负载信息。在又一个实施例中,用户为多个服务器106中服务器106定义功率管理调度表1212。在又一个实施例中,用户从存储装置1290中存储的至少一个功率管理调度表1212中选择功率管理调度表1212。在又一个实施例中,功率管理控制台1222响应于用户从存储装置1290中存储的至少一个功率管理调度表1212中选择功率管理调度表1212,来从该存储装置1290检索功率管理调度表1212。
在一个实施例中,用户能通过接口1224手工地重载或更新功率管理调度表1212。例如,用户可使用该接口来指示服务器106立即关闭电源、逐渐地关闭电源或加电。在又一个实施例中,用户可通过接口1224配置功率管理控制器1206以控制服务器106上的负载水平或功率级别。例如,用户可以根据每个服务器106的电源效率来定义服务器组内的服务器106断电或加电的顺序。在又一个实施例中相对于其性能使用更多能量的服务器106可以在关闭服务器组中其他服务器之前被关闭。在一些实施例中,如上文结合图12和13所描述的来生成功率管理调度表1212。
功率管理控制器1206响应于功率管理调度表1212来动态地控制服务器106的功率级别(1406)。在一个实施例中,响应于负载水平的变化,功率管理控制器1206动态地控制服务器106的功率级别。在又一个实施例中,功率管理控制器1206响应于所监控的负载水平来动态地修改多个服务器中的服务器106的功率管理调度表。在又一个实施例中,功率管理控制器1206中的代理为功率管理代理1220生成动态控制服务器106的功率级别的命令。在又一个实施例中,功率管理控制器1206中的发送器将该命令传输到功率管理代理1220以动态控制服务器106的功率级别。
在一个实施例中,功率管理控制台1222包括缺省服务器选择算法来确定是否授权服务器106或对其解除授权同时最大化地节电。在又一个实施例中,缺省服务器选择算法基于多个服务器106的每一个的每瓦特能力(capacity-per-watt)指标。在又一个实施例中,给每个服务器106分配标定的排名值,以便,例如,具有较高排名值的服务器106可以在较低排名的服务器106之前被加电。相反,较低排名的服务器106a可以在较高排名的服务器106b之前被关闭电源。例如,为了避免在包括多个刀片服务器106的数据中心刀片盒中的热区(thermal hotspot),可以根据物理位置给刀片服务器106的每一个分配循环排名;这可以减少任何一个刀片服务器106相对于该盒中的其他刀片服务器106被过度地加电的可能性。在又一个实施例中,可以将排名应用于多个刀片盒以进一步地减少刀片盒之间的热区。
在一个实施例中,管理员可以应用排名来控制和平衡跨越多个配电单元(PDU)的电源分配。在又一个实施例中,可以给多个服务器106分配缺省排名。在又一个实施例中,服务器选择算法随机地选择具有相同排名值的多个服务器106中的一个来加电或断电。在又一个实施例中,例如通过将每瓦特容量指标与排名相组合,或指标的任何其他组合来修改缺省的服务器选择算法以便驱动服务器选择。
在一个实施例中,可以依照一个或多个服务器106来对用户会话请求进行排队,例如以防止在高请求率期间在多个服务器106上散布用户会话。在又一个实施例中,用户简档可以被应用于预测用户可以将用户会话维持多长时间;例如,该数据可以被用于将潜在的长期会话定向到基本负载服务器106。在又一个实施中,为了允许更多机会地合并或迁移用户会话,可以优先考虑服务器106的逐渐关闭以最小化数据的任何丢失。
在一个实施例中,用户会话合并与负载平衡系统联合操作。在又一个实施例中,通过操作负载平衡系统来进行用户会话合并。例如,功率管理控制台1222可发送修改一个或多个服务器的负载水平的命令(但不是实际的负载水平)来影响负载平衡系统的负载平衡决策。在又一个实施例中,如果检测到失败,失效保护方式包括解除用户会话合并,这样正常的负载平衡可以继续。例如,如果服务器106的功率管理代理1220检测到功率管理控制器1206不再是可用的(例如,当连接丢失时),功率管理代理1220假定不再为了降低功率而管理该服务器106,并且触发自动的失败保护过程以恢复服务器106上的负载值。
在一个实施例中,容错特征可包括手动地解除至少一个服务器106和/或至少一个用户会话的负载合并功能的能力。如果,存在一个特定用户会话的控制的故障,那么可以独立于其他用户会话来解除该用户会话。例如,如果服务器106报告影响用户会话合并动态的错误的负载或能力值,管理员可以手动地地从用户会话合并过程解除该服务器106或者所关联的用户会话。
现参考图15A,框图描述用于降低服务器群38中的能耗的系统的一个实施例。总的来说,该系统包括在多个服务器106的每一个上的功率管理代理1220、功率管理控制台1222、功率管理控制器1206和存储功率管理调度表1212的持久存储器1290。
现参考图15A,更具体地,该系统可包括在多个物理服务器106上执行的虚拟机。在一个实施例中,单个物理服务器106提供对至少一个虚拟机的访问。服务器106可终止在服务106上执行的虚拟机,并将该虚拟机的状态保持到磁盘。在又一个实施例中,远程表示系统可将正在运行的虚拟机从第一物理服务器106a实时迁移到第二物理服务器106。可以利用这样的能力来将虚拟机或虚拟服务器合并到少量的物理服务器106上以降低服务器群38中的能耗。
在一个实施例中,服务器106可以给远程客户机102提供桌面会话和单独的应用会话中的至少一个。在又一个实施例中,当服务器106不给客户机102提供任何用户会话时,服务器106可能被关闭电源。
在一个实施例中,可以定义多个服务器组并将其与多个会话类型相关联。例如,可以定义多个服务器组来合并不同会话长度或会话负载的用户会话。在又一个实施例中,可以将长期的或持续的应用合并到将要被最后关闭电源的多个服务器106的第一子集上。在又一个实施例中,在较短时间段内对其进行访问的资源可以被合并到多个服务器106的第二子集上。在又一个实施例中,会话类型也可以被称为应用或会话仓。
在一个实施例中,可以在功率管理控制台1222中定义多个服务器组以合并具有不同负载水平的用户会话。在又一个实施例中,功率管理代理1220基于与用户会话关联的至少一个性能指标来确定负载水平。例如,有关销售点(POS)软件应用(例如由销售代表使用的交易应用)的用户会话可以被表征为在典型的营业日自始至终具有高的负载水平。在又一个实施例中,多个服务器组可以被定义合并与不同使用模式关联的用户会话。例如,有关邮件客户端的用户会话可以被表征为整天的周期性负载或活动。在又一个实施例中,有关传真软件应用或web浏览器的用户会话可以被表征为ad-hoc使用水平。
在一个实施例中,每个服务器106的功率管理代理1220将会话特征和负载信息传送到该系统的功率管理控制台1222。在又一个实施例中,功率管理控制台1222基于所接收的会话特征和负载信息确定每个用户会话的会话类型。在又一个实施例中,功率管理控制台1222提供用户接口1224,通过该接口用户可以定义多个服务器组,以及多个服务器组的每一个的功率管理调度表1212。
在一个实施例中,被充分地优化以提供一种会话类型的用户会话的服务器106被分配给提供该类型的用户会话的服务器组。在又一个实施例中,功率管理控制器1206与负载平衡系统联合操作以将该会话类型的用户会话合并到服务器组中的多个服务器106上。例如,销售点软件应用可以被合并到经优化的高负载水平的服务器组1501。在又一个实施例中,由于销售点软件应用通常在营业时间是活动的且可操作的,多个服务器106的一些可以在营业时间之后关闭电源以降低能耗。
在一个实施例中,诸如web浏览器和传真软件的应用可以例如被合并到包括具有较低处理能力和容量的服务器组1502中。在又一个实施例中,与这样的应用关联的特定的(ad hoc)使用模式可以是用于确定用于降低能耗的合并策略的重要特征。例如,可以选择提供这样的用户会话的服务器,其在睡眠模式时是非常节能的,并且响应于会话请求可以快速地从睡眠模式恢复到可操作模式。
现参考图15B,图表描述了使用通常的负载平衡方法跨越多个服务器106加载的会话的实施例。在一个实施例中,将用户会话分布到所有服务器的通常的负载平衡方法可能减少了节电的机会。在又一个实施例中,不同会话类型的不同用户会话可以大致均匀地分布在多个服务器106上。在又一个实施例中,没有服务器被关闭电源,并且非常少的服务器可以有资格被置于低功率睡眠模式。在又一个实施例中,一个或多个服务器106没有被充分优化以在提供用户会话的同时最小化电源消耗。在又一个实施例中,即使在具有低负载水平的服务器106上也可以发生电源消耗开销,而且除非将服务器106置于睡眠模式或关闭电源,否则该开销不可以被进一步地减少或避免。
现参考图15C,图表描述了由节电的会话合并过程产生的跨越多个服务器106加载的会话的实施例。总的来说,多个服务器106被分成两个服务器组1501、1502,每个服务器组专用于提供特定会话类型的用户会话。
在一个实施例中,销售点软件应用会话(例如与高负载水平关联的持续应用会话)被合并到形成第一服务器组1501的第一个三服务器中。在又一个实施例中,有关传真软件、电子邮件客户端和web浏览器(即,与低负载水平和/或ad-hoc使用模式关联的应用会话)被合并到形成第二服务器组1502的8个服务器上。在又一个实施例中,从服务器106从左到右地提供新的用户会话,导致右侧服务器106被闲置的概率较高。在又一个实施例中,每个服务器组的最左边的服务器106提供新的用户会话直到该服务器106达到能力或降到服务水平之下为止。在又一个实施例中,闲置的服务器、特别是每个服务器组中最右边的服务器可以是用于通过置于低功率模式或关闭电源来节电的候选者。在又一个实施例中,用户会话的时间性质(例如用户会话的长度或负载简档)可以由此促进新用户会话的合并过程以节省电。
在一个实施例中,当其提供的用户会话可以被迁移到其他服务器106b而没有超过服务限制时,一些活动的服务器106a可以被关闭电源以节约能源。在又一个实施例中,服务器106a可以将来自一个或多个客户机的会话请求重定向到准备进入节电模式的其他服务器106b。在又一个实施例中,服务器106a不提供新的用户会话而等待该服务器106a上的现有的用户会话结束之后关闭电源。在又一个实施例中,该系统可将虚拟机会话实时地从第一服务器106a迁移到第二服务器106b,或者用第二服务器106b上的另一个桌面会话来代替用户的不活动的桌面会话。
在一个实施例中,节电合并系统可与负载平衡系统联合作为组合的系统而操作,以在服务器106上应用服务限制同时实现节电。在又一个实施例中,对照这些服务限制的负载的评价可以影响如何在每个服务器组上负载平衡新的用户会话以及是否授权新的服务器脱离节电模式。例如,传统负载平衡系统的负载评价器可以适合于与当前系统操作来在非峰值期间合并用户会话和调度服务器106。在又一个实施例中,这样的组合系统可允许用户会话被散步在多个服务器106上以便获得每个会话的优化的性能以及达到合并的目的。
在一个实施例中,组合的系统可为服务限制设置较高和较低阈值以防止该组合的系统在单个阈值周围振荡。作为说明,在一个实施例中,合并方案可以有用于第一服务器106a的单个服务限制阈值设置,使得如果第一服务器102a上的负载水平查过该阈值,则第二服务器106b将被加电以提供新的用户会话。如果第一服务器106a上的负载水平在该阈值附近波动并且新会话的负载水平低,则第二服务器106b可能随着该波动一起加电或断电,导致了操作和能量的低效。相反,如果设置服务器限制的上下阈值来度量该负载水平中波动的实质部分,那么第二服务器106b能在更长时间内保持断电或加电。在一些实施例中,该加电和断电的模式被称为滞后现象。
在一个实施例中,当用户例如在营业时间之后注销时,越来越多的服务器106可以被关闭电源以节能。在又一个实施例中,例如在峰值期间,随着更多的用户请求新的用户会话,当活动的服务器106a上的负载水平达到其服务限制的上限阈值时可以对额外的服务器106b加电。在又一个实施例中,每个服务器106上的功率管理代理1220可以向功率管理控制台1222和功率管理控制器1206传输负载信息,这样可以进行资源(例如服务器106)的任何动态分配以生成新的用户会话。在又一个实施例中,每个服务器106上的功率管理代理1220可以向功率管理控制台1222和功率管理控制器1206传输经更新的负载信息,用于更新功率管理调度表1212和/或动态地调整活动的服务器的数量以处理用户会话数量。在又一个实施例中,功率管理控制台1222和功率管理控制器1206可以监控随时间的负载模式以及在要求服务器106之前事先启动它们来减少与供应新服务器106关联的延迟。
在一个实施例中,此处描述的系统和方法可以用于自适应地负载平衡在多个服务器106上执行的虚拟机以降低能耗。再次参考图12,在实施例中,该方法包括识别多个虚拟机的每一个的虚拟机会话类型。该方法包括定义提供对具有共同虚拟机会话类型的多个虚拟机子集的访问的服务器组。该方法包括定义服务器组的功率管理调度表1212。该方法包括将多个虚拟机的子集合并到该服务器组中的至少一个服务器106上。在一个实施例中,该方法包括从功率管理代理1220接收识别多个虚拟机中的至少一个的虚拟机会话类型的信息。在又一个实施例中,该方法包括定义服务器组,该服务器组包括被充分地优化以提供该共同虚拟机会话类型的虚拟机会话的至少一个服务器。在又一个实施例中,该方法包括由功率管理代理1220监控负载水平的变化。
在一个实施例中,该方法包括响应于负载水平的变化来动态地修改服务器组的功率管理调度表1212。在又一个实施例中,该方法包括动态地分配服务器组内的可用资源。在又一个实施例中,该方法包括将多个虚拟机的至少一个子集从服务器组中的第一服务器106a重新安置到服务器组中的第二服务器106b。在又一个实施例中,该方法包括关闭服务器组中第一服务器106a的电源。在又一个实施例中,该方法包括对虚拟机加电。在又一个实施例中,该方法包括关闭虚拟机的电源。
在一些实施例中,功率控制系统(PCS)可以提供此处所描述的系统和方法。在一个实施例中,功率控制系统控制提供特定会话类型的用户会话的多个服务器106。在又一个实施例中,多个服务器106可包括应用服务器、桌面服务器、虚拟服务器1275或web服务器。在又一个实施例中,功率控制系统可以管理至少一个CITRIX PRESENTATION服务器、CITRIX XENAPP服务器或CITRIX XEN DESKTOP服务器。
在一个实施例中,功率控制系统包括上文结合图12所述的所有组件。在又一个实施例中,功率控制系统管理多个站点处的多个服务器106。在又一个实施例中,功率控制系统控制多个服务器106使得最小数量的服务器106被加电以提供用户会话同时保持所要求的服务水平。在又一个实施例中,与一直或长时间地保持多个服务器106加电相比较,功率控制系统提高了服务器利用率并降低能耗。
在一个实施例中,功率控制系统是监控多个服务器106的负载和能力的闭环控制系统。例如,在又一个实施例中,所监控的负载和服务器能力在功率控制系统中被用作反馈以便通过控制用于处理多个用户会话的服务器106的数量来驱动可用的能力以满足期望的服务水平要求。在又一个实施例中,功率控制系统基于多个设定点参数来控制多个服务器106。在又一个实施例中,多个设定点参数指定涉及多个服务器106负载水平的期望的能力水平。在又一个实施例中,多个设定点参数表示例如来源于服务水平协定(SLA)的服务水平阈值。
在一个实施例中,如下文结合图17A和17B描述的,设定点参数是由任何数量的外部实体维护的,所述外部实体包括管理员、工作流、自动化脚本、调度表、或诸如基于服务的控制自动化(SBCA)系统的高级控制系统。
在一个实施例中,基于服务的控制自动化系统通过在不同工作负载类型间平衡可用的硬件资源来提供资源管理。在又一个实施例中,基于服务的控制自动化系统可以例如经由CITRIX PROVISIONING SERVER提供自动化的供应。在又一个实施例中,基于服务的控制自动化系统可以接收来自诸如温度传感器、电源分配单元传感器和其他管理系统的来源的输入。在又一个实施例中,基于服务的控制自动化系统与诸如CITRIX EDGESIGHT系统的监控系统通信以报告对电源和成本的节省。
在一个实施例中,功率控制系统控制提供从主数据中心中的服务器106到数据恢复站点的故障切换。在又一个实施例中,在正常操作期间,数据恢复站点中的所有服务器106处于待机状态。在又一个实施例中,当一些服务器不可用或者没有足够的能力来满足用户会话请求的数量时,可能发生局部的故障切换。在又一个实施例中,数据中心的完整的故障切换可能要求在数据恢复站点中的冗余功率控制系统来控制数据恢复服务器。在又一个实施例中,局部的故障切换可能要求主功率控制系统继续管理本地服务器同时将超出的能力溢出到远程数据恢复站点中的服务器。在又一个实施例中,主功率控制系统向冗余功率控制系统传送补足差额所需的额外的能力。在进一步的实施例中,响应于与主功率控制系统的通信,冗余功率控制系统提供数据恢复服务器以补足该差额。
在一个实施例中,当在主数据中心恢复服务和能力时,用户会话被迁移回到主数据中心。在又一个实施例中,数据中心中的冗余服务器架可以充当数据恢复站点或溢出服务器组。在又一个实施例中,多个溢出服务器组可存在于主数据中心或主服务器组中。在又一个实施例中,在处理能力溢出中,可以按优先度对多个溢出服务器组进行排名。
在一个实施例中,当由服务器106提供的所有的用户会话变为断开连接的或者被识别为闲置的时,功率控制系统可以将服务器106置于低功率“待机”模式。在又一个实施例中,当用户会话成为活动的或者尝试重新连接时,提供用户会话的服务器106将自动地恢复适当的、较高功率级别。在又一个实施例中,功率控制系统包括监控用户会话活动或客户机重新连接活动的代理。
现参考图16A,框图描述用于功率计量和报告的系统的一个实施例。总的来说,该系统包括功率监控服务器1602、监控代理1604、操作系统1606(OS)、带外的标称功率计量器1608、服务处理器聚合器1612、基板管理控制器1614、多个服务器1206和第三方功率计量装置1618。
现参考图16A,更具体地,功率监控服务器1602提供对系统的耗功率的监控和报告。在一个实施例中,功率监控服务器1602可以是CITRIXEDGESIGHT服务器。在又一个实施例中,功率监控服务器1602与控制台(未示出)通信。在又一个实施例中,可经由该控制台报告耗功率。在又一个实施例中,可经由该控制台报告与用户会话关联的功率级别。
现参考图16B,在一个实施例中,多个服务器106可以是同构的且是由使用中的功率计量支持的。在又一个实施例中,使用中的功率计量是由与多个服务器106的操作系统1606通信大的至少一个监控代理1604(例如CITRIXEDGESIGHT代理)提供的。在又一个实施例中,监控代理1604收集或确定所监控的服务器106的功率指标并且将该功率指标发送到功率监控服务器1602。在又一个实施例中,监控代理1604包括由驻留在服务器106、客户机102或其他机器中的监控代理244、297,服务器代理1824或客户机代理120提供的功能。
在一个实施例中,多个服务106可以是异构的,包括一系列供应商专用服务处理器、硬件平台和管理接口。在又一个实施例中,带外的功率计量器可单独或与使用中的计量结合来支持异构的多个服务器106。在又一个实施例中,带外的计量是由带外标称功率计量器1608和服务处理器聚合器1612的至少一个提供的。在又一个实施例中,带外的功率计量器可以被用于监控待机模式中的服务器106的耗功率。在又一个实施例中,带外的或使用中的计量器可以支持虚拟服务器1275和虚拟机功率计量。
在一个实施例中,可以要求带外的功率计量来监控“裸金属”机器的耗功率,例如,不具有与使用中与监控代理1604通信的基本功能的机器。在又一个实施例中,如果“裸金属”机器上的基本管理控制器被加电,则可以从该机器收集功率数据。
在一个实施例中,当带外的功率计量器不可用时,可以提供标称功率计量器1608。标称功率计量包括指定每个类型的服务器106的标称耗功率值(例如,以瓦特),例如,对加电时每个类型的服务器106的平均耗功率的最佳估计。在又一个实施例中,由管理员指定或在服务器规范中提供标称耗功率值。在又一个实施例中,在提供功率估计和趋势分析中,标称功率计量是有用的。
现参考图17A,框图描述用于控制服务器合并以降低能耗的系统的一个实施例,在该系统中包括控制层。在一个实施例中,该系统包括用于高级控制器、功率控制系统、机器功率控制和机器级控制的控制层。在又一个实施例中,诸如基于服务的控制自动化(SBCA)系统1702的更高级的控制器动态地分配和重新分配来自多个服务器106的资源以基于服务等级策略来提供用户会话。图17B显示了对基于服务的控制自动化系统1702的输入和从基于服务的控制自动化系统1702到机器功率控制层的控制流的一个实施例。
在一个实施例中,在功率控制系统层,每个功率控制系统管理一个站点处的多个服务器106,该多个服务器106可包括应用服务器、桌面服务器、web服务器、虚拟服务器或其他类型的服务器。在又一个实施例中,多站点服务器群38可能具有多个功率控制系统,例如,每个站点一个功率控制系统。在又一个实施例中,由功率控制系统给更高级的控制器(例如基于服务的控制自动化系统1702)提供用于资源选择和设定点参数改变的接口。在又一个实施例中,由功率控制系统向功率管理控制台1222提供接口以管理该功率控制系统。在又一个实施例中,例如经由功率管理控制台1222执行对在存储装置1290中存储的功率控制系统数据库进行报告的功能。在一些实施例中,基于服务的控制自动化系统1702与至少一个机器功率控制通信。
在一个实施例中,机器功率控制(MPC)层包括对服务器106停电/上电以及改变服务器106的功率级别的控制,例如将服务器106置于待机模式。在又一个实施例中,如上文结合图12所描述的,将控制服务器106的功率级别的命令定向到功率管理代理1220。例如,在一个实施例中,功率管理代理1220与OS通信以控制服务器106的功率级别。在又一个实施例中,可以用类似MICROSOFT WINDOWS远程管理(WinRM)的平台实现远程的无代理控制。在又一个实施例中,可以使用局域网唤醒(WOL)控制1712来将服务器106从低功率待机模式中激活。在又一个实施例中,可以在服务器的服务处理器或基板管理系统中实现智能平台管理接口(IPMI)以将服务器106从低功率待机模式中激活。
在一个实施例中,可以将诸如CITRIX WORKFLOW STUDIO的工作流解决方案用作机器功率控制管理多个服务器106合并和/或负载平衡的接口。例如,可以在由工作流解决方案提供的接口内控制局域网唤醒动作。工作流解决方案也可以通过每种类型的服务器106的定制接口来协调跨越多个异构服务器106的机器功率控制动作。在又一个实施例中,诸如AVOCENT MERGEPOINT服务处理器聚合器的服务处理器聚合器1716可以提供工作流的一部分。在又一个实施例中,服务处理器聚合器1716提供用于与来自多个供应商的服务控制处理器通信的接口。在又一个实施例中,工作流解决方案管理基于服务的控制自动化系统、机器功率控制和功率控制系统的至少一个。
现参考图18,框图描述用于降低多个服务器106中能耗的系统的一个实施例。总的来说,该系统包括集中器1802、管理控制台1804、机器功率控制1826、报告模块1832、数据库1830、活动目录1838和服务器代理1824。在一个实施例中,集中器1802包括模拟控制器1808、调度表管理器1810、控制器引擎1806、局域网唤醒(WOL)客户端1820、负载指示器1828、配置代理1834和服务器代理的代理(servr agent proxy)1822。在又一个实施例中,控制器引擎1806包括调度表引擎1812、工作负载控制器1814和状态管理器1816。
现参考图18,更具体地,集中器1802与多个服务器106关联的至少一个服务器代理1824通信,对该多个服务器106进行功率管理以减少耗功率。在一个实施例中,集中器1802与管理控制台1804通信并且处理工作流、自动化脚本以及其他管理和监控请求。在又一个实施例中,如上文结合图12-15所述的,集中器1802可以是功率管理控制器1206。
在一个实施例中,集中器1802提供支持至少两个节点的故障切换集群模型,即两个节点的集群。在又一个实施例中,该集群中一个节点是主集中器而所有其他活动的节点将是从集中器。在又一个实施例中,集群中主从集中器之间的状态经由结构化查询语言(SQL)服务器数据库同步。在又一个实施例中,故障切换支持正对整个SQL服务器数据库;每个活动的从集中器可以例如,通过观察主集中器是否已经主动地更新该数据库来连续地询问主集中器的状态。在又一个实施例中,如果在一定时期内没有进行更新,则活动的从集中器中的一个可以代替该主集中器并更新数据库。在又一个实施例中,可以使用数据库记录锁和并发管理来提供同步机制以防止多于一个从集中器同时代替主集中器。
在一个实施例中,主集中器与多个服务器代理1824通信。在又一个实施例中,当服务器代理1824试图连接(在故障切换后重新连接)时,服务器代理1824访问活动目录1838以识别活动的集中器的列表。在又一个实施例中,从集中器的监听端口可以被关闭,以免连接到服务器代理1824。在又一个实施例中,服务器代理1824顺序地尝试与集中器的列表连接直到与主集中器建立连接为止。
在一个实施例中,集中器1802提供一系列用于配置系统的操作的管理的和自动化接口,例如管理控制台的接口、脚本(例如,MICROSOFT POWERSHELL脚本)、工作流活动(例如,CITRIX WORKFLOW STUDIO活动)、WinRM、MICROSOFTVisual Studio、MICROSOFT系统中心操作管理器和其他系统管理客户端。在又一个实施例中,集中器1802用模拟控制器1808提供模拟控制器接口,用于初始化、监控和管理与模拟控制器1808通信的模拟控制过程。在又一个实施例中,集中器1802提供用于操作控制器引擎1806的控制器接口,包括提供手动重载和控制系统分离指示。在又一个实施例中,集中器1802给工作负载控制器1814提供调度器接口以管理工作负载控制器调度表。
在一个实施例中,集中器1802提供状态管理接口以管理和观察系统的运行状态,包括操纵工作负载和服务器状态。在又一个实施例中,集中器1802提供配置接口以对全系统内的配置设置进行改变。在又一个实施例中,集中器1802提供资源接口以控制对某种会话类型的用户会话可用的服务器资源。
在一个实施例中,集中器1802提供局域网唤醒(WOL)客户端接口以在受功率管理的服务器106支持局域网唤醒的环境中加电或“唤醒”服务器106。在又一个实施例中,集中器1802提供机器功率控制(MPC)接口以与外部的机器功率控制1826通信。例如,该接口可以是能够唤醒机器(无论是物理裸金属机器还是虚拟机)或对其加电的外部的应用、工作流或脚本的形式。在又一个实施例中,集中器1802提供机器选择器接口,用于调用集中器1802外部的写定制的机器选择器。在又一个实施例中,集中器1802提供负载平衡系统接口以经由状态管理器1816来跟踪服务器106的维护状态。在又一个实施例中,集中器1802提供SQL服务器数据库接口以访问SQL服务器数据库1830。在又一个实施例中,集中器1802提供活动目录1838以发布与集中器1802关联的会话控制协议(SCP)。
在一个实施例中,该系统包括由集中器1802和报告模块1832访问的数据库1830,例如SQL服务器数据库。在又一个实施例中,数据库1830为服务器组或服务器群38中多个服务器106提供数据的公共存储。在又一个实施例中,在数据库1830中存储的数据包括集中器节点注册、工作负载定义、所管理的服务器106和工作负载映射、所管理的服务器电源事件日志文件、服务器简档和能力调度表定义,以及利用率和负载指标。在又一个实施例中,数据库1830提供数据库接口以经由SQL提供对数据库数据的访问。在又一个实施例中,可以在存储装置1290中存储数据库1830。
在一个实施例中,该系统包括提供一组预定义报告的报告模块1832。在又一个实施例中,报告模块1832能以表格或图表形式生成对所监控的利用率和负载指标数据的报告。在又一个实施例中,可用的报告类型包括全系统的利用率报告、全系统的负载与能力对比报告,工作负载特定的利用率报告、工作负载特定的负载与能力对比报告、服务器专用的利用率报告,以及服务器专用负载与能力对比报告。在又一个实施例中,可以生成覆盖不同期间和不同粒度(例如,每小时的、每天的、每周)的报告以呈现服务器趋势和控制系统变化的效果。在又一个实施例中,例如,可以通过用由CITRIXEDGESIGHT监控系统收集的数据填充报告来生成功率相关的报告。
在一个实施例中,报告模块1832访问数据库1830的信息以生成报告。在又一个实施例中,报告模块1832将报告存储在数据库1830中。在又一个实施例中,报告模块1832用web服务前端来提供报告接口,用于执行、显示或打印报告。
在一个实施例中,集中器1802包括控制器引擎1806,提供对所管理的每个会话类型的服务器组内的服务器106的闭环功率控制。在又一个实施例中,集中器1802实例化一个控制器引擎1806来管理一组用户会话,而其他实例用于由模拟控制器1808启动的每个模拟运行。在又一个实施例中,控制器引擎1806跟踪工作负载和服务器组的状态以维持对服务需求的足够能力。在又一个实施例中,用一组设定点参数来控制控制器引擎1806,所述设定点参数是由调度表引擎1812或外部代理来维护和更新的。在又一个实施例中,每个控制器引擎1806实例寄载调度表引擎1812,所述调度表引擎1812基于由调度器管理器1810管理的调度表定义来执行。在一些实施例中,如上文结合图12-15所述的,控制器引擎1806提供功率管理控制器1206的功能。
在一个实施例中,控制器引擎1806包括用于与工作负载控制器1814通信的工作负载控制器接口。例如,在一些实施例中,控制器引擎1806用每个工作负载的特定设定点参数来重载调度表引擎1812,以及用于脱离和/重新接入控制系统。在又一个实施例中,控制器引擎1806包括用于监控系统的运行状态的状态管理接口,例如,通过与状态管理器1816通信来监控服务器106上的用户会话和服务器状态。在又一个实施例中,控制器引擎1806包括用于每个控制器引擎1806实例的局域网唤醒(WOL)客户机接口,以在支持局域网唤醒的环境中经由与机器功率控制1826通信来加电或“唤醒”服务器106。在又一个实施例中,控制器引擎1806包括用于每个控制器引擎1806实例的机器功率控制(MPC)接口以加电或“唤醒”服务器106,例如,以补充WOL。
在一个实施例中,控制器引擎1806包括用于每个控制器引擎1806实例的负载平衡系统接口,其可以由状态管理器1816用来跟踪服务器106的“维护”状态-当服务器106不能接受新的用户会话或者不参与负载平衡时,该服务器106处于“维护”中。在又一个实施例中,控制器引擎1806包括服务器代理接口,其允许控制器引擎1806实例与服务器代理1824通信,例如,以发送要服务器代理1824减少服务器106提供的能力数量的命令。在又一个实施例中,控制器引擎1806可以通过服务器代理接口来指示服务器代理1824来在准备停止服务器106时不再向该服务器106定向会话请求。在又一个实施例中,控制器引擎1806包括用于访问数据库1830的数据访问层。
在一个实施例中,控制器引擎1806包括工作负载控制器1814。在又一个实施例中,工作负载控制器1814控制多个服务器106以驱使服务器能力达到特定的设定点水平。在又一个实施例中,工作负载控制器1814选择要加电或断电的服务器106,以用于改变会话类型能力水平。在又一个实施例中,工作负载控制器1814可以基于服务器组所需的能力变化量,和/或依照服务器组中每个服务器106设置的首选项和排名值来使用选择算法。在又一个实施例中,可以用经由外部应用、工作流或脚本调用的定制实现来重载选择算法。
在一个实施例中,工作负载控制器1814包括调度表控制接口,其由调度表引擎1812用来在调度的事件发生时请求设定点参数变化,例如以更新功率管理调度表1212。在又一个实施例中,工作负载控制器1814包括外部控制接口,用于用指定的设定点参数重载调度表引擎1812,以及用于例如对于每个会话类型脱离/重新接入控制系统。在又一个实施例中,提供状态管理器接口,用于获得用户会话和服务器106的持续和动态的状态(包括负载和能力),用于从服务器组中选择服务器106。在又一个实施例中,提供局域网唤醒客户端接口,用于每个工作负载控制器实例,以在支持WOL的环境中加电或“唤醒”与局域网唤醒客户端通信的服务器106。
在一个实施例中,工作负载控制器1814与机器功率控制1826通信,并为工作负载控制器示例提供机器功率控制(MPC)接口来加电或“唤醒”与机器功率控制1826通信的机器,例如,以补充WOL。在又一个实施例中,工作负载控制器1814提供机器选择器接口,用于调用集中器1802外部的写定制的服务器选择器。
在一个实施例中,控制器引擎1806包括调度表引擎1812,用于当预定的时间发生时向工作负载控制器1814发出设定点参数变化。在又一个实施例中,调度表引擎1812与调度表管理器1810接口以获得调度表定义。在又一个实施例中,调度表引擎1812可以由每个控制器引擎1806实例来实例化和启动,并在处理调度事件中保持活动直到被停止。
在一个实施例中,调度表引擎1812提供调度表控制接口,其由工作负载控制器1814维护并用于在预定的事件发生时请求设定点参数的变化。在又一个实施例中,提供调度表管理器接口,用于获得调度表定义以确定对其作用的下一个预定的事件。
在一个实施例中,控制器引擎1806包括状态管理器1816,其监控用户会话、服务器106和系统中其他对象的持续和运行状态。在又一个实施例中,状态管理器1816实例作为控制器引擎1806实例的部分而执行。在又一个实施例中,在模拟的控制器引擎中,状态管理器1816实例是从活动的(“运行中的”)控制器引擎的状态管理器1816复制的。在又一个实施例中,状态管理器1816实例可以与数据库1830和其他发现机制相分离。在又一个实施例中,当完成模拟运行时,模拟控制器1808取消所关联的控制器引擎和状态管理器实例。在又一个实施例中,可以使用数据库的报告工具来分析有关模拟运行的元数据和在模拟运行期间所收集的指标数据。
在一个实施例中,服务器组的持续状态与数据1830同步,而运行状态来自于外部源,例如仿真的输入。在又一个实施例中,持续状态包括用户会话和会话类型定义、具有所关联的控制模式设置的服务器标识、优先组、排名、关联的服务器简档和关联的工作负载。在又一个实施例中,持续状态包括每个服务器106的最近的电源活动请求和结果、服务器简档和所关联的能力设置。在又一个实施例中,运行状态包括当前服务器群负载和能力指标以及当前用户会话负载和能力指标。在又一个实施例中,运行状态包括当前服务器负载和能力指标、服务器加电/停电状态、服务器维护模式状态。
在一个实施例中,当模拟主动地运行时,该模拟的持续状态可能是固定的。在又一个实施例中,状态管理器1816不受数据库1830变化的影响而运行状态是由仿真的输入驱动的。在又一个实施例中,集群中所有集中器节点能经由相应的状态管理器1816维护持续状态。在又一个实施例中,主集中器通过主集中器中的状态管理器1816管理运行状态。在又一个实施例中,如果存在故障切换和主集中器中的变化,新的主集中器可尝试通过主集中器中状态管理器1816重新同步运行状态。在又一个实施例中,可以要求用于多个服务器代理1824重新连接到新的主集中器以及用于重新建立持续和/或运行状态的时间。
在一个实施例中,状态管理器1816提供状态管理接口,用于访问持续和运行状态以及设置持续状态值。在又一个实施例中,状态管理器1816提供资源管理接口以使服务器代理1824能够注册、撤消和更新与服务器106关联的各种状态值。在又一个实施例中,状态管理器1816提供负载平衡系统接口以跟踪服务器106的“维护”状态。在又一个实施例中,状态管理器1816提供用于与数据库同步的持续状态的数据访问层。
在一个实施例中,集中器1802中的模拟控制器1808在请求时实例化和管理模拟运行。在又一个实施例中,为每次模拟创建控制器引擎1806的实例。在又一个实施例中,模拟的结果被存储在数据库1830中,并且在该模拟后撤消控制器1806实例。在又一个实施例中,模拟控制器1808可以允许多个模拟并发地运行。在又一个实施例中,模拟被用于分析由服务器代理1824监控的数据。在又一个实施例中,模拟可提供数据以预测或者提供建议以更新功率管理调度表1212。例如,模拟可以提供预测与早晨5点相比在上午9点更高的负载水平的结果,并且建议改变功率管理调度表1212以在上午8点半对更多的服务器106加电以处理更高的负载水平。
在一个实施例中,对应于模拟的控制器引擎1806的每个实例创建调度表引擎1812、状态管理器1816和工作负载控制器1814的实例。在又一个实施例中,控制器引擎1806实例(无论真实的还是模拟的),经由调度表管理器1810共享共同组的调度表定义。
在一个实施例中,模拟控制器1808提供模拟接口,用于初始化、监控和管理模拟运行。在又一个实施例中,模拟控制器1808提供控制器引擎接口,用于创建和管理模拟控制器引擎1806实例。在又一个实施例中,模拟控制器1808提供将模拟元数据存储到数据库1830的数据访问层。
在一个实施例中,集中器1802中的调度表管理器1810提供工作负载调度表定义,其由对于真实的和模拟的控制器引擎1806的每个控制引擎1806实例中的调度表引擎1812实例使用。在又一个实施例中,调度表被存储在数据库1830中,依照用户会话进行映射,并且定义用于设定点参数变化事件的调度表项。在又一个实施例中,具有会话类型而无调度表的服务器组本质上是非管理型服务器组并且不由该系统进行功率控制。在又一个实施例中,调度表管理器1810包括用于创建、修改和删除调度表的模块。在又一个实施例中,调度表管理器1810允许复制调度表以用于其他服务器组使用。
在一个实施例中,调度表管理器1810提供用于管理调度表定义的调度表接口。在又一个实施例中,调度表管理器1810提供控制器引擎接口,用于创建和管理模拟控制器引擎1806实例。在又一个实施例中,调度表管理器1810提供用于在数据库中检索和操作调度表定义的数据访问层。在又一个实施例中,如上文结合图12-15所述的,调度表管理器1810可以提供用于功率管理控制台1222或功率管理控制器1206的功能。
在一个实施例中,集中器1802包括管理全系统的配置设置的配置代理1834。在又一个实施例中,将对配置设置的改变应用于数据库1830,并且将其与集群中其他集中器1802实例共享。在又一个实施例中,集中器实例专用的设置可以被写到注册表。在又一个实施例中,配置代理提供用于改变全系统的配置设置的配置接口。在又一个实施例中,配置代理1834提供用于在数据库1830中检索和操作配置设置的数据访问层。
在一个实施例中,集中器1802包括负载指示器1828以修改负载平衡器的缺省行为来完成用户会话合并。在又一个实施例中,负载指示器1828提供修改每个服务器组中的每个服务器106的负载状态以指示从未达到其能力的服务器106提供新的用户会话的模块。在又一个实施例中,负载指示器1828给至少一个服务器代理1824发送修改服务器106的负载状态的命令。在又一个实施例中,该过程也可以被称为负载调整。
在一个实施例中,对于每个工作负载,服务器组中的功率控制服务器106的过程可以独立于负载指示器1828来操作。在又一个实施例中,例如,服务器组可以使其服务器106受功率控制而不合并用户会话-例如当服务器组包括在其中用户会话合并构成威胁的关键的性能标准时。相反地,由多个服务器106提供的用户会话可以被合并到服务器组中至少一个服务器106上并同时对该服务器106进行功率控制。
在一个实施例中,负载指示器1828基于由配置代理1834维护的集中器配置设置来操作。在又一个实施例中,负载指示器1828提供状态管理接口,用于获得服务器组定义和服务器状态,包括从服务器代理1824收集的负载信息。在又一个实施例中,负载指示器1828提供服务器代理接口,用于经由至少一个服务器代理1824向多个服务器106发出负载调整请求。
在一个实施例中,集中器1802包括局域网唤醒客户端1820,用于如工作负载控制器1814所指示的加电或“唤醒”服务器106。在又一个实施例中,局域网唤醒(WOL)是对服务器106加电的缺省机制。在又一个实施例中,在配置设置中由外部机器功率控制1826(MPC)、工作流、脚本或应用提供对缺省机制的重载。在又一个实施例中,局域网唤醒客户端1820提供局域网唤醒客户端接口以便在提供服务器的介质访问控制(MAC)地址和/或互联网协议(IP)地址时对服务器106加电或将其从待机模式“唤醒”。在又一个实施例中,局域网唤醒客户端1820提供用于传输局域网唤醒分组的网络接口。在又一个实施例中,局域网唤醒客户端1820经由服务器代理的代理1822与服务器代理1824通信以加电或“唤醒”服务器106。
在一个实施例中,集中器1802包括服务器代理的代理1822,其充当用于对服务器代理1824的请求的中间设备。在又一个实施例中,到来的请求可包括服务器注册和服务器状态变化。在又一个实施例中,从工作负载控制器1814输出的请求可包括允许在服务器106关闭电源之前完成/终止服务器106上的现有的用户会话的请求。在又一个实施例中,从负载指示器1828输出的请求包括调整多个服务器106上的负载的请求。
在一个实施例中,服务器代理的代理1822在活动目录1838中将集中器节点发布为包括地址和绑定信息的服务连接点(SCP)。在又一个实施例中,当集中器1802是主集中器时,服务器代理的代理1822接受与服务器代理1824的连接请求。
在一个实施例中,服务器代理的代理1822提供用于与至少一个服务器代理1824通信的服务器代理接口。在又一个实施例中,服务器代理的代理1822提供用于诸如负载指示器1828的集中器组件的服务器代理的代理接口,以向服务器代理1824转发请求。在又一个实施例中,服务器代理的代理1822提供由状态管理器1816维护的资源管理接口,用于转发来自服务器代理1824的注册请求和服务器状态变化事件。
在一个实施例中,该系统包括至少一个服务器代理1824、每个服务器代理1824在该系统管理的每个服务器106上执行。在又一个实施例中,服务器代理1824注册服务器106、监控各种服务器状态变量并作用于由集中器1802发出的请求。在又一个实施例中,服务器代理1824可包括由CITRIXEDGESIGHT代理、功率管理代理1220、监控代理244、1604、或客户机代理120提供的功能,并且可以驻留在机器、服务器106或客户机102中。在又一个实施例中,服务器代理1824通过查询活动目录1838中的会话控制协议(SCP)识别服务器代理的集中器端点(或集中器的集群)。
在一个实施例中,服务器代理1824可向集中器1802报告状态的变化,例如负载的变化以及由服务器106提供的会话数量的变化。在又一个实施例中,服务器代理1824能响应于集中器请求来调整负载,或者准备停止服务器106。在又一个实施例中,如果与主集中器的连接丢失,例如当从集中器接任主集中器时,服务器代理1824可以故障切换到已在活动目录1838中发布其端点的其他集中器。在又一个实施例中,当服务器代理1824丢失与集中器1802的连接时,所关联的服务器106变成非管理的并且服务器代理1824放弃对服务器106的控制以及取消服务器代理1824已经对服务器106所作的任何负载平衡变化。
在一个实施例中,服务器代理1824提供代理接口以允许主集中器对服务器代理1824进行请求。在又一个实施例中,该接口作用于在服务器代理1824和集中器1802之间建立双向通信信道时。在又一个实施例中,服务器代理1824提供服务器代理接口,用于注册服务器106并向集中器1802通知状态变化和会话类型的变化。在又一个实施例中,服务器代理1824提供用于跟踪服务器106的状态变量的负载平衡系统接口。例如,状态变量可以指示服务器106是否在维护中,而另一个状态变量可包括关于当前负载的信息。在又一个实施例中,服务器代理1824在活动目录1838中发布集中器会话控制协议(SCP)。
在一个实施例中,该系统包括管理控制台1804,用于经由集中器1802管理和监控该系统的状态。在又一个实施例中,管理控制台1804可包括用于模拟管理、控制器管理、调度表管理、状态管理和监控、全系统的配置以及报告的模块。在又一个实施例中,管理控制台1804提供模拟控制器接口,用于初始化、监控和管理模拟控制过程。在又一个实施例中,管理控制台1804提供用于控制真实的控制器引擎的操作的控制器接口。在又一个实施例中,管理控制台1804是功率管理控制台1206。
在一个实施例中,管理控制台1804提供用于管理工作负载控制器调度表的调度表接口。在又一个实施例中,管理控制台1804提供用于管理和观测系统的运行状态的状态管理接口。在又一个实施例中,管理控制台1804提供用于改变全系统的配置设置的配置接口。在又一个实施例中,管理控制台1804提供用于执行、显示和打印预定义的系统报告的报告接口。
图19中所示的是用于在两个虚拟存储资源之间建立云桥的方法1901的一个实施例。虚拟存储资源接收来自用户的用户证书,其中所述用户证书识别存储适配器(步骤1902)。虚拟存储资源调用在该用户证书中识别的存储适配器(步骤1904),以及该存储适配器执行接口,所述接口识别另一个虚拟存储资源并且包括转换文件(步骤1906)。接着,虚拟存储资源可访问该另一个虚拟存储资源(步骤1908)并且可以在这两个资源之间建立云桥(步骤1910)。
进一步参考图19,更具体地,在一些实施例中,虚拟存储资源或云可以接收来自用户的用户证书(步骤1902)。在一些实施例中,这可包括使用“storage-credential-add”命令向该服务或虚拟存储资源传递证书。例如,可以向虚拟存储资源发出下列命令以向该资源传递用户证书:CVSM>storage-credential-add name=sysl module=ACME ipaddress=10.10.10.10username=admin password=pwd.在一些实施例中,用户证书可以识别另一个虚拟存储资源的存储适配器。
在一些实施例中,该步骤还可包括由在该虚拟存储资源内执行的存储传送管理服务接收由用户传输到该虚拟存储资源的用户证书。在一些实施例中,存储传送管理服务可以将该证书存储在数据库或其他存储库中。
在一个实施例中,存储传送管理服务可列举与该用户相关联的存储适配器的列表。在又一个实施例中,存储传送管理服务可列举与该用户或在用户证书中识别的存储适配器相关联的虚拟存储资源的列表。列举虚拟存储资源可包括调用在用户证书中识别的存储适配器上存储的函数,例如enumerateStorageSystem()。在一些实施例中,存储适配器可以是能与虚拟存储资源一起执行的应用或程序。在其他实施例中,存储适配器可以是能用于与其他虚拟存储资源相接口的虚拟硬件装置。
在其他实施例中,可以使用任何数量的存储发现方法。在一个实施例中,存储发现方法允许存储传送管理服务发现关于存储系统、池、卷、目标端口的信息和其他虚拟存储系统的其他信息。在一些方面,该信息可以用于与其他虚拟存储系统相接口并与其他虚拟存储系统一起执行操作。
下面是对虚拟存储系统可用的存储发现方法或函数的某些实施例的示例:
enumerateStorageSystems
该方法允许虚拟存储资源服务的管理器识别其他虚拟存储资源,这些虚拟存储资源是可以使用管理员为你的存储适配器提供的用户登录证书来访问和管理的。一旦已经发现了存储系统,用户可开始执行接口操作并使用这些存储系统。在一些实例中,在启动时,当已经发现存储系统时,虚拟存储资源服务向存储适配器或存储接口发出一个或多个另外的调用以便发现关于其他虚拟资源存储系统的其他细节。这些调用可以包括诸如enumerateStoragePools和enumerateStorageNodes的列举调用。
getStroageSystemInfo
在一些实施例中,该方法类似于enumerateStorageSystems应用编程接口。在其他实施例中,不同之处在于该方法请求关于特定的虚拟存储系统的信息,而不是关于任何可用的虚拟存储系统的信息(这里,可用性部分地基于用户证书)。在其他实施例中,给定的管理或用户证书(IP地址、用户名、密码)一对一映射到单个虚拟存储系统。在这样的实例中,一个虚拟存储系统的应用编程接口与其他虚拟存储系统的应用编程接口大体上相同。在该实施例中,可用下面的命令来代替上面的:returnenumerateStorageSystems(cred)。在其他实施例中,给定的证书提供对管理设备的访问,通过该管理设备可以管理多个存储系统。任何一种情况下,上面的命令或方法可以返回对于在输入参数(例如,storageSystemId输入参数)中识别的指定或特定的虚拟存储系统的存储系统信息。
enumerateStorageNodes
存储节点在SMI-S模型中也可以被称为Stroage Volume(存储卷)以及在工业界非常普遍地被称为Virtual Disk(虚拟盘)或LUN(逻辑单元号)。在其他实施例中,使用术语Storage Node(存储节点),并且也可涉及其他的Storage Node类型(例如NAS存储)。在一些实施例中,可交换地使用术语存储节点和存储卷。该方法可以返回在虚拟存储系统中可公开的存储节点的列表。这可包括已经被分配给主机的存储节点。
getStorageNodelnfo
在一些实施例中,该方法类似于enumerateStorageNodes。在其他实施例中,不同之处在于该方法请求关于特定存储节点的信息。
enumerateStoragePools
一些实施例中,存储池是可从其创建存储节点(其也可被称为StorageVolume)的存储的池。对于存储池的通用的供应商名称包括类似RAID Group(RAID组)、Volume Group(卷组)和DiskGroup(盘组)的名称。StoragePool(存储池)是可从其创建Stroage Volume的逻辑实体。一些虚拟存储系统具有带有与其关联的RAID类型的Storage Pool。其他系统具有当创建存储节点时管理员可选择的一组RAID类型。
getStoragePoolInfo
在一些实施例中,该方法类似于enumerateStoragePools。在其他实施例中,不同之处在于该方法请求关于指定或特定存储池的信息。可以在传递给该方法的参数中指定该特定的存储池。
enumeratelnitiatorPorts
在一个实施例中,这返回登录到虚拟存储系统中的启动器端口的列表。在一些实施例中,启动器端口可以是用于初始化到另一个端口的连接或者与另一个端口通信的端口。
enumerateTargetPorts
在一个实施例中,这返回虚拟存储系统中所有前端端口(FC和iSCSI)的列表。前端端口可以是用于与虚拟存储系统或资源通信的端口。在一些实施例中,目的端口或前端端口可以是用于向主机公开存储的端口。
一些实例中,可以添加对于LUN屏蔽/存储分配方法的支持。术语‘storage assignment’指LUN屏蔽和映射。在一个实施例中,有四种方法可实现对LUN屏蔽的支持,这些方法包括:enumerateStorageAssignments、getStorageAssignmentlnfo、assignStorage和unassignStorage。前两种方法是发现方法而后两种方法是用于给一个或多个主机启动器端口分配和不分配对存储的访问。在又一个实施例中。可以用单个存储节点来调用assignStorage方法。在又一个实施例中,被传递到assignStorage调用的主机启动器端口的列表是在同一主机内驻留的一组主机启动器端口。在又一个实施例中,LUN屏蔽的结果可以是经由一个或多个存储系统目的端口(前端端口)向一个或多个主机启动器(HBA)端口分配对一个或多个StorageNode的访问。
在一些实例中,在虚拟存储资源内的在计算机上执行的存储传送管理服务可以调用存储适配器(步骤1904)。可以响应于接收用户证书来调用存储适配器。
响应于被调用,存储适配器可以执行接口,所述接口识别第二虚拟存储资源并且包括转换文件(步骤1906)。在一些实施例中,存储适配器可以使用所提供的用户证书(10.10.10.10,admin,pwd)来调用专用于该存储适配器的管理应用编程接口或多个接口。这些接口可以收集所请求的信息,并且可以返回该信息。例如,它们可以返回一个或多个CXSSAStorageSystemlnfo实例。在其他实施例中,第二虚拟存储资源的识别可以包括识别存储系统对象或标识符。可以使用存储系统的供应商标识符、型号标识符和序列号来形成该标识符。例如,对于(假设的)ACME公司A300型号的存储系统,该供应商和型号部分可提供为ACME A300。在又一个实施例中,序列号示例可以是“ABCDEF12345”,由此产生的存储ID为ACME_A300_ABCEDF12345。在又一个实施例中,将非字母数据字符转换为十六进制字符。
在一个实施例中,接口所包含或识别的转换文件可包括XML码。例如,供应商可供应XML码以描述其存储适配器的SCSI装置ID处理器。在又一个实施例中,XML码被用于处理对将标识符转为以公共的、跨供应商的格式表示的标识符的请求的响应。
过程1901还可包括创建虚拟存储资源快照的步骤。在一些实施例中,该方法1901包括克隆现有的存储资源的步骤。在一些实施例中,具有SMI-S兼容的存储提供者的存储供应商可将其SMI-S提供者与接口对象218相集成。下面的部分描述,但不限于,用于与接口对象218集成并提供接口转换文件的方法的一个实施例。
存储传送管理服务可以与来自多个存储供应商的虚拟存储系统交互。SMI-S模型可给供应商提供以标准化的方式表示其存储系统的描述数据和管理应用编程接口的方式(以及用于配置的方法)。然而,SMI-S模型的进化通常落后于存储系统技术的能力,特别是考虑到那些高性能存储系统特征,其很难以模型精确地标准化,因为这些特征主要是供应商专用的。此外,在一些传统环境中,SMI-S是高度标准化的模型,为了充分组合描述一些类(例如,存储卷和物理磁盘驱动器)的实例的数据,其需要大量的单独查询调用,这可能导致客户机侧的性能问题。在一些实施例中,此处描述的方法和系统的实现改善了性能。
在一个实施例中,由接口转换文件(其可被称为供应商选项文件(vendoroptions file)或VOF)公开的其他定制特征允许客户机利用供应商专用的属性和类名来例如更准确地解释这些属性的含义,和/或根据“subtype”过滤某些类的列表。在又一个实施例中,在给定的对象中的额外的属性可使客户机减轻执行额外查询以完整地汇编对于给定对象的所有描述数据所需的代价。
一些实施例中,当创建接口转换文件时,供应商可选择依赖缺省值。在这些实施例的一个中,因此,接口对象218将查找其需要访问的属性与对象的SMI-S标准位置。在这些实施例的又一个中,此处所描述的许多优化特征是完全可选的。
在一些实施例中,接口转换文件可包括下列项:
1.供应商的<VendorOptions...>标签,其具有“VendorPattern”和“ModelPattern”属性。在一个实施例的中,该标签包含供应商的选项集合,在该标签中的两个属性指定了应该如何(从高级的SMI-S产品信息)识别供应商的系统。
2.<XssaVendorString>字符串可指定VSM将在来自该供应商的存储系统和存储节点的ID字符串中使用的供应商字符串。其他实施例中,其他XML属性是可选的,以及如果供应商实现了使客户机能利用给定的供应商专用特征或优化的特征,则该其他XML属性被包括在该供应商的XML数据中。
一些实施例中,接口转换文件可包括至少一个XML标签。下面的表格描述了可被包含在接口转换文件的一个实施例中的一些标签,其中存储传送管理服务210被称为虚拟存储管理器(VSM):
Figure BDA0000128027120001491
Figure BDA0000128027120001501
Figure BDA0000128027120001511
下面的部分提供与上面列出的每个标签关联的其他细节。
<VendorOptions>
在一个实施例中,该标签包含记号(token),通过该记号VSM(虚拟存储管理器)模块可以从该阵列(array)的“Top Product”CIM(通用信息模型)实例中的数据辨认和识别给定供应商/型号(Vendor/Model)的存储系统,并可以包含对于由该标签的属性识别的存储系统类型的供应商选项部分。
又一个实施例中,阵列提供者实现“Physical Product(物理产品)”简档,其中CIM_Product类的实例作为一个整体来表示用于系统的产品数据。该CIM_Product实例的关键字段可包括两个属性:“Vendor”:供应商名称;和“Name”:存储系统产品的名称(即,型号)。例如,Acme System阵列型号AZ1000的对象路径可能看起来如下:Acme_ArrayProduct.IdentifyingNumber=″12345″,Name=″AZ1000″,Vendor=″Acme Systems Inc.″,Version=″1.2.3″。该路径可包括这些属性:IdentifyingNumber(识别号):序列号;Name(名称):产品的名称(即,型号);Vendor(供应商):存储供应商名称;和Version(版本):产品的版本(例如,主固件版本)。
在一个实施例中,VSM模块可以从阵列的SMI-S提供者检查该“TopProduct”实例中的数据并使用某个的正则表达式匹配来将来自该实例的Vendor和Name属性中的值匹配到供应商选项文件中的“VendorOptions”部分内的记号。这些正则表达式模式可包括:
-直接匹配:例如,模式“Acme”匹配供应商“Acme”且仅匹配供应商“Acme”。
-后跟通配符:例如,模式“Acme*”匹配“Acme”和“Acme Systems”,但不匹配“Northwest Acme”。
-前引通配符:例如,模式“*Acme”匹配“Acme”和“Northwest Acme”,但不匹配“Acme Systems”。
-前引的和后跟的通配符:例如,模式“*Acme*”匹配在其中记号“Acme”出现在任何地方的任何供应商字符串,包括“Acme”、“Northwest Acme”和“Acme Systems”。
-通配符:例如,模式“*”匹配任意串。
下面是可以如何在CVSM供应商选项XML文件中建立“Acme AZ1000”示例型号的定义的一些示例:
<VendorOptions VendorPattern=″Acme*″ModelPattern=″AZ1000″>
...vendor/model-specific options,see below
</VendorOptions>
这个示例可以匹配上述每个示例的供应商“Acme”,并且对于型号仅可匹配AZ1000。对于Model Pattern(型号模式)的其他示例可包括:
-ModelPattern=“AZ*”:匹配任何“AZ”型号,包括AZ,AZ1000,AZ500。
-ModelPattern=“AZ1*”:匹配任何“AZ1000系列”型号,包括AZ1000,AZ1500。
-ModelPattern=“*”:匹配任何产品/型号。
总之,VSM模式匹配规则可以要求精确匹配、要求前引匹配、要求后跟匹配、任意匹配,或者可以是可发生在任何地方的模式。在一个实施例中,在模式匹配搜索结束时,VSM模块可以识别出供应商选项XML文件的“VendorOptions”部分,其匹配所讨论的存储系统并包含专用于该类型的存储系统的选项和标志。
<CvsmVendorString>
<CvsmModelString>
在一个实施例中,这些值是VSM模块用来为指定的存储系统供应商/型号根据指定的VSM ssid格式构建VSM“Stroage System ID”(“ssid”)的子串。例如,Acme System型号AZ1000、序列号12345,其可能的ssid为“ACME_AZ_12345”。或者,如果所有Acme型号完全以相同方式运行,其可以简化为“ACME_SYSTEM_12345”。尽管由VSM用于模式匹配/识别指定类型的阵列以及构建ssid的供应商和型号部分的供应商和型号信息来自存储系统的“Top Product”SMI-S实例,但ssid的序列号部分不必来自该CIM_Product实例的“IdentifyingNumber”属性;相反,其可以来自例如表示存储系统自身的CIM_ComputerSystem的当前的实例的“Name”属性。
将供应商和型号模式转换到CVSM ssid中的CVSM记号中不是必须逐字的或者是简单地转化为大写字母。例如,VSM模块可能将来自“ConsolidatedExcelsior Incorporated”公司的存储系统的ssid字符串创建为类似“CONEX_SYSTEM_123SerialNumber456”。
在一些实施例中,对供应商指定VSM SSID Token的可能的其他选择包括:
-供应商对每个该文档提供他们自己的XML选项文件,排除VSM供应商/型号记号字符串,并将提交该文件。
-由VSM模块根据注册数据单独地读取供应商的XML选项文件。
-VSM保持(和更新,当供应商提交他们的文件时)主XML文件以协调用于所有供应商的选项,以及定义/建立某些内部选项,例如对于供应商的VSMssid记号。
如果<vsmModelString>标签没有被包括在供应商文件中,这个值可假定为固定的缺省值,例如,“SYSTEM”。
<SysNameTrimString>
在一个实施例中,该选项提供为VSM ssid的序列号部分排除某些不相关的前缀字符的方式。例如,系统的CIM_ComputerSystem.Name属性可能以例如由下划线分隔的额外的字符作为前缀,例如:“AZSeries_12345”。选项文件可指定“SysNameTrimString”标签,在这种情况中为下划线,例如:
<SysNameTrimString>_</SysNameTrimString>
这可以使VSM模块删除下划线字符之前的前缀,而使用余下的部分作为该系统的所产生的ssid的序列号部分。
<VolumeRaidLevelProperty>
对于给定的SMI-S Storage Volume(存储卷)的实际的“Raid Level(Raid级别)”可以通过其对该Volume(卷)的StroageSetting的实例的关联来确定。此外,以SMI-S数据的术语来说,“Raid Level”可以是涉及包括数据副本的数量、可能失效的转轴(spindle)数量、奇偶类型等数字数据的计算的结果。因为在一些实施例中,为系统的每个Volume查找StorageSetting数据是极其昂贵的,并且因为Raid Level的确定是对客户机很不友好的,所以一些供应商选择使用已有的StorageVolume属性或通过添加供应商专用的属性来简单地填充具有“raid level string”的Volume的属性。如果供应商提供Stroage Volume属性中的数据,则该VSM Vendor Option(供应商选项)标签包含SMI-S Stroage Volume属性的名称,其可使VSM避免额外的消耗。
<VolumeIdProperty>
一些实施例中,由VSM用来产生VSM“node ID”(节点ID)的缺省SMI-SStorageVolume属性是“Name”。在其他实施例中,如果由于某些原因,不同的StroageVolum属性包括用于该目的的更好的数据(例如“DeviceID(装置ID)”,或“Acme Vo1ID”),则该VSM Vendor Option包含该SMI-SStroageVolume属性的名称。
<VolumeIdToken>
有时,用于Volume ID(卷ID)的SMI-S属性的值包括一系列空格分隔的子串。在这种情况下,VolumeIdToken可以被指定为数字的指示符(从零开始),其指示该数据字段中的哪个记号将要被隔离以及用于VSM Node ID中。例如,如果供应商(使用VolumleIdProperty选项)指定将要使用StroageVolume“DeviceID”属性,并且SMI-S StroageVolume实例的DeviceID值是例如“Acme 1234567890”的形式,那么指定VoluemIDToken为“1”将导致只有该DeviceID字符串的第二部分将被用于VSM Node ID字符串中。
如果没有为该选项指定值,那么缺省地可使用整个VolumeIdProperty的值。
<ViewFilterProperty>
一些实施例中,当列举存储系统的View(视图)(也被称为SMI-S“SCSIProtocolController(SCSI协议控制器)”,或“SPC”对象时,在VSM中称为“Stroage Assignments(存储分配)”)时,缺省行为是将所有SPC对象作为Stroage Assignment对象传递给VSM。然而,在其他实施例中,来自多个供应商的存储系统为不同的目的实例化不同类型的SPC对象,并不必然只是为了Stroage Volume的基于主机的Lun映射/屏蔽(LUNMapping/Masking)。VSM模块允许通过指定要检查的SPC的属性名来基于某些SMI-S SPC属性的值过滤SPC。在进一步的实施例中,可以从所列举的列表中排除对于该属性的值匹配过滤值(参见下面的ViewFilterValue供应商选项)的任何SPC对象。
<ViewFilterValue>
在一个实施例中,该选项指定SMI-S SPC属性的值,该属性的属性名由上文所描述的ViewFilterProperty供应商选项指定,这将允许从View列举操作返回的给定的SPC对象被包含在返回VSM的Views列表中以便被转换为VSM Stroage Assignment对象。
<ViewFilterClassNameToken>
如上文所说明的,一些供应商实例化不同类型的View/SPC对象,VSM模块想要从其Stroage Assignment对象列表中排除这些对象,可使用ViewFilterProperty和ViewFilterValue选项来过滤这些对象。然而,在其他实施例中,来自一些供应商的SPC对象不包括用于VSM过滤的属性,并且不能使用这种过滤方法。在这些实施例的一个中,可采用替代选项,即使用ViewFilterClassNameToken供应商选项。在其他实施例中,该选项查看每个视图对象的供应商专用的SMI-S类名,在该类名中查找特定子串并保留包含匹配的那些View对象。
例如,如果该选项字符串被指定为“LunMasking”,那么类名为“AcmeLunMaskingProtocolController”的SPC对象将相匹配,而类名“AcmeBackendProtocolController”不相匹配。
<PoolIdProperty>
一个实施例中,由VSM用来产生用于池的VSM友好名称(即,VSM GUI的显示名称)的缺省SMI-S StroagePool(存储池)属性是“ElementName”。在又一个实施例中,如果处于某些原因对于该目的不同的StroagePool属性包含更好的数据(例如“PoolID(池ID)”),那么VSM Vendor Option包含该SMI-S StroagePool属性的名称。
<PoolFitlerProperty>
在一个实施例中,当列举存储系统的StoragePool对象时,缺省的行为是将所有的池对象传递给CVSM。然而,其他实施例中,来自一些供应商的存储系统对于不同的目的实例化不同类型的池对象,并不只是为了创建Storage Volume。在这些实施例的一个中,VSM允许通过指定将要检查的池属性名称来基于某些SMI-S池属性的值过滤Pool(池)。在这些实施例的又一个中,可以从所列举的列表中排除其属性值匹配过滤值(参见下面的PoolFilterValue供应商选项)的池对象。
<PoolFilterValue>
在一个实施例中,该选项指定用于SMI-S池属性的值,其属性名是由上述的PoolFilterProperty供应商选项指定的,这将允许从Pool列举操作返回的给定的池对象被包含在返回到CVSM的Pool列表中以便被转换为CVSM池对象。
<ExposePathsElementNameParam>
在一个实施例中,CVSM“Stroage Assignment”对象的创建使用SMI-S配置方法“ExposePaths”,其通过“LUN映射和屏蔽”操作加入在Volum/Node(卷/节点)和主机启动器端口(initiator port)之间的访问。
在一个实施例中,为了指定所创建的SPC的ElementName,一些供应商已扩充其ExposePath方法签名以包括额外的参数,用于指定该友好名称的输入。又一个实施例中,由于该增强的功能不是标准SMI-S规范的一部分(因此该额外的参数的名称不是标准化的),所以可知这种额外的能力是通过供应商专用的定义来实现的。
如果供应商在其ExposePath方法调用中提供该额外的输入参数,那么可以使用该供应商选项来指定该参数的名称。
<MaxElementNameLength>
一些实施例中,对于提供在所创建的对象(例如卷、池、启动器端口、视图等)上输入友好名称的能力但对该名称的长度有限制的供应商,可使用此选项来指定最大的名称长度。
<ViewNameSupported>
<NodeNameSupported>
<IPortNameSupported>
一些实施例中,一些供应商提供在各种类型的所创建的对象(例如卷、池、启动器端口、视图等)上输入友好名称的能力。这些供应商选项标志具体地列举给定的供应商在哪个类型的对象上支持用户命名。在一些实施例中,可以在创建存储卷时支持友好名称(例如,NodeNameSupported)、在创建启动器端口时支持友好名称(例如,IPortNameSupported)或者在创建SPC/View时支持友好名称(例如,ViewNameSupported)。
下面是除了支持大范围的有限长度的友好名称外,还具有相对较少的非缺省选项的接口转换文件的一个实施例的示例。
下面是包括多个可配置选项的接口转换文件的一个实施例的示例:
Figure BDA0000128027120001591
下面是在配置XML中包括最小值的接口转换文件的一个实施例的示例。在一些实施例中,可假设该供应商依赖于SMI-S标准而没有其他增强:
在一些实施例中,SCSI装置ID的产生是通过以下步骤来完成的:从在主机找到的所有LUN收集=SCSI的查询页面信息,然后对其进行处理以便为每个节点创建VSM Stroage Node标识符。对于每个存储系统,用于形成Stroage Node标识符的信息的位置是指定的且唯一的,因此,在这些实施例的一个中,每个供应商指定如何创建一个Stroage Node标识符。在这些实施例的另一个中,供应商可在XML中将该信息指定为“SCSI Device IDProcessor”,而不是将其硬编码到VSM服务中。下面是用于不同硬件供应商的不同存储系统的SCSI ID处理器的一些示例:
Figure BDA0000128027120001593
Figure BDA0000128027120001601
Figure BDA0000128027120001611
在一个实施例中,InquiryMatch(查询匹配)信息用于确定在STDINQUIRY(查询)页面中具有VENDOR和PRODUCT字符串的给定的LUN是否与SCSI ID处理器相匹配。如果匹配,那么VendorID和ProductID下的值用于形成Storage Node ID的前半部分。又一个实施例中,Enclosure ID标签中的信息用于从所指示的SCSI VDP页面提取信息以形成Storage Node ID的Enclosure ID部分。又一个实施例中,提取装置ID(device ID)。又一个实施例中,最终的存储节点id可采用这样的形式:VENDORID_PRODUCTID_ECLOSUREID_DEVICEID。一些实施例中,这将匹配由存储系统接口对象234产生(参见emumerateStorageNode,getStroageNodeInfo)的或者在用于基于SMI-S的集成的接口转换XML文件中指定的Storage Node ID形式。
应该理解,此处描述的系统可提供这些组件的任意多个或每一个并且这些组件可以在单独机器上提供,或者在一些实施例中,可在分布式系统的多个机器上提供。可以使用编程和/工程技术将上文所描述的系统和方法实现为方法、装置或产品以提供软件、固件、硬件或上述的任何组合。此外,上述系统和方法可作为一件或多件产品上或中嵌入的一个或多个计算机可读程序而被提供。此处使用的术语“产品”旨在包括从一个或多个计算机可读的装置、固件、可编程逻辑、存储器装置(例如,EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如,集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子装置、计算机可读的非易失存储单元(例如,CD-ROM、软盘、硬盘等)可访问的或嵌入其中的代码或逻辑。所述产品可以从经由网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问的文件服务器进行访问。所述产品可以是闪存卡或磁带。所述产品包括硬件逻辑以及嵌入在计算机可读介质中由处理器执行的软件或可编程代码。通常,计算机可读程序可以任何编程语言来实现,如LISP、PERL、C、C++、C#、PROLOG,或者诸如JAVA的任何字节码语言。软件程序可以作为目标代码被存储在一件或多件产品上或其中。
已经描述了在本地和远程企业寄载站点之间传送资源的方法和系统的某些实施例,对本领域技术人员而言,显而易见可以使用包含本公开的概念的其他实施例。

Claims (14)

1.一种用于在第一虚拟存储资源和第二虚拟存储资源之间建立云桥的方法,所述云桥用于从第一虚拟存储资源和第二虚拟存储资源的其中一个向第一虚拟存储资源和第二虚拟存储资源中的另一个传输数据,所述方法包括:
由在第一虚拟存储资源内的计算机上执行的存储传送管理服务接收用户的用户证书,所述用户证书识别存储适配器;
由存储传送管理服务响应于接收用户证书来调用识别的存储适配器;
由所调用的存储适配器的接口执行指令以识别第二虚拟存储资源,其中所述接口包括接口转换文件,所述接口转换文件将多个供应商专用格式的每一个与标准格式相映射;
由存储传送管理服务经由所述存储适配器访问第二虚拟存储资源;以及
由存储传送管理服务使用以第二虚拟存储资源的专用格式所存储的信息在第一虚拟存储资源和第二虚拟存储资源之间建立云桥,所述信息是由所述存储适配器使用接口转换文件来转换的。
2.根据权利要求1所述的方法,还包括响应于接收用户证书来列举与该用户关联的存储适配器的列表。
3.根据权利要求2所述的方法,其中调用存储适配器还包括:
从所列举的存储适配器的列表中选择存储适配器;以及
调用所选择的存储适配器。
4.根据权利要求1所述的方法,还包括响应于调用存储适配器来列举与该存储适配器关联的虚拟存储资源的列表。
5.根据权利要求1所述的方法,还包括响应于调用存储适配器来列举第二虚拟存储资源中的访问端口的列表。
6.根据权利要求5所述的方法,还包括:
从该访问端口的列表中选择访问端口;以及
向所选择的访问端口发出连接请求,所述连接请求是由所述存储适配器使用所述接口转换文件来进行转换的。
7.根据权利要求6所述的方法,还包括:
建立到第二虚拟存储资源的所选择的访问端口的连接;以及
经由该访问端口访问在第二虚拟存储资源中存储的数据。
8.一种用于在第一虚拟存储资源和第二虚拟存储资源之间建立云桥的设备,所述云桥用于从第一虚拟存储资源和第二虚拟存储资源的其中一个向第一虚拟存储资源和第二虚拟存储资源中的另一个传输数据,所述设备包括:
用于由在第一虚拟存储资源内的计算机上执行的存储传送管理服务接收用户的用户证书的装置,所述用户证书识别存储适配器;
用于由存储传送管理服务响应于接收所述用户证书来调用识别的存储适配器的装置;
用于由存储传送管理服务经由所调用的存储适配器的接口执行指令以识别第二虚拟存储资源的装置,其中所述接口包括接口转换文件,所述接口转换文件将多个供应商专用格式的每一个与标准格式相映射;
用于由存储传送管理服务经由所述存储适配器访问第二虚拟存储资源的装置;以及
用于由存储传送管理服务使用以第二虚拟存储资源的专用格式所存储的信息在第一虚拟存储资源和第二虚拟存储资源之间建立云桥的装置,所述信息是由所述存储适配器使用接口转换文件来转换的。
9.根据权利要求8所述的设备,还包括用于由存储传送管理服务响应于接收用户证书来列举与该用户关联的存储适配器的列表的装置。
10.根据权利要求9所述的设备,其中用于调用存储适配器的装置还包括:
用于从所列举的存储适配器的列表中选择存储适配器的装置;以及
用于调用所选择的存储适配器的装置。
11.根据权利要求8所述的设备,还包括用于响应于调用存储适配器来列举与该存储适配器关联的虚拟存储资源的列表的装置。
12.根据权利要求8所述的设备,还包括用于响应于调用存储适配器来列举第二虚拟存储资源中的访问端口的列表的装置。
13.根据权利要求12所述的设备,还包括:
用于从该访问端口的列表中选择访问端口的装置;以及
用于向所选择的访问端口发出连接请求的装置,所述连接请求是由所述存储适配器使用所述接口转换文件来进行转换的。
14.根据权利要求13所述的设备,还包括:
用于建立到第二虚拟存储资源的所选择的访问端口的连接的装置;以及
用于经由该访问端口访问在第二虚拟存储资源中存储的数据的装置。
CN201080030002.5A 2009-05-01 2010-05-03 用于在虚拟存储资源之间建立云桥的系统和方法 Active CN102460393B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17466009P 2009-05-01 2009-05-01
US61/174660 2009-05-01
PCT/US2010/033442 WO2010127365A1 (en) 2009-05-01 2010-05-03 Systems and methods for establishing a cloud bridge between virtual storage resources

Publications (2)

Publication Number Publication Date
CN102460393A CN102460393A (zh) 2012-05-16
CN102460393B true CN102460393B (zh) 2014-05-07

Family

ID=42558586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080030002.5A Active CN102460393B (zh) 2009-05-01 2010-05-03 用于在虚拟存储资源之间建立云桥的系统和方法

Country Status (4)

Country Link
US (2) US8578076B2 (zh)
EP (1) EP2425341B1 (zh)
CN (1) CN102460393B (zh)
WO (1) WO2010127365A1 (zh)

Families Citing this family (1215)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7391865B2 (en) 1999-09-20 2008-06-24 Security First Corporation Secure data parser method and system
US8996705B2 (en) * 2000-04-17 2015-03-31 Circadence Corporation Optimization of enhanced network links
WO2003058483A1 (en) * 2002-01-08 2003-07-17 Seven Networks, Inc. Connection architecture for a mobile network
CA2922172A1 (en) 2004-10-25 2006-05-04 Security First Corp. Secure data parser method and system
US20150381597A1 (en) * 2005-01-31 2015-12-31 Unisys Corporation Enterprise management for secure network communications over ipsec
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8171238B1 (en) 2007-07-05 2012-05-01 Silver Peak Systems, Inc. Identification of data stored in memory
US8392684B2 (en) 2005-08-12 2013-03-05 Silver Peak Systems, Inc. Data encryption in a network memory architecture for providing data based on local accessibility
US8095774B1 (en) 2007-07-05 2012-01-10 Silver Peak Systems, Inc. Pre-fetching data into a memory
US8929402B1 (en) 2005-09-29 2015-01-06 Silver Peak Systems, Inc. Systems and methods for compressing packet data by predicting subsequent data
US8489562B1 (en) * 2007-11-30 2013-07-16 Silver Peak Systems, Inc. Deferred data storage
US8811431B2 (en) 2008-11-20 2014-08-19 Silver Peak Systems, Inc. Systems and methods for compressing packet data
KR100656485B1 (ko) 2006-02-13 2006-12-11 삼성전자주식회사 Pta 서비스 제공 방법 및 그 시스템
US8924524B2 (en) * 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US8755381B2 (en) 2006-08-02 2014-06-17 Silver Peak Systems, Inc. Data matching using flow based packet data storage
US8885632B2 (en) 2006-08-02 2014-11-11 Silver Peak Systems, Inc. Communications scheduler
US9015301B2 (en) * 2007-01-05 2015-04-21 Digital Doors, Inc. Information infrastructure management tools with extractor, secure storage, content analysis and classification and method therefor
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8307115B1 (en) 2007-11-30 2012-11-06 Silver Peak Systems, Inc. Network memory mirroring
US9002828B2 (en) * 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) * 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
US8743683B1 (en) 2008-07-03 2014-06-03 Silver Peak Systems, Inc. Quality of service using multiple flows
US10805840B2 (en) 2008-07-03 2020-10-13 Silver Peak Systems, Inc. Data transmission via a virtual wide area network overlay
US9717021B2 (en) 2008-07-03 2017-07-25 Silver Peak Systems, Inc. Virtual network overlay
US10164861B2 (en) 2015-12-28 2018-12-25 Silver Peak Systems, Inc. Dynamic monitoring and visualization for network health characteristics
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8166478B2 (en) * 2009-04-28 2012-04-24 Lsi Corporation System and apparatus for utilizing a virtual machine to support redundancy in a virtual machine manager pair
US20100299447A1 (en) * 2009-05-25 2010-11-25 Nilesh Anant Salvi Data Replication
US9104407B2 (en) * 2009-05-28 2015-08-11 Red Hat, Inc. Flexible cloud management with power management support
US9201485B2 (en) * 2009-05-29 2015-12-01 Red Hat, Inc. Power management in managed network having hardware based and virtual resources
US8335943B2 (en) * 2009-06-22 2012-12-18 Citrix Systems, Inc. Systems and methods for stateful session failover between multi-core appliances
US8533317B2 (en) * 2009-06-22 2013-09-10 Citrix Systems, Inc. Systems and methods for monitor distribution in a multi-core system
US20110047381A1 (en) * 2009-08-21 2011-02-24 Board Of Regents, The University Of Texas System Safemashups cloud trust broker
CN101998629B (zh) * 2009-08-28 2014-05-21 国际商业机器公司 搜索虚拟资源的位置的方法、装置和系统
US9094292B2 (en) * 2009-08-31 2015-07-28 Accenture Global Services Limited Method and system for providing access to computing resources
US8239247B2 (en) * 2009-09-11 2012-08-07 International Business Machines Corporation Correlated analytics for benchmarking in community shared data
US20110078303A1 (en) * 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
WO2011042035A1 (en) * 2009-10-09 2011-04-14 Nec Europe Ltd. A method for monitoring traffic in a network and a network
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
US9122537B2 (en) * 2009-10-30 2015-09-01 Cisco Technology, Inc. Balancing server load according to availability of physical resources based on the detection of out-of-sequence packets
JP5650238B2 (ja) 2009-11-25 2015-01-07 セキュリティー ファースト コープ. 移動中のデータをセキュア化するためのシステムおよび方法
JP5454135B2 (ja) * 2009-12-25 2014-03-26 富士通株式会社 仮想マシン移動制御装置、仮想マシン移動制御方法および仮想マシン移動制御プログラム
US8245140B2 (en) * 2009-12-31 2012-08-14 International Business Machines Corporation Visualization and consolidation of virtual machines in a virtualized data center
US10387927B2 (en) 2010-01-15 2019-08-20 Dell Products L.P. System and method for entitling digital assets
US9235399B2 (en) 2010-01-15 2016-01-12 Dell Products L.P. System and method for manufacturing and personalizing computing devices
US9256899B2 (en) 2010-01-15 2016-02-09 Dell Products, L.P. System and method for separation of software purchase from fulfillment
JP5549237B2 (ja) * 2010-01-21 2014-07-16 富士通株式会社 試験環境構築プログラム、試験環境構築方法、及び試験装置
US9047135B2 (en) * 2010-01-22 2015-06-02 International Business Machines Corporation Qualitative assignment of resources to a logical partition in a multipartitioned computer system
US9100396B2 (en) 2010-01-29 2015-08-04 Dell Products L.P. System and method for identifying systems and replacing components
US8548919B2 (en) * 2010-01-29 2013-10-01 Dell Products L.P. System and method for self-provisioning of virtual images
US8429641B2 (en) * 2010-02-02 2013-04-23 Dell Products L.P. System and method for migration of digital assets
US8650299B1 (en) 2010-02-03 2014-02-11 Citrix Systems, Inc. Scalable cloud computing
US8315977B2 (en) * 2010-02-22 2012-11-20 Netflix, Inc. Data synchronization between a data center environment and a cloud computing environment
US8819116B1 (en) * 2010-03-08 2014-08-26 Amazon Technologies, Inc. Providing services using a device capabilities service
US8170783B2 (en) 2010-03-16 2012-05-01 Dell Products L.P. System and method for handling software activation in entitlement
US9389892B2 (en) * 2010-03-17 2016-07-12 Zerto Ltd. Multiple points in time disk images for disaster recovery
US11256529B2 (en) 2010-03-17 2022-02-22 Zerto Ltd. Methods and apparatus for providing hypervisor level data services for server virtualization
US9442748B2 (en) 2010-03-17 2016-09-13 Zerto, Ltd. Multi-RPO data protection
US9710294B2 (en) 2010-03-17 2017-07-18 Zerto Ltd. Methods and apparatus for providing hypervisor level data services for server virtualization
US10649799B2 (en) 2010-03-17 2020-05-12 Zerto Ltd. Hypervisor virtual server system, and method for providing data services within a hypervisor virtual server system
US8406152B1 (en) * 2010-03-23 2013-03-26 Qlogic, Corporation System and methods for presenting storage
US8255508B2 (en) 2010-03-24 2012-08-28 International Business Machines Corporation Administration of virtual machine affinity in a data center
US9137213B2 (en) * 2010-03-26 2015-09-15 Avaya Inc. On-demand feature server activation in the cloud
US8855656B2 (en) * 2010-03-29 2014-10-07 Nokia Siemens Networks Oy Power consumption reduction within a telecommunication network operating with different radio access technologies
JP5190084B2 (ja) * 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
AU2011235068B2 (en) 2010-03-31 2015-10-01 Security First Corp. Systems and methods for securing data in motion
US9367362B2 (en) 2010-04-01 2016-06-14 International Business Machines Corporation Administration of virtual machine affinity in a cloud computing environment
WO2011126479A1 (en) 2010-04-07 2011-10-13 Hewlett-Packard Development Company Device messaging
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
US20110258481A1 (en) * 2010-04-14 2011-10-20 International Business Machines Corporation Deploying A Virtual Machine For Disaster Recovery In A Cloud Computing Environment
US8572612B2 (en) 2010-04-14 2013-10-29 International Business Machines Corporation Autonomic scaling of virtual machines in a cloud computing environment
US9154445B2 (en) 2010-05-03 2015-10-06 Pluribus Networks Inc. Servers, switches, and systems with virtual interface to external network connecting hardware and integrated networking driver
US9306849B2 (en) 2010-05-03 2016-04-05 Pluribus Networks, Inc. Methods and systems for managing distribute media access control address tables
US9300576B2 (en) 2010-05-03 2016-03-29 Pluribus Networks Inc. Methods, systems, and fabrics implementing a distributed network operating system
US9160668B2 (en) 2010-05-03 2015-10-13 Pluribus Networks Inc. Servers, switches, and systems with switching module implementing a distributed network operating system
US8767752B1 (en) 2010-05-03 2014-07-01 Pluribus Networks, Inc. Method and system for resource coherency and analysis in a network
US9319335B1 (en) * 2010-12-07 2016-04-19 Pluribus Networks, Inc. Distributed operating system for a layer 2 fabric
US9304782B2 (en) 2010-05-03 2016-04-05 Pluribus Networks, Inc. Network switch, systems, and servers implementing boot image delivery
US8891543B1 (en) 2011-05-23 2014-11-18 Pluribus Networks Inc. Method and system for processing packets in a network device
US8806578B2 (en) * 2010-05-05 2014-08-12 Microsoft Corporation Data driven role based security
US9635693B2 (en) * 2010-05-07 2017-04-25 Samsung Electronics Co., Ltd. Method of performing pairing between coordinator and device in network, method of performing pairing between devices, method of pairing between coordinators and network system including the coordinators and the devices
EP2572294B1 (en) * 2010-05-18 2021-04-07 Tata Consultancy Services Limited System and method for sql performance assurance services
US8707087B2 (en) * 2010-05-18 2014-04-22 Dell Products L.P. Restoration of an image backup using information on other information handling systems
US9202225B2 (en) * 2010-05-28 2015-12-01 Red Hat, Inc. Aggregate monitoring of utilization data for vendor products in cloud networks
CN103238305A (zh) * 2010-05-28 2013-08-07 安全第一公司 用于安全数据储存的加速器系统
US8504689B2 (en) * 2010-05-28 2013-08-06 Red Hat, Inc. Methods and systems for cloud deployment analysis featuring relative cloud resource importance
US8606897B2 (en) * 2010-05-28 2013-12-10 Red Hat, Inc. Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
US9354939B2 (en) 2010-05-28 2016-05-31 Red Hat, Inc. Generating customized build options for cloud deployment matching usage profile against cloud infrastructure options
EP2577539B1 (en) * 2010-06-02 2018-12-19 VMware, Inc. Securing customer virtual machines in a multi-tenant cloud
US8898318B2 (en) * 2010-06-03 2014-11-25 Microsoft Corporation Distributed services authorization management
US9552299B2 (en) * 2010-06-11 2017-01-24 California Institute Of Technology Systems and methods for rapid processing and storage of data
EP2583211B1 (en) 2010-06-15 2020-04-15 Oracle International Corporation Virtual computing infrastructure
US10715457B2 (en) 2010-06-15 2020-07-14 Oracle International Corporation Coordination of processes in cloud computing environments
JP5585235B2 (ja) * 2010-06-21 2014-09-10 富士通株式会社 ストレージ制御装置、ストレージ制御方法、ストレージシステム
US8504684B1 (en) * 2010-06-23 2013-08-06 Emc Corporation Control of data storage system management application activation
US8359223B2 (en) * 2010-07-20 2013-01-22 Nec Laboratories America, Inc. Intelligent management of virtualized resources for cloud database systems
US8707300B2 (en) * 2010-07-26 2014-04-22 Microsoft Corporation Workload interference estimation and performance optimization
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
WO2013015835A1 (en) * 2011-07-22 2013-01-31 Seven Networks, Inc. Mobile application traffic optimization
CA2806527A1 (en) 2010-07-26 2012-02-09 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US8244881B2 (en) * 2010-08-06 2012-08-14 Palo Alto Research Center Incorporated Service virtualization over content-centric networks
US8886777B2 (en) * 2010-08-20 2014-11-11 Unisys Corporation Moving enterprise software applications to a cloud domain
US8738961B2 (en) * 2010-08-17 2014-05-27 International Business Machines Corporation High-availability computer cluster with failover support based on a resource map
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US20120054626A1 (en) * 2010-08-30 2012-03-01 Jens Odenheimer Service level agreements-based cloud provisioning
KR101659365B1 (ko) * 2010-09-03 2016-09-23 삼성전자 주식회사 복수 프로세서 시스템의 트래픽 제어 방법 및 장치
CN102404162A (zh) * 2010-09-17 2012-04-04 鸿富锦精密工业(深圳)有限公司 计算机网络唤醒功能测试系统及方法
US8775626B2 (en) * 2010-09-17 2014-07-08 Microsoft Corporation Using templates to configure cloud resources
US11405969B2 (en) * 2010-09-29 2022-08-02 International Business Machines Corporation Enabling interface aggregation of mobile broadband network interfaces
US9128626B2 (en) * 2010-10-01 2015-09-08 Peter Chacko Distributed virtual storage cloud architecture and a method thereof
US8380845B2 (en) 2010-10-08 2013-02-19 Microsoft Corporation Providing a monitoring service in a cloud-based computing environment
US8959219B2 (en) 2010-10-18 2015-02-17 Microsoft Technology Licensing, Llc Dynamic rerouting of service requests between service endpoints for web services in a composite service
US8650564B2 (en) * 2010-10-19 2014-02-11 Vmware, Inc. Method and system for synchronizing fault-tolerant virtual machines and adjusting CPU resource limit based on execution latency
US8874787B2 (en) 2010-10-20 2014-10-28 Microsoft Corporation Optimized consumption of third-party web services in a composite service
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
CN102035881B (zh) * 2010-11-19 2013-01-16 清华大学 一种云端存储系统的数据缓存方法
WO2012071384A2 (en) 2010-11-22 2012-05-31 Michael Luna Optimization of resource polling intervals to satisfy mobile device requests
TW201224801A (en) * 2010-12-07 2012-06-16 ting-yu Zhang Data transmission system and method
US20120150809A1 (en) * 2010-12-08 2012-06-14 Computer Associates Think, Inc. Disaster recovery services
US8699499B2 (en) 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
US9210031B1 (en) 2010-12-09 2015-12-08 Amazon Technologies, Inc. Brokering for application hosting computing resources of multiple vendor-specific provisioned computing environments
US8745233B2 (en) * 2010-12-14 2014-06-03 International Business Machines Corporation Management of service application migration in a networked computing environment
CN102024048B (zh) * 2010-12-15 2014-04-09 中兴通讯股份有限公司 一种移动终端及其浏览器的实现方法
KR101472100B1 (ko) * 2010-12-22 2014-12-11 주식회사 케이티 무선통신 시스템에서 기지국 장비 및 데이터 처리 방법
CA2724251C (en) * 2010-12-22 2012-05-15 Guest Tek Interactive Entertainment Ltd. System and method for aggregate monitoring of user-based groups of private computer networks
KR20120072250A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 동적 부하 분산 시스템 및 방법
US9020895B1 (en) * 2010-12-27 2015-04-28 Netapp, Inc. Disaster recovery for virtual machines across primary and secondary sites
KR101287066B1 (ko) * 2010-12-28 2013-07-17 건국대학교 산학협력단 소셜미디어 클라우드 서비스 지원을 위한 지능형 가상화 시스템 및 그 방법
US9223611B2 (en) 2010-12-28 2015-12-29 Microsoft Technology Licensing, Llc Storing and resuming application runtime state
US9509503B1 (en) * 2010-12-29 2016-11-29 Amazon Technologies, Inc. Encrypted boot volume access in resource-on-demand environments
US8788669B2 (en) 2011-01-03 2014-07-22 Novell, Inc. Policy and identity based workload provisioning
EP2661697B1 (en) 2011-01-07 2018-11-21 Seven Networks, LLC System and method for reduction of mobile network traffic used for domain name system (dns) queries
TWI428758B (zh) * 2011-01-13 2014-03-01 Prolific Technology Inc 電腦系統之操作方法
US8862743B1 (en) 2011-01-13 2014-10-14 Google Inc. Resource management
US8533343B1 (en) 2011-01-13 2013-09-10 Google Inc. Virtual network pairs
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
JP5238829B2 (ja) * 2011-01-13 2013-07-17 株式会社東芝 データ収集装置、データ収集プログラム、およびデータ収集システム
US9419921B1 (en) 2011-01-13 2016-08-16 Google Inc. Network address translation for virtual machines
US9619662B1 (en) 2011-01-13 2017-04-11 Google Inc. Virtual network pairs
GB2473409B (en) * 2011-01-17 2013-03-13 Quantum Corp Cloud-based de-duplication
US8954622B1 (en) * 2011-01-19 2015-02-10 Marvell International Ltd. Embedded programmable logic for logic stacking on application processor
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US9021264B2 (en) * 2011-02-03 2015-04-28 Cloudlink Technologies Inc. Method and system for cloud based storage
US8862933B2 (en) 2011-02-09 2014-10-14 Cliqr Technologies, Inc. Apparatus, systems and methods for deployment and management of distributed computing systems and applications
US10225335B2 (en) 2011-02-09 2019-03-05 Cisco Technology, Inc. Apparatus, systems and methods for container based service deployment
US8812586B1 (en) 2011-02-15 2014-08-19 Google Inc. Correlating status information generated in a computer network
US8972484B2 (en) * 2011-02-17 2015-03-03 International Business Machines Corporation Method and apparatus for efficient and accurate analytics with cross-domain correlation
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US9141410B2 (en) * 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
US8538926B2 (en) * 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US9176759B1 (en) 2011-03-16 2015-11-03 Google Inc. Monitoring and automatically managing applications
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US20120246740A1 (en) 2011-03-22 2012-09-27 Brooker Marc J Strong rights management for computing application functionality
US20120252371A1 (en) * 2011-03-29 2012-10-04 Linear Hertz Inc. Method, system and apparatus for remote interference monitoring and analysis
US8856321B2 (en) * 2011-03-31 2014-10-07 International Business Machines Corporation System to improve operation of a data center with heterogeneous computing clouds
WO2012135582A1 (en) * 2011-04-01 2012-10-04 Interdigital Patent Holdings, Inc. Network initiated triggering of an offline device
JP5691062B2 (ja) * 2011-04-04 2015-04-01 株式会社日立製作所 仮想計算機の制御方法及び管理計算機
US9195510B2 (en) 2011-04-04 2015-11-24 Dell Products L.P. Information handling system application decentralized workload management
EP2695047B1 (en) * 2011-04-04 2019-07-03 BlackBerry Limited Document management system using printer emulation
WO2012145544A2 (en) 2011-04-19 2012-10-26 Seven Networks, Inc. Device resource sharing for network resource conservation
US9323466B2 (en) 2011-04-27 2016-04-26 Commvault Systems, Inc. System and method for client policy assignment in a data storage system
GB2505585B (en) 2011-04-27 2015-08-12 Seven Networks Inc Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
EP2702827A4 (en) 2011-04-27 2014-10-22 Seven Networks Inc MOBILE DEVICE DISCHARGING REQUESTS MOBILE APPLICATION TO REMOTE ENTITY TO KEEP MOBILE DEVICE RESOURCES AND NETWORK RESOURCES AND RELATED METHODS
US8996480B2 (en) * 2011-05-04 2015-03-31 International Business Machines Corporation Method and apparatus for optimizing data storage
US9483484B1 (en) * 2011-05-05 2016-11-01 Veritas Technologies Llc Techniques for deduplicated data access statistics management
EP2705632B8 (en) * 2011-05-06 2018-09-12 Citrix Systems, Inc. Systems and methods for cloud bridging between public and private clouds
US9253252B2 (en) * 2011-05-06 2016-02-02 Citrix Systems, Inc. Systems and methods for cloud bridging between intranet resources and cloud resources
US8671414B1 (en) * 2011-05-09 2014-03-11 Emc Corporation Accelerating data intensive computing applications by reducing overhead associated with communication protocols
US9645628B1 (en) 2011-05-09 2017-05-09 EMC IP Holding Company LLC Combined data storage and computing appliance that provides scalable storage in a clustered computing environment
US8924561B2 (en) * 2011-05-13 2014-12-30 International Business Machines Corporation Dynamically resizing a networked computing environment to process a workload
US9384116B2 (en) * 2011-05-16 2016-07-05 Vmware, Inc. Graphically representing load balance in a computing cluster
US9575781B1 (en) * 2011-05-23 2017-02-21 Open Invention Network Llc Automatic determination of a virtual machine's dependencies on storage virtualization
US8543660B2 (en) * 2011-05-27 2013-09-24 Verizon Patent And Licensing Inc. Systems and methods for bridging and managing media content associated with separate media content networks
US8548439B2 (en) * 2011-05-30 2013-10-01 Curtis E. Quady Interactive property communication system
US8683064B2 (en) 2011-05-30 2014-03-25 Curtis E. Quady Interactive property communication system
US10228959B1 (en) 2011-06-02 2019-03-12 Google Llc Virtual network for virtual machine communication and migration
US9118642B2 (en) * 2011-06-05 2015-08-25 Apple Inc. Asset streaming
US8306848B1 (en) 2011-06-06 2012-11-06 International Business Machines Corporation Estimation of transit demand models for enhancing ridership
WO2012170016A1 (en) * 2011-06-07 2012-12-13 Hewlett-Packard Development Company, L.P. A scalable multi-tenant network architecture for virtualized datacenters
US8693981B1 (en) 2011-06-17 2014-04-08 Cellco Partnership Monitoring persistent client connection status in a distributed server environment
US9286182B2 (en) * 2011-06-17 2016-03-15 Microsoft Technology Licensing, Llc Virtual machine snapshotting and analysis
US9015601B2 (en) 2011-06-21 2015-04-21 Box, Inc. Batch uploading of content to a web-based collaboration environment
US8843998B2 (en) * 2011-06-27 2014-09-23 Cliqr Technologies, Inc. Apparatus, systems and methods for secure and selective access to services in hybrid public-private infrastructures
WO2013003556A1 (en) * 2011-06-29 2013-01-03 Amazon Technologies, Inc. Data locker synchronization
US8668591B2 (en) * 2011-06-29 2014-03-11 Amazon Technologies, Inc. Data locker management
US8663018B2 (en) * 2011-06-29 2014-03-04 Amazon Technologies, Inc. Data locker synchronization
US9760412B2 (en) 2011-06-30 2017-09-12 International Business Machines Corporation Client server communication system
US9753786B2 (en) 2011-06-30 2017-09-05 International Business Machines Corporation Client server communication system
US8843446B2 (en) 2011-07-04 2014-09-23 Zerto Ltd. Methods and apparatus for time-based dynamically adjusted journaling
WO2013005208A1 (en) * 2011-07-04 2013-01-10 Zerto Ltd. Methods and apparatus for providing hypervisor level data services for server virtualization
US9251033B2 (en) * 2011-07-07 2016-02-02 Vce Company, Llc Automatic monitoring and just-in-time resource provisioning system
JP5914646B2 (ja) * 2011-07-07 2016-05-11 エンパイア テクノロジー ディベロップメント エルエルシー 集約された環境におけるベンダ最適化
US9978040B2 (en) 2011-07-08 2018-05-22 Box, Inc. Collaboration sessions in a workspace on a cloud-based content management system
US9652741B2 (en) 2011-07-08 2017-05-16 Box, Inc. Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US20130019015A1 (en) * 2011-07-12 2013-01-17 International Business Machines Corporation Application Resource Manager over a Cloud
US9148495B2 (en) * 2011-07-26 2015-09-29 International Business Machines Corporation Dynamic runtime choosing of processing communication methods
US8959313B2 (en) 2011-07-26 2015-02-17 International Business Machines Corporation Using predictive determinism within a streaming environment
US8990452B2 (en) 2011-07-26 2015-03-24 International Business Machines Corporation Dynamic reduction of stream backpressure
US9141785B2 (en) * 2011-08-03 2015-09-22 Cloudbyte, Inc. Techniques for providing tenant based storage security and service level assurance in cloud storage environment
KR101311512B1 (ko) 2011-08-09 2013-09-25 주식회사 케이티 상향 링크 신호 처리 방법, 하향 링크 신호 처리 방법 및 이를 수행하는 무선 유닛
US8745384B2 (en) * 2011-08-11 2014-06-03 Cisco Technology, Inc. Security management in a group based environment
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
KR101289879B1 (ko) 2011-08-16 2013-07-24 주식회사 케이티 디지털 신호 처리 장치, 신호 처리 시스템 및 신호 처리 방법
US9152405B2 (en) 2011-08-22 2015-10-06 International Business Machines Corporation Rapid provisioning of virtual machines based on multi-dimensional user request patterns in a cloud
US9489222B2 (en) * 2011-08-24 2016-11-08 Radware, Ltd. Techniques for workload balancing among a plurality of physical machines
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
EP2566135B1 (en) * 2011-09-01 2018-04-04 Software AG Cloud-based mainframe integration system and method
US9858551B2 (en) * 2011-09-02 2018-01-02 Bbs Technologies, Inc. Ranking analysis results based on user perceived problems in a database system
US8774208B2 (en) * 2011-09-14 2014-07-08 Qualcomm Incorporated Management of TCP/IP messaging in wireless networks
US8930547B2 (en) * 2011-09-14 2015-01-06 Cloudbyte, Inc. Techniques for achieving storage and network isolation in a cloud storage environment
US8635152B2 (en) 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
US20130067469A1 (en) * 2011-09-14 2013-03-14 Microsoft Corporation Load Balancing By Endpoints
US9628402B2 (en) * 2011-09-22 2017-04-18 International Business Machines Corporation Provisioning of resources
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US9069616B2 (en) 2011-09-23 2015-06-30 Google Inc. Bandwidth throttling of virtual disks
US9036185B2 (en) 2011-09-28 2015-05-19 Hewlett-Packard Development Company, L.P. Managing network connections
US20130086685A1 (en) * 2011-09-29 2013-04-04 Stephen Ricky Haynes Secure integrated cyberspace security and situational awareness system
US20140237178A1 (en) * 2011-09-29 2014-08-21 Raju C. Bopardikar Storage resource acknowledgments
US9075811B2 (en) * 2011-09-30 2015-07-07 Symantec Corporation Cloud information migration systems and methods
US20130086298A1 (en) * 2011-10-04 2013-04-04 International Business Machines Corporation Live Logical Partition Migration with Stateful Offload Connections Using Context Extraction and Insertion
US20130083690A1 (en) * 2011-10-04 2013-04-04 International Business Machines Corporation Network Adapter Hardware State Migration Discovery in a Stateful Environment
US8515902B2 (en) 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
US9130991B2 (en) 2011-10-14 2015-09-08 Silver Peak Systems, Inc. Processing data packets in performance enhancing proxy (PEP) environment
CN103064740A (zh) * 2011-10-19 2013-04-24 鸿富锦精密工业(深圳)有限公司 客户操作系统预测迁移系统及方法
KR101311523B1 (ko) 2011-10-26 2013-09-25 주식회사 케이티 이종 망 간의 망 부하 분산 방법
KR101311524B1 (ko) 2011-10-27 2013-09-25 주식회사 케이티 이종 망의 경계 주변에 위치하는 단말의 망 천이 방법
EP2774029A4 (en) 2011-10-31 2016-01-13 Hewlett Packard Development Co PRESENTATION OF PERMITS FOR THE PRESENTATION OF CONTENT
US9311679B2 (en) * 2011-10-31 2016-04-12 Hearsay Social, Inc. Enterprise social media management platform with single sign-on
US9626224B2 (en) 2011-11-03 2017-04-18 Silver Peak Systems, Inc. Optimizing available computing resources within a virtual environment
US8819230B2 (en) * 2011-11-05 2014-08-26 Zadara Storage, Ltd. Virtual private storage array service for cloud servers
US9235856B2 (en) * 2011-11-10 2016-01-12 Verizon Patent And Licensing Inc. Providing overlay networks via elastic cloud networking
US9311160B2 (en) 2011-11-10 2016-04-12 Verizon Patent And Licensing Inc. Elastic cloud networking
US8276140B1 (en) 2011-11-14 2012-09-25 Google Inc. Adjustable virtual network performance
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
GB2500152A (en) 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
KR101262340B1 (ko) 2011-11-30 2013-05-08 주식회사 케이티 시스템 정보 제공 장치 및 그 방법
US20130142201A1 (en) * 2011-12-02 2013-06-06 Microsoft Corporation Connecting on-premise networks with public clouds
WO2013086214A1 (en) 2011-12-06 2013-06-13 Seven Networks, Inc. A system of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
WO2013086455A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US8990804B1 (en) * 2011-12-07 2015-03-24 Amazon Technologies, Inc. Converting virtual machine images from source to destination virtualization environments
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
US11290912B2 (en) 2011-12-14 2022-03-29 Seven Networks, Llc Mobile device configured for operating in a power save mode and a traffic optimization mode and related method
US20130159511A1 (en) * 2011-12-14 2013-06-20 Seven Networks, Inc. System and method for generating a report to a network operator by distributing aggregation of data
EP3249546B1 (en) 2011-12-14 2022-02-09 Level 3 Communications, LLC Content delivery network
US8725798B2 (en) 2011-12-15 2014-05-13 Microsoft Corporation Provisioning high performance computing clusters
CN102521380B (zh) * 2011-12-20 2013-07-17 浙江省电力公司 一种电网cim模型及svg图形数据导入的方法
US9178698B1 (en) 2011-12-21 2015-11-03 Google Inc. Dynamic key management
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US20130166504A1 (en) * 2011-12-27 2013-06-27 RiverMeadow Software, Inc. Systems and methods for virtual machine migration
EP2798488B1 (en) * 2011-12-27 2020-10-14 NetApp, Inc. Proportional quality of service based on client usage and system metrics
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US9003021B2 (en) 2011-12-27 2015-04-07 Solidfire, Inc. Management of storage system access based on client performance and cluser health
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US20130173903A1 (en) * 2011-12-29 2013-07-04 Eric T. Obligacion Unified network architecture having storage devices with secure boot devices
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US20130179636A1 (en) * 2012-01-05 2013-07-11 Hitachi, Ltd. Management apparatus and management method of computer system
US10514937B2 (en) * 2012-01-05 2019-12-24 Vmware, Inc. Auto-discovery service and method of discovering applications within a virtual network
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US9954718B1 (en) * 2012-01-11 2018-04-24 Amazon Technologies, Inc. Remote execution of applications over a dispersed network
US9184991B2 (en) * 2012-01-13 2015-11-10 American Megatrends, Inc. Method and apparatus for developing service processor solutions
US10257109B2 (en) 2012-01-18 2019-04-09 International Business Machines Corporation Cloud-based content management system
JP5750714B2 (ja) * 2012-01-19 2015-07-22 株式会社日立製作所 計算機システム、仮想サーバ配置方法及び配置制御装置
US9075643B2 (en) 2012-01-23 2015-07-07 International Business Machines Corporation Automatically selecting optimal transport protocol in a cloud computing environment
JPWO2013111532A1 (ja) * 2012-01-25 2015-05-11 日本電気株式会社 管理システム、管理方法およびプログラム
US9158568B2 (en) 2012-01-30 2015-10-13 Hewlett-Packard Development Company, L.P. Input/output operations at a virtual block device of a storage server
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US9405553B2 (en) 2012-01-30 2016-08-02 International Business Machines Corporation Processing element management in a streaming data system
US9098378B2 (en) 2012-01-31 2015-08-04 International Business Machines Corporation Computing reusable image components to minimize network bandwidth usage
US8813205B2 (en) 2012-02-06 2014-08-19 International Business Machines Corporation Consolidating disparate cloud service data and behavior based on trust relationships between cloud services
JP6019139B2 (ja) * 2012-02-06 2016-11-02 エンパイア テクノロジー ディベロップメント エルエルシー クラウドサービス間の転送時のアプリケーション性能の維持
US8832037B2 (en) 2012-02-07 2014-09-09 Zerto Ltd. Adaptive quiesce for efficient cross-host consistent CDP checkpoints
EP2812809A4 (en) 2012-02-10 2016-05-25 Oracle Int Corp FRAMEWORK FOR CLOUD COMPUTING SERVICES
US9330106B2 (en) 2012-02-15 2016-05-03 Citrix Systems, Inc. Selective synchronization of remotely stored content
US9672052B1 (en) 2012-02-16 2017-06-06 Google Inc. Secure inter-process communication
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US8996887B2 (en) 2012-02-24 2015-03-31 Google Inc. Log structured volume encryption for virtual machines
US9098325B2 (en) * 2012-02-28 2015-08-04 Hewlett-Packard Development Company, L.P. Persistent volume at an offset of a virtual block device of a storage server
CN102638567B (zh) * 2012-03-02 2015-05-20 深圳市朗科科技股份有限公司 多应用云存储平台和云存储终端
JP5978659B2 (ja) * 2012-03-06 2016-08-24 日本電気株式会社 シンクライアントシステム、管理サーバ、業務環境設定方法、及び業務環境設定プログラム
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
KR101930263B1 (ko) 2012-03-12 2018-12-18 삼성전자주식회사 클라우드 게이트웨이의 콘텐츠 관리 장치 및 방법
US9213581B2 (en) * 2012-03-14 2015-12-15 Sap Se Method and system for a cloud frame architecture
WO2013137898A2 (en) * 2012-03-16 2013-09-19 Empire Technology Development Llc Data migration
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
EP2645631B1 (en) 2012-03-26 2018-11-21 Tata Consultancy Services Limited A method and a system for automating an enterprise network optimization
US9069806B2 (en) 2012-03-27 2015-06-30 Google Inc. Virtual block devices
US9047134B2 (en) 2012-03-27 2015-06-02 Infosys Limited System and method for increasing the capabilities of a mobile device
US9158734B1 (en) * 2012-03-30 2015-10-13 Emc Corporation Method and apparatus for elastic provisioning
US9928107B1 (en) 2012-03-30 2018-03-27 Amazon Technologies, Inc. Fast IP migration in a hybrid network environment
US9164795B1 (en) * 2012-03-30 2015-10-20 Amazon Technologies, Inc. Secure tunnel infrastructure between hosts in a hybrid network environment
US9455883B1 (en) 2012-03-30 2016-09-27 Emc Corporation Method and apparatus for provisioning shared NFS storage
US9197489B1 (en) 2012-03-30 2015-11-24 Amazon Technologies, Inc. Live migration of virtual machines in a hybrid network environment
CN102663081A (zh) * 2012-04-01 2012-09-12 杭州格畅科技有限公司 在线应用平台内浏览网页的方法及在线浏览器、在线应用平台
US8909939B1 (en) 2012-04-04 2014-12-09 Google Inc. Distribution of cryptographic host keys in a cloud computing environment
US9054919B2 (en) 2012-04-05 2015-06-09 Box, Inc. Device pinning capability for enterprise cloud service and storage accounts
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US20130274021A1 (en) * 2012-04-11 2013-10-17 Meteor Entertainment, Inc. Computing platform for supporting massively multi-player online games
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
CN102662746A (zh) * 2012-04-22 2012-09-12 复旦大学 利用虚拟机并发迁移技术降低云计算平台能源消耗的方法
US8903764B2 (en) * 2012-04-25 2014-12-02 International Business Machines Corporation Enhanced reliability in deduplication technology over storage clouds
US9146775B2 (en) 2012-04-26 2015-09-29 International Business Machines Corporation Operator graph changes in response to dynamic connections in stream computing applications
US9462080B2 (en) * 2012-04-27 2016-10-04 Hewlett-Packard Development Company, L.P. Management service to manage a file
US9075648B2 (en) 2012-04-27 2015-07-07 Empire Technology Development Llc Virtual machine switching based on measured network delay
US20130290511A1 (en) * 2012-04-27 2013-10-31 Susan Chuzhi Tu Managing a sustainable cloud computing service
US9294437B1 (en) 2012-05-01 2016-03-22 Amazon Technologies, Inc. Remotely configured network appliances and services
US9450967B1 (en) 2012-05-01 2016-09-20 Amazon Technologies, Inc. Intelligent network service provisioning and maintenance
US9438556B1 (en) * 2012-05-01 2016-09-06 Amazon Technologies, Inc Flexibly configurable remote network identities
US9288182B1 (en) 2012-05-01 2016-03-15 Amazon Technologies, Inc. Network gateway services and extensions
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
GB2514947B (en) 2012-05-04 2015-06-17 Box Inc Repository redundancy implementation of a system which incrementally updates clients with events that occured via a cloud-enabled platform
US9769085B2 (en) * 2012-05-04 2017-09-19 Citrix Systems, Inc. Systems and methods for adaptive application provisioning
US20130304768A1 (en) * 2012-05-09 2013-11-14 Michael Basnight Advancements in Systems and Methods for Quickly and Transparently Provisioning, Horizontal Sealing, and Managing of Databases in a Cloud Environment
US9152640B2 (en) * 2012-05-10 2015-10-06 Hewlett-Packard Development Company, L.P. Determining file allocation based on file operations
US9466036B1 (en) * 2012-05-10 2016-10-11 Amazon Technologies, Inc. Automated reconfiguration of shared network resources
TWI476627B (zh) * 2012-05-11 2015-03-11 Chunghwa Telecom Co Ltd The management system and method of network service level and function of cloud virtual desktop application
WO2013173611A1 (en) * 2012-05-16 2013-11-21 North Carolina State University Cloud powered system enabling mobile devices to control peripherals without drivers
US9237188B1 (en) 2012-05-21 2016-01-12 Amazon Technologies, Inc. Virtual machine based content processing
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US9027108B2 (en) 2012-05-23 2015-05-05 Box, Inc. Systems and methods for secure file portability between mobile applications on a mobile device
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
CN102750324A (zh) 2012-05-28 2012-10-24 华为技术有限公司 文件存储系统、装置及文件存取方法
US9135045B2 (en) 2012-05-29 2015-09-15 International Business Machines Corporation Generating user-requested virtual machine templates from super virtual machine templates and cacheable patches
US8825006B2 (en) 2012-05-30 2014-09-02 International Business Machines Corporation Authentication request management
US9304801B2 (en) * 2012-06-12 2016-04-05 TELEFONAKTIEBOLAGET L M ERRICSSON (publ) Elastic enforcement layer for cloud security using SDN
US8949401B2 (en) 2012-06-14 2015-02-03 Dell Products L.P. Automated digital migration
US8880638B2 (en) * 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
GB2503463A (en) * 2012-06-27 2014-01-01 Ibm Overriding abstract resource manager methods to provide resources to implement nodes in a service definition
US9639383B1 (en) * 2012-06-27 2017-05-02 EMC IP Holding Company LLC Volume moving
US20140007189A1 (en) * 2012-06-28 2014-01-02 International Business Machines Corporation Secure access to shared storage resources
US8918493B1 (en) 2012-06-28 2014-12-23 Emc Corporation Methods and apparatus for automating service lifecycle management
US10025638B2 (en) * 2012-07-02 2018-07-17 Vmware, Inc. Multiple-cloud-computing-facility aggregation
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
WO2014011216A1 (en) 2012-07-13 2014-01-16 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US8468139B1 (en) 2012-07-16 2013-06-18 Dell Products L.P. Acceleration of cloud-based migration/backup through pre-population
JP6021487B2 (ja) * 2012-07-18 2016-11-09 キヤノン株式会社 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
US9237170B2 (en) 2012-07-19 2016-01-12 Box, Inc. Data loss prevention (DLP) methods and architectures by a cloud service
US9513950B2 (en) 2012-07-25 2016-12-06 Vmware, Inc. Dynamic resource configuration based on context
US9003037B2 (en) * 2012-07-25 2015-04-07 Vmware, Inc. Dynamic allocation of physical computing resources amongst virtual machines
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US8868574B2 (en) 2012-07-30 2014-10-21 Box, Inc. System and method for advanced search and filtering mechanisms for enterprise administrators in a cloud-based environment
CN103580902B (zh) * 2012-08-07 2015-01-14 腾讯科技(深圳)有限公司 一种计算机信息系统及其动态容灾方法
US9779219B2 (en) 2012-08-09 2017-10-03 Dell Products L.P. Method and system for late binding of option features associated with a device using at least in part license and unique ID information
US20130080760A1 (en) * 2012-08-10 2013-03-28 Concurix Corporation Execution Environment with Feedback Loop
US8966462B2 (en) 2012-08-10 2015-02-24 Concurix Corporation Memory management parameters derived from system modeling
US9043788B2 (en) 2012-08-10 2015-05-26 Concurix Corporation Experiment manager for manycore systems
US20140047114A1 (en) * 2012-08-13 2014-02-13 Cisco Technology, Inc. Virtual desktop policy control
CN103593256B (zh) 2012-08-15 2017-05-24 阿里巴巴集团控股有限公司 一种基于多层排重的虚机快照备份方法和系统
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9110844B2 (en) * 2012-08-27 2015-08-18 Microsoft Technology Licensing, Llc State maintenance as a service
GB2513671A (en) 2012-08-27 2014-11-05 Box Inc Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
CN102843432B (zh) * 2012-08-30 2015-01-07 西可通信技术设备(河源)有限公司 适用于多客户端数据共享和同步更新的网络通信系统
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US10013261B2 (en) * 2012-09-10 2018-07-03 Intel Corporation Techniques for managing or controlling computing devices
KR101242458B1 (ko) * 2012-09-13 2013-03-12 효성아이티엑스(주) 지능형 분산 스토리지 서비스 시스템 및 방법
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US8438654B1 (en) 2012-09-14 2013-05-07 Rightscale, Inc. Systems and methods for associating a virtual machine with an access control right
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9355036B2 (en) 2012-09-18 2016-05-31 Netapp, Inc. System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
EP2901301A4 (en) * 2012-09-27 2016-09-21 Hewlett Packard Entpr Dev Lp DYNAMIC MANAGEMENT OF A CLOUD COMPUTING INFRASTRUCTURE
US8898507B1 (en) 2012-09-27 2014-11-25 Emc Corporation Methods and apparatus for disaster tolerant clusters of hypervisors as a virtualized infrastructure service
US10554505B2 (en) 2012-09-28 2020-02-04 Intel Corporation Managing data center resources to achieve a quality of service
CN103716835B (zh) * 2012-09-29 2017-06-16 国际商业机器公司 基于多路径传输和接收数据的方法、装置和系统
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
JP6441803B2 (ja) * 2012-10-04 2018-12-19 アルカテル−ルーセント マルチクライアント・アーキテクチャでのデータ・ログ管理
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
TWI459210B (zh) * 2012-10-09 2014-11-01 Univ Nat Cheng Kung 多重雲溝通系統
KR101438461B1 (ko) * 2012-10-15 2014-11-03 (주) 글루시스 전력 제어 스위칭 모듈을 구비한 클라우드 스토리지 시스템
EP2784717A1 (en) 2012-10-17 2014-10-01 Box, Inc. Remote key management in a cloud-based environment
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9571507B2 (en) 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
US9164880B2 (en) * 2012-10-23 2015-10-20 Hitachi, Ltd. Method and apparatus for offloading storage workload
US10248453B2 (en) 2012-10-23 2019-04-02 Red Hat Israel, Ltd. Client live migration for a virtual machine
US8893291B2 (en) * 2012-10-30 2014-11-18 Samsung Sds Co., Ltd. Security through metadata orchestrators
US9280546B2 (en) 2012-10-31 2016-03-08 Palo Alto Research Center Incorporated System and method for accessing digital content using a location-independent name
US9762503B2 (en) 2012-11-05 2017-09-12 Sea Street Technologies, Inc. Systems and methods for provisioning and managing an elastic computing infrastructure
US9930081B2 (en) 2012-11-13 2018-03-27 International Business Machines Corporation Streams optional execution paths depending upon data rates
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US9015714B2 (en) * 2012-11-27 2015-04-21 Citrix Systems, Inc. Diagnostic virtual machine created to monitor cluster of hypervisors based on user requesting assistance from cluster administrator
US8954467B2 (en) * 2012-11-29 2015-02-10 Citrix Systems, Inc. Systems and methods for automatically associating communication streams with a file presented during a meeting
US9344465B2 (en) * 2012-12-04 2016-05-17 International Business Machines Corporation Correlating computing network events
US10009065B2 (en) 2012-12-05 2018-06-26 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US9113347B2 (en) 2012-12-05 2015-08-18 At&T Intellectual Property I, Lp Backhaul link for distributed antenna system
US10430839B2 (en) 2012-12-12 2019-10-01 Cisco Technology, Inc. Distributed advertisement insertion in content-centric networks
US9411407B2 (en) * 2012-12-12 2016-08-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Sequential power up of devices in a computing cluster based on relative commonality
US10652087B2 (en) 2012-12-13 2020-05-12 Level 3 Communications, Llc Content delivery framework having fill services
US10701149B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having origin services
US20140337472A1 (en) 2012-12-13 2014-11-13 Level 3 Communications, Llc Beacon Services in a Content Delivery Framework
US10701148B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having storage services
US9634904B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Framework supporting content delivery with hybrid content delivery services
US10791050B2 (en) 2012-12-13 2020-09-29 Level 3 Communications, Llc Geographic location determination in a content delivery framework
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
KR20150093832A (ko) * 2012-12-14 2015-08-18 후아웨이 테크놀러지 컴퍼니 리미티드 부모-자식 기지국 클러스터, 집중 유닛, 원격 유닛 및 정보 처리 방법
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9819729B2 (en) * 2012-12-21 2017-11-14 Bmc Software, Inc. Application monitoring for cloud-based architectures
US9069594B1 (en) * 2012-12-27 2015-06-30 Emc Corporation Burst buffer appliance comprising multiple virtual machines
CN104995615B (zh) * 2012-12-27 2018-03-30 英特尔公司 本地计算设备的预订和执行镜像写入
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9703584B2 (en) 2013-01-08 2017-07-11 Commvault Systems, Inc. Virtual server agent load balancing
US9418181B2 (en) * 2013-01-09 2016-08-16 Apple Inc. Simulated input/output devices
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9507795B2 (en) 2013-01-11 2016-11-29 Box, Inc. Functionalities, features, and user interface of a synchronization client to a cloud-based environment
WO2014112981A1 (en) * 2013-01-15 2014-07-24 Empire Technology Development, Llc Function-targeted virtual machine switching
US10599671B2 (en) 2013-01-17 2020-03-24 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US10019457B1 (en) 2013-01-22 2018-07-10 Amazon Technologies, Inc. Multi-level compression for storing data in a data store
CN105027108B (zh) * 2013-01-22 2018-06-08 亚马逊科技公司 实例主机配置
US9002997B2 (en) 2013-01-22 2015-04-07 Amazon Technologies, Inc. Instance host configuration
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9195483B2 (en) 2013-01-28 2015-11-24 Dell Products L.P. Systems and methods for mirroring virtual functions in a chassis configured to receive a plurality of modular information handling systems and a plurality of modular information handling resources
WO2014134771A1 (en) * 2013-03-04 2014-09-12 Intel Corporation Energy aware information processing framework for computation and communication devices (ccd) coupled to a cloud
US9002982B2 (en) * 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US11252633B2 (en) * 2013-03-12 2022-02-15 Gerald Douglas Hosier, JR. Online systems and methods for advancing information organization sharing and collective action
US9306894B1 (en) * 2013-03-12 2016-04-05 Ca, Inc. Automatic detection and notification of backlogs and delays
US9473570B2 (en) * 2013-03-13 2016-10-18 Cisco Technology, Inc. Instantiating an application flow into a chain of services in a virtual data center
US10216503B2 (en) 2013-03-13 2019-02-26 Elasticbox Inc. Deploying, monitoring, and controlling multiple components of an application
US20130219372A1 (en) 2013-03-15 2013-08-22 Concurix Corporation Runtime Settings Derived from Relationships Identified in Tracer Data
CA2907306C (en) * 2013-03-15 2021-10-19 Videri Inc. Systems and methods for displaying, distributing, viewing, and controlling digital art and imaging
US9584633B2 (en) * 2013-03-15 2017-02-28 Tria Network Systems, LLC Method and system for managing network communications
US9967111B2 (en) * 2013-03-15 2018-05-08 Rackspace Us, Inc. Software-defined multinetwork bridge
US9509549B2 (en) * 2013-03-15 2016-11-29 Cisco Technology, Inc. Extending routing rules from external services
US10445340B2 (en) * 2013-03-15 2019-10-15 Ajay JADHAV Use of collaborative server in a cloud-based environment
US9430255B1 (en) 2013-03-15 2016-08-30 Google Inc. Updating virtual machine generated metadata to a distribution service for sharing and backup
JP6020273B2 (ja) * 2013-03-19 2016-11-02 富士通株式会社 監視装置,情報処理システム,監視方法および監視プログラム
WO2014147438A1 (en) * 2013-03-19 2014-09-25 Emc Corporation Managing provisioning of storage resources
US9978025B2 (en) 2013-03-20 2018-05-22 Cisco Technology, Inc. Ordered-element naming for name-based packet forwarding
US9569476B2 (en) 2013-04-02 2017-02-14 International Business Machines Corporation Intelligent data routing and storage provisioning
US9515902B2 (en) 2013-04-17 2016-12-06 Empire Technology Development Llc Datacenter border-issued analytics for monitoring federated services
US9426155B2 (en) 2013-04-18 2016-08-23 International Business Machines Corporation Extending infrastructure security to services in a cloud computing environment
US9436614B2 (en) 2013-05-02 2016-09-06 Globalfoundries Inc. Application-directed memory de-duplication
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10218622B2 (en) * 2013-05-13 2019-02-26 Vmware, Inc. Placing a network device into a maintenance mode in a virtualized computing environment
US10073858B2 (en) * 2013-05-16 2018-09-11 Oracle International Corporation Systems and methods for tuning a storage system
US20140344808A1 (en) * 2013-05-20 2014-11-20 International Business Machines Corporation Dynamically modifying workload patterns in a cloud
US9935791B2 (en) 2013-05-20 2018-04-03 Cisco Technology, Inc. Method and system for name resolution across heterogeneous architectures
US9411966B1 (en) * 2013-05-21 2016-08-09 Amazon Technologies, Inc. Confidential data access and storage
US9384204B2 (en) * 2013-05-22 2016-07-05 Amazon Technologies, Inc. Efficient data compression and analysis as a service
US9185120B2 (en) 2013-05-23 2015-11-10 Palo Alto Research Center Incorporated Method and system for mitigating interest flooding attacks in content-centric networks
JP2014229166A (ja) * 2013-05-24 2014-12-08 富士通株式会社 通信システム、通信方法、事業管理システム、管理装置、プログラム、中継装置、データ位置管理装置
US9083724B2 (en) * 2013-05-30 2015-07-14 Netapp, Inc. System iteratively reducing I/O requests during migration of virtual storage system
US9525524B2 (en) 2013-05-31 2016-12-20 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9331894B2 (en) * 2013-05-31 2016-05-03 International Business Machines Corporation Information exchange in data center systems
US9999038B2 (en) 2013-05-31 2018-06-12 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9405666B2 (en) 2013-06-03 2016-08-02 Empire Technology Development Llc Health monitoring using snapshot backups through test vectors
US10963431B2 (en) * 2013-06-11 2021-03-30 Red Hat, Inc. Storing an object in a distributed storage system
GB2515192B (en) 2013-06-13 2016-12-14 Box Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
WO2014209270A1 (en) * 2013-06-24 2014-12-31 Hitachi, Ltd. Method and an apparatus to a cloud management system allocating dynamic wan optimizing function resources
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US9191209B2 (en) 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US9619545B2 (en) 2013-06-28 2017-04-11 Oracle International Corporation Naïve, client-side sharding with online addition of shards
JP6266657B2 (ja) * 2013-07-03 2018-01-24 株式会社日立製作所 仮想ストレージシステムのシン・プロビジョニング
US9836330B2 (en) * 2013-07-16 2017-12-05 Hitachi, Ltd. Virtual resource management tool for cloud computing service
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
CN105359605B (zh) * 2013-07-25 2019-02-19 华为技术有限公司 带有自组织中继终端的蜂窝网络的基于贪婪算法的自主资源块分配方案的系统和方法
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9444722B2 (en) 2013-08-01 2016-09-13 Palo Alto Research Center Incorporated Method and apparatus for configuring routing paths in a custodian-based routing architecture
US10860529B2 (en) 2014-08-11 2020-12-08 Netapp Inc. System and method for planning and configuring a file system migration
US9311331B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. Detecting out-of-band (OOB) changes when replicating a source file system using an in-line system
US9300692B2 (en) 2013-08-27 2016-03-29 Netapp, Inc. System and method for implementing data migration while preserving security policies of a source filer
US20160041996A1 (en) 2014-08-11 2016-02-11 Netapp, Inc. System and method for developing and implementing a migration plan for migrating a file system
US9311314B2 (en) * 2013-08-27 2016-04-12 Netapp, Inc. System and method for migrating data from a source file system to a destination file system with use of attribute manipulation
US9304997B2 (en) 2013-08-27 2016-04-05 Netapp, Inc. Asynchronously migrating a file system
US9374308B2 (en) * 2013-08-30 2016-06-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Openflow switch mode transition processing
US9569268B2 (en) 2013-09-09 2017-02-14 EMC IP Holding Company LLC Resource provisioning based on logical profiles and objective functions
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US9633210B2 (en) 2013-09-13 2017-04-25 Microsoft Technology Licensing, Llc Keying infrastructure
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US10761895B2 (en) 2013-09-26 2020-09-01 Vmware, Inc. Selective allocation of physical computing resources amongst virtual machines based on user attribute values contained in user profiles
EP3053052B1 (en) * 2013-10-03 2019-08-14 Hewlett Packard Enterprise Development LP Managing a number of secondary clouds by a master cloud service manager
US9396338B2 (en) * 2013-10-15 2016-07-19 Intuit Inc. Method and system for providing a secure secrets proxy
US9384362B2 (en) 2013-10-14 2016-07-05 Intuit Inc. Method and system for distributing secrets
CN104572340A (zh) * 2013-10-18 2015-04-29 宇宙互联有限公司 增量备份系统及方法
CN105309012A (zh) * 2013-10-18 2016-02-03 华为技术有限公司 一种接入点设备的唤醒方法、设备及系统
GB2519516B (en) * 2013-10-21 2017-05-10 Openwave Mobility Inc A method, apparatus and computer program for modifying messages in a communications network
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US20150113092A1 (en) * 2013-10-23 2015-04-23 Futurewei Technologies, Inc. Method and apparatus for distributed enterprise data pattern recognition
US9407549B2 (en) 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
CN103559054B (zh) * 2013-10-30 2017-10-10 华为终端有限公司 智能终端多操作系统的实现、删除方法和装置
US9282050B2 (en) 2013-10-30 2016-03-08 Palo Alto Research Center Incorporated System and method for minimum path MTU discovery in content centric networks
US9276840B2 (en) 2013-10-30 2016-03-01 Palo Alto Research Center Incorporated Interest messages with a payload for a named data network
US9338057B2 (en) * 2013-10-30 2016-05-10 Netapp, Inc. Techniques for searching data associated with devices in a heterogeneous data center
US9401864B2 (en) 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US9894069B2 (en) 2013-11-01 2018-02-13 Intuit Inc. Method and system for automatically managing secret application and maintenance
US9467477B2 (en) 2013-11-06 2016-10-11 Intuit Inc. Method and system for automatically managing secrets in multiple data security jurisdiction zones
US9444818B2 (en) 2013-11-01 2016-09-13 Intuit Inc. Method and system for automatically managing secure communications in multiple communications jurisdiction zones
US8897697B1 (en) 2013-11-06 2014-11-25 At&T Intellectual Property I, Lp Millimeter-wave surface-wave communications
US9282122B2 (en) 2014-04-30 2016-03-08 Intuit Inc. Method and apparatus for multi-tenancy secrets management
US9379950B2 (en) * 2013-11-07 2016-06-28 International Business Machines Corporation Using cloud resources to improve performance of a streaming application
CN103581324B (zh) * 2013-11-11 2016-09-07 中国联合网络通信集团有限公司 一种云计算资源池系统及其实现方法
US10129365B2 (en) 2013-11-13 2018-11-13 Cisco Technology, Inc. Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
US10101801B2 (en) 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US9311377B2 (en) 2013-11-13 2016-04-12 Palo Alto Research Center Incorporated Method and apparatus for performing server handoff in a name-based content distribution system
US10089655B2 (en) 2013-11-27 2018-10-02 Cisco Technology, Inc. Method and apparatus for scalable data broadcasting
US20160149763A1 (en) * 2013-11-27 2016-05-26 Carl B Ingram Systems and Methods for Providing an Administrative Framework in a Cloud Architecture
US10037410B2 (en) * 2013-11-27 2018-07-31 General Electric Company Cloud-based clinical information systems and methods of use
US10257069B1 (en) 2013-11-27 2019-04-09 Carl B. Ingram Systems and methods for providing an administrative framework in a cloud architecture
US9164695B2 (en) * 2013-12-03 2015-10-20 Vmware, Inc. Placing a storage network device into a maintenance mode in a virtualized computing environment
US9503358B2 (en) 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US9209902B2 (en) 2013-12-10 2015-12-08 At&T Intellectual Property I, L.P. Quasi-optical coupler
US20150169251A1 (en) * 2013-12-12 2015-06-18 Cirrus Data Solutions, Inc. SYSTEMS, APPARATUS, AND METHODS FOR TRANSMITTING DATA AND INSTRUCTIONS USING AN iSCSI COMMAND
US9563463B2 (en) * 2013-12-13 2017-02-07 Hitachi, Ltd. Computer system and control method therefor
US9965363B2 (en) 2013-12-14 2018-05-08 Netapp, Inc. Techniques for LIF placement in SAN storage cluster synchronous disaster recovery
CN104731521B (zh) * 2013-12-23 2018-02-16 伊姆西公司 用于配置数据中心的方法及设备
US10200239B2 (en) * 2013-12-27 2019-02-05 Red Hat Israel, Ltd. Normalized management network
US11749988B2 (en) 2014-01-09 2023-09-05 Nautilus True, Llc System and method for intelligent data center power management and energy market disaster recovery
US20150190704A1 (en) * 2014-01-09 2015-07-09 Patrick McDowell Mounting bracket and brake assembly
US9379979B2 (en) 2014-01-14 2016-06-28 Palo Alto Research Center Incorporated Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
JP6461167B2 (ja) 2014-01-21 2019-01-30 オラクル・インターナショナル・コーポレイション アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムおよび方法
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US10172068B2 (en) 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US9374304B2 (en) 2014-01-24 2016-06-21 Palo Alto Research Center Incorporated End-to end route tracing over a named-data network
WO2015114745A1 (ja) * 2014-01-29 2015-08-06 株式会社日立製作所 計算機及び計算機のi/o制御方法
US9531679B2 (en) 2014-02-06 2016-12-27 Palo Alto Research Center Incorporated Content-based transport security for distributed producers
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
US10264025B2 (en) 2016-06-24 2019-04-16 Varmour Networks, Inc. Security policy generation for virtualization, bare-metal server, and cloud computing environments
US10225325B2 (en) 2014-02-13 2019-03-05 Oracle International Corporation Access management in a data storage system
US11809451B2 (en) 2014-02-19 2023-11-07 Snowflake Inc. Caching systems and methods
US9678998B2 (en) 2014-02-28 2017-06-13 Cisco Technology, Inc. Content name resolution for information centric networking
US20150249709A1 (en) * 2014-02-28 2015-09-03 Vmware, Inc. Extending cloud storage with private devices
US10089651B2 (en) 2014-03-03 2018-10-02 Cisco Technology, Inc. Method and apparatus for streaming advertisements in a scalable data broadcasting system
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9535734B2 (en) * 2014-03-06 2017-01-03 International Business Machines Corporation Managing stream components based on virtual machine performance adjustments
US20150256393A1 (en) * 2014-03-06 2015-09-10 Dell Products, Lp System and Method for Providing a Tile Management Controller
US9794139B2 (en) 2014-03-07 2017-10-17 International Business Machines Corporation Allocating operators of a streaming application to virtual machines based on monitored performance
US9438490B2 (en) * 2014-03-07 2016-09-06 International Business Machines Corporation Allocating operators of a streaming application to virtual machines based on monitored performance
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
JP2015170242A (ja) * 2014-03-10 2015-09-28 富士通株式会社 中継プログラム、中継方法、および中継装置
US9473405B2 (en) 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9391896B2 (en) 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9424059B1 (en) * 2014-03-12 2016-08-23 Nutanix, Inc. System and methods for implementing quality of service in a networked virtualization environment for storage management
US9652597B2 (en) * 2014-03-12 2017-05-16 Symantec Corporation Systems and methods for detecting information leakage by an organizational insider
US9424216B2 (en) * 2014-03-14 2016-08-23 International Business Machines Corporation Ascertaining configuration of a virtual adapter in a computing environment
US9374324B2 (en) * 2014-03-14 2016-06-21 International Business Machines Corporation Determining virtual adapter access controls in a computing environment
US9882825B2 (en) * 2014-03-14 2018-01-30 Citrix Systems, Inc. Method and system for securely transmitting volumes into cloud
US9794311B2 (en) * 2014-03-18 2017-10-17 Qualcomm Incorporated Transport accelerator implementing extended transmission control functionality
US9407432B2 (en) 2014-03-19 2016-08-02 Palo Alto Research Center Incorporated System and method for efficient and secure distribution of digital content
US9916601B2 (en) 2014-03-21 2018-03-13 Cisco Technology, Inc. Marketplace for presenting advertisements in a scalable data broadcasting system
US9135437B1 (en) 2014-03-24 2015-09-15 Amazon Technologies, Inc. Hypervisor enforcement of cryptographic policy
US10506075B1 (en) * 2014-03-26 2019-12-10 Amazon Technologies, Inc. Link correction system and methods
US9363179B2 (en) 2014-03-26 2016-06-07 Palo Alto Research Center Incorporated Multi-publisher routing protocol for named data networks
JP6393776B2 (ja) * 2014-03-26 2018-09-19 ティヴォ ソリューションズ インコーポレイテッド マルチメディアのパイプライン機構
JP6269253B2 (ja) * 2014-03-29 2018-01-31 富士通株式会社 分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム
US9363086B2 (en) 2014-03-31 2016-06-07 Palo Alto Research Center Incorporated Aggregate signing of data in content centric networking
US10057325B2 (en) * 2014-03-31 2018-08-21 Nuvestack, Inc. Remote desktop infrastructure
US10404613B1 (en) * 2014-03-31 2019-09-03 Amazon Technologies, Inc. Placement of control and data plane resources
US10148505B2 (en) * 2014-03-31 2018-12-04 EMC IP Holding Company LLC Provisioning resources for datacenters
US9548963B2 (en) 2014-04-01 2017-01-17 At&T Intellectual Property I, L.P. Method and system to enable a virtual private network client
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9390289B2 (en) 2014-04-07 2016-07-12 Palo Alto Research Center Incorporated Secure collection synchronization using matched network names
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US9451032B2 (en) 2014-04-10 2016-09-20 Palo Alto Research Center Incorporated System and method for simple service discovery in content-centric networks
US9052938B1 (en) * 2014-04-15 2015-06-09 Splunk Inc. Correlation and associated display of virtual machine data and storage performance data
CN105210326B (zh) * 2014-04-23 2019-02-01 华为技术有限公司 云应用处理方法和应用部署方法及相关装置和系统
US9203885B2 (en) 2014-04-28 2015-12-01 Palo Alto Research Center Incorporated Method and apparatus for exchanging bidirectional streams over a content centric network
US9483310B2 (en) * 2014-04-29 2016-11-01 Bluedata Software, Inc. Associating cache memory with a work process
US9992281B2 (en) 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
WO2015167579A1 (en) * 2014-05-02 2015-11-05 Hitachi, Ltd. Storage provisioning method and apparatus using device virtualization in heterogeneous storage environment
US10542049B2 (en) 2014-05-09 2020-01-21 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9455835B2 (en) 2014-05-23 2016-09-27 Palo Alto Research Center Incorporated System and method for circular link resolution with hash-based names in content-centric networks
US9276751B2 (en) 2014-05-28 2016-03-01 Palo Alto Research Center Incorporated System and method for circular link resolution with computable hash-based names in content-centric networks
US9497235B2 (en) * 2014-05-30 2016-11-15 Shoretel, Inc. Determining capacity of virtual devices in a voice over internet protocol system
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9800569B2 (en) * 2014-06-05 2017-10-24 International Business Machines Corporation Data protection backup agent management
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
CN104052970B (zh) * 2014-06-17 2018-02-06 中磊电子(苏州)有限公司 监控装置与其相关的监控方法
US9516144B2 (en) 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US9467377B2 (en) 2014-06-19 2016-10-11 Palo Alto Research Center Incorporated Associating consumer states with interests in a content-centric network
US11477278B2 (en) * 2014-06-24 2022-10-18 Oracle International Corporation System and method for supporting partitions in a multitenant application server environment
CN106471777B (zh) * 2014-06-28 2020-03-10 华为技术有限公司 网络资源均衡的方法和装置
US9426113B2 (en) 2014-06-30 2016-08-23 Palo Alto Research Center Incorporated System and method for managing devices over a content centric network
US10474373B2 (en) * 2014-06-30 2019-11-12 Vmware, Inc. Provisioning applications in a heterogeneous virtual environment
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
WO2016010319A2 (ko) * 2014-07-14 2016-01-21 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치
US9560128B2 (en) 2014-07-16 2017-01-31 Microsoft Technology Licensing, Llc Sharing a file through a metadata representation of the file
US20160019317A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Volume or virtual machine level backup and generating placeholders for virtual machine files
US9959156B2 (en) 2014-07-17 2018-05-01 Cisco Technology, Inc. Interest return control message
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
CN104102857B (zh) * 2014-07-17 2017-02-15 浪潮电子信息产业股份有限公司 一种windows系统下的可执行文件全生命周期安全管理系统
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9535968B2 (en) 2014-07-21 2017-01-03 Palo Alto Research Center Incorporated System for distributing nameless objects using self-certifying names
US10152266B1 (en) * 2014-07-28 2018-12-11 Veritas Technologies Llc Systems and methods for providing data backup services in a virtual environment
US9948496B1 (en) 2014-07-30 2018-04-17 Silver Peak Systems, Inc. Determining a transit appliance for data traffic to a software service
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9503365B2 (en) 2014-08-11 2016-11-22 Palo Alto Research Center Incorporated Reputation-based instruction processing over an information centric network
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US10129112B2 (en) * 2014-08-14 2018-11-13 At&T Intellectual Property I, L.P. Workflow-based resource management
CN105337952B (zh) 2014-08-14 2018-07-20 新华三技术有限公司 用于抑制主机频繁迁移的方法和装置
US9391777B2 (en) 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
US9467492B2 (en) 2014-08-19 2016-10-11 Palo Alto Research Center Incorporated System and method for reconstructable all-in-one content stream
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
US9692101B2 (en) 2014-08-26 2017-06-27 At&T Intellectual Property I, L.P. Guided wave couplers for coupling electromagnetic waves between a waveguide surface and a surface of a wire
US9497282B2 (en) 2014-08-27 2016-11-15 Palo Alto Research Center Incorporated Network coding for content-centric network
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
US10331472B2 (en) 2014-08-29 2019-06-25 Hewlett Packard Enterprise Development Lp Virtual machine service availability
US10204013B2 (en) 2014-09-03 2019-02-12 Cisco Technology, Inc. System and method for maintaining a distributed and fault-tolerant state over an information centric network
US9875344B1 (en) 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
US9405581B2 (en) * 2014-09-08 2016-08-02 International Business Machines Corporation Resource allocation/de-allocation and activation/deactivation
US10628186B2 (en) * 2014-09-08 2020-04-21 Wirepath Home Systems, Llc Method for electronic device virtualization and management
US9680920B2 (en) 2014-09-08 2017-06-13 International Business Machines Corporation Anticipatory resource allocation/activation and lazy de-allocation/deactivation
US9553812B2 (en) 2014-09-09 2017-01-24 Palo Alto Research Center Incorporated Interest keep alives at intermediate routers in a CCN
US20160072704A1 (en) * 2014-09-09 2016-03-10 Microsoft Corporation Resource control for virtual datacenters
US10097513B2 (en) * 2014-09-14 2018-10-09 Microsoft Technology Licensing, Llc Trusted execution environment extensible computing device interface
US9768833B2 (en) 2014-09-15 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for sensing a condition in a transmission medium of electromagnetic waves
US20160080501A1 (en) * 2014-09-15 2016-03-17 International Business Machines Corporation On demand customer private network connectivity between cloud data centers
US10063280B2 (en) 2014-09-17 2018-08-28 At&T Intellectual Property I, L.P. Monitoring and mitigating conditions in a communication network
US9721117B2 (en) 2014-09-19 2017-08-01 Oracle International Corporation Shared identity management (IDM) integration in a multi-tenant computing environment
US20160087910A1 (en) * 2014-09-22 2016-03-24 Cisco Technology, Inc. Computing migration sphere of workloads in a network environment
US9628854B2 (en) 2014-09-29 2017-04-18 At&T Intellectual Property I, L.P. Method and apparatus for distributing content in a communication network
US9699729B2 (en) 2014-09-29 2017-07-04 Disa Technologies, Inc. Methods and systems for regulating communications at a mobile communications device
US11496606B2 (en) 2014-09-30 2022-11-08 Nicira, Inc. Sticky service sessions in a datacenter
US9935827B2 (en) 2014-09-30 2018-04-03 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US10257095B2 (en) 2014-09-30 2019-04-09 Nicira, Inc. Dynamically adjusting load balancing
US9615269B2 (en) 2014-10-02 2017-04-04 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
WO2016050315A1 (en) * 2014-10-02 2016-04-07 Hitachi Data Systems Engineering UK Limited Method and an apparatus, and related computer-program products, for managing access request in multi-tenancy environments
US9685992B2 (en) 2014-10-03 2017-06-20 At&T Intellectual Property I, L.P. Circuit panel network and methods thereof
US9503189B2 (en) 2014-10-10 2016-11-22 At&T Intellectual Property I, L.P. Method and apparatus for arranging communication sessions in a communication system
US9973299B2 (en) 2014-10-14 2018-05-15 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a mode of communication in a communication network
US9762289B2 (en) 2014-10-14 2017-09-12 At&T Intellectual Property I, L.P. Method and apparatus for transmitting or receiving signals in a transportation system
US9520945B2 (en) 2014-10-21 2016-12-13 At&T Intellectual Property I, L.P. Apparatus for providing communication services and methods thereof
US9653770B2 (en) 2014-10-21 2017-05-16 At&T Intellectual Property I, L.P. Guided wave coupler, coupling module and methods for use therewith
US9577306B2 (en) 2014-10-21 2017-02-21 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9627768B2 (en) 2014-10-21 2017-04-18 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9564947B2 (en) 2014-10-21 2017-02-07 At&T Intellectual Property I, L.P. Guided-wave transmission device with diversity and methods for use therewith
US9780834B2 (en) 2014-10-21 2017-10-03 At&T Intellectual Property I, L.P. Method and apparatus for transmitting electromagnetic waves
US9769020B2 (en) 2014-10-21 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for responding to events affecting communications in a communication network
US9312919B1 (en) 2014-10-21 2016-04-12 At&T Intellectual Property I, Lp Transmission device with impairment compensation and methods for use therewith
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
KR102018815B1 (ko) * 2014-10-24 2019-11-04 삼성전자주식회사 주변 기기를 활용하여 원격 태스크를 수행하는 방법 및 디바이스
JP6507572B2 (ja) * 2014-10-31 2019-05-08 富士通株式会社 管理サーバの経路制御方法、および管理サーバ
US9461706B1 (en) 2015-07-31 2016-10-04 At&T Intellectual Property I, Lp Method and apparatus for exchanging communication signals
US9544006B2 (en) 2014-11-20 2017-01-10 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9654173B2 (en) 2014-11-20 2017-05-16 At&T Intellectual Property I, L.P. Apparatus for powering a communication device and methods thereof
US9680670B2 (en) 2014-11-20 2017-06-13 At&T Intellectual Property I, L.P. Transmission device with channel equalization and control and methods for use therewith
US10009067B2 (en) 2014-12-04 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for configuring a communication interface
US10340573B2 (en) 2016-10-26 2019-07-02 At&T Intellectual Property I, L.P. Launcher with cylindrical coupling device and methods for use therewith
US9954287B2 (en) 2014-11-20 2018-04-24 At&T Intellectual Property I, L.P. Apparatus for converting wireless signals and electromagnetic waves and methods thereof
US9742462B2 (en) 2014-12-04 2017-08-22 At&T Intellectual Property I, L.P. Transmission medium and communication interfaces and methods for use therewith
US10243784B2 (en) 2014-11-20 2019-03-26 At&T Intellectual Property I, L.P. System for generating topology information and methods thereof
US9800327B2 (en) 2014-11-20 2017-10-24 At&T Intellectual Property I, L.P. Apparatus for controlling operations of a communication device and methods thereof
US9997819B2 (en) 2015-06-09 2018-06-12 At&T Intellectual Property I, L.P. Transmission medium and method for facilitating propagation of electromagnetic waves via a core
US9983936B2 (en) 2014-11-20 2018-05-29 Commvault Systems, Inc. Virtual machine change block tracking
US9749195B2 (en) 2014-12-05 2017-08-29 Accenture Global Services Limited Technical component provisioning using metadata structural hierarchy
US9536059B2 (en) 2014-12-15 2017-01-03 Palo Alto Research Center Incorporated Method and system for verifying renamed content using manifests in a content centric network
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
WO2016100545A1 (en) * 2014-12-16 2016-06-23 Noderprime, Inc. Computer servers for datacenter managment
KR101574026B1 (ko) * 2014-12-17 2015-12-03 경희대학교 산학협력단 포그 컴퓨팅 네트워크를 이용한 사물 인터넷 네트워크
US9329907B1 (en) 2014-12-18 2016-05-03 International Business Machines Corporation Automated exploitation of virtual machine resource modifications
US9846881B2 (en) 2014-12-19 2017-12-19 Palo Alto Research Center Incorporated Frugal user engagement help systems
US9473475B2 (en) 2014-12-22 2016-10-18 Palo Alto Research Center Incorporated Low-cost authenticated signing delegation in content centric networking
US10003520B2 (en) 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9654483B1 (en) * 2014-12-23 2017-05-16 Amazon Technologies, Inc. Network communication rate limiter
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US10795856B1 (en) * 2014-12-29 2020-10-06 EMC IP Holding Company LLC Methods, systems, and computer readable mediums for implementing a data protection policy for a transferred enterprise application
US10270879B1 (en) * 2014-12-30 2019-04-23 EMC IP Holding Company LLC Multi-tenant caching storage intelligence
CN105812922A (zh) * 2014-12-30 2016-07-27 中兴通讯股份有限公司 多媒体文件数据的处理方法及系统、播放器和客户端
US9767119B2 (en) 2014-12-31 2017-09-19 Netapp, Inc. System and method for monitoring hosts and storage devices in a storage system
CN104580194B (zh) * 2014-12-31 2017-11-24 北京四达时代软件技术股份有限公司 面向视频应用的虚拟化资源管理方法及装置
WO2016106705A1 (zh) * 2014-12-31 2016-07-07 华为技术有限公司 内容共享的方法、终端、服务器和系统
US9787594B2 (en) 2015-01-08 2017-10-10 Coriant Operations, Inc. Procedures, apparatuses, systems, and computer program products for adaptive tunnel bandwidth by using software defined networking
US9602596B2 (en) 2015-01-12 2017-03-21 Cisco Systems, Inc. Peer-to-peer sharing in a content centric network
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US11494447B2 (en) * 2015-01-13 2022-11-08 Google Llc Distributed file system for virtualized computing clusters
US10110572B2 (en) * 2015-01-21 2018-10-23 Oracle International Corporation Tape drive encryption in the data path
US9462006B2 (en) 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US10144036B2 (en) 2015-01-30 2018-12-04 At&T Intellectual Property I, L.P. Method and apparatus for mitigating interference affecting a propagation of electromagnetic waves guided by a transmission medium
US9552493B2 (en) 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
JP6439475B2 (ja) * 2015-02-09 2018-12-19 富士通株式会社 情報処理装置、情報処理システム及び制御プログラム
US9733987B2 (en) * 2015-02-20 2017-08-15 Intel Corporation Techniques to dynamically allocate resources of configurable computing resources
US9876570B2 (en) 2015-02-20 2018-01-23 At&T Intellectual Property I, Lp Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US10193929B2 (en) 2015-03-13 2019-01-29 Varmour Networks, Inc. Methods and systems for improving analytics in distributed networks
US9749013B2 (en) 2015-03-17 2017-08-29 At&T Intellectual Property I, L.P. Method and apparatus for reducing attenuation of electromagnetic waves guided by a transmission medium
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
US9661007B2 (en) * 2015-03-18 2017-05-23 Intel Corporation Network interface devices with remote storage control
CN104729536B (zh) * 2015-03-18 2017-11-10 广东好帮手电子科技股份有限公司 一种基于车载导航产品的调试工具及调试方法
CN104754305A (zh) * 2015-03-26 2015-07-01 北京德普视讯科技有限公司 基于云计算技术的拼接显示控制系统、采用该系统的图像显示方法及该系统的应用
US20160285970A1 (en) * 2015-03-27 2016-09-29 International Business Machines Corporation Network communication between virtual machine applications via direct memory access
US9380027B1 (en) 2015-03-30 2016-06-28 Varmour Networks, Inc. Conditional declarative policies
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
JP6472508B2 (ja) * 2015-04-06 2019-02-20 株式会社日立製作所 管理計算機およびリソース管理方法
US10212178B2 (en) * 2015-04-07 2019-02-19 Zingbox, Ltd. Packet analysis based IoT management
US9979662B2 (en) * 2015-04-17 2018-05-22 International Business Machines Corporation Storage area network workload balancing
US9705561B2 (en) 2015-04-24 2017-07-11 At&T Intellectual Property I, L.P. Directional coupling device and methods for use therewith
US10224981B2 (en) 2015-04-24 2019-03-05 At&T Intellectual Property I, Lp Passive electrical coupling device and methods for use therewith
US9793954B2 (en) 2015-04-28 2017-10-17 At&T Intellectual Property I, L.P. Magnetic coupling device and methods for use therewith
US9948354B2 (en) 2015-04-28 2018-04-17 At&T Intellectual Property I, L.P. Magnetic coupling device with reflective plate and methods for use therewith
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US9871282B2 (en) 2015-05-14 2018-01-16 At&T Intellectual Property I, L.P. At least one transmission medium having a dielectric surface that is covered at least in part by a second dielectric
US9490869B1 (en) 2015-05-14 2016-11-08 At&T Intellectual Property I, L.P. Transmission medium having multiple cores and methods for use therewith
US9748626B2 (en) 2015-05-14 2017-08-29 At&T Intellectual Property I, L.P. Plurality of cables having different cross-sectional shapes which are bundled together to form a transmission medium
US10679767B2 (en) 2015-05-15 2020-06-09 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US10650940B2 (en) 2015-05-15 2020-05-12 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US9787772B2 (en) 2015-05-19 2017-10-10 Netapp, Inc. Policy based alerts for networked storage systems
US10313256B2 (en) * 2015-05-21 2019-06-04 Intel Corporation Apparatus and methods for adaptive data compression
US9917341B2 (en) 2015-05-27 2018-03-13 At&T Intellectual Property I, L.P. Apparatus and method for launching electromagnetic waves and for modifying radial dimensions of the propagating electromagnetic waves
US10021170B2 (en) * 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9866309B2 (en) 2015-06-03 2018-01-09 At&T Intellectual Property I, Lp Host node device and methods for use therewith
US10348391B2 (en) 2015-06-03 2019-07-09 At&T Intellectual Property I, L.P. Client node device with frequency conversion and methods for use therewith
US10103801B2 (en) 2015-06-03 2018-10-16 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
US9912381B2 (en) 2015-06-03 2018-03-06 At&T Intellectual Property I, Lp Network termination and methods for use therewith
US10154493B2 (en) 2015-06-03 2018-12-11 At&T Intellectual Property I, L.P. Network termination and methods for use therewith
US10812174B2 (en) 2015-06-03 2020-10-20 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
WO2016197069A1 (en) 2015-06-05 2016-12-08 Nutanix, Inc. Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines
US9913139B2 (en) 2015-06-09 2018-03-06 At&T Intellectual Property I, L.P. Signal fingerprinting for authentication of communicating devices
US10142086B2 (en) 2015-06-11 2018-11-27 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US9608692B2 (en) 2015-06-11 2017-03-28 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US9820146B2 (en) 2015-06-12 2017-11-14 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9667317B2 (en) 2015-06-15 2017-05-30 At&T Intellectual Property I, L.P. Method and apparatus for providing security using network traffic adjustments
US20160373405A1 (en) * 2015-06-16 2016-12-22 Amazon Technologies, Inc. Managing dynamic ip address assignments
US10601661B2 (en) * 2015-06-22 2020-03-24 Arista Networks, Inc. Tracking state of components within a network element
US10116605B2 (en) 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US9640850B2 (en) 2015-06-25 2017-05-02 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a non-fundamental wave mode on a transmission medium
US9865911B2 (en) 2015-06-25 2018-01-09 At&T Intellectual Property I, L.P. Waveguide system for slot radiating first electromagnetic waves that are combined into a non-fundamental wave mode second electromagnetic wave on a transmission medium
US9509415B1 (en) 2015-06-25 2016-11-29 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US9736259B2 (en) 2015-06-30 2017-08-15 Iheartmedia Management Services, Inc. Platform-as-a-service with proxy-controlled request routing
US10225142B2 (en) * 2015-06-30 2019-03-05 Vmware, Inc. Method and system for communication between a management-server and remote host systems
US9996377B2 (en) 2015-06-30 2018-06-12 International Business Machines Corporation Virtual machine migration via a mobile device
US11403144B2 (en) * 2015-07-09 2022-08-02 Telecom Italia S.P.A. Method and system of information and communication technology services provisioning using a distributed operating system
US9882257B2 (en) 2015-07-14 2018-01-30 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9628116B2 (en) 2015-07-14 2017-04-18 At&T Intellectual Property I, L.P. Apparatus and methods for transmitting wireless signals
US10033107B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US9853342B2 (en) 2015-07-14 2017-12-26 At&T Intellectual Property I, L.P. Dielectric transmission medium connector and methods for use therewith
US10033108B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave having a wave mode that mitigates interference
US10148016B2 (en) 2015-07-14 2018-12-04 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array
US10341142B2 (en) 2015-07-14 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an uninsulated conductor
US10320586B2 (en) 2015-07-14 2019-06-11 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an insulated transmission medium
US10044409B2 (en) 2015-07-14 2018-08-07 At&T Intellectual Property I, L.P. Transmission medium and methods for use therewith
US10205655B2 (en) 2015-07-14 2019-02-12 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array and multiple communication paths
US10170840B2 (en) 2015-07-14 2019-01-01 At&T Intellectual Property I, L.P. Apparatus and methods for sending or receiving electromagnetic signals
US9847566B2 (en) 2015-07-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a field of a signal to mitigate interference
US9836957B2 (en) 2015-07-14 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for communicating with premises equipment
US9722318B2 (en) 2015-07-14 2017-08-01 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US9608740B2 (en) 2015-07-15 2017-03-28 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US10090606B2 (en) 2015-07-15 2018-10-02 At&T Intellectual Property I, L.P. Antenna system with dielectric array and methods for use therewith
US9793951B2 (en) 2015-07-15 2017-10-17 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9986040B2 (en) 2015-07-21 2018-05-29 Amadeus S.A.S. Communications management system with a separate peripherals server
US9871283B2 (en) 2015-07-23 2018-01-16 At&T Intellectual Property I, Lp Transmission medium having a dielectric core comprised of plural members connected by a ball and socket configuration
US9749053B2 (en) 2015-07-23 2017-08-29 At&T Intellectual Property I, L.P. Node device, repeater and methods for use therewith
US10784670B2 (en) 2015-07-23 2020-09-22 At&T Intellectual Property I, L.P. Antenna support for aligning an antenna
US9948333B2 (en) 2015-07-23 2018-04-17 At&T Intellectual Property I, L.P. Method and apparatus for wireless communications to mitigate interference
US9912027B2 (en) 2015-07-23 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for exchanging communication signals
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US9936049B2 (en) * 2015-07-29 2018-04-03 Dell Products L.P. Protocol independent way for dynamically selecting data compression methods for redirected USB devices
US9735833B2 (en) 2015-07-31 2017-08-15 At&T Intellectual Property I, L.P. Method and apparatus for communications management in a neighborhood network
US10020587B2 (en) 2015-07-31 2018-07-10 At&T Intellectual Property I, L.P. Radial antenna and methods for use therewith
US9967173B2 (en) 2015-07-31 2018-05-08 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
WO2017021764A1 (en) * 2015-08-06 2017-02-09 Telefonaktiebolaget Lm Ericsson (Publ) Methods, apparatus, and systems for providing access to serial ports of virtual machines in self-deployed virtual applications
CN106452818B (zh) * 2015-08-13 2020-01-21 阿里巴巴集团控股有限公司 一种资源调度的方法和系统
US10565667B2 (en) * 2015-08-19 2020-02-18 Lee P. Brintle Methods and systems for optimized and accelerated registration and registration management
US10610144B2 (en) 2015-08-19 2020-04-07 Palo Alto Research Center Incorporated Interactive remote patient monitoring and condition management intervention system
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US9904535B2 (en) 2015-09-14 2018-02-27 At&T Intellectual Property I, L.P. Method and apparatus for distributing software
US10079661B2 (en) 2015-09-16 2018-09-18 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a clock reference
US10051629B2 (en) 2015-09-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an in-band reference signal
US10009063B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an out-of-band reference signal
US10009901B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method, apparatus, and computer-readable storage medium for managing utilization of wireless resources between base stations
US9705571B2 (en) 2015-09-16 2017-07-11 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system
US10136434B2 (en) 2015-09-16 2018-11-20 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an ultra-wideband control channel
US9692660B2 (en) 2015-09-23 2017-06-27 International Business Machines Corporation Election and use of configuration manager
US10432470B2 (en) * 2015-09-23 2019-10-01 International Business Machines Corporation Distributed subnet manager for InfiniBand networks
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US10360205B2 (en) 2015-09-23 2019-07-23 International Business Machines Corporation Cooperative MKEY locking for managing infiniband networks
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US9769128B2 (en) 2015-09-28 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for encryption of communications over a network
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US9729197B2 (en) 2015-10-01 2017-08-08 At&T Intellectual Property I, L.P. Method and apparatus for communicating network management traffic over a network
US9876264B2 (en) 2015-10-02 2018-01-23 At&T Intellectual Property I, Lp Communication system, guided wave switch and methods for use therewith
US10074890B2 (en) 2015-10-02 2018-09-11 At&T Intellectual Property I, L.P. Communication device and antenna with integrated light assembly
US9882277B2 (en) 2015-10-02 2018-01-30 At&T Intellectual Property I, Lp Communication device and antenna assembly with actuated gimbal mount
US10355367B2 (en) 2015-10-16 2019-07-16 At&T Intellectual Property I, L.P. Antenna structure for exchanging wireless signals
US10665942B2 (en) 2015-10-16 2020-05-26 At&T Intellectual Property I, L.P. Method and apparatus for adjusting wireless communications
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US10051483B2 (en) 2015-10-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for directing wireless signals
US11082499B2 (en) * 2015-10-19 2021-08-03 Citrix Systems, Inc. Browser server session transfer
US9794238B2 (en) 2015-10-29 2017-10-17 Cisco Technology, Inc. System for key exchange in a content centric network
US10075304B2 (en) 2015-10-30 2018-09-11 Microsoft Technology Licensing, Llc Multiple gateway operation on single operating system
US9807205B2 (en) 2015-11-02 2017-10-31 Cisco Technology, Inc. Header compression for CCN messages using dictionary
US10009446B2 (en) 2015-11-02 2018-06-26 Cisco Technology, Inc. Header compression for CCN messages using dictionary learning
US10021222B2 (en) 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10097521B2 (en) 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US10157276B2 (en) * 2015-11-23 2018-12-18 Armor Defense Inc. Extracting malicious instructions on a virtual machine in a network environment
EP3384725B1 (en) * 2015-11-30 2019-08-14 Koninklijke KPN N.V. Method for device-to-device communication between a local device and a remote device
EP3384393B1 (en) * 2015-12-02 2020-03-11 Telefonaktiebolaget LM Ericsson (publ) Method and memory availability managing module for managing availability of memory pages
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10191758B2 (en) 2015-12-09 2019-01-29 Varmour Networks, Inc. Directing data traffic between intra-server virtual machines
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US10078062B2 (en) 2015-12-15 2018-09-18 Palo Alto Research Center Incorporated Device health estimation by combining contextual information with sensor data
CN105635273A (zh) * 2015-12-25 2016-06-01 国云科技股份有限公司 一种提高私有云网络带宽利用率的方法
EP3398376B1 (en) 2015-12-28 2023-01-25 Koninklijke KPN N.V. Method and system for controlling access for a user equipment to a local device
CN108702315B (zh) 2015-12-28 2021-05-28 皇家Kpn公司 在连接到不同网络的两个本地设备之间建立连接
US11715025B2 (en) 2015-12-30 2023-08-01 Nutanix, Inc. Method for forecasting distributed resource utilization in a virtualization environment
US10069681B2 (en) * 2015-12-31 2018-09-04 Amazon Technologies, Inc. FPGA-enabled compute instances
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
EP3842943A1 (en) * 2016-01-18 2021-06-30 Huawei Technologies Co., Ltd. System and method for cloud workload provisioning
US9949301B2 (en) 2016-01-20 2018-04-17 Palo Alto Research Center Incorporated Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
JP2017134535A (ja) * 2016-01-26 2017-08-03 キヤノン株式会社 システム、及びシステムの制御方法
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
US10684985B2 (en) * 2016-02-16 2020-06-16 Netapp Inc. Converting storage objects between formats in a copy-free transition
JP6711634B2 (ja) * 2016-02-16 2020-06-17 キヤノン株式会社 撮像装置、撮像装置の駆動方法、及び撮像システム
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
WO2017156417A1 (en) * 2016-03-11 2017-09-14 Feng Youlin Systems and methods for data encryption and decryption
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US10797977B2 (en) 2016-03-22 2020-10-06 Citrix Systems, Inc. Robust suspension and resumption of desktop virtualization
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10212169B2 (en) * 2016-03-30 2019-02-19 Oracle International Corporation Enforcing data security in a cleanroom data processing environment
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
WO2017176178A1 (en) * 2016-04-05 2017-10-12 Telefonaktiebolaget Lm Ericsson (Publ) Method and agent for sharing information about cloudlet properties in distributed cloud environments
CN105743997B (zh) * 2016-04-06 2019-03-29 杭州沃趣科技股份有限公司 一种用于实现Web Console带外管理系统的方法
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US9591047B1 (en) 2016-04-11 2017-03-07 Level 3 Communications, Llc Invalidation in a content delivery network (CDN)
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
JP2017191508A (ja) * 2016-04-14 2017-10-19 富士通株式会社 情報処理装置および接続情報設定プログラム
US9842154B2 (en) 2016-04-29 2017-12-12 Netapp, Inc. Secure data replication
US10652327B2 (en) * 2016-04-29 2020-05-12 Hewlett Packard Enterprise Development Lp Migration of virtual machines
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
US11231858B2 (en) * 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US10168953B1 (en) 2016-05-20 2019-01-01 Nutanix, Inc. Dynamic scheduling of distributed storage management tasks using predicted system characteristics
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10374872B2 (en) * 2016-05-24 2019-08-06 Apstra, Inc. Configuring system resources for different reference architectures
US10057153B1 (en) * 2016-06-02 2018-08-21 Cisco Technology, Inc. Detecting slow virtual devices
US10511542B2 (en) * 2016-06-10 2019-12-17 Microsoft Technology Licensing, Llc Multi-interface power-aware networking
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10902324B2 (en) 2016-06-13 2021-01-26 Nutanix, Inc. Dynamic data snapshot management using predictive modeling
US10432484B2 (en) 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
WO2017222431A1 (en) * 2016-06-22 2017-12-28 Telefonaktiebolaget Lm Ericsson (Publ) Methods and systems for relocating subscriber records in multisite systems
EP3475907A1 (en) * 2016-06-23 2019-05-01 Nets Denmark A/S System for facilitating real-time transactions
US10361925B1 (en) 2016-06-23 2019-07-23 Nutanix, Inc. Storage infrastructure scenario planning
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10755334B2 (en) 2016-06-30 2020-08-25 Varmour Networks, Inc. Systems and methods for continually scoring and segmenting open opportunities using client data and product predictors
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
CN106161637A (zh) * 2016-07-21 2016-11-23 广州杰赛科技股份有限公司 一种云备份方法及装置
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10505941B2 (en) 2016-08-05 2019-12-10 Oracle International Corporation Virtual directory system for LDAP to SCIM proxy service
US10609180B2 (en) 2016-08-05 2020-03-31 At&T Intellectual Property I, L.P. Facilitating dynamic establishment of virtual enterprise service platforms and on-demand service provisioning
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10516672B2 (en) * 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
US9967056B1 (en) 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
US9912419B1 (en) 2016-08-24 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for managing a fault in a distributed antenna system
US9860075B1 (en) 2016-08-26 2018-01-02 At&T Intellectual Property I, L.P. Method and communication node for broadband distribution
US10681131B2 (en) * 2016-08-29 2020-06-09 Vmware, Inc. Source network address translation detection and dynamic tunnel creation
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10291311B2 (en) 2016-09-09 2019-05-14 At&T Intellectual Property I, L.P. Method and apparatus for mitigating a fault in a distributed antenna system
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
CN106383749A (zh) * 2016-09-14 2017-02-08 郑州云海信息技术有限公司 一种线程管理方法及装置
US10097472B2 (en) 2016-09-14 2018-10-09 At&T Intellectual Property I, L.P. Method and system for dynamically distributing and controlling a virtual gateway
US11032819B2 (en) 2016-09-15 2021-06-08 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a control channel reference signal
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US11138017B2 (en) 2016-09-16 2021-10-05 Oracle International Corporation System and method for partition administrative targeting in an application server environment
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
JP7018437B2 (ja) 2016-09-16 2022-02-10 オラクル・インターナショナル・コーポレイション マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービスのためのテナントおよびサービス管理
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10628237B2 (en) * 2016-09-16 2020-04-21 Oracle International Corporation Cloud service integration flow
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
WO2018057039A1 (en) * 2016-09-26 2018-03-29 Hewlett-Packard Development Company, L. Update memory management information to boot an electronic device from a reduced power mode
US10484301B1 (en) * 2016-09-30 2019-11-19 Nutanix, Inc. Dynamic resource distribution using periodicity-aware predictive modeling
CN107894876B (zh) * 2016-10-03 2021-02-02 京瓷办公信息系统株式会社 信息处理系统及信息处理方法
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
US10884622B2 (en) 2016-10-17 2021-01-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Storage area network having fabric-attached storage drives, SAN agent-executing client devices, and SAN manager that manages logical volume without handling data transfer between client computing device and storage drive that provides drive volume of the logical volume
US10340600B2 (en) 2016-10-18 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via plural waveguide systems
DE102016124383B4 (de) * 2016-10-18 2018-05-09 Fujitsu Technology Solutions Intellectual Property Gmbh Computersystem-Architektur sowie Computernetz-Infrastruktur, umfassend eine Mehrzahl von solchen Computersystem-Architekturen
US10135147B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via an antenna
US10135146B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via circuits
US10691491B2 (en) 2016-10-19 2020-06-23 Nutanix, Inc. Adapting a pre-trained distributed resource predictive model to a target distributed computing environment
EP3313048A1 (en) * 2016-10-20 2018-04-25 Alcatel Lucent Method and device for routing a request
US10374316B2 (en) 2016-10-21 2019-08-06 At&T Intellectual Property I, L.P. System and dielectric antenna with non-uniform dielectric
US9876605B1 (en) 2016-10-21 2018-01-23 At&T Intellectual Property I, L.P. Launcher and coupling system to support desired guided wave mode
US9991580B2 (en) 2016-10-21 2018-06-05 At&T Intellectual Property I, L.P. Launcher and coupling system for guided wave mode cancellation
US10811767B2 (en) 2016-10-21 2020-10-20 At&T Intellectual Property I, L.P. System and dielectric antenna with convex dielectric radome
US10312567B2 (en) 2016-10-26 2019-06-04 At&T Intellectual Property I, L.P. Launcher with planar strip antenna and methods for use therewith
EP3559893A4 (en) 2016-10-27 2020-08-05 Snaps Solutions LLC SYSTEMS AND METHODS FOR HIGHLIGHTING CONTEXTUALLY RELEVANT CONTENT IN THE WORKFLOW OF A THIRD PARTY SYSTEM THROUGH A DISTRIBUTED ARCHITECTURE
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
US10498044B2 (en) 2016-11-03 2019-12-03 At&T Intellectual Property I, L.P. Apparatus for configuring a surface of an antenna
US10225025B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Method and apparatus for detecting a fault in a communication system
US10224634B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Methods and apparatus for adjusting an operational characteristic of an antenna
US10291334B2 (en) 2016-11-03 2019-05-14 At&T Intellectual Property I, L.P. System for detecting a fault in a communication system
US10545777B2 (en) * 2016-11-08 2020-01-28 International Business Machines Corporation Generating a virtual machines relocation protocol
CN109313583B (zh) * 2016-11-17 2023-11-03 英特尔公司 用于减小基础设施架构静态和动态分片影响的方法和装置
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
US10678758B2 (en) 2016-11-21 2020-06-09 Commvault Systems, Inc. Cross-platform virtual machine data and memory backup and replication
US10649679B2 (en) 2016-11-23 2020-05-12 Nutanix, Inc. Containerized application extensions in distributed storage systems
US10535928B2 (en) 2016-11-23 2020-01-14 At&T Intellectual Property I, L.P. Antenna system and methods for use therewith
US10340601B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Multi-antenna system and methods for use therewith
US10090594B2 (en) 2016-11-23 2018-10-02 At&T Intellectual Property I, L.P. Antenna system having structural configurations for assembly
US10340603B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Antenna system having shielded structural configurations for assembly
US10178445B2 (en) 2016-11-23 2019-01-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for load balancing between a plurality of waveguides
US10353602B2 (en) 2016-11-30 2019-07-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Selection of fabric-attached storage drives on which to provision drive volumes for realizing logical volume on client computing device within storage area network
US10361489B2 (en) 2016-12-01 2019-07-23 At&T Intellectual Property I, L.P. Dielectric dish antenna system and methods for use therewith
US10305190B2 (en) 2016-12-01 2019-05-28 At&T Intellectual Property I, L.P. Reflecting dielectric antenna system and methods for use therewith
US10261821B2 (en) * 2016-12-02 2019-04-16 Dell Products L.P. System and method to expose remote virtual media partitions to virtual machines
US10579796B1 (en) * 2016-12-02 2020-03-03 United Services Automobile Association (Usaa) Systems and methods of detecting malicious powershell scripts
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US10700978B2 (en) 2016-12-05 2020-06-30 International Business Machines Corporation Offloading at a virtual switch in a load-balanced group
US20180159922A1 (en) * 2016-12-05 2018-06-07 International Business Machines Corporation Job assignment using artificially delayed responses in load-balanced groups
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US10768997B2 (en) 2016-12-05 2020-09-08 International Business Machines Corporation Tail latency-based job offloading in load-balanced groups
US10819035B2 (en) 2016-12-06 2020-10-27 At&T Intellectual Property I, L.P. Launcher with helical antenna and methods for use therewith
US9927517B1 (en) 2016-12-06 2018-03-27 At&T Intellectual Property I, L.P. Apparatus and methods for sensing rainfall
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US10637149B2 (en) 2016-12-06 2020-04-28 At&T Intellectual Property I, L.P. Injection molded dielectric antenna and methods for use therewith
US10135145B2 (en) 2016-12-06 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave along a transmission medium
US10382976B2 (en) 2016-12-06 2019-08-13 At&T Intellectual Property I, L.P. Method and apparatus for managing wireless communications based on communication paths and network device positions
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US10439675B2 (en) 2016-12-06 2019-10-08 At&T Intellectual Property I, L.P. Method and apparatus for repeating guided wave communication signals
US10326494B2 (en) 2016-12-06 2019-06-18 At&T Intellectual Property I, L.P. Apparatus for measurement de-embedding and methods for use therewith
US10727599B2 (en) 2016-12-06 2020-07-28 At&T Intellectual Property I, L.P. Launcher with slot antenna and methods for use therewith
US10755542B2 (en) 2016-12-06 2020-08-25 At&T Intellectual Property I, L.P. Method and apparatus for surveillance via guided wave communication
US10694379B2 (en) 2016-12-06 2020-06-23 At&T Intellectual Property I, L.P. Waveguide system with device-based authentication and methods for use therewith
US10020844B2 (en) 2016-12-06 2018-07-10 T&T Intellectual Property I, L.P. Method and apparatus for broadcast communication via guided waves
US10027397B2 (en) 2016-12-07 2018-07-17 At&T Intellectual Property I, L.P. Distributed antenna system and methods for use therewith
US10139820B2 (en) 2016-12-07 2018-11-27 At&T Intellectual Property I, L.P. Method and apparatus for deploying equipment of a communication system
US10389029B2 (en) 2016-12-07 2019-08-20 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system with core selection and methods for use therewith
US9893795B1 (en) 2016-12-07 2018-02-13 At&T Intellectual Property I, Lp Method and repeater for broadband distribution
US10547348B2 (en) 2016-12-07 2020-01-28 At&T Intellectual Property I, L.P. Method and apparatus for switching transmission mediums in a communication system
US10168695B2 (en) 2016-12-07 2019-01-01 At&T Intellectual Property I, L.P. Method and apparatus for controlling an unmanned aircraft
US10243270B2 (en) 2016-12-07 2019-03-26 At&T Intellectual Property I, L.P. Beam adaptive multi-feed dielectric antenna system and methods for use therewith
US10446936B2 (en) 2016-12-07 2019-10-15 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system and methods for use therewith
US10359749B2 (en) 2016-12-07 2019-07-23 At&T Intellectual Property I, L.P. Method and apparatus for utilities management via guided wave communication
US10103422B2 (en) 2016-12-08 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10938108B2 (en) 2016-12-08 2021-03-02 At&T Intellectual Property I, L.P. Frequency selective multi-feed dielectric antenna system and methods for use therewith
US9911020B1 (en) 2016-12-08 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for tracking via a radio frequency identification device
US10326689B2 (en) 2016-12-08 2019-06-18 At&T Intellectual Property I, L.P. Method and system for providing alternative communication paths
US10069535B2 (en) 2016-12-08 2018-09-04 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves having a certain electric field structure
US10601494B2 (en) 2016-12-08 2020-03-24 At&T Intellectual Property I, L.P. Dual-band communication device and method for use therewith
US9998870B1 (en) 2016-12-08 2018-06-12 At&T Intellectual Property I, L.P. Method and apparatus for proximity sensing
US10389037B2 (en) 2016-12-08 2019-08-20 At&T Intellectual Property I, L.P. Apparatus and methods for selecting sections of an antenna array and use therewith
US10411356B2 (en) 2016-12-08 2019-09-10 At&T Intellectual Property I, L.P. Apparatus and methods for selectively targeting communication devices with an antenna array
US10777873B2 (en) 2016-12-08 2020-09-15 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10916969B2 (en) 2016-12-08 2021-02-09 At&T Intellectual Property I, L.P. Method and apparatus for providing power using an inductive coupling
US10362110B1 (en) * 2016-12-08 2019-07-23 Amazon Technologies, Inc. Deployment of client data compute kernels in cloud
US10530505B2 (en) 2016-12-08 2020-01-07 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves along a transmission medium
US9838896B1 (en) 2016-12-09 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for assessing network coverage
US10340983B2 (en) 2016-12-09 2019-07-02 At&T Intellectual Property I, L.P. Method and apparatus for surveying remote sites via guided wave communications
US10264586B2 (en) 2016-12-09 2019-04-16 At&T Mobility Ii Llc Cloud-based packet controller and methods for use therewith
US10505791B2 (en) * 2016-12-16 2019-12-10 Futurewei Technologies, Inc. System and method to handle events using historical data in serverless systems
CN106844140B (zh) * 2016-12-21 2020-05-26 南京富士通南大软件技术有限公司 一种基于scom的监控方法
CN106874110A (zh) * 2016-12-30 2017-06-20 曙光信息产业(北京)有限公司 一种集群存储系统的节能方法和装置
US10355925B2 (en) * 2017-01-13 2019-07-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Autonomous generation and transmission of reportable events by fabric-attachable storage drive
US11256572B2 (en) 2017-01-23 2022-02-22 Honeywell International Inc. Systems and methods for processing data in security systems using parallelism, stateless queries, data slicing, or asynchronous pull mechanisms
US20180212825A1 (en) * 2017-01-24 2018-07-26 OSNEXUS Corporation Dynamic management of networks to facilitate storage device access
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US10257082B2 (en) 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows
US10771394B2 (en) 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US11044202B2 (en) 2017-02-06 2021-06-22 Silver Peak Systems, Inc. Multi-level learning for predicting and classifying traffic flows from first packet data
US10761911B2 (en) 2017-02-13 2020-09-01 Nutanix, Inc. Asynchronous application interactions in distributed systems
US10785288B2 (en) * 2017-02-22 2020-09-22 International Business Machines Corporation Deferential support of request driven cloud services
US9973940B1 (en) 2017-02-27 2018-05-15 At&T Intellectual Property I, L.P. Apparatus and methods for dynamic impedance matching of a guided wave launcher
US20180262563A1 (en) * 2017-03-07 2018-09-13 Microsoft Technology Licensing, Llc Availability management operations in a distributed computing system
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US10298293B2 (en) 2017-03-13 2019-05-21 At&T Intellectual Property I, L.P. Apparatus of communication utilizing wireless network devices
US10560443B2 (en) * 2017-03-16 2020-02-11 Amzetta Technologies, Llc Scheduled power mode switch for thin client devices
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
US20180276022A1 (en) 2017-03-24 2018-09-27 Commvault Systems, Inc. Consistent virtual machine replication
CA3054071A1 (en) * 2017-03-28 2018-10-04 Cloudjumper Corporation Methods and systems for providing wake-on-demand access to session servers
US10387073B2 (en) 2017-03-29 2019-08-20 Commvault Systems, Inc. External dynamic virtual machine synchronization
US20180287949A1 (en) * 2017-03-29 2018-10-04 Intel Corporation Throttling, sub-node composition, and balanced processing in rack scale architecture
US10936711B2 (en) 2017-04-18 2021-03-02 Intuit Inc. Systems and mechanism to control the lifetime of an access token dynamically based on access token use
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
CN108932150B (zh) * 2017-05-24 2023-09-15 中兴通讯股份有限公司 基于ssd和磁盘混合存储的缓存方法、装置及介质
US10459753B2 (en) * 2017-05-26 2019-10-29 Cognizant Technology Solutions India Pvt. Ltd. System and method for agent based centralized and efficient transaction recordings for service virtualization
US10521273B2 (en) * 2017-06-08 2019-12-31 Cisco Technology, Inc. Physical partitioning of computing resources for server virtualization
US10715597B2 (en) 2017-06-16 2020-07-14 At&T Intellectual Property I, L.P. Methods and systems to create a network-agnostic SDN-based cloud gateway for connectivity to multiple cloud service providers
US11477280B1 (en) * 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
US10911405B1 (en) * 2017-07-31 2021-02-02 Amazon Technologies, Inc. Secure environment on a server
US10581859B2 (en) * 2017-08-07 2020-03-03 International Business Machines Corporation Detection and prevention of attempts to access sensitive information in real-time
US10581969B2 (en) 2017-09-14 2020-03-03 International Business Machines Corporation Storage system using cloud based ranks as replica storage
US10721304B2 (en) * 2017-09-14 2020-07-21 International Business Machines Corporation Storage system using cloud storage as a rank
US10372363B2 (en) 2017-09-14 2019-08-06 International Business Machines Corporation Thin provisioning using cloud based ranks
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
US11212210B2 (en) 2017-09-21 2021-12-28 Silver Peak Systems, Inc. Selective route exporting using source type
US11308132B2 (en) 2017-09-27 2022-04-19 Oracle International Corporation Reference attributes for related stored objects in a multi-tenant cloud service
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US10635334B1 (en) 2017-09-28 2020-04-28 EMC IP Holding Company LLC Rule based data transfer model to cloud
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
CN107797863B (zh) * 2017-09-29 2020-07-28 西安交通大学 一种云计算平台中细粒度资源匹配方法
US10754368B1 (en) 2017-10-27 2020-08-25 EMC IP Holding Company LLC Method and system for load balancing backup resources
US10942779B1 (en) 2017-10-27 2021-03-09 EMC IP Holding Company LLC Method and system for compliance map engine
US10797966B2 (en) 2017-10-29 2020-10-06 Nicira, Inc. Service operation chaining
US20190129632A1 (en) * 2017-10-31 2019-05-02 Salesforce.Com, Inc. Determining identifying information from enterprise storage platform
US10686876B1 (en) * 2017-11-01 2020-06-16 United Services Automobile Association (Usaa) Deploying a content distribution network using resources from cloud service providers
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10778785B2 (en) * 2017-11-28 2020-09-15 International Business Machines Corporation Cognitive method for detecting service availability in a cloud environment
US10635829B1 (en) 2017-11-28 2020-04-28 Intuit Inc. Method and system for granting permissions to parties within an organization
US11616781B2 (en) 2017-12-05 2023-03-28 Goldilock Secure s.r.o. Air gap-based network isolation device
US11115390B2 (en) * 2017-12-05 2021-09-07 Goldilock Secure s.r.o. Storage system utilizing discrete on-demand memory resources
FI127806B (en) * 2017-12-22 2019-02-28 Prosys Opc Oy A method, system and computer software for managing OPC UA server capacity
US10983987B2 (en) * 2018-01-05 2021-04-20 Telenav, Inc. Navigation system with update mechanism and method of operation thereof
US10834189B1 (en) 2018-01-10 2020-11-10 EMC IP Holding Company LLC System and method for managing workload in a pooled environment
US10671143B2 (en) * 2018-01-11 2020-06-02 Red Hat Israel, Ltd. Power management using automation engine
JP2019125075A (ja) * 2018-01-15 2019-07-25 富士通株式会社 ストレージ装置、ストレージシステムおよびプログラム
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10659252B2 (en) 2018-01-26 2020-05-19 Nicira, Inc Specifying and utilizing paths through a network
US11232001B2 (en) * 2018-01-29 2022-01-25 Rubrik, Inc. Creation of virtual machine packages using incremental state updates
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
JP6958413B2 (ja) * 2018-02-19 2021-11-02 富士通株式会社 情報処理装置、情報処理システム、及びプログラム
JP2019144778A (ja) * 2018-02-19 2019-08-29 富士通株式会社 情報処理装置、情報処理方法及びプログラム
US10656977B1 (en) * 2018-03-01 2020-05-19 Techsolve, Inc. Automatic deployment of manufacturing adapters
US10637721B2 (en) 2018-03-12 2020-04-28 Silver Peak Systems, Inc. Detecting path break conditions while minimizing network overhead
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US10728174B2 (en) 2018-03-27 2020-07-28 Nicira, Inc. Incorporating layer 2 service between two interfaces of gateway device
US10509587B2 (en) 2018-04-24 2019-12-17 EMC IP Holding Company LLC System and method for high priority backup
US10769030B2 (en) 2018-04-25 2020-09-08 EMC IP Holding Company LLC System and method for improved cache performance
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11824785B2 (en) 2018-05-04 2023-11-21 Citrix Systems, Inc. Systems and methods for remote computing session display based upon user input event prioritization
US10824450B2 (en) 2018-05-04 2020-11-03 Citrix Systems, Inc. Systems and methods for remote computing sessions with variable forward error correction (FEC)
US10938663B2 (en) * 2018-05-07 2021-03-02 Servicenow, Inc. Discovery and management of devices
JP7098000B2 (ja) 2018-06-18 2022-07-08 パロ アルト ネットワークス,インコーポレイテッド IoTセキュリティにおけるパターンマッチングベースの検出
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US11822946B2 (en) * 2018-06-28 2023-11-21 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network functions
US11563677B1 (en) * 2018-06-28 2023-01-24 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network function
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US10608892B2 (en) * 2018-07-27 2020-03-31 Vmware, Inc. Methods, systems and appratus for custom interface specification in a cloud management system
CN109257246A (zh) * 2018-08-09 2019-01-22 华为技术有限公司 检测时延的方法、装置及系统
US11288250B2 (en) 2018-08-09 2022-03-29 Servicenow, Inc. Partial discovery of cloud-based resources
CN109324895A (zh) * 2018-08-16 2019-02-12 北京中科梧桐网络科技有限公司 一种java统一数据源代理服务模型
US11068614B2 (en) * 2018-08-30 2021-07-20 Dell Products, L.P. System-level data security based on environmental properties
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US11025413B2 (en) 2018-09-04 2021-06-01 International Business Machines Corporation Securing a storage network using key server authentication
US10764291B2 (en) 2018-09-04 2020-09-01 International Business Machines Corporation Controlling access between nodes by a key server
US11038671B2 (en) 2018-09-04 2021-06-15 International Business Machines Corporation Shared key processing by a storage device to secure links
US10833860B2 (en) 2018-09-04 2020-11-10 International Business Machines Corporation Shared key processing by a host to secure links
US11038698B2 (en) 2018-09-04 2021-06-15 International Business Machines Corporation Securing a path at a selected node
US10833856B2 (en) 2018-09-04 2020-11-10 International Business Machines Corporation Automatic re-authentication of links using a key server
US11088829B2 (en) 2018-09-04 2021-08-10 International Business Machines Corporation Securing a path at a node
US11550606B2 (en) * 2018-09-13 2023-01-10 Intel Corporation Technologies for deploying virtual machines in a virtual network function infrastructure
CN108733617B (zh) * 2018-09-20 2020-09-18 电信科学技术第五研究所有限公司 Fibre channel 64位并行加扰解扰器的FPGA实现方法
US20200099738A1 (en) * 2018-09-24 2020-03-26 Citrix Systems, Inc. Systems and methods for bridge protocol between diverse applications
US11954072B2 (en) * 2018-10-12 2024-04-09 Open Text Sa Ulc Systems and methods for bidirectional content synching and collaboration through external systems
US11362889B2 (en) * 2018-10-15 2022-06-14 Cdw Llc System and method for automated information technology services management
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
CN111124252B (zh) * 2018-10-30 2023-12-05 伊姆西Ip控股有限责任公司 用于支持和执行虚拟机的数据复制的方法、装置和计算机程序产品
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US10891060B2 (en) * 2018-10-31 2021-01-12 EMC IP Holding Company LLC Data storage system binding virtual volumes to host-specific protocol endpoints
CN111190846A (zh) * 2018-11-14 2020-05-22 杭州萤石软件有限公司 一种基于总线系统的组网方法和总线系统
US10904115B2 (en) 2018-11-16 2021-01-26 Cisco Technology, Inc. Anonymous integration of cloud based applications and on-premise network analytics
US11087862B2 (en) 2018-11-21 2021-08-10 General Electric Company Clinical case creation and routing automation
US10936454B2 (en) 2018-11-21 2021-03-02 International Business Machines Corporation Disaster recovery for virtualized systems
US10713082B2 (en) * 2018-11-28 2020-07-14 Sap Se Cloud platform integration load balancer
US11799952B2 (en) * 2019-01-07 2023-10-24 Intel Corporation Computing resource discovery and allocation
CN111435943B (zh) * 2019-01-14 2022-07-19 阿里巴巴集团控股有限公司 数据处理方法、设备、系统及存储介质
US10778772B2 (en) * 2019-01-23 2020-09-15 Hewlett Packard Enterprise Development Lp Cloud platform or cloud provider selection
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11042397B2 (en) 2019-02-22 2021-06-22 Vmware, Inc. Providing services with guest VM mobility
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
CN111625410B (zh) * 2019-02-27 2023-05-05 阿里巴巴集团控股有限公司 信息处理方法、设备及计算机存储介质
US11044307B2 (en) * 2019-03-11 2021-06-22 Citrix Systems, Inc. Cross-customer web app analytics
US10795699B1 (en) * 2019-03-28 2020-10-06 Cohesity, Inc. Central storage management interface supporting native user interface versions
US11531712B2 (en) 2019-03-28 2022-12-20 Cohesity, Inc. Unified metadata search
US10901773B2 (en) 2019-04-11 2021-01-26 Red Hat, Inc. Sharing devices between virtual machines in view of power state information
US11128676B2 (en) 2019-04-16 2021-09-21 Citrix Systems, Inc. Client computing device providing predictive pre-launch software as a service (SaaS) sessions and related methods
US11303641B2 (en) * 2019-05-07 2022-04-12 Citrix Systems, Inc. Methods and systems for accessing remotely stored files using virtual applications
US11720291B2 (en) 2019-05-07 2023-08-08 Citrix Systems, Inc. Methods and systems for accessing remotely stored files using virtual applications
US10635642B1 (en) 2019-05-09 2020-04-28 Capital One Services, Llc Multi-cloud bi-directional storage replication system and techniques
US11310284B2 (en) 2019-05-31 2022-04-19 Varmour Networks, Inc. Validation of cloud security policies
US11290493B2 (en) 2019-05-31 2022-03-29 Varmour Networks, Inc. Template-driven intent-based security
US11290494B2 (en) 2019-05-31 2022-03-29 Varmour Networks, Inc. Reliability prediction for cloud security policies
US11863580B2 (en) 2019-05-31 2024-01-02 Varmour Networks, Inc. Modeling application dependencies to identify operational risk
US11575563B2 (en) 2019-05-31 2023-02-07 Varmour Networks, Inc. Cloud security management
US11711374B2 (en) 2019-05-31 2023-07-25 Varmour Networks, Inc. Systems and methods for understanding identity and organizational access to applications within an enterprise environment
US11228643B2 (en) * 2019-06-04 2022-01-18 Capital One Services, Llc System and method for fast application auto-scaling
US11743381B2 (en) * 2019-06-10 2023-08-29 Genesys Telecommunications Laboratories, Inc. System and method for adding content to contact center interactions
US11620389B2 (en) 2019-06-24 2023-04-04 University Of Maryland Baltimore County Method and system for reducing false positives in static source code analysis reports using machine learning and classification techniques
US11329954B1 (en) * 2019-07-30 2022-05-10 Berryville Holdings, LLC Traceless access to remote deployed devices in undisclosed locations
US11489716B2 (en) * 2019-08-20 2022-11-01 Citrix Systems, Inc. Desktop virtualization with a dedicated cellular network connection for client devices
US11044174B2 (en) * 2019-08-26 2021-06-22 Citrix Systems, Inc. Systems and methods for disabling services in a cluster
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11611549B2 (en) * 2019-10-03 2023-03-21 Fset Inc System and method of securing access to a secure remote server and database on a mobile device
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11593084B2 (en) * 2019-10-31 2023-02-28 Dell Products L.P. Code development for deployment on a cloud platform
CN114667514A (zh) * 2019-11-19 2022-06-24 惠普发展公司,有限责任合伙企业 数据湖复制
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
US10908933B1 (en) * 2019-12-05 2021-02-02 Microsoft Technology Licensing, Llc Brokerage tool for accessing cloud-based services
EP3832464A1 (en) * 2019-12-06 2021-06-09 Tata Consultancy Services Limited System and method for selection of cloud service providers in a multi-cloud
CN111198806B (zh) * 2019-12-17 2024-04-05 航天信息股份有限公司 基于服务开放平台的服务调用数据统计分析方法及系统
US11579913B2 (en) * 2019-12-18 2023-02-14 Vmware, Inc. System and method for optimizing network topology in a virtual computing environment
CN111176793A (zh) * 2019-12-31 2020-05-19 北京安码科技有限公司 实现虚拟机跨平台格式转换的方法、系统、电子设备及存储介质
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
CN111381980B (zh) * 2020-02-12 2023-04-07 上海机电工程研究所 用于混合仿真的互联系统、方法
EP4113911A4 (en) * 2020-02-26 2024-04-10 Rakuten Symphony Singapore Pte Ltd NETWORK SERVICE CONSTRUCTION SYSTEM AND NETWORK SERVICE CONSTRUCTION METHODS
CN113326159B (zh) * 2020-02-29 2023-02-03 华为技术有限公司 用于故障注入的方法、装置、系统及计算机可读存储介质
US11475149B2 (en) * 2020-03-04 2022-10-18 Dell Products L.P. Method and system for generating a security-compliant workload in a composable infrastructure
US11368387B2 (en) 2020-04-06 2022-06-21 Vmware, Inc. Using router as service node through logical service plane
US11108851B1 (en) * 2020-04-10 2021-08-31 Hewlett Packard Enterprise Development Lp Dynamic application routing in a software defined wide area network
US11294693B2 (en) * 2020-04-14 2022-04-05 Ncr Corporation Virtualized transaction terminal platform
US11356332B1 (en) * 2020-05-04 2022-06-07 Cybercube Analytics Inc. Method and system for monitoring a network resource
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
CN111736465B (zh) * 2020-05-29 2021-12-14 中国科学技术大学 一种无线云控制系统调度方法及系统
US11115799B1 (en) 2020-06-01 2021-09-07 Palo Alto Networks, Inc. IoT device discovery and identification
CN112115016A (zh) * 2020-08-06 2020-12-22 北京健康之家科技有限公司 应用性能监控系统
GB2600089A (en) * 2020-10-07 2022-04-27 Metaswitch Networks Ltd Processing communication sessions
US11809910B2 (en) 2020-10-14 2023-11-07 Bank Of America Corporation System and method for dynamically resizing computational infrastructure to accommodate unexpected demands
TWI764342B (zh) * 2020-10-27 2022-05-11 英業達股份有限公司 啟動狀態偵測系統及其方法
US11563802B2 (en) * 2020-11-06 2023-01-24 Dh2I Company Systems and methods for hierarchical failover groups
TWI765416B (zh) * 2020-11-18 2022-05-21 玉山商業銀行股份有限公司 跨伺服器申請服務的方法與系統
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
CN112631860A (zh) * 2020-12-21 2021-04-09 常州微亿智造科技有限公司 工业物联网数据传输Worker服务监控方法及装置
US11876817B2 (en) 2020-12-23 2024-01-16 Varmour Networks, Inc. Modeling queue-based message-oriented middleware relationships in a security system
US11818152B2 (en) 2020-12-23 2023-11-14 Varmour Networks, Inc. Modeling topic-based message-oriented middleware within a security system
JP2022110245A (ja) * 2021-01-18 2022-07-29 株式会社日立製作所 仮想的なストレージシステムを提供するストレージクラスタを備えたストレージシステム
CN112769852B (zh) * 2021-01-20 2023-02-07 西门子工厂自动化工程有限公司 远程工业实验室的访问系统
US11777978B2 (en) 2021-01-29 2023-10-03 Varmour Networks, Inc. Methods and systems for accurately assessing application access risk
US11388235B1 (en) * 2021-03-05 2022-07-12 Netapp, Inc. Decoupling volume deployment requirements and code implementation
CN115086689B (zh) 2021-03-15 2024-04-05 阿里巴巴创新公司 虚拟直播管理方法、电子设备及计算机存储介质
CN112883435B (zh) * 2021-04-12 2021-08-24 北京飞天数科科技有限公司 一种实现与智能合约安全通信的方法和设备
US20220350618A1 (en) * 2021-04-30 2022-11-03 Microsoft Technology Licensing, Llc Peer booting operating systems on an edge network
US11736348B2 (en) * 2021-06-28 2023-08-22 Dell Products L.P. System and method for network services based functionality provisioning in a VDI environment
US11734316B2 (en) 2021-07-08 2023-08-22 Varmour Networks, Inc. Relationship-based search in a computing environment
US11677631B2 (en) * 2021-07-09 2023-06-13 Dell Products L.P. System for performing a data center asset bridging operation
CN113282573B (zh) * 2021-07-22 2021-09-17 成都云祺科技有限公司 基于iam页的数据库恢复的方法、系统及存储介质
CN113590217B (zh) * 2021-07-26 2022-12-02 北京百度网讯科技有限公司 基于引擎的函数管理方法、装置、电子设备及存储介质
US11677859B2 (en) * 2021-08-16 2023-06-13 Cisco Technology, Inc. Federated service registries for access providers
JP2023034553A (ja) * 2021-08-31 2023-03-13 富士通株式会社 サービス管理装置、サービス管理方法、及びサービス管理プログラム
US11556403B1 (en) 2021-10-19 2023-01-17 Bank Of America Corporation System and method for an application programming interface (API) service modification
CN114296868B (zh) * 2021-12-17 2022-10-04 中电信数智科技有限公司 一种多云环境下基于用户体验的虚拟机自动迁移决策方法
US11470183B1 (en) * 2022-01-27 2022-10-11 Browserstack Limited Deriving proxy stability without network inspection
US11799971B2 (en) 2022-02-17 2023-10-24 Bank Of America Corporation Systems and methods for session migration between devices
CN114625544B (zh) * 2022-05-17 2022-08-30 银河麒麟软件(长沙)有限公司 基于虚拟机业务负载动态分配的内存气球管理方法和装置
WO2024054242A1 (en) * 2022-09-11 2024-03-14 Rakuten Mobile, Inc. O-cloud node shutdown scenarios for energy saving

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1819593A (zh) * 2004-11-01 2006-08-16 联想(新加坡)私人有限公司 信息处理器和数据传输系统及方法
US7483983B1 (en) * 2000-11-13 2009-01-27 Telecommunication Systems, Inc. Method and system for deploying content to wireless devices

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504814A (en) 1991-07-10 1996-04-02 Hughes Aircraft Company Efficient security kernel for the 80960 extended architecture
US5517617A (en) 1994-06-29 1996-05-14 Digital Equipment Corporation Automatic assignment of addresses in a computer communications network
AU4469896A (en) 1994-12-23 1996-07-19 Southwestern Bell Technology Resources, Inc. Flexible network platform and call processing system
US6185601B1 (en) 1996-08-02 2001-02-06 Hewlett-Packard Company Dynamic load balancing of a network of client and server computers
US6728784B1 (en) 1996-08-21 2004-04-27 Netspeak Corporation Collaborative multimedia architecture for packet-switched data networks
US6731625B1 (en) 1997-02-10 2004-05-04 Mci Communications Corporation System, method and article of manufacture for a call back architecture in a hybrid network with support for internet telephony
US6067545A (en) 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
US6816904B1 (en) 1997-11-04 2004-11-09 Collaboration Properties, Inc. Networked video multimedia storage server environment
US6993004B2 (en) 1998-10-29 2006-01-31 Sound Starts, Inc. Method and apparatus for practicing IP telephony from an Internet-capable radio
US6658625B1 (en) 1999-04-14 2003-12-02 International Business Machines Corporation Apparatus and method for generic data conversion
US6801499B1 (en) 1999-08-10 2004-10-05 Texas Instruments Incorporated Diversity schemes for packet communications
US6640249B1 (en) 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
US6438594B1 (en) 1999-08-31 2002-08-20 Accenture Llp Delivering service to a client via a locally addressable interface
US6442748B1 (en) 1999-08-31 2002-08-27 Accenture Llp System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment
US6289382B1 (en) 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6615199B1 (en) 1999-08-31 2003-09-02 Accenture, Llp Abstraction factory in a base services pattern environment
US6601234B1 (en) 1999-08-31 2003-07-29 Accenture Llp Attribute dictionary in a business logic services environment
US6578068B1 (en) 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6640244B1 (en) 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6434628B1 (en) 1999-08-31 2002-08-13 Accenture Llp Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns
US6529909B1 (en) 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
US6502213B1 (en) 1999-08-31 2002-12-31 Accenture Llp System, method, and article of manufacture for a polymorphic exception handler in environment services patterns
US6742015B1 (en) 1999-08-31 2004-05-25 Accenture Llp Base services patterns in a netcentric environment
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6640238B1 (en) 1999-08-31 2003-10-28 Accenture Llp Activity component in a presentation services patterns environment
US6615253B1 (en) 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US6477580B1 (en) 1999-08-31 2002-11-05 Accenture Llp Self-described stream in a communication services patterns environment
US6434568B1 (en) 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US6529948B1 (en) 1999-08-31 2003-03-04 Accenture Llp Multi-object fetch component
US6571282B1 (en) 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6606660B1 (en) 1999-08-31 2003-08-12 Accenture Llp Stream-based communication in a communication services patterns environment
US6842906B1 (en) 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US6339832B1 (en) 1999-08-31 2002-01-15 Accenture Llp Exception response table in environment services patterns
US6549949B1 (en) 1999-08-31 2003-04-15 Accenture Llp Fixed format stream in a communication services patterns environment
US6601192B1 (en) 1999-08-31 2003-07-29 Accenture Llp Assertion component in environment services patterns
US6539396B1 (en) 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
US6550057B1 (en) 1999-08-31 2003-04-15 Accenture Llp Piecemeal retrieval in an information services patterns environment
US6477665B1 (en) 1999-08-31 2002-11-05 Accenture Llp System, method, and article of manufacture for environment services patterns in a netcentic environment
US6496850B1 (en) 1999-08-31 2002-12-17 Accenture Llp Clean-up of orphaned server contexts
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US20020049841A1 (en) 2000-03-03 2002-04-25 Johnson Scott C Systems and methods for providing differentiated service in information management environments
US20020049608A1 (en) 2000-03-03 2002-04-25 Hartsell Neal D. Systems and methods for providing differentiated business services in information management environments
US20020174227A1 (en) 2000-03-03 2002-11-21 Hartsell Neal D. Systems and methods for prioritization in information management environments
US20020095400A1 (en) 2000-03-03 2002-07-18 Johnson Scott C Systems and methods for managing differentiated service in information management environments
US20030236745A1 (en) 2000-03-03 2003-12-25 Hartsell Neal D Systems and methods for billing in information management environments
US20020059274A1 (en) 2000-03-03 2002-05-16 Hartsell Neal D. Systems and methods for configuration of information management systems
US20020065864A1 (en) 2000-03-03 2002-05-30 Hartsell Neal D. Systems and method for resource tracking in information management environments
AU2001249821A1 (en) 2000-04-07 2001-10-30 Broadcom Homenetworking, Inc. A transceiver method and signal therefor embodied in a carrier wave for a frame-based communications network
AU2001268674B2 (en) 2000-06-22 2007-04-26 Microsoft Technology Licensing, Llc Distributed computing services platform
US7315914B1 (en) * 2000-06-30 2008-01-01 Emc Corporation Systems and methods for managing virtualized logical units using vendor specific storage array commands
US8250357B2 (en) 2000-09-13 2012-08-21 Fortinet, Inc. Tunnel interface for securing traffic over a network
US7865596B2 (en) 2000-11-02 2011-01-04 Oracle America, Inc. Switching system for managing storage in digital networks
AU2002227121A1 (en) 2000-11-07 2002-05-21 Surgient Networks, Inc. Systems and methods for providing differentiated business services in information management environments
US6880002B2 (en) 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7574496B2 (en) 2001-11-30 2009-08-11 Surgient, Inc. Virtual server cloud interfacing
US7565509B2 (en) 2002-04-17 2009-07-21 Microsoft Corporation Using limits on address translation to control access to an addressable entity
US7165260B2 (en) 2002-06-12 2007-01-16 Fsl, L.L.C. Layered computing systems and methods for insecure environments
WO2003107220A1 (en) 2002-06-12 2003-12-24 Fslogic, Inc. Layered computing systems and methods for insecure environments
US6678828B1 (en) 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
US7143288B2 (en) 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
US7499401B2 (en) 2002-10-21 2009-03-03 Alcatel-Lucent Usa Inc. Integrated web cache
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20040181476A1 (en) 2003-03-13 2004-09-16 Smith William R. Dynamic network resource brokering
WO2005001700A1 (ja) * 2003-06-27 2005-01-06 Fujitsu Limited ストレージ容量管理方法、そのサーバ、記録媒体
WO2005024567A2 (en) 2003-08-18 2005-03-17 Spearman Anthony C Network communication security system, monitoring system and methods
US7433885B2 (en) 2003-12-15 2008-10-07 Quantum Matrix Holdings, Llc System and method for multi-dimensional organization, management, and manipulation of data
US20060248285A1 (en) 2005-04-29 2006-11-02 Petev Petio G Cache coherence protocol
US8838668B2 (en) * 2005-12-01 2014-09-16 Firestar Software, Inc. System and method for exchanging information among exchange applications
US20080028445A1 (en) * 2006-07-31 2008-01-31 Fortinet, Inc. Use of authentication information to make routing decisions
AU2009259876A1 (en) * 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7483983B1 (en) * 2000-11-13 2009-01-27 Telecommunication Systems, Inc. Method and system for deploying content to wireless devices
CN1819593A (zh) * 2004-11-01 2006-08-16 联想(新加坡)私人有限公司 信息处理器和数据传输系统及方法

Also Published As

Publication number Publication date
WO2010127365A1 (en) 2010-11-04
EP2425341A1 (en) 2012-03-07
US20110022812A1 (en) 2011-01-27
US8578076B2 (en) 2013-11-05
CN102460393A (zh) 2012-05-16
US20140052864A1 (en) 2014-02-20
US9210100B2 (en) 2015-12-08
EP2425341B1 (en) 2018-07-11

Similar Documents

Publication Publication Date Title
CN102460393B (zh) 用于在虚拟存储资源之间建立云桥的系统和方法
US10412170B2 (en) Retention-based data management in a network-based data store
CN102217273B (zh) 用于应用流畅性策略的系统和方法
CN102460391B (zh) 用于在应用传送结构中提供虚拟设备的系统和方法
CN102783090B (zh) 用于多核系统中的对象速率限制的系统和方法
CN103119907B (zh) 提供用于访问控制的智能组的系统和方法
CN102460394B (zh) 用于多核系统中的分布式哈希表的系统和方法
CN103154895B (zh) 用于在多核系统中的核上管理cookie代理的系统和方法
US10057187B1 (en) Dynamic resource creation to connect client resources in a distributed system
CN103392314A (zh) 用于可扩展的n核统计信息聚合的系统和方法
CN103650426A (zh) 用于在公共云与私有云之间进行云桥接的系统和方法
CN104012041A (zh) 用于分析网络指标的系统和方法
CN105190557A (zh) 用于通过多级api集成在公共与私有云之间进行桥接的系统和方法
CN102770853A (zh) 用于在多核系统中管理大型高速缓存服务的系统和方法
CN103403707A (zh) 用于数据库代理请求交换的系统和方法
CN103503424A (zh) 用于实现多核系统中的连接镜像的系统和方法
CN103765851A (zh) 用于到任何服务的透明的层2重定向的系统和方法
CN103155520A (zh) 用于多核虚拟分组引擎装置中的半虚拟化驱动程序的系统和方法
CN103548022A (zh) Utf-8模式匹配系统和方法
CN102483707A (zh) 在负载平衡的多核环境中保持源ip的系统和方法
CN103155524A (zh) 用于在多核系统中的多个核之间共享iip地址的系统和方法
CN103583022A (zh) 用于经由nic感知应用处理nic拥塞的系统和方法
CN102549984A (zh) 在多核架构中分组引导的系统和方法
CN103299594A (zh) 用于可扩展的认证框架的系统和方法
US10616134B1 (en) Prioritizing resource hosts for resource placement

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