Amazon File Cache — Amazon 上用于本地文件系统的高性能缓存

8aa0af56cf6ad2932c5a03baf988268f.gif

Amazon File Cache 现已正式发布,这是 Amazon 上的一项全新高速缓存服务,旨在处理存储在不同位置(包括本地)的文件数据。File Cache 让您的应用程序可以使用快速且熟悉的 POSIX 界面访问文件,从而加速和简化要求严苛的云爆发和混合工作流程,无论原始文件是存在于可通过 NFS v3 访问的任何文件系统上还是 Amazon Simple Storage Service (Amazon S3) 上。

Amazon File Cache:

https://docs.aws.amazon.com/fsx/latest/FileCacheGuide/getting-started.html

POSIX:

https://en.wikipedia.org/wiki/POSIX

NFS v3 :

https://en.wikipedia.org/wiki/Network_File_System

Amazon S3:

https://aws.amazon.com/cn/s3/

假设您在本地存储基础设施上有一个大型数据集,并且您的月末报告通常需要两到三天才能运行。您想将偶尔出现的工作负载转移到云端,以便在具有更多 CPU 和内存的大型计算机上运行,从而缩短处理时间。但是您还没有准备好将数据集迁移到云端。

设想另一种情况:您可以访问分布在多个区域的 Amazon S3 上的大型数据集。想要利用此数据集的应用程序以针对传统(POSIX)文件系统访问进行编码,并使用 awksedpipes 等命令行工具。您的应用程序需要以亚毫秒级别的延迟访问文件。您无法更新源代码以使用 S3 API

awk:

https://man7.org/linux/man-pages/man1/awk.1p.html

sed:

https://man7.org/linux/man-pages/man1/sed.1.html

pipes:

https://man7.org/linux/man-pages/man2/pipe.2.html

API:

https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html

File Cache 有助于应对这些及许多其他的使用场景,考虑视频文件、AI/ML 数据集等的管理和转换。File Cache 在一个或多个区域的 NFS v3 文件系统或 S3 存储桶前创建基于文件系统的缓存。它透明地从源加载文件内容和元数据(例如文件名、大小和权限),并将其作为传统文件系统呈现给您的应用程序。File Cache 会自动释放最近较少使用的缓存文件,以确保最活跃的文件在缓存中可供应用程序使用。

您最多可以将八个 NFS 文件系统或八个 S3 存储桶链接到一个缓存,它们将显示为一组统一的文件和目录。您可以从各种 Amazon 计算服务(例如虚拟机或容器)访问缓存。File Cache 和您的本地基础设施之间的连接使用您现有的网络连接,基于 Amazon Direct Connect 和/或 Site-to-Site VPN

Amazon Direct Connect:

https://aws.amazon.com/directconnect/

Site-to-Site VPN:

https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html

使用 File Cache 时,您的应用程序将受益于一致的亚毫秒级延迟、高达数百 GB/s 的吞吐量以及高达每秒数百万次的操作。与 Amazon Elastic Block Store (Amazon EBS) 等其他存储服务类似,性能取决于缓存的大小。缓存大小可以扩展到 PB 级,最小大小为 1.2 TiB。

Amazon EBS:

https://aws.amazon.com/ebs/

工作原理

为了向您展示它是如何工作的,我们在两个现有的 Amazon FSx for OpenZFS 文件系统上创建了一个文件缓存。在真实场景中,您很可能会在本地文件系统上创建缓存。选择 FSx for OpenZFS 进行演示是手头没有本地数据中心(可能应该投资于 seb-west-1)。两个演示 OpenZFS 文件系统都可以从我的 Amazon 账户中的私有子网访问。最后,从 EC2 Linux 实例访问缓存。

首先,打开浏览器并导航到 Amazon 管理控制台。我在控制台的搜索栏中搜索“Amazon FSx”,然后单击左侧导航菜单中的缓存。或者直接进入控制台的 File Cache 部分。首先,选择创建缓存

Amazon FSx:

