IBM Systems Director VMControl 资源生命周期管理: 第 4 部分

使用 VMControl REST API 执行远程服务器系统池生命周期管理

IBM® Systems Director 是一个平台管理解决方案,用于管理多系统环境中的物理和虚拟系统。该解决方案支持各种各样的虚拟化技术,以及跨 IBM 和非 IBM 平台的多种操作系统。IBM Systems Director VMControl™ 是 IBM Systems Director 的一个高级管理器,而 IBM Systems Director 是一组可免费拥有的平台管理工具。本教程是一个 VMControl 资源生命周期管理系列的一部分。本教程介绍使用 VMControl 具象状态传输 (REST) 应用编程接口 (API) 的服务器系统池生命周期。

Piyush Jain, 高级软件工程师, IBM

http://www.ibm.com/developerworks/i/p-pjain.jpgPiyush Jain 是 IBM 的一名高级软件工程师,目前主要致力于 IBM Systems Director 中的 VMControl,这是 IBM 产品组合中的一个重要产品。他有 5 年的从业经验,从印度卡纳塔克邦的 IET Alwar 获得了信息技术工程学士学位。



Nicholas Schambureck, 咨询软件工程师, IBM

/developerworks/aix/library/au-aix-vmcontrol-lifecycle-1/nick_64x80.jpgNick Schambureck 是一名咨询工程师,也是 IBM Systems Director VMControl 命令行界面和 REST API 团队的负责人。他自该项目一开始的时候就一直从事该项目的工作。



Poornima Soundararajan, 软件工程师, IBM

/developerworks/aix/library/au-aix-vmcontrol-lifecycle-1/poornima_64x80.jpgPoornima Soundararajan 是一名软件工程师,从事 IBM Systems Director VMControl 高级管理器的开发。Poornima 在 Java/J2EE 技术方面拥有超过 7 年的工作经验。



Aparna Khare, 系统软件工程师, IBM

/developerworks/aix/library/au-aix-vmcontrol-lifecycle-1/aparna_64x80.jpgAparna Khare 是一名系统软件工程师,从事 IBM Systems Director VMControl 高级管理器的开发工作。Aparna 在 Java/J2EE 技术方面拥有 4 年的工作经验。



2013 年 7 月 25 日

开始之前

了解您期望从本教程学到什么,以及如何充分利用本教程。

关于本系列

IBM Systems Director VMControl 高级管理器简化了跨多种虚拟化技术和硬件平台的虚拟环境的管理。VMControl 是一个领先的多平台虚拟化管理解决方案,包含在各种 IBM Systems Director 版本中。VMControl 支持 3 种类型的接口(GUI、CLI 和 REST API)。本系列通过 REST 探讨 VMControl 资源生命周期。

本系列包含以下生命周期:

  • 通过 VMControl REST API 执行虚拟服务器生命周期管理:介绍一个虚拟服务器的生命周期(创建、查看、编辑和删除)管理。其中着重强调了 VMControl Express Edition(VMControl 的免费部分)的功能。
  • 通过 VMControl REST API 执行虚拟设备生命周期管理:介绍一个虚拟设备的生命周期管理。虚拟设备是一种操作系统镜像和元数据,能够远程安装(部署)在新的或现有的虚拟服务器上。
  • 通过 VMControl REST API 执行镜像部署:介绍一种典型的部署流程,以及使用此部署流程创建的工作负载的生命周期管理。
  • 通过 VMControl REST API 执行服务器系统池生命周期管理:介绍一个服务器系统池的生命周期管理及其虚拟服务器重新部署功能。服务器系统池是一组类似的物理服务器(主机) - 一个由 VMControl 实现的云。VMControl 选择要部署到哪个主机,并允许在服务器系统池内重新部署虚拟服务器。

本系列将通过 REST 帮助所有 VMControl 用户理解 VMControl 功能。本系列还将帮助理解资源生命周期的详细流程。

关于本教程

本教程演示使用 VMControl REST API 的服务器系统池资源生命周期。服务器系统池的生命周期拥有以下主要功能:

  • 创建服务器系统池
  • 列出服务器系统池及其成员
  • 修改服务器系统池(修改属性和添加/删除主机)
  • 重新部署虚拟服务器
  • 删除服务器系统池

图 1 通过不同 REST 请求的序列详细解释了服务器系统池的生命周期。

图 1. 服务器系统池生命周期
服务器系统池生命周期

目标

本教程的主要目的是帮助用户理解使用 VMControl REST API 的服务器系统池生命周期。本教程将描述结合使用 IBM System Director VMControl 的范围内的完整生命周期。拥有服务器系统池和 IBM Systems Director VMControl 基本知识的用户可轻松掌握本教程。

前提条件

阅读本教程之前,您应已在系统上安装了 IBM Systems Director V6.x.x。本教程假设您熟悉 IBM Systems Director 的使用。本文还假设您已适当地了解了 JavaScript Object Notation (JSON),以及如何使用您最喜欢的 HTTP 客户端执行 HTTP GETPOSTPUTDELETE 调用。

系统需求

您的系统上应拥有以下组件。

  • 一个已安装和配置的 IBM Systems Director
  • 已激活的 IBM Systems Director VMControl 高级管理器
  • 用于运行远程请求的 HTTP 客户端

