在 CloudBurst 2.1 中配置多个网络

实现 VLAN 支持

了解如何在 System x 环境的 CloudBurst 2.1 中使用 IBM® Tivoli® Service Automation Manager 7.2.1.1 定义多个网络配置,以及如何分隔各个配置以防止一个网络的数据包到达其他网络。这种多网络配置是基于 VLAN 实现的,其中使用 VMware 作为虚拟机管理程序,而 SuSe Linux 为客户机操作系统。

Antonio Di Cocco, 技术主管, IBM

Antonio Di Cocco 是 IBM Cloudburst 2.1 的技术主管。他负责整合 Tivoli 软件集的设计与代码,包括 IBM CloudBurst 和 IBM Service Delivery Manager。



Rossella De Gaetano, 测试主管, IBM

Rossella De Gaetano 是 IBM Service Delivery Manager 测试主管。她负责 Tivoli 软件集的质量保证,包括 IBM CloudBurst 和 IBM Service Delivery Manager。



2011 年 7 月 25 日

简介

主要概念

在本文中,我们在 System x 环境的 CloudBurst 2.1 中使用 IBM® Tivoli® Service Automation Manager 7.2.1.1 定义多个网络配置;并且对各个配置进行分隔,以防止一个网络的数据包到达其他网络。在开始之前,让我们先了解一下本文所用到的概念。

  • 通过使用 Tivoli Service Automation Manager 7.2.1,您就能够使用一个可定制的网络配置来部署虚拟设备,并且我们是将这些网络配置定义为一组子网络配置,其中指定了起始 IP 和掩码。
  • 每一个配置都必须至少包含一个作为 “管理网络” 的网络,这是 Tivoli Service Automation Manager 用来处理虚拟设备分配的网络。
  • 网络配置与虚拟池(VRPool)存在一对一关系。虚拟池指的是管理程序所管理的全部资源或者部分资源。所以,一个虚拟机管理程序可以建模为一个或多个虚拟池,但是虚拟池只关联到一个虚拟机管理程序。

图 1 描述了使用了 Tivoli Service Automation Manager 的虚拟池、网络配置、VLAN 和虚拟机管理程序资源之间的关系。

图 1. Tivoli Service Automation Manager 对象关系
Tivoli Service Automation Manager 对象关系

多网络配置

基于用户定义的配置,我们可以创建包含任意 VRPool 的服务器的项目。所以,如果您定义了一个开发池,一个测试池和一个生产池,那么您定义的项目就包括属于不同环境的虚拟服务器,在完成一个特性的开发和测试之后,再将它部署到生产服务器上。

通过这种方式,您就可以为每一个池定义不同的网络配置。为了实现在多个环境中使用不同网络,您必须至少为它们中的每一个定义一个管理网络,安装 Tivoli Service Automation Manager 的服务器必须能够访问所有定义的管理网络。

本文介绍了如何在 System x 环境的 CloudBurst 2.1 中使用 Tivoli Service Automation Manager 7.2.1.1 定义多个网络配置,并演示了如何分隔各个配置以防止一个网络的数据包到达其他网络。

我们的解决方法是针对于 System x 环境的 IBM CloudBurst 2.1 的,并且它使用 VMware 4.1 作为虚拟机管理程序,其中 Tivoli 软件集是安装在 SUSE 10 Service Pack 3 上的。然而,这个解决方法很容易调整以适应一个使用 IBM Service Delivery Manager 7.2.1 的环境。如果掌握了 Power VM 架构的使用方法,您就能够将这里所介绍的概念应用到 Power VM 上部署的 CloudBurst 2.1。

客户机操作系统提供的 VLAN 支持

在深入介绍技术细节之前,您可以采取以下方法来实现一个多网络配置:

  • 为每一个管理网络创建一个 VLAN。鉴于管理程序可能对每个虚拟系统可定义的不同 vNIC 的 数量有限制这一事实,这可能是一种不可扩展的解决方案,例如,VMware 4.1 将一个虚拟系统的不同 vNIC 数限制为 10 个。
  • 使用一个不带 VLAN ID 的 vNIC。虽然这个方法不会出现前面的限制问题,但是如果您希望创建分隔的网络,那么它会造成一个安全漏洞。实现网络隔离需要使用不同的 VLAN ID。
  • 使用客户机操作系统提供的 VLAN 支持。

CloudBurst 2.1 for System x 所使用的方法是利用客户机操作系统(例如,SuSe SLES 10 Service Pack 3)所提供的 VLAN 支持。下面是实现这个方法的过程。


