本指南介绍如何将火山引擎对象存储服务(TOS) 配置为 Alluxio 的底层存储系统。
火山引擎对象存储服务 (TOS) 是火山引擎提供的海量、安全、低成本、易用、高可靠、高可用的分布式云存储服务。
在将 TOS 用于 Alluxio 之前,请按照 TOS 快速入门指南 注册 TOS 并创建一个 TOS 存储桶。
在开始配置前,请确保已准备好以下所需信息:
使用挂载表操作来添加新的挂载点, 需指定在其上创建挂载的Alluxio路径,并指定TOS路径作为UFS URI。
在挂载操作中,还可以同时指定凭证和配置选项,具体方法请参阅配置挂载点的说明。
以下是通过 Operator 创建挂载点的 ufs.yaml 文件示例:
apiVersion: k8s-operator.alluxio.com/v1
kind: UnderFileSystem
metadata:
name: alluxio-tos
namespace: alx-ns
spec:
alluxioCluster: alluxio-cluster
path: tos://<TOS_BUCKET>/<TOS_DIRECTORY>
mountPath: /tos
mountOptions:
fs.tos.accessKeyId: <TOS_ACCESS_KEY>
fs.tos.accessKeySecret: <TOS_ACCESS_KEY_SECRET>
fs.tos.endpoint: <TOS_ENDPOINT>
fs.tos.region: <TOS_REGION>
不使用 Operator 的情况下, 将 tos://<TOS_BUCKET>/<TOS_DIRECTORY> 挂载到 /tos 路径的示例命令如下:
请注意,如果要挂载 TOS 存储桶的根目录,请在存储桶名称后添加斜线(如 tos://TOS_BUCKET/)。
请注意,配置选项可以指定为挂载选项,也可以作为conf/alluxio-site.properties中的配置属性。
以下章节将介绍如何将配置作为属性来设置,但这些配置也可以通过 --option <key>=<value> 的方式作为挂载选项来设置。
要启用 HTTPS 协议来实现与 TOS 的安全通信,并为数据传输提供额外的安全层,请在 conf/alluxio-site.properties 文件中配置以下设置:
默认的上传方法是一次性从头到尾上传一个完整的文件。
我们使用分片上传法将一个文件分成多个分片上传,每个分片都将在一个线程中上传。
上传时不会生成任何临时文件。
要启用 TOS 分片上传,需要修改 conf/alluxio-site.properties 以包含:
您可以在 conf/alluxio-site.properties 中指定其他参数,以加速上传。
有时可能会因为服务器暂时无法响应,而在访问UFS时出现错误。您可以为UFS请求配置一个重试策略。
每一个发往UnderFS的I/O请求,例如下载对象(getObject)、上传对象(putObject)、多段上传(MultipartUpload), Alluxio 都会检查响应结果。
如果响应是一个错误,并且错误代码表明可以重试,则将根据配置中的重试策略重新提交请求。Alluxio 将会持续重试直到请求成功或者达到了重试的最大次数。
连续的成功重试间的等待间隔时间将会逐步从配置的基础休眠时间增长到最大休眠时间。
以下错误码被归类为可重试错误码:500 HTTP_INTERNAL_ERROR,502 HTTP_BAD_GATEWAY,503 HTTP_UNAVAILABLE,503 Slow Down,和 504 HTTP_GATEWAY_TIMEOUT。
注意:
4xx 错误码 通常代表客户端错误,比如:NOT_FOUND,PERMISSION_DENIED,UNAUTHENTICATED等等。此类错误不应重试,因为问题出在客户端。
5xx 错误码 通常代表服务端错误,但并不是所有的 5xx 错误都需要重试。比如 501 HTTP_NOT_IMPLEMENTED 就不应重试。
如需设置 UFS 访问请求的重试策略,需要修改 conf/alluxio-site.properties 文件,添加以下内容:
将 Alluxio 与 TOS 集成时,可以通过调整以下配置来优化性能:
alluxio.underfs.tos.retry.max: 控制 TOS 的重试次数。默认值为 3。
alluxio.underfs.tos.read.timeout: 控制 TOS 的读取超时时间。默认值为 30000 毫秒。
alluxio.underfs.tos.write.timeout: 控制 TOS 写超时时间。默认值为 30000 毫秒。
alluxio.underfs.tos.streaming.upload.partition.size: 控制 TOS 流式上传的分区大小。默认值为 64MB。
alluxio.underfs.tos.connect.timeout: 控制 TOS 的连接超时时间。默认值为 30000 毫秒
Last updated