创建服务器系统池

列出可用于创建系统池的主机

服务器系统池以提高资源使用率和工作负载恢复能力为目标,根据逻辑将类似主机分组到一起。服务器系统池包含多个主机和与这些主机关联的虚拟服务器,以及一个附加的共享存储。

创建服务器系统池的第一步是列出创建服务器系统池所需的可用主机。从该列表中选择合适的主机并保存其对象 ID (OID) 属性的值。此值将在下一个请求中使用。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/hosts
  • HTTP 方法
    • GET
  • 样例请求

    获取所有主机的列表:

    GET https://myserver:port/ibm/director/rest/VMControl/hosts

    清单 1. 样例响应表示形式
    {
        "hosts":[{
                "uri":"/ibm/director/rest/VMControl/hosts/13953",
                "oid":13953,
                "name":"Server-8406-70Y-SN10E59BA",
                "customization":{
                    "uri":"/ibm/director/rest/VMControl/hosts/13953/customization"
                },
                "virtualServers":{
                    "uri":"/ibm/director/rest/VMControl/hosts/13953/virtualServers"
                },
                "properties":{}
            },
            {
                "uri":"/ibm/director/rest/VMControl/hosts/16223",
                "oid":16223,
                "name":"Server-8406-70Y-SN10E5A0A",
                "customization":{
                    "uri":"/ibm/director/rest/VMControl/hosts/16223/customization"
                },
                "virtualServers":{
                    "uri":"/ibm/director/rest/VMControl/hosts/16223/virtualServers"
                },
                "properties":{}
            }
        ],
        "uri":"/ibm/director/rest/VMControl/hosts"
    }

列出附加到主机的存储池

只有当有一个可访问的存储设备可供主机使用时,才能创建服务器系统池。服务器系统池中的所有主机必须能够访问这个相同的存储设备。此请求列出可供单一主机使用的兼容的存储池,或者可以列出一个用逗号分隔的主机列表中通用的存储池。主机或主机列表使用所需的主机-查询参数指定。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/storagePools?host=13953
  • HTTP 方法
    • GET
  • 样例请求

    获取附加到具有惟一 ID 13953 的主机的存储池:

    GET https://myserver:port/ibm/director/rest/VMControl/storagePools?host=13953

    清单 2. 样例响应表示形式
    {
        "storagePools":[{
                "availableStorage":430080,
                "totalStorage":524288,
                "oid":13203,
                "name":"Storwize V7000-2076-VMC7000_1-IBM/00000200A0203BD9:9+203BD9+0",
                "uri":"/ibm/director/rest/storagePools/13203"
            },
            {
                "availableStorage":264960,
                "totalStorage":785920,
                "oid":13204,
                "name":"Storwize V7000-2076-VMC7000_1-IBM/00000200A0203BD9:8+03BD9+0",
                "uri":"/ibm/director/rest/storagePools/13204"
            },
            {
                "availableStorage":449280,
                "totalStorage":523776,
                "oid":13205,
                "name":"Storwize V7000-2076-VMC7000_1-IBM/00000200A0203BD9:7+0203BD9+0",
                "uri":"/ibm/director/rest/storagePools/13205"
            },
            {
                "availableStorage":431104,
                "totalStorage":2097152,
                "oid":13206,
                "name":"Storwize V7000-2076-VMC7000_1-IBM/00000200A0203BD9:A0203BD9+0",
                "uri":"/ibm/director/rest/storagePools/13206"
            }
        ],
        "uri":"/ibm/director/rest/VMControl/storagePools?host=13953"
    }

创建一个仅包含单个主机的服务器系统池

现在,您已选择了主机和存储,下一步是请求创建一个新的服务器系统池。使用下面的示例作为模板,创建一个 JSON 字符串,其中包含有关所创建的服务器系统池的信息。下面的请求:

  • 表明主机 13953 和附加存储 13203 将首先组成新的服务器系统池。
  • 表明启用了自动优化,且自动优化间隔设置为 60 分钟。
  • 设置新的服务器系统池的名称和描述。

备注:优化支持基于您的指定需求,对您的服务器系统池中的所有虚拟服务器执行分析和定期性能改进。借助优化,您可以配置 IBM Systems Director VMControl 服务器系统池,以将一个工作负载中的虚拟服务器重新部署到最高效的主机上。

创建服务器系统池是一种异步操作,意味着您将收到一个表明操作已开始的响应,且将需要监视该操作的整个完成过程。响应包含两个 URL。Location 标头的 URL 指向服务器系统池的临时保存位置。因为服务器系统池还未创建,所以在 POST 请求中指定的名称用作 ID 的占位符。消息中的 URL 指向创建虚拟服务器 任务的作业激活记录。作业激活记录包含创建虚拟服务器 请求的状态,包括已完成百分比和任何状态或错误消息。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools
  • HTTP 方法
    • POST
  • 样例请求

    创建一个新服务器系统池,其中包含具有惟一 ID 13953 的主机:

    POST https://myserver:port/ibm/director/rest/VMControl/systemPools

    清单 3. 样例请求表示形式
    {
        "name": "SystemPool",
        "description": "This is a new Power system pool",
        "optimizationInterval": 60,
        "autoOptimization": true,
        "storageId": 13203,
        "hostIds":13953
        
    }
    清单 4. 样例响应表示形式
    HTTP/1.1 201 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=00007ID-HpF24AAYtRxUDiikVk4;Path=/; Secure; 
    									HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 190
    Date: Mon, 14 May 2012 02:34:13 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/VMControl/systemPools/SystemPool
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {
      "MessageText": "DNZEMW066I New "Create Server System Pool" job [1] started.\nRefer 
    	to the following URI for status: /ibm/director/rest/jobs/153/activations/1 ",
      "MessageID": "DNZEMW066I"
    }

