修改实例

本页面介绍如何使用Google Cloud 控制台或 gcloud CLI 修改 Filestore 实例。

创建后,您可以通过以下方式修改 Filestore 实例:

  • 增加其容量
  • 减少以下服务层级的容量:
    • 可用区级
    • 区域
    • 企业
  • 配置性能
  • 更改其说明
  • 管理基于 IP 的访问权限控制规则
  • 管理标签

如需详细了解如何伸缩容量,请参阅伸缩容量

某些规范(例如实例的 IP 地址)是不可变的。

修改实例的说明

Google Cloud 控制台

如需使用 Google Cloud 控制台修改 Filestore 实例,请前往修改实例页面,您可以在其中修改实例说明、管理基于 IP 的访问权限控制规则并调节文件共享性能:

  1. 在 Google Cloud 控制台中,前往“Filestore 实例”页面。

    转到“Filestore 实例”页面

  2. 点击要修改的实例的 ID。

  3. 实例详情页面上,点击修改以转到修改实例页面。

  4. 根据需要更改实例说明、基于 IP 地址的访问权限控制规则和容量。如需了解详情,请参阅创建实例

  5. 点击保存

gcloud

准备工作

如需使用 gcloud CLI,您必须安装 gcloud CLI 或使用 Google Cloud 控制台中内置的 Cloud Shell

前往 Google Cloud 控制台

用于修改实例的 gcloud 命令

您可以通过运行 instances update 命令来修改 Filestore 实例。如果您需要更新基于 IP 地址的访问权限控制的配置,则必须使用 --flags-file 标志并指定 JSON 配置文件。如果选择此方法,则无需使用 --file-share 标志,因为它已包含在 JSON 配置文件中。

gcloud filestore instances update INSTANCE_ID
    --[project="PROJECT_ID"]
    --[location=LOCATION]
    --[performance=PERFORMANCE] \
    --[file-share=name="FILE_SHARE_NAME",CAPACITY=FILE_SHARE_SIZE]
    --[description="DESCRIPTION"]
    --[flags-file=FILE_NAME.json]

其中:

  • INSTANCE_ID 是您要修改的 Filestore 实例的实例 ID。
  • PROJECT_ID 是包含 Filestore 实例的 Google Cloud 项目的项目 ID。如果 Filestore 实例位于 gcloud 默认项目中,则可以跳过此标志。您可以通过运行以下命令来设置默认项目:

    gcloud config set project project-id
    
  • LOCATION 是 Filestore 实例所在的位置。对于区域级实例和企业级实例,请指定区域。 对于所有其他实例,请指定可用区。运行 gcloud filestore zones list 命令以获取受支持可用区的列表。如果 Filestore 实例位于 gcloud 默认区域,则可以跳过此标志。您可以通过运行以下命令来设置默认区域:

    gcloud config set filestore/zone zone
    
  • PERFORMANCE 是用于指定自定义性能设置的性能配置,与所选容量无关。

    您只能使用以下选项之一:

    • max-iops-per-tb 指定了 IOPS/TiB 比率,该比率随实例容量线性扩缩。
    • max-iops 指定不随实例容量扩缩的固定 IOPS 速率。

      其格式如下所示:

      --performance=max-iops-per-tb=17000
      
  • FILE_SHARE_NAME 是从 Filestore 实例提供的文件共享的名称。实例创建后,文件共享名称便无法更改。

  • FILE_SHARE_SIZE 是文件共享所需的新大小。您可以使用整数与 GiB(默认)或 TiB 指定文件共享大小。

    如需查看可用配额,请前往 Google Cloud 控制台中的“配额”页面:

    转到“配额”页面

  • DESCRIPTION 是可选 Filestore 实例说明。

  • FILE_NAME 是基于 IP 的访问权限控制的 JSON 配置文件的名称。

    JSON 配置文件示例:

     {
    "--file-share":
      {
        "capacity": "4096",
        "name": "my_vol",
        "nfs-export-options": [
          {
            "access-mode": "READ_WRITE",
            "ip-ranges": [
              "10.0.0.0",
              "10.2.0.0"
            ],
            "squash-mode": "ROOT_SQUASH",
            "anon_uid": 1003,
            "anon_gid": 1003
          },
           {
            "access-mode": "READ_ONLY",
            "ip-ranges": [
              "10.0.1.0/28"
            ],
            "squash-mode": "NO_ROOT_SQUASH"
          }
        ],
      }
    }
    

    其中:

    • ip-ranges 是授予访问权限的 IP 地址或范围。您可以指定多个 IP 地址或范围,并以逗号分隔。 只有以下服务层级支持重叠 IP 地址范围的配置设置:
      • 可用区级
      • 区域
      • 企业
    • access-mode 是授予 IP 地址在 ip-range 范围内的客户端的访问权限级别。它可以有值 READ_WRITEREAD_ONLY。默认值为 READ_WRITE
    • squash-mode 可以具有值 ROOT_SQUASHNO_ROOT_SQUASHROOT_SQUASH 移除 IP 地址在 ip-range 范围内的客户端的根级访问权限,而 NO_ROOT_SQUASH 启用根访问权限。默认值为 NO_ROOT_SQUASH
    • anon_uid 是您要映射到 anon_uid 的用户 ID 值。默认值为 65534
    • anon_gid 是您要映射到 anon_gid 的群组 ID 值。默认值为 65534
