Amazon FSx for Lustre 性能 - 适用于Lustre的AmazonFSx
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

Amazon FSx for Lustre 性能

Amazon FSx for Lustre基于Lustre构建的流行高性能文件系统,提供横向扩展性能,随着文件系统大小的增加而线性增加。Lustre文件系统跨越多个文件服务器和磁盘水平扩展。此扩展使每个客户端能够直接访问存储在每个磁盘上的数据,以消除传统文件系统中存在的许多瓶颈。 Amazon FSx for Lustre 基于Lustre的可扩展架构构建,以支持大量客户的高水平性能。

Lustre文件系统的工作原理

每 Amazon FSx for Lustre 文件系统由客户端与之通信的文件服务器和连接到存储数据的每个文件服务器的一组磁盘组成。每个文件服务器都采用快速的内存缓存,以增强最常访问的数据的性能。基于HDD的文件系统还可配备基于SSD的读取缓存,以进一步提高最常访问数据的性能。当客户端访问存储在内存中或SSD缓存中的数据时,文件服务器不需要从磁盘读取数据,从而减少延迟并增加您可以驱动的吞吐量总量。下图说明了写入操作的路径、从磁盘提供的读取操作以及从内存或SSD缓存提供的读取操作:


        Amazon FSx for Lustre 性能架构。

当您读取存储在文件服务器内存中或SSD缓存中的数据时,文件系统性能由网络吞吐量决定。将数据写入文件系统时,或者读取未存储在内存中缓存中的数据时,文件系统性能取决于网络吞吐量和磁盘吞吐量的较低。

综合文件系统性能

一个 Amazon FSx for Lustre 文件系统支持的与其存储容量成比例。 Amazon FSx for Lustre 文件系统可扩展到数百GBps的吞吐量和数百万IOPS。 Amazon FSx for Lustre 还支持从数千个计算实例同时访问同一文件或目录。此访问可实现从应用程序内存到存储的快速数据检查,这是高性能计算(HPC)的常用技术。

Amazon FSx for Lustre 文件系统使用网络I/O信用机制提供突发读取吞吐量,以根据平均带宽利用率分配网络带宽。文件系统在网络带宽使用低于其基线限制时累积积分,并在执行网络数据传输时使用这些积分。

下表显示 Amazon FSx for Lustre 部署选项专为而设计。

注意

Scratch2文件系统在 中国 区域。

注意

*以下AWS区域中的持久文件系统提供高达530MB/s的网络突发/存储: 亚太地区(香港), 亚太区域(新加坡), 加拿大 (中部), 欧洲(法兰克福), 欧洲(伦敦), 欧洲(斯德哥尔摩), 南美洲(圣保罗), 中国和USWest(洛杉矶)。

示例:累计基线和突发吞吐量

以下示例说明了存储容量和磁盘吞吐量如何影响文件系统性能。

永久性文件系统的存储容量为4.8TiB和50MB/s,每单位存储的吞吐量为TiB,可提供234MB/s的总基线磁盘吞吐量和1.125GB/s的突发磁盘吞吐量。

无论文件系统大小, Amazon FSx for Lustre 为文件操作提供一致的亚毫秒延迟。

文件系统存储布局

Lustre中的所有文件数据都存储在名为对象存储目标(OST)的磁盘上。所有文件元数据(包括文件名、时间戳、权限等)都存储在称为元数据目标(MDT)的磁盘上。 Amazon FSx for Lustre 文件系统由单个MDT和多个OST组成,每个OST都建立在SSD存储上。每个OST的大小约为1.17TiB。Lustre的AmazonFSx会自动将您的文件数据分散在构成您文件系统的OST中,以平衡存储容量与吞吐量和IOPS负载。

要查看组成文件系统的MDT和OST的列表和存储使用情况,请从安装有文件系统的客户端运行以下命令。要查看每个磁盘的存储容量和消耗,请运行以下命令。

lfs df -h mount/path

此命令的输出如下所示。

UUID bytes Used Available Use% Mounted on mountname-MDT0000_UUID 68.7G 5.4M 68.7G 0% /fsx[MDT:0] mountname-OST0000_UUID 1.1T 4.5M 1.1T 0% /fsx[OST:0] mountname-OST0001_UUID 1.1T 4.5M 1.1T 0% /fsx[OST:1] filesystem_summary: 2.2T 9.0M 2.2T 0% /fsx

在您的文件系统中剥离数据