创建一个包含多个主机的服务器系统池

尽管上面的示例允许您设置服务器系统池的自动优化,但您还需要向服务器系统池添加第二个主机,或者创建一个包含两个或更多主机的服务器系统池来利用优化过程的重新部署功能。

在创建包含多个主机的服务器系统池的过程中使用的 JSON 字符串非常类似于上述字符串,仅为 hostIds 属性使用了一个 JSON 数组。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools
  • HTTP 方法
    • POST
  • 样例请求

    创建一个新服务器系统池,包含具有惟一 ID 13953 和 16223 的主机:

    POST https://myserver:port/ibm/director/rest/VMControl/systemPools

    清单 5. 样例请求表示形式
    {
        "name": "SystemPool2",
        "description": "This is a new Power system pool",
        "optimizationInterval": 60,
        "autoOptimization": true,
        "storageId": 13203,
        "hostIds": [
            13953,
            16223
        ]
    }
    清单 6. 样例响应表示形式
    HTTP/1.1 201 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=00007ID-HpF24AAYtRxUDiikVk4;Path=/; Secure; 
    									HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 190
    Date: Mon, 14 May 2012 02:34:13 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/VMControl/systemPools/SystemPool2
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {
      "MessageText": "DNZEMW066I New "Create Server System Pool" job [1] started.\nRefer 
    	to the following URI for status: /ibm/director/rest/jobs/154/activations/1 ",
      "MessageID": "DNZEMW066I"
    }

监视创建服务器系统池 作业

创建服务器系统池的最后一步是监视其完成进度。监视服务器系统池创建的推荐方法是使用作业激活记录。从上面可以看到,这个 URL 在 POST 请求的响应中返回。作业激活记录可通过轮询该 URL 来监视,但推荐的方法是使用 Java™ Message Service (JMS) 提供程序。

IBM Systems Director 服务器包含一个 JMS 提供程序,用于向感兴趣的客户端应用程序传达事件和其他重要消息。该提供程序允许在两个或更多应用程序之间执行异步通信。作业激活记录可通过 Director.jobs.activation JMS 主题执行异步监视。

有关 JMS 的更多信息,请参阅 IBM Systems Director 6.3.x SDK 信息中心中的 JMS Messaging Overview 页面。


列出服务器系统池及其成员

列出服务器系统池

此请求获取所有可用的服务器系统池和系统池属性的一个子集。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools
  • HTTP 方法
    • GET
  • 样例请求

    获取所有服务器系统池的列表:

    GET https://myserver:port/ibm/director/rest/VMControl/systemPools

    清单 7. 样例响应表示形式
    {
        "systemPools":[{
                "state":{
                    "label":"Active",
                    "id":20
                },
                "status":{
                    "label":"Healthy",
                    "id":0
                },
                "type":"KVM",
                "oid":19362,
                "name":"systempool233",
                "uri":"/ibm/director/rest/VMControl/systemPools/19362"
            }
        ],
        "uri":"/ibm/director/rest/VMControl/systemPools"
    }

查看服务器系统池

下面的示例展示了服务器系统池属性。这些属性包括服务器系统池的名称、描述和当前状态,以及服务器系统池中的主机数量、这些主机的列表、恢复能力和自动优化设置,还有相关的存储信息。

备注:不是所有存储属性都适用于每个服务器系统池。一些属性可同时用于基于内核的虚拟机 (KVM) 和 IBM Power Systems™ 主机,而其他一些属性仅适用于 KVM 或 Power Systems。下面提供了一个 KVM 服务器系统池的示例。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/19362
  • HTTP 方法
    • GET
  • 样例请求

    获取具有惟一 ID 19362 的服务器系统池属性:

    GET https://myserver:port/ibm/director/rest/VMControl/systemPools/19362

    清单 8. 样例响应表示形式
    {
        "systempool":{
            "hostCount":2,
            "oid":19362,
            "name":"SysPool",
            "description":"Server System Pool",
            "type":"KVM",
            "state":{
                "label":"Active",
                "id":20
            },
            "status":{
                "label":"Healthy",
                "id":0
            },
            "hostIds":[
                24545
            ],
            "platformVersion":"{ 'QEMU 0.12.1' }",
            "resilience":true,
            "autoOptimization":false,
            "optimizationInterval":30,
            "fileSystemOwner":"21862IBM 7976MC1 KQAGYT3:/nfs/kvm/images|
                                                /var/lib/libvirt/images",
            "fileSystemPath":"/nfs/kvm/images|/var/lib/libvirt/images",
            "fileSystemRoot":"/",
            "commonMountPath":"/var/lib/libvirt/images",
            "fileSystemName":"/dev/sda3",
            "fileSystemOid":21862,
            "storageOwningSubSystem":"Not Applicable",
            "storagePoolName":"Not Applicable",
            "storagePoolOid":"Not Applicable",
            "storageSystemOwningSubSystem":"Not Applicable",
            "storageSystemPoolOid":"Not Applicable",
            "storageSystemPoolPolicy":"Not Applicable",
            "storageSystemPoolName":"Not Applicable",
            "hosts":{
                "uri":"https://9.47.203.12:8422/ibm/director/rest/
                       VMControl/systemPools/30268/hosts"
            },
            "metrics":{
                "uri":"https://9.47.203.12:8422/ibm/director/rest/resources/SystemPool/
                       30268/monitorviews/VSP_METRICS_GROUP_ID/monitordata"
            },
            "virtualServers":{
                "uri":"https://9.47.203.12:8422/ibm/director/rest/
                       VMControl/systemPools/30268/virtualServers"
            },
    		"workloads":{
                "uri":"https://9.47.203.12:8422/ibm/director/rest/
                       VMControl/systemPools/30268/workloads"
            },
    		"uri":"https://9.47.203.12:8422/ibm/director/rest/
                   VMControl/systemPools/30268"
        }
    }

