修改实例

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

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

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

扩缩容量

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

df -i

该命令会返回类似于以下的内容:

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

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

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

基本层级实例只能按 1 个 GB 的增量或其倍数进行扩大。大规模层级实例可以按 10 个 TB 的增量或其倍数进行扩缩。扩缩实例不会影响其可用性,并且可以在使用实例时执行。下表显示了如何根据服务层级调整文件共享容量:

服务层级 基本 HDD 基本 SSD 大规模 SSD
缩放方向 仅向上 仅向上 向上和向下
扩缩增量 1GB 1GB 10TB
最小容量 1TB 2.5TB 60TB
最大容量 63.9TB 63.9TB 320TB

此外,与基本 HDD 和基本 SSD 实例相比,大规模 SSD 层级实例需要花费更多的时间来完成扩缩操作。增加大规模实例的容量需要 26-48 个小时才能完成,缩减则需要超过 20 个小时才能完成。实际需要的时间取决于实例中存储的数据量和客户端虚拟机上的负载。为了确保实例不会耗尽容量,请提前执行这些操作。

扩缩操作发生时,您无法取消操作或对实例进行任何其他修改,但读写操作不会中断。您也无法将大规模 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

用于修改 Filestore 实例的 gcloud 命令

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

 gcloud [beta] filestore instances update instance-id
     --[project="project-id"]
     --[zone=zone]
     --[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
    
  • zone 是 Filestore 实例所在的区域。运行 gcloud filestore zones list 命令以获取受支持区域的列表。如果 Filestore 实例位于 gcloud 默认区域,则可以跳过此标志。您可以通过运行以下命令来设置默认区域:

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

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

    如需查看可用配额,请转到 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 TB 来更新 nfs-server 实例。

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

后续步骤