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 的 S3 集成。请注意,此列表并非详尽无遗——其他 S3 兼容系统也可能通过适当的配置工作。
MinIO
MinIO 是用于本地部署的对象存储解决方案。
端点地址通常采用 http://<minioServerHostname>:<port> 的形式,例如 http://127.0.0.1:9000。如果创建存储桶时未指定区域,则可以通过省略该属性来不指定端点区域。
Oracle 云基础设施 (OCI) 对象存储
OCI 对象存储 是 Oracle 提供的对象存储服务。
OCI 对象存储提供 S3 兼容 API,端点格式如下:
其中 <NAMESPACE> 是您 OCI 租户的对象存储命名空间(可在 OCI 控制台的对象存储设置中找到),<REGION> 是 OCI 区域标识符(例如 us-phoenix-1、eu-frankfurt-1)。
所需的配置属性:
OCI 关键说明:
alluxio.underfs.s3.disable.dns.buckets=true:OCI 必须设置此项。OCI 的 S3 兼容 API 使用路径样式访问(endpoint/bucket),而非虚拟托管样式(bucket.endpoint)。不设置此项请求将失败。alluxio.underfs.s3.endpoint.region:必须与 OCI 区域标识符匹配。设置endpoint后,alluxio.underfs.s3.region将被忽略,仅endpoint.region生效。alluxio.underfs.s3.sdk.version=1:OCI 写入必须设置。OCI 的 S3 兼容端点不接受 AWS SDK v2 的 chunked transfer encoding;不设置此项时写入操作会返回 HTTP 501 "AWS chunked encoding not supported"。凭据:使用 OCI Customer Secret Keys(在 OCI 控制台的 用户设置 → Customer Secret Keys 下生成),这是 OCI 中与 AWS Access Key / Secret Key 等价的凭据。
Kubernetes CR 示例:
挂载多个 OCI 区域的存储桶:
每个挂载指定各自的端点和区域。如果所有存储桶共享相同凭据,可在 AlluxioCluster CR 的 spec.properties 中全局设置凭据,各 UnderFileSystem CR 只需指定各自的端点和区域:
Tigris 数据
Tigris 是 Tigris 数据提供的对象存储服务。
例如,开发存储桶使用端点 https://fly.storage.tigris.dev,并且可以通过省略该属性来不指定端点区域。
Last updated