管理存储容量 - Amazon FSx for Windows File Server

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理存储容量

您可以根据需要增加 FSx for Windows File Server 文件系统上配置的存储容量。您可以使用 Amazon FSx 控制台、Amazon RDS API 或 AWS Command Line Interface(AWS CLI)来实现。您可以仅增加文件系统的存储容量;不得减少存储容量。

注意

对于 2019 年 6 月 23 日之前创建的文件系统,或者从 2019 年 6 月 23 日之前创建的文件系统的备份中恢复的文件系统,无法增加其存储容量。

增加 Amazon FSx 文件系统的存储容量时,Amazon FSx 会在后台为文件系统添加一组容量更大的新磁盘。然后,Amazon FSx 在后台运行存储优化流程,以透明方式将数据从旧磁盘迁移到新磁盘。存储优化可能需要几小时到几天的时间,对工作负载性能的影响微乎其微。在此优化期间,备份使用率会暂时增加,因为文件系统级备份中既包含旧存储卷也包含新存储卷。包含这两组存储卷是为了确保 Amazon FSx 即使在存储扩展活动期间也能成功获取备份以及从备份中恢复。备份历史记录中不再包含旧存储卷后,备份使用率将恢复到之前的基准水平。新存储容量可用后,您只需为新存储容量付费。

下图显示了 Amazon FSx 在增加文件系统存储容量时采用的四个主要步骤。


            图示 4 个步骤:1. 存储容量增加请求,2. FSx 添加更大容量的新磁盘,3. FSx 迁移数据,以及 4. FSx 删除旧磁盘。

您可以随时使用 Amazon FSx 控制台、CLI 或 API 跟踪存储优化、SSD 存储容量增加或 SSD IOPS 更新的进度。有关更多信息,请参阅监控存储容量增加

增加存储容量时需要了解的重要事项

以下是增加存储容量时需要考虑的几个重要事项:

  • 仅增加 – 您可以仅增加文件系统的存储容量;不得减少存储容量。

  • 最低增量 – 每次增加的存储容量必须至少为文件系统当前存储容量的 10%,最大允许值为 65536 GiB。

  • 最低吞吐能力 – 要增加存储容量,文件系统的最低吞吐能力必须为 16 MB/s。这是因为存储优化步骤是一个吞吐量密集型过程。

  • 两次增加的间隔时间 – 在上次增加请求后 6 小时或存储优化过程完成(以较长的时间为准)之前,无法进一步增加文件系统的存储容量。存储优化可能需要几个小时到几天的时间才能完成。为了最大限度地缩短完成存储优化所需的时间,我们建议在增加存储容量之前先增加文件系统的吞吐能力(在存储扩展完成之后可以缩减吞吐能力),并在文件系统上流量最低时增加存储容量。

注意

某些文件系统事件可能会消耗磁盘 I/O 性能资源。例如:

存储容量扩展的优化阶段可能会增加磁盘吞吐量,并可能导致性能警告。有关更多信息,请参阅性能警告和建议

何时增加存储容量

当文件系统的可用存储容量不足时,请增加其存储容量。使用 FreeStorageCapacity CloudWatch 指标来监控文件系统上的可用存储容量。您可以根据此指标创建 Amazon CloudWatch 警报,并在指标降至特定阈值以下时收到通知。有关更多信息,请参阅使用 Amazon 监控指标 CloudWatch

我们建议在文件系统上始终保持至少 10% 的可用存储容量。使用所有存储容量可能会对性能产生负面影响,并可能会导致数据不一致。

可用存储容量低于您指定的定义阈值时,您可以自动增加文件系统的存储容量。使用 AWS 开发的自定义 AWS CloudFormation 模板部署实施自动化解决方案所需的所有组件。有关更多信息,请参阅动态增加存储容量

增加存储容量并提升文件系统性能

