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

API
缓存
Amazon Simple Storage Service (S3)
Amazon Direct Connect
Amazon File Cache
0
0
**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?trk=cndc-detail POSIX: https://en.wikipedia.org/wiki/POSIX?trk=cndc-detail NFS v3 : https://en.wikipedia.org/wiki/Network_File_System?trk=cndc-detail Amazon S3: https://aws.amazon.com/cn/s3/?trk=cndc-detail 假设您在本地存储基础设施上有一个大型数据集,并且您的月末报告通常需要两到三天才能运行。您想将偶尔出现的工作负载转移到云端,以便在具有更多 CPU 和内存的大型计算机上运行,从而缩短处理时间。但是您还没有准备好将数据集迁移到云端。 设想另一种情况:您可以访问分布在多个区域的 Amazon S3 上的大型数据集。想要利用此数据集的应用程序以针对传统(POSIX)文件系统访问进行编码,并使用 **awk、sed、pipes** 等命令行工具。您的应用程序需要以亚毫秒级别的延迟访问文件。您无法更新源代码以使用 S3 **API**。 awk: https://man7.org/linux/man-pages/man1/awk.1p.html?trk=cndc-detail sed: https://man7.org/linux/man-pages/man1/sed.1.html?trk=cndc-detail pipes: https://man7.org/linux/man-pages/man2/pipe.2.html?trk=cndc-detail API: https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html?trk=cndc-detail 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/?trk=cndc-detail Site-to-Site VPN: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html?trk=cndc-detail 使用 File Cache 时,您的应用程序将受益于一致的亚毫秒级延迟、高达数百 GB/s 的吞吐量以及高达每秒数百万次的操作。与 **Amazon Elastic Block Store (Amazon EBS)** 等其他存储服务类似,性能取决于缓存的大小。缓存大小可以扩展到 PB 级,最小大小为 1.2 TiB。 Amazon EBS: https://aws.amazon.com/ebs/?trk=cndc-detail # 工作原理 为了向您展示它是如何工作的,我们在两个现有的 **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/?trk=cndc-detail Amazon 管理控制台: https://console.aws.amazon.com/?trk=cndc-detail 控制台的 File Cache 部分: https://console.aws.amazon.com/fsx/#fc/file-caches?trk=cndc-detail ![139b7addc9bd973ece0a5f8bcd4d07b4.png](https://dev-media.amazoncloud.cn/ceb68b92fb0e43f0901e331de524bd26_139b7addc9bd973ece0a5f8bcd4d07b4.png "139b7addc9bd973ece0a5f8bcd4d07b4.png") 为我的缓存输入**缓存名称**(此演示为 AmazonNewsBlog)和**缓存存储容量**。存储容量以 **TiB** 表示。最小值为 1.2 TiB 或以 2.4 TiB 为增量。请注意,当您选择较大的缓存大小时,**吞吐能力**会增加。 TiB:https://simple.wikipedia.org/wiki/Tebibyte?trk=cndc-detail ![cd1b9a567450edef186cb8e6b5a98e8b.png](https://dev-media.amazoncloud.cn/08baae77571a4c6cbcd6f53997f1c496_cd1b9a567450edef186cb8e6b5a98e8b.png "cd1b9a567450edef186cb8e6b5a98e8b.png") 检查并接受为**联网**和**加密**提供的默认值。对于联网,我们可能会选择一个 VPC、子网和安全组来关联缓存网络接口。建议将缓存部署在与计算服务相同的子网中,以最大限度地减少访问文件时的延迟。对于加密,可以使用 Amazon KMS 管理的密钥(默认)或选择自己的密钥。 然后,我们创建了**数据存储库关联**。这是缓存和数据来源之间的链接。数据来源可能是 NFS 文件系统、S3 存储桶或**前缀**。我们可能为一个缓存创建多达八个数据存储库关联。缓存的所有数据存储库关联都具有相同的类型:它们全部都是 NFS v3 或者全部都是 S3。如果需要两种类型,则可以创建两个缓存。 前缀: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html?trk=cndc-detail 在这个演示中,我们选择关联我的 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?trk=cndc-detail CIDR: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing?trk=cndc-detail 别忘了点击**添加**按钮!否则,您的输入将被忽略。您可以重复该操作以添加更多数据存储库。 ![ac634e9b5f7a785ecbe944a726cfc121.png](https://dev-media.amazoncloud.cn/061c950136934193a9cab28cccd86c6c_ac634e9b5f7a785ecbe944a726cfc121.png "ac634e9b5f7a785ecbe944a726cfc121.png") 输入两个数据存储库后,选择**下一步**,然后查看我的选择。准备就绪后,选择**创建缓存**。 ![daac861d1fd264572d3921b634aefc0c.png](https://dev-media.amazoncloud.cn/a3a25bdc538f42aeafa507db4836d013_daac861d1fd264572d3921b634aefc0c.png "daac861d1fd264572d3921b634aefc0c.png") 几分钟后,缓存状态变为**可用**。 ![3ec465d0ee6f69bf0fd41b25f59cf855.png](https://dev-media.amazoncloud.cn/fb04a6af08e147ba95fb186e8c8cee0b_3ec465d0ee6f69bf0fd41b25f59cf855.png "3ec465d0ee6f69bf0fd41b25f59cf855.png") 最后一部分是在部署工作负载的计算机上安装缓存。File Cache 在后台使用 Lustre。正如我们的文档中所述,**必须先安装适用于 Linux 的 Lustre 客户端**。完成后,选择控制台上的**附加**按钮以接收下载和安装 Lustre 客户端以及安装缓存文件系统的说明。 先安装适用于 Linux 的 Lustre 客户端: https://docs.aws.amazon.com/fsx/latest/FileCacheGuide/install-lustre-client.html?trk=cndc-detail ![8e1e538ea4df0209d1897a28ba76596d.png](https://dev-media.amazoncloud.cn/3b7ebb2ea6e34352b7a2224230c3f6e2_8e1e538ea4df0209d1897a28ba76596d.png "8e1e538ea4df0209d1897a28ba76596d.png") 为此,连接到在同一 VPC 中运行的 EC2 实例。然后我输入: ```js 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?trk=cndc-detail ```js $ 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/?trk=cndc-detail Amazon CloudTrail: https://aws.amazon.com/cloudtrail/?trk=cndc-detail 仪表板: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html?trk=cndc-detail 定义警报: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html?trk=cndc-detail # 注意事项 在使用或计划使用 File Cache 时,需要记住几个关键点。 首先,File Cache **会对静态数据进行加密,并支持对传输中数据进行加密**。您的数据始终使用 **Amazon Key Management Service (Amazon KMS)** 中管理的密钥进行静态加密。您可以使用服务自有密钥或自己的密钥(**客户管理的 CMK**)。 其次,File Cache 提供了两个用于将数据从数据存储库导入缓存的选项:延迟加载和预加载。延迟加载会在数据尚未缓存时按需导入数据,预加载则会在启动工作负载之前根据用户请求导入数据。默认设置为延迟加载。这对大多数工作负载都很有意义,因为它允许您的工作负载启动,而无需等待元数据和数据被导入缓存。当您的访问模式注重首字节延迟时,预加载会很有帮助。 会对静态数据进行加密,并支持对传输中数据进行加密: https://docs.aws.amazon.com/fsx/latest/FileCacheGuide/encryption.html?trk=cndc-detail Amazon KMS: https://aws.amazon.com/kms/?trk=cndc-detail 客户管理的 CMK: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk?trk=cndc-detail # 定价和可用性 使用 File Cache 时没有预付费用或固定价格成本。您需要为预置的缓存存储容量和元数据存储容量付费。**定价页面包含详细信息**。除了 File Cache 本身之外,您还需要支付 S3 请求费用、Amazon Direct Connect 费用以及文件缓存和数据来源之间的可用区间、区域间和互联网出口流量的通常数据传输费用。 File Cache 现已在以下地区推出:美国东部(俄亥俄州)、美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲(法兰克福)、欧洲地区(爱尔兰)和欧洲地区(伦敦)。 现在就开始构建并**创建您的第一个 File Cache** 吧! 定价页面包含详细信息: https://aws.amazon.com/filecache/pricing?trk=cndc-detail 创建您的第一个 File Cache : https://console.aws.amazon.com/fsx/#fc/file-caches?trk=cndc-detail
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭
contact-us