列出一个服务器系统池的成员主机

此请求获取一个服务器系统池的所有成员主机。在一个服务器系统池中添加和删除主机时,此信息很有帮助。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/{systemPoolOID}/hosts
  • HTTP 方法
    • GET
  • 样例请求

    获取具有惟一 ID 19362 的服务器系统池的成员主机:

    GET https://myserver:port/ibm/director/rest/VMControl/systemPools/19362/hosts

    清单 9. 样例响应表示形式
    {
        "hosts":[{
               "uri":"/ibm/director/rest/VMControl/hosts/13953",
               "oid":13953,
               "name":"Server-8406-70Y-SN10E59BA",
               "customization":{
                   "uri":"/ibm/director/rest/VMControl/hosts/13953/customization"
               },
               "virtualServers":{
                   "uri":"/ibm/director/rest/VMControl/hosts/13953/virtualServers"
               },
               "properties":{}
            },
            {
               "uri":"/ibm/director/rest/VMControl/hosts/16223",
               "oid":16223,
               "name":"Server-8406-70Y-SN10E5A0A",
               "customization":{
                   "uri":"/ibm/director/rest/VMControl/hosts/16223/customization"
               },
               "virtualServers":{
                   "uri":"/ibm/director/rest/VMControl/hosts/16223/virtualServers"
               },
               "properties":{}
            }
        ],
        "uri":"/ibm/director/rest/VMControl/systemPools/25607/hosts"
    }

列出一个服务器系统池的虚拟服务器成员

此请求获取一个服务器系统池中存在的所有虚拟服务器。

备注:这个请求列出服务器系统池中所有主机上的所有虚拟服务器。此列表中的一个虚拟服务器可能未由服务器系统池管理。虚拟服务器必须由服务器系统池管理,这样才有资格在服务器系统池中重新部署。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/{systemPoolOID}/virtualServers
  • HTTP 方法
    • GET
  • 样例请求

    获取具有惟一 ID 19362 的服务器系统池的虚拟服务器成员:

    GET https://myserver:port/ibm/director/rest/VMControl/systemPools/19362/virtualServers

    清单 10. 样例响应表示形式
    {
        "virtualServers":[{
                "uri":"/ibm/director/rest/VMControl/virtualServers/20517",
                "oid":20517,
                "name":"pva8132_stg_vios#1",
                "state":{
                    "label":"Started",
                    "id":8
                },
                "customization":{
                  "uri":"/ibm/director/rest/VMControl/virtualServers/20517/customization"
                },
                "properties":{}
            },
            {
                "uri":"/ibm/director/rest/VMControl/virtualServers/20518",
                "oid":20518,
                "name":"IP10-32-41-27_RHEL62_10G_multi",
                "state":{
                    "label":"Started",
                    "id":8
                },
                "customization":{
                  "uri":"/ibm/director/rest/VMControl/virtualServers/20518/customization"
                },
                "properties":{}
            },
            {
                "uri":"/ibm/director/rest/VMControl/virtualServers/25555",
                "oid":25555,
                "name":"ip-10-32-42-105",
                "state":{
                    "label":"Started",
                    "id":8
                },
                "customization":{
                  "uri":"/ibm/director/rest/VMControl/virtualServers/25555/customization"
                },
                "properties":{}
            },
            {
                "uri":"/ibm/director/rest/VMControl/virtualServers/20519",
                "oid":20519,
                "name":"pva8069_network_vios",
                "state":{
                    "label":"Started",
                    "id":8
                },
                "customization":{
                  "uri":"/ibm/director/rest/VMControl/virtualServers/20519/customization"
                },
                "properties":{}
            }
        ],
        "uri":"/ibm/director/rest/VMControl/systemPools/19362/virtualServers"
    }

列出服务器系统池的工作负载成员