新存储容量可用后,Amazon FSx 会在后台运行存储优化流程,对大多数工作负载性能的影响微乎其微。具有大型活动数据集的写入密集型应用程序可能会暂时出现写入性能降低多达一半的情况。对于这些情况,您可以先增加文件系统的吞吐能力,然后再增加存储容量。这使您能够继续提供相同级别的吞吐量,满足应用程序的性能需求。有关更多信息,请参阅管理吞吐能力

如何增加存储容量

您可以使用 Amazon FSx 控制台、AWS CLI 或 Amazon FSx API 增加文件系统的存储容量。

  1. 通过以下网址打开 Amazon FSx 控制台:https://console.aws.amazon.com/fsx/

  2. 导航到文件系统,然后选择要增加存储容量的 Windows 文件系统。

  3. 操作中,选择更新存储。或者,在摘要面板中,选择文件系统存储容量旁边的更新

    将出现更新存储容量窗口。

    
                                显示“更新存储容量”窗格的控制台屏幕截图。
  4. 输入类型中,选择百分比,输入新的存储容量(相比于当前值的百分比变化),或者选择绝对,以 GiB 为单位输入新值。

  5. 输入所需存储容量

    注意

    所需容量值必须至少比当前值大 10%,最大不得超过 65536 GiB。

  6. 选择更新,启动存储容量更新。

  7. 可以在文件系统详细信息页面的更新选项卡上监控更新进度。

要增加 FSx for Windows File Server 文件系统的存储容量,请使用 AWS CLI 命令 update-file-system。设置以下参数:

  • --file-system-id 设置为要更新的文件系统的 ID。

  • --storage-capacity 设置为比当前值至少大 10% 的值。

您可以使用 AWS CLI 命令 describe-file-systems 来监控更新进度。在输出中,查找 administrative-actions

有关更多信息,请参阅 AdministrativeAction

监控存储容量增加

您可以使用 Amazon FSx 控制台、API 或 AWS CLI 监控存储容量的增加进度。

在控制台中监控增加

文件系统详细信息窗口的更新选项卡中,您可以查看每种更新类型的 10 个最近更新。


                    显示最近更新列表的控制台屏幕截图。

对于存储容量更新,可以查看以下信息。

更新类型

可能的值是存储容量

Target value (目标值)

要将文件系统存储容量更新到的所需值。

状态

当前更新状态。对于存储容量更新,可能的值如下:

  • 待处理 – Amazon FSx 已收到更新请求,但尚未开始处理。

  • 正在进行中 – Amazon FSx 正在处理更新请求。

  • 已更新;正在优化 – Amazon FSx 已增加文件系统的存储容量。现在,存储优化过程正在将文件系统数据迁移到容量更大的新磁盘。

  • 已完成 – 存储容量增加成功完成。

  • 失败 – 存储容量增加失败。选择问号(?)可查看关于存储容量更新失败原因的详细信息。

进度百分比

以完成百分比的形式显示存储优化流程的进度。

请求时间

Amazon FSx 收到更新操作请求的时间。

使用 AWS CLI 和 API 监控增量

您可以使用 describe-file-systems AWS CLI 命令和 DescribeFileSystems API 操作查看和监控文件系统存储容量增加请求。AdministrativeActions 数组列出每种管理操作类型的 10 个最近更新操作。增加文件系统的存储容量时,会生成两个 AdministrativeActionsFILE_SYSTEM_UPDATESTORAGE_OPTIMIZATION 操作。

以下示例显示了 CLI 命令 describe-file-systems 的响应摘录。文件系统的存储容量为 300 GB,有一个待处理的管理操作要将存储容量增加到 1000 GB。

