本指南介绍如何将百度智能云对象存储(BOS) 配置为 Alluxio 的底层存储系统。
百度智能云对象存储BOS(Baidu Object Storage)提供稳定、安全、高效以及高扩展存储服务。
在将 BOS 用于 Alluxio 之前,请按照 BOS 快速入门流程 注册 BOS 并创建一个 BOS 存储桶。
在开始配置前,请确保已准备好以下所需信息:
使用挂载表操作来添加新的挂载点, 需指定在其上创建挂载的Alluxio路径,并指定BOS路径作为UFS URI。
在挂载操作中,还可以同时指定凭证和配置选项,具体方法请参阅配置挂载点的说明。
以下是通过 Operator 创建挂载点的 ufs.yaml 文件示例:
apiVersion: k8s-operator.alluxio.com/v1
kind: UnderFileSystem
metadata:
name: alluxio-bos
namespace: alx-ns
spec:
alluxioCluster: alluxio-cluster
path: bos://<BOS_BUCKET>/<BOS_DIRECTORY>
mountPath: /bos
mountOptions:
fs.bos.accessKeyId: <BOS_ACCESS_KEY>
fs.bos.accessKeySecret: <BOS_ACCESS_KEY_SECRET>
fs.bos.endpoint: <BOS_ENDPOINT>
不使用 Operator 的情况下, 将 bos://<BOS_BUCKET>/<BOS_DIRECTORY> 挂载到 /bos的命令示例如下:
请注意,如果要挂载 BOS 存储桶的根目录,请在存储桶名称后添加斜线(如 bos://BOS_BUCKET/)。
请注意,配置选项可以指定为挂载选项,也可以作为conf/alluxio-site.properties中的配置属性。
以下章节将介绍如何将配置作为属性来设置,但这些配置也可以通过 --option <key>=<value> 的方式作为挂载选项来设置。
要启用HTTPS协议来实现与BOS的安全通信,并为数据传输提供额外的安全层,请在 conf/alluxio-site.properties 文件中配置以下设置:
默认的上传方法是一次性从头到尾上传一个完整的文件。
我们使用分片上传法将一个文件分成多个分片上传,每个分片都将在一个线程中上传。
上传时不会生成任何临时文件。
要启用 BOS 分片上传,需要修改 conf/alluxio-site.properties 以包含:
您可以在 conf/alluxio-site.properties 中指定其他参数,以加速上传。
有时可能会因为服务器暂时无法响应,而在访问UFS时出现错误。您可以为UFS请求配置一个重试政策。
每一个发往UnderFS的I/O请求,例如下载对象、上传对象、多段上传, 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 与 BOS 集成时,可以通过调整以下配置来优化性能:
alluxio.underfs.bos.connection.max: 控制 BOS 的最大连接数。默认值为 1024。
alluxio.underfs.bos.io.threads.num: 控制 BOS 的IO线程数。默认值为 256。
alluxio.underfs.bos.socket.timeout: 控制 BOS 的socket超时时间。默认值为 50 秒。
alluxio.underfs.bos.connect.timeout: 控制 BOS 的连接超时时间。默认值为 50 秒。
Last updated