使用命令行实现服务器池的 Workload 管理和监控

前面我们提到,使用 VMControl,可以把多台或一台)被管理的 Power 服务器组合为服务器池,作为一个整体进行管理。

使用服务器池,在做虚拟机系统部署时,VMControl 将对服务器池中各台 Power 服务器的资源使用例如,Processor、内存、存储等等)情况进行分析,把虚拟机部署到适合的服务器上。

部署到服务器池的多台或者一台)虚拟机可以组合成 Workload,可以对 Workload 整体进行监控和管理,比方:

查看 Workload 及其虚拟机资源CPU 和内存)的使用情况;

对 Wokload 整体做生命周期的管理,比方说对 Workload 进行启动,重启,关机等,这些操作将会对 Workload 包含的虚拟机进行相应处理;

启动 Workload 的 resilience弹性)功能,在 Workload 所在的 Power 服务器发生硬件预测性故障时,自动把 Workload 动态静态)迁移到服务器池中可用的 Power 服务器。

对 Workload 进行通过捕获进行备份操作

下面将会使用命令行实现这些常见操作。

对管理的 Power 服务器创建服务器池

如果要创建服务器池,首先要用命令 lsvrtsys 查看当前被管理的 Power 服务器和相应的 OID 信息,以供后面使用。

  1. # smcli lsvrtsys -oN "Hosts"  
  2. pfm0094-8205-E6B-SNHV16020, 0x16ed  
  3. pfm1200-8202-E4B-SN100235P, 0x16eb  
  4. pfm9125-8231-E2B-SNJN00002, 0x16ec  

在虚拟化管理中,经常需要查看管理的 Power 服务器和虚拟机的属性信息,该命令提供了这样的功能。该命令行用法如下:

  1. smcli lsvrtsys  [-v] [-d symbol]   
  2.       [-o | -p] [-c {all | immediate}]   
  3.       [-A attribute_list [-s] | -l]   
  4.       {-f file_name | -w query | -i ip_address_list | -N group_list | [-n] system_list}  

其中常用的参数为:

  1. -i | --ipaddress  list   
  2. 根据给定的 IP 地址显示管理服务器或虚拟机的信息,可用逗号连接多个 IP 地址  
  3. -l | --long   
  4. 显示出所有虚拟系统属性  
  5. -n | --names  list   
  6. 根据给定的系统名显示该服务器或虚拟机的信息,可用逗号连接多个系统  
  7. -N | --groups  list   
  8. 根据给定的组名显示管理服务器或虚拟机的信息,可用逗号连接多个组  
  9. -o | --oid   
  10. 显示管理服务器或虚拟机的信息的 OIDObject ID)信息和其他信息   

改变不同的参数可以查询不同类型服务器或虚拟机的属性信息,例如使用 smcli lsvrtsys -oN "Virtual Servers"可以列出所有管理的虚拟机列表,并给出相应的 OID 信息。

对上面列出的服务器列表,如果计划使用前两台服务器创建服务器池,我们要用到这两台服务器后台共享的 SAN 存储系统,通过 lscandidatestorage 命令查询可用的 SAN 存储属性。

  1. # smcli lscandidatestorage -i 0x16ed  
  2.  Storage Name:Storwize V7000-2076-SVS061 - IBM Storwize v7000 -   
  3.  IBM/v7000_IBM_High_END_XIV_Gen3_Pool   
  4.  Storage ID:9210  
  5.  Type: {0}storagecontainer  

上面命令 -i 参数后需要跟所查的 Power 服务器 OID 值,从输出结果来看,两个服务器有共同的 SAN 存储 IBM Storwize v7000- IBM/v7000_IBM_High_END_XIV_Gen3_Pool, 记录 Stoage ID值9210),我们将选用这个 SAN 存储作为服务器池的后台存储。