{ "FileSystems": [ { "OwnerId": "111122223333", . . . "StorageCapacity": 300, "AdministrativeActions": [ { "AdministrativeActionType": "FILE_SYSTEM_UPDATE", "RequestTime": 1581694764.757, "Status": "PENDING", "TargetFileSystemValues": { "StorageCapacity": 1000 } }, { "AdministrativeActionType": "STORAGE_OPTIMIZATION", "RequestTime": 1581694764.757, "Status": "PENDING", } ]

Amazon FSx 首先处理 FILE_SYSTEM_UPDATE 操作,为文件系统添加容量更大的新存储磁盘。当新的存储空间可供文件系统使用时,FILE_SYSTEM_UPDATE 状态将更改为 UPDATED_OPTIMIZING。存储容量显示新的更大值,随后 Amazon FSx 开始处理 STORAGE_OPTIMIZATION 管理操作。如以下 CLI 命令 describe-file-systems 的响应摘录中所示。

ProgressPercent 属性显示存储优化流程的进度。存储优化流程成功完成后,FILE_SYSTEM_UPDATE 操作的状态将更改为 COMPLETED,并且 STORAGE_OPTIMIZATION 操作不再显示。

{ "FileSystems": [ { "OwnerId": "111122223333", . . . "StorageCapacity": 1000, "AdministrativeActions": [ { "AdministrativeActionType": "FILE_SYSTEM_UPDATE", "RequestTime": 1581694764.757, "Status": "UPDATED_OPTIMIZING", "TargetFileSystemValues": { "StorageCapacity": 1000 } }, { "AdministrativeActionType": "STORAGE_OPTIMIZATION", "RequestTime": 1581694764.757, "Status": "IN_PROGRESS", "ProgressPercent": 50, } ]

如果增加存储容量失败,则 FILE_SYSTEM_UPDATE 操作的状态将更改为 FAILEDFailureDetails 属性提供失败相关信息,如以下示例所示。

{ "FileSystems": [ { "OwnerId": "111122223333", . . . "StorageCapacity": 300, "AdministrativeActions": [ { "AdministrativeActionType": "FILE_SYSTEM_UPDATE", "FailureDetails": { "Message": "string" }, "RequestTime": 1581694764.757, "Status": "FAILED", "TargetFileSystemValues": "StorageCapacity": 1000 } ]

有关对失败操作进行问题排查的信息,请参阅存储或吞吐能力更新失败

动态增加 FSx for Windows File Server 文件系统的存储容量

当可用存储容量低于您指定的定义阈值时,您可以使用以下解决方案动态增加 FSx for Windows File Server 文件系统的存储容量。此 AWS CloudFormation 模板会自动部署定义可用存储容量阈值所需的所有组件、基于该阈值的 Amazon CloudWatch 警报以及增加文件系统存储容量的 AWS Lambda 函数。

该解决方案会自动部署所需的所有组件,并采用以下参数:

  • 文件系统 ID

  • 可用存储容量阈值(数值)

  • 计量单位(百分比 [默认] 或 GiB)

  • 增加存储容量的百分比(%)

  • 订阅 SNS 的电子邮件地址

  • 调整警报阈值(是/否)

架构概述

部署此解决方案将在 AWS 云中生成以下资源。


                    自动增加 FSx for Windows File Server 文件系统的存储容量的解决方案架构图。

下图说明了以下步骤:

  1. AWS CloudFormation 模板部署 CloudWatch 警报、AWS Lambda 函数、Amazon Simple Notification Service(Amazon SNS)队列,以及所有必需的 AWS Identity and Access Management(IAM)角色。IAM 角色授予 Lambda 函数调用 Amazon FSx API 操作的权限。

  2. 文件系统的可用存储容量低于指定阈值时,CloudWatch 会触发警报,并向 Amazon SNS 队列发送一条消息。

  3. 然后,该解决方案会触发订阅此 Amazon SNS 主题的 Lambda 函数。

  4. Lambda 函数根据指定的百分比增长值计算新的文件系统存储容量,并设置新的文件系统存储容量。

  5. Lambda 函数可以选择性地调整可用存储容量阈值,使其等于文件系统新存储容量的指定百分比。

  6. 原始 CloudWatch 警报状态和 Lambda 函数操作结果将发送到 Amazon SNS 队列。

要接收关于 CloudWatch 警报的响应操作的通知,您必须使订阅确认电子邮件中提供的链接来确认 Amazon SNS 主题订阅。

AWS CloudFormation 模板

此解决方案使用 AWS CloudFormation 自动部署自动增加 FSx for Windows File Server 文件系统存储容量的组件。要使用此解决方案,请下载 IncreaseFSxSize AWS CloudFormation 模板。

该模板使用如下所述的参数。查看模板参数及其默认值,并根据文件系统的需求对它们进行修改。

FileSystemId

无默认值。您想要自动增加存储容量的文件系统的 ID。

LowFreeDataStorageCapacityThreshold

无默认值。以 GiB 单位或文件系统的当前存储容量的百分比(%)指定初始可用存储容量阈值。达到该阈值时,触发警报并自动增加文件系统的存储容量。当以百分比表示时,为了与 CloudWatch 警报设置相符,CloudFormation 模板会重新计算为 GiB。

LowFreeDataStorageCapacityThresholdUnit

默认为 %。以 GiB 为单位或以当前存储容量的百分比指定 LowFreeDataStorageCapacityThreshold 单位。

AlarmModificationNotification

默认值为。如果设置为“是”,则初始 LowFreeDataStorageCapacityThreshold 值将按比例增加到后续警报阈值 PercentIncrease 的值。

例如,如果将 PercentIncrease 设置为 20,并将 AlarmModificationNotification 设置为 “是”,则以 GiB 为单位指定的可用空间阈值(LowFreeDataStorageCapacityThreshold)将在后续存储容量增加事件中增加 20%。

EmailAddress

无默认值。指定 SNS 订阅使用的电子邮件地址,并接收存储容量阈值警报。

PercentIncrease

无默认值。以当前存储容量的百分比指定存储容量的增量。

使用 AWS CloudFormation 自动部署

以下过程会配置和部署 AWS CloudFormation 堆栈,以自动增加 FSx for Windows File Server 文件系统的存储容量。部署可能需要五分钟才能完成。

注意

实施此解决方案会产生相关 AWS 服务的账单。有关更多信息,请参阅有关这些服务的定价详细信息页面。

在开始之前,您的 AWS 账户中必须有一个运行于 Amazon Virtual Private Cloud(Amazon VPC)之中的 Amazon FSx 文件系统。有关如何创建 Amazon FSx 资源的更多信息,请参阅Amazon FSx 入门

启动自动存储容量增加解决方案堆栈
  1. 下载 IncreaseFSxSize AWS CloudFormation 模板。有关如何创建 CloudFormation 堆栈的更多信息,请参阅《AWS CloudFormation 用户指南》中的在 AWS CloudFormation 控制台上创建堆栈

    注意

    Amazon FSx 目前仅在特定的 AWS 区域可用。您必须在可以使用 Amazon FSx 的 AWS 区域启动此解决方案。有关更多信息,请参阅《AWS 一般参考》中的 Amazon FSx 端点和配额

  2. 指定堆栈详细信息中,输入自动存储容量增加解决方案的值。

    
                            屏幕截图显示了在 CloudFormation 模板的“指定堆栈详细信息”页面中输入的值。
  3. 输入堆栈名称

  4. 对于参数,请查看模板的参数并根据文件系统的需求对其进行修改。然后选择下一步

  5. 输入自定义解决方案所需的任何选项设置,然后选择下一步

  6. 对于审核,请审核并确认解决方案设置。必须选择确认模板创建 IAM 资源对应的复选框。

  7. 选择 Create (创建) 以部署堆栈。

您可以在 AWS CloudFormation 控制台的 Status (状态) 列中查看堆栈的状态。您应该在大约 5 分钟内看到 CREATE_COMPLETE 状态。

更新堆栈

创建堆栈后,您可以使用相同的模板并为参数提供新值,从而对其进行更新。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的直接更新堆栈