修改实例

本页介绍了如何使用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 或使用控制台中内置的 Cloud Shell Google Cloud :

前往 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 用于指定每 TiB 的 IOPS 速率,该速率会随实例容量线性扩缩。
    • 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 是您要为实例分配的大小(以 GB 为单位)。例如 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
    
    

后续步骤