然后,使用以下 mksyspool 命令,创建名字为 lyc_p7_srv 的服务器池,

  1. # smcli mksyspool -v -i 0x16eb,0x16ed -n lyc_p7_srv -O false -S 9210 -R   
  2. Tue Jan 10 01:23:12 CST 2012  mksyspool Operation started.   
  3. Checking licence.   
  4. Attempting to set server system pool name=lyc_p7_srv   
  5. Add host to list on which operation will perform:5867   
  6. Add host to list on which operation will perform:5869   
  7. Storage ID   
  8. Attempt to check for compatible storage containers.   
  9. Storage Name : Storwize V7000-2076-SVS061 -   
  10.   IBM Storwize v7000-IBM/00000200A04017F4:1+00000200A04017F4+0   
  11. Storage ID : 9210   
  12. Attempt to create a server system pool with storage 9210.   
  13. Attempt to create a server system pool with initial host 5867 (0x16eb)   
  14. Attempting to add host 5869 (0x16ed).   
  15. System pool created successfully.   
  16. Tue Jan 10 01:23:35 CST 2012  mksyspool Operation took 23 seconds.  

注意上面的 mksyspool命令行其用法如下:

  1. smcli mksyspool [-v] -n syspool_name -i hostId[,...]   
  2.                  [-D description] -S storageId [-R]   
  3.                  [-N networkSystemPoolId]   
  4.                  [-O {true|false}] [-I minutes]   
  5.                  [-F fileSystemPath]  

其中常用的参数:

  1. -v | --verbose   
  2. 在标准输出打印详细信息  
  3. -n | --name  syspool_name   
  4. 指定服务器池的名字  
  5. -i | --hostid  hostOID[,...]   
  6. 服务器池的服务器 OID 列表  
  7. -D | --description  description   
  8. 对该服务器池的描述 .   
  9. -I | --OptimizationInterval [minutesBetweenOptimizations]   
  10. 优化时间间隔,即每隔多长时间对服务器池进行一次优化,缺省 120 分钟  
  11. -S | --storageid  storage_id   
  12. 服务器池所用存储的 OID   
  13. -R | --LiveVirtualServerRelocation   
  14. 表示是否服务器池中的虚拟机进行自动动态迁移 .   
  15. -O | --AutoOptimization {true | false }   
  16. 指定服务器池是否进行动自动优化 

在服务器池创建成功后,通过 lssyspool 和 svsrelationships 可以查看该服务器池的属性,具体服务器和存储信息。

  1. # smcli lssyspool   
  2.  Show server system pool list. 1 Server system pool(s) found.   
  3.  --------------------------------   
  4.  Server system pool ID:16483 (0x4063)   
  5.  Server system pool Name:lyc_p7_srv   
  6.  Server system pool Description:Server System Pool   
  7.  Server system pool Type:PowerHMC   
  8.  Server system pool Status:Healthy   
  9.  State:Active   
  10.  Resilience:Capable   
  11.  FileSystemPath:No Storage File System Path   
  12.  Server system pool properties   
  13.  AutoOptimization:0   
  14.  Description:Server System Pool   
  15.  DisplayName:lyc_p7_srv   
  16.  LEMEnsembleId:364DB493589145A2900AA3FD5024F68D   
  17.  Name:lyc_p7_srv   
  18.  OperatingState:20   
  19.  OptimizationInterval:120   
  20.  Platform:3   
  21.  --------------------------------   
  22.  
  23.  # smcli svsrelationships -src lyc_p7_srv   
  24.  
  25.  SystemPool lyc_p7_srv (7874A7B4D72C3957803A53860C5DFFD1):   
  26.         federates:   
  27.                 Server pfm0094-8205-E6B-SNHV16020 (E7CF62BD2A8C3361B77441FF29CAF830)   
  28.                 Server pfm1200-8202-E4B-SN100235P (C578F9F4CDCE3B78B872EF948FBD4C59)   
  29.         reliesOn:   
  30.                 StoragePool v7000_IBM_High_END_XIV_Gen3_Pool   
  31.                  (09BFA684B61532E084076ABED95CCFC8)   
  32.  
  33.  Command completed successfully.  