使用Lustre,您可以配置文件在OST中的条纹化方式。当一个文件跨多个OST时,对该文件的读取或写入请求会跨这些OST进行传播,从而增加应用程序可以驱动的合计吞吐量或IOPS。

默认情况下,每个文件创建于 Amazon FSx for Lustre 使用标准Linux工具存储在单个磁盘上。对于导入自的文件 Amazon S3,文件系统 ImportedFileChunkSize 参数决定了将跨进行条纹化的OST导入文件的数量。文件大于 ImportedFileChunkSize 将存储在多个OST上。

您可以使用以下命令查看文件或目录的剥离配置:

lfs getstripe filename

此命令报告文件条计数、条大小和条偏移。的 条纹数 是整个中的文件条纹化OST数量。的 条纹设计 是OST上存储的连续数据量。的 条纹偏置 是第一个OST的索引,该文件跨进行条纹化。有关更多信息,请参阅 配置Lustre文件删除 于wiki.lustre.org。

首次创建文件时,会设置文件剥离参数。使用以下命令,使用确定的剥离配置创建新的空文件。

lfs setstripe filename --stripe-count # of OSTs --stripe-size # of bytes

要修改现有文件的剥离,您可以使用 lfs setstripe 命令。然后,您将原始文件复制到此新文件。

监控性能和使用情况

每分钟, Amazon FSx for Lustre 将每个磁盘(MDT和OST)的使用度量标准发送到 Amazon CloudWatch.

要查看聚合文件系统使用情况详细信息,您可以查看每个指标的Sum统计。例如, DataReadBytes 统计报告文件系统中所有OST看到的总读取吞吐量。同样, FreeDataStorageCapacity 统计报告文件系统中文件数据的总可用存储容量。

有关监控文件系统性能的详细信息,请参阅 监控Amazon FSx for Lustre.

性能提示

使用 Amazon FSx for Lustre,请记住以下性能提示。有关服务限制,请参阅 Quotas.

  • 平均I/O大小 – 因为 Amazon FSx for Lustre 是网络文件系统,每个文件操作都会在客户端和 Amazon FSx for Lustre,产生小延迟开销。由于这种每次操作的延迟,总吞吐量通常会随着平均 I/O 大小增加而增加,因为开销在大量数据之间分摊。

  • 请求模型 – 启用文件系统的异步写入后,将在 Amazon EC2 实例,然后再写入 Amazon FSx for Lustre 异步。异步写入通常具有较低的延迟。在执行异步写入时,内核使用额外内存进行缓存。已启用同步写入的文件系统将同步请求 Amazon FSx for Lustre. 每个操作都将在客户端和 Amazon FSx for Lustre 之间往返一次。

    注意

    您选择的请求模型将在一致性(如果您使用多个 Amazon EC2 实例)和速率之间进行取舍。

  • Amazon EC2 实例 – 执行大量读写操作的应用程序可能需要比不执行的应用程序更多的内存或计算容量。为计算密集型工作负载启动AmazonEC2实例时,请选择具有应用程序所需资源量的实例类型。其性能特征 Amazon FSx for Lustre 文件系统不依赖于 Amazon EBS–优化实例。

  • 跨OST的工作负载平衡 – 在某些情况下,您的工作负载并不能提高您的文件系统可以提供的总吞吐量(200MB/s每TiB存储)。如果是,您可以使用 CloudWatch 指标,以排除工作负载I/O模式不平衡对性能的影响。要确定这是否是原因,请查看最大值 CloudWatch 度量 Amazon FSx for Lustre.

    在某些情况下,此统计数据显示吞吐量等于或大于240MBps的负载(单个1.2-TiB的吞吐量容量 Amazon FSx for Lustre 盘)。在这种情况下,您的工作负载不会均匀分布在磁盘上。在这种情况下,您可以使用 lfs setstripe 命令修改工作负载最常访问的文件剥离。为获得最佳性能,对所有操作系统(OST)具有高吞吐量要求的stripe文件,包括文件系统。

    如果您的文件是从数据存储库导入的,您可以采取另一种方法,在OST中平均分立您的高通量文件。为此,您可以修改 ImportedFileChunkSize 创建下一个 Amazon FSx for Lustre 文件系统。

    例如,假设您的工作负载使用7.0-TiB文件系统(由6x1.17-TiBOST组成),并且需要跨2.4-GiB文件驱动高吞吐量。在这种情况下,您可以设置 ImportedFileChunkSize 值到 (2.4 GiB / 6 OSTs) = 400 MiB 以便您的文件在文件系统OST上均匀分布。