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

使用 VMControl REST API 进行远程虚拟服务器生命周期管理

IBM® Systems Director 是一种平台管理解决方案,用于管理多系统环境中的物理和虚拟系统。它支持多种虚拟化技术和跨 IBM 和非 IBM 平台的多种操作系统。IBM Systems Director VMControl™ 是 IBM Systems Director 的一个高级管理器,是一组可免费获得的平台管理工具。本教程是有关 VMControl 资源生命周期管理系列文章的一部分。本教程通过 VMControl Representational State Transfer (REST) 应用程序编程接口(API)解释了虚拟服务器生命周期。

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

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



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

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



Poornima Soundararajan, 软件工程师, IBM China

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



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

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



2013 年 5 月 20 日

开始之前

了解可以从本教程中学到哪些知识,以及如何从中获得最大的益处。

关于本系列

IBM Systems Director VMControl 高级管理器简化了跨多种虚拟化技术和硬件平台来管理虚拟环境的工作。VMControl 是一种领先的多平台虚拟管理解决方案,他附带于 IBM Systems Director Editions 中。VMControl 支持三种类型的接口(GUI、CLI 和 REST API)。本系列文章将讨论通过 REST 实现的资源生命周期管理。

本系列涉及以下生命周期:

  • 基于 VMControl REST API 的虚拟服务器生命周期管理:涵盖虚拟服务器的生命周期管理(创建、查看、编辑和删除)。重点介绍 VMControl 的免费版 VMControl Express Edition 的功能。
  • 基于 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 客户端

创建虚拟服务器

列出可用主机,创建虚拟服务器

创建虚拟服务器的第一步是检索可以在创建虚拟服务器时用到的主机的列表。主机就是指能够支持虚拟计算机的物理服务器,可能由管理程序管理。从列表中选择合适的主机,并保存对象标识符 (OID) 属性的值。接下来的请求中会使用该值。

注意:这些示例中的 URL 全部以 https://myserver:port 开头。您应当用 VMControl 所在的系统的主机名或 IP 地址替换 myserver,并用安装 IBM Systems Director 时使用的安全端口替换端口号。安全端口的默认值是 8422。

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

    获得所有主机的列表:

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

    清单 1. 样例响应表示
    {
        "hosts": [
            {
                "name": "Server-7998-61X-SN0689CEA",
                "customization": {
                    "uri": "/ibm/director/rest/VMControl/hosts/6649/customization"
                },
                "properties": {},
                "uri": "/ibm/director/rest/VMControl/hosts/6649",
                "oid": 6649,
                "virtualServers": {
                    "uri": "/ibm/director/rest/VMControl/hosts/6649/virtualServers"
                }
            },
            {
                "name": "Server-7998-61X-SN0689D0A",
                "customization": {
                    "uri": "/ibm/director/rest/VMControl/hosts/6838/customization"
                },
                "properties": {},
                "uri": "/ibm/director/rest/VMControl/hosts/6838",
                "oid": 6838,
                "virtualServers": {
                    "uri": "/ibm/director/rest/VMControl/hosts/6838/virtualServers"
                }
            }
        ],
        "uri": "/ibm/director/rest/VMControl/hosts"
    }

为了创建虚拟服务器而列出自定义参数

自定义参数是特定于平台的独特属性,允许用户对所执行的操作进行自定义。自定义参数可以有许多类型,但是指定方式是类似的。使用从前面步骤收集的 OID 向下面指定的 URL 发出一个 GET 请求。请求结果是一个自定义参数列表,这些参数可用于创建虚拟服务器。

下面的示例显示了一个典型 Power 环境中的自定义参数。其他平台(KVM,IBM z/VM® 等)的自定义参数会有所不同。

注意:有关自定义参数的更多信息,请参考 IBM Systems Director 6.3.x SDK Information Center 的 VMControl 编程主题。

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

    在惟一 ID 为 6649 的主机上创建新虚拟服务器时获取虚拟化参数:

    GET https://myserver:port/ibm/director/rest/VMControl/hosts/6649/virtualServers/customization

    样例响应表示查看清单 2

创建虚拟服务器

下一步是发出 HTTP 请求,创建一个新的虚拟服务器。首先是为您的请求填充 JSON。使用上面列出的自定义参数创建一个 JSON 字符串,其中包含虚拟服务器的自定义属性的名称/值对。