https://aws.amazon.com/fsx/

Amazon 管理控制台:

https://console.aws.amazon.com/

控制台的 File Cache 部分:

https://console.aws.amazon.com/fsx/#fc/file-caches

819c047ccd7e321e90fa813eca9cfe19.png

为我的缓存输入缓存名称(此演示为 AmazonNewsBlog)和缓存存储容量。存储容量以 TiB 表示。最小值为 1.2 TiB 或以 2.4 TiB 为增量。请注意,当您选择较大的缓存大小时,吞吐能力会增加。

TiB:

https://simple.wikipedia.org/wiki/Tebibyte

13b78b4fba9d8a13ee3fa0c6e24df624.png

检查并接受为联网加密提供的默认值。对于联网,我们可能会选择一个 VPC、子网和安全组来关联缓存网络接口。建议将缓存部署在与计算服务相同的子网中,以最大限度地减少访问文件时的延迟。对于加密,可以使用 Amazon KMS 管理的密钥(默认)或选择自己的密钥。

然后,我们创建了数据存储库关联。这是缓存和数据来源之间的链接。数据来源可能是 NFS 文件系统、S3 存储桶或前缀。我们可能为一个缓存创建多达八个数据存储库关联。缓存的所有数据存储库关联都具有相同的类型:它们全部都是 NFS v3 或者全部都是 S3。如果需要两种类型,则可以创建两个缓存。

前缀:

https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html

在这个演示中,我们选择关联我的 Amazon 账户上的两个 OpenZFS 文件系统。您可以链接到任何 NFS v3 服务器,包括您在本地已经拥有的服务器。缓存路径允许您选择将源文件系统安装在缓存中的位置。数据存储库路径是指向您的 NFS v3 或 S3 数据存储库的 URL。格式为 nfs://hostname/path 或 s3://bucketname/path。

DNS 服务器 IP 地址允许 File Cache 解析您的 NFS 服务器的 DNS 名称。这在 DNS 解析是私有时很有用,比如在我的例子中。当您关联在 VPC 中部署的 NFS v3 服务器,以及使用 Amazon 提供的 DNS 服务器时,您的 VPC 的 DNS 服务器 IP 地址为 VPC 范围 + 2。在我们的示例中,我们的 VPC CIDR 范围是 172.31.0.0,因此 DNS 服务器 IP 地址是 172.31.0.2。

您的 VPC 的 DNS 服务器 IP 地址为 VPC 范围 + 2:

https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html

CIDR:

https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing

别忘了点击添加按钮!否则,您的输入将被忽略。您可以重复该操作以添加更多数据存储库。

ab21049a6b0daead0cd41ec5f17ae5a0.png

输入两个数据存储库后,选择下一步,然后查看我的选择。准备就绪后,选择创建缓存

3b7ae66191a04fc3ddc998c844336e43.png

几分钟后,缓存状态变为可用

44f53865d6171f6a79768405cc714625.png

最后一部分是在部署工作负载的计算机上安装缓存。File Cache 在后台使用 Lustre。正如我们的文档中所述,必须先安装适用于 Linux 的 Lustre 客户端。完成后,选择控制台上的附加按钮以接收下载和安装 Lustre 客户端以及安装缓存文件系统的说明。

先安装适用于 Linux 的 Lustre 客户端:

https://docs.aws.amazon.com/fsx/latest/FileCacheGuide/install-lustre-client.html

83c3b9165157c7a40c46d217307b58ea.png

为此,连接到在同一 VPC 中运行的 EC2 实例。然后我输入:

sudo mount -t lustre -o relatime,flock file_cache_dns_name@tcp:/mountname /mnt

左滑查看更多

这个命令通过两个选项安装缓存:

  • relatime – 维护 atime(inode 访问时间)数据,但不是每次访问文件时都进行维护。启用此选项后,仅当自上次更新 atime 数据(mtime)以来修改了文件或上次访问文件超过一定时间(默认为一天)后,才将 atime 数据写入磁盘。自动缓存驱逐需要 relatime 才能正常工作。

  • flock — 为您的缓存启用文件锁定。如果您不想启用文件锁定,请在不使用 flock 的情况下使用 mount 命令。

