用于在虚拟多租户环境中提供安全客户域的方法和计算机系统转让专利

申请号 : CN201480032800.X

文献号 : CN105283880B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·唐内兰R·K·弗洛伊德三世R·P·莫纳科H·穆勒J·D·罗宾森

申请人 : 国际商业机器公司

摘要 :

为了在虚拟多租户环境中提供安全用户域,在客户域中为客户配置虚拟机(VM)。在VM中配置第一、第二和第三虚拟网络接口(VNIC)。第一VNIC具有位于为客户域选择的第一地址范围内的第一网络地址,使得VM上的应用可以访问在客户域中的第二VM中的第二应用。第二VNIC使得在客户域之外的第三应用可以访问在客户域中的VM。第二VNIC被配置为使用由第三应用的服务器使用的寻址规范。第三VNIC使得从第一应用可以访问在客户域之外执行的第四应用。第三VNIC被配置为使用由第四应用的服务器使用的寻址规范。

权利要求 :

1.一种用于在虚拟多租户环境中提供安全客户域的方法,该方法包括:

由处理器在客户域中为客户配置虚拟机(VM);

由处理器在VM中配置第一虚拟网络接口(VNIC),其中第一VNIC使得VM上的应用可以访问在客户域中的第二VM中的第二应用;

由处理器将第一网络地址分配给第一VNIC,其中第一网络地址位于为客户域选择的第一地址范围内;

由处理器在VM中配置第二VNIC,其中,第二VNIC使得在客户域之外的第三应用可以访问在客户域中的VM,以及,其中,第二VNIC被配置为使用由第三应用的服务器使用的寻址规范;以及由处理器在VM中配置第三VNIC,其中,第三VNIC使得从第一应用可以访问在客户域之外执行的第四应用,以及,其中,第三VNIC被配置为使用由第四应用的服务器使用的寻址规范,从而确保与客户域有关的数据通信不受与第二客户域有关的数据通信的干扰。

2.如权利要求1所述的方法,其中,第一地址范围与从第二客户域选择的第二地址范围重叠。

3.如权利要求1所述的方法,其中,第一地址包括IPv4地址,以及,其中,经由在客户域内实例化的第一虚拟路由器来便利对第二应用的访问。

4.如权利要求1所述的方法,其中,VM占据客户域中的一层,以及,其中,该层包括至少三个虚拟本地区域网络,该方法进一步包括:由处理器向第二VNIC分配第二网络地址,其中,第二网络地址包括IPv6地址,以及,其中,经由在客户域内实例化的第二虚拟路由器来便利从第三应用的访问。

5.如权利要求4所述的方法,其中,经由为客户域生成的域名服务的第一实例来进一步便利从第三应用的访问,其中,DNS的第一实例包括为客户域的管理授权的路由。

6.如权利要求1所述的方法,进一步包括:

由处理器向第三VNIC分配第三网络地址,其中,第三网络地址包括IPv6地址,以及,其中,经由在客户域内实例化的第三虚拟路由器来便利对第四应用的访问。

7.如权利要求1所述的方法,进一步包括:

由处理器将第三网络地址分配到第三VNIC,其中,第三网络地址在为客户域选择的第一地址范围内,以及,其中,第一地址范围与为第二客户域选择的第二地址范围重叠,以及,其中,经由在客户域内实例化的第三虚拟路由器来便利对第四应用的访问。

8.如权利要求7所述的方法,其中,经由为客户域生成的域名服务的第二实例来进一步便利对第四应用的访问,其中,DNS的第二实例包括到对客户域可用的一组共享应用的路由。

9.如权利要求1所述的方法,其中,第一VNIC、第二VNIC和第三VNIC中的每一个与虚拟I/O服务器中的一个虚拟化I/O适配器匹配,以及,其中,虚拟化I/O适配器进一步匹配到物理I/O适配器。

10.如权利要求1所述的方法,其中,第二VNIC和第三VNCI中的一个被配置为在VM上安装软件期间使用巨型帧。

11.一种用于在虚拟多租户环境中提供安全客户域的计算机系统,该计算机系统包括:配置为用于在客户域中为客户配置虚拟机(VM)的模块;

配置为用于在VM中配置第一虚拟网络接口(VNIC),其中第一VNIC使得VM上的应用可以访问在客户域中的第二VM中的第二应用的模块;

配置为用于将第一网络地址分配给第一VNIC,其中第一网络地址位于为客户域选择的第一地址范围内的模块;

配置为用于在VM中配置第二VNIC,其中,第二VNIC使得在客户域之外的第三应用可以访问在客户域中的VM,以及,其中,第二VNIC被配置为使用由第三应用的服务器使用的寻址规范的模块;以及配置为用于在VM中配置第三VNIC,其中,第三VNIC使得从第一应用可以访问在客户域之外执行的第四应用,以及,其中,第三VNIC被配置为使用由第四应用的服务器使用的寻址规范,从而确保与客户域有关的数据通信不受与第二客户域有关的数据通信的干扰的模块。

12.如权利要求11所述的计算机系统,其中,第一地址范围与从第二客户域选择的第二地址范围重叠。

13.如权利要求11所述的计算机系统,其中,第一地址包括IPv4地址,以及,其中,经由在客户域内实例化的第一虚拟路由器来便利对第二应用的访问。

14.如权利要求11所述的计算机系统,其中,VM占据客户域中的一层,以及,其中,该层包括至少三个虚拟本地区域网络,该计算机系统进一步包括:配置为用于向第二VNIC分配第二网络地址,其中,第二网络地址包括IPv6地址,以及,其中,经由在客户域内实例化的第二虚拟路由器来便利从第三应用的访问的模块。