使用该 JSON 字符串为下面的 URL 创建一个 HTTP POST 请求。创建虚拟服务器是一个异步操作,意味着您会收到一个响应,表示操作已经开始并需要监视操作的完成。响应将包含两个 URL。位置头文件 (header) 中的 URL 指向虚拟服务器的临时保存位置。由于虚拟服务器尚未创建,请求中选择的名称被用作 ID 的占位符。消息中的 URL 指向创建虚拟服务器 任务的作业激活记录。作业激活记录包含创建虚拟服务器 请求的状态,包括完成百分比和任何状态或错误消息。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/hosts/{hostOID}/virtualServers
  • HTTP 方法
    • POST
  • 样例请求

    在惟一 ID 为 6649 的主机上创建新的虚拟服务器:

    POST https://myserver:port/ibm/director/rest/VMControl/hosts/6649/virtualServers

    清单 2. 样例响应表示
    {
        "virtualServer":{
            "properties":[{
                    "name":"name",
                    "value":"NEW_VS1"
                },
                {
                    "name":"gos",
                    "value":"IBM Power - AIXLINUX"
                },
                {
                    "name":"cpumode",
                    "value":"SHARED"
                },
                {
                    "name":"cpushared",
                    "value":1
                },
                {
                    "name":"memsize",
                    "value":128
                },
                {
                    "name":"networks",
                    "value":"Discovered-1014-0"
                }
            ]
        }
    }
    清单 3. HTTP 响应:
    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/hosts/6649
    							/virtualServers/NEW_VS1
    Accept-Ranges: bytes
    Server: Noelios-Restlet-Engine/1.1.4
    Content-Language: en-US
    
    {
      "MessageText": "DNZEMW066I New "Create Virtual Server" job [1] started.\nRefer 
    	to the following URI for status: /ibm/director/rest/jobs/153/activations/1 ",
      "MessageID": "DNZEMW066I"
    }
    }

监视 create virtual server 作业

创建虚拟服务器的第一步是监视它的完成过程。推荐方法是通过作业激活记录来监视虚拟服务器的创建。如上所述,该 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 包含该主机信息。在虚拟服务器上执行的任何操作,包括创建、编辑和删除,都通过这些 URL 完成。virtualServers 资源是一个 helper URL,它将列出所有虚拟服务器,这是它的惟一用途。

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

    获得所有虚拟服务器的列表:

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

    清单 4. 样例响应表示
    {
       "uri":"/ibm/director/rest/VMControl/virtualServers"
       "virtualServers":[
          {
             "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/6798",
             "name":"myVirtualServer1",
             "oid":6798
             "customization":{
                "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/6798/
    								customization"
             },
             "state":{
                "label":"Started",
                "id":8
             },
          },
          {
             "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/7648",
             "name":"myVirtualServer2",
             "oid":7468
             "customization":{
                "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/7648/
    								customization"
             },
             "state":{
                "label":"Started",
                "id":8
             },
          },
          {
             "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/8200",
             "name":"myVirtualServer3",
             "oid":8200
             "customization":{
                "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/8200/
    								customization"
             },
             "state":{
                "label":"Started",
                "id":8
             },
          }
    }

为修改虚拟服务器列出自定义参数

自定义参数是特定于平台的独特属性,允许用户对所执行的操作进行自定义。自定义参数可以有许多类型,但是指定方式是类似的。使用从前面步骤收集的 OID 向下面指定的 URL 创建一个 GET 请求。请求结果是一个自定义属性列表,这些参数可用于修改虚拟服务器。

下面的示例显示了一个典型 IBM Power Systems™ 环境中的自定义参数。其他平台(基于内核的虚拟机 KVM、z/VM 等)的自定义参数会有所不同。此外,在不同平台上检索自定义参数需遵循不同的规则。例如,KVM 要求虚拟服务器在进行修改时停止运行。Power Systems 服务器允许修改活动的虚拟服务器,但是如果虚拟服务器被停止,那么只有一部分属性可用。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/hosts/{hostOID}/virtualServers/{vsOID}/customization
  • HTTP 方法
    • GET
  • 样例请求

    获得修改虚拟服务器 6798 所需的虚拟化属性:

    GET https://myserver:port/ibm/director/rest/VMControl/hosts/6797/virtualServers/6798/customization

    样例响应表示查看清单 6

修改虚拟服务器

下一步是请求一个将要修改的虚拟服务器。修改虚拟服务器是一个异步操作。首先是为您的请求填充 JSON。使用上面列出的自定义参数创建一个 JSON 字符串,其中包含虚拟服务器的自定义属性的名称/值对。

响应包含同一个 URL 的两个副本。两个 URL 分别位于位置 header 和响应消息,并同时指向修改虚拟服务器 任务的作业激活记录。作业激活记录包含修改虚拟服务器 请求的状态,包括完成百分比和任何状态或错误消息。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/hosts/{hostOID}/virtualServers/{vsOID}
  • HTTP 方法
    • PUT
  • 样例请求

    修改惟一 ID 为 6798 的虚拟服务器:

    PUT https://myserver:port/ibm/director/rest/VMControl/hosts/6649/virtualServers/6798

    清单 5. 样例响应显示
    {
        "virtualServer":{
            "properties":[{
                    "name":"cpu",
                    "value":2
                }
            ]
        }
    }
    清单 6. HTTP 响应
    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 virtual server was started.\n
    	Refer to the following URI for job activation status: 
    	/ibm/director/rest/jobs/154/activations/1",
      "MessageID": ""
    }