此请求获取一个服务器系统池的所有工作负载成员。如果工作负载是通过部署到服务器系统池来创建的,或者如果它是使用服务器系统池中包含的虚拟服务器手动创建的,则该工作负载是服务器系统池的成员,但不由服务器系统池管理。有关这些操作的更多信息,请参阅 IBM Systems Director 6.3.x SDK 信息中心的工作负载资源页面。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/{systemPoolOID}/workloads
  • HTTP 方法
    • GET
  • 样例请求

    获取具有惟一 ID 19362 的服务器系统池的工作负载成员:

    GET https://myserver:port/ibm/director/rest/VMControl/systemPools/19362/workloads

    清单 11. 样例响应表示形式
    {
        {
            "workloads": [
                {
                    "state": {
                        "label": "Started",
                        "id": 8
                    },
                    "oid": 25623,
                    "name": "Workload 1",
                    "uri": "/ibm/director/rest/VMControl/workloads/25623"
                },
                {
                    "state": {
                        "label": "Started",
                        "id": 8
                    },
                    "oid": 25625,
                    "name": "Workload 2",
                    "uri": "/ibm/director/rest/VMControl/workloads/25625"
                }
            ],
            "uri": "/ibm/director/rest/VMControl/systemPools/25607/workloads",
            "candidateServers": {
                "uri": "/ibm/director/rest/VMControl/systemPools/25607/workloads/
    							candidateServers"
            }
        }
    }

修改服务器系统池

修改服务器系统池允许您添加主机、删除主机,或更改服务器系统池属性。可更改的属性列表可在 IBM Systems Director 6.3.x SDK 信息中心中的 systemPools/{systemPoolOID} 资源页面中找到。

在服务器系统池中添加或删除主机的操作通过指定 hostIds JSON 数组来执行。此数组的内容包含您希望在请求结束时存在于服务器系统池中的主机列表。可以在单个请求中向服务器系统池添加多个主机,但仅允许每个请求删除一个主机。类似地,您不能通过单个请求同时添加和删除主机。不能在单个请求中同时更改系统池属性和添加或删除主机。

修改服务器系统池属性

下面的请求更改一个服务器系统池的自动优化和优化间隔。优化间隔以分钟为单位。

响应将包含同一个 URL 的两个副本。Location 标头中的 URL 和响应消息中的 URL 都指向修改服务器系统池 任务的作业激活记录。作业激活记录包含修改服务器系统池 请求的状态,包含已完成的百分比和任何状态或错误消息。可在本页底部的监视 “修改服务器系统池” 作业一节中找到监视此作业的推荐方法的更多信息。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/{systemPoolOID}
  • HTTP 方法
    • PUT
  • 样例请求

    修改具有惟一 ID 19362 的服务器系统池:

    PUT https://myserver:port/ibm/director/rest/VMControl/systemPools/19362

    清单 12. 样例请求表示形式
    {
        "autoOptimization": true,
        "optimizationInterval": 240
    }
    清单 13. 样例响应表示形式
    HTTP/1.1 202 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=0000z7DH1a8JDMo-ymu3KP38hoM;Path=/; Secure; 
    								HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 200
    Date: Mon, 14 May 2012 03:00:27 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/jobs/154/activations/1
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {
      "MessageText": "New job activation for updating the server system pool was 
    	started.\n Refer to the following URI for job activation status: 
    	/ibm/director/rest/jobs/154/activations/1",
      "MessageID": ""
    }

列出可添加到一个服务器系统池中的候选主机

要将一个新主机添加到服务器系统池,第一步是列出有资格添加到服务器系统池中的主机。此请求返回的主机与服务器系统池中已有的主机具有相同的类型,且能够访问与服务器系统池关联的存储池。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/{systemPoolOID}/candidates
  • HTTP 方法
    • GET
  • 样例响应

    列出可添加到具有惟一 ID 19362 的服务器系统池中的候选主机:

    PUT https://myserver:port/ibm/director/rest/VMControl/systemPools/19362/candidates

    清单 14. 样例请求表示形式
    {
        "candidates": [
            {
                "oid": 17475,
                "name": "Server-8406-70Y-SN10E5A0A",
                "uri": "/ibm/director/rest/VMControl/hosts/17475"
            }
        ],
        "uri": "/ibm/director/rest/VMControl/systemPools/19362/candidates"
    }

将一个主机添加到服务器系统池中

