Amazon FSx

以全托管方式提供 Lustre、Windows File Server、NetApp ONTAP、OpenZFS 四种文件系统,根据工作负载提供最优选择

概述

Amazon FSx 是以全托管方式提供行业标准文件系统的服务系列。包括面向高性能计算 (HPC) 和机器学习的 FSx for Lustre、面向 Windows 应用的 FSx for Windows File Server、具备企业级 NAS 功能的 FSx for NetApp ONTAP、以及通用 POSIX 兼容文件系统 FSx for OpenZFS 四个变体。所有变体的备份、补丁和硬件故障处理均由 AWS 管理,免除本地文件服务器的运维负担。相比 EFS (Elastic File System) 提供通用 NFS 文件系统,FSx 提供针对特定协议或工作负载优化的选择。

四个变体与选型流程

FSx 选型首先确认协议需求。Windows 应用需要 SMB 协议或 Active Directory 集成时,选择 FSx for Windows File Server。NTFS 访问控制列表 (ACL)、DFS 命名空间、卷影副本等 Windows 原生功能可直接使用,是本地 Windows 文件服务器迁移的最佳目标。HPC 或机器学习训练作业需要与 S3 联动的高吞吐量时选择 FSx for Lustre。Lustre 可将 S3 存储桶链接为数据仓库,文件访问时自动从 S3 加载数据 (延迟加载)。在 SageMaker 训练作业中高速读取大量数据集时发挥威力。需要多协议 (NFS、SMB、iSCSI) 或快照、克隆、分层等企业级 NAS 功能时选择 FSx for NetApp ONTAP。无特定协议需求且需要 POSIX 兼容通用文件系统时,FSx for OpenZFS 是轻量选择。

与 EFS 的区分使用 - 通用性还是专业性

EFS 和 FSx 作为 AWS 托管文件系统经常被比较。EFS 是 NFS v4 协议的通用文件系统,容量自动扩展,LambdaECS 也可轻松挂载。而 FSx 针对特定工作负载优化,性能特性差异显著。FSx for Lustre 可实现数百 GB/s 的吞吐量,覆盖 EFS 通用模式无法达到的性能领域。成本方面,EFS 通过按访问频率的分层 (Standard / Infrequent Access) 自动优化,而 FSx 在配置时固定指定存储容量和吞吐量。I/O 模式可预测时 FSx 成本效率更高,访问模式不规则时 EFS 的按量计费更有利。Azure 对应服务有 Azure Files (SMB) 和 Azure NetApp Files (NFS/SMB),但 Azure 没有相当于 Lustre 的 HPC 向托管文件系统,FSx for Lustre 是 AWS 独有的优势。存储设计相关书籍 (Amazon) 详细解析了根据工作负载特性选择文件系统的方法。

Lustre 与 S3 的联动 - 数据管道加速

FSx for Lustre 的最大特点是与 S3 的透明联动。将 S3 存储桶链接为数据仓库后,S3 对象的元数据自动映射到 Lustre 文件系统上。实际数据在首次文件访问时从 S3 加载到 Lustre 存储 (延迟加载方式),无需预先复制全部数据。处理结果写回 S3 可使用 hsm_archive 命令或自动导出功能。部署类型有 Scratch 和 Persistent 两种。Scratch 是临时高速存储,无数据冗余因此成本低,但硬件故障时数据会丢失。适用于原始数据保存在 S3 且可重新执行的批处理或训练作业。Persistent 数据在可用区内冗余化,适合长期运行的工作负载或重新计算成本高的中间数据保持。吞吐量可在 50 - 1,000 MB/s/TiB 范围选择,每 TiB 吞吐量越高成本越高。实务中合理做法是先以低吞吐量设置开始,监控 CloudWatch 的 FileServerDiskThroughputBalance 指标,根据需要逐步提高。

共有するXB!