2009年12月30日 16:00 来源:ChinaUnix文档频道 作者:Send_linux 编辑:周荣茂
查 后盾, 软件工程师, IBM
刘 晓欣, 软件工程师, IBM
屈 亮, 软件工程师, IBM
2009 年 12 月 31 日
IBM Systems Director VMControl 是 IBM Systems Director 中一套创新的虚拟化管理方案,它从以往的以硬件为中心的虚拟化管理策略过渡到以用户的工作负载为中心的虚拟化管理策略。本文将首先介绍 VMControl 的特点、功能和设计原理,随后以一个实例介绍在 AIX 环境下如何利用 VMControl 来实现快速灵活部署 AIX 系统及应用。最后小结 VMControl 能给用户带来的价值及其未来的发展方向。
前言
随着用户对 IT 基础设施的灵活性、可扩展性要求不断增加,基于虚拟化技术的动态 IT 基础架构越来越得到用户的欢迎与认可。但是如何充分利用虚拟化技术的优势,灵活快速在动态基础设施里部署新的系统以及应用服务,最终给用户带来实际的价值,一直是虚拟化管理领域里的一个重要课题。
IBM Systems Director VMControl 是 IBM Systems Director 中一套创新的虚拟化管理方案,它从以往的以硬件为中心的虚拟化管理策略过渡到以用户的工作负载(workload)为中心的虚拟化管理策略。所谓工作负载是指操作系统和其上的应用程序的组合.基于 VMControl 提供的功能,用户可以快速灵活地部署新的系统及其应用,便于调整和监控已部署的应用,有利于提高数据中心硬件基础设施的利用率。
本文将首先介绍 VMControl 的特点、功能和设计原理,随后以一个实例介绍在 AIX 环境下如何利用 VMControl 来实现快速灵活部署 AIX 系统及应用。最后小结 VMControl 能给用户带来的价值及其未来的发展方向。




以工作负载为中心的虚拟化管理理念
IBM Systems Director VMControl 创新地提出了一套以工作负载为中心的虚拟化管理策略。传统的虚拟化管理偏重于对虚拟化技术本身的管理,我们称之为以硬件为中心的虚拟化管理,它更加注重虚拟化技术的细节,比如硬件的 hypervisor 管理,如何创建逻辑分区,如何为虚拟服务器分配存储与网络等资源,如何使用和监控逻辑分区等。以 IBM 的 Power 系统为例,硬件管理控制台(Hardware Management Console)和集成虚拟化管理器(Integrated Virtualization Manager)就是用来管理 PowerVM 虚拟化技术细节的工具。它要求使用者(系统管理员)在使用之前了解各种虚拟化技术的知识,这无疑增加了管理的复杂性。而以工作负载为中心的虚拟化管理颠覆了传统的管理思路,它以用户实际工作负载为对象提供管理功能(例如,抓取工作负载,重新部署工作负载等),尽量对最终用户屏蔽后端的虚拟化技术细节,简化了用户操作步骤以及对虚拟化知识的储备需求,提高数据中心应用部署和管理得效率。
为了更清晰的描述这种管理思路的转变给用户带来的价值,下面将通过举例来阐述。假设用户需要在一台 IBM Power 570 服务器上创建一个安装了 DB2 开发环境的 AIX 逻辑分区。下表显示了基于以硬件为中心和以工作负载为中心两种思路所需要的操作步骤。
表 1.以硬件为中心和以工作负载为中心架构的比较以硬件为中心的虚拟化管理(如图 1 所示) 以工作负载为中心的虚拟化管理(如图 2 所示)
通过 HMC 在 570 的服务器上安装、配置 VIOS 逻辑分区用于 I/O 设备共享。
通过 HMC 创建一个新的逻辑分区用于安装 DB2 开发环境。为该分区分配合适的处理器、内存和 I/O 资源。
使用存储管理工具为该分区分配合适的存储资源。
在该分区上创建 AIX 操作系统,并用操作系统相关工具完成相应配置。
在该操作系统上安装 DB2 软件,并完成相应配置。
用 DB2 的相关工具完成 DB2 开发环境的配置。
通过 HMC 在 570 的服务器上安装、配置 VIOS 逻辑分区用于 I/O 设备共享。
导入已经安装、配置好 DB2 的 AIX 虚拟映像。
直接部署这个虚拟映像到 570 服务器上。
图 1. 以硬件为中心虚拟化管理
图 1 展示了传统以硬件为中心的虚拟化管理环境中涉及的各种组件之间的相互关系。 这些组件都需要参与部署应用服务的任务。
图 2. 以工作负载为中心的虚拟化管理
图 2 展示了以工作负载为中心的虚拟化管理环境,显然,该图简化了部署应用服务所涉及的组件和部署的流程。
由上面的对比很容易得出如下结论:
应用环境的部署效率大大提高,以往需要几天才能完成的部署,现在缩短为几个小时。
用户需要掌握的工具和虚拟化相关知识大大减少,只需从 VMControl 的界面中选择合适的虚拟映像,启动部署任务即可。
管理过程的操作对象“工作负载”更贴近客户的实际业务。




