使用仅存储节点

本文档介绍了如何在 VMware Engine 中使用仅限存储的节点。仅存储节点(也称为存储节点)可用于扩缩 vSAN 集群的存储容量,而无需为集群添加核心或内存。您可以创建同时包含标准节点和仅存储节点的集群,然后使用 Google Cloud CLI 或 VMware Engine API 扩展或缩减这些节点。

Google Cloud CLI 和 API 要求

如需使用 gcloud 命令行工具或 API 管理 VMware Engine 资源,我们建议您按下文所述配置工具。

gcloud

  1. 设置默认项目 ID:

    gcloud config set project PROJECT_ID
    
  2. 设置默认区域和/或可用区:

    gcloud config set compute/region REGION
    gcloud config set compute/zone ZONE

如需详细了解 gcloud vmware 工具,请查看 Cloud SDK 参考文档

API

本文档集中的 API 示例使用 cURL 命令行工具来查询 API。cURL 请求中需要有效的访问令牌。获取有效访问令牌的方法有很多种:以下步骤使用 gcloud 工具生成访问令牌:

  1. 登录 Google Cloud

    gcloud auth login
    
  2. 生成访问令牌并导出到 TOKEN

    export TOKEN=`gcloud auth print-access-token`
    
  3. 验证 TOKEN 设置正确

    echo $TOKEN
    
    Output:
    TOKEN
    

现在,在对 API 的请求中使用授权令牌。例如:

curl -X GET -H "Authorization: Bearer \"$TOKEN\""  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations

Python

本文档中的 Python 代码示例使用 VMware Engine 库与 API 进行通信。为了能够使用此方法,需要安装该库并配置应用默认凭据

  1. 下载并安装 Python 库

     pip install google-cloud-vmwareengine
    
  2. 通过在 Shell 中执行这些命令来配置 ADC 信息

      gcloud auth application-default login
    

    或使用服务账号密钥文件

      export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

如需详细了解该库,请访问参考页面或查看 GitHub 上的代码示例

准备工作

在创建具有仅存储节点的私有云之前,请确认已存在 VMware Engine 网络。如果 VMware Engine 网络不存在,请输入 gcloud vmware networks create 命令,使用 Google Cloud CLI 创建一个:

   gcloud vmware networks create NETWORK_NAME \
      --type=STANDARD \
      --project=PROJECT_ID

替换以下内容:

  • NETWORK_NAME:网络的名称。
  • PROJECT_ID:请求的项目 ID。

列出可用的节点类型

如需验证您的项目和区域是否可使用仅限存储的节点,请使用 Google Cloud CLI 或 VMware Engine API 列出可用的节点类型。

gcloud

使用 gcloud vmware node-types list 命令列出可用的节点类型:

  gcloud vmware node-types list \
     --location=ZONE \
     --project=PROJECT_ID

替换以下内容:

  • ZONE:此请求对应的区域。
  • PROJECT_ID:此请求的项目 ID。

API

如需使用 VMware Engine API 列出可用的节点类型,请发出 GET 请求:

GET "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/nodeTypes"

替换以下内容:

  • PROJECT_ID:此请求的项目名称。
  • ZONE:私有云的可用区

创建仅包含存储节点的私有云

您可以使用 Google Cloud CLI 或 VMware Engine API 创建包含仅限存储的节点和标准节点的 VMware Engine 私有云。

gcloud

如需使用 Google Cloud CLI 创建具有仅限存储节点的私有云,请执行以下操作:

  1. 输入 gcloud private-clouds create 命令,创建包含 n standard-72 个节点和 m storage-only-standard-72 的私有云 PC_STORAGE_NODE_NAME

    gcloud vmware private-clouds create PC_STORAGE_NODE_NAME \
     --location=ZONE \
     --project=PROJECT_ID \
     --description=DESCRIPTION \
     --management-range=IP_ADDRESS \
     --cluster=CLUSTER_NAME \
     --node-type-config=type=standard-72,count=n \
     --node-type-config=type=storage-only-standard-72,count=m \
     --vmware-engine-network=NETWORK_NAME

    替换以下内容:

    • PC_STORAGE_NODE_NAME:包含仅存储节点的私有云的名称。
    • ZONE:此私有云的可用区。
    • PROJECT_ID:请求的项目 ID。
    • DESCRIPTION:此私有云的说明。
    • IP_ADDRESS:此私有云的 IP 地址和范围,例如 192.168.0.0/22
    • CLUSTER_NAME:此私有云中的新集群的名称。
    • n:此私有云主集群中的标准节点数。
    • m:此私有云主集群中的仅存储节点的数量。
    • NETWORK_NAME:网络的名称。
  2. 可选:如需确认创建包含仅存储节点的私有云,请输入 gcloud vmware private-clouds clusters describe 命令:

    gcloud vmware private-clouds clusters describe CLUSTER_NAME \
     --location=ZONE \
     --project=PROJECT_ID \
     --private-cloud=PC_STORAGE_NODE_NAME

    替换以下内容:

    • CLUSTER_NAME:此私有云中的新集群的名称。
    • ZONE:此私有云的可用区。
    • PROJECT_ID:请求的项目 ID。
    • PC_STORAGE_NODE_NAME:包含仅存储节点的私有云的名称。