确认服务器池创建成功后,需要我们在服务器池中部署和创建 Workload,一般来说我们可以通过向服务器池全新部署虚拟机并为该虚拟机创建相应的 Workload,也可以把原先存在于 Power 服务器上的虚拟机加入到 Workload 中来。

在服务器池中部署和创建 Workload

使用 VMControl 可以基于 NIM Mater 上的虚拟镜像Virtual Appliance)全新部署和创建 Workload,下面列出这一具体步骤:

第一步,查询计划使用的虚拟镜像的 OID 信息。例如,我们知道在 NIM Mater 上有一个名字为 aix61_va 虚拟镜像,通过下面命令可以得到它的 OID 值。

  1. # smcli lsva -q "name = aix61_va" – l |grep – i OID   
  2. OID:19856 

注意,也可以通过执行 smcli lsva– l 列出当前 NIM Mater 上所有虚拟镜像的详细属性,选取想要用来部署虚拟机的虚拟镜像,并查看它的 OID 值信息。

第二步,查询服务器池 OID 信息:

  1. # smcli svsresources -n lyc_p7_srv | grep -i oid   
  2.  Property:  Name: OID                   Type: long             Value: 16483 

第三步,查询使用该虚拟镜像部署到服务器池时可以定制的虚拟化参数信息。如虚拟化网络和以及分配的 Deployment Plan ID 信息:

  1. # smcli lscustomization -a deploy_new -V 19856  -g  16483  -H  false  

这里 -V 之后是虚拟镜像的 OID 值,-g之后是服务器池的 OID,-H 指定是否该虚拟机是否支持 HA 功能。

下面是该命令行的部分输出,这两个参数段是部署虚拟机到服务器池时,必须由用户指定的虚拟化参数段。

  1. virtualnetworks   
  2.         Changeable Columns:   
  3.                 Column Name*    CLI Attribute   
  4.                 Virtual Networks on Host        hostVnet   
  5.  
  6.         Options:   
  7.         Key,    Network Name,   Description,    Virtual Networks on Host*   
  8.         [Discovered-320-0]      Discovered-320-0         
  9.          Captured from virtual server IBM 8205E6B HV16020 3 connected to Discovered-320-0   
  10.          on host pfm0094-8205-E6B-SNHV16020     Discovered-320-0   
  11.  
  12.         Options:         Discovered-318-0 (Discovered-318-0 (VLAN 318, Bridged)),   
  13.                         ETHERNET0/318 (Discovered-318-0 (VLAN 318, Bridged)),   
  14.                         Discovered-320-0 (Discovered-320-0 (VLAN 320, Bridged)),   
  15.                         ETHERNET0/320 (Discovered-320-0 (VLAN 320, Bridged)),   
  16.                           
  17.  deploymentplanid   
  18.         Value:  -300808976303084917_00   
  19.         Description:    null  

virtualnetworks段,其中 [Discovered-320-0] 表示这个虚拟镜像的 OVF 文件中虚拟网络标识,不同的虚拟镜像,虚拟网络标识不同,在这里可选的虚拟网络选项取决于 Power 服务器池本身的虚拟网络,这里有 ETHERNET0/318,ETHERNET0/320,即 VLAN ID 318 和 VLAN ID 320 的两个虚拟网络供用户选取。.

Deploymentplanid 段,VMControl 为该次虚拟机部署分配的 Deployment Plan ID,这个 ID 是实时分配的,在接下来的一段时间内有效,只适用于接下来立即发生的部署,并且当 Director 服务器重启时该 ID 值失效,不可再用。需要在部署发生前重新通过上述命令获取。