配置 CloudBurst 2.1 软件集以支持多个网络

管理网络的可用地址是从 10.100.*.* 至 10.129.*.* 的网段。10.100.*.* 网段是默认定义的,所以在本文中,我们将介绍如何添加 10.101.*.*。

从客户网络的角度看,我们会添加近 30 个网络(为了简单起见,我们将它们定为 10.130.*.* 到 10.159.*.*)。当然,您可以根据自己的环境选择使用任何的 IP 地址集。

不同的网络配置与不同的虚拟池关联,而每一个虚拟池模型属于虚拟机管理程序的资源之一,这意味着您需要在 CloudBurst 环境的 VMware virtual Center 中为每一个虚拟池创建一个集群。

第 1 步:创建一个集群

默认情况下,在 CloudBurst 中,所有分配的刀片都会分组到一个名为 CloudBurst-cluster 的集群中。在这一步,我们要创建另一个名为 Second-cluster 的集群。为了简单起见,我们在 CloudBurst-cluster 中保留一半的刀片,而另一半关联到 Second-cluster 上。

  1. 登录 VMware virtual Center,转到 Home > Inventory Hosts and Clusters 视图。右键单击 CloudDC datacenter,然后选择 New Cluster。在 Cluster Features 窗口中,输入 Second-cluster,然后同时选择 VMware HAVMware DRS。在 VMware DRS 窗口和 Power Management 窗口中,使用默认值。
  2. 在 VMware HA 窗口中,选中 Enable Host Monitoring,然后选择 Enable: Do not power on VMs that violate availability constraints。在 Virtual Machine Options 窗口中选择 Leave powered on as Host Isolation Response。在 VM Monitoring 中保持默认值。在 VMware EVC 窗口中选择 Enable EVC for Intel Host。在 Virtual Machine Swapfile 位置窗口中,使用默认值。
  3. 在 Ready to Complete 窗口中,单击 Finish。您应该可以在 CloudDC 下看到 Second-cluster。您现在可以将一半的刀片从 CloudBurst-cluster 拖动到 Second-cluster。

第 2 步:使用 VLAN 标签创建另一个 VLAN

为了克服 VMware 中每个虚拟镜像最多只支持 10 NIC 的限制,我们可以利用 SuSe SLES 10 Service Pack 3 提供的 VLAN 支持。

这里所使用的技术是 VLAN 标签。为了利用 VLAN 标签技术,操作系统会给每一个 TCP/IP 数据包添加一个 VLAN ID。为了使之生效,虚拟机镜像必须能够通过非 0 的 VLAN ID 连接 VMWare ESXi 服务器任何一个端口组。VMware 定义了一个 ID 为 4095 的特殊端口组。一旦使用了这个数字(并且您具有正确的交换配置),那么只有当 TCP/IP 数据包具有一个 VLAN ID 标签时,它才允许到达这个端口组,并且这与它的值无关。如果您使用的是 System x 上的 CloudBurst 2.1,那么这个配置已经适合您的要求了。

使用这种方法,一个端口组已经足够支持所有的管理虚拟镜像(icb-tivsam、icb-itm、icb-nfs、icb-tuam)。在另一方面,所分配的虚拟镜像会使用一个特殊的端口分组。

图 2. CloudBurst 2.1 自带的 VM 部署网络配置
CloudBurst 2.1 自带的 VM 部署网络配置

在您完成之后,您就可以创建两个不相关的虚拟镜像。第一组(已经默认配置好)使用 10.100.*.* 作为管理网络,使用 10.130.*.* 作为客户网络。第二组使用 10.101.*.* 作为管理网络,10.131.*.* 作为客户网络。

首先,您需要在 10.101.*.* 上为 icb-tivsam、icb-nfs 和 icb-itm 定义一个 vNIC。

为 icb-tivsam 定义 vNIC 是很容易理解的:10.101.*.* 是 Tivoli Service Automation Manager 所使用的管理网络。而为什么 icb-nfs 和 icb-itm 也需要一个额外的 vNIC 则不太明显。

对于 icb-nfs,这个额外的 vNIC 之所以需要,是因为当在分配的虚拟镜像上安装 IBM Tivoli Monitoring 代理时,所分配的虚拟镜像会远程挂载 /repository 文件系统,以便访问 IBM Tivoli monitoring 安装的二进制文件。

对于 icb-itm,如果 IBM Tivoli Monitoring 代理包含虚拟镜像,那么所分配的这个虚拟镜像会使用额外的 vNIC 将监控数据发送到 IBM Tivoli Monitoring 服务器。