API

如需使用 VMware Engine API 创建具有仅限存储节点的私有云,请发出 GET 请求:

GET "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds?alt=json&privateCloudId=PC_STORAGE_NODE_NAME" -d '{
  "description": "DESCRIPTION",
  "managementCluster": {
     "clusterId": "CLUSTER_NAME",
     "nodeTypeConfigs": {
        "standard-72": {
           "nodeCount": n
        },
        "storage-only-standard-72": {
           "nodeCount": m
        }
     }
     },
     "networkConfig": {
        "managementCidr": "IP_ADDRESS",
        "vmwareEngineNetwork": "projects/PROJECT_ID/locations/ZONE/vmwareEngineNetworks/NETWORK_NAME"
      }
     }'

替换以下内容:

  • PROJECT_ID:请求的项目 ID。
  • ZONE:此私有云的可用区。
  • PC_STORAGE_NODE_NAME:包含仅存储节点的私有云的名称。
  • DESCRIPTION:此私有云的说明。
  • CLUSTER_NAME:此私有云中的新集群的名称。
  • n:此私有云主集群中的标准节点数。
  • m:此私有云主集群中的仅存储节点的数量。
  • IP_ADDRESS:此私有云的 IP 地址和范围,例如 192.168.0.0/22
  • NETWORK_NAME:网络的名称。

展开包含仅存储节点的集群

您可以使用 Google Cloud CLI 或 VMware Engine API 添加仅限存储的节点,从而扩展标准集群,具体操作如下:

gcloud

如需使用 Google Cloud CLI 添加仅限存储的节点来扩展集群,请使用 gcloud vmware private-clouds clusters update 命令:

  gcloud vmware private-clouds clusters update CLUSTER_NAME \
     --private-cloud=PC_STORAGE_NODE_NAME \
     --location=ZONE \
     --project=PROJECT_ID \
     --update-nodes-config=type=storage-only-standard-72,count=m

替换以下内容:

  • CLUSTER_NAME:此私有云中集群的名称。
  • PC_STORAGE_NODE_NAME:私有云的名称。
  • ZONE:此私有云的可用区。
  • PROJECT_ID:请求的项目 ID。
  • m:此私有云的指定集群中仅存储的节点的新总数。

API

如需使用 VMware Engine API 添加仅限存储的节点来扩展集群,请发出 PATCH 请求:

PATCH "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_STORAGE_NODE_NAME/clusters/CLUSTER_NAME/?alt=json&updateMask=node_type_configs.*.node_count" -d '{
  "nodeTypeConfigs": {
     "standard-72": {
        "nodeCount": n
     },
     "storage-only-standard-72": {
        "nodeCount": m
     }
   }
  }'

替换以下内容:

  • PROJECT_ID:请求的项目 ID。
  • ZONE:此私有云的可用区。
  • PC_STORAGE_NODE_NAME:私有云的名称。
  • CLUSTER_NAME:此私有云中集群的名称。
  • n:此私有云的指定集群中的标准节点数。
  • m+1:此私有云的指定集群中仅存储的节点的新总数。

缩减仅包含存储节点的集群

您可以使用 Google Cloud CLI 或 VMware Engine API 缩减包含纯存储节点的集群,具体操作步骤如下:

gcloud

如需使用 Google Cloud CLI 缩减仅包含存储空间的节点的集群,请使用 gcloud vmware private-clouds clusters update 命令:

  gcloud vmware private-clouds clusters update CLUSTER_NAME \
     --private-cloud=PC_STORAGE_NODE_NAME \
     --location=ZONE \
     --project=PROJECT_ID \
     --update-nodes-config=type=storage-only-standard-72,count=m

替换以下内容:

  • CLUSTER_NAME:此私有云中集群的名称。
  • PC_STORAGE_NODE_NAME:私有云的名称。
  • ZONE:此私有云的可用区。
  • PROJECT_ID:请求的项目 ID。
  • m:此私有云的指定集群中仅存储的节点的新总数。

API

如需使用 VMware Engine API 缩减包含纯存储节点的集群,请发出 PATCH 请求:

PATCH "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_STORAGE_NODE_NAME/clusters/CLUSTER_NAME/?alt=json&updateMask=node_type_configs.*.node_count" -d '{
  "nodeTypeConfigs": {
     "standard-72": {
        "nodeCount": n
     },
     "storage-only-standard-72": {
        "nodeCount": m
     }
   }
  }'

