什么是Mountpoint for Amazon S3?

这是一款开源文件客户端,可让您的文件感知 Linux 应用程序轻松直接连接到Amazon Simple Storage Service (Amazon S3)存储桶,适用于大规模读取密集型应用程序的生产使用:数据湖、机器学习训练、图像渲染、自动驾驶车辆模拟、ETL 等。

它支持基于文件的工作负载,执行顺序和随机读取、顺序(仅附加)写入,并且不需要完整的 POSIX 语义。Mountpoint 是为大规模分析型应用程序而设计的,它们可以并行读取和生成大量的 S3 数据,但不需要向现有对象中间写入数据。Mountpoint 允许你将 S3 存储桶或前缀映射到实例的文件系统命名空间,遍历存储桶的内容,就像它们是本地文件一样,并实现对对象的高吞吐量访问。


首先我们要看的就是S3FS的局限性:

利用S3fs可以方便的把S3存储桶挂载在用户本地操作系统目录中,但是由于S3fs实际上是依托于Amazon S3服务提供的目录访问接口,所以不能简单的把S3fs挂载的目录和本地操作系统目录等同使用。用户使用S3f3挂载S3存储桶和直接访问S3服务有类似的使用场景。适用于对不同大小文件对象的一次保存(上传),多次读取(下载)。不适用于对已保存文件经常做随机修改,因为每次在本地修改并保存文件内容都会导致S3fs上传新的文件到Amazon S3去替换原来的文件。从访问性能上来说,通过操作系统目录方式间接访问Amazon S3存储服务的性能不如直接使用SDK或CLI接口访问效率高。

Mountpoint for Amazon S3 

安装与使用-参考链接: https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/mountpoint-usage.html

 01. 安装mountpoint客户端

根据操作系统选择合适的安装方式

技术分享丨Mountpoint for Amazon S3 助力应用性能提升!_Arc

技术分享丨Mountpoint for Amazon S3 助力应用性能提升!_Arc_02


02. 赋权 

创建IAM role权限(便于测试直接给S3full):

技术分享丨Mountpoint for Amazon S3 助力应用性能提升!_Arc_03


 03. 配置测试 

使用Amazon S3的Mountpoint执行以下操作:

1. 使用命令挂载存储桶mount-s3。

在以下示例中,替换 DOC-EXAMPLE-BUCKET为您的 S3 存储桶的名称,并替换~/mnt为主机上要安装 S3 存储桶的目录。

mkdir ~/mnt
mount-s3 DOC-EXAMPLE-BUCKET ~/mnt

由于 Mountpoint 客户端默认在后台运行,因此该 ~/mnt目录现在允许您访问 S3 存储桶中的对象。

2. 通过 Mountpoint 访问存储桶中的对象。

在本地挂载存储桶后,您可以使用常见的 Linux 命令(例如cat或ls)来处理 S3 对象

3. 使用umount命令卸载存储桶。此命令会卸载您的 S3 存储桶并退出 Mountpoint。

要使用以下示例命令,请替换 ~/mnt为主机上装载 S3 存储桶的目录。

umount ~/mnt

技术分享丨Mountpoint for Amazon S3 助力应用性能提升!_系统目录_04

最后适用于 Amazon S3 的 Mountpoint 概况

使用Mountpoint 时,需要注意以下几点:

定价 – 使用Mountpoint 时,您只需支付底层 S3 操作的费用,没有新的收费。您还可以使用Mountpoint 来访问请求者付费桶。

性能 – Mountpoint 能利用 S3 提供的弹性吞吐量,包括每个 EC2 实例与 S3 之间高达 100Gb/秒的数据传输。

操作和语义 – Mountpoint 支持基本文件操作,并且可以读取大小不超过 5TB 的文件。它可以列出和读取现有文件,也可以创建新文件。它无法修改现有文件或删除目录,也不支持符号链接或文件锁定(如果您需要 POSIX 语义,可以看看适用于 Lustre 的 Amazon FSx)。

存储类 – 您可以使用Mountpoint 访问除 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive、S3 Intelligent-Tiering Archive Access Tier 和 S3 Intelligent-Tiering Deep Archive Access Tier 之外的所有存储类中的 S3 对象。