icb-tuam 是不需要额外的 NIC 的,因为 icb-tuam 与 icb-tivsam 的交互只是为了交换使用和核算数据。Icb-tuam 不会与所分配的 VM 进行直接交互。

为了使用 VLAN 标记创建一个 VLAN,icb-tivsam、icb-nfs 和 icb-itm 提供了一些预定义命令。这可以避免用户直接使用复杂的操作系统命令。

例如,如果您登录 icb-tivsam,您会发现这个命令:

/opt/IBM/CB/bin/addVLAN.sh

语法是:

/opt/IBM/CB/bin/addVLAN.sh <VLAN ID> <IP address> <netmask>

运行下面的命令:

/opt/IBM/CB/bin/addVLAN.sh 101 10.101.0.1 255.255.0.0

当命令结束后,您就会发现网卡已经使用命令 ifconfig eth0.101 正确配置了。

在 icb-itm 和 icb-nfs 上重复执行这个命令,其中使用 10.101.0.7 和 10.101.0.5 作为各自的 IP 地址。

如果使用双节点 HA,那么要使用 IP 地址 10.101.0.6 在 icb-nfs-ha 上重复相同的命令,以及使用 IP 地址 10.101.0.3 在 icb-tivsam-ha 上重复相同命令。

注意:在 icb-itm 上添加 vNIC 之后,您需要重新启动 IBM Tivoli Monitoring server (TEMS),否则它无法监听最新创建的 IP 地址,而所分配的虚拟镜像也无法发送任何的数据。要做到这一点,您需要以 virtuser 身份登录 icb-itm,然后执行 /opt/IBM/ITM/bin/itmcmd server stop TEMS。当操作完成之后,输入命令 /opt/IBM/ITM/bin/itmcmd server start TEMS

第 3 步:添加服务 IP 地址

一定要为前一步创建的 VLAN 定义服务 IP 地址,特别是如果利用双节点高可用性。主要原因是您使用 Tivoli System Automation for Multiplatform 来保证虚拟镜像(icb-tivsam 或 icb-tivsam-ha、icb-nfs 或 icb-nfs-ha)能够有效地提供服务。这个任务需要在 icb-tivsam 和 icb-nfs 上执行。

为了执行这个步骤,我们需要在 icb-nfs 和 icb-tivsam 上停止 Tivoli System Automation 所管理的服务。

  1. 以 root 身份登录 icb-nfs 或 icb-tivsam,然后在 icb-tivsam 上执行 rgreq -o stop top-rgrgreq -o stop tsam-rg
  2. 检查命令 lssam -V 的输出,确定这些服务已经停止。所有服务的停止需要花费一定的时间。
  3. 使用 /opt/IBM/CB/bin 命令创建服务 IP 地址。其语法是:
    /opt/IBM/CB/bin/tsa_add_service_ip.sh <name of the NIC> <IP
    address> <netmask>
  4. 在这个例子中,对于 icb-nfsuse,使用命令:
    /opt/IBM/CB/bin/tsa_add_service_ip.sh eth0.101 10.101.0.4 255.255.0.0

    对于 icb-tivsam,使用命令:
    /opt/IBM/CB/bin/tsa_add_service_ip.sh eth0.101 10.101.0.2 255.255.0.0
  5. 在创建了服务 IP 地址之后,在 icb-nfs 上执行命令 rgreq -o cancel top-rg,在 icb-tivsam 上执行命令 rgreq -o cancel tsam-rg,重新启动由 Tivoli System Automation 管理的服务。
  6. 使用命令 lssam -V 检查输出,保证所有资源都已经启动。启动过程需要一定的时间,所以要不停地检查。

注意:不管您是否使用双节点高可用性,这个过程都是完全相同的。您不需要在 icb-tivsam-ha 和 icb-nfs-ha 上执行这个步骤,因为 Tivoli System Automation for Multiplatforms 知道您是否使用双节点配置,并且能够正确地向后台虚拟镜像发送所需要的信息。

第 4 步:创建一个新的资源池和新的云池

要使用 Tivoli Service Automation Manager 的功能来创建一组使用不同网络和不同资源的虚拟镜像,我们需要创建不同的资源池。

为了简化 Tivoli Service Automation Manager 的操作,在 icb-tivsam 镜像中,我们提供了一些很容易调整和导入的模板。

这一个文件是 /opt/IBM/CB/TSAMDefinitions/New_Pool_DCM_objects.xml。这个文件包含了创建一个新资源池时需要定义的最少项目数:管理网络、客户网络、云文件知识库(UNIX® 和 Windows®)和软件集。