第四步,部署虚拟机到服务器池,并创建名字为 ip10-32-136-126的 Workload。

  1. # smcli deployva –v -g 16483 -V 19856 -m -300808976303084917_00 -a deploy_new -A \   
  2.  virtualnetworks[Discovered-320-0]=hostVnet:ETHERNET0/320, \   
  3.  product.vs0.com.ibm.ovf.vmcontrol.system.networking.hostname=ip10-32-136-126, \   
  4.  product.vs0.com.ibm.ovf.vmcontrol.adapter.networking.ipv4addresses.5=10.32.136.126,\   
  5.  product.vs0.com.ibm.ovf.vmcontrol.adapter.networking.ipv4netmasks.5=255.255.255.0,\   
  6.  product.vs0.com.ibm.ovf.vmcontrol.system.networking.ipv4defaultgateway=10.32.136.1,\   
  7.  product.vs0.com.ibm.ovf.vmcontrol.system.networking.dnsIPaddresses=10.20.0.2,\   
  8.  product.vs0.com.ibm.ovf.vmcontrol.system.networking.domainname=pokprv.stglabs.ibm.com \   
  9.  -n ip10-32-136-126  

在上面命令中 -m 参数之后的数值就是在第三步中得到的 Deployment Plan ID 值,在 -A 参数里我们指定了虚拟网络为 ETHERNET0/320和虚拟机系统相应的网络配置,这些网络信息将会在部署完成后自动应用到虚拟机系统中,同时,VMControl 为该虚拟机自动创建了 Workload,并使用 -n 参数指定的 Workload 名。

启动 Workload 的 resilience 功能,保证 Workload 无间断运行;

部署成功的虚拟机包含在 Workload 中,对 Workload 的管理自动应用在包含的虚拟机上。

通过下面的命令对 Workload 的 HA 属性进行修改,当它所在的 Power 服务器发生预测性硬件故障时,虚拟机将会自动迁移到服务器池中其他可用的服务器上,从而可以保证整个 Workload 的无间断运行。

首先,通过查询 Workload 的 OID 值:

  1. #  smcli lsworkloads |grep -i ip10-32-136-126   
  2.  ip10-32-136-126, 29020 (0x715c)  

使用下面命令设置 Workload 的 HA 属性值。

  1. #  smcli chworkload -v -W 29020 -n ip10-32-136-126 -H true -P Automate   
  2.  Thu Feb 23 00:50:37 CST 2012  chworkload Operation started.   
  3.  Attempt to change workload 29020 .   
  4.  Thu Feb 23 00:50:38 CST 2012  chworkload Operation took 0 seconds.  

注意这里的 -P 参数,它后面可用的参数值是 Automate 和 Advise,分别指定了在发现预测性硬件故障时是自动迁移虚拟机,还是需要管理员批准后进行迁移。

配置命令完成之后,我们可以使用 lsworkloads –l 查看该 Workload 的属性值是否生效。

  1. # smcli lsworkloads -l   
  2.  ip10-32-136-126   
  3.         Notifiable:true   
  4.         ClassName:com.ibm.usmi.datamodel.system.WorkloadInstance   
  5.         AccessState:Unlocked   
  6.         Description:   
  7.         ChangedDate:2012-02-23T00:50:37-06:00   
  8.         DisplayName:ip10-32-136-126   
  9.         CreatedDate:2012-02-22T22:28:39-06:00   
  10.         Priority:2   
  11.         HARemoteRestart:false   
  12.         CreatedBy:root   
  13.         CreationMechanism:DeployNew   
  14.         IsDeleteable:false   
  15.         OperatingState:8   
  16.         OID:29020   
  17.         Guid:2F6590A10CF432F8B867FFA50101EF9B   
  18.         SystemId:382df917-7c44-4b8d-bd1e-429fe3f2a828   
  19.         DetailedState:0   
  20.         ObjectType:WorkloadInstance   
  21.         HARelocation:false   
  22.         ApprovalRequired:No   
  23.         Resilience:Active  

在本例中,我们选取自动迁移,使用了参数值 Automate。当服务器在出现硬件预测性故障时,服务器池中的 Workload 自动迁移到服务器池中其它合适的服务器上。如果我们使用 Advise,当故障出现时,将会有事件日志产生,提醒你有一个 Resilience 的计划任务需要你的批准,对该计划批准后才会开始迁移。

服务器池中的 Workload 的备份

在 VMControl 环境中,对 Workload 进行备份,需要对包含的虚拟机操作系统进行发现和库存收集,然后再用命令行进行捕获。下面是备份操作使用的命令行。

