修改实例

本页面介绍如何使用 Cloud Console 或 gcloud 工具修改 Filestore 实例。

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

  • 增加其容量。
  • 减小其容量(仅限 Enterprise大规模 SSD 实例)。
  • 更改其说明。
  • 管理基于 IP 的访问权限控制规则。
  • 管理标签。(如需了解详情,请参阅管理标签。)

扩缩容量

使用 Filestore 时,我们建议您监控 Filestore 实例的利用率,以便根据需要调整容量。例如,如果您发现大规模层级实例不再需要其所有分配的容量,则可以考虑将其缩减。同样,如果您发现容量即将用尽,则可能需要增加容量以防止应用出现故障。如果文件系统耗尽 inode,则还需要增加容量。如需检查 inode 的使用情况,请运行以下命令:

df -i

该命令会返回如下所示的内容:

Filesystem           Inodes  IUsed      IFree  IUse%  Mounted on
10.0.0.2:/vol1    134217728     13  134217715     1%  /mnt/test

存储在文件共享上的每个文件都消耗一个 inode。如果文件系统耗尽 inode,则即使您尚未达到分配的最大容量,也无法在文件共享中存储更多文件。添加 inode 的唯一方法是增加容量。但是,达到 inode 数量上限的情况非常少,只有在您需要存储许多小文件时才需要考虑。

不同服务层级的扩缩行为差异

扩缩实例不会影响其可用性,并且可以在使用实例时执行。下表显示了如何根据服务层级调整文件共享容量:

服务层级 基本 HDD 基本 SSD 大规模 SSD Enterprise
缩放方向 仅向上 仅向上 向上和向下 向上和向下
扩缩增量 1GiB 1GiB 2.5TiB 256GiB
最小容量 1TiB 2.5TiB 10TiB 1TiB
最大容量 63.9TiB 63.9TiB 100TiB 10TiB

与扩缩 Enterprise 层级和基本层级实例相比,扩缩大规模 SSD 实例的容量可能需要更长的时间。实际需要的时间取决于实例中存储的数据量和 Filestore 实例上的负载。为了确保实例不会耗尽容量,请提前执行这些操作。

扩缩操作发生时,您无法取消操作或对实例进行任何其他修改,但读写操作不会中断。您也无法将 Enterprise 和大规模 SSD 实例缩减到低于存储其现有文件数据和元数据所需的容量级别。如果您尝试停用该功能,则会导致错误。

修改实例的说明

Cloud Console

要使用 Cloud Console 修改 Filestore 实例,请导航到修改实例页面,您可以在其中修改实例说明,管理基于 IP 的访问权限控制规则并调节文件共享性能:

  1. 在 Cloud Console 中,转到“Filestore 实例”页面。

    转到“Filestore 实例”页面

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

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

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

  5. 点击保存

gcloud

准备工作

如需使用 gcloud 工具,您必须安装 Cloud SDK 或使用 Cloud Console 中内置的 Cloud Shell

转到 Cloud Console

用于修改实例的 gcloud 命令

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

 gcloud [beta] filestore instances update instance-id
     --[project="project-id"]
     --[location=location]
     --[file-share=name="file-share-name",capacity=file-share-size]
     --[description="instance-description"]
     --[flags-file=file-name.json]

其中:

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

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

     gcloud config set filestore/zone zone
    
  • file-share-name 是从 Filestore 实例提供的文件共享的名称。实例创建后,文件共享名称便无法更改。

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

    如需查看可用配额,请转到 Cloud Console 中的“配额”页面:

    转到“配额”页面

  • instance-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 地址或范围,并以逗号分隔。示例:10.0.1.010.0.2.0...
    • 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

后续步骤