定制

最少的定制需求是:

  • 将所有出现的变量 $MGMT_VLANID 修改为新管理网络的 VLAN ID(在我们的例子中是 101)。
  • 将所有出现的变量 $CUST_VLANID 修改为新客户网络的 VLAN ID(在这个例子中,我们使用 10.131)。

您可能还希望使用您特定的网络数据(如,IP 地址、子网掩码和 DNS)来定制客户网络。一定要修改变量 SANStgPoolName,以保存所使用的 VM 磁盘清单。

在问题确定的情况下,或者如果您希望遍历这个过程以增加更多资源池时,创建 New_Pool_DCM_objects.xml 的备份副本是很有用的。

在本文中,我们将定制的 New_Pool_DCM_objects.xml 重命名为 101_Pool_DCM_objects.xml。

导入

在文本定制之后,将它导入到 Tivoli Provisioning Manager 中:

以用户 tioadmin 的身份运行命令:

/opt/IBM/tivoli/tpm/tools/xmlimport.sh
file:///opt/IBM/CB/TSAMDefinitions/101_Pool_DCM_objects.xml
  1. 创建一个新的云池。这时,您需要创建一个新的云池来使用最新创建的资源池。您可以使用如下所示的文件:
    1.name=VMware System x 101
    1.tpmHPType=VMware
    1.order=1
    1.tpmPool=Esx Cloud Pool 101
    1.hypervisorHostName=vsphere
    1.fileRepositoryName=VMwareFileRepository101
    1.maxVCPU=4
    1.maxCPUUnits=40
    1.maxMemMB=8192
  2. 根据您的环境修改此文件。记住一定要根据环境修改上面这个文件。给文件指定一个有意义的文件名:101_vrpool.properties,这样有利于您记住这个文件是为 101 VLAN 创建的。
  3. 导入该文件。当文件创建后,使用 TSAM administrative 用户界面进行导入:
    1. maxadmin 身份登录到 https://icb-nfs/maximo。
    2. 转到 > Service Automation > Cloud Pool Administration。
    3. 单击 Import Virtual Resource Pools
    4. 转到您保存 101_vrpool.properties 的磁盘目录,导入这个文件。
  4. 返回 Virtual Center Discovery。单击最新导入的云池。理论上您不需要返回 Virtual Center Discovery,但是在这里是需要返回的,因为您在运行 Virtual Center Discovery 之后才在 VMware 中创建 Second-cluster。Virtual Center Discovery 的完成速度取决于刀片数目。
  5. 当 Virtual Center Discovery 成功执行时,要开始配置 Image Repository Host。
    1. 将它设置为 cn2.private.cloud.com。
    2. 指定 File Repository Name VMwareFileRepository101(例如,/opt/IBM/CB/TSAMDefinitions/101_Pool_DCM_objects.xml 使用的值。)
    3. 指定 Cluster Name Second-cluster。所指定的集群不能与其他资源池关联。
    4. 指定 Saved Image Repository clone_backup_disk
    5. 单击 Validate and Enable Cloud Pool 按钮,启用新的池。
  6. 添加第二个集群。第二个集群需要手动添加到最新创建的资源池中。在 Tivoli Service Automation Manager 管理用户界面中:
    1. 单击 Go To > Administration > Provisioning > Resource Pools
    2. 选择 ESX Cloud Pool 101(它是在导入 101_Pool_DCM_objects.xml 时创建的)。
    3. 单击 Select Action,然后选择 Add Computer
    4. 选择 Second-cluster,单击它旁边的复选框。

这时,您已经可以在不需要 ITM 代理的情况下开始资源分配。如果您对这个特性不感兴趣,您可以跳过第 5 步。

第 5 步:配置 Tivoli Service Automation Manager 进行 IBM Tivoli Monitoring 代理部署

对于默认定义的云池(VMware System x),您可以通过选择 Create Project 窗格的 Monitoring Agent to be Installed 复选框就能够在分配时安装 IBM Tivoli Monitoring 代理。

这个方法不适用于第二个云池(VMware System x 101)。这是因为与这个复选框关联的 IBM Tivoli Monitoring 代理的软件定义是配置为使用 10.100.*.* 网络(见 CloudFileRepository 和 WindowsCloudFileRepository 的配置)。

