本指南介绍了如何将 Google Cloud Storage (GCS)配置为Alluxio的底层存储系统。
Google Cloud Storage (GCS) 是 Google Cloud Platform (GCP) 提供的一个可扩展且耐久性高的对象存储服务。
它允许用户存储和检索各种类型的数据,包括非结构化数据和结构化数据。
有关 GCS 的更多信息,请参阅 文档。
在开始配置前,请确保已准备好以下所需信息:
默认的 GCS UFS 模块基于 Google Cloud API 实现,接受 Google 应用凭证。
在创建应用凭证时,可以通过定义细粒度的权限来限制对特定存储桶的访问。
使用 挂载表操作 添加新的挂载点,指定创建挂载点的Alluxio 路径,并将 GCS 路径指定为 UFS URI。 在挂载操作中,还可以同时指定凭证和配置选项,具体方法请参阅配置挂载点的说明。
以下是通过 Operator 创建挂载点的 ufs.yaml 文件示例:
apiVersion: k8s-operator.alluxio.com/v1
kind: UnderFileSystem
metadata:
name: alluxio-gs
namespace: alx-ns
spec:
alluxioCluster: alluxio-cluster
path: gs://<GS_BUCKET>/<PATH>
mountPath: /gs
mountOptions:
fs.gcs.credential.path: /path/to/<google_application_credentials>.json
不使用 Operator 的情况下, 按照 GCS v2 的方式将 gs://<GCS_BUCKET>/<GCS_DIRECTORY> 挂载到 /gs的命令示例如下:
属性键 fs.gcs.credential.path 提供了 Google 应用凭证 JSON 文件的路径。
请注意,Google 应用凭证 JSON 文件应置于所有 Alluxio 节点的同一路径下。
如果运行 Alluxio 进程的节点已经包含 GCS 凭证,则可能不需要该属性,但还是建议明确设置这一属性。
在 Kubernetes 环境中,应将凭证文件作为secret提供。
请参阅如何以文件形式添加 Secret。
在 GCS 中,目录表示为以指定后缀命名的零字节对象。
可以使用配置参数 alluxio.underfs.gcs.directory.suffix 来更新目录后缀。
如果启用了 Alluxio 安全性,Alluxio 将执行从底层对象存储继承的访问控制。
在 Alluxio 配置中指定的 GCS 凭证代表一个 GCS 用户。
GCS 服务后端会检查用户对存储桶和对象的权限以进行访问控制。
如果给定的 GCS 用户没有对指定存储桶的正确访问权限,则会抛出拒绝访问的报错。
当启用 Alluxio 安全性时,Alluxio 会在首次将元数据加载到 Alluxio 命名空间时,将存储桶的 ACL 加载到 Alluxio 权限中。
从 GCS ACL 到 Alluxio 权限的映射
Alluxio 检查 GCS 存储桶的读/写 ACL 以确定所有者对 Alluxio 文件的权限模式。
例如,如果 GCS 用户对底层存储桶具有只读访问权限,则挂载的目录和文件将具有0500模式。
如果 GCS 用户对底层存储桶具有完全访问权限,则挂载的目录和文件将具有0700模式。
如果 Alluxio 集群位于公司代理或防火墙后面,默认设置下 Alluxio 与 GCS 集成可能无法访问网络。
在启动 Alluxio coordinator 和 worker 之前,请将以下 Java 选项添加到 conf/alluxio-env.sh中:
http.nonProxyHosts的示例值是localhost|127.*|[::1]|192.168.0.0/16。
如果代理需要用户名和密码,请添加 http.proxyUser、https.proxyUser、 http.proxyPassword 和 https.proxyPasswordJava 选项。
Last updated