15.如权利要求14所述的计算机系统,其中,经由为客户域生成的域名服务的第一实例来进一步便利从第三应用的访问,其中,DNS的第一实例包括为客户域的管理授权的路由。

16.如权利要求11所述的计算机系统,进一步包括:

配置为用于向第三VNIC分配第三网络地址,其中,第三网络地址包括IPv6地址,以及,其中,经由在客户域内实例化的第三虚拟路由器来便利对第四应用的访问的模块。

17.如权利要求11所述的计算机系统,进一步包括:

配置为用于将第三网络地址分配到第三VNIC,其中,第三网络地址在为客户域选择的第一地址范围内,以及,其中,第一地址范围与为第二客户域选择的第二地址范围重叠,以及,其中,经由在客户域内实例化的第三虚拟路由器来便利对第四应用的访问的模块。

18.一种用于在虚拟多租户环境中提供安全客户域的计算机系统,该计算机系统包括:一个或多个处理器,一个或多个计算机可读存储器以及一个或多个计算机可读有形存储设备;

存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于在客户域中为客户配置虚拟机(VM);

存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于在VM中配置第一虚拟网络接口(VNIC),其中第一VNIC使得VM上的应用可以访问在客户域中的第二VM中的第二应用;

存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于将第一网络地址分配给第一VNIC,其中第一网络地址位于为客户域选择的第一地址范围内;

存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于在VM中配置第二VNIC,其中,第二VNIC使得在客户域之外的第三应用可以访问在客户域中的VM,以及,其中,第二VNIC被配置为使用由第三应用的服务器使用的寻址规范;以及存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于在VM中配置第三VNIC,其中,第三VNIC使得从第一应用可以访问在客户域之外执行的第四应用,以及,其中,第三VNIC被配置为使用由第四应用的服务器使用的寻址规范,从而确保与客户域有关的数据通信不受与第二客户域有关的数据通信的干扰。

说明书 :

用于在虚拟多租户环境中提供安全客户域的方法和计算机

系统

技术领域

[0001] 本发明一般地涉及用于管理多租户数据处理环境的方法、系统和计算机程序产品。更特别地,本发明涉及用于在虚拟化多租户环境中供应安全客户域的方法、系统和计算机程序产品。

背景技术

[0002] 某些数据处理系统被配置为同时处理数个工作负载。例如,配置在单个的主机数据处理系统上的单独的虚拟数据处理系统、诸如单独的虚拟机(VM)经常为不同的客户或应用处理单独的工作负载。
[0003] 在大规模数据处理环境、例如数据中心中,在任何给定时间,数以千计的VM可以在一个主机上运行,同时,在该数据中心中,即使没有数千也有数百台这样的主机在运行。虚拟化数据处理环境、例如这里所说的数据中心常常被称为“云”,其在按需基础上向数个客户提供计算资源和计算服务。
[0004] 为了处理客户工作负载、满足服务水平需求以及许多其他原因,在计算节点上按照需要安装或生成VM。进一步地,为了不同目的可能需要VM的不同配置。例如,当仅仅为了向用户提供一个通用计算平台来生成VM时,生成的VM可以仅仅带有基本的操作系统而没有应用。在另一个例子中,当一个新的VM需要提供应用服务时,该生成的VM可以带有操作系统以及在其上配置的应用服务器。
[0005] 类似地,可以将许多不同的VM配置预先配置为模板映像(模板)。当需要在一个计算节点上生成具有特定预定配置的VM时,从模板存储器、例如数据库或文件系统中选择一个合适的模板,并安装在该计算节点上,以生成具有所期望配置的VM。

发明内容

[0006] 例示实施例提供了用于在虚拟多租户环境中提供安全用户域的方法、系统和计算机程序产品。一个实施例通过使用处理器在客户域中为客户配置虚拟机(VM)。该实施例通过使用处理器在VM中配置第一虚拟网络接口(VNIC),其中第一VNIC使得VM上的应用可以访问在客户域中的第二VM中的第二应用。该实施例通过使用处理器将第一网络地址分配给第一VNIC,其中第一网络地址位于为客户域选择的第一地址范围内。该实施例通过使用处理器在VM中配置第二VNIC,其中,第二VNIC使得在客户域之外的第三应用可以访问在客户域中的VM,以及,其中,第二VNIC被配置为使用由第三应用的服务器使用的寻址规范。该实施例通过使用处理器在VM中配置第三VNIC,其中,第三VNIC使得从第一应用可以访问在客户域之外执行的第四应用,以及,其中,第三VNIC被配置为使用由第四应用的服务器使用的寻址规范,从而确保与客户域有关的数据通信不受与第二客户域有关的数据通信的干扰。
[0007] 另一个实施例包括一个或多个计算机可读有形存储设备。该实施例进一步包括存储在一个或多个存储设备中的至少一个上的程序指令,用于在客户域中为客户配置虚拟机(VM)。该实施例进一步包括存储在一个或多个存储设备中的至少一个上的程序指令,用于在VM中配置第一虚拟网络接口(VNIC),其中第一VNIC使得VM上的应用可以访问在客户域中的第二VM中的第二应用。该实施例进一步包括存储在一个或多个存储设备中的至少一个上的程序指令,用于将第一网络地址分配给第一VNIC,其中第一网络地址位于为客户域选择的第一地址范围内。该实施例进一步包括存储在一个或多个存储设备中的至少一个上的程序指令,用于在VM中配置第二VNIC,其中,第二VNIC使得在客户域之外的第三应用可以访问在客户域中的VM,以及,其中,第二VNIC被配置为使用由第三应用的服务器使用的寻址规范。该实施例进一步包括存储在一个或多个存储设备中的至少一个上的程序指令,用于在VM中配置第三VNIC,其中,第三VNIC使得从第一应用可以访问在客户域之外执行的第四应用,以及,其中,第三VNIC被配置为使用由第四应用的服务器使用的寻址规范,从而确保与客户域有关的数据通信不受与第二客户域有关的数据通信的干扰。
[0008] 另一个实施例包括一个或多个处理器,一个或多个计算机可读存储器以及一个或多个计算机可读有形存储设备。该实施例进一步包括存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于在客户域中为客户配置虚拟机(VM)。该实施例进一步包括存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于在VM中配置第一虚拟网络接口(VNIC),其中第一VNIC使得VM上的应用可以访问在客户域中的第二VM中的第二应用。该实施例进一步包括存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于将第一网络地址分配给第一VNIC,其中第一网络地址位于为客户域选择的第一地址范围内。该实施例进一步包括存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于在VM中配置第二VNIC,其中,第二VNIC使得在客户域之外的第三应用可以访问在客户域中的VM,以及,其中,第二VNIC被配置为使用由第三应用的服务器使用的寻址规范。该实施例进一步包括存储在一个或多个存储设备中的至少一个上、经由一个或多个存储器中的至少一个、由一个或多个处理器中的至少一个执行的程序指令,用于在VM中配置第三VNIC,其中,第三VNIC使得从第一应用可以访问在客户域之外执行的第四应用,以及,其中,第三VNIC被配置为使用由第四应用的服务器使用的寻址规范,从而确保与客户域有关的数据通信不受与第二客户域有关的数据通信的干扰。