VMControl 介绍
VMControl 基本特点和功能
IBM Systems Director VMControl 是了一个基于虚拟化技术、可扩展性强的跨平台系统管理解决方案。在介绍它的功能之前,首先介绍一下几个基本概念:
a) 工作负载,是指包含了操作系统和其上的应用程序集合的存储映像。
b) 虚拟服务器,是指已经分配了虚拟资源的工作负载,是一个已经实例化的运行系统。
c) 虚拟设备,虽然具有与虚拟服务器相似的定义,却是一个抽象的还未具化的系统。有点类似进程与程序的关系。它是 VMControl 的核心概念,包含工作负载以及描述虚拟服务器的元数据,如图 3 所示。其中,元数据描述了:
- 工作负载所需的系统资源:如处理器个数、CPU 模式(独占还是共享)、内存大小、I/O 设备和网络设备等;
- 工作负载的性能指标、可靠性指标、安全性方面的描述;
- 操作系统的配置参数,如 IP 地址;
- 应用软件的配置参数等;
图 3. 以硬件为中心虚拟化管理
d) 开放虚拟机格式 OVF(Open Virtual Machine Format)提供了对虚拟设备打包和发布的标准化格式。现阶段 VMControl 提供了基于 OVF 的虚拟设备的导入、捕捉和部署等功能。
VMControl 能够完成以下任务:
a) 发现和导入导出虚拟设备
- 发现网络上位于各个不同平台上、异构的映像存储库,并统一地组织起来
- 利用映像存储库进行虚拟设备存储和组织,从存储库中导入和导出虚拟设备(见图 4)。
图 4. 从映像存储库导入、导出虚拟设备
b) 捕捉虚拟服务器
VMControl 可以把虚拟服务器上的操作系统和应用捕捉成虚拟设备,下面结合图 5 和图 6 加以详细说明。
图 5. 捕捉虚拟服务器之前
图 5 给我们展示了捕捉之前的系统环境,其中物理机器上有两个虚拟服务器,虚拟服务器 2 是将被捕捉的对象,meta-data2 是相应的元数据描述,其操作系统和应用位于物理机器的磁盘里。另外映像库(Image Library)是用来存储虚拟设备的存储库。
图 6. 捕捉虚拟服务器之前
从图 6 中可以看到,VMControl 捕捉虚拟服务器 2 之后,其操作系统、上层的应用软件以及元数据作为一个虚拟设备已经存储在映像库中,而且虚拟服务器 2 没有受到影响且保持原状。
c) 部署虚拟设备
VMControl 可以虚拟设备部署到已有的虚拟服务器或者新的虚拟服务器,下面结合图 7、图 8 和图 9 加以详细说明。
图 7. 部署映像存储库中的虚拟设备之前
图 7 给我们展示了部署之前的系统环境,其中物理机器上只有一个虚拟服务器 1,当前拥有的处理器、内存和 IO 设备等物理资源的数量(均为 4),以及物理磁盘里只有虚拟服务器 1 的操作系统和应用软件。而映像库存储着若干映像,其中就包括准备部署成虚拟服务器 2 的虚拟设备。
图 8. 创建虚拟服务器以及分配资源
从图 8 中可以看到,VMControl 根据映像库中的虚拟设备的 meta-data2 的定义,创建了新的虚拟服务器 2 并分配物理资源(至此,处理器、内存和 IO 设备的数量均减少为 3)。
图 9. 完成全部部署工作
在图 9 中,VMcontrol 把虚拟设备的工作负载(操作系统以及应用软件)复制到物理机器的磁盘中并使新创建的虚拟服务器 2 能够访问该磁盘,至此,虚拟服务器 2 可以从该磁盘中引导并加载运行工作负载。经过上面所述的步骤,一个新的虚拟服务器就创建完成并运行起来了。
VMControl 框架设计原理
VMControl 的实现是以 NIM 为基础对工作负载进行管理,其设计结构图如图 10 所示。
图 10. VMControl 的设计结构
VMControl 主要分为两大块,其中一块运行在 Director Server 中,另一块作为 CAS 代理的一部分,称为 VMControl 子代理,运行在 NIM Master 的环境中。安装了 VMControl 子代理的 NIM Master 就成为映像存储库并用来管理和组织被捕捉映像。在 Director 服务器端得 VMControl,与 NIM Master 上运行的 VMControl 子代理通信,后者基于 NIM 提供的功能,完成导入、导出、捕捉、部署等映像操作。以前,如果用户要远程安装系统,往往需要直接面对复杂的 NIM 命令,需要手动定义 NIM 对象以及执行 bos_inst 操作等。运用 VMControl 提供的简单易用的 Web 界面或者命令,这些工作将变得简单。VMControl 封装了这些繁琐的手动操作过程,将所有的底层具体步骤和细节对用户透明化。VMControl CAS 子代理能自动化的定义 NIM 对象,用户只需通过 VMControl 的方式来启动部署操作就可以了,这极大的简化和方便了用户的操作,同时也避免了可能的错误。




