用于网络环境中虚拟化镜像的安全配置的系统和方法转让专利

申请号 : CN201380019176.5

文献号 : CN104221325B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马斯默·西威里尼伊莲·昌

申请人 : 思科技术公司

摘要 :

一种示例方法包括在网络环境中的刀片和配置服务器之间设立安全信道,通过安全信道从配置服务器向刀片下载虚拟机监视器(VMM)的镜像,并且启动该镜像以在刀片上实例化VMM。刀片和配置服务器以多个参数互相认证和授权。启动镜像可包括在刀片的存储元件上加载该镜像以及对镜像传输控制。在一些实施例中,启动镜像包括通过添加守护进程修改镜像的根文件系统,以使得代理被包括在根文件系统中。代理可下载对应于虚拟机的操作系统的另一镜像。

权利要求 :

1.一种用于在网络环境中安全布置虚拟镜像的方法,包括:在网络环境中,由在刀片中执行的启动代理在所述刀片和配置服务器之间设立安全信道,其中所述刀片和所述配置服务器以多个参数互相认证和授权,其中所述启动代理从在向所述刀片提供网络连接性的交换机上执行的管理应用获取;

通过所述安全信道从所述配置服务器向所述刀片下载虚拟机监视器VMM的镜像,其中所述VMM能托管所述刀片上的多个虚拟机VM;以及启动所述镜像以在所述刀片上实例化所述VMM。

2.如权利要求1所述的方法,其中所述启动包括:在所述刀片的存储元件上加载所述镜像;以及

向所述镜像传输控制。

3.如权利要求1所述的方法,其中所述启动包括:通过添加守护进程来修改所述镜像的根文件系统,从而使代理被包括在所述根文件系统中,其中所述代理可引发从所述配置服务器对对应于虚拟机的另一镜像的下载。

4.如权利要求3所述的方法,其中所述代理被配置为创建启动策略代理,所述启动策略代理能够联系所述配置服务器以获取所述另一镜像。

5.如权利要求1所述的方法,其中所述多个参数包括镜像参数、加密参数和网络参数,其中所述镜像参数包括镜像名称和路径、内核、内核启动选项、根文件系统和镜像类型,其中所述加密参数包括熵、配置服务器公钥、配置服务器私钥、证书和与刀片服务器共享的密钥,并且其中所述网络参数包括刀片互联网协议IP地址、网络掩码、网关IP地址、刀片标识符ID和配置服务器IP地址。

6.如权利要求1所述的方法,其中所述安全信道被使用传输层安全TLS协议设立。

7.如权利要求1所述的方法,其中所述镜像被使用超文本传输协议安全HTTPS协议下载。

8.如权利要求1所述的方法,其中所述多个参数的至少一部分被从管理所述刀片的交换机取得。

9.如权利要求1所述的方法,还包括:

在所述交换机处拦截来自所述刀片的基本输入/输出系统BIOS的启动请求;

以所述多个参数定制启动代理代码来生成启动代理,其中所述启动代理代码对于刀片服务器中的所有刀片都是有效的;以及响应于所述启动请求向所述刀片传输所述启动代理。

10.如权利要求9所述的方法,其中所述启动代理的传输通过物理连接执行,所述物理连接是从由以下项组成的一组物理连接中选定的一个:a)以太网连接;

b)光纤连接;以及

c)非以太网连接。

11.一种用于在网络环境中安全布置虚拟镜像的装置,包括:存储元件,该存储元件用于存储数据;以及

处理器,该处理器执行与所述数据相关联的指令,其中所述处理器和所述存储元件合作以使所述装置被配置用于:在网络环境中,由在刀片中执行的启动代理在所述刀片和配置服务器之间设立安全信道,其中所述刀片和所述配置服务器以多个参数互相认证和授权,其中所述启动代理从在向所述刀片提供网络连接性的交换机上执行的管理应用获取;

通过所述安全信道从所述配置服务器向所述刀片下载虚拟机监视器VMM的镜像,其中所述VMM能托管所述刀片上的多个虚拟机VM;以及启动所述镜像以在所述刀片上实例化所述VMM。

12.如权利要求11所述的装置,其中所述启动包括:通过添加守护进程来修改所述镜像的根文件系统,从而使代理被包括在所述根文件系统中,其中所述代理可引发从所述配置服务器对对应于虚拟机的另一镜像的下载。

13.如权利要求11所述的装置,其中所述多个参数包括镜像参数、加密参数和网络参数,并且其中所述网络参数包括刀片互联网协议IP地址、网络掩码、网关IP地址、刀片标识符ID和配置服务器IP地址。

14.如权利要求11所述的装置,其中所述安全信道被使用传输层安全TLS协议设立。

15.如权利要求11所述的装置,还被配置用于与能够执行包括下述项的管理应用进行通信:在所述交换机处拦截来自所述刀片的基本输入/输出系统BIOS的启动请求;

以所述多个参数定制启动代理代码来生成启动代理,其中所述启动代理代码对于刀片服务器中的所有刀片都是有效的;以及响应于所述启动请求向所述刀片传输所述启动代理。

说明书 :

用于网络环境中虚拟化镜像的安全配置的系统和方法

技术领域

[0001] 本发明公开一般涉及通信领域,更具体地,涉及用于在网络环境中虚拟化镜像的安全配置的系统和方法。

背景技术

[0002] 在信息技术(IT)市场中虚拟化的趋势驱动着许多虚拟化技术的发展,诸如网络虚拟化和计算虚拟化。网络虚拟化解决方案可将多个物理网络合并在一个虚拟网络中。它们还可在逻辑上将单一物理网络分割为多个逻辑网络。分区(partition)可被添加以快速规模网络以适用业务需求。计算虚拟化(例如,在单一物理平台上生成多个虚拟环境)可依据硬件投资和物理空间允许计算平台的合并。网络和计算虚拟化代表了新的IT范例:挑战现有的物理网络部署模型。网络和计算虚拟化提供了许多好处,诸如扩大单一IT资产对多用户的可用性,将多个IT资产管理为单个资源以及提供用于应用的专用虚拟网络,其将带来收入创造、开支减少和客户满意度。

发明内容

[0003] 根据本公开的一个示例,提供了一种用于在网络环境中安全布置虚拟镜像的方法,包括:在网络环境中,由在刀片中执行的启动代理在刀片和配置服务器之间设立安全信道由在刀片中执行启动代理来在网络环境中的刀片和配置服务器之间设立安全信道,其中刀片和配置服务器以多个参数互相认证和授权,其中启动代理从在向刀片提供网络连接性的交换机上执行的管理应用获取;通过安全信道从配置服务器向刀片下载虚拟机监视器(VMM)的镜像,其中VMM能托管刀片上的多个虚拟机(VM);以及启动镜像以在刀片上实例化VMM。
[0004] 根据本公开的另一示例,提供了一种用于在网络环境中安全布置虚拟镜像的装置,包括:存储元件,该存储元件用于存储数据;以及处理器,该处理器执行与数据相关联的指令,其中处理器和存储元件合作以使装置被配置用于:在网络环境中,由在刀片中执行的启动代理在刀片和配置服务器之间设立安全信道,其中刀片和配置服务器以多个参数互相认证和授权,其中启动代理从在向刀片提供网络连接性的交换机上执行的管理应用获取;通过安全信道从配置服务器向刀片下载虚拟机监视器VMM的镜像,其中VMM能托管刀片上的多个虚拟机VM;以及启动镜像以在刀片上实例化VMM。

附图说明

[0005] 为了更加完整的理解本公开及其特征和优点,结合附图对下文的描述做出了参考,其中相同的标号表示相同的部分,其中:
[0006] 图1是示出了用于在网络环境中的虚拟化镜像的安全配置的系统的简化框图;
[0007] 图2是根据本发明的一个实施例示出了系统示例细节的简化框图;
[0008] 图3是根据本发明的另一实施例示出了系统其它示例细节的简化框图;
[0009] 图4是示出了可能与系统的实施例相关联的示例操作的简化流程图;
[0010] 图5是示出了系统的实施例的示例细节的简化框图;
[0011] 图6是示出了系统的另一实施例的另外其它示例细节的简化框图;
[0012] 图7是示出了系统的另一实施例的另外其它示例细节的简化框图;
[0013] 图8是示出了系统的另一实施例的另外其它示例细节的简化框图;
[0014] 图9是示出了系统的另一实施例的另外其它示例细节的简化框图;
[0015] 图10是示出了可能与系统的实施例相关联的示例操作的简化流程图;
[0016] 图11是示出了可能与系统的实施例相关联的其它示例操作的简化流程图;
[0017] 图12是示出了可能与系统的实施例相关联的另外其它示例操作的简化流程图;
[0018] 图13是示出了可能与系统的实施例相关联的另外其它示例操作的简化流程图;
[0019] 图14是示出了可能与系统的实施例相关联的另外其它示例操作的简化流程图;
[0020] 图15是示出了可能与系统的实施例相关联的另外其它示例操作的简化流程图;
[0021] 图16是示出了系统的示例实验性实现的简化图;
[0022] 图17A是提供了上图的示例实验性实现的测量的表格;以及
[0023] 图17B是示出了示例实验性实现的测量的图表。

具体实施方式