在创建一个项目时,如果您选择了 VMware System x 101,并选中这个复选框来安装 Monitoring Agent,那么分配过程就会开始,但是它会失败,因为所分配的虚拟镜像的 eth0 配置为 10.101.*.*,而它试图使用 10.100.*.* IP 地址来挂载 /repository。由于您试图实现这两个池的网络隔离(例如,所使用的子网掩码为 255.255.0.0),挂载操作无法确定导致整个分配过程失败的原因。

为了在分配时为第二个云池安装 IBM Tivoli Monitoring 代理,您需要将它定义为额外软件。不要使用 Monitoring Agent to be Installed 复选框;而要使用 Create Project 窗格的 Available Software list。

为了使用这个功能,我们要创建一个代表这个 IBM Tivoli Monitoring 代理新配置的软件模块。

一个针对 icb-tivsam 的模板位于 /opt/IBM/SC/script 上。将它复制到 /opt/IBM/CB/TSAMDefinitions/101_itm.xml,并进行相应的修改:

  1. 将所有出现的 IBM Tivoli Monitoring Agent 修改为您很容易将它识别为与 101 网络关联的名称,例如 IBM Tivoli Monitoring Agent 101。
  2. 将云文件知识库命名为 CloudFileRepository 101,指定适当的版本(6.2.2)和适当的文件知识库路径(itmAgent622)。在参数 host 中,指定 TEMS 的额外 IP 地址值(在我们的例子中是 10.101.0.7)。

    这个文件的内容类似于 这个示例文件

  3. 导入 101_itm.xml 文件。以用户 tioadmin 的身份执行:
    /opt/IBM/tivoli/tm/tools/xmlimport.sh
    file:///opt/IBM/CB/TSAMDefinition/101_itm.xml

    这个安装模板支持在 Linux 上部署 IBM Tivoli Monitoring 代理。对于其他平台,请参考 TSAM 信息中心
  4. 最终,将 IBM Tivoli Monitoring 代理附加到软件集中:
    1. 登录到 Tivoli Service Automation User Interface。
    2. 单击 Go To > IT infrastructure > Software Catalog > Software Stacks
    3. 选择 EsxPoolStack101,然后从 Select Action 下拉列表选择 Add Stack Entry
    4. 在 Software Definition 编辑域中,输入 IBM Tivoli Monitoring Agent 101
    5. 单击 Submit
    6. 记住要保存修改。

第 6 步:验证

验证该配置的最佳途径是创建一个新资源池项目。

要考虑给每一个资源池指定自己的注册图像模板集。如果一个图像模板已经注册给某个资源池,那么您就不能将它注册给其他资源池。如果确实希望使用同一个模板,那么您需要先复制它,然后运行 Virtual Center Discovery,这样您就可以将它注册给新资源池。

为了简单起见,假设您已经在 VMware 中创建了图像模板,并且它并没有关联到任何的资源池(在这个例子中,它还没注册到 VMware System x)。我们可以在运行 Image Template Discovery 之后将这个模板添加到虚拟机管理程序上,需要再次运行:

  1. 在 Tivoli Service Automation Manager 的管理界面上,单击 Go To > Service Automation > Cloud Pool Administration
  2. 过滤以查找到 VMware System x 101,然后单击该条目。
  3. 单击 Image Discovery 按钮启动该图像模板发现过程。

在这个过程成功执行后,您就可以转到 https://icb-nfs/SimpleSRM,然后注册新发现的模板。记住要选择 VMware System x 101 作为资源池。

在注册模板之后,您就可以创建一个项目。记住要选择 VMware System x 101 作为资源池,但不要选中 Monitoring Agent to be Installed 复选框。而要从 Available Software 选择 ITM Monitoring Agent 101

在成功完成服务请求之后,您就可以登录到所分配的 VM 上,检查网络配置。您还可以看到 IBM Tivoli Monitoring 用户界面会显示另一个系统(http://icb-itm:1920)。

说明:在登录到 https://icb-nfs/SimpleSRM 之后,如果您选择了所分配的服务器,并寻找监控信息,那么它们是不可用的。因为它们只支持 VMware System x 分配的虚拟镜像。

在这里,最后需要检查的是所分配的虚拟镜像是否不能访问任务属于 VMware System x 池的虚拟镜像。


结束语

学习完本文之后,您应该了解了 CloudBurst 2.1 的内部工作原理,也应该了解了用于实现多网络支持功能的技术和模板。


下载

描述名字大小
本文的示例代码101.tar20KB

参考资料

学习

获得产品和技术

  • 查看 IBM 云提供的 IBM Smart Business Development and Test 的 产品镜像

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, Tivoli
ArticleID=742666
ArticleTitle=在 CloudBurst 2.1 中配置多个网络
publish-date=07252011