第一步,查询当前可以被捕获的 Workload 列表。

  1. # smcli  lscapsrv -o -T workload   
  2.  ip10-32-136-126, 29020 (0x715c) 

第二步,查询 NIM Master 上镜像库的 OID 信息:

  1. # smcli lsrepos -l   
  2.  pva0252.pdl.pok.ibm.com   
  3.         Notifiable:true   
  4.         ClassName:com.ibm.usmi.datamodel.software.ImageRepository   
  5.         UniqueId:119a7b8b-9974-4bf3-a2f7-782791c798e4   
  6.         ImageRepositoryType:1   
  7.         ChangedDate:2012-01-10T01:03:38-06:00   
  8.         SourceTokens:{ 'NO_IR_DELETE' }   
  9.         DisplayName:pva0252.pdl.pok.ibm.com   
  10.         CreatedDate:2012-01-10T01:03:38-06:00   
  11.         ImagingTool:DISCOVERY_NIM_REPOSITORY   
  12.         OID:15317   
  13.         Guid:2F7CCD54EFAB3E63A511F6506AF390A1   
  14.         ObjectType:ImageRepository  

第三步,使用命令 captureva 对 Workload 进行备份,其中 -r 参数指定镜像库的 OID 值,-s 指定计划备份的 Workload 的 OID 值。

  1. #smcli captureva -n capture-ip10-32-136-126 -r 15317 -s 0x715c  

第四步,对 Workload 进行备份完成后,使用 lsva 可以查看是否产生新的虚拟镜像,并成功备份到 Image Repository 中。

  1. # smcli lsva   
  2. aix_cpu_01_mem_05   
  3. capture-ip10-32-136-126 

使用命令行对服务器池中的 Workload 的资源分配和使用情况进行监控

使用 VMC 的命令行,可以对 System Pool 中的 Power 服务器和 Workload 的资源分配和使用情况进行基本的监控。如下命令行所示,我们可以查看当前服务器池中的两台 Power 服务器上的可用的系统 Processor 和内存情况。

  1. # smcli lsvrtsys -A "Available System Physical Processors","Available Memory (MB)"  
  2.    -d " " -N "Hosts"  
  3.  pfm0094-8205-E6B-SNHV16020: 12 37632   
  4.  pfm1200-8202-E4B-SN100235P: 6 41984  

同样,通过下面两条命令行可以查看 Workload 成员及各成员的 Processor Unit 和使用分配内存的情况。

  1. # smcli svsrelationships --src ip10-32-136-126   
  2.  WorkloadInstance ip10-32-136-126 (107B41EF7A333A09A7617AE1DC577023):   
  3.         employs:   
  4.                 Server ip10-32-136-126(8E6D0D38E26E36DE880B123A0812C500)   
  5.  Command completed successfully.  

由上面输出可见,employ 下面就是该 Workload 包含的虚拟机列表,如果该 Workload 包含多台虚拟机,将会一一列出。

结合上面命令输出得到的虚拟机列表,我们可以得到每个虚拟机的资源使用信息,使用命令如下:

  1. # smcli lsvrtsys -A "Assigned Processing Units","Assigned Memory Size (MB)"  
  2.      -n ip10-32-136-126  
  3.  ip10-32-136-126: 0.1, 512  

这里需要说明的是,尽管我们可以用上述命令查看服务器池中各服务器和 Workload 中各虚拟机的资源分配和使用情况,但 VMControl 目前还没有命令行去从整体的角度去查询 CPU 利用率的实时使用情况,这部分功能暂时可以通过 GUI 进行查询。可以右键点击服务器池,从右键菜单中选取 System Status and Heath 的子菜单 View Dashboard 进行查看,这里不再详细介绍。

总结

本文通过实例介绍了如何在命令行的方式下,使用 VMControl 完成对 Power 服务器池和其中 Workload 的部署、管理、监控、备份,对 Power 管理员来说,熟练掌握这些常用命令行,使用 VMControl 的常用功能,如果能够再结合使用图形界面的管理,必将使 Power 服务器的日常管理工作变得得心应手。


相关内容