Skip to content

Latest commit

 

History

History
120 lines (88 loc) · 4.06 KB

accelerate_different_storage.md

File metadata and controls

120 lines (88 loc) · 4.06 KB

示例 - 用Fluid加速不同的底层存储

选择不同的底层存储服务作为Alluxio的底层存储系统,需要Alluxio进行额外的配置,以使得Alluxio能够正常访问存储。

本文档展示了如何在Fluid中以声明式的方式完成Alluxio所需的特殊配置,以访问S3、HDFS、Ceph S3、PV、Minio等不同的存储服务。更多信息请参考Alluxio集成Amazon AWS S3作为底层存储 - Alluxio v2.8.1 (stable) Documentation

前提条件

  • 在运行该示例之前,请参考安装文档完成安装,并检查Fluid各组件正常运行:

    $ kubectl get pod -n fluid-system
    NAME                                  READY   STATUS    RESTARTS   AGE
    alluxioruntime-controller-5b64fdbbb-84pc6   1/1     Running   0          8h
    csi-nodeplugin-fluid-fwgjh                  2/2     Running   0          8h
    csi-nodeplugin-fluid-ll8bq                  2/2     Running   0          8h
    dataset-controller-5b7848dbbb-n44dj         1/1     Running   0          8h
  • 可访问的底层存储服务;

配置方式

创建Dataset资源对象

$ cat << EOF > dataset.yaml
apiVersion: data.fluid.io/v1alpha1
kind: Dataset
metadata:
  name: my-hdfs
spec:
  mounts:
    - mountPoint: hdfs://<namenode>:<port>/path1
      name: hdfs-file1
    - mountPoint: hdfs://<namenode>:<port>/path2
      name: hdfs-file2
EOF
$ kubectl create -f dataset.yaml

Fluid将该CRD对象中定义的mountPoint属性挂载到Alluxio之上,因此该属性可以是任何合法的能够被Alluxio识别的UFS地址。

而且每个Dataset可以设置多个mountPoint,这样当用户利用PVC挂载该目录时,所有的mountPoint都会被挂载在指定的目录下。同时用户也可以在挂载PVC时设置subPath来指定挂载Dataset中设置的某个mountPoint或者其子目录。例如,上述例子中,在挂载PVC时,你可以设置subPath: hdfs-file1,这样就只会挂载hdfs://<namenode>:<port>/path1目录。

用户可以根据需要修改spec.mounts字段,一般设置为底层存储的访问路径,例如:

  • HDFS:- mountPoint: hdfs://<namenode>:<port>

  • AWS S3:

    apiVersion: data.fluid.io/v1alpha1
    kind: Dataset
    metadata:
      name: my-s3
    spec:
      mounts:
        - mountPoint: s3://<bucket-name>/<path-to-data>/
          name: s3
          options:
            alluxio.underfs.s3.region: <s3-bucket-region>
            alluxio.underfs.s3.endpoint: <s3-endpoint>
            encryptOptions:
            - name: aws.accessKeyId
              valueFrom:
                secretKeyRef:
                  name: mysecret
                  key: aws.accessKeyId
            - name: aws.secretKey
              valueFrom:
                secretKeyRef:
                  name: mysecret
                  key: aws.secretKey
  • PVC:- mountPoint: pvc://nfs-imagenet

  • 本地目录:- mountPoint: local:///mnt/nfs-imagenet

  • GCS:- mountPoint: gs://<bucket-name>/<path-to-data>

用户需要在spec.mounts.mountPoint指定存储位置;在spec.mounts.options指定访问存储所需的region、endpoint以及密钥等(更多选项参考配置项列表 - Alluxio v2.8.1 (stable) Documentation

创建AlluxioRuntime资源对象

$ cat << EOF > runtime.yaml
apiVersion: data.fluid.io/v1alpha1
kind: AlluxioRuntime
metadata:
  name: my-hdfs
spec:
  ...
EOF

AlluxioRuntime无需为不同的底层存储进行额外的配置(除了HDFS,具体参考HDFS)。

$ kubectl create -f runtime.yaml

至此, Alluxio能够根据用户指定的配置文件正常地访问不同类型的底层存储。

具体示例