IBM Systems Director VMControl 的多磁盘管理: 第 1 部分

使用 IBM Systems Director VMControl 对虚拟服务器进行多磁盘管理

IBM® Systems Director 是一个平台管理解决方案,用于管理物理和虚拟系统。IBM Systems Director 为系统管理人员提供了管理平台,帮助降低了 IT 管理复杂性和成本。IBM Systems Director VMControl™ 是一个安装在 IBM Systems Director 之上的高级插件,旨在提供虚拟化功能。本教程探讨了如何使用 VMControl 具象状态传输 (REST) 应用编程接口 (API) 和命令行接口 (CLI) 对虚拟服务器进行多磁盘管理。

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

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



2013 年 8 月 19 日

开始之前

了解应从本文学到什么,以及如何充分理解本文。

关于本系列

IBM Systems Director VMControl 高级管理器简化了涵盖多种虚拟化技术和硬件平台的虚拟环境的管理。VMControl 是各个 IBM Systems Director 版本中包含的一个领先的多平台虚拟化管理解决方案。VMControl 支持 3 种类型的接口(GUI、CLI 和 REST API)。本系列文章包含以下主题:

  • 虚拟服务器多磁盘管理:本教程解决了最终用户在执行与虚拟服务器的多磁盘管理相关的操作时面临的问题。对自定义表参数不太熟悉的最终用户会发现,在虚拟服务器中添加或删除磁盘很困难。
  • 执行多磁盘管理来建立虚拟设备和修订版控制:本教程解决了最终用户在执行多磁盘管理来创建虚拟设备和在捕获期间控制修订版时面临的问题。对自定义表参数不太熟悉的最终用户会发现,执行多磁盘捕获以及在捕获期间对虚拟设备执行版本控制很困难。
  • 执行多磁盘管理来部署工作负载:本教程解决了最终用户在执行多磁盘管理来部署工作负载期间面临的问题。对自定义表参数不太熟悉的最终用户会发现,在部署期间对磁盘执行修改和映射很困难。

本系列文章可帮助所有 VMControl 用户了解如何通过 REST 和 CLI 执行 VMControl 多磁盘管理功能。

关于本教程

虚拟服务器的多磁盘管理包含以下主要操作,这些操作同时使用了 REST API 和 CLI:

  • 创建一个虚拟服务器和添加一个现有磁盘
  • 创建一个虚拟服务器和添加新的磁盘
  • 编辑一个虚拟服务器,以添加一个现有磁盘
  • 编辑一个虚拟服务器,以添加一个新磁盘
  • 编辑一个虚拟服务器,以删除一个磁盘

本教程将涵盖 IBM Power® 和基于内核的虚拟机 (KVM) 上的所有这些功能。

图 1 显示了使用 IBM Systems Director VMControl 对虚拟服务器执行多磁盘管理的流程图。

图 1. 虚拟服务器多磁盘管理
图 1

目标

本教程的主要目标是帮助用户了解虚拟服务器多磁盘功能。虚拟服务器的多磁盘管理具有不同的资源特性。本教程主要关注 KVM 和 Power 资源特性。文中提供了一些实际的示例来帮助用户向虚拟服务器添加新磁盘和现有磁盘。

先决条件

在继续后面的操作之前,应该在您的系统上安装 IBM Systems Director V6.x.x。本教程假设您熟悉 IBM Systems Director 的使用,还假设您对 JSON 数据格式有一定的了解,并知道如何使用最喜欢的 HTTP 客户端执行 HTTP GET、POST、PUT 和 DELETE 调用,对 VMControl 的 smcli 命令也有相应的了解。本教程还假设您对 VMControl 的虚拟服务器资源有一定的了解。

系统要求

您系统上应拥有以下组件:

  • 安装并配置了 IBM Systems Director
  • 激活了 IBM Systems Director VMControl 高级管理器
  • 运行远程请求的 HTTP 客户端
  • 运行 CLI 命令的 Putty

在通过 REST API 创建虚拟服务器时执行多磁盘管理

