S3 兼容存储

Alluxio 可以连接到各种提供 S3 兼容接口的存储系统,例如 MinIO、Ceph 等。本指南介绍了如何配置 Alluxio 以将这些存储系统挂载为底层文件系统 (UFS)。

连接到 S3 兼容存储与连接到 AWS S3 的主要区别在于需要指定自定义端点。

先决条件

  • Alluxio 已安装并正在运行。有关详细信息,请参阅先决条件。

  • S3 兼容存储服务正在运行,并且可以从 Alluxio 集群访问。

  • 您拥有 S3 兼容存储的以下信息:

    • 端点 URL:S3 服务正在侦听的地址(例如 http://minio.example.com:9000)。

    • 访问密钥 ID 和秘密访问密钥:用于访问存储的凭据。

    • 存储桶名称:要挂载的存储桶的名称。

基本配置

指定存储端点

使用非 AWS S3 兼容存储时,您必须将 Alluxio 配置为使用自定义端点。否则,Alluxio 将默认为 AWS 全局 S3 服务端点。

alluxio.underfs.s3.endpoint=<S3_ENDPOINT>
alluxio.underfs.s3.endpoint.region=<S3_ENDPOINT_REGION>

如果没有要设置的端点区域,可以通过省略该属性来不指定。请注意,设置端点后,alluxio.underfs.s3.region=<S3_REGION> 将不再生效。

禁用 DNS 存储桶 URL 以进行路径样式访问

默认情况下,构造的请求 URL 将符合虚拟托管样式访问。如果存储需要路径样式访问请求,则需要设置以下配置。

alluxio.underfs.s3.disable.dns.buckets=true

支持的存储提供商

已知以下存储提供商支持 Alluxio 的 S3 集成。请注意,此列表并非详尽无遗——其他 S3 兼容系统也可能通过适当的配置工作。

MinIO

MinIO 是用于本地部署的对象存储解决方案。

alluxio.underfs.s3.endpoint=<S3_ENDPOINT>
alluxio.underfs.s3.endpoint.region=<S3_ENDPOINT_REGION>
s3a.accessKeyId=<ACCESS_KEY_ID>
s3a.secretKey=<SECRET_KEY>
alluxio.underfs.s3.disable.dns.buckets=true
alluxio.underfs.s3.inherit.acl=false

端点地址通常采用 http://<minioServerHostname>:<port> 的形式,例如 http://127.0.0.1:9000。如果创建存储桶时未指定区域,则可以通过省略该属性来不指定端点区域。

Oracle 云基础设施 (OCI) 对象存储

OCI 对象存储 是 Oracle 提供的对象存储服务。

alluxio.underfs.s3.endpoint=<S3_ENDPOINT>
alluxio.underfs.s3.endpoint.region=<S3_ENDPOINT_REGION>
s3a.accessKeyId=<ACCESS_KEY_ID>
s3a.secretKey=<SECRET_KEY>
alluxio.underfs.s3.disable.dns.buckets=true
alluxio.underfs.s3.inherit.acl=false

Tigris 数据

Tigris 是 Tigris 数据提供的对象存储服务。

alluxio.underfs.s3.endpoint=<S3_ENDPOINT>
alluxio.underfs.s3.endpoint.region=<S3_ENDPOINT_REGION>
s3a.accessKeyId=<ACCESS_KEY_ID>
s3a.secretKey=<SECRET_KEY>
alluxio.underfs.s3.disable.dns.buckets=true
alluxio.underfs.s3.inherit.acl=false

例如,开发存储桶使用端点 https://fly.storage.tigris.dev,并且可以通过省略该属性来不指定端点区域。

Last updated