本指南介绍如何将火山引擎对象存储服务 (TOS)arrow-up-right 配置为 Alluxio 的底层存储系统。火山引擎对象存储服务 (TOS) 是火山引擎提供的一种海量、安全、低成本、易于使用、高可靠、高可用的分布式云存储服务。
在使用 TOS 与 Alluxio 之前,请遵循 TOS 快速入门指南arrow-up-right 注册 TOS 并创建一个 TOS 存储桶。
在开始之前,请确保您已准备好以下所需信息:
您要在存储桶中使用的目录,可以是创建新目录或使用现有目录
使用挂载表操作 添加新的挂载点,指定要在其上创建挂载的 Alluxio 路径和作为 UFS URI 的 TOS 路径。 凭据和配置选项也可以作为挂载操作的一部分指定,如配置挂载点 中所述。
使用 operator 创建挂载点的 ufs.yaml 示例:
Copy 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 中配置以下设置:
我们使用分片上传方法将一个文件分多个部分上传,每个部分将在一个线程中上传。上传时不会生成任何临时文件。
您可以在 conf/alluxio-site.properties 中指定其他参数以可能加快上传速度。
禁用 TOS 分片上传,上传方法将一次性从头到尾完整上传一个文件。您需要修改 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 5 months ago