1. 在 IBM Power 平台上:

  • 通过 REST API 进行虚拟服务器自定义:

    自定义参数是惟一的、特定于平台的属性,允许用户自定义他们正在执行的操作。自定义参数有许多不同的类型,但所有类型都以某种类似方式指定。如果向下面指定的 URL 发出一个 GET 请求,那么结果将是一个可用于创建虚拟服务器的自定义参数列表。

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

    注意:有关自定义参数的更多信息,请参阅 IBM Systems Director 6.3.x SDK 信息中心中的 VMControl 编程主题章节。

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

      在主机惟一 ID 7751 上创建一个新虚拟服务器时,获取可用的虚拟化属性:

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

      清单 1. 样例响应表示

    注意:由于篇幅所限,教程中并未列出在 KVM 平台上创建虚拟服务器的自定义属性,但本文提供了一些在 KVM 平台上创建虚拟服务器时添加新磁盘或现有磁盘的实时示例。

  • 通过 REST API 创建虚拟服务器时添加一个现有磁盘或新磁盘:

    要添加现有磁盘,在 Power 资源特性上创建虚拟服务器时,可使用以下表参数:

    • npivdisks
    • diskphysicalvolumes
    • disks

    要添加新磁盘,在 Power 资源特性上创建虚拟服务器时,可使用以下表参数:

    • storagepools
    • npivstoragepools

    以下是相同操作的实时示例:

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

      在 Power 平台上惟一 ID 为 7751 的主机上创建一个虚拟服务器:

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

      清单 2 给出了一个样例 JSON,使用 npivdisks 表参数创建了一个新虚拟服务器来添加现有磁盘。

      清单 2. 使用 npivdisks 的样例请求表示 1
      {
          "virtualServer": {
              "properties": [
                  {
                      "name": "name",
                      "value": "VS3"
                  },
                  {
                      "name": "gos",
                      "value": "IBM Power - AIXLINUX"
                  },
                  {
                      "name": "cpudedicated",
                      "value": 1
                  },
                  {
                      "name": "cpumode",
                      "value": "DEDICATED"
                  },
                  {
                      "name": "memsize",
                      "value": "512"
                  }
              ],
              "addRowProperties": [
                  {
                      "assigneddisks": [
                          {
                              "name": "diskpriority",
                              "value": 2
                          },
                          {
                              "name": "addexistingdisk",
                              "value": "npivdisks[16424]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 3 给出了一个样例 JSON,使用 diskphysicalvolumes 表参数创建了一个新虚拟服务器来添加现有磁盘。

      清单 3. 使用 diskphysicalvolumes 的样例请求表示 2
      {
          "virtualServer": {
              "properties": [
                  {
                      "name": "name",
                      "value": "VS3"
                  },
                  {
                      "name": "gos",
                      "value": "IBM Power - AIXLINUX"
                  },
                  {
                      "name": "cpudedicated",
                      "value": 1
                  },
                  {
                      "name": "cpumode",
                      "value": "DEDICATED"
                  },
                  {
                      "name": "memsize",
                      "value": "512"
                  }
              ],
              "addRowProperties": [
                  {
                      "assigneddisks": [
                          {
                              "name": "diskpriority",
                              "value": 2
                          },
                          {
                              "name": "addexistingdisk",
                              "value": "diskphysicalvolumes[19501]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 4 给出了一个样例 JSON,使用 storagepools 表参数创建了一个新虚拟服务器来添加新磁盘。

      清单 4. 使用 storagepools 的样例请求表示 3
      {
          "virtualServer": {
              "properties": [
                  {
                      "name": "name",
                      "value": "VS3"
                  },
                  {
                      "name": "gos",
                      "value": "IBM Power - AIXLINUX"
                  },
                  {
                      "name": "cpudedicated",
                      "value": 1
                  },
                  {
                      "name": "cpumode",
                      "value": "DEDICATED"
                  },
                  {
                      "name": "memsize",
                      "value": "512"
                  }
              ],
              "addRowProperties": [
                  {
                      "assigneddisks": [
                          {
                              "name": "diskname",
                              "value": "piyush_disk2"
                          },
                          {
                              "name": "disksize",
                              "value": 2
                          },
                          {
                              "name": "diskpriority",
                              "value": 1
                          },
                          {
                              "name": "adddisklocation",
                              "value": "storagepools[16343]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 5 给出了一个样例 JSON,使用 npivstoragepools 表参数创建了一个新虚拟服务器来添加新磁盘。

      清单 5. 使用 npivstoragepools 的样例请求表示 4
      {
          "virtualServer": {
              "properties": [
                  {
                      "name": "name",
                      "value": "VS3"
                  },
                  {
                      "name": "gos",
                      "value": "IBM Power - AIXLINUX"
                  },
                  {
                      "name": "cpudedicated",
                      "value": 1
                  },
                  {
                      "name": "cpumode",
                      "value": "DEDICATED"
                  },
                  {
                      "name": "memsize",
                      "value": "512"
                  }
              ],
              "addRowProperties": [
                  {
                      "assigneddisks": [
                          {
                              "name": "diskname",
                              "value": "piyush_disk1"
                          },
                          {
                              "name": "disksize",
                              "value": 2
                          },
                          {
                              "name": "diskpriority",
                              "value": 1
                          },
                          {
                              "name": "adddisklocation",
                              "value": "npivstoragepools[16343]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 6 给出了运行上面的请求后的样例响应。

      清单 6. 样例响应
      HTTP/1.1 201 OK
      Cache-Control: no-store
      Set-Cookie: JSESSIONID_ibm_console_80=0000RKkZt6lgPMwBhSZe9IhR7dl;Path=/; Secure
      Set-Cookie: AUTH_JSESSIONID=24mcoj9cotsd8m3r7k7r1lir9dr;Path=/; HTTPOnly
      Expires: Thu, 01 Dec 1994 16:00:00 GMT
      Content-Type: application/octet-stream; charset=UTF-8
      Content-Length: 190
      Date: Sun, 03 Feb 2013 10:43:24 GMT
      Location: https://1.2.3.4:8422/ibm/director/rest/VMControl/hosts/7751/
      								virtualServers/VS3
      Accept-Ranges: bytes
      Server: Noelios-Restlet-Engine/1.1.4
      Content-Language: en-US
      
      {
          "MessageID": "DNZEMW066I",
          "MessageText": "DNZEMW066I New \"Create Virtual Server\" job [1] started.
      	\nRefer to the following URI for status: /ibm/director/rest/jobs/353/
      	activations/1"
      }

2. 在 KVM 平台上:

  • 通过 REST API 创建虚拟服务器时,可添加一个现有磁盘或新磁盘:

    要添加现有磁盘,在 KVM 资源特性上创建虚拟服务器时,可使用以下表参数:

    • existingdisks

    要添加新磁盘,在 KVM 资源特性上创建虚拟服务器期间,可使用以下表参数:

    • disklocationandsize

    现在,让我们看看一些实现相同目标的实时示例:

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

      在 KVM 平台上惟一 ID 为 7751 的主机上创建一个虚拟服务器:

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

      清单 7 给出了一个样例 JSON,使用 existingdisks 表参数创建了一个新虚拟服务器来添加现有磁盘。

      清单 7. 使用 existingdisks 的样例响应表示
      {
          "virtualServer": {
              "properties": [
                  {
                      "name": "name",
                      "value": "VS3"
                  },
                  {
                      "name": "cpumin",
                      "value": 1
                  },
                  {
                      "name": "memminvu[MB]",
                      "value": "vmemsize:64"
                  },
                  {
                      "name": "ethernet",
                      "value": " Discovered/br500/0:Auto set"
                  }
              ],
              "addRowProperties": [
                  {
                      "assigneddisks": [
                          {
                              "name": "diskpriority",
                              "value": 2
                          },
                          {
                              "name": "addexistingdisk",
                              "value": "existingdisks[File/6875/6821]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 8 显示了一个样例 JSON,使用 disklocationandsize 表参数创建了一个新虚拟服务器来添加新磁盘。

      清单 8. 使用 disklocationandsize 的样例响应表示
      {
          "virtualServer": {
              "properties": [
                  {
                      "name": "name",
                      "value": "VS3"
                  },
                  {
                      "name": "cpumin",
                      "value": 1
                  },
                  {
                      "name": "memminvu[MB]",
                      "value": "vmemsize:64"
                  },
                  {
                      "name": "ethernet",
                      "value": " Discovered/br500/0:Auto set"
                  }
              ],
              "addRowProperties": [
                  {
                      "assigneddisks": [
                          {
                              "name": "diskname",
                              "value": "VS3"
                          },
                          {
                              "name": "disksize",
                              "value": 10
                          },
                          {
                              "name": "virtualbustype",
                              "value": "ide"
                          },
                          {
                              "name": "virtualdiskemulation",
                              "value": "Hard Disk"
                          },
                          {
                              "name": "adddisklocation",
                              "value": "disklocationandsize[13219]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 9 显示了运行上面的请求后的样例响应。

      清单 9. 样例响应
      HTTP/1.1 201 OK
      Cache-Control: no-store
      Set-Cookie: JSESSIONID_ibm_console_80=0000QuVv06sJFXlLL5LOjharXzq;Path=/; Secure
      Set-Cookie: AUTH_JSESSIONID=4e7q338gpg6pdteddf9m83d1ns8;Path=/; HTTPOnly
      Expires: Thu, 01 Dec 1994 16:00:00 GMT
      Content-Type: application/octet-stream; charset=UTF-8
      Content-Length: 190
      Date: Sun, 03 Feb 2013 12:38:00 GMT
      Location: https://1.2.3.5:8422/ibm/director/rest/VMControl/hosts/7751/
      								virtualServers/VS3
      Accept-Ranges: bytes
      Server: Noelios-Restlet-Engine/1.1.4
      Content-Language: en-US
      
      {
          "MessageID": "DNZEMW066I",
          "MessageText": "DNZEMW066I New \"Create Virtual Server\" job [1] started.
      	\nRefer to the following URI for status: /ibm/director/rest/jobs/359/
      	activations/1 "
      }

在通过 REST API 编辑虚拟服务器时执行多磁盘管理

1. 在 Power 平台上:

  • 通过 REST API 编辑虚拟服务器自定义:

    自定义参数是惟一的、特定于平台的属性,允许用户自定义他们正在执行的操作。自定义参数具有许多不同的类型,但所有类型都以某种类似方式指定。

    下面的示例给出了一个典型 IBM Power Systems™ 环境中的自定义参数。其他平台(比如 KVM、z/VM 等)的自定义参数将会有所不同。此外,用于检索不同平台上的自定义的规则各不相同,例如,KVM 要求停止虚拟服务器之后才能修改它。Power Systems 服务器允许您修改一个活动的虚拟服务器,但是,如果该虚拟服务器已经停止,那么仅有一部分属性可供修改。

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

      获取用于修改虚拟服务器 25641 的虚拟化属性:

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

      清单 10. 样例响应表示

    注意:由于篇幅所限,本教程中并未列出用于修改 KVM 平台上的一个虚拟服务器的自定义属性,但本文提供了一些在修改 KVM 平台上的虚拟服务器时添加或删除磁盘的实时示例。

  • 在通过 REST API 编辑一个虚拟服务器时添加现有磁盘或新磁盘:

    现在,让我们看看一些实现相同目标的实时示例:

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

      修改具有惟一 ID 25641 的虚拟服务器:

      PUT https://myserver:port/ibm/director/rest/VMControl/hosts/7751/virtualServers/25641

      清单 11 给出了一个样例 JSON,使用 npivdisks 表参数修改了一个虚拟服务器来添加现有磁盘。

      清单 11. 使用 npivdisks 的样例请求表示 1
      {
          "virtualServer":{
              "addRowProperties":[{
                      "assigneddisks":[{
                              "name":"diskpriority",
                              "value":"2"
                          },
                          {
                              "name":"addexistingdisk",
                              "value":"npivdisks[16424]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 12 给出了一个样例 JSON,使用 diskphysicalvolumes 表参数修改了一个虚拟服务器来添加现有磁盘。

      清单 12. 使用 diskphysicalvolumes 的样例请求表示 2
      {
          "virtualServer":{
              "addRowProperties":[{
                      "assigneddisks":[{
                              "name":"diskpriority",
                              "value":"2"
                          },
                          {
                              "name":"addexistingdisk",
                              "value":"diskphysicalvolumes[19501]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 13 给出了一个样例 JSON,使用 storagepools 表参数修改了一个虚拟服务器来添加新磁盘。

      清单 13. 使用 storagepools 的样例请求表示 3
      {
          "virtualServer":{
              "addRowProperties":[{
                      "assigneddisks":[{
                              "name": "diskname",
                              "value": "piyush_disk2"
                          },
                          {
                              "name": "disksize",
                              "value": 2
                          },
      					{
                              "name":"diskpriority",
                              "value":"2"
                          },
                          {
                              "name":"adddisklocation",
                              "value":"storagepools[16343]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 14 给出了上面的请求的样例响应。

      清单 14. 样例响应
      HTTP/1.1 202 OK
      Cache-Control: no-store
      Set-Cookie: JSESSIONID_ibm_console_80=0000jZA5qqETCy0Mn6s5cw9MhPd;Path=/; Secure
      Set-Cookie: AUTH_JSESSIONID=53gq77ih3t07pb65epi2h10i3f4;Path=/; HTTPOnly
      Expires: Thu, 01 Dec 1994 16:00:00 GMT
      Content-Type: application/octet-stream; charset=UTF-8
      Content-Length: 200
      Date: Sun, 03 Feb 2013 12:27:11 GMT
      Location: https://1.2.3.4:8422/ibm/director/rest/jobs/359/activations/1
      Accept-Ranges: bytes
      Server: Noelios-Restlet-Engine/1.1.4
      Content-Language: en-US
      
      {
          "MessageID": "",
          "MessageText": "New job activation for updating the virtual server was 
      	started.\nRefer to the following URI for job activation status: 
      	/ibm/director/rest/jobs/359/activations/1"
      }
  • 通过 REST API 从现有的虚拟服务器删除一个磁盘:这同样是一种编辑虚拟服务器 操作。
    • URL
      • https://myserver:port/ibm/director/rest/VMControl/hosts/{hostOID}/virtualServers/{vsOID}
    • HTTP 方法
      • PUT
    • 样例请求

      修改具有惟一 ID 25641 的虚拟服务器:

      PUT https://myserver:port/ibm/director/rest/VMControl/hosts/7751/virtualServers/25641

      清单 15 给出了一个通过修改虚拟服务器来删除已分配的磁盘的样例 JSON。

      清单 15. 样例请求表示
      {
          "virtualServer":{
              "properties":[{
                      "name":"assigneddisks",
                      "value":"removeRow:25663"
                  }
              ]
          }
      }

      响应将与清单 14相同。

2. 在 KVM 平台上:

  • 在通过 REST API 修改一个虚拟服务器时添加现有磁盘或新磁盘:

    现在,让我们看看一些实现相同目标的实时示例:

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

      修改 KVM 平台上具有惟一 ID 7751 的主机上的一个虚拟服务器:

      PUT https://myserver:port/ibm/director/rest/VMControl/hosts/7751/virtualServers/12345

      清单 16 给出了一个样例 JSON,使用 existingdisks 表参数修改了一个虚拟服务器来添加现有磁盘。

      清单 16. 使用 existingdisks 的样例响应表示
      {
          "virtualServer":{
              "addRowProperties":[{
                      "assigneddisks":[{
                              "name":"diskpriority",
                              "value":7
                          },
                          {
                              "name":"addexistingdisk",
                              "value":"existingdisks[File/23382/18807]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 17 给出了一个样例 JSON,使用 disklocationandsize 表参数修改了一个虚拟服务器来添加新磁盘。

      清单 17. 使用 disklocationandsize 的样例响应表示
      {
          "virtualServer":{
              "addRowProperties":[{
                      "assigneddisks":[                    {
                              "name": "diskname",
                              "value": "VS3"
                          },
                          {
                              "name": "disksize",
                              "value": 1
                          },
                          {
                              "name": "virtualbustype",
                              "value": "ide"
                          },
                          {
                              "name": "virtualdiskemulation",
                              "value": "Hard Disk"
                          },
                          {
                              "name":"adddisklocation",
                              "value":"disklocationandsize[18807]"
                          }
                      ]
                  }
              ]
          }
      }

      清单 18 给出了上面的请求的样例响应。

      清单 18. 样例响应
      HTTP/1.1 201 OK
      Cache-Control: no-store
      Set-Cookie: JSESSIONID_ibm_console_80=0000QuVv06sJFXlLL5LOjharXzq;Path=/; Secure
      Set-Cookie: AUTH_JSESSIONID=4e7q338gpg6pdteddf9m83d1ns8;Path=/; HTTPOnly
      Expires: Thu, 01 Dec 1994 16:00:00 GMT
      Content-Type: application/octet-stream; charset=UTF-8
      Content-Length: 190
      Date: Sun, 03 Feb 2013 12:38:00 GMT
      Location: https://1.2.3.5:8422/ibm/director/rest/VMControl/hosts/7751/
      								virtualServers/VS3
      Accept-Ranges: bytes
      Server: Noelios-Restlet-Engine/1.1.4
      Content-Language: en-US
      
      {
          "MessageID": "DNZEMW066I",
          "MessageText": "DNZEMW066I New \"Create Virtual Server\" job [1] started.
      	\nRefer to the following URI for status: /ibm/director/rest/jobs/359/
      	activations/1 "
      }
  • 通过 REST API 从现有虚拟服务器中删除一个磁盘
    • URL
      • https://myserver:port/ibm/director/rest/VMControl/hosts/{hostOID}/virtualServers/{vsOID}
    • HTTP 方法
      • PUT
    • 样例请求

      修改具有惟一 ID 12345 的虚拟服务器:

      PUT https://myserver:port/ibm/director/rest/VMControl/hosts/7751/virtualServers/12345

      清单 19 显示了了一个通过修改虚拟服务器来删除已分配的磁盘的样例 JSON。

      清单 19. 样例请求表示
      {
          "virtualServer":{
              "properties":[{
                      "name":"assigneddisks",
                      "value":"removeRow:F958A577E8D1331CBC5925A8266D1FC8"
                  }
              ]
          }
      }

      响应将与清单 18 相同。


在通过 CLI 创建虚拟服务器时执行多磁盘管理

1. 在 Power 平台上:

  • 创建虚拟服务器自定义:

    自定义参数是惟一的、特定于平台的属性,允许用户自定义他们正在执行的操作。自定义参数具有许多不同的类型,但所有类型都以某种类似方式指定。如果使用 lsvrtcap smcli 命令和 mkvs 选项,如下所示,结果将是一个可用于创建一个虚拟服务器的自定义参数列表。

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

    清单 20. 样例响应表示

    注意:由于篇幅所限,本教程中未列出在 KVM 平台上创建虚拟服务器的自定义属性,但本文提供了在 KVM 平台上创建虚拟服务器时添加新磁盘或现有磁盘的一些实时示例。

  • 在创建虚拟服务器时添加一个现有磁盘:
    • 在创建虚拟服务器时使用 npivdisks 添加一个现有磁盘:此示例演示了如何使用 npivdisks 表参数在创建虚拟服务器时添加一个现有磁盘。
      清单 21. 样例响应表示
      USERID@c598n34:~> smcli mkvs -n Server-7895-23X-SN103607B -A "name=VS4,
      	gos=IBM Power - AIXLINUX,cpumode=DEDICATED,cpudedicated=1,memsize=512,
      	memunitsize=MB" -s "assigneddisks=addexistingdisk:npivdisks[16424];
      	diskpriority:1" -v
      Attempt to get capabilities.
      Attempt to create virtual server.
      Create virtual server operation completed successfully.
      USERID@c598n34:~>
    • 在创建虚拟服务器时使用 diskphysicalvolumes 添加一个现有磁盘:此示例演示了如何使用 diskphysicalvolumes 表参数在创建虚拟服务器时添加一个现有磁盘:
      清单 22. 样例响应表示
      USERID@c598n34:~> smcli mkvs -n Server-7895-23X-SN103607B -A "name=VS4,
      	gos=IBM Power - AIXLINUX,cpumode=DEDICATED,cpudedicated=1,memsize=512,
      	memunitsize=MB" -s "assigneddisks=addexistingdisk:diskphysicalvolumes
      	[19501];diskpriority:1" -v
      Attempt to get capabilities.
      Attempt to create virtual server.
      Create virtual server operation completed successfully.
      USERID@c598n34:~>
  • 在创建一个虚拟服务器时添加一个新磁盘:
    • 在创建虚拟服务器时使用 storagepools 添加一个新磁盘:此示例演示了如何使用 storagepools 表参数在创建一个虚拟服务器时添加一个新磁盘。
      清单 23. 样例响应表示
      USERID@c598n34:~> smcli mkvs -n Server-7895-23X-SN103607B -A "name=VS5,
      	gos=IBM Power - AIXLINUX,cpumode=DEDICATED,cpudedicated=1,memsize=512,
      	memunitsize=MB" -s "assigneddisks=adddisklocation:storagepools[16343];
      	diskpriority:1;diskname:piyush_disk3;disksize:2" -v
      Attempt to get capabilities.
      Attempt to create virtual server.
      Create virtual server operation completed successfully.
      USERID@c598n34:~>
    • 在创建虚拟服务器时使用 npivstoragepools 添加一个新磁盘:此示例演示了如何使用 npivstoragepools 表参数在创建一个虚拟服务器时添加一个新磁盘。
      清单 24. 样例响应表示
      USERID@c598n34:~> smcli mkvs -n Server-7895-23X-SN103607B -A "name=VS6,
      	gos=IBM Power - AIXLINUX,cpumode=DEDICATED,cpudedicated=1,memsize=512,
      	memunitsize=MB" -s "assigneddisks=adddisklocation:npivstoragepools
      	[16343];diskpriority:1;diskname:piyush_disk3;disksize:2" -v
      Attempt to get capabilities.
      Attempt to create virtual server.
      Create virtual server operation completed successfully.
      USERID@c598n34:~>

2. 在 KVM 平台上:

  • 在创建虚拟服务器时添加一个现有磁盘:
    • 在创建虚拟服务器时使用 existingdisks 添加一个现有磁盘:此示例演示了如何使用 existingdisks 表参数在创建虚拟服务器时添加一个现有磁盘。
      清单 25. 样例响应表示
      xnl1207:~ # smcli mkvs -A "name=VS1,cpumin=1,memminvu[MB]=vmemsize:64,
      	ethernet=Discovered/br500/0:Auto set" -s "assigneddisks=addexistingdisk:
      	existingdisks[File/6875/6821];diskpriority:2" -i 9.12.32.159 -v
      Attempt to get capabilities.
      Attempt to create virtual server.
      Create virtual server operation completed successfully.
      xnl1207:~ #
  • 在创建虚拟服务器时添加一个新磁盘:
    • 在创建虚拟服务器时使用 disklocationandsize 添加一个新磁盘:此示例演示了如何使用 disklocationandsize 表参数在创建虚拟服务器时添加一个新磁盘。
      清单 26. 样例响应表示
      xnl1207:~ # smcli mkvs -A "name=VS1,cpumin=1,memminvu[MB]=vmemsize:64,
      	ethernet=Discovered/br500/0:Auto set" -s "assigneddisks=adddisklocation:
      	disklocationandsize[13219];diskname:VS1;disksize:10;virtualbustype:ide;
      	virtualdiskemulation:Hard Disk" -i 9.12.32.159 -v
      Attempt to get capabilities.
      Attempt to create virtual server.
      Create virtual server operation completed successfully.
      xnl1207:~ #

在通过 CLI 编辑虚拟服务器时执行多磁盘管理

1. 在 Power 平台上:

  • 编辑虚拟服务器自定义:

    自定义参数是惟一的、特定于平台的属性,允许用户自定义他们正在执行的操作。自定义参数具有许多不同的类型,但所有类型都以一种类似方式指定。使用 lsvrtcap smcli 命令和 chvs 选项,如下所示。

    下面的示例给出了一个典型 IBM Power Systems 环境中的自定义参数。其他平台(比如 KVM、z/VM 等)的自定义参数将有所不同。此外,用于检索不同平台上的自定义的规则各不相同。例如,KVM 要求在停止虚拟服务器之后才能修改虚拟服务器。IBM Power Systems 服务器允许您修改一个活动的虚拟服务器,但如果该虚拟服务器已经停止,那么仅有一部分属性可供修改。

    清单 27. 样例响应表示

    注意:由于篇幅所限,本教程中未列出用于修改 KVM 平台上的一个虚拟服务器的自定义属性,但本文提供了一些在修改 KVM 平台上的虚拟服务器时添加或删除磁盘的实时示例。

  • 向现有虚拟服务器添加一个现有磁盘:
    • 使用 npivdisks 向现有虚拟服务器添加一个现有磁盘:此示例演示了如何使用 npivdisks 表参数向现有虚拟服务器添加一个现有磁盘。
      清单 28. 样例响应表示
      USERID@c598n34:~> smcli chvs -n VS3 -s "assigneddisks=addexistingdisk:npivdisks
      							[16424];diskpriority:1" -v
      Attempt to get capabilities.
      Attempt to modify virtual server 25710 (0x646e).
      Edit virtual server operation completed successfully.
      USERID@c598n34:~>
    • 使用 diskphysicalvolumes 向现有虚拟服务器添加一个现有磁盘:此示例演示了如何使用 diskphysicalvolumes 表参数向现有虚拟服务器添加一个现有磁盘。
      清单 29. 样例响应表示
      USERID@c598n34:~> smcli chvs -n VS3 -s "assigneddisks=addexistingdisk:
      				diskphysicalvolumes[19501];diskpriority:1" -v
      Attempt to get capabilities.
      Attempt to modify virtual server 25710 (0x646e).
      Edit virtual server operation completed successfully.
      USERID@c598n34:~>
  • 向现有虚拟服务器添加一个新磁盘:
    • 使用 storagepools 向现有虚拟服务器添加一个新磁盘:此示例演示了如何使用 storagepools 表参数向现有虚拟服务器添加一个新磁盘。
      清单 30. 样例响应表示
      USERID@c598n34:~> smcli chvs -n VS3 -s "assigneddisks=adddisklocation:
      	storagepools[16343];diskpriority:1;diskname:piyush_disk3;disksize:2" -v
      Attempt to get capabilities.
      Attempt to modify virtual server 25710 (0x646e).
      Edit virtual server operation completed successfully.
      USERID@c598n34:~>
  • 从现有虚拟服务器删除一个磁盘:
    • 使用 assigneddisks 从现有虚拟服务器删除一个磁盘:此示例演示了如何从现有虚拟服务器中删除一个磁盘。
      清单 31. 样例响应表示
      USERID@c598n34:~> smcli chvs -A "assigneddisks=-25652" -n 0x646e -v
      Attempt to get capabilities.
      Attempt to modify virtual server 25710 (0x646e).
      Edit virtual server operation completed successfully.
      USERID@c598n34:~>

2. 在 KVM 平台上:

  • 向现有虚拟服务器添加一个现有磁盘:
    • 使用 existingdisks 向现有虚拟服务器添加现有磁盘:此示例演示了如何使用 existingdisks 表参数向现有虚拟服务器添加一个现有磁盘。
      清单 32. 样例响应表示
      xnl1207:~ # smcli chvs -s "assigneddisks=addexistingdisk:existingdisks
      				[File/23382/18807];diskpriority:7" -n 0x7834 -v
      Attempt to get capabilities.
      Attempt to modify virtual server 30772 (0x7834).
      Edit virtual server operation completed successfully.
      xnl1207:~ #
  • 向现有虚拟服务器添加一个新磁盘:
    • 使用 disklocationandsize 向现有虚拟服务器添加一个新磁盘:此示例演示了如何使用 disklocationandsize 表参数,向现有虚拟服务器添加一个新磁盘。
      清单 33. 样例响应表示
      xnl1207:~ # smcli chvs -s "assigneddisks=adddisklocation:disklocationandsize
      		[18807];diskname:new6.3disk;disksize:1;virtualbustype:ide;
      		virtualdiskemulation:Hard Disk" -n 0x7834 -v
      Attempt to get capabilities.
      Attempt to modify virtual server 30772 (0x7834).
      Edit virtual server operation completed successfully.
      xnl1207:~ #
  • 从现有虚拟服务器中删除一个磁盘:
    • 使用 assigneddisks 从现有虚拟服务器删除一个磁盘:此示例演示了如何从现有虚拟服务器中删除一个磁盘。
      清单 34. 样例响应表示
      xnl1207:~ # smcli chvs -A "assigneddisks[751AF9A46B2C34128EEA164CDA6184DD]=
      					DataDiskRemoved:true" -n 0x7834 -v
      Attempt to get capabilities.
      Attempt to modify virtual server 30772 (0x7834).
      Edit virtual server operation completed successfully.
      xnl1207:~ #

参考资料

学习

获得产品和技术

讨论

  • 加入 developerWorks 社区。探索由开发人员推动的博客、论坛、群组和维基,并与其他 developerWorks 用户进行交流。

条评论

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=941296
ArticleTitle=IBM Systems Director VMControl 的多磁盘管理: 第 1 部分
publish-date=08192013