配置和使用 Mountpoint - Amazon Simple Storage Service

配置和使用 Mountpoint

要使用适用于 Amazon S3 的 Mountpoint,您的主机需要有效的 AWS 凭证,有权访问您要挂载的一个或多个存储桶。有关不同的身份验证方式,请参阅 GitHub 上的 Mountpoint AWS 凭证

例如,您可以创建一个新的 AWS Identity and Access Management(IAM)用户和角色用于此目的。请确保此角色有权访问您要挂载的一个或多个存储桶。您可以通过实例配置文件将 IAM 角色传递给您的 Amazon EC2 实例。

使用适用于 Amazon S3 的 Mountpoint

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

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

    在下面的示例中,将 amzn-s3-demo-bucket 替换为 S3 存储桶的名称,并将 ~/mnt 替换为主机上您希望在其中挂载 S3 存储桶的目录。

    mkdir ~/mnt mount-s3 amzn-s3-demo-bucket ~/mnt

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

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

    在本地挂载存储桶后,您可以使用常用的 Linux 命令(例如 catls)来处理您的 S3 对象。适用于 Amazon S3 的 Mountpoint 通过以正斜杠(/)字符为界拆分 S3 存储桶中的密钥,将这些密钥解释为文件系统路径。例如,如果您的存储桶中有对象密钥 Data/2023-01-01.csv,那么您的 Mountpoint 文件系统中将有一个名为 Data 的目录,其中有一个名称为 2023-01-01.csv 的文件。

    适用于 Amazon S3 的 Mountpoint 特意不实现文件系统的完整 POSIX 标准规范。Mountpoint 针对以下工作负载进行了优化:此类工作负载需要通过文件系统接口对存储在 Amazon S3 中的数据进行高吞吐量读写访问,但不依赖文件系统功能。有关更多信息,请参阅 GitHub 上的适用于 Amazon S3 的 Mountpoint 的文件系统行为。需要更丰富的文件系统语义的客户应该考虑其他 AWS 文件服务,例如 Amazon Elastic File System(Amazon EFS)Amazon FSx

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

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

    umount ~/mnt
    注意

    要获取此命令的选项列表,请运行 umount --help

有关 Mountpoint 配置的其他详细信息,请参阅 GitHub 上的 S3 存储桶配置文件系统配置

在 Mountpoint 中配置缓存

在使用适用于 Amazon S3 的 Mountpoint 时,可以将它配置为在 Amazon EC2 实例存储或附加的 Amazon EBS 卷上缓存 S3 存储桶中最近访问的数据。缓存此数据有助于提高性能并降低重复数据访问的成本。在 Mountpoint 中缓存非常适合重复读取相同数据的使用场景,这些数据在多次读取期间不会发生更改。例如,可以将缓存用于需要多次读取训练数据集的机器学习训练作业,以提高模型精度。

挂载 S3 存储桶时,可以选择通过标志启用缓存。可以配置数据缓存的位置和大小以及元数据在缓存中的保留时间。在挂载存储桶并启用缓存后,Mountpoint 会在配置的缓存位置创建一个空的子目录(如果该子目录尚不存在)。首次挂载存储桶和卸载存储桶时,Mountpoint 会删除缓存位置的内容。有关在 Mountpoint 中配置和使用缓存的更多信息,请参阅 GitHub 上的适用于 Amazon S3 的 Mountpoint 缓存配置

挂载 S3 存储桶时,可以使用 --cache CACHE_PATH 标志启用缓存。在以下示例中,将 CACHE_PATH 替换为要在其中缓存数据的目录的文件路径。将 amzn-s3-demo-bucket 替换为 S3 存储桶的名称,并将 ~/mnt 替换为主机上您希望在其中挂载 S3 存储桶的目录。

mkdir ~/mnt mount-s3 --cache CACHE_PATH amzn-s3-demo-bucket ~/mnt
重要

如果启用缓存,Mountpoint 会将 S3 存储桶中未加密的对象内容保存在挂载时配置的缓存位置。建议您限制对数据缓存位置的访问以保护您的数据。