文档首页/ 裸金属服务器 BMS/ API参考/ 应用示例/ 示例3:裸金属服务器挂载磁盘
更新时间:2024-08-09 GMT+08:00

示例3:裸金属服务器挂载磁盘

操作场景

裸金属服务器创建成功后,如果发现磁盘不够用或当前磁盘不满足要求,可以将已有磁盘挂载给裸金属服务器,或调用创建云硬盘的接口创建新的磁盘,然后再挂载至裸金属服务器。挂载操作需要调用挂载云硬盘接口。

前提条件

由于某些机型的服务器没有配备SDI卡,或者其他服务器本身的原因,有些规格的裸金属服务器不支持挂载云硬盘。因此,您需要先确认裸金属服务器是否支持挂载云硬盘。判断方式如下:

调用查询规格详情和规格扩展信息列表API,确定响应参数中某个规格对应的“baremetal:__support_evs”的取值,如果为“true”表示支持挂载云硬盘,为“false”表示不支持。有些裸金属服务器规格中无此参数,也表示不支持云硬盘。

操作步骤

  1. 创建云硬盘。
    • 接口相关信息

      URI格式:POST /v2/{project_id}/volumes

      详情请参考“创建云硬盘”。

    • 请求示例

      POST https://{EVS Endpoint}/v2/05041fffa40025702f6dc009cc6f8f33/volumes

      {EVS Endpoint}信息请从“地区和终端节点”获取。

      Body:

      {
          "volume": {
              "name": "openapi_vol01", 
              "availability_zone": "cn-north-4a", 
              "description": "create for api test", 
              "volume_type": "SSD", 
              "metadata": {
                  "hw:passthrough": "true"
              },
              "size": 40
          }
      }

      裸金属服务器仅支持挂载SCSI类型的云硬盘,因此“hw:passthrough”参数必须取值“true”。

    • 响应示例
      {
          "volume": {
              "attachments": [],
              "links": [
                  {
                      "href": "https://evs.cn-north-4.myhuaweicloud.com/v2/05041fffa40025702f6dc009cc6f8f33/volumes/8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111",
                      "rel": "self"
                  },
                  {
                      "href": "https://evs.cn-north-4.myhuaweicloud.com/05041fffa40025702f6dc009cc6f8f33/volumes/8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111",
                      "rel": "bookmark"
                  }
              ],
              "availability_zone": "cn-north-4a",
              "encrypted": false,
              "updated_at": "2020-11-09T08:19:22.077967",
              "replication_status": "disabled",
              "storage_cluster_id": null,
              "snapshot_id": null,
              "id": "8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111",
              "size": 40,
              "user_id": "0504186e6a8010e01f3ec009a7279baa",
              "metadata": {
                  "hw:passthrough": "true"
              },
              "status": "creating",
              "description": "create for api test",
              "multiattach": false,
              "source_volid": null,
              "consistencygroup_id": null,
              "name": "openapi_vol01",
              "bootable": "false",
              "created_at": "2020-11-09T08:19:22.061273",
              "volume_type": "SSD",
              "shareable": false
          }
      }

      记录响应中volume的“ID”。

  2. 挂载云硬盘。
    • 接口相关信息

      URI格式:POST /v1/{project_id}/baremetalservers/{server_id}/attachvolume

      详情请参考裸金属服务器挂载云硬盘

    • 请求示例

      POST https://{BMS Endpoint}/v1/05041fffa40025702f6dc009cc6f8f33/baremetalservers/9ab74d89-61e7-4259-8546-465fdebe4944/attachvolume

      {BMS Endpoint}信息请从“地区和终端节点”获取。

      Body:

      {
          "volumeAttachment": {
              "volumeId": "8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111",
              "device": "/dev/sdb"
          }
      }
    • 响应示例
      {
          "volumeAttachment": {
              "id": "b53f23bd-ee8f-49ec-9420-d1acfeaf91d6",
              "volumeId": "8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111",
              "serverId": "9ab74d89-61e7-4259-8546-465fdebe4944",
              "device": "/dev/sdb"
          }
      }
  3. 确认挂载云硬盘是否成功。
    • 接口相关信息

      URI格式:GET /v1/{project_id}/baremetalservers/{server_id}/os-volume_attachments

      详情请参考查询裸金属服务器挂载的云硬盘信息

    • 请求示例

      GET https://{BMS Endpoint}/v1/05041fffa40025702f6dc009cc6f8f33/baremetalservers/9ab74d89-61e7-4259-8546-465fdebe4944/os-volume_attachments

      {BMS Endpoint}信息请从“地区和终端节点”获取。

    • 响应示例
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      {
          "volumeAttachments": [
              {
                  "device": "/dev/sdd",
                  "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
                  "serverId": "9ab74d89-61e7-4259-8546-465fdebe4944",
                  "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803"
              },
              {
                  "device": "/dev/sdb",
                  "id": "b53f23bd-ee8f-49ec-9420-d1acfeaf91d6",
                  "serverId": "9ab74d89-61e7-4259-8546-465fdebe4944",
                  "volumeId": "8ae4ff5b-7e6e-492f-b83a-8a51fdfa3111"
              }
          ]
      }