IBM Systems Director VMControl是一种多平台,多管理程序虚拟化管理解决方案,是进入云计算领域的主力军。 它是IBM Systems Director(一套免费的平台管理工具)的高级经理。
基于IBM Systems Director出色的系统管理功能,VMControl提供了许多功能来帮助管理云计算管理的复杂性。 这些功能包括:
- 虚拟机生命周期管理。
- 软件图像生命周期和图像库管理。
- 用于动态收集服务器资源的系统池功能。
本文中的信息以及其中描述的命令行界面特定于IBM Systems Director VMControl 2.3版。
在向您展示如何使用脚本自动化管理功能之前,让我们仔细看一下VMControl。
VMControl版本
VMControl是IBM Systems Director高级经理。 它提供了三个级别的虚拟化功能,以版本表示:
- IBM Systems Director VMControl Express Edition支持系统级虚拟化,包括虚拟服务器生命周期功能和虚拟服务器场支持。 与Systems Director一样,Express Edition也可以免费下载和使用。
- 标准版包括Express Edition中的所有内容,并增加了图像生命周期和图像库管理功能。 VMControl Standard Edition可以免费试用60天。
- Enterprise Edition包括VMControl Express和Standard Edition中的所有内容,并增加了系统池生命周期支持。 系统池是计算资源的动态集合,用于支持同时运行的多个虚拟映像。 VMControl Enterprise Edition可以免费试用60天。
VMControl命令行界面
VMControl命令行界面(CLI)提供了一种与VMControl进行交互的方法,而没有图形用户界面的开销。 可以从命令提示符以交互方式运行VMControl CLI命令以执行简单的任务,但是将它们组合成脚本后,才能发现它们的真正功能。
在版本部分中指定的任何功能都可以通过VMControl CLI来实现。 执行简单任务非常简单,但是您仍会发现VMControl CLI是一个丰富而强大的界面,可用于执行最高级的任务。
我将指导您完成简单的VMControl CLI命令以及一些更高级的技术,并介绍每个VMControl版本中可用的不同命令。 我将向您展示常用方法以及一些如何以有用的方式组合这些命令的示例。
到本文结尾,您应该对使用VMControl CLI感到更自在,并且应该能够开始编写自己的脚本。
系统管理命令行界面(smcli)
VMControl CLI命令在名为smcli的IBM Systems Director系统管理命令行界面中运行 。 VMControl CLI的语法类似于大多数CLI的语法,如果您尝试运行Windows®批处理脚本或Linux®Shell脚本,则会看到以下格式:
smcli <commandName> [options]
可以通过运行smcli lsbundle
来检索所有可用的CLI命令的列表。 输出将包含命令列表,这些命令分为称为名称空间的组。 lsbundle
命令的输出格式为:
<namespace>/<commandName>
每个命令都有一组选项,可以指定这些选项以操纵命令的动作。 要查看包含所有可能选项的命令说明,请使用-h
或--help
选项: smcli <commandName> --help
。
对于SMCLI接口的详细信息,请参阅相关主题 。
VMControl CLI的详细信息
VMControl CLI分为两个名称空间。 VMControl的Express版本CLI命令在VSM命名空间分组而VMControl的标准版和企业版的CLI命令在imagemgrcli命名空间分组。
可以通过使用-h
或--help
选项运行命令来检索有关CLI命令的信息。 例如, smcli lsva -h
返回lsva
命令的语法,而smcli lsva --help
返回附加的帮助信息,包括示例。
下一节列出了VMControl CLI中可用的所有命令,包括每个命令的简短描述。 此处描述的命令在发布时是正确的,但请访问URL以获取任何后续更改。
Express Edition命令
Express Edition命令如下:
名称 | 描述 |
---|---|
chvrtauth | 通过设置或撤消授权凭证来授权一个或多个平台管理器或主机系统。 |
chvrthost | 更改一个或多个虚拟服务器主机的属性。 |
chfarm | 在虚拟场中添加主机或从虚拟场中删除主机,或更改虚拟场的属性。 |
chvs | 更改一台或多台虚拟服务器的属性。 |
lsvrtcap | 列出虚拟服务器或主机系统的虚拟化功能。 |
lsvrtsys | 列出虚拟系统的名称和ID。 |
mkfarm | 创建一个虚拟服务器场。 |
mkrelocatetask | 创建一个任务来重定位(或迁移)虚拟服务器。 |
mkvs | 创建一个虚拟服务器。 |
rmvs | 删除虚拟服务器。 |
标准版命令
Standard和Enterprise命令如下(带*号的命令在目标是主机时属于Standard Edition许可,在目标是系统池时属于Enterprise Edition许可):
名称 | 描述 |
---|---|
captureva | 捕获虚拟设备。 |
chworkload | 更改工作负载的属性。 |
deployva* | 部署虚拟设备。 |
importva | 将虚拟设备导入VMControl Standard Edition。 |
lscapsrv | 列出可以捕获为虚拟设备的服务器。 |
lscustomization* | 列出可以在运行captureva , deployva 或importva 命令时为虚拟设备定制的属性。 |
lsdeploytargets | 列出可以在其上部署虚拟设备工作负载的目标服务器或主机。 |
lsrepos | 列出存储库。 |
lsva | 列出虚拟设备。 |
lsvaforreplace | 列出可以替换指定虚拟服务器上版本的虚拟设备。 |
lsvsforreplace | 列出所有可更新为指定虚拟设备的候选虚拟服务器。 |
lsworkloads | 显示工作量。 |
mkworkload | 创建工作负载。 |
replaceversion | 在一个或多个虚拟服务器上部署不同版本的虚拟设备。 |
rmva | 永久删除虚拟设备。 |
rmworkload | 删除工作负载。 |
startworkload | 启动工作负载。 |
stopworkload | 停止工作量。 |
企业版命令
名称 | 描述 |
---|---|
addhosttopool | 将主机添加到系统池。 |
chsyspool | 更新系统池。 |
entermaintenancemode | 进入主机的维护模式。 |
exitmaintenancemode | 退出主机的维护模式。 |
lscandidatehost | 列出可以添加到服务器系统池中的候选主机。 |
lscandidatestorage | 列出系统池的候选存储。 |
lssyspool | 列出服务器系统池。 |
mksyspool | 创建一个新的服务器系统池。 |
rmhostfrompool | 从服务器系统池中删除主机。 |
rmsyspool | 删除系统池。 |
vmcrelocate | 生成,显示并有选择地执行Placement Services计划。 |
定制参数
有效使用VMControl CLI的较为复杂的部分之一是学习如何正确使用自定义参数。 定制参数(也称为功能)具有各种形状和大小,从简单的布尔值到更复杂的表。 其中大多数将为您提供所需值的最小和最大边界。
在VMControl中,使用lsvrtcap
或lscustomization
命令显示自定义参数。 这些命令要求您指定要执行的操作的类型以及要执行该操作的目标。 例如,要收集用于在特定主机上创建虚拟服务器的自定义参数,需要指定以下命令:
smcli lsvrtcap -c mkvs -n 0x1234
0x1234是要用于创建新的虚拟服务器的主机的ID。
这些自定义参数需要由您或您的脚本进行更新,并传递回受支持的命令,使用它们可以将特定于系统的自定义添加到受支持的VMcontrol CLI。
使用-A
参数将定制参数返回给受支持的命令。 它们之间应以逗号分隔,并用引号引起来。 这是一些常见的自定义参数类型的示例。
该第一定制参数是text
参数。 在此示例中,您的系统名称最多可包含31个字符。
name Value: null
Min: 1
Max: 31
Description: The name of the virtual server to be created.
第二个自定义参数是long
参数。 它的最小值为1,最大值为4,并且以1的增量线性增加。
cpushared Value: 1
Min: 1
Max: 4
Increment: 1
IncrementType: LINEAR
Description: The desired number of dedicated or virtual
processors to be assigned to the virtual
server.
第三个定制参数是selection list
参数。 为有效选项gos
参数是IBM Power - AIXLINUX
和IBM Power - i5/OS
。
gos Value: IBM Power - AIXLINUX
Options: IBM Power - AIXLINUX,
IBM Power - i5/OS
Description: The type of operating system (aixlinux or
IBM i) that can be installed on the virtual
server.
最终的定制参数是一个table
参数。 在这种情况下,只有一行,但是因为最小值是一,所以必须选择它。
diskphysicalvolumes Min: 1
Max: 1
Changeable Columns:
Column Name: CLI Attribute
Physical Volumes physvolname
Storage Server physvolstgsvr
Options:
Key, Physical Volumes*, Size (MB), Location, Storage Server*
[hdisk1:sys1] hdisk1 4258 hdb-1254 icb-cpt1v1
假设这四个定制参数是创建虚拟服务器所需的四个唯一定制参数,则mkvs
命令如下所示:
smcli mkvs -n 0x1234 -A "name=vs_1, cpushared=2, gos=IBM Power - AIXLINUX, diskphysicalvolumes=+hdisk:sys1"
注意diskphysicalvolumes
参数中的hdisk:sys1
diskphysicalvolumes
之前的+
。 这是直接选择整个行的快捷方式。
有关表参数的更多信息,可使用--help
选项和lsvrtcap
或lscustomization
命令找到;有关详细信息,请参见表参数。 或者你可以检查出lsvrtcap
指挥信息中心相关主题 。
虚拟设备的生命周期
既然您已经掌握了命令并对定制参数有了基本的了解,就该学习如何利用IBM Systems Director VMControl CLI了。 在其余各节中,我将详细介绍VMControl最强大的组件- 虚拟设备生命周期管理 。 虚拟设备:
- 是由IBM Systems Director VMControl存储的易于部署的操作系统和软件包。
- 包含完整操作系统的映像。
- 可以包含软件应用程序和中间件。
- 包含描述映像所需的虚拟服务器的元数据。
让我们更深入地研究生命周期管理。
图像库
虚拟设备存储在能够通过IBM Systems Director的控制台被发现的图像资料库(见相关主题创建和发现映像存储库的更多)。
发现映像存储库后,可以使用lsrepos
命令在CLI中对其进行查看。 lsrepos
带参数运行lsrepos
生成所有虚拟设备的列表。 添加-o
选项将包括每个存储库的OID(对象标识符):
# smcli lsrepos -o
myImageRepository, 3129
要检索有关此存储库的更多信息,请使用-l
选项:
# smcli lsrepos -l
myImageRepository
ClassName:com.ibm.usmi.datamodel.software.ImageRepository
UniqueId:76f1e7be-d6bf-4aba-b7d4-40b04c3d2577
ImageRepositoryType:1
ChangedDate:2010-08-04T00:17:27-05:00
SourceTokens:{ }
DisplayName: myImageRepository
CreatedDate:2010-07-08T15:31:02-05:00
ImagingTool:DISCOVERY_NIM_REPOSITORY
OID:3129
Guid:2F0ECE8196CA36D9A0314BFE6C7CD082
ObjectType:ImageRepository
请注意, -o
和-l
命令行选项是所有CLI命令的“列表”样式所共有的。
虚拟设备创建
虚拟设备由VMControl存储在也由VMControl管理的存储库中。 它们是通过两种方式创建的,即import
或capture
。
进口
导入从现有的虚拟设备包中创建一个虚拟设备。 VMControl可以导入使用分布式管理任务组(DMTF)开放式虚拟化格式(OVF)的虚拟设备软件包,这是虚拟设备的独立于平台的开放式包装和分发格式( 相关主题 )。
准备好要导入的有效映像后,请使用importva
CLI命令导入它。 以下命令将Ot为3129的/tmp/myImage.ova导入到存储库中,并设置其名称和描述:
smcli importva -v -F "/tmp/myImage.ova" -r 3129 -n "myImportImage" -D "My First Imported Image"
捕获
Capture从以下来源之一创建虚拟设备:
- 虚拟服务器
- 工作量
- mksysb映像
- mksysb资源
- lpp_source资源
- lpp_source目录
lscapsrv
命令可用于列出可捕获的虚拟服务器和工作负载。 使用-T
选项可以过滤出虚拟服务器或工作负载:
# smcli lscapsrv -o
myCapturableVirtualServer, 2950
要在上一个代码块中捕获虚拟服务器:
smcli captureva -v -s 2950 -r 3129 -n "myCaptureImage" -D "My First Captured Image"
有关拍摄的mksysb或lpp_source中资源的更多信息,请参阅相关主题 。
如果您在具有多种类型的图像存储库的环境中工作,则可能有必要在运行importva
或captureva
之前使用lsrepos
命令,以验证存储库对要创建的图像有效。 导入:
smcli lscustomization -a import -F /tmp/myImage.ova -r 3129
要捕获,请运行以下命令:
smcli lscustomization -a capture -s 2950 -r 3129
除了验证存储库之外,此命令还返回定制选项,可以使用-A
参数在导入/捕获中传递这些定制选项。
部署虚拟设备
现在您已经创建了虚拟设备,是时候部署它了。 在VMControl中部署虚拟设备有两种方法:
- 部署到现有的虚拟服务器或
- 部署到新的虚拟服务器。
在此示例中,我们将使用部署到新的虚拟服务器。
选择部署到新服务器时,将选择主机或系统池作为目标。 部署过程包括创建新的虚拟服务器,然后在新创建的虚拟服务器上安装虚拟设备映像。 部署到系统池有一些特殊规则,我将在后面讨论。
选择部署到现有虚拟服务器时,将选择一个空的虚拟服务器作为目标。 已在运行部署之前分配了此虚拟服务器。 在这种情况下,部署过程仅涉及在现有虚拟服务器上安装虚拟设备映像。
部署虚拟设备时,您需要做的第一件事就是选择要部署的虚拟设备。 可以使用lsva
命令完成此操作:
# smcli lsva -o
AIX 6 for Power version 6.1 TL 4, 16239
AIX 6 for Power version 6.1 TL 5, 16344
下一步是使用lsdeploytargets
命令找到此虚拟设备部署的目标:
# smcli lsdeploytargets -a deploy_new -V 16344 -o
PowerHost1, 6760
PowerHost2, 5019
TestSystemPool1, 8042
现在是时候使用lscustomization
命令查看用于将虚拟设备16344部署到主机6760的自定义选项了:
# smcli lscustomization -a deploy_new -V 16344 -s 6760
该命令返回的自定义参数比应在此处复制的参数多; 查看自定义参数部分 。 有关必需参数的更多信息,请参阅参考资料 。
最后,检查完自定义参数后,就该部署虚拟设备了。
# deployva -a deploy_new -V 16344 -s 6760 -A "cpushminu=0.1,cpushmaxu=1,cpushu=1,
cpushmode=UNCAP,cpushmin=1,cpushmax=1,cpushared=1,memmin=2048,memmax=2048,
memsize=2048,virtualnetworks[Network1]=hostVnet:ETHERNET0/2,
product.AIX1.com.ibm.ovf.vim.2.system.hostname=myFirstDeployedHost,
product.AIX1.com.ibm.ovf.vim.2.system.domainname=ibm.com,product.AIX1.com.ibm.ovf.vim.2.
networkport.6.gateway=10.10.10.17,product.AIX1.com.ibm.ovf.vim.2.networkport.6.
netmask=255.255.255.0,product.AIX1.com.ibm.ovf.vim.2.networkport.6.
domainname=ibm.com,product.AIX1.com.ibm.ovf.vim.2.networkport.6.ip=
10.10.10.1,product.AIX1.com.ibm.ovf.vim.2.networkport.6.dns1.ip=10.10.1.18"
分解-A
参数可以更好地查看所提供的参数:
- CPU参数:
cpushminu=0.1, cpushmaxu=1, cpushu=1, cpushmode=UNCAP
cpushmin=1, cpushmax=1, cpushared=1
- 内存参数:
memmin=2048, memmax=2048, memsize=2048
- 虚拟服务器参数:
product.AIX1.com.ibm.ovf.vim.2.system.hostname=myFirstDeployedVS
product.AIX1.com.ibm.ovf.vim.2.system.domainname=ibm.com
- 网络参数:
virtualnetworks[Network1]=hostVnet:ETHERNET0/2
product.AIX1.com.ibm.ovf.vim.2.networkport.6.gateway=10.10.10.17
product.AIX1.com.ibm.ovf.vim.2.networkport.6.netmask=255.255.255.0
product.AIX1.com.ibm.ovf.vim.2.networkport.6.domainname=ibm.com
product.AIX1.com.ibm.ovf.vim.2.networkport.6.ip=10.10.10.1
product.AIX1.com.ibm.ovf.vim.2.networkport.6.dns1.ip=10.10.1.18
该命令的结果是创建新的工作负载和新的虚拟服务器:
# smcli lsworkloads
AIX 6 for Power version 6.1 TL 5
# smcli lsvrtsys -n myFirstDeployedVS
myFirstDeployedVS
将虚拟设备部署到系统池时,需要deploymentplanid
自定义参数,并且该参数必须与执行lscustomization
命令返回的内容匹配。
删除虚拟设备
当图像库太大时,该删除虚拟设备了。 可以使用rmva
命令完成此操作:
# smcli rmva -V 16344
结论
我希望对VMControl命令行界面功能的简短介绍为您提供了足够的基础知识,使您能够舒适地运行VMControl CLI命令,并使用该知识将命令组合到脚本中以提高生产率并利用IBM Systems Director的功能VMControl。
翻译自: https://www.ibm.com/developerworks/cloud/library/cl-scripting/index.html