本页面介绍如何使用 Cloud Console 或 gcloud
工具修改 Filestore 实例。
创建后,您可以通过以下方式修改 Filestore 实例:
扩缩容量
使用 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 的访问权限控制规则并调节文件共享性能:
在 Cloud Console 中,转到“Filestore 实例”页面。
点击要修改的实例的 ID。
在实例详情页面上,点击修改以转到修改实例页面。
根据需要更改实例说明、基于 IP 的访问权限控制规则和容量。如需了解详情,请参阅创建实例。
点击保存。
gcloud
准备工作
如需使用 gcloud
工具,您必须安装 Cloud SDK 或使用 Cloud Console 中内置的 Cloud Shell :
用于修改 Filestore 实例的 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"]
--[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.0
、10.0.2.0
... - access-mode 是授予 IP 地址在 ip-range 范围内的客户端的访问权限级别。它可以有值
READ_WRITE
或READ_ONLY
。默认值为READ_WRITE
。 - squash-mode 可以具有值
ROOT_SQUASH
或NO_ROOT_SQUASH
。ROOT_SQUASH
移除 IP 地址在 ip-range 范围内的客户端的根级访问权限,而NO_ROOT_SQUASH
启用根访问权限。默认值为NO_ROOT_SQUASH
。 - anon_uid 是您要映射到
anon_uid
的用户 ID 值。默认值为65534
。 - anon_gid 是您要映射到
anon_gid
的群组 ID 值。默认值为65534
。
- ip-ranges 是授予访问权限的 IP 地址或范围。您可以指定多个 IP 地址或范围,并以逗号分隔。示例:
示例
以下示例通过将文件共享大小增加到 3 TB
来更新 nfs-server
实例。
gcloud filestore instances update nfs-server --zone=us-central1-c --file-share=name="vol1",capacity=3TB