安装后,在 EC2 实例上运行的进程可以照常访问缓存中的文件。正如我们在创建缓存时定义的那样,第一个 ZFS 文件系统在 /dataset1 的缓存中可用,第二个 ZFS 文件系统可用作 /dataset2。

缓存驱逐:

https://docs.aws.amazon.com/fsx/latest/FileCacheGuide/cache-eviction.html

$ echo "欢迎来到 File Cache 世界" > /mnt/zsf1/greetings


$ sudo mount -t lustre -o relatime,flock fc-0280000000001.fsx.us-east-2.aws.internal@tcp:/r3xxxxxx /mnt/cache


$ ls -al /mnt/cache
total 98
drwxr-xr-x 5 root root 33280 Sep 21 14:37 .
drwxr-xr-x 2 root root 33280 Sep 21 14:33 dataset1
drwxr-xr-x 2 root root 33280 Sep 21 14:37 dataset2


$ cat /mnt/cache/dataset1/greetings
欢迎来到 File Cache 世界

左滑查看更多

您可以使用 Amazon CloudWatch 指标和 Amazon CloudTrail 日志监控来观察和评估缓存的活动和运行状况。

File Cache 资源的 CloudWatch 指标分为三类:

  • 前端 I/O 指标

  • 后端 I/O 指标

  • 缓存前端利用率指标

像往常一样,您可以创建仪表板定义警报,以便在指标达到您定义的阈值时收到通知。

Amazon CloudWatch 指标:

https://aws.amazon.com/cloudwatch/

Amazon CloudTrail:

https://aws.amazon.com/cloudtrail/

仪表板:

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html

定义警报:

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html

注意事项

在使用或计划使用 File Cache 时,需要记住几个关键点。

首先,File Cache 会对静态数据进行加密,并支持对传输中数据进行加密。您的数据始终使用 Amazon Key Management Service (Amazon KMS) 中管理的密钥进行静态加密。您可以使用服务自有密钥或自己的密钥(客户管理的 CMK)。

其次,File Cache 提供了两个用于将数据从数据存储库导入缓存的选项:延迟加载和预加载。延迟加载会在数据尚未缓存时按需导入数据,预加载则会在启动工作负载之前根据用户请求导入数据。默认设置为延迟加载。这对大多数工作负载都很有意义,因为它允许您的工作负载启动,而无需等待元数据和数据被导入缓存。当您的访问模式注重首字节延迟时,预加载会很有帮助。

会对静态数据进行加密,并支持对传输中数据进行加密:

https://docs.aws.amazon.com/fsx/latest/FileCacheGuide/encryption.html

Amazon KMS:

https://aws.amazon.com/kms/

客户管理的 CMK:

https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk

定价和可用性

使用 File Cache 时没有预付费用或固定价格成本。您需要为预置的缓存存储容量和元数据存储容量付费。定价页面包含详细信息。除了 File Cache 本身之外,您还需要支付 S3 请求费用、Amazon Direct Connect 费用以及文件缓存和数据来源之间的可用区间、区域间和互联网出口流量的通常数据传输费用。

File Cache 现已在以下地区推出:美国东部(俄亥俄州)、美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲(法兰克福)、欧洲地区(爱尔兰)和欧洲地区(伦敦)。

现在就开始构建并创建您的第一个 File Cache 吧!

定价页面包含详细信息:

https://aws.amazon.com/filecache/pricing

创建您的第一个 File Cache :

https://console.aws.amazon.com/fsx/#fc/file-caches

9462fa0f2f2ae3b3855428886739d076.gif

9e2e363702ab71f5f0bceeaba0097598.gif

听说,点完下面4个按钮

就不会碰到bug了!

b171e2647d228850989c128e523f88fe.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值