Alluxio Community Day VIII

Join us at our next virtual community event on December 14th featuring fellow Alluxio community users from Apache Iceberg and WeRide.

Alluxio集成Ceph Object Storage作为底层存储

Slack Docker Pulls GitHub edit source

该指南介绍如何配置Alluxio以使用Ceph Object Storage作为底层文件系统。Alluxio使用Rados Gateway 支持两种不同的客户端API连接Ceph Object Storage

初始步骤

首先,在你的机器上必须安装Alluxio二进制包。你可以自己编译Alluxio,或者下载二进制包

配置Alluxio

为了配置Alluxio以使用底层文件系统,需要修改alluxio-site.properties文件。如果该文件不存在,根据模板创建配置文件。

$ cp conf/alluxio-site.properties.template conf/alluxio-site.properties

方法1: S3接口

conf/alluxio-site.properties文件添加以下代码:

alluxio.master.mount.table.root.ufs=s3://<bucket>/<folder>
aws.accessKeyId=<access-key>
aws.secretKey=<secret-key>
alluxio.underfs.s3.endpoint=http://<rgw-hostname>:<rgw-port>
alluxio.underfs.s3.disable.dns.buckets=true
alluxio.underfs.s3.inherit.acl=<inherit-acl>

如果使用Ceph的版本,比如hammer(或者更老的版本),指定alluxio.underfs.s3.signer.algorithm=S3SignerType来使用v2版本的S3签名。 为了使用v1版本的GET Bucket(列出对象),指定alluxio.underfs.s3.list.objects.v1=true

方法2: Swift接口

conf/alluxio-env.sh文件添加以下代码:

alluxio.master.mount.table.root.ufs=swift://<swift-container>

其中,<swift-container>是一个已经存在的Swift容器。

以下的配置需要配置在conf/alluxio-site.properties

fs.swift.user=<swift-user>
fs.swift.tenant=<swift-tenant>
fs.swift.password=<swift-user-password>
fs.swift.auth.url=<swift-auth-url>
fs.swift.auth.method=<swift-auth-model>

<swift-use-public>可能的值为truefalse。如果使用本地的Ceph RGW认证,指定<swift-auth-model>swiftauth。指定 <swift-auth-url>http://<rgw-hostname>:8090/auth/1.0

使用Ceph本地运行Alluxio

完成所有的配置之后,你可以本地运行Alluxio,观察是否一切运行正常。

./bin/alluxio format
./bin/alluxio-start.sh local

该命令应当会启动一个Alluxio master和一个Alluxio worker,可以在浏览器中访问http://localhost:19999查看master Web UI。

接着,你可以运行一个简单的示例程序:

./bin/alluxio runTests

运行成功后,访问你的bucket/container目录,确认其中包含了由Alluxio创建的文件和目录。

如果使用S3连接器,创建的文件名称应像下面这样:

S3_BUCKET/S3_DIRECTORY/alluxio/data/default_tests_files/Basic_CACHE_THROUGH

如果使用Swift连接器,创建的文件名称应像下面这样:

swift://<SWIFT CONTAINER>/alluxio/data/default_tests_files/Basic_CACHE_THROUGH

访问控制

如果Alluxio安全认证被启用,Alluxio将会遵循底层Ceph对象存储的访问权限控制,根据使用的接口,参考S3 Access Control 或者Swift Access Control获得更多信息。