如上所述,在服务器系统池中添加或删除一个主机的过程通过指定 hostIdsJSON 数组来执行。此数组的内容包含您希望在请求结束时存在于服务器系统池中的主机列表。下面的请求将具有惟一 ID 17475 的主机添加到服务器系统池中。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/{systemPoolOID}
  • HTTP 方法
    • PUT
  • 样例请求

    将主机 17475 添加到具有惟一 ID 19362 的服务器系统池:

    PUT https://myserver:port/ibm/director/rest/VMControl/systemPools/19362

    清单 15. 样例请求表示形式
    {
        "hostIds": [
            13953,
            16223,
            17475
        ]
    }
    清单 16. 样例响应表示形式
    HTTP/1.1 202 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=0000IcvCLIria75OPe4bSOWM4pP;Path=/; Secure; 
    								HTTPOnly
    Set-Cookie: AUTH_JSESSIONID=4mdooikm2p570b7np6r2f0smoj4;Path=/; HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/json; charset=UTF-8
    Content-Length: 194
    Date: Tue, 09 Oct 2012 09:02:28 GMT
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {"MessageID":"DNZEMW048I","MessageText":"DNZEMW048I New \"Update Server System Pool\"
    	 job [1] started.\nRefer to the following URI for status: 
    	\/ibm\/director\/rest\/jobs\/456\/activations\/1."}

从服务器系统池删除一个主机

下面的请求从服务器系统池删除具有惟一 ID 16223 的主机。将 hostEvacuation 参数设置为 true,可在服务器系统池中重新部署来自 16223 的所有托管的虚拟服务器。

备注:如果没有足够的资源来支持重新部署来自已删除的主机的所有托管的虚拟服务器,那么删除主机 操作将失败。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/{systemPoolOID}
  • HTTP 方法
    • PUT
  • 样例请求

    从具有惟一 ID 19362 的服务器系统池删除主机:

    PUT https://myserver:port/ibm/director/rest/VMControl/systemPools/19362

    清单 17. 样例请求表示形式
    {
        "hostIds": [
            13953,
            17475
        ],
        "hostEvacuation" : true
    }
    清单 18. 样例响应表示形式
    HTTP/1.1 200 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=0000pQfvCzmvUwLN9zhSnvvzNtp;Path=/; Secure; 
    								HTTPOnly
    Set-Cookie: AUTH_JSESSIONID=4ra97j010cnohlcjl0e3feotb8d;Path=/; HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/json; charset=UTF-8
    Content-Length: 110
    Date: Tue, 09 Oct 2012 09:03:08 GMT
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {"MessageID":"DNZEMW069I","MessageText":"DNZEMW069I Update System pool 
    		(Remove host) completed successfully."}

监视修改服务器系统池 作业

修改服务器系统池的最后一步是监视其完成进度。监视服务器系统池修改的推荐方式是使用作业激活记录。从上面可以看到,这个 URL 在 PUT 请求的响应中返回。作业激活记录可通过轮询该 URL 来监视,但推荐的方法是使用 JMS 提供程序。

IBM Systems Director 服务器包含一个 JMS 提供程序,用于向感兴趣的客户端应用程序传达事件和其他重要消息。该提供程序允许在两个或更多应用程序之间执行异步通信。作业激活记录可通过 Director.jobs.activation JMS 主题执行异步监视。

有关 JMS 的更多信息,请参阅 IBM Systems Director 6.3.x SDK 信息中心中的 JMS Messaging Overview 页面。


服务器系统池重新部署

重新部署计划 Web 服务负责在一个服务器系统池中重新部署虚拟服务器。重新部署计划可将来自一个主机的单个虚拟服务器重新部署到服务器系统池中的另一个主机中,将一个主机上的所有虚拟服务器重新部署(撤离)到服务器系统池中的一个或多个主机中,或者撤离一个主机以让该主机进入维护模式。

重新部署操作分两步运行:首先创建重新部署计划,然后运行计划。一定要注意,由于系统虚拟化的性质,重新部署计划仅在一定时间内有效,在这之后将失效。这么做是为了预防在一些虚拟化资源可用时创建的计划在这些资源不可用时运行失败。如果重新部署计划失效,它将不可能运行;但是始终可以创建一个新的重新部署计划资源来运行。

重新部署虚拟服务器

此请求创建一个新的重新部署计划,以将具有一个惟一 ID 的虚拟服务器重新部署到服务器系统池中的另一个主机上。虚拟服务器使用本教程前面描述的 systemPools/{systemPoolOID}/virtualServers 资源来获取。

请求的结果将是 Location HTTP 标头中的一个 URL,其中包含所创建的重新部署计划的链接。在重新部署计划成功创建或由于其对于服务器系统池无效而被放弃之前,其状态设置为 Initalizing

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/relocationPlans
  • HTTP 方法
    • POST
  • 样例请求

    创建一个计划来重新部署一个具有惟一 ID 20518 的虚拟服务器:

    POST https://myserver:port/ibm/director/rest/VMControl/relocationPlans

    清单 19. 样例请求表示形式
    {
        "relocationPlan":{
            "virtualServer":20518
        }
    }
    清单 20. 样例响应表示形式
    HTTP/1.1 201 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=00007ID-HpF24AAYtRxUDiikVk4;Path=/; Secure; 
    									HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 190
    Date: Mon, 14 May 2012 02:34:13 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/VMControl/relocationPlans/8847669583
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {"MessageID":"DNZEMW024I","MessageText":"DNZEMW024ICreated relocation plan
    	[/ibm/director/rest/VMControl/relocationPlans/8847669583]."}

使用目标重新部署虚拟服务器

此请求重新部署同一个虚拟服务器,但指定您希望将虚拟服务器重新部署到的主机。目标参数仅在为重新部署指定单个虚拟服务器时有效。目标参数必须是服务器系统池的一部分,并包含足够的资源来支持要重新部署的虚拟服务器。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/relocationPlans
  • HTTP 方法
    • POST
  • 样例请求

    创建一个计划来将虚拟服务器重新部署到具有惟一 ID 20518 的目标主机:

    POST https://myserver:port/ibm/director/rest/VMControl/relocationPlans

    清单 21. 样例请求表示形式
    {
        "relocationPlan":{
            "destination":14084,
            "virtualServer":17475
        }
    }
    清单 22. 样例响应表示形式
    HTTP/1.1 201 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=00007ID-HpF24AAYtRxUDiikVk4;Path=/; Secure; 
    									HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 190
    Date: Mon, 14 May 2012 02:35:15 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/VMControl/relocationPlans/8847669586
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {"MessageID":"DNZEMW024I","MessageText":"DNZEMW024ICreated relocation plan
    	[/ibm/director/rest/VMControl/relocationPlans/8847669586]."}

重新部署一个主机上的所有虚拟服务器

在这个示例中,我们指定一个主机,而不是一个虚拟服务器。这将导致位于该主机上的所有服务器系统池托管的虚拟服务器被重新部署到服务器系统池中。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/relocationPlans
  • HTTP 方法
    • POST
  • 样例请求

    创建一个计划来重新部署具有惟一 ID 14085 的主机上的所有虚拟服务器:

    POST https://myserver:port/ibm/director/rest/VMControl/relocationPlans

    清单 23. 样例请求表示形式
    {
        "relocationPlan":{
            "host":13953
        }
    }
    清单 24. 样例响应表示形式
    HTTP/1.1 201 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=00007ID-HpF24AAYtRxUDiikVk4;Path=/; Secure; 
    									HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 190
    Date: Mon, 14 May 2012 02:36:18 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/VMControl/relocationPlans/8847669589
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {"MessageID":"DNZEMW024I","MessageText":"DNZEMW024ICreated relocation plan
    	[/ibm/director/rest/VMControl/relocationPlans/8847669589]."}

重新部署多个虚拟服务器

这个示例创建一个重新部署计划来将虚拟服务器 20519 和 25555 重新部署到服务器系统池中。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/relocationPlans
  • HTTP 方法
    • POST
  • 样例请求

    创建一个计划来将两个虚拟服务器重新部署到一个服务器系统池中的不同主机上:

    POST https://myserver:port/ibm/director/rest/VMControl/relocationPlans

    清单 25. 样例请求表示形式
    {
        "relocationPlan":{
            "virtualServer":[
                20519,
                25555
            ]
        }
    }
    清单 26. 样例响应表示形式
    HTTP/1.1 201 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=00007ID-HpF24AAYtRxUDiikVk4;Path=/; Secure; 
    									HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 190
    Date: Mon, 14 May 2012 02:38:18 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/VMControl/relocationPlans/8847669595
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {"MessageID":"DNZEMW024I","MessageText":"DNZEMW024ICreated relocation plan
    	[/ibm/director/rest/VMControl/relocationPlans/8847669595]."}

进入维护模式

hostEvacuation 属性可与 host 属性结合使用,以从指定的主机删除所有虚拟服务器,并将该主机设置为维护模式。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/relocationPlans
  • HTTP 方法
    • POST
  • 样例请求

    创建一个计划来重新部署一个主机上的所有虚拟服务器,并将该主机设置为维护模式:

    POST https://myserver:port/ibm/director/rest/VMControl/relocationPlans

    清单 27. 样例请求表示形式
    {
        "relocationPlan":{
            "host":14085,
            "hostEvacuation":true
        }
    }
    清单 28. 样例响应表示形式
    HTTP/1.1 201 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=00007ID-HpF24AAYtRxUDiikVk4;Path=/; Secure; 
    									HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 190
    Date: Mon, 14 May 2012 02:39:11 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/VMControl/relocationPlans/8847669599
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {"MessageID":"DNZEMW024I","MessageText":"DNZEMW024ICreated relocation plan
    	[/ibm/director/rest/VMControl/relocationPlans/8847669599]."}

检查重新部署计划

请求创建一个重新部署计划后,检查结果。如果重新部署计划已成功创建,那么重新部署计划的状态将为已停止。如果失败,状态将为已中止,并将包含无法创建计划的信息和如何更新环境以使其生效的建议。

这个示例给出了成功路径。已中止的路径可在 IBM Systems Director 6.3.x SDK 信息中心中的 /relocationPlans/{relocationPlanID} 资源页面中看到。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/relocationPlans/8847669583
  • HTTP 方法
    • GET
  • 样例请求

    获取重新部署计划 8847669583 的详细信息:

    GET https://myserver:port/ibm/director/rest/VMControl/relocationPlans/8847669583

    清单 29. 样例响应表示形式
    {
        "state": {
            "label": "Stopped",
            "id": 5
        },
        "type": "virtualServer",
        "id": 8847669583,
        "operations": [
            {
                "toHost": "17475",
                "type": "relocateVE",
                "virtualServer": [
                    20518
                ],
                
            }
        ],
        "uri": "/ibm/director/rest/VMControl/relocationPlans/8847669583",
        "sourceOid": [
            20518
        ]
    }

运行重新部署计划

创建重新部署计划后,该计划必须运行。这通过发送一个 PUT 请求并将重新部署计划的状态更改为 started (8) 来完成。

响应包含同一个 URL 的两个副本。Location 标头中的 URL 和响应消息中的 URL 都指向运行重新布局计划 任务的作业激活记录。作业激活记录包含运行重新部署计划 请求的状态,包含已完成的百分比和任何状态或错误消息。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/relocationPlans/8847669583
  • HTTP 方法
    • PUT
  • 样例请求

    创建一个计划来将虚拟服务器重新部署到具有惟一 ID 14084 的目标主机:

    PUT https://myserver:port/ibm/director/rest/VMControl/relocationPlans/8847669583

    清单 30. 样例请求表示形式
    {
        "relocationPlan":{
            "state":8
        }
    }
    清单 31. 样例响应表示形式
    HTTP/1.1 201 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=00007ID-HpF24AAYtRxUDiikVk4;Path=/; Secure; 
    									HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 190
    Date: Mon, 14 May 2012 02:34:13 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/jobs/159/activations/1
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {
      "MessageText": "DNZEMW027I New job activation for updating the relocation plan 
                      was started.\nRefer to the following URI for job activation 
                      status: /ibm/director/rest/jobs/159/activations/1",
      "MessageID": "DNZEMW027I"
    }

监视创建重新部署计划 作业

重新部署虚拟服务器的最后一步是监视其完成进度。监视虚拟服务器重新部署的推荐方式是使用作业激活记录。从上面可以看到,这个 URL 在 POST 请求的响应中返回。作业激活记录可通过轮询该 URL 来监视,但推荐的方法是使用 JMS 提供程序。

IBM Systems Director 服务器包含一个 JMS 提供程序,用于向感兴趣的客户端应用程序传达事件和其他重要消息。该提供程序允许在两个或更多应用程序之间执行异步通信。作业激活记录可通过 Director.jobs.activation JMS 主题执行异步监视。

有关 JMS 的更多信息,请参阅 IBM Systems Director 6.3.x SDK 信息中心中的 JMS Messaging Overview 页面。


删除服务器系统池

列出服务器系统池

删除服务器系统池的第一步是获取可用的服务器系统池的列表。您可以从该列表中选择需要删除的服务器系统池。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/{systemPoolOID}
  • HTTP 方法
    • GET
  • 样例请求

    获取所有服务器系统池的列表:

    GET https://myserver:port/ibm/director/rest/VMControl/systemPools

    清单 32. 样例响应表示形式
    {
        "systemPools":[{
                "state":{
                    "label":"Active",
                    "id":20
                },
                "status":{
                    "label":"Healthy",
                    "id":0
                },
                "type":"KVM",
                "oid":19362,
                "name":"systempool233",
                "uri":"/ibm/director/rest/VMControl/systemPools/19362"
            }
        ],
        "uri":"/ibm/director/rest/VMControl/systemPools"
    }

删除服务器系统池

删除服务器系统池 请求删除服务器系统池,但不会删除系统池中的任何成员。虚拟服务器成员会更新,以表明它们不再由一个服务器系统池管理。删除服务器系统池是一种异步操作。

响应包含同一个 URL 的两个副本。Location 标头中的 URL 和响应消息中的 URL 都指向删除服务器系统池 任务的作业激活记录。作业激活记录包含删除服务器系统池 请求的状态,包含已完成的百分比和任何状态或错误消息。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/systemPools/{systemPoolOID}
  • HTTP 方法
    • DELETE
  • 样例请求

    删除具有惟一 ID 19362 的服务器系统池:

    DELETE https://myserver:port/ibm/director/rest/VMControl/systemPools/19362

    清单 33. 样例响应表示形式
    HTTP/1.1 202 OK
    Cache-Control: no-store
    Set-Cookie: JSESSIONID_ibm_console_80=0000ZdJty7E5NW6uYO97y-KlOrI;Path=/; Secure; 
    								HTTPOnly
    Expires: Thu, 01 Dec 1994 16:00:00 GMT
    Content-Type: application/octet-stream; charset=UTF-8
    Content-Length: 193
    Date: Mon, 14 May 2012 08:57:47 GMT
    Location: https://9.9.9.9:8422/ibm/director/rest/jobs/1964/activations/1
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {
      "MessageText": "DNZEMW051I New \"Delete Server System Pool\" job [1] started.
    \n Refer to the following URI for 
    status: /ibm/director/rest/jobs/1964/activations/1 ",
      "MessageID": "DNZEMW051I"
    }

监视删除服务器系统池 作业

删除服务器系统池的最后一步是监视其完成进度。监视服务器系统池删除的推荐方式是使用作业激活记录。从上面可以看到,这个 URL 在 DELETE 请求的响应中返回。作业激活记录可通过轮询该 URL 来监视,但推荐的方法是使用 JMS 提供程序。

IBM Systems Director 服务器包含一个 JMS 提供程序,用于向感兴趣的客户端应用程序传达事件和其他重要消息。该提供程序允许在两个或更多应用程序之间执行异步通信。作业激活记录可通过 Director.jobs.activation JMS 主题执行异步监视。

有关 JMS 的更多信息,请参阅 IBM Systems Director 6.3.x SDK 信息中心中的 JMS Messaging Overview 页面。

参考资料

学习

  • 您可以参阅本文在 developerWorks 全球网站上的 英文原文
  • IBM Systems Director
  • JavaScript Object Notation (JSON)
  • RESTful Web 服务
  • How to test REST APIs for IBM Systems Director using Java
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

获得产品和技术

讨论

条评论

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=AIX and UNIX, Linux
ArticleID=938314
ArticleTitle=IBM Systems Director VMControl 资源生命周期管理: 第 4 部分
publish-date=07252013