监视修改虚拟服务器 作业

修改虚拟服务器的最后一个步骤是监视它的完成过程。推荐方法是通过作业激活记录来监视虚拟服务器的修改。如上所述,该 URL 在 PUT 请求的响应中返回。通过对该 URL 进行轮询可监视作业激活记录,但是建议使用 JMS 提供者。

IBM Systems Director 服务器包含一个 JMS 提供者,用于与相关的客户机应用程序交换事件和其他重要消息。它支持在两个或更多应用程序之间进行异步通信。作业激活记录可以通过 Director.jobs.activation JMS 主题进行异步监视。

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


删除虚拟服务器

列出将要删除的虚拟服务器

第一步是检索可用的虚拟服务器列表。可以通过两种方式实现:检索所有已知的虚拟服务器,或者检索某个主机上的虚拟服务器列表。本例检索了所有的虚拟服务器。

注意:虚拟服务器的 URL 包含该主机。在虚拟服务器上执行的任何操作,包括创建、编辑和删除,都通过这些 URL 完成。virtualServers 资源是一个 helper URL,它将列出所有虚拟服务器,这是它的惟一用途。

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

    获得所有虚拟服务器的列表:

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

    清单 7. 样例响应表示
    {
       "uri":"/ibm/director/rest/VMControl/virtualServers"
       "virtualServers":[
          {
             "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/6798",
             "name":"myVirtualServer1",
             "oid":6798
             "customization":{
                "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/6798/
    								customization"
             },
             "state":{
                "label":"Started",
                "id":8
             },
          },
          {
             "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/7648",
             "name":"myVirtualServer2",
             "oid":7468
             "customization":{
                "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/7648/
    								customization"
             },
             "state":{
                "label":"Started",
                "id":8
             },
          },
          {
             "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/8200",
             "name":"myVirtualServer3",
             "oid":8200
             "customization":{
                "uri":"/ibm/director/rest/VMControl/hosts/6797/virtualServers/8200/
    								customization"
             },
             "state":{
                "label":"Started",
                "id":8
             },
          }
    }

删除虚拟服务器

下一步是请求要删除的虚拟服务器。删除虚拟服务器是一个异步操作。

响应者的位置 HTTP header 包含删除虚拟服务器 任务的作业激活记录。作业激活记录包含删除虚拟服务器 请求的状态,包括完成百分比和任何状态或错误消息。

  • URL
    • https://myserver:port/ibm/director/rest/VMControl/hosts/{hostOID}/virtualServers/{vsOID}
  • HTTP 方法
    • DELETE
  • 样例请求

    删除惟一 ID 为 6798 的虚拟服务器:

    DELETE https://myserver:port/ibm/director/rest/VMControl/hosts/6649/virtualServers/6798

    清单 8. 样例响应表示
    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 Virtual Server\" job [1] started.\nRefer 
    	to the following URI for status: /ibm/director/rest/jobs/1964/activations/1 ",
      "MessageID": "DNZEMW051I"
    }

监视 delete a virtual server 作业

最后一步是监视它的完成过程。推荐方法是通过作业激活记录来监视虚拟服务器的删除。如上所述,该 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)
  • 基于 REST 的 Web 服务
  • 如何使用 Java 针对 IBM Systems Director 测试 REST API
  • 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, Java technology
ArticleID=930382
ArticleTitle=IBM Systems Director VMControl 资源生命周期管理: 第 1 部分
publish-date=05202013