示例

以下示例通过将文件共享大小增加到 3 TiB 来更新 nfs-server 实例。

    gcloud filestore instances update nfs-server --zone=us-central1-c --file-share=name="vol1",capacity=3TiB
  ```

REST API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 使用 cURL 调用 Filestore API

    curl --request PATCH \
        'https://file.googleapis.com/v1/projects/PROJECT/locations/LOCATION/instances?instanceId=NAME?updateMask=performanceConfig%2CdeletionProtectionReason%2CdeletionProtectionEnabled&key=YOUR_API_KEY' \
        --header "Authorization: Bearer $(gcloud auth print-access-token)" \
        --header 'Accept: application/json' \
        --header 'Content-Type: application/json' \
        --data '{
                "tier":"TIER",
                "networks":[
                    {
                    "network":"NETWORK"
                    }
                  ],
                "performanceConfig": {"PERFORMANCE"}
                "fileShares":[
                  {"capacityGb":CAPACITY,"name":"SHARE_NAME"}
                  ],
                "deletionProtectionEnabled": true,
                "deletionProtectionReason": "PROTECTION_REASON"}' \
        --compressed
    
    

    其中:

    • PROJECT 是实例将驻留的项目的名称。例如 my-genomics-project
    • LOCATION 是实例将驻留的位置。例如 us-east1us-central1-a
    • NAME 是要创建的实例的名称。例如 my-genomics-instance
    • PERFORMANCE 是用于指定自定义性能设置的性能配置

      您只能使用所提供的选项之一。

      • iopsPerTB 可启用自定义性能,并使用随实例容量扩缩的用户定义的 IOPS 速率。如需定义每 TiB 的 IOPS,请使用 maxIopsPerTb 字段。
      • fixedIops 启用自定义性能,并设置固定的 IOPS 速率,该速率不会随实例容量的变化而变化。如需定义固定的 IOPS 值,请使用 maxIops 字段。

        其格式如下所示:

        "performanceConfig": {
            "iopsPerTb" : {
                "maxIopsPerTb":17000
            }
          }
        
    • CAPACITY 是您要为实例分配的大小(以 GiB 为单位)。例如 1024

    • SHARE_NAME 是文件共享的名称。例如 vol1

    • PROTECTION_REASON 如果您选择使用 deletionProtectionEnabled 标志,可以选择添加有关该设置的备注。如需添加备注,请使用可选的 deletionProtectionReason 标志,并添加对所选设置的理由的说明。例如,“所有基因组学数据都必须遵守当前的组织政策。”如需了解详情,请参阅防删除保护

    示例

    以下示例通过将每 TiB 的 IOPS 比率降低到 12000 来更新 nfs-server 实例。

    curl --request PATCH \
        'https://file.googleapis.com/v1/projects/my-project/locations/us-central1/instances?instanceId=nfs-server?updateMask=performanceConfig%2CdeletionProtectionReason&key=12334fr232' \
        --header "Authorization: Bearer $(gcloud auth print-access-token)" \
        --header 'Accept: application/json' \
        --header 'Content-Type: application/json' \
        --data '{
                  "performanceConfig":
                    {
                      "iopsPerTb":
                        {
                          "maxIopsPerTb":12000
                        }
                    },
                  "deletionProtectionReason":"Deletion+not+allowed"}' \
        --compressed
    
    

后续步骤