附图说明

[0009] 在附带的权利要求书中记载了被认为是本发明特性的新颖特征。然而,当结合附图阅读,通过参考下面对例示实施例的详细描述,将会更好地理解本发明自身以及其优选使用方式、其进一步的目的和优点,其中:
[0010] [图1]图1显示了可以实现例示实施例的数据处理系统的方框图;
[0011] [图2]图2显示了可以实现例示实施例的逻辑分区平台例子的方框图;
[0012] [图3]图3显示了根据例示实施例用于在虚拟化多租户环境中供应安全客户域的配置的方框图;
[0013] [图4]图4显示了根据例示实施例用于在虚拟化多租户环境中供应安全客户域的例示过程的流程图;
[0014] [图5]图5显示了根据例示实施例用于在虚拟化多租户环境中供应安全客户域的另一个例示过程的流程图;以及
[0015] [图6]图6显示了根据例示实施例用于在虚拟化多租户环境中供应安全客户域的又一个例示过程的流程图。

具体实施方式

[0016] 多租户数据处理环境(多租户环境)是一个托管有不止一个客户的数据处理系统的数据处理环境。虚拟化多租户数据处理环境(虚拟化环境,虚拟化多租户环境,VME,云)是一个多租户环境,在这里配置虚拟机来为数个客户执行计算任务。
[0017] 例示实施例认识到,VME中的客户典型地为不同目的配置有不同的VM。例如,客户可能有一个VM被配置为提供网络服务,有另一个VM被配置为提供后端应用支持,还有另一个VM被配置为托管数据库。类似地,可以为专门目的、混合使用或通用计算类似地配置任意数目的VM。
[0018] 例示实施例进一步认识到,客户通常会控制对其在VME中的应用的配置。例如,除了客户被托管的VME的一些基本需求,客户可以选择任何因特网协议(IP)地址范围来便利在一个或多个VM上执行的客户的各种应用之间的通信。VME的基本需求的一些例子是,为管理目的应该可以访问客户的VM,客户的寻址不能与可在VME中可用的共享服务所用的寻址相冲突。
[0019] 例示实施例进一步认识到,客户期望其VM和应用组(客户域)相对于其他客户域是安全的。换句话说,除非是有意的,去往或来自一个客户域的通信应该不会与去往或来自另一个客户域的通信相干扰。
[0020] 例示实施例认识到,确保VME中的客户域安全是个难题。这种困难的原因之一例如是,在VME中,由一个客户选择的地址范围可能会不经意地与另一个客户选择的地址范围相重叠。
[0021] 例示实施例认识到,实施一个严格的地址范围分离政策是不现实的、困难的并且昂贵的。例如,为了实施这样一个政策,可能需要修改客户应用的代码,这对于客户来说可能是无法接受的。再例如,在当前可用的VME架构内实施这样一个政策需要对一个或多个现有的客户域进行配置或者重新配置,来实现一个新的客户域或修改一个客户域。
[0022] 例示实施例进一步认识到,在当前可用的VME架构中,必须使用硬件设备来将客户域与向管理应用和共享工具提供服务的服务器隔离开来。因此,当VME中的客户域改变时,必须增加、移除或改变硬件元件。这种硬件改变是昂贵的,并且仍然需要严格的地址范围分离政策类型的解决方案来解决客户域地址范围重叠的问题。
[0023] 用于描述本发明的例示实施例总体上针对和解决与多租户环境有关的上述问题和其他问题。例示实施例提供了用于在虚拟化多租户环境中供应安全客户域的方法、系统和计算机程序产品。
[0024] 例示实施例提供了在客户域配置组件的方式,使得即使客户域使用与VME中的另一个客户域重叠的地址范围,客户域也不会受到在VME中的其他客户域的干扰。例示实施例进一步提供了用于确保客户域与管理和共享工具之间的分离、以便不需要为该分离配置硬件元件的技术。这里所描述的技术、过程和操作方式可以在用于VM的模板中实现,使得当在客户域中构造VM时,在多租户环境中不需要作出硬件改变的情况下用本公开所描述的方式配置该VM。
[0025] 相对于特定数据处理系统、环境、组件和应用,仅仅作为例子描述了例示实施例。这种物品的任何具体表现都不意图限制本发明。任何适合于数据处理系统、环境、组件和应用的具体表现都可以在该例示实施例的范围内进行选择。
[0026] 此外,例示实施例可以相对于任何类型的数据、数据源或通过数据网络对数据源的访问来实现。在本发明的范围内,任何类型的数据存储设备可以将数据提供给在本地数据处理系统或通过数据网络的本发明的实施例。
[0027] 使用特定的代码、设计、架构、协议、布局、图表和工具对例示实施例进行了描述,其仅作为示例,且不限制例示实施例。此外,为了描述清楚起见,在某些情况下作为例子,使用特定的软件、工具和数据处理环境描述了例示实施例。例示实施例可以与其他类似或同样目的的结构、系统、应用或架构结合使用。例示实施例可在硬件、软件或其组合中实现。
[0028] 本公开的示例只用于清楚描述,而非限制例示实施例。额外的数据、操作、行动、任务、活动和操作可以从本公开中构想并在例示实施例的范围内实现。
[0029] 此处列出的任何优点仅仅是示例,并不是要限制例示实施例。通过特定的例示实施例,可以实现附加的或不同的优点。此外,一个特定的例示实施例可以具有一些、全部以上所列举的优点,或不具有上述优点。
[0030] 参考附图、特别是图1和图2,这些图是其中可以实现例示实施例的数据处理环境的示例图。图1和图2仅仅是示例,而非意图断言或暗示对于可以实现不同实施例的环境的任何限制。基于下列描述,一个特定实施对于所示环境会作出许多修改。
[0031] 参考图1,该图描述了其中可以实现例示实施例的数据处理系统的方框图。数据处理系统100可以是对称多处理器(SMP)系统,包括连接到系统总线106的多个处理器101、102、103和104。例如,数据处理系统100可以是实现为网络中的服务器的IBM Power(Power System是国际商业机器公司在美国和其他国家的产品和商标)。或者,
可以采用单处理器系统,处理器101、102、103和104可以是单处理器芯片中的核。或者,数据处理系统100可以包括处理器与核的任何组合形式的处理器101、102、103和104。
[0032] 连接到系统总线106的还有存储器控制器/高速缓存108,其提供到多个本地存储器160-163的接口。I/O总线桥110连接到系统总线106,并提供到I/O总线112的接口。存储器控制器/高速缓存108和I/O总线桥110可以如图所示整合在一起。
[0033] 数据处理系统100是一个逻辑分区的数据处理系统。因此,数据处理系统100可以有多个异构操作系统(或一个单一操作系统的多个实例)同时运行。这些多个操作系统中的每一个都可以有任何数量的软件程序在其内执行。数据处理系统100被逻辑分区,使得不同的PCI I/O适配器120-121、128-129和136、图形适配器148和硬盘适配器149可以被分配到不同的逻辑分区。在这种情况下,图形适配器148连接到显示设备(未显示),而硬盘适配器149连接到并控制硬盘150。
[0034] 因此,举例来说,假设数据处理系统100被分为三个逻辑分区,P1,P2和P3。每个PCI I/O适配器120-121、128-129、136、图形适配器148、硬盘适配器149、每个主机处理器101-104、以及来自本地存储器160-163的存储器被分配到这三个分区中的一个。在这些例子中,存储器160-163可以采取双线内存模块(DIMM)的形式。DIMM通常不是在每个DIMM的基础上分配给分区。相反,一个分区将得到由平台所见到的所有存储器的一部分。例如,处理器
101、来自本地存储器160-163的存储器的一部分以及I/O适配器120、128和129可以分配给逻辑分区P1;处理器102-103、来自本地存储器160-163的存储器的一部分以及PCI I/O适配器121和136可以分配给分区的P2;以及,处理器104、来自本地存储器160-163的存储器的一部分、图形适配器148以及硬盘适配器149可以分配给逻辑分区P3。
[0035] 在数据处理系统100中执行的每个操作系统被分配到不同的逻辑分区。因此,在数据处理系统中执行的每个操作系统100只能访问在其逻辑分区内的I/O单元。因此,例如,高级交互执行(AIX(注册商标))操作系统的一个实例可以在分区P1内执行,AIX操作系统的第二个实例(映像)可以在分区P2内执行,Linux(注册商标)或IBM-i(注册商标)操作系统可以在逻辑分区P3内操作。(AIX和IBM-i是国际商业机器公司在美国和其他国家的商标。Linux是Linus Torvalds在美国和其他国家的商标)。
[0036] 连接到I/O总线112的外设组件互连(PCI)主机桥114提供了到PCI本地总线115的接口。一些PCI输入/输出适配器120-121通过PCI-至-PCI桥116、PCI总线118、PCI总线119、I/O插槽170和I/O插槽171连接到PCI本地总线115。PCI-至-PCI桥116提供到PCI总线118和PCI总线119的接口。PCI I/O适配器120和121分别放置在I/O插槽170和171中。典型的PCI总线实现支持四到八个I/O适配器(即用于附加连接器的扩展插槽)。每个PCI I/O适配器120-121在数据处理系统100和输入/输出设备、例如诸如其他网络计算机之间提供接口,其中该其他网络计算机是数据处理系统100的客户。
[0037] 一个额外的PCI主机桥122为一个额外的PCI本地总线123提供接口。PCI本地总线123连接到多个PCI I/O适配器128-129。PCI I/O适配器128-129通过PCI-至-PCI桥124、PCI总线126、PCI总线127、I/O插槽172和I/O插槽173连接到PCI本地总线123。PCI-至-PCI桥124提供到PCI总线126和PCI总线127的接口。PCI I/O适配器128和129分别放置在I/O插槽172和173中。以这种方式,额外的I/O设备,例如诸如调制解调器或网络适配器,可以通过每个PCI I/O适配器128-129获得支持。因此,数据处理系统100允许连接到多个网络计算机。
[0038] 将存储器映射图形适配器148插入到I/O插槽174,并通过PCI总线144、PCI-至-PCI桥142、PCI本地总线141和PCI主机桥140连接到I/O总线112。硬盘适配器149可放置在I/O插槽175中,I/O插槽175连接到PCI总线145。依次,PCI总线145连接到PCI-至-PCI桥142,PCI-至-PCI桥142由PCI本地总线141连接到PCI主机桥140。
[0039] PCI主机桥130为PCI本地总线131提供连接到I/O总线112的接口。PCI I/O适配器136连接到I/O插槽176,I/O插槽176通过PCI总线133连接到PCI-至-PCI桥132。PCI-至-PCI桥132连接到PCI本地总线131。PCI本地总线131还将PCI主机桥130连接到服务处理器邮箱接口和ISA总线访问通过逻辑194和PCI-至-PCI桥132。
[0040] 服务处理器邮箱接口和ISA总线访问通过逻辑194转发到PCI/ISA桥193的PCI访问。NVRAM存储器192连接到ISA总线196。服务处理器135通过其本地PCI总线195连接到服务处理器邮箱接口和ISA总线访问通过逻辑194。服务处理器135还通过多个JTAG/I2C总线134连接到处理器101-104。JTAG/I2C总线134是JTAG/扫描总线(参见IEEE 1149.1)和Phillips I2C总线的组合。
[0041] 然而,或者,JTAG/I2C总线134可以仅由Phillips I2C总线或仅由JTAG/扫描总线替换。主处理器101、102、103和104的所有SP-ATTN信号一起连接到服务处理器135的中断输入信号。服务处理器135具有其自己的本地存储器191,并可访问硬件OP面板190。
[0042] 当数据处理系统100最初上电时,服务处理器135使用JTAG/I2C总线134来询问系统(主机)处理器101-104、存储器控制器/高速缓存108和I/O桥110。在该步骤完成时,服务处理器135具有对数据处理系统100的库存和拓扑结构的理解。服务处理器135还对通过询问主机处理器101-104、存储器控制器/高速缓存108和I/O桥110所发现的所有元素执行内置自测试(BIST)、基本保证测试(BAT)和存储器测试。服务处理器135收集并报告在BIST、BAT和存储器测试期间检测到的故障的任何错误信息。
[0043] 如果在取出在BIST、BAT和存储器测试期间发现错误的元件之后仍然可以对系统资源进行有意义的/有效的配置,则数据处理系统100被允许继续进行,将可执行代码加载到本地(主机)存储器160-163。服务处理器135然后释放主机处理器101-104,以便执行加载到本地存储器160-163中的代码。在主机处理器101-104正在执行来自数据处理系统100内的相应操作系统的代码时,服务处理器135进入监视和报告错误模式。服务处理器135监视的项目类型包括,例如冷却风扇速度和运行、热传感器、电源调节器以及由处理器101-104、本地存储器160-163和I/O桥110报告的可恢复和不可恢复的错误。
[0044] 服务处理器135保存和报告与数据处理系统100中所监视的全部项目相关的错误信息。服务处理器135还基于错误的类型和定义的阈值采取行动。例如,服务处理器135可能会注意到处理器的高速缓存上的大量可恢复的错误,并确定这是预测的硬故障。基于这样的确定,服务处理器135可以标记该资源在当前运行的会话和未来的初始程序加载(IPL)时退出配置。IPL有时也被称为“启动”或“引导”。
[0045] 数据处理系统100可以使用各种商用计算机系统来实现。例如,数据处理系统100可以使用国际商业机器公司的IBM Power System实现。这样的系统可以支持使用AIX操作系统的逻辑分区,AIX操作系统也可以从国际商业机器公司获取。
[0046] 存储器、例如存储器191、NVRAM 192、本地存储器160、161、162和163或闪存(未显示)是计算机可用存储设备的一些示例。硬盘150、CD-ROM(未显示)以及其他类似可用设备是包括计算机可用存储介质的计算机可用存储设备的一些示例。
[0047] 本领域普通技术人员会明白,在图1所示的硬件可能会有所不同。例如,除了所显示的硬件或者作为其替代,还可以使用其他外围设备、如光盘驱动器等。作为另一个例子,一些物理资源、如适配器,可以被虚拟化为相应的虚拟资源(未显示),然后将虚拟资源分配给各个分区。作为另一个例子,图1描述的硬件可以被配置为使用一个或多个虚拟I/O服务器(VIOS)(未显示)。VOIS允许在所支持的逻辑分区之间共享物理资源,如适配器、盘、处理器、储器,控制器等。在其他功能中,在分区之间,共享VOIS有助于减少大量布线的需要,并执行实时迁移。所示示例相对于例示实施例并不意图暗示构造限制。
[0048] 参考图2,该图显示了其中可以实现例示实施例的逻辑分区平台的示例的方框图。逻辑分区平台200中的硬件例如可以实现为在图1中的数据逻辑系统100中所示的对应组件。
[0049] 逻辑分区平台200包括分区硬件230、操作系统202、204、206、208和平台固件210。平台固件、例如平台固件210也被称为分区管理固件。操作系统202、204、206、208可以是同时运行在逻辑分区平台200上的单操作系统的多个拷贝或者多个异构操作系统。这些操作系统可以用IBM-i实现,IBM-I被指定为与诸如管理程序的分区管理固件交互。IBM-i在这些例示实施例中仅仅作为例子。当然,取决于特定实现,可以使用其他类型的操作系统、例如AIX和Linux。操作系统202、204、206和208分别位于分区203、205、207和209。
[0050] 管理程序软件是可以用来实现分区管理固件210的一个示例,可以从国际商业机器公司获得。固件是存储在存储器芯片上的“软件”,可以在没有电源的情况下保持其内容,例如,只读存储器(ROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)以及非易失性随机存取存储器(非易失性RAM)。
[0051] 另外,分区203、205、207和209还分别包括分区固件211、213、215和217。分区固件211、213、215和217还可以用初始引导代码、IEEE-1275标准开放固件和运行时抽象软件(RTAS)实现,其可以从国际商业机器公司获得。当分区203、205、207和209被实例化时,平台固件210将初始引导代码的拷贝加载到分区203、205、207和209。然后,控制转到引导代码,引导代码然后加载开放固件和RTAS。然后将与分区相关联的或分配给分区的处理器调度到分区的存储器以执行分区固件。
[0052] 分区203是一个VM示例,被配置为在客户域操作并服务于应用示例203A。分区203配置有至少三个虚拟网络接口卡(VNIC)212A、212B和212C。分区205是另一个VM示例,被配置为在客户域操作并服务于数据库应用程序示例205A。每个分区203和205配置有至少三个虚拟网络接口卡(VNIC)。分区203包括VNIC 212A、212B和212C,分区205包括VNIC 214A、214B和214C。作为示例,VNIC 212A、212B、212C、VNIC 214A、214B和214C中的每一个是以任何合适的方式匹配到物理I/O适配器248、250、252、254、256、258、260和262的组合的虚拟化资源。
[0053] 分区207是一个VM示例,被配置为服务于管理服务示例207A。管理服务207A可用于客户域中的分区203和205的管理。管理服务207A为该目的使用VNIC 216A,用于访问客户域中的分区203和205。VNIC 216A是以任何合适的方式匹配到物理I/O适配器248、250、252、254、256、258、260和262中的任何一个的虚拟化资源。在一个实施例中,VNIC、例如VNIC 
216A匹配到VIOS实例中的虚拟资源,该虚拟资源然后连接到这些物理适配器中的一个或多个。例如,在这样的实现中,VIOS实例通过跨两个VIOS的共享以太网适配器来保证冗余。在一个实施例中,管理服务207A被配置在一个不同于逻辑分区平台200并且可以通过数据网络从客户域访问的主机(未显示)上,并且,VNIC 216A匹配到在该不同主机中的一个不同的物理I/O适配器。在一个实施例中,客户域包括在不同于逻辑分区平台200的、并且可以通过数据网络从分区203和205访问的其他主机系统(未显示)中的分区或VM。
[0054] 分区209是一个VM示例,被配置为服务于共享工具示例209A。共享工具209A在分区209中,可由客户域中的分区203和205通过数据网络经由VNIC 218A到达。VNIC 218A是以任何合适的方式匹配到物理I/O适配器248、250、252、254、256、258、260和262中的任何一个的虚拟化资源。在一个实施例中,共享工具209A被配置在一个不同于逻辑分区平台200并且可以通过数据网络从客户域访问的主机(未显示)上,并且,VNIC 218A匹配到在该不同主机中的一个不同的物理I/O适配器。
[0055] 域名服务(DNS)220A是在逻辑分区平台200所运行于的VME中执行的DNS服务的一个或多个自定义视图。DNS 220A的自定义视图仅公开到授权给包括分区203和205的客户域的那些管理服务207A和共享工具209A的路径。
[0056] 虚拟防火墙和路由器(VFW/路由器)220B是VME中一个虚拟化路由资源。VFW/路由器220B在客户域中被实例化,以便利客户域所的服务器、应用和VM之间的通信。在例示实施例的范围内,在客户域中可以生成类似于220B的不止一个实例。
[0057] 代理220C独自或者与VFW/路由器220B和DNS 220A的组合相结合,便利在客户域中的组件与管理服务207A和共享工具209A之间的通信,而不受来自另一个客户域的混淆或干扰,其中该另一个客户域可能正在使用与该客户域中所用的地址范围重叠的地址范围。代理220C可以是反向代理、双向代理或代理服务器的另一种合适的实现。另外,代理220C可以是一个变换设备,例如NAT,或者能够执行到目的地共享工具的基于策略的路由的工具。基于策略的路由允许基于源路由器/防火墙而有区别地路由到重叠范围,因此可以路由到专用(VM)共享工具,其被设立为或者解决重叠地址范围问题,或者使得一个不支持多租户的应用(工具)例如通过实例化变得能够支持多租户。
[0058] 分区硬件230包括多个处理器232-238、多个系统存储单元240-246、多个输入/输出(I/O)适配器248-262以及存储器单元270。可以将处理器232-238、存储单元240-246、NVRAM存储器298和I/O适配器248-262中的每一个分配给逻辑分区平台200内的分区203、205、207、209中的一个,分区203、205、207、209中的每一个对应于操作系统202、204、206、
208中的一个。
[0059] 分区管理固件210为分区203、205、207和209执行多个功能和服务,以生成和执行逻辑分区平台200的分区。分区管理固件210是与底层硬件相同的固件实现的虚拟机。因此,分区管理固件210通过虚拟化逻辑分区平台200的所有硬件资源,允许同时执行独立的OS映像202、204、206和208。
[0060] 服务处理器290可用于提供各种服务,例如分区中的平台错误的处理。这些服务还可以作为服务代理,将错误报告回供应商,例如国际商业机器公司。分区203、205、207和209的操作可以通过硬件管理控制台、例如硬件管理控制台280进行控制。硬件管理控制台280是一个单独的数据处理系统,系统管理员可以从该系统执行各种功能、包括将资源重新分配给不同分区。
[0061] 图1-2中的硬件可以根据实现而变化。其他内部硬件或外设、例如闪存、等效的非易失性存储器或光盘驱动等,可以用来补充或替换在图1-2中所示的特定硬件。例示实施例的实现也可以使用用于管理分区的替代架构,而不偏离本发明的范围。
[0062] 参考图3,该图显示了根据一个例示实施例的用于在虚拟化多租户环境中供应安全用户域的配置的方框图。VME部分300是VME的一部分,其中配置有多个客户域。客户域302是VME部分300中的一个示例客户域。虚拟服务器304是在示例客户域302中配置的一个例示机器。虚拟服务器304可以采用图2中的分区203来实现。VNIC 312A、312B和312C分别是VNIC 212A、212B和212C的实施例。
[0063] 在一个实施例中,VNIC 312A运行以便于在客户域302中运行的各个服务器之间的通信。VNIC 312A与VFW/路由器306通信,以到达客户域302中的一个或多个服务器、组件或应用。
[0064] VNIC 312A被配置为使用客户选择的地址范围内的地址。根据客户偏好,所选择的地址范围以及因此分配给VNIC 312A的地址可以采用IPv4寻址或IPv6寻址。
[0065] 客户不允许采用为在共享域352中运行的机器、服务器、系统、适配器、组件和应用保留的地址范围。虽然在采用IPv6时不太可能出现在两个或多个客户域之间重叠的地址范围,但在选择IPv4时很可能会出现这种重叠。随着空闲的唯一Pv4地址越来越少,并且因为大部分IPv4地址空间被重用,不能作为唯一IPv4地址可用,在IPv4寻址中的重叠变得越来越可能。例如,具有大约1600万地址的IPv4 A类地址空间是可用IPv4地址的最大块。由于有限的并且不相连的IPv4地址空间,在不重用或者重叠的情况下,不可能分配超过大约1670万的IPv4地址。例如,DSL提供商或者移动电话和数据服务提供商可能具有比在单个的A类地址空间中的IPv4更多的客户,需要不止一个A类地址空间。在总共只有125个A类地址空间可用并且只有一个A类地址空间允许私人非因特网路由使用的情况下,IPv4不能随着对地址增长的需求很好地扩容。
[0066] 在一个实施例中,VNIC 312A是双协议栈的,即,配置为既采用IPv4 TCP/IP协议栈也采用IPv6 TCP/IP协议栈。有利地,在不需要在所支持的VME中添加或者改变硬件的情况下,双协议栈配置允许客户选择任一个寻址规范,从一个寻址规范迁移到另一个,或者在其域内使用寻址规范的组合。
[0067] 在一个实施例中,VNIC 312B运行以便利虚拟服务器304与提供管理服务、例如共享存储器/备份/安装/恢复服务的服务器之间的通信。VNIC 312B与VFW/路由器308通信,以到达一个或多个管理服务。其中,一个实施例使用第二VNIC 312B来保持与其他数据流量分离的重存储器流量,例如允许使用需要密集路由路径支持的巨型帧。
[0068] VNIC 312B被配置为使用唯一分配给客户的IPv6地址。在一个实施例中,VNIC312A被配置为只使用IPv6TCP/IP协议栈。管理服务在VME中仅可以经由被唯一分配的供在共享域352中使用的IPv6地址到达。IPv6使用128位地址,允许2128或大约3.4x1033个地址,或者是使用32位地址的IPv4的超过7.9x1028倍。由于IPv6地址空间与IPv4地址空间相比特别大,并且由于同一个IPv6地址不会分配给不同的实体,因此即便不是不可能,地址意外重叠也是非常不可能的。
[0069] 在一个实施例中,VNIC 312C运行以便利虚拟服务器304与提供共享工具的服务器之间的通信。VINC 312C与代理310和VFW/路由器312通信,以访问一个或多个共享工具。在客户域302与另一个客户域所使用的地址范围之间出现重叠的情况下,代理310允许在客户域302中的应用与在共享域352中的应用之间的可靠通信。
[0070] VNIC 312C被配置为或者使用客户选择的IPv4地址,或者使用唯一分配给客户(或者唯一分配给托管提供商,托管提供商然后将其分配给客户)的IPv6地址,但不能同时使用二者。因此,VNIC 312C被配置为或者仅使用IPv4TCP/IP协议栈,或者仅使用IPv6 TCP/IP协议栈,但不能同时使用二者。
[0071] 由于IPv4寻址和IPv6寻址之间的互操作性的限制,在VNIC 312C中选择IPv4寻址还是IPv6寻址取决于在共享域352中为共享工具所使用的寻址。如果共享工具可以采用为共享域352保留的IPv4地址达到,则VNIC 312C以IPv4地址配置。如果共享工具可以采用IPv6地址达到,则VNIC 312C以IPv6地址配置。
[0072] 一般地,在该图中所示的虚拟组件的全部或任何组合可以规定在客户的VM的模板中。当客户要被新供应、再次供应或客户环境必须改变时,如这里所述的对虚拟组件的生成和配置维护客户域的安全性,而不必担心客户地址范围的重叠,也不要求VME中的硬件改变。
[0073] 参考图4,该图显示了根据一个例示实施例在虚拟化多租户环境中供应安全客户域的一个示例过程的流程图。过程400可以在管理服务、诸如图2中的管理服务207A之一中实现。
[0074] 管理服务通过将客户服务器配置为VM开始过程400(方框402)。不止一个客户服务器可以占据客户域中的一层。例如,网络服务器可以形成一层,数据库服务可以形成另一层,应用可以形成第三层。任意数目的层在例示实施例的范围内都是同样可能的。管理服务为每个客户服务器层生成三个虚拟局域网(VLAN)。过程400是针对一个示例层进行描述的,其仅仅为了描述清楚起见,而不表示对例示实施例的限制。
[0075] 因此,管理服务在VM配置第一VNIC(方框404)。管理服务以来自客户选择的除保留的地址范围之外的任一地址范围内的地址配置第一VNIC(方框406)。管理服务以IPv4 TCP/IP协议栈和IPv6 TCP/IP协议栈配置第一VNIC(方框408)。
[0076] 管理服务使得即使客户使用与另一个客户的地址范围重叠的地址范围,VM上的应用可以采用第一VNIC和VFW/路由器对客户的另一个虚拟服务器上的另一个应用进行访问,以确保客户的服务器之间的通信(方框410)。管理服务或者结束过程400,或者在标记为“A”的退出点退出过程400,以便在对应的标记为“A”的入口点进入另一个过程、例如图5中的过程500。
[0077] 参考图5,该图显示了根据一个例示实施例在虚拟化多租户环境中供应安全客户域的另一个示例过程的流程图。过程500可以在管理服务、诸如图2中的管理服务207A之一中实现。
[0078] 通过配置在客户VM、诸如在图4中的方框402配置的VM中的第二VNIC,管理服务开始过程500或在标记为“A”的进入点进入过程500(方框502)。管理服务以客户的唯一IPv6地址配置第二VNIC(方框504)。管理服务以IPv6 TCP/IP协议栈配置第二VNIC(方框506)。
[0079] 管理服务使得可以采用第二VNIC和VFW/路由器从VME中的共享域中的管理服务器对客户的VM进行访问(方框508)。管理服务或者结束过程500,或者在标记为“B”的退出点退出过程500,以便在对应的标记为“B”的入口点进入另一个过程、例如图6中的过程600。
[0080] 参考图6,该图显示了根据例示实施例的用于在虚拟化多租户环境中供应安全客户域的另一个示例过程的流程图。过程600可以在一个管理服务、诸如图2中的管理服务207A之一中实现。
[0081] 通过配置在客户VM、诸如在图4中的方框402配置的VM中的第三VNIC,管理服务开始过程600或在标记为“B”的进入点进入过程600(方框602)。管理服务确定在配置第三VNIC中是使用IPv4还是IPv6寻址规范(方框604)。
[0082] 如果要为第三VNIC使用IPv6寻址(方框604中的“IPv6”路径),管理服务以客户的唯一IPv6地址配置第三VNIC(方框606)。管理服务以IPv6 TCP/IP协议栈配置第三VNIC(方框608)。
[0083] 管理服务允许采用第三VNIC和VFW/路由器从客户的VM访问VME中的共享工具(方框610)。管理服务然后结束过程500。
[0084] 如果要为第三VNIC使用IPv4寻址(方框604中的“IPv4”路径),管理服务以来自客户选择的IPv4地址范围的IPv4地址来配置VNIC,其中客户选择的IPv4地址范围可以与另一个客户的地址范围重叠,但不能与保留的地址范围重叠(方框612)。管理服务以IPv4 TCP/IP协议栈配置第三VNIC(方框614)。
[0085] 管理服务使得可以采用第三VNIC、代理和VFW/路由器从客户的VM对VME中的共享工具进行访问(方框616)。管理服务然后结束过程500。
[0086] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0087] 这样,在例示实施例中提供了用于在虚拟化多多租户环境中供应安全客户域的计算机实现的方法、系统和计算机程序产品。在VME中,一个实施例供应新客户、重新供应现有客户或改变客户供应,使得客户域相对于客户域内部和外部的通信被保护。一个实施例负责相对于其他客户域的安全或隔离,而不必担心由VME中的其他客户使用的地址范围。一个实施例使用用于供应安全客户域元件的虚拟化组件。其结果是,可以将客户域的供应和安全自动化到目前可行的更大程度。此外,可以容纳客户域中的、管理服务中的或VME的共享工具中的任何改变,而不必增加或修改硬件。
[0088] 所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0089] 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0090] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0091] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0092] 这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0093] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0094] 也可以把计算机程序指令加载到一个或多个计算机、一个或多个其它可编程数据处理装置、或一个或多个其它设备上,使得在一个或多个计算机、一个或多个其它可编程数据处理装置或一个或多个其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在一个或多个计算机、一个或多个其它可编程装置上或一个或多个其它设备上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0095] 在此使用的术语仅是为了描述特定实施例,且不旨在限制本发明。如在此使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清楚地指明。还将理解,当在说明书中使用时,术语“包括”和/或“包含”指明存在所述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件和/或组件。
[0096] 所附权利要求书中的所有装置或步骤加功能元件的相应结构、材料、操作以及等价物,旨在包括用于结合如特别要求保护的其他所要求保护的元件来执行所述功能的任何结构、材料或操作。呈现本发明的说明是为了示出和描述的作用,但不是穷尽性地或将本发明限制于所公开的形式。许多修改和变化对本领域普通技术人员来说是明显的,且不脱离本发明的范围。选择和描述实施例是为了最佳地解释本发明的原理和实际应用,并使得本领域普通技术人员能针对适于考虑的特定用途的具有各种修改的各种实施例理解本发明。