实例解析应用 VMControl 快速部署 AIX 系统应用
本节将通过一个具体的例子演示 VMControl 在实际生产环境的应用,主要演示 VMControl 的两个最常用的功能,捕捉虚拟服务器和部署虚拟设备。关于部署 VMControl 2.1 的软硬件需求,请参见《在 PowerVM 环境中使用 IBM Systems Director VMControl V2.1 简化 AIX 映像管理》 章节:“准备和设置 VMControl”。图 11 为演示所用系统的拓扑图。
图 11. 演示环境拓扑图
其中:
discostu2 为 CEC: IBM 9408 M25 100AFA 的一个 AIX 分区,主机名为 discostu2.austin.ibm.com,操作系统版本为 AIX61F, 此机器将作为演示用的 Director Server,Director Server 的版本为 6.1.1.2,VMControl 的版本为 2.1,同时本机器还作为 NIM Master;
barney2 为 CEC: IBM 8203 E4A 0606C54 的一个 AIX 分区,主机名为 barney2.austin.ibm.com,同样安装了 AIX61F,同时,此机器上面安装了 DB2;
barney 为 CEC: IBM 8203 E4A 0606C54 的一个 VIOS 分区,此 CEC 上的其他 AIX LPAR 通过此 VIOS 共享 I/O。
um-hmc.austin.ibm.com 为 HMC,版本为 V7R3.4.0.2,上面提到的两个 CEC 都被此 HMC 管理。
搭建演示环境
1 .安装 VMControl
安装 Director 并升级到 6.1.1.2,具体过程略。我们将使用 CLI 的方式安装 VMControl。
获取 VMControl 安装包,解压后,将产生下述文件(文件夹):
Systems_Director_VMControl_2_1_AIX.sh,license,installer.properties
编辑 installer.properties, 修改后的内容如下:
INSTALLER_UI=silent
LICENSE_ACCEPTED=true
START_SERVER=true
运行 unset DISPLAY。
运行 sh Systems_Director_VMControl_2_1_AIX.sh – i silent 开始安装 VMControl。
安装完成后将在 /opt/ibm/director/ 创建 VMControlManager 目录。
如果用户因为某种原因,需要卸载 VMControl,只需要按下述步骤操作即可完成。
cd /opt/ibm/director/VMControlManager/uninstall
编辑 installer.properties,修改后的文件内容如下:
INSTALLER_UI=silent
START_SERVER=true
运行 /opt/ibm/director/VMControlManager/uninstall/Uninstall – i silent,将会完成卸载过程。
2. 安装 NIM Master 及 VMControl 子代理
关于 NIM Master 的安装与配置,请参阅相关文档。本文仅介绍 VMControl 子代理的安装,此处假设 Director CAS 已经升级到 6.1.1.1 或更高版本。
VMControl 子代理需要依赖下述软件包 dsm.core,openssh.base.client,openssh.license,openssh.base.server,openssl.base,openssl.license,所以安装 VMControl 子代理之前,需要确保已经安装了上述软件包,否则安装将失败。我们可以使用 lslpp 命令检查是否安装了依赖,示例如下:
# lslpp -l | grep dsm
dsm.core 6.1.3.1 COMMITTED Distributed Systems Management
dsm.core 6.1.3.1 COMMITTED Distributed Systems Management
我们可以通过 GUI 安装 VMControl 子代理,也可以通过 CLI 的方式安装,本文将采用 CLI 的方式。
在成功安装完 VMControl 之后,我们可以在 /opt/ibm/director/tpm/repository/CommonAgentSubagent_VMControl_NIM_2.1.0 / 目录下面发现 com.ibm.director.im.rf.nim.subagent.zip,这个 zip 即为 VMControl 子代理的安装包,将此 zip 包拷贝到目标机器,本文 Director 和 VMControl 子代理都使用的是 discostu2,我们将此 zip 包拷贝到 /home/zhahd 目录,然后运行命令:
/opt/ibm/director/agent/bin/lwiupdatemgr.sh -installFeatures
-featureId com.ibm.director.im.rf.nim.subagent -fromSite jar:file:/home/zhahd/com.ibm.director.im.rf.nim.subagent.zip\!/site.xml -toSite "file:/var/opt/tivoli/ep/runtime/agent/subagents/eclipse/"
待命令成功完成后,需要重启代理:
/opt/ibm/director/agent/runtime/agent/bin/endpoint.sh restart
然后对代理运行收集库存,此处即对 discostu2 收集库存,完成收集库存任务后,在 VMControl 的界面上将显示有一个存储库,目前 VMControl2.1 仅支持一个存储库。
3. 配置 db2
关于 DB2 安装配置的详细信息,请参阅相关文档。本文仅列出主要的步骤:
在 barney2 上面创建 DB2 实例所需要的用户和用户组并设置用户密码mkgroup id=999 db2iadm1
mkgroup id=998 db2fadm1
mkgroup id=997 dasadm1
mkuser id=1004 pgrp=db2iadm1 home=/home/db2inst1 db2inst1
mkuser id=1003 pgrp=db2fadm1 home=/home/db2fenc1 db2fenc1
mkuser id=1002 pgrp=dasadm1 home=/home/dasusr1 dasusr1
获取 DB2 9.1 安装包,解压并安装 DB2
gzip -d v9fp4_aix_ese.tar.gz
tar -xvf v9fp4_aix_ese.tar
cd ese/disk1
./db2_install -b /opt/IBM/db2/V9.1 -p ESE -n
在 barney2 上创建 DB2 实例
cd /opt/IBM/db2/V9.1/instance
./db2icrt -a SERVER -p 50000 -u db2fenc1 db2inst1
验证 DB2 可以使用,如清单 1 所示
清单 1. 验证DB2运行正常
# su - db2inst1
$ db2start
$ db2sampl
$ db2
db2 => connect to sample
Database Connection Information
Database server = DB2/AIX64 9.1.2
SQL authorization ID = DB2INST1
Local database alias = SAMPLE
db2 => select * from staff where dept=20
ID NAME DEPT JOB YEARS SALARY COMM
------ --------- ------ ----- ------ --------- ---------
10 Sanders 20 Mgr 7 98357.50 -
20 Pernal 20 Sales 8 78171.25 612.45
80 James 20 Clerk - 43504.60 128.20
190 Sneider 20 Clerk 8 34252.75 126.50
4 record(s) selected.
db2 =>
捕捉虚拟服务器
用户可以使用 Web 界面或命令行来捕捉虚拟服务器。使用 Web 界面的方式来捕捉一个虚拟服务器的过程非常简单,用户根据 VMControl 提供的向导,可以很容易完成相应的操作。本文将详细介绍命令行的用法。
捕捉命令的格式如下:
smcli captureva [-L language] [-v] -r repository -n name [-D description]
-s server_id [-A attribute_list]
重要的参数介绍如下:
-r:指定存储库的唯一的标识,我们可以使用 smcli lsrepos – o 命令获取当前所用的存储库的标识信息,我们在 discostu2.austin.ibm.com 上运行此命令,将得到如清单 2 所示输出,其中 22711,即为我们需要的唯一标识。
清单 2. 获取存储库的唯一标识# smcli lsrepos -o
discostu2.austin.ibm.com, 22711
discostu2.austin.ibm.com, 22711
-n:指定将要创建的虚拟设备的名称,用户可以指定自己期望的名称;
-D:给将要创建的虚拟设备添加详细的描述信息;
-s:被捕捉机器的唯一的标识,我们可以使用 smcli lsmeps 命令来获取相关信息,我们在 discostu2.austin.ibm.com 上运行此命令,将得到如清单 3 所示输出,我们要捕捉的机器为 barney2,19663 即为 barney2 的唯一标识。
清单 3. 获取被捕捉机器的唯一标识# smcli lsmeps
MEPs found: 39
MEP: barney2.austin.ibm.com (resource name: barney2.austin.ibm.com)
OID: 19663
GUID: 8AD3EB10B3923117AAD612A5EA59C57A
ResourceType OperatingSystem
MEP: IBM 8203 E4A 0606C54 (resource name: barney-fsp)
OID: 19639
GUID: 6BE21388EF24343B81C7C59B9CEA9CB5
ResourceType Server
-A:用于指定可定制属性的值,例如"cpushare=2.1,memsize=4096"。我们可以使用命令:smcli lscustomization -a capture -r repository -s server_id
来列出一个虚拟服务器的所有可以定制的属性。
本例我们使用的命令如下:
smcli captureva -s 19663 -r 22711 -n test_barney2 -D "Just for test"
命令运行成功后,虚拟设备将保存在 NIM Master 的 /export/nim/appliances 目录下,主要为两部分的内容:mksysb 文件以及相应的 OVF 文件。
部署到新的虚拟服务器
我们可以使用部署(deploy)功能来部署虚拟设备。其中“deploy to new”将虚拟设备部署到新的虚拟服务器上面,此时 VMControl 将通过 HMC 或 IVM 创建新的 LPAR 并通过 NIM 安装虚拟设备包含的操作系统及应用,创建 LPAR 时所需要的资源信息由 OVF 定义。“deploy to existing”将把虚拟设备部署到已有的虚拟服务器上面,此时原有 LPAR 上面的操作系统和应用将被虚拟设备包含的操作系统和应用覆盖,但原 LPAR 的资源分配如 CPU,内存等保持不变。
部署命令的格式如下:
smcli deployva -a {deploy_existing | deploy_new} -s host -V virtualAppliance
-A attribute_list
其中:
-a:指定操作的类型,可选的值为 deploy_existing 和 deploy_new,其中 deploy_existing 将把虚拟设备部署到已有的虚拟服务器,deploy_new 将把虚拟设备部署到新的虚拟服务器;
-s:如果操作类型为 deploy_new,则此处指定 CEC 的唯一的标识,如果操作类型为 deploy_existing,则此处指定目标虚拟服务器的唯一的标识。我们可以使用 smcli lsmeps 命令来获取相关信息,此处我们将要做的操作类型为 deploy_new,目标机器为 IBM 8203E4A 0606C54,我们在 discostu2.austin.ibm.com 上运行 smcli lsmeps 命令,将得到如清单 2 所示输出,其中 19639,即为我们需要的唯一标识。
-V:指定要部署的虚拟设备的唯一标识,我们可以使用 smcli lsva – o 来获得相关的信息,在 discostu2.austin.ibm.com 上运行此命令,将得到如清单 4 所示输出,其中 33044 即为我们需要的唯一标识。
清单 4. 获取待部署的虚拟设备的唯一标识# smcli lsva -o
barney2, 33044
-A:用于指定可定制属性的值,当操作为 deploy_existing 时,可以使用命令:
smcli lscustomization -a deploy_existing -V virtualAppliance -s server
来查看可定制属性。如果操作为 deploy_new,可以使用命令:
smcli lscustomization -a deploy_new -V virtualAppliance -s host
来查看可定制属性。清单 5 列出了本次演示操作所有可定制的属性(在命令输出基础上做了编辑):
清单 5. 获取部署操作的可定制属性# smcli lscustomization -a deploy_new -V 33044 -s 19639
……………………………………………………………………………………………………………………….
poolstorages
Min: 1
Max: 1
Options:
Key, Pool, Storage Server Path, Free Space (GB), Description
[datavg:VIOS barney] datavg VIOS barney 41.625 VIOS logical volume pool.
virtual servers using this pool can relocated
product.AIX1.com.ibm.ovf.vim.2.nim.6.nim.Resource.1
product.AIX1.com.ibm.ovf.vim.2.system.hostname
product.AIX1.com.ibm.ovf.vim.2.system.domainname
product.AIX1.com.ibm.ovf.vim.2.networkport.6.ip
product.AIX1.com.ibm.ovf.vim.2.networkport.6.hostname
product.AIX1.com.ibm.ovf.vim.2.networkport.6.gateway
product.AIX1.com.ibm.ovf.vim.2.networkport.6.netmask
product.AIX1.com.ibm.ovf.vim.2.networkport.6.dns1.ip
product.AIX1.com.ibm.ovf.vim.2.networkport.6.dns2.ip
product.AIX1.com.ibm.ovf.vim.2.networkport.6.domainname
我们可以设定主机名,IP 地址,域名,子网掩码,DNS 服务器等等属性,部署完成之后,目标机器相应的设置将使用我们提供的值。
本例我们使用的命令清单 6 所示:
清单 6. 部署命令# smcli deployva -V 33044 -s 19639 -a deploy_new
–A "virtualnetworks[Network1]=hostVnet:ETHERNET0/1,
poolstorages=datavg:VIOS barney ,
product.AIX1.com.ibm.ovf.vim.2.system.hostname=discostu3,
product.AIX1.com.ibm.ovf.vim.2.system.domainname=austin.ibm.com,
product.AIX1.com.ibm.ovf.vim.2.networkport.6.ip=9.3.78.150,
product.AIX1.com.ibm.ovf.vim.2.networkport.6.netmask=255.255.255.0,
product.AIX1.com.ibm.ovf.vim.2.networkport.6.gateway=9.3.78.1,
product.AIX1.com.ibm.ovf.vim.2.networkport.6.dns1.ip=9.3.66.2"
在此命令中我们指定了使用的存储为 VIOS barney 上面的 datavg,主机名为 discostu3,IP 地址为 9.3.78.150, 子网掩码为 255.255.255.0,网关为 9.3.78.1,DNS 为 9.3.66.2。
此命令运行成功后,一个新的虚拟服务器 discostu3 将创建成功,它的操作系统同 barney2,用户名 / 密码同 barney2,登录 discostu3 之后,我们尝试运行 DB2,将会遇到如下的错误信息。
# su - db2inst1
$ db2start
11/16/2009 03:22:58 0 0 SQL6048N A communication error occurred during START or STOP DATABASE MANAGER processing.
SQL1032N No start database manager command was issued. SQLSTATE=57019
这是因为 db2nodes.cfg 配置文件的内容有错误 :
$ cat /home/db2inst1/sqllib/db2nodes.cfg
0 barney2 0
虽然我们已经成功的将 DB2 部署到了 discotu3,但是 db2nodes.cfg 配置文件的主机名依然是 barney2,我们将此文件的内容手工修改成
0 discostu3 0
再次运行 db2start 将会提升我们输入正确的 license。
运行命令 db2licm -a db2ese_t.lic
后再次运行 db2start,将会成功的启动 DB2,如清单 7 所示:
清单 7. 成功部署后,DB2仍然运行正常(0) root @ discostu3: : /
# su - db2inst1
$ db2start
11/16/2009 21:11:24 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
$ connect to sample
ksh: connect: not found.
$ db2
db2 => connect to sample
Database Connection Information
Database server = DB2/AIX64 9.1.2
SQL authorization ID = DB2INST1
Local database alias = SAMPLE
db2 => select * from staff where dept=20
ID NAME DEPT JOB YEARS SALARY COMM
------ --------- ------ ----- ------ --------- ---------
10 Sanders 20 Mgr 7 98357.50 -
20 Pernal 20 Sales 8 78171.25 612.45
80 James 20 Clerk - 43504.60 128.20
190 Sneider 20 Clerk 8 34252.75 126.50
4 record(s) selected.
许多应用需要正确的配置才能启动或运行,例如本例的情况,我们需要修改相应的配置文件。我们除了可以在部署完成之后再手动的修改相应的配置信息之外,还可以通过定义 NIM 的自动化脚本资源来实现安装完成之后的自动化配置,从而达到部署的彻底自动化。定义 NIM 的自动化脚本资源需要在运行 VMControl 来部署虚拟设备之前完成,其步骤如下:
在 NIM Master 上面创建配置脚本,本例我们在 /export/nim/script/ 目录下创建脚本 ssstest.sh,其内容如清单 8 所示:
清单 8. 配置脚本
#!/bin/sh
mv /home/db2inst1/sqllib/db2nodes.cfg /home/db2inst1/sqllib/db2nodes.cfg_bak`
sed -e 's/barney2/discostu3/g' /home/db2inst1/sqllib/db2nodes.cfg_bak >
/home/db2inst1/sqllib/db2nodes.cfg
设置 ssstest.sh 的执行权限
chmod +x /export/nim/script/ssstest.sh
在 NIM Master 上面定义脚本资源并指向步骤 1 创建的脚本
nim -o define -t script -a location=/export/nim/script/ssstest.sh -a server=master ssstest_script
我们成功的创建 NIM 脚本资源后,就可以在部署虚拟设备时指定此 NIM 资源。如果我们使用图形化界面,我们可以在部署向导中发现“NIM-specific settings”选项,我们可以“在 NIM Resource or Resource Group”中输入我们刚才创建的脚本资源,如图 12 所示:
图 12. 在部署向导中添加脚本资源

如果我们使用命令行,则需要添加属性
product.AIX1.com.ibm.ovf.vim.2.nim.6.nim.Resource.1= ssstest_script




总结
IBM Systems Director VMControl 是 IBM 平台管理利器 IBM Systems Director 的一个高级插件,作为 IBM 倾力打造的综合的、跨平台虚拟化管理软件,其目的是简化用户虚拟化环境中工作负载管理,使用户快速实现各种虚拟化技术给其带来的价值,随需应变地部署其应用服务。事实上,VMControl 除了具有快速应用部署的特点外,还即将推出系统资源池管理等一系列功能,这些功能能为用户打造动态 IT 基础架构提供帮助,并为最终迈向云计算做好准备。