[0024] 概述
[0025] 示例方法包括在网络环境中的刀片和配置服务器之间建立安全信道。在此上下文中,术语“建立”可包括任何与发起、构建、供应或另外创建安全信道相关联的合适的活动。该方法还包括通过安全信道从配置服务器向刀片下载虚拟机监视器(VMM)的镜像,并且启动该镜像以在刀片上实例化VMM。刀片和配置服务器使用多个参数互相认证和授权。在特定的实施例中,参数可包括镜像参数、加密参数和网络参数。镜像参数的示例可包括镜像名和路径、内核、内核启动选项、根文件系统和镜像类型。加密参数的示例包括熵、配置服务器公钥、配置服务器私钥、证书以及与刀片服务器共享的密钥。网络参数的示例包括刀片互联网协议地址、网络掩码、网关IP地址、刀片标识符和配置服务器IP地址。
[0026] 在特定的实施例中,启动镜像可包括在刀片的存储元件上加载镜像以及向镜像传输控制。在另一实施例中,启动镜像可包括通过添加守护进程(daemon)修改镜像的根文件系统,以使得代理被包括在根文件系统中。代理通过安全信道引起对配置服务器的连接以从配置服务器下载对应于虚拟机的另一镜像。
[0027] 在一些实施例中,可使用安全传输层协议建立安全信道。镜像可使用超文本传输协议安全协议(HTTPS)被下载。在不同的实施例中,可从管理刀片的交换机取得多个参数的至少一部分。在另一实施例中,该方法还可包括拦截来自刀片基本输入/输出系统的启动请求,使用多个参数定制启动代理代码来生成启动代理以及响应于启动请求,将启动代理转移到刀片。启动代理代码可能对于刀片服务器中基本上所有的刀片都有效。在更为特定的实施例中,转移可以是通过物理连接,诸如以太网连接、光纤连接或非以太网连接的。
[0028] 示例实施例
[0029] 转向图1,图1是示出了用于在网络环境中虚拟化镜像的安全配置的通信系统10的简化框图。图1示出了网络12,其中客户端14通过网关18与虚拟机(VM)16进行通信。交换机20可通过一个或多个以太网电缆(例如,10GE)或光纤电缆从客户端14将通信路由至刀片服务器22。刀片服务器22可包含一个或多个刀片。如此处所用,术语“刀片”包含可通过网络(例如,网络12)为客户端(例如,客户端14)执行计算任务的计算机或处理器。刀片可包括诸如数据库服务器、文件服务器、电子邮件服务器以及网页服务器的服务器计算机;与诸如瘦客户端的客户端访问设备(例如,客户端14)协同操作的个人计算机(例如,刀片PC);以及与刀片PC操作相似、具有更强计算能力的工作站(例如,刀片工作站)。刀片还可提供交换、路由、存储和光纤信道访问功能。刀片的示例是刀片服务器,其可以是优化以最小化物理空间和能源的使用的、具有模块化设计的精简服务器计算机。通常,刀片服务器包括模块化卡,其包括服务器、存储器、输入/输出以及非易失性程序存储(例如,闪速存储器、硬盘驱动程序)。
[0030] 通信系统10的实施例可提供计算虚拟化网络环境。在刀片服务器22中的刀片26的示例以包括虚拟机监视器(VMM)28而被更加详细的示出,其中VMM 28托管VM 16。VMM 28可使用来自配置服务器32的无状态VMM镜像30而在刀片26上启动。如此处所用,术语“镜像”是包含代表软件(例如,操作系统(OS)、应用)的内容和结构的单一文件。在不同的实施例中,VMM镜像30可包括内核、根文件系统和其它VMM28的组件。镜像可能是“无状态的”或“有状态的”。“无状态的”镜像不包含软件或存储设备的状态(例如,属性的快照,诸如在特定时刻的配置信息、用户配置等等)。此外,“有状态的”镜像包含软件或存储设备的状态。例如,有状态的镜像可包含用户配置(或设备配置),其特定于用户(或设备)呈现特定的镜像。在不同的实施例中,VMM镜像30可以是存储在存储设备34中的无状态镜像。因为VMM镜像30是无状态的,网络12中的多个刀片(例如,26)可访问和下载VMM镜像30以在其上实例化VMM 28。
[0031] VM 16还可使用来自配置服务器32的无状态VM镜像36以被安装在VMM28上。在一些实施例中,VM镜像36可包括安装在其上的、包含VM16的操作系统(例如, )的镜像和若干应用(例如,Microsoft 等等)。在另一实施例中,VM镜像36可
包括多个镜像,该镜像包括针对操作系统和每一个应用的单独的镜像。在又一实施例中,VM镜像36可包括特定的操作系统镜像或特定的应用镜像二者中的一个。例如,在刀片26上完整安装的VM 16可参与启动成千个VM镜像36,每一个镜像对应于特定的应用或操作系统。VM镜像36还可被存储在存储设备34上。管理应用38可通过使用启动代理代码42来使启动代理
40被建立。
[0032] 如此处所用,术语“启动代理代码”指的是被配置为执行本文所述的各种启动操作的应用。尤其,启动代理代码42是对通信系统10中的基本上所有刀片有效的应用。术语“启动代理”指的是与启动代理代码相似的另一应用,但为在通信系统10中的特定的刀片(例如,刀片26)和特定的VM(例如,VM 16)定制。在示例实施例中,启动代理40可能是启动代理代码42的变体,其具有多个在物理上被复制在程序指令中特定位置的参数(特定于刀片26和/或VM 16)。在不同的实施例中,启动代理代码42可与多个参数混合以生成启动代理40,该参数特定于刀片26和/或VM 16。管理应用38可将启动代理40转移到在刀片26上的基本输入/输出系统(BIOS)44以辅助对于刀片26的VMM镜像30和VM镜像36的安全配置。
[0033] 根据不同的实施例,通信系统10可实现对于裸金属刀片(例如,刀片26)和虚拟机(例如,VM 16)的虚拟化软件(例如VMM镜像30和VM镜像36)的安全配置。如此处所用,术语“裸金属刀片”指的是不包含OS或任何软件的刀片。当刀片26被通电时,BIOS 44可被执行,并且引导(bootstrap)可通过引导请求被激活。引导请求可被管理应用38拦截。管理应用38可从启动代理代码42建立启动代理40,并将启动代理40传到BIOS 44。
[0034] 启动代理40可被存储在刀片26的存储元件(例如,硬盘驱动程序)中。启动代理40可被安装在存储元件(例如诸如随机存取存储器(RAM)的易失性存储器)上。启动代理40可使用多个参数建立配置服务器32的安全信道并将VMM镜像30下载至刀片26。VMM镜像36其后可被加载到刀片26的存储元件中,并且可接收来自启动代理40的控制。为了实例化VM 16,VMM 28可在VMM镜像下载过程期间通过包含守护进程而被定制,并且VMM 28其后可安全地下载VM镜像36。
[0035] 如此处所用,术语“安全信道”指的是具有安全层(例如,安全套接层(SSL)、传输层安全(TLS)等等)的通信信道,例如其驻留于应用和传输层之间。密钥被用于保护信息流过安全信道并对通过安全信道进行通信的各方进行认证和授权。一般意义上来说,安全信道防止窃听、冒名和篡改。安全信道的安全性可通过VMM镜像30或VM镜像36的源(例如,配置服务器32)认证来实现,并且安全信道的隐私可通过密码加密方法来实现。在一些实施例中,配置服务器32的认证,例如,可使用加密证书(例如,X 509)和/或加密共享密钥或公钥来实现,其中该加密共享密钥或公钥在启动刀片引导过程之前通过管理应用38在配置服务器和多个用于启动代理40的参数中被设立。
[0036] 为了说明通信系统10的技术,理解在给定系统(诸如在图1中示出的系统)中的通信是非常重要的。以下基础信息可被看作是本发明可被合理解释的基础。仅出于说明的目的诚挚地提供这类信息,因此其不应被理解为限制了本发明的广泛范围和其潜在的应用。
[0037] 启动是当电源被接通时计算机执行的一套操作。当计算机被打开,其开始引导过程,该引导引导过程将计算机带入其中的友好的界面能够使用户与计算功能顺利交互的状态。引导引导过程由从硬件到高层软件涉及整个计算机的基础设施的几个序列化步骤组成。在功能结构方面,与典型引导引导过程相关联的主要组件由硬件、BIOS、OS和应用。
[0038] 当计算机自被关闭之后再次被通电(或接收软重新启动命令)时,引导过程开始,并且当计算机准备执行其常规操作时,引导过程结束。该过程通常参与执行开机自测试、定位及初始化外部设备以及查找、加载及启动OS。开启计算机使电流流入硬件并使每一个计算机的硬件组件以及特别是中央处理单元(CPU)和其它处理器(“芯片组”)生成基本重置。对于重置的常规响应是基本状态,其中控制被传到BIOS。
[0039] BIOS是驻留在计算机中的软件并且对于硬件是特殊的。在BIOS中,芯片组被初始化为定义明确的状态。其后,BIOS查找并发现OS,以及将控制传到OS。与BIOS不同,OS能够驻留在许多不同的介质中。通常,使用预定用户设置安置OS,诸如软盘驱动程序(FDD)、硬盘驱动程序(HDD)、CD-ROM、USB记忆棒、网络及其它。由于BIOS并不先天地知晓OS的位置,并且OS可能位于不同类型的介质中,BIOS通常使用两个过程中的一个以将控制传到OS:(1)标准启动;以及(2)国际标准化组织(ISO)镜像下载。
[0040] 在常规启动过程中,BIOS访问计算机的本地存储介质,并在存储器中加载启动加载器,其后通过向启动加载器传输控制来完成其操作。启动加载器是小程序(通常是OS的顶部(例如,开头512字节)的部分),其负责从介质(例如,HDD)向存储元件(例如,RAM)加载剩余的OS。计算机执行启动加载器以向RAM加载用来执行的剩余的OS、应用和其它数据。此方法允许在存储器中的OS的部分加载:部分OS保留在介质(例如,HDD)中,并用于存储在计算机关机时保留下来的数据。这种启动过程被称为是“有状态的”,这是由于其在关闭时保留了信息。然而,有状态的过程可能导致计算机系统易受在关机时保留下来的病毒的攻击,这是因为,比如病毒被以硬件方式写入在介质上。
[0041] 有状态的引导(例如,通过本地硬盘单元(HDU)或互联网小型计算机系统接口/光纤信道(iSCSI/FC))可能被关于软件的过往历史已被恶意软件修改的安全担忧困扰。此外,无状态的引导需要软件的最新副本以使每一个引导在内存盘(例如,一块计算机系统看作磁盘驱动对待的RAM)中被加载和执行。尽管无状态的引导在计算机中需要更多的RAM,其可能是减缓安全担忧的可接受的解决方法。无状态的引导通常是用于运行云环境的数据中心的首选的引导方法。然而,在当前的数据中心网络环境中在ISO镜像下载过程中使用不安全的协议(诸如,动态主机配置协议(DHCP)和简单文件传输协议(TFTP)实现无状态引导。
[0042] ISO镜像下载被执行于网络启动期间,这期间计算机从网络上而不是本地驱动(例如,HDD、FDD)上被启动。网络启动可被用于集中在机群计算(其中节点可能不具有本地存储介质)和其它此类的应用中的磁盘存储管理。在网络启动中,初始软件(包括启动加载器和OS)作为来自网络中服务器的镜像被加载。ISO镜像下载与场馆启动不同,这是由于在传输控制之前,完整的OS的软件镜像被下载和存储叜本地存储元件中。BIOS初始化网络连接(例如,以太网连接)并下载镜像。网络启动通常通过使用网络接口在预启动执行环境(PXE)中被执行,其独立于数据存储设备或已安装的操作系统。PXE通常被存储在伴随有计算机上的网络接口卡(例如以太网卡)的硬件只读存储器中。
[0043] PXE启动过程遵循客户端-服务器模型。存储OS镜像的PXE服务器配置DHCP和TFTP,并在其上运行它们。启动自检测过程后,客户端是在BIOS中配置的VM或刀片,其从网络上启动并执行PXE引导会话。起先,PXE过程在网络中查找DHCP服务器(例如,通过广播扩展了PXE特定选项的DHCPDISCOVER分组)。适当配置的DHCP服务器以网络参数作为响应以便逻辑上初始化网络连接和OS镜像名及位置。选择PXE启动服务器后,使用TFTP(其是未加密的)的PXE固件下载启动加载器,其中该启动加载器被上传到客户端的存储元件(例如,RAM)中。验证启动加载器后,启动加载器在客户端上执行启动过程、下载OS镜像以及向其传输控制。
[0044] ISO镜像下载通常在每次引导中重复。开机/关机、计算机的重置或一般重启之后,OS镜像的最新副本被下载和激活。因此,在之前的会话中做出的任何修改(例如,添加应用)被失。尽管丢失的数据可影响生产率,这种无状态的引导相较于有状态的引导更加安全,这是由于当系统从OS镜像的最新副本重新启动时,通常,本质上每一个可能由恶意软件造成的污染均丢失。进一步地,PXE是较旧的协议:被视为被更新和易受安全威胁的攻击。例如,DHC连接和TFTP协议易受到恶意软件攻击,这是由于他们缺乏安全性。
[0045] 现有的网络启动选项是使用vMedia来下载OS镜像。vMedia是在特定的机器中可用的启动选项,并且其允许来自磁盘类型介质的引导犹如该介质是本地介质那样分散在网络中。vMedia通常使用外部设置来初始化并且在BIOS可被设置为启动选项。vMedia看起来像正常的本地硬盘启动(例如,标准启动),然而其实际上是具有关联的安全性担忧(诸如镜像源的认证以及镜像完整性验证)的镜像下载。
[0046] 在数据中心中,出于包括下述项的不同原因,在网络基础设施上加载计算平台软件可能是关键操作:安全性(例如,OS镜像源的认证、镜像传输和镜像完整性检查);性能(例如,针对远程下载镜像的性能);以及管理(例如,在镜像的建立、存储和定制方面的管理)。此外,对于虚拟化平台,通常执行两个不同的操作:1)在裸金属刀片上下载VMM;以及2)在VMM上下载VM操作系统和应用。
[0047] 对于这些选项中的每一个来说,安全性和性能可能是致使现有PXE启动选项不理想的问题。例如,对PXE提供安全信道以克服安全性问题可能是不可能的。伴随在现有数据中心基础设施中建立用于下载无状态镜像的安全信道而生成的附加问题包括:在刀片上的BIOS代码可能不会为随机数发生器生成足够的熵来保证下载信道上的隐私;在BIOS中,身份、密钥和证书无法被安全地存储;ISO镜像下载协议作为使用TFTP的PXE,是不安全的并且不适于下载大镜像;PXE代码使用DHCP协议来获取关于网络和待下载镜像的信息,但DHCP协议由于自身性能不能在加密信道上运行。
[0048] 除了安全性,有关于从PXE服务器下载镜像的问题包括低性能(例如,长时间启动)、下载时间、镜像定制等等。除了镜像的大小可相对地大(达到级几千兆字节)的事实,当多个刀片在同一时间启动时,启动过程的管理,尤其是网络负载可能被妥协。特别当整个数据中心平台被打开时,网络负载可能会非常重。此外,镜像的存储和定制可能是一个问题。尽管每个刀片下载相同的镜像,被定制的副本应被制成添加熵和身份。这种操作可能需要与管理应用(或其它管理员操作)的特定的交互,其在当前的数据中心平台中未被提供。并且,尽管(由于VMM的存在)安全性担忧对于VM镜像下载来说不是那么重要,下载性能和镜像定制问题可能更难解决,这驱动着对于管理应用的集成的需要。
[0049] 当前对于引导过程的解决方案建议下载熵、密钥和镜像信息,然而,下载过程在PXE中,伴随着其内在的安全风险。例如,用于保护PXE的启动完整性服务(BIS)在共享相同的公钥的PXE客户端和PXE服务器之间建立排他关系。这避免了恶意PXE服务器通过网络随意分发未经请求的镜像的可能性。然而,通过网络的镜像传输是不安全的;因此,当镜像传输过程本身是非加密的时,BIS不能防止中间人攻击。
[0050] 通信系统10通过被配置为提供用于在网络环境中虚拟化镜像的安全配置的系统和方法来解决这些问题(或其它问题)。通信系统10的实施例可实现配置解决方案,其具有优化下载性能并与管理应用38集成用于安全镜像下载。启动代理40,其可包括启动加载器,可在刀片26和配置服务器32之间建立安全信道。启动代理40可通过特定于刀片26的多个参数来定制,并且刀片26和配置服务器32可通过多个参数互相认证和授权。启动代理40可通过安全信道将VMM镜像30从配置服务器32下载到刀片26,并且启动无状态VMM镜像30以在刀片26上初始化VMM 28。参数可用于在刀片服务器22中的不同的刀片之间作出区别。例如,参数可包括镜像参数(例如,VMM镜像30和VM镜像36的名称和路径、内核、内核启动选项、根文件系统和镜像类型)、加密参数(例如,熵、配置服务器公钥、配置服务器私钥、证书和与刀片服务器共享的密钥)以及网络参数(例如,刀片互联网协议(IP)地址、网络掩码和其它未来地址技术的地址规范、网关IP地址、刀片标识符(ID)和配置服务器IP地址)。
[0051] 在一个实施例中,为了在刀片26中实例化VM 16,VMM 28可首先从VMM镜像30被实例化。BIOS44可被复制到VM 16,并且VM启动可从该BIOS 44的复制开始。管理应用38可拦截来自BIOS 44的请求VM镜像36的启动请求,并将通过适当的用于VM 16的参数定制的启动代理40传送到BIOS 44。在另一实施例中,启动代理代码42可组成部分VMM 28(例如,以在VMM 28的根文件系统内部的守护进程的形式),并且在VMM 28之内的启动代理代码42可使用从管理应用38获取的适当的参数准备启动代理40,拦截VM启动请求并向VM 16传送启动代理
40。
[0052] 在不同的实施例中,启动代理40可从管理应用38被获取,其可被配置用于拦截来自BIOS 44的启动请求,使用多个参数定制启动代理代码以生成启动代理40,并且响应于BIOS启动请求向刀片26传输启动代理40。启动代理代码42可能对于刀片服务器22中的基本上所有的刀片是有效的。通过适当地将参数改变为所期望的,启动代理代码42可针对刀片服务器22中的每一个刀片(例如,26)或每一个VM(例如,VM 16)被定制。
[0053] 根据通信系统10的实施例,启动代理代码42可以是被称为gPXE的开放源码PXE实现方式。例如,启动代理代码42可在GPL2许可证、GPL3许可证或类似的许可证上执行的gPXE中被实现。gPXE代码可提供基本的传输控制协议/因特网互联协议(TCP/IP)栈和网络硬件管理。在不同的实施例中,本地网络通用网络设备接口(UNDI)驱动程序可被启动代理代码42用于启动过程,而不是使用DHCP或DHCP选项。UNDI是PXE和其它类似的环境使用的用于网络接口卡(NIC)的应用接口(API)。因此,DHCP协议可能对于启动代理代码42是可选的。启动代理代码42可通过存储单元接受参数,并与TLS和HTTPS协议以及多个NICs和UNDI驱动程序共同工作。尽管gPXE在此作为创建启动代理代码42的示例方法被提及,需要注意的是任何已知的方法可被用于创建启动代理代码42。例如,专有代码可使用TCP/IP栈和添加代码(例如,计算机指令)而被修改以与UNDI接口相接从而生成启动代理代码42。在不同的实施例中,刀片26和配置服务器32之间的安全信道可使用TLS协议来建立,并以包括熵和其它加密参数的参数来设立。
[0054] 启动代理代码42可作为黄金副本被存储在交换机20中,该黄金副本对于在刀片服务器22中的基本上每一个刀片和VM均有效。启动代理代码42可包括启动加载器。启动代理40可由启动代理代码42和特定于刀片26和VM 16的多个参数构成。在一个实施例中,在启动代理40被传输到刀片26之前,将参数混合在一起。在一些实施例中,启动代理代码42在大小上可能近似于70K字节并且,例如,可通过vMedia在刀片26上使用虚拟软盘驱动器(vFDD)接口下载启动代理代码42。启动代理40的BIOS下载可通过vMedia而被保障安全,其可利用在刀片26和交换机20之间的硬件连接(例如,有线的或无线的)。管理应用38可以使得启动代理代码42的副本被创建并且使得(例如大小为2K字节的)参数被以硬件方式写入启动代理代码42的副本以生成启动代理40。
[0055] 根据不同的实施例,启动代理40的下载的安全性可通过刀片26和交换机70之间的物理连接(例如,以太网连接)来保障,并且配置服务器32和刀片26之间的安全信道的安全性能够通过多个参数来保障。启动代理40的安全性还可通过任意可行的方法来获取,包括通过vMedia连接的启动代理40的安全下载;在启动代理代码42已经呈现在刀片上的情况下通过刀片26和管理应用38之间的直接通信传输参数;以及其它方法。
[0056] 在一个实施例中,当启动代理代码42和多个参数二者均在管理应用38中时,可在管理应用38中执行启动代理代码42和多个参数的混合。随后,启动代理40可通过在管理应用38和刀片26之间的vMedia被传输到刀片26。vMedia请求由管理应用38在例如交换层级来解释和管理。使用vMedia的启动方法是有状态启动,并且当启动代理40的启动加载器部分(例如代码的开头512个字节)在刀片存储器中被执行时,剩余的启动代理40可被传输到刀片26。由于在刀片26和交换机20之间的物理连接,这样的传输可能是安全的。
[0057] 在另一示例实施例中,可在BIOS 44中执行对启动代理代码42和多个参数的混合。在多个参数在管理应用38中、并且启动代理代码42被保存在刀片26(例如,作为选项只读存储器(ROM))中的实施例中,BIOS 44可使用与管理应用38连接的安全连接获取多个参数,随后从刀片26内部获取启动代理代码42。BIOS44可将启动代理代码42与多个参数混合来生成启动代理40、在存储器中加载启动代理40并执行启动代理40。在另一示例实施例中,启动代理代码42可能是BIOS 44其自身的一部分,并且BIOS 44可通过安全连接从管理应用38获取多个参数,并将启动代理代码42与该多个参数混合以生成启动代理40。其后,BIOS 44可在存储器中加载启动代理40并执行启动代理40。
[0058] 在一些实施例中(例如,在刀片26上启动VMM 28),启动可包括向刀片26的存储元件加载VMM镜像30,并从启动代理40向VMM镜像30传输控制。在其它实施例中(例如,在VMM28上启动VM 16),启动可包括通过安全信道从配置服务器32下载脚本。脚本可包括将守护进程(例如进程)复制到配置服务器32中的初始内存盘(initrd)中。初始内存盘initrd是用于在安装真正的根文件系统之前,在启动过程中在存储器中加载临时文件系统的方案。Initrd可执行硬件检测、模块加载和设备发现以获取已安装的真正根文件系统。启动代理
40可将initrd下载至刀片26的存储元件,并通过添加守护进程来修改VMM镜像30的根文件系统,以便使代理被包括在根文件系统中。代理可通过安全信道引发到配置服务器32的连接以下载对应于VM 16的VM镜像36。
[0059] 在其它不同的实施例中,为了创建VM(例如创建VM 16),从其可启动VM 16的启动代理40可由VMM 28定义。遵循在管理应用38中的启动策略代理的指示,VMM 28可创建启动代理40,其中创建从启动代理代码42(其可能已经在刀片26中被呈现)开始并添加从管理应用38获取的多个参数。“启动策略代理”指的是一种方法,通过该方法启动选项的配置被传播到通信系统10的各种组件。通常,负责配置的实体(例如,通过GUI的客户)可生成启动策略,其中通过使用特定的启动策略代理来传播启动策略。启动代理40可通过配置服务器32创建安全信道,并从那里下载VM镜像36。VM镜像36被启动以在刀片26中实例化VM 16。在另一实施例中,VM 16可通过激活vMedia启动选项来被创建,以便使(从启动代理代码42与多个参数的混合生成的)启动代理40可从管理应用38被下载。
[0060] 在不同的实施例中,配置服务器32可认证刀片26,检查启动请求和验证镜像名称。配置服务器32可通过安全信道向刀片26提供VMM镜像30和VM镜像36。管理应用38可使用参数设立配置服务器32,该参数包括:网络IP地址;与TLS协议一起使用的证书;公钥和密钥;
以及(对于每一个其支持的刀片)刀片标识符和与刀片服务器共享的密钥。
[0061] 转向通信系统10的基础设施,网络拓扑可包括任意数量的相互连接的交换机、刀片服务器、刀片、VM、VMM、配置服务器、网关和其它节点以形成大型和复杂的网络。“节点”可能是任意电子设备、客户端、服务器、对等体、服务、应用或其它能够通过网络中的通信信道实现发送、接收或转发信息的对象。图1中的的元件可采用任何适当的连接(有线的或无线的)通过一个或多个接口彼此耦合,其为电子通信提供了可行的路径。此外,基于特定的配置需要,这些元件中的任何一个或多个可从该结构中被组合或被移除。通信系统10可包括能够实现用于网络中的电子传输或数据分组接收的TCP/IP通信的配置。在适当的情况下或给予特定的需要,通信系统10还可与用户数据报协议/互联网协议(UDP/IP)或其它任何适当的协议协同操作。此外,网关、路由器、交换机和其它任何适当的节点(物理的或虚拟的)可被用于辅助在不同的网络之间的电子通信。
[0062] 在一些实施例中,网络12可包括一个或多个网络元件,其中当通过管理应用38添加管理功能时,该网络元件在底板层集成计算、连网和存储。如此处所用,术语“网络元件”意在于包含计算机、网络装置、服务器、路由器、交换机、结构互连、网关、网桥、负载平衡器、防火墙、处理器、模块或可操作用于在网络环境中交换信息的对象的任何其它适当的设备、组件、元件。此外,网络元件可包括任何适当的硬件、软件、组件、模块、接口或有助于其操作的对象。这将可能包括适当的、能够实现数据或信息的有效交换的算法和通信协议。
[0063] 管理应用38是能够在任何适当的网络元件上运行的应用(例如,计算机程序),该网络原件被配置为执行本文所述的操作。例如,管理应用38可在交换机20内的结构互连(例如,Cisco UCS 6100系列结构互连)上运行,该交换机20支持几个上行或下行连接或端口。出于冗余的目的,容宿(house)管理应用38的结构互连可与一个或多个类似的装置捆绑成束。通过管理应用38,结构互连可管理一个或多个刀片服务器22。刀片服务器22可支持一些刀片(例如,刀片26)。
[0064] 在一些实施例中,刀片服务器22可被覆盖在刀片服务器机箱重,其支持多个刀片(例如,八个刀片)。在一些实施例中,托管管理应用38的结构互连可被固定在刀片服务器机箱的顶端并且可负责刀片服务器22的整体管理。在一些实施例中,交换机22和刀片服务器22可位于一个物理外壳(例如机箱)中。除交换机、刀片服务器和其它在图1中被说明的组件之外,网络12还可包括结构扩展器、机架安装服务器和网络适配器。此外,各种局域网(LAN)和存储区域网(SAN)可能是网络12的一部分。在一些实施例中,当VM上的应用在其上运行时,LAN或SAN可托管配置服务器32。
[0065] 管理应用38可包括适当的图形用户界面(GUI)或命令行界面(CLI)以向网络管理员显露各种功能。在示例实施例中,管理应用38可通过本机的可扩展标记语言(XML)应用接口(API)来显露其功能。GUI和CLI还可使用XML API;此外,用户可创建其自身与API的前端用户接口。例如,在多租户环境中的部署可具有用于每一个租户的定制GUI。其它实现可使用API以连接配置管理数据库或第三方管理和配置工具。
[0066] 启动代理40是在刀片26中执行以实现本文所述操作的应用。配置服务器32是在数据中心平台中的网络元件中的VM中运行的应用。例如,配置服务器32可在刀片服务器22中的另一刀片中运行。或者,配置服务器32可在连接至交换机20的(除刀片服务器22之外的)另一刀片中运行。多个配置服务器32的实例可在通信系统10中的任何时刻运行。当多个刀片在同一时间执行引导时,多个配置服务器32的实例可优化下载时间。例如,多个实例可管理在不同机箱中的不同刀片,优化了网络负载。
[0067] 刀片26和配置服务器32之间的连接可在管理应用38的层级被定义。例如,该连接可能是通过安全信道的。在一些实施例中,安全信道可能是TLS协议信道,并且下载过程可能是通过TLS信道经由HTTPS或安全文件传输协议(FTP)。在一些实施例中,用于设置TLS信道的参数可由管理应用38提供至刀片26和配置服务器32。在其它实施例中,该参数可由网络管理员和/或在网络12中的其它管理服务提供。
[0068] 注意,指派给图1中的元件的数字和字母标识不意味着任何层次的类型;该标识是任意的并且仅用于教学的目的。这种标识不应以任何方式被解释为限制其在潜在环境中的能力、功能或应用,其中该潜在环境可能得益于通信系统10的特征。需要理解的是在图1中示出的通信系统10被简化以便易于说明。例如,网络12可包括接入交换机、聚合交换机和核心交换机以聚合和分布入口(上行流量)流量和出口(下行流量)流量。在网络12内,多个交换机(虚拟的和/或物理的)可在每一个接入层、聚合层和核心层被提供以实现冗余。进一步地,网络12可包括特定于被提供的网络服务的类型的元件;例如,在提供大容量存储的数据中心中,网络12可包括SAN。
[0069] 实例网络环境可被配置在物理基础设施上,其可包括一个或多个网络并且,可被进一步配置成包括但不仅限于LAN、无线局域网(WLAN)、虚拟局域网(VLAN)、城域网(MAN)、广域网(WAN)、虚拟专用网(VPN)、内联网、以太网、任何其它适当的体系架构或网络或这些网络的组合的形式,其中该形式辅助在网络中的通信。在一些实施例中,通信链路可表示任何支持LAN环境的电子链路,所述LAN是例如,电缆、以太网、无线技术(例如,IEEE 802.11x)、ATM、光纤等等或任何适当的它们的组合。在其它实施例中,通信链路可表示通过任何适当的媒介(例如,数字用户线路(DSL)、电话线路、T1线路、T3线路、无线、卫星、光纤、电缆、以太网等等或任何他们的组合)和/或通过任何附加的网络(诸如,广域网(例如,互联网))的远程连接。
[0070] 转向图2,图2是示出了通信系统10的实施例的示例细节的简化框图。交换机20可包括处理器50、存储元件52和管理服务接口54,除此以外还有管理应用38。管理应用38包括数据管理引擎(DME)56,其包括用于辅助辅助安全启动的有限状态机(FSM)58和策略代理。DME56可控制刀片应用网关(AG)60,其可定制启动代理代码42以创建启动代理40。刀片AG 
60还可包括用于辅助安全启动的启动管理器62。
[0071] 刀片26可包括另一处理器64和另一存储元件66,除此以外还有托管VM16的VMM 28和下载启动代理40的BIOS 44。配置服务器32可包括又一处理器68、又一存储元件70、加密引擎72、认证授权模块74和配置传输模块76以辅助辅助使用启动代理40的启动。刀片26和配置服务器32之间的安全信道78可通过启动代理40启动以从存储设备34下载和存储VMM镜像30和VM镜像36。
[0072] 在不同的实施例中,DME 56可能是管理刀片服务器22和交换机20的组件的中央服务。在不同的实施例中,DME 56可为管理的设备和组件存储和维护状态。DME 56可向其管理的设备和端点传播包括配置改变的配置信息,例如,以托管对象(MO)的形式。MO可包含对应于端点(例如,刀片26)的当前状态和所期望的配置。管理员可通过适当配置API对MO做出改变。该改变可由DME 56验证并向特定的端点(例如刀片26)传播。例如,操作者可通过针对刀片26的GUI发起服务器“开机”请求。当DME 56接收到该请求时,其验证该请求,如果该请求是有效的,则DME 56在对应于刀片26的MO上做出相应的状态改变。该状态改变随后通过适当的应用网关(例如刀片AG 60)被传播至刀片26。
[0073] 刀片AG 60可在DME 56和被管理的端点(例如,刀片26)之间起到硬件抽象层的作用。刀片AG 60还可从端点(例如刀片26)向DME 56报告系统状态。在不同的实施例中,刀片AG 60可将管理信息(诸如,配置、统计数值和故障)从其本机的表示转换为MO的形式。刀片AG 60可实现每一个被管理的端点(例如,刀片26)的特定平台细节。刀片AG 60可将MO的管理状态与相关联的被管理的端点(例如,刀片26)的操作状态相比较,并采取适当的动作(例如,如果在MO和端点状态之间有不同之处,则采取相应的矫正动作)。在不同的实施例中,启动管理器62可设置用于网络启动的环境。例如,启动管理器62可配置用于安全启动的配置服务器32。启动管理器62可对配置服务器32作出指令以修改VMM镜像30,(例如使用脚本来)将启动策略代理作为守护进程添加。
[0074] 在操作期间,用户可决定在刀片26中启动VMM 28,并且可选择适当的配置服务器32以使用管理服务接口54从存储设备34获取VMM镜像30。在另一实施例中,启动VMM 28或选择配置服务器32的决定可根据网络负载分配、网络管理员指示、策略、规则等等。DME 56可对启动管理器62作出指令以相应地准备安全启动。启动管理器62可或者在本地(例如交换机20中)识别适当的镜像,或者通过与(例如可位于网络12中的其它地方的)策略服务器对话来识别适当的镜像。启动管理器62可生成加密参数并视情况而适当从DME 56获取其它参数。在一个实施例中,管理应用38可将该参数发送至配置服务器32。
[0075] 刀片AG 60可作出指令以启动刀片26。刀片26可启动并初始化BIOS 44。刀片26可拦截来自BIOS 44的请求以获取VMM镜像30。启动管理器62可将参数插入启动代理代码42中,并生成启动代理40。启动代理40可通过例如,在交换机20和刀片26之间的物理连接被传输至刀片26。在一个实施例中,该传输可通过以太网连接(例如,在交换机20和刀片26之间)。刀片26中的启动代理40可使用配置服务器32设立安全信道78。在一个实施例中,用于设立安全信道78的参数可由管理应用38提供至刀片26和配置服务器32。在一些实施例中(例如,在刀片26上启动VMM 28),启动代理40可从配置服务器32请求VMM镜像30。配置服务器32可访问存储设备34,检索VMM镜像30并通过安全信道78将VMM镜像30发送至启动代理40。启动代理40可引起在存储元件66中加载VMM镜像30,并可向其传输控制。
[0076] 在其它实施例中(例如,在VMM 28上启动VM 16),刀片26可被选择以启动VMM 28和VM 16,并且配置服务器32可被选择以提供VMM镜像30和VM镜像36。管理应用38可从管理服务接口54接收管理配置文件,以及用于建立安全信道和启动所期望的VMM 28和VM 16的参数。策略代理59可引起启动管理器62为安全启动做准备。启动管理器62可能要么本地解析镜像描述策略,要么通过与策略服务器对话来解析镜像描述策略。启动管理器62可生成(或访问)参数,该参数包括加密参数或脚本。启动管理器62可对配置服务器32作出指令以定制与启动过程有关的初始内存盘。
[0077] 启动管理器62还提供设置以适当地配置配置服务器32。在一些实施例中,该设置可能以与配置服务器32和脚本的配置设置相关联的MO的形式被提供。配置服务器32可根据配置设置定制初始内存盘。在一个实施例中,脚本可引发初始内存盘将守护进程包括在其中。守护进程可辅助在根文件系统中创建用于在随后的启动过程中VM镜像36的安全启动的代理。代理可包括与将来的安全启动相关的信息,例如,配置服务器32的身份、参数等等。
[0078] 配置服务器32可从存储设备34获取VMM 28的内核和根文件系统。内核和根文件系统可被包括在VMM镜像30中。用于设立安全信道的参数可在配置服务器32和管理应用38之间被交换。启动代理代码42可创建启动代理40并将其传输至刀片26。刀片26可使用启动代理40启动。安全信道78可被建立在配置服务器32和刀片26之间。启动代理40可由配置服务器32认证和授权。随后,启动代理40可下载脚本。
[0079] 随后,启动代理40可下载内核和初始内存盘,其包括守护进程。启动代理40可将内核和初始内存盘加载到存储元件66。初始内存盘其后可从配置服务器32下载根文件系统。在一个实施例中,下载可使用安全壳(SSH)隧道。初始内存盘可修改已下载的根文件系统已添加代理。随后,初始内存盘可将初始的根文件系统交换为修改后的根文件系统。修改后的根文件系统中的代理可与管理应用38接触,并下载以及使用启动策略代理。启动策略代理可引导以从配置服务器32以类似于获取VMM镜像36的方式获取VM镜像36。
[0080] 转向图3,图3是使出了通信系统10的附加细节的简化框图。安全信道78可通过使用特定于刀片26的网关18被建立在刀片26和配置服务器32之间。参数可由交换机20提供给配置服务器32和刀片26二者。参数可包括加密参数80、网络参数82和镜像参数84。至少一些加密参数80可由在配置服务器32中的加密引擎72生成和/或解密。仅作为示例,而非作为限制,加密参数80包括可被用于生成密钥和相关信息的参数,其包括熵、配置服务器公钥、配置服务器私钥、证书和与刀片服务器共享的密钥。
[0081] 熵是用于与随机变量相关联的不确定度的衡量。熵可能是随机数发生器种子。例如,伪随机函数可被用于创建用于在刀片26和配置服务器32之间的TLS会话的主密钥。当创建用于TLS会话的会话密钥时,主密钥被用作熵源。配置服务器公钥和配置服务器私钥可能是安全密钥对的一部分,其中安全密钥对在数学上相联。公钥被用于将消息转换为无法读取的形式,仅通过使用(不同的但匹配的)私钥才能被解密。证书是使用数据签名以将公钥与配置服务器32的身份绑定在一起的电子文件。与刀片服务器共享的密钥特定于单个刀片(例如,刀片26),被共享在刀片26和配置服务器32之间,并可被用于相互认证和/或保障安全信道78。可被用于生成密钥和相关信息的其它不同的参数(此处未被列举)可被包括在加密参数80中。
[0082] 仅作为示例,而非作为限制,网络参数82包括识别在网络12中的元件的参数,其包括刀片IP地址、网络掩码、网关IP地址、刀片ID和配置服务器IP地址。刀片IP地址、网关IP地址和配置服务器IP地址分别指的是刀片26的IP地址、网关18的IP地址以及配置服务器32的IP地址。刀片ID是与刀片26相关联的唯一的标识符(诸如名称或数字),以便于将其与网络12中的其它刀片区分开。网络掩码是32位掩码,其被用于将IPv4地址分成子网并指定网络可用的主机。其它寻址机制可被包括在网络参数82中,例如,随着未来寻址技术的发展而生成的寻址机制。可被用于识别网络元件的其它不同的参数(此处未被列举)可被包括在网络参数82中。
[0083] 仅作为示例,而非作为限制,镜像参数84包括识别无状态镜像和VMM镜像30和VM镜像36的相关信息的参数,其中该相关信息包括名称和路径、内核、内核启动选项、根文件系统以及镜像类型。内核是在应用和计算系统的硬件之间的桥,其中应用在计算系统的硬件上运行。OS任务可由不同的内核以不同方式执行,这取决于它们各自的设计和实施方式。例如,单片内核可在存储元件(例如,66)的同一地址空间内执行所有OS代码;微核可在存储元件(例如,66)的用户空间中运行大部分OS服务。此外,不同的商用内核可视情况而被适当制定,包括Inferno内核、Windows NT内核、SunOS内核、NetBSD内核等等。内核启动选项包括OS的标题、加载的初始内存盘、根文件系统、系统语言、控制台字体等等。镜像类型(例如,文件格式)可能是开放标准,诸如用于光盘镜像的ISO镜像格式或专属于特定的生产镜像的软件应用的类型。可被用于识别和描述镜像的其它不同的参数(此处未被列举)可被包括在镜像参数84中。
[0084] 转向图4,图4是示出了可能与设立安全信道78以及安全下载虚拟化镜像相关联的示例操作的简化框图。在一个实施例中,安全信道78是TLS协议会话。TLS是加密协议,其提供了在不安全的网络连接(例如,互联网)上的通信安全。TLS使用非对称加密在传输层之上对网络连接段进行加密,其中非对称加密用于密钥交换、用于隐私的对称加密以及用于消息完整性的消息认证代码。TLS协议使客户端服务器应用能够以旨在于防止窃听和篡改的方式跨网络通信。每一个方(例如,刀片26和配置服务器32)可为每个会话保存会话信息(例如,会话票证、同级X.305证书、压缩方法、密码规范、主密钥等等)和连接信息(例如,用于加密的服务器密钥和客户端密钥、用于密码的初始化向量等等)直到会话被终止。
[0085] 刀片26和配置服务器32可通过使用握手规程和部分加密参数80来协商有状态的TLS连接。在握手期间,刀片26和配置服务器32可就各种参数达成一致以建立连接的安全性。刀片问候可包括所支持的密码组(例如,密码和散列函数)列表。配置服务器32可从此列表挑出其也支持的最强的密码和散列函数。配置服务器32可在104处通过包括其服务器证书的服务器问候对刀片问候作出响应。服务器证书通常包含服务器名称、信任的认证机构以及服务器的公共密钥。服务器问候消息还可包括来自客户端提供的选择的所选的协议版本(例如,TLS 1.2)、随机数、密码组和压缩方法。
[0086] 在106中,刀片26可用刀片证书和刀片密钥交换消息来响应,其可包含使用服务器证书加密的PreMasterSecret。其后,刀片26和配置服务器32可使用随机数和PreMasterSecret来计算通用密钥,其被称为“主密钥”。所有其它用于此连接的密钥数据可通过伪随机函数从该主密钥(并且所生成的随机值)被检索,其可通过伪随机函数被传递。
刀片26可以可选择地通过先前的握手消息发送ChangeCipherSpec记录和被认证及被加密的结束(Finished)消息。在108中,配置服务器可试图解密和验证该Finished消息并且随着其被认证和加密的Finished消息可选择地发送ChangeCipherSpec消息。
[0087] 在110中,为了执行加密计算,包括生成私钥,配置服务器32可使用Diffie-Hellman(DH)协议加密例程,其可在加密引擎72中被提供。在112中,认证授权模块74可在刀片26和配置服务器32之间认证和授权握手规程。完成握手之后,安全信道78可被建立以用于在刀片26和配置服务器32之间进一步的安全通信。在114中,完成握手之后,在刀片26中的启动代理40可向配置服务器32发送请求VMM镜像30的请求。在116中,配置服务器32可使用配置传输模块76从存储设备34执行VMM镜像30的配置传输。在118中,配置服务器32可向刀片26提供VMM镜像30和其它相关文件。在120中,TLS会话可被终止。
[0088] 转向图5,图5是示出了通信系统10的实施例的示例细节的简化框图。管理服务接口54可包括图形用户界面(GUI)140、资源管理器142、服务注册表144以及策略管理器146。GUI 140可允许用户与通信系统10交互,例如,用于选择在刀片26上启动的VM 16和其它此类目的。资源管理器142可基于诸如负载、空间或带宽的约束条件,作出分配决定(例如,在哪里启动VM 16);缓存策略;在多个配置服务器之间的负载平衡;以及其它约束条件。资源管理器142还可基于特定的需要实例化配置服务器32和/或移除先前已实例化的配置服务器32。在不同的实施例中,资源管理器142可收集、显示和存储关于系统性能、应用或处理使用的数据。例如,资源管理器142可辅助服务配置文件148,其可管理刀片26的管理状态。
[0089] 服务配置文件148是服务器和连接配置及身份的自包含定义。服务配置文件148可提供充分的刀片26的逻辑描述以在服务配置文件148和刀片26之间启用一对一关系。服务配置文件148可包含定义服务器环境的组件,其包含本地服务器设置。例如,服务配置文件148可包含用于刀片的属性设置的数值,其包括虚拟NIC(vNIC),介质访问控制(MAC)地址、启动策略、防火墙策略和其它元件。在不同的实施例中,服务配置文件148可包括用于在刀片26上的VMM镜像30或VM镜像36的安全配置的加密参数80、网络参数82以及镜像参数84。在一些实施例中,服务配置文件148可提供启动选项设置(例如,vMedia)。
[0090] 服务注册表144可组织服务信息(例如,关于可用业务服务、应用服务、存储服务等等)和支持网络元件间的交互,其中该交互提供和使用网络12内的服务。例如,服务注册表144可使用适当的服务配置文件148和参数(例如,模块信息、证书等等)注册表配置服务器
32以辅助在刀片26上的VMM镜像30(或VM镜像36)的安全配置。服务注册表144还可视情况而适当的向配置服务器32和刀片26发布证书,例如,为了便于创建安全信道78。
[0091] 策略管理器146可创建和存储各种策略,其可能是管理员定义的一套规则和操作特征。出于示例的目的而非为了限制,图中示出了四个策略:镜像策略150、加密策略152、网络策略154以及池策略156。镜像策略150可包括关于镜像(例如,VMM镜像30或VM镜像36等等)的规范,其包括镜像参数84;加密策略152可包括与加密参数80相关联的设置和规则;网络策略154可包括网络参数82;以及池策略156可包括关于可用资源池(例如,在刀片服务器中的刀片22)的设置,该设置可基于网络负载需求允许刀片和配置服务器的自动选择。
[0092] 服务配置文件148可以(例如使用管理应用38的XML API或策略)手动或自动地与刀片26相关联。当服务配置文件148与刀片26相关联时,DME 56可实现与其中特定的设置相关联的配置请求。在一个实施例中,DME过程的线程,即被称为“doer”线程,以FSM 58的形式创建与工作流相关联的服务配置文件。doer线程可根据在服务配置文件148中的设置修改适当的MO。例如,DME 56可以传播配置信息,其包括将服务配置文件148中的信息以MO 158的形式传播至配置服务器32。可使用管理服务接口54的策略150-156来创建MO 158。在另一示例中,FSM 58可呼叫刀片AG 60来实际部署刀片26的配置设置。当刀片AG 60完成其任务时,其向doer线程发送信号,该信号表明doer线程过渡到FSM 58中的下一个任务。FSM 58可连续地(和/或按事务)安排管理刺激以帮助保障请求被成功地执行。
[0093] 例如,策略代理59可初始化一系列的任务以在刀片26上启动VMM镜像30。FSM 58可在启动管理器62和配置服务器32之间安排不同的过程以辅助刀片26上的VMM镜像30的安全配置。FSM 58可向启动管理器62传递用于创建启动代理40的参数,以便使该参数可被写入启动代理代码42的副本以生成启动代理40。刀片26可包括基带管理控制器(BMC)160,其可提供对于刀片26的环境监控。BMC 160可与管理应用38(例如,通过XML API)相结合来规定和配置刀片26。
[0094] 在操作期间,资源管理器142可能生成(或检索)服务配置文件148。服务配置文件148可包含关于刀片26的信息。在一些实施例中,服务配置文件148可包括基本上所有的加密参数80、网络参数82和镜像参数84。在其它实施例中,服务配置文件148可包括加密参数
80、网络参数82和镜像参数84中的一部分,对于管理应用38是充分的以便生成剩余的参数。
DME 56可创建FSM 58,并将服务配置文件148与刀片26和配置服务器32相结合。配置服务器
32可通过使用管理服务接口54上的策略(例如,150-156)来创建MO 158。
[0095] FSM 58可通过刀片AG 60对刀片26作出指令以启动和初始化BIOS44。BIOS 44可生成对于VMM镜像30的请求。刀片AG 60可拦截该请求,并引发启动管理器62从启动代理代码42创建启动代理40。启动管理器62可从FSM 58获取加密参数80、网络参数82和镜像参数84。
在另一实施例中,启动管理器62可生成加密参数80、网络参数82和镜像参数84中的一部分。
启动管理器62可向启动代理代码42写入加密参数80、网络参数82和镜像参数84以生成启动代理40。
[0096] 刀片AG 60可从管理应用38向刀片26传输启动代理40。刀片26可在BIOS 44中加载启动代理代码42。启动代理40可使用配置服务器32初始化和建立安全信道78。配置服务器32可从存储设备34检索VMM镜像30,并将其暂时存储在配置服务器32中。来自配置服务器32的VMM镜像30可通过安全信道78被传输至刀片26。刀片26可(例如在硬盘驱动上)存储VMM镜像30。启动代理40可将VMM镜像30加载到存储元件66中,并向其传输控制。
[0097] 转向图6和图7,图6和图7是示出了通信系统10的实施例的细节的简化框图,其通过使用定制化VMM启动过程在刀片26上实例化VM16。VMM 28起初可通过守护进程来安装,一旦被安装在刀片26上,就可以与管理应用38进行通信。守护进程可获取多个参数,该多个参数与本地启动代理代码42一起被用来生成用于下载VM镜像36的启动代理40。VMM镜像30可被存储在存储设备34中,并且包括内核162和根文件系统164。如此处所用,术语“根文件系统”是可在其上安装根目录的文件集。文件集包括将刀片(例如,刀片26)带入其它文件系统可被安装以及用户空间守护进程以及应用启动的状态的必需的文件。一般来说,用于根文件系统的目录结构可被最小化。例如,根文件系统164可包含典型的一组录,诸如尤其在Linux OS中的/dev,/bin,/etc,/sbin。
[0098] 配置服务器32可包括初始化内存盘166和守护进程168。如此处所用,术语“守护进程”是执行动作(例如,修改根文件系统)而不需与用户交互的后台进程。一般而言,守护进程不与特定的用户或刀片绑定。在配置服务器32中可提供脚本170中以创建另一个初始化内存盘169,其包括守护进程168的实例。如此处所用,术语“脚本”是小程序(例如,约几千行的代码),其执行特定的任务(例如,复制初始化内存盘166中的守护进程168以创建初始化内存盘169)。根据通信系统10的实施例,启动管理器62可创建脚本170,并将其传输到配置服务器32。在另一实施例中,配置服务器32可生成脚本170。
[0099] 在操作期间,服务配置文件148可包括可用于创建脚本170的信息。来自服务配置文件148的信息可通过管理应用38被提供至配置服务器32。启动管理器62可根据被提供在服务配置文件148中的参数(例如,加密参数80、网络参数82和镜像参数84)从启动代理代码42生成启动代理40。启动代理40可被传输到刀片26并被保存在其中。刀片26中的启动代理
40可与配置服务器32一起建立安全信道78,并请求VMM镜像30。配置服务器32可从存储设备
34中检索VMM镜像30并临时性地存储该镜像。配置服务器32可向刀片26传输脚本170、内核
162和初始化内存盘169。其后,刀片26中的启动代理40与初始化内存盘169一起启动内核
162。初始化内存盘169可通过安全信道78从配置服务器32下载根文件系统164。随后,初始化内存盘169可修改根文件系统164以创建根文件系统171。此后,初始化内存盘169可将其自身与被修改的根文件系统171交换。
[0100] 转向图7,初始化内存盘169可通过在其中插入代理172来修改根文件系统164。如此处所用,术语“代理”是执行代表用户或刀片(例如,刀片26)的动作(例如,下载VM镜像36)的后台进程。一般来说,代理不同于守护进程,其中代理可具有有限的用户交互(例如,显示图形用户界面)而守护进程不可以。在一些实施例中,代理172可能是守护进程168的副本。在其它实施例中,代理172可能是守护进程168的修改版本。
[0101] 根据一个实施例,在根被交换到根文件系统171之后,代理172可与管理应用38联系,并下载启动策略代理174。在另一实施例中,启动策略代理174可能是代理172的一部分。在又一实施例中,启动策略代理174可由刀片26中的代理172和/或脚本170生成。启动策略代理174可通过安全信道78与配置服务器32联系以启动VM 16。在一个实施例中,在启动策略代理174与配置服务器32之间的通信可通过HTTPS,并且相互认证可通过使用由服务注册表144签名的证书实现。配置服务器32可检索存储在存储设备34中的VM镜像36并将其暂时性地保存在配置服务器32中。启动策略代理174可向刀片26下载VM镜像36并安装该镜像。
VMM 28可在刀片26中启动VM镜像36并实例化VM 16。
[0102] 在一些实施例中,基于服务配置文件148,在启动策略代理174接收到来自管理应用38的指令后,启动策略代理174可联系配置服务器32。例如,在刀片26已在刀片26上加载VMM 28之后,客户端14可决定在其上实例化VM 16。资源管理器142可使用适当的参数创建服务配置文件148,其包括涉及VM镜像名称与路径的镜像参数84。启动策略代理174可从刀片AG 60获取相关的参数,其包括镜像参数84,并联系配置服务器32以下载VM镜像36。
[0103] 转向图8,图8是示出了通信系统10的另一示例实施例的简化框图。在所示实施例中,启动代理代码42可被提供在刀片26中,而非刀片AG 60中。服务配置文件148可包括组成参数的块,其包括加密参数80、网络参数82和镜像参数84。刀片26中的启动代理代码42可访问服务配置文件148,并在刀片26中(而不是管理应用38)生成启动代理40。操作的安全性和线性可被加强,并且在引导中的操作数量可被相应地减少。
[0104] 转向图9,图9是示出了通信系统10的又一实施例的简化框图。启动代理40和参数,其包括加密参数80,可被用于加强有状态的引导的安全性。启动代理40可检查在刀片26中有状态的镜像180中运行的部分代码。例如,启动代理40可寻找有状态的镜像180的恶意软件修改。该方法(例如, BIS或可信平台模块),这是由于其能够很容易地被定制:从在代码和参数两方面。
[0105] 转向图10,图10是示出了可能与刀片26的实施例相关联的示例操作步骤的简化流程图。当刀片26被通电后,操作250可从步骤252开始。在步骤254中,刀片26可执行BIOS 44。在步骤256中,BIOS 44可激活引导。在步骤258中,BIOS 44可从管理应用38获取启动代理
40。在步骤260中,刀片26可存储启动代理40并在BIOS 44中加载它。在步骤262中,启动代理
40可与配置服务器32一起设立安全信道78。在步骤264中,启动代理40可向刀片26下载VMM镜像30。在步骤266中,启动代理40可在存储元件66中加载VMM镜像30。在步骤268中,启动代理40可向VMM镜像30传输控制。操作可在步骤270结束。
[0106] 转向图11,图11是示出了可能与管理应用38的实施例相关联的示例操作步骤的简化流程图。当管理应用38接收到服务配置文件148时,操作280从步骤282开始。在步骤284中,管理应用38可生成参数,其包括加密参数80、网络参数82和镜像参数84。在步骤286中,管理应用38可将该参数发送至配置服务器32。在步骤288中,管理应用38可拦截来自刀片26的引导请求。在步骤290中,通过使用参数,管理应用38可从启动代理代码42生成启动代理40。在步骤292中,管理应用38可向刀片26传输启动代理40。操作可在步骤294结束。
[0107] 转向图12,图12是示出了可能与配置服务器32的实施例相关联的示例操作步骤的简化流程图。当配置服务器32被激活时,操作300可从步骤302开始。在步骤304中,配置服务器32可从管理应用38获取参数,其包括加密参数80、网络参数82和镜像参数84。在步骤306中,配置服务器32可与刀片26一起设立安全信道78。在步骤308中,配置服务器32可检测请求VMM镜像30的刀片请求。在步骤310中,配置服务器32可从存储设备34检索VMM镜像30。在步骤312中,VMM镜像30可通过安全信道78传输至刀片26。操作可在步骤314结束。
[0108] 转向图13,图13是示出了可能与配置服务器32的另一实施例相关联的示例操作步骤的简化流程图。首先,VMM 28可通过守护进程被定制化。配置服务器32可适当地修改初始化内存盘166和根文件系统164。随后,VMM 28被部署到刀片26。这时,管理应用38可通过联系守护进程并提供关于用于VM实例化的多个参数的信息来请求VM部署。当配置服务器32被激活时,操作350可从步骤352开始。在步骤354中,配置服务器32可从管理应用38获取参数,其包括加密参数80、网络参数82和镜像参数84。在步骤356中,配置服务器32与刀片26一起设立安全信道78。
[0109] 在步骤358中,配置服务器32可检查请求VMM镜像30的刀片请求,其可支持安全VMM镜像30下载。在步骤360中,配置服务器32可从存储设备34中检索内核162和根文件系统164。在步骤362中,配置服务器32可通过将守护进程168复制到初始化内存盘166中来创建初始化内存盘169。在步骤364中,配置服务器32可通过安全信道78向刀片26传输脚本170、内核162和初始化内存盘169。在一些实施例中,根文件系统164的传输可通过SSH隧道进行。
在步骤368中,配置服务器32可检查来自启动策略代理174的请求VM镜像36的代理请求。在步骤370中,配置服务器32可从存储设备34检索VM镜像36。在步骤372中,配置服务器32可将VM镜像36传输至刀片26中的VMM 28。操作可在步骤374结束。
[0110] 转向图14,图14是示出了可能与刀片26的另一实施例相关联的示例操作步骤的简化流程图。当刀片26被通电时,操作400可从步骤402开始。在步骤404中,刀片26可执行BIOS 44。在步骤406中,刀片26可激活引导。在408,刀片26可从管理应用38获取启动代理40。在步骤410中,启动代理40可被存储在刀片26中。在步骤412中,启动代理40可与配置服务器32一起设立安全信道78。在步骤414中,启动代理40可从配置服务器32下载内核162、脚本170以及初始化内存盘169。在步骤416中,启动代理40可在存储元件66中安装内核162和初始化内存盘169。在步骤418中,初始化内存盘169可从配置服务器32下载根文件系统164。在步骤
420中,初始化内存盘169可修改根文件系统164以包含代理172并生成根文件系统171。在步骤422中,代理172可设置启动策略代理174,其可从配置服务器32下载VM镜像36。在步骤424中,VMM 28可启动VM镜像36以在VMM 28中实例化VM 16。操作可在步骤426结束。
[0111] 转向图15,图15是示出了可能与通信系统10的实施例相关联的示例操作步骤的简化的流程图。操作500包含步骤502,在步骤502中,资源管理器142决定在刀片26中启动VMM 28并选择配置服务器32。在步骤504中,资源管理器142向管理应用38发送服务配置文件
148。在步骤506中,管理应用38中的策略代理59请求启动管理器62以准备安全启动。在步骤
508中,启动管理器62或者本地地(例如在交换器20中)解析镜像描述策略、或者通过与网络
12中的策略服务器对话来解析镜像描述策略。
[0112] 在步骤510中,启动管理器62生成加密参数80和脚本170。在步骤512中,启动管理器62对配置服务器32作出指令以定制初始化内存盘166。在步骤514中,启动管理器62提供设置(例如,通过MO 158)来配置配置服务器32。在步骤516中,配置服务器32定制初始化内存盘166以包括守护进程168,并生成初始化内存盘169。在步骤518中,配置服务器32从储存设备34获取内核162和根文件系统164。在步骤520中,在配置服务器32与管理应用38之间交换用于设立安全信道78的参数(例如,加密参数80、网络参数82和镜像参数84)。在步骤522中,管理应用38使用启动代理代码42来创建启动代理40,并向刀片26传输启动代理40。
[0113] 在步骤524中,刀片26通过启动代理40启动。在步骤526中,安全信道78被创建在配置服务器32和刀片26之间。在步骤528中,启动代理40由配置服务器32认证和授权(例如,作为建立安全信道78的一部分)。在步骤530中,启动代理40从配置服务器32下载脚本170。在步骤532中,启动代理40从配置服务器32加载内核162和初始化内存盘169,并启动内核162。在步骤534中,启动代理40安装内核162和初始化内存盘169。在步骤536中,通过使用SSH,初始化内存盘69从配置服务器32下载根文件系统164。在步骤538中,初始化内存盘169修改根文件系统164以修改根文件系统171。在步骤540中,初始化内存盘169将根与已修改的根文件系统171交换。在步骤542中,代理172联系管理应用38,并且代理172在其上下载并启用启动策略代理174。在步骤544中,资源管理器142决定在刀片26上启动VM 16,并选择刀片26和配置服务器32。在步骤546中,刀片26从配置服务器32获取VM镜像36。
[0114] 转向图16,图16是示出了用于仿真通信系统10的某些功能的实验性实现的简化框图。网关18可被连接至存储设备34,其包括VMM镜像30和VM镜像36。网关18还被连接至十个交换机20(1)-20(10),其中每个交换机被连接到40个刀片服务器22(1)-22(40)。刀片服务器22(1)-22(40)中的每一个针对每个机箱包括多达八个刀片,其表示对于交换机20(1)-20(10)中的每一个交换机总共具有320个刀片。每个刀片(例如,26(1))具有多达64个VM(例如,VM 16(1)-16(64))安装在其上。在交换机20(1)-20(10)中的每个上的刀片服务器22(1)-22(40)中的一部分包括配置服务器32(1)-32(4),该配置服务器在适当的刀片中被实现为VM。
[0115] 在该仿真中,网关18包括Cisco Nexus 7000交换机,其连接到几个Cisco UCS 6140XP 40-Port Fabric Interconnects,可支持多达320个服务器或40个机箱作为单一无缝系统。刀片服务器22(1)-22(40)包括Cisco USC2100Series Fabric Extender,以10Gbps在Fabric Extender和6140Fabric Interconnect之间相连。刀片服务器(例如,22(1)-22(40))包括Cisco UCS5100Series Blade服务器机箱外壳(每个机箱至少八个半宽度的刀片)。每个刀片以10Gbps以太网连接到2100Series Fabric Extender。Nexus 7000交换机通过10Gbps通信链路访问VMM镜像30和VM镜像36。每个VMM镜像30在大小上达到4千兆字节。配置服务器32(1)-32(4)由独立管理应用38管理。
[0116] 根据该仿真,配置服务器32(1)-32(4)被下载和安装在在刀片服务器22(1)-22(4)上。随后,VMM镜像30和VMM镜像36由每个配置服务器32(1)-32(4)下载、本地缓存并分配到适当的刀片上作为裸金属软件或VM软件。每个配置服务器32(1)-32(4)在大小上为几兆字节。下载每个配置服务器32(1)-32(4)的总时间取决于有多少个副本被部署在仿真中。部署四个配置服务器32(1)-32(4)的时间相较于部署几千个VMM和VM的实例的下载时间是微不足道的。
[0117] 配置服务器32(1)-32(4)与VMM镜像30在刀片服务器22(1)-22(40)中启动适当的刀片。同样地,在其它刀片服务器中的连接到交换机20(2)-20(10)的配置服务器也被同时启动。在实验中的假设是每个刀片使用相同的VMM启动。在实验性实现(使用40个机箱,每个机箱包括8个刀片)中,一个配置服务器32(1)的实例,其具有4千兆字节大小的VMM镜像,将花费17分钟以完全填入刀片服务器22的320个刀片,花费11分钟以填入刀片服务器22的200个刀片以及花费5分钟以填入刀片服务器22的100个刀片。当相应的VMM被安装在刀片上之后,每个刀片在VMM顶部设置由VM组成的虚拟环境。实验性实现假设每个刀片创建64个VM,总计为20480个VM以完全填入系统。实验性实现假设20480个VM在同一时间请求VM镜像36。
[0118] 在仿真中,需考虑VM镜像36的三种变化:VM镜像36包含1000个独立镜像(每个镜像对应于特定的操作系统或应用);VM镜像36包含2000个独立镜像;以及VM镜像36包含5000个独立镜像。每个这样的独立镜像均被假设为4千兆字节。为了加速向刀片传递镜像的过程,使用多个配置服务器32(1)-32(4)。每个配置服务器32(1)-32(4)本地下载VM镜像36并缓存组成的镜像。能够发现VM镜像36中独立镜像的数量的增加使完成用于配置服务器32(1)-32(4)的操作的时间增加了,这是由于镜像来自单一存储库,其串行化了操作。随后,组成VM镜像36的独立镜像被传递到刀片服务器22(1)-22(40)中的刀片。
[0119] 该仿真表明配置服务器的数量的增加(例如,使用配置服务器32(1)-32(4))减少了完成系统启动的时间,其包括启动VMM 28和VM 16。例如,对于组成VM镜像36的一个镜像,用于与配置服务器32(1)-32(4)完成20480个VM的启动的时间为190分钟。此外,用于与配置服务器32(1)-32(4)完成6400个VM的启动的时间为90分钟,其表明启动时间和镜像的总数成比例关系(例如,镜像数量的增加使启动的时间增加)。如果不使用配置服务器(例如,直接从存储设备34下载VM镜像36),下载所有20480个镜像所花费的时间被测量为5400分钟。由于每个机箱具有其自身的网络连接,并且当配置服务器数量增加时,单一线路上的拥挤降低,将VM镜像36下载到配置服务器32(1)-32(4)的时间要低于将镜像下载到刀片服务器
22(1)-22(40)的刀片中对应的刀片的时间。
[0120] 分别地,能够发现当在VM镜像36中的独立镜像数量增加时,将VM镜像36下载到配置服务器32(1)-32(4)的时间也增加,这是由于每个配置服务器32(1)-32(4)下载和缓存VM镜像36的副本,其包含上千个独立镜像。与此相反,从每个配置服务器32(1)-32(4)向适当的刀片安装VM镜像36的时间仅仅取决于独立镜像的数量(并且不取决于配置服务器32的数量)。尤其,对于图16中所示的特定的实验性实现,可观察到使用超过4个配置服务器向20000个VM传递大量的独立镜像是不方便的。
[0121] 转向图17A和17B,图17A和图17B示出了与此前图16相关的所述实验性设置的结果。配置服务器32(1)-32(4)与多达320个刀片进行通信,其中每个刀片具有64个VM。每个配置服务器32向多达1000个连接提供服务。多达5000个独立镜像被包括在VM镜像36中,并在刀片上启动。启动镜像文件的时间被测量。在没有配置服务器(例如,使用ISO下载PXE启动过程)的情况下,“基线”测量表明启动20480个VM(在320个刀片中,其中每个刀片包括64个VM,每个VM对应于一个镜像)的时间为5400分钟;启动12800个VM的时间为3400分钟以及启动6400个VM的时间为1700分钟。对于每个VM镜像36包含1000个镜像,启动20480个VM、12800个VM和6400个VM的时间分别为:400分钟、345分钟和300分钟,其表示相较基线有92%的节约时间、90%的节约时间和82%的节约时间。可由2000镜像和5000镜像观察到类似的模式。然而,随着被下载的镜像数量的增加,节约时间的百分比可能会降低。
[0122] 图17B是图17A中所示的表格结果的图形表示。曲线550表示320个刀片的节约时间的百分比;曲线552表示200个刀片的节约时间的百分比以及曲线554代表120个刀片的节约时间的百分比。图标的纵坐标描述了相较于“基线”测量(例如,每个VM上一个镜像),使用配置服务器32(1)-32(4)的节约时间的百分比。
[0123]
[0124] 其中%Ti,v对应于启动i镜像(例如,200个镜像)和v个VM(例如,20480个VM)的节约时间的百分比;TBv对应于启动v个VM的基线时间;T1对应于从存储设备34向配置服务器(例如,32(1)-32(4))下载VM镜像36的时间;以及T2对应于在刀片服务器(例如,22(1)-22(40))中的刀片上下载和启动来自配置服务器32的VM镜像36的时间。
[0125] 需要注意的是参考前面附图所描述的操作和步骤仅示出了可由系统执行的或在系统内执行的可能的方案中的一部分。在适当的情况下,这些操作中的一部分可被删除或移除,或者,在不背离所讨论的概念的范围的情况下,这些步骤可被显著地修改或改变。此外,这些操作的时序可被显著改变,并仍可得到本发明所教导的结果。出于示例和讨论的目的提供了前面的操作流。系统提供了相当的灵活性,其中在不背离所讨论的概念的教导范围的情况下,可使用任何适当的安排、年表、配置以及时序机制。
[0126] 此外,必须要注意的是,基于特定的需要,在图中所示出的各种模块(例如,管理应用38、启动管理器62等等)可适当地在通信系统10内被移动并被配置在一个或多个网络元件中。此处所呈现的各种模块的逻辑表示仅仅是出于示例的目的,并且意图不在于起到限制的作用。除了那些本文已呈现的配置之外的各种配置有可能实现本说明书所述的功能。例如,在物理交换机(例如,Cisco Nexus 7000)中,启动管理器62可能独立于管理应用38而被提供,反之(不具有启动管理器62的)管理应用38可在Fabric Interconnect(例如,Cisco UCS 6140XP 40-Port Fabric Interconnect)中从物理上独立于物理交换机托管启动管理器62。在另一示例中,配置服务器32可作为刀片26上另一个VM而被托管。
[0127] 注意,根据此处所提供的多个示例,交互可能从两个、三个、四个或更多的网络元件的角度来描述。然而,这仅仅是出于清晰和举例的目的。应理解为系统可能以任何适当的方式被整合。遵循类似的设计方案,任何图中所示出的计算机、模块、组件和元件可能在各种可能的配置中被组合,其中所有方式都清晰地在本说明书的范围内。在特定的情形下,通过仅仅引用有限数量的网络元件,可能更加容易描述一组给定的流程的一个或多个功能。需要理解的是图中的通信系统10及其教导很容易扩展并且能够容纳大量组件以及复杂的/精细的安排和配置。因此,当被应用于无数其它体系结构时,所提供的示例不应限制和抑制通信系统10广泛的教导。
[0128] 本说明书中需要注意的是,涉及各种特征(例如,元件、结构、模块、组件、步骤、操作、特性等等),其被包括在“一个实施例”、“示例实施例”、“实施例”、“另一实施例”、“一些实施例”、“各种实施例”、“其它实施例”、“可替代的实施例”等等之中,旨在于表示任何此类特征均被包括在本发明的一个或多个实施例中,但可能必要或不必要被结合在相同的实施例中。还需注意的是本说明书所用的“应用”可包括可执行的文件,其包括能够被计算机理解和处理的指令,并且还可包括在执行期间被加载的库模块、对象文件、系统文件、硬件逻辑、软件逻辑或其它任何可执行的模块。
[0129] 在示例实施方式中,本文概述的活动中的至少一部分可被执行在软件中,例如,刀片26和交换器20。在一些实施例中,这些特征中的一个或多个特征可被执行在硬件中,其中该硬件置于这些元件的外部或以适当的方式被整合以实现预期的功能。各种网络元件(例如,管理应用38、启动代理40、配置服务器32)可包括软件(或往复式软件),其可并行操作以便实现本文所概述的操作。在又一其它实施例中,这些元件可包括任何适当的算法、硬件、软件、组件、模块、接口或对象,其能够辅助其中的操作。
[0130] 此外,本文所述和所示的管理应用38、启动代理40以及配置服务器32(和/或它们相关联的结构)还可包括适当的用于接收、发送和/或在网络环境中对数据或信息的其它传播的接口。除此以外,与各种节点相关联的处理器和存储元件中的一部分可被移除或被整合以便使单个处理器或单个存储设备对特定的活动负责。一般来说,图中所描述的安排在它们的表现中可更加合乎逻辑,反之物理架构可包括各种排列、组合和/或这些元件混合。必需要注意的是,无数可能的设计配置可被用于实现本文所概述的操作目标。因此,相关的基础设施具有无数的替代安排、设计选择、设备可能性、硬件配置、软件实现、潜力,硬件配置,软件实现,装置选项等等。
[0131] 在一些实施例中,一个或多个存储元件(例如,存储元件52、66、72)可存储用于本文所述的操作的数据。这包括能够在永久介质中存储指令(例如,软件,逻辑,代码等)的存储元件,以便执行该指令以实现本说明书中所述的活动。处理器可执行与数据相关联的任何类型的指令以实现本发明书中所详细描述的操作。在一个示例中,处理器(例如,50、64、68)可将元件或条文(例如,数据)从一个状态或情况转换到另一个状态或情况。在另一示例中,本文所概述的活动可通过固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)实施,并且本文所认同的元件可以是某些类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、可擦写可编程只读存储器(EPROM)、带电可擦写可编程只读存储器(EEPROM))、专用集成电路,其包括数字逻辑、软件、代码、电子指令、闪速存储器、可选磁盘、CD-ROMs、DVD ROMs、磁卡或光卡)、适用于存储电子指令的其它类型的机器可读介质或任何适当的它们的组合。
[0132] 在操作中,通信系统10的组件可包括一个或多个用来存储信息的存储元件(例如,52、66、70),其中该信息被用于实现本文所概述的操作。这些设备还可以任何适当类型的永久性存储介质(例如,随机存取存储器(RAM)、只读内存(ROM)、现场可编程门阵列(FPGA)、可擦写可编程只读存储器(EPROM)、带电可擦写可编程只读存储器(EEPROM)等)、软件、硬件或任何其它适当的组件、设备、元件或基于特定需求的恰当的对象来保持信息。基于特定的需求和实现,被跟踪、发送、接收或存储在通信系统10中的信息可被提供至任何数据库、注册表、表、缓存、队列、控制列表或存储结构中,在任何适当的时间段中,所有以上这些可能会被引用。任何此处所讨论的存储项应被解释为被包含在广义术语“存储元件”中。相似地,本说明书所述的任何潜在的处理元件、模块和机器应被解释为被包含在广义术语“处理器”中。
[0133] 尽管本发明已经关于特定的安排和配置作出了详细的描述,在不背离本发明的范围的情况下,这些示例配置和布置可被明显地改变。例如,尽管本发明已经关于涉及某种网络接入和协议的特定的通信交换作出了详细的描述,通信系统10可适用于其它交换或路由协议。此外,尽管通信系统10已经关于特定的元件和操作作出了详细说明,其中该元件和操作辅助了通信过程,这些元件和操作可由任何适当的、达到通信系统10意图的功能的体系架构或过程代替。
[0134] 许多其它改变、替代、变化、变更和修改对于在本领域的普通技术人员是显而易见的,并且本发明涵盖所有落入所附加的权利要求的范围之内此类改变、替代、变化、变更和修改。为了帮助美国专利和商标局(USPTO)以及,除此之外的任何本申请发布的专利的读者解释至此所附的权利要求,申请人希望注意的是申请人:(a)不希望援引在本发明的申请日时已有35U.S.C 112的第六(6)款来对任何所附的权利要求进行限定,除非在特定的权利要求中具体指明了术语“用于…的手段”或“用于…的步骤”;以及(b)不希望通过本说明书中的任何表述以所附的权利要求中未反映出的方式限定本发明。