替换以下内容:

  • PROJECT_ID:请求的项目 ID。
  • ZONE:此私有云的可用区。
  • PC_STORAGE_NODE_NAME:私有云的名称。
  • CLUSTER_NAME:此私有云中集群的名称。
  • n:此私有云的指定集群中的标准节点数。
  • m:此私有云的指定集群中仅存储的节点的新总数。

创建包含仅存储节点的新集群

您可以使用 Google Cloud CLI 或 VMware Engine API 在包含仅限存储的节点的现有私有云中创建新集群,具体操作步骤如下:

gcloud

如需使用 Google Cloud CLI 创建包含仅存储节点的新集群,请使用 gcloud vmware private-clouds clusters create 命令:

  gcloud vmware private-clouds clusters create CLUSTER_NAME \
     --private-cloud=PC_STORAGE_NODE_NAME \
     --location=ZONE \
     --project=PROJECT_ID \
     --node-type-config=type=standard-72,count=n \
     --node-type-config=type=storage-only-standard-72,count=m

替换以下内容:

  • CLUSTER_NAME:此私有云中的新集群的名称。
  • PC_STORAGE_NODE_NAME:私有云的名称。
  • ZONE:此私有云的可用区。
  • PROJECT_ID:请求的项目 ID。
  • n:此私有云的指定集群中的标准节点数。
  • m:此私有云的指定集群中仅存储的节点数。

API

如需使用 VMware Engine API 在私有云中创建仅存储节点的新集群,请发出 PATCH 请求:

PATCH "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_STORAGE_NODE_NAME/clusters?alt=json&clusterId=CLUSTER_NAME" -d '{
  "nodeTypeConfigs": {
     "standard-72": {
        "nodeCount": n
     },
     "storage-only-standard-72": {
        "nodeCount": m
     }
   }
  }'

替换以下内容:

  • PROJECT_ID:请求的项目 ID。
  • ZONE:此私有云的可用区。
  • PC_STORAGE_NODE_NAME:私有云的名称。
  • CLUSTER_NAME:此私有云中的新集群的名称。
  • n:此私有云的指定集群中的标准节点数。
  • m:此私有云的指定集群中仅存储的节点数。

删除仅具有存储节点的集群

您可以使用 Google Cloud CLI 或 VMware Engine API 删除包含纯存储节点的集群,具体操作步骤如下:

gcloud

如需使用 Google Cloud CLI 删除包含纯存储节点的集群,请使用 gcloud vmware private-clouds clusters delete 命令:

  gcloud vmware private-clouds clusters delete CLUSTER_NAME \
     --private-cloud=PC_STORAGE_NODE_NAME \
     --location=ZONE \
     --project=PROJECT_ID

替换以下内容:

  • CLUSTER_NAME:此私有云中集群的名称。
  • PC_STORAGE_NODE_NAME:私有云的名称。
  • ZONE:此私有云的可用区。
  • PROJECT_ID:请求的项目 ID。

API

如需使用 VMware Engine API 删除包含纯存储节点的集群,请发出 DELETE 请求:

DELETE "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PC_STORAGE_NODE_NAME/clusters/CLUSTER_NAME/?alt=json"

替换以下内容:

  • PROJECT_ID:请求的项目 ID。
  • ZONE:此私有云的可用区。
  • PC_STORAGE_NODE_NAME:私有云的名称。
  • CLUSTER_NAME:此私有云中集群的名称。

创建仅存储节点的扩展私有云

您可以使用 Google Cloud CLI 或 VMware Engine API 创建包含标准节点和仅限存储节点的 VMware Engine 扩展私有云。

gcloud

如需使用 Google Cloud CLI 创建包含仅限存储节点的扩展私有云,请执行以下操作:

  1. 输入 gcloud private-clouds create 命令来创建延伸私有云:

    gcloud vmware private-clouds create STRETCHED_PC_STORAGE_NODE_NAME \
     --description=DESCRIPTION \
     --location=REGION \
     --cluster=STRETCHED_CLUSTER_NAME \
     --node-type-config=type=standard-72,count=n \
     --node-type-config=type=storage-only-standard-72,count=m \
     --management-range=IP_ADDRESS \
     --vmware-engine-network=NETWORK_NAME
     --preferred-zone=projects/PROJECT_ID/locations/PREFERRED_ZONE \
     --secondary-zone=projects/PROJECT_ID/locations/SECONDARY_ZONE \
     --type=STRETCHED

    替换以下内容:

    • STRETCHED_PC_STORAGE_NODE_NAME:包含仅存储节点的扩展私有云的名称。
    • DESCRIPTION:此私有云的说明。
    • REGION:此私有云的区域。
    • STRETCHED_CLUSTER_NAME:此私有云中新集群的名称。
    • n:此私有云主集群中的标准节点总数(偶数)。
    • m:此私有云的主集群中的仅存储节点的总数(偶数)。
    • IP_ADDRESS:此私有云的 IP 地址和范围,例如 192.168.0.0/22
    • NETWORK_NAME:网络的名称。
    • PROJECT_ID:请求的项目 ID。
    • SECONDARY_ZONE:请求的次要可用区。
    • PREFERRED_ZONE:请求的首选区域。
  2. 可选:如需确认是否已创建扩展私有云以及标准节点和仅存储节点的数量,请分别使用 gcloud vmware private-clouds describegcloud vmware private-clouds clusters describe 命令:

    gcloud vmware private-clouds describe STRETCHED_PC_STORAGE_NODE_NAME \
     --location=REGION

    替换以下内容:

    • STRETCHED_PC_STORAGE_NODE_NAME:扩展私有云的名称。
    • REGION:此私有云的区域。
    gcloud vmware private-clouds clusters describe STRETCHED_CLUSTER_NAME \
     --location=REGION \
     --project=PROJECT_ID \
     --private-cloud=STRETCHED_PC_STORAGE_NODE_NAME

    替换以下内容:

    • STRETCHED_CLUSTER_NAME:此私有云中的扩展集群的名称。
    • REGION:此私有云的区域。
    • PROJECT_ID:请求的项目 ID。
    • STRETCHED_PC_STORAGE_NODE_NAME:扩展私有云的名称。

API

如需使用 VMware Engine API 创建包含仅限存储节点的扩展私有云,请发出 GET 请求:

GET "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds?alt=json&privateCloudId=PC_STORAGE_ONLY_NODE_NAME" -d '{
  "description": "DESCRIPTION",
  "managementCluster": {
     "clusterId": "CLUSTER_NAME",
     "nodeTypeConfigs": {
        "standard-72": {
           "nodeCount": n
        },
        "storage-only-standard-72": {
           "nodeCount": m
        }
     }
     },
     "networkConfig": {
        "managementCidr": "IP_ADDRESS",
        "vmwareEngineNetwork": "projects/PROJECT_ID/locations/ZONE/vmwareEngineNetworks/NETWORK_NAME"
      }
     }'

替换以下内容:

  • PROJECT_ID:请求的项目 ID。
  • ZONE:此私有云的可用区。
  • PC_STORAGE_NODE_NAME:包含仅存储节点的私有云的名称。
  • DESCRIPTION:此私有云的说明。
  • CLUSTER_NAME:此私有云中的新集群的名称。
  • n:此私有云主集群中的标准节点总数(偶数)。
  • m:此私有云的主集群中的仅存储节点的总数(偶数)。
  • IP_ADDRESS:此私有云的 IP 地址和范围,例如 192.168.0.0/22
  • NETWORK_NAME:网络的名称。

展开或收起仅包含存储节点的扩展集群

如需扩展或缩小扩展集群,您可以使用 Google Cloud CLI 或 VMware Engine API 添加或移除仅限存储的节点,具体操作步骤如下:

gcloud

如需通过 Google Cloud CLI 添加或移除仅限存储的节点来扩大或缩小扩展集群,请使用 gcloud vmware private-clouds clusters update 命令:

  gcloud vmware private-clouds clusters update STRETCHED_CLUSTER_NAME \
     --location=REGION \
     --project=PROJECT_ID \
     --private-cloud=STRETCHED_PC_STORAGE_NODE_NAME \
     --node-type-config=type=standard-72,count=n \
     --node-type-config=type=storage-only-standard-72,count=m

替换以下内容:

  • STRETCHED_CLUSTER_NAME:此私有云中的扩展集群的名称。
  • REGION:此私有云的区域。
  • PROJECT_ID:请求的项目 ID。
  • STRETCHED_PC_STORAGE_NODE_NAME:私有云的名称。
  • n:此指定集群的新标准节点总数(偶数)。
  • m:此指定集群的新仅存储节点总数(偶数)。

API

如需使用 VMware Engine API 添加或移除仅限存储的节点,请发出 PATCH 请求,以扩大或缩小扩展集群:

PATCH "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/privateClouds/STRETCHED_PC_STORAGE_NODE_NAME/clusters/STRETCHED_CLUSTER_NAME" -d '{
  "nodeTypeConfigs": {
     "standard-72": {
        "nodeCount": n
     },
     "storage-only-standard-72": {
        "nodeCount": m
     }
   }
  }'

替换以下内容:

  • PROJECT_ID:请求的项目 ID。
  • REGION:此私有云的区域。
  • STRETCHED_PC_STORAGE_NODE_NAME:扩展私有云的名称。
  • STRETCHED_CLUSTER_NAME:此私有云中的扩展集群的名称。
  • n:此指定集群的新标准节点总数(偶数)。
  • m:此指定集群的新仅存储节点总数(偶数)。

后续步骤