在Pi Day活动期间,AWS 发布了Mountpoint for Amazon S3,这是一个开源文件客户端,可以提供 Amazon S3 的高吞吐量访问。该工具目前处于 Alpha 阶段,其本地挂载点提供了很高的单实例传输速率,主要用于数据湖应用程序。
Mountpoint for Amazon S3 将本地文件系统 API 调用转换为 S3 对象 API 调用,如 GET 和 LIST。它支持对文件进行随机和顺序读操作,支持列出文件和目录。但该 Alpha 版本不支持写入操作(PUT),预计将来只支持新对象的顺序写入。
AWS 学者、德克萨斯大学助理教授James Bornholt、AWS 高级产品经理Devabrat Kumar和 AWS 杰出工程师Andy Warfield承认,该客户端不是一个通用的网络文件系统,并且在文件操作上有一些限制,他们写道:
Mountpoint 是为大规模分析型应用程序而设计的,它们可以并行读取和生成大量的 S3 数据,但不需要向现有对象中间写入数据。Mountpoint 允许你将 S3 存储桶或前缀映射到实例的文件系统命名空间,遍历存储桶的内容,就像它们是本地文件一样,并实现对对象的高吞吐量访问。
这个开源客户端没有模拟目录重命名等操作,因为那会产生 S3 API 调用,或者说需要 S3 API 不支持的 POSIX 文件系统特性。
Mountpoint for S3 并不是第一个将 S3 作为文件系统呈现的客户端,我们也可以使用Goofys和s3fs这些流行的开源选项通过 FUSE 挂载桶。在 Reddit 上,有一些开发人员质疑新客户端的必要性,并担心它会被用在数据湖之外的领域,Bornholt、Kumar 和 Warfield 写道:
Mountpoint 并不是第一个用于访问 S3 的文件客户端——有几个开源的文件客户端,我们有客户使用过。然而,我们从这些客户那里都听到过的一个话题是,他们希望这些客户端能够提供与 S3 REST API 和 AWS SDK 相同的稳定性、性能和技术支持。
新客户端使用 Rust 在大多数 AWS SDK 都使用的公共运行时(CRT)上构建,它依赖于自动推理来验证文件系统语义。The Duckbill Group 首席云经济学家Corey Quinn在推特上写道:
哦不,AWS 做了什么?15 年来,我之所以没有呼吁人们不要将 S3 用作文件系统,就是希望 S3 团队自己来做这件事!
云专家和 AWS 无服务器英雄Ben Kehoe提醒说:
使用文件概念来考虑 S3 会使你对 API 的语义产生误解,最终做出错误的假设,当系统总是因为这些假设不成立而出现轻微的故障时,你就要难过了。
Mountpoint 遵循 Apache License 2.0 许可,尚不能应用于生产工作负载。GitHub 上提供了初始Alpha版本和公共路线图。
原文链接:
https://www.infoq.com/news/2023/03/mountpoint-amazon-s3/
相关阅读:
通过 Amazon Managed Microsoft Active Directory 运行混合 Active Directory 服务
评论