文档

使用DBFS静态存储卷

更新时间:

数据库文件存储(DBFS)是一款针对数据库场景的云原生共享文件存储服务,支持共享式多点挂载并进行读写。本文介绍如何使用DBFS静态存储卷以及如何验证DBFS存储卷的共享存储特性。

索引

前提条件

注意事项

  • 部分ECS类型不支持DBFS挂载。关于ECS支持说明,请参见ECS支持说明

  • DBFS必须在支持的地域和可用区内使用,且DBFS实例需要与ECS在同一可用区,才可以挂载使用。关于DBFS支持的地域,请参见DBFS支持的地域

  • DBFS存储卷支持同时被多个Pod挂载。

步骤一:创建PV和PVC

您可以通过创建存储卷PV和存储声明PVC,将PVC绑定对应的PV,实现DBFS静态存储卷挂载。

  1. 登录数据库文件系统控制台,查看已创建的DBFS文件系统的大小、ID和文件系统所在的可用区。

  2. 使用以下内容,创建static-pv-pvc.yaml文件。

    请替换以下DBFS文件系统的大小、ID和文件系统所在的可用区为您上一步获取的已创建的DBFS文件系统的实际信息。

    展开查看static-pv-pvc.yaml文件

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: dbfs-static
      labels:
        alicloud-pvname: dbfs-static
    spec:
      accessModes:
      - ReadWriteMany
      capacity:
        storage: 20Gi    # 替换为您的DBFS文件系统大小。
      csi:
        driver: dbfsplugin.csi.alibabacloud.com
        fsType: ext4
        volumeHandle: dbfs-o6vexvbut9u0takkwj****  # 替换为您的DBFS文件系统ID。
      nodeAffinity:
        required:
          nodeSelectorTerms:
          - matchExpressions:
            - key: topology.dbfsplugin.csi.alibabacloud.com/zone
              operator: In
              values:
              - cn-hangzhou-i     # 替换为您的DBFS文件系统所在的可用区。
      persistentVolumeReclaimPolicy: Retain
    
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: dbfs-static
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 20Gi
      selector:
        matchLabels:
          alicloud-pvname: dbfs-static
    
  3. 执行以下命令,创建PV和PVC。

    kubectl create -f static-pv-pvc.yaml
  4. 查看已创建的PV和PVC。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群

    2. 集群列表页面,单击目标集群名称进入集群信息页面。

      1. 集群信息页面左侧导航栏,选择存储>存储卷。在存储卷页面可以看到已创建的PV。

      2. 集群信息页面左侧导航栏,选择存储>存储声明。在存储声明页面可以看到创建的PVC。

步骤二:创建应用并挂载PVC

  1. 使用以下内容,创建deploy.yaml文件。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dbfs-test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: dbfs-test
      template:
        metadata:
          labels:
            app: dbfs-test
        spec:
          containers:
          - image: nginx:latest
            name: main
            volumeMounts:
            - mountPath: /data
              name: data
          volumes:
          - name: data
            persistentVolumeClaim:
              claimName: dbfs-static
  2. 执行以下命令创建名为deploy的应用,并挂载PVC。

    kubectl create -f deploy.yaml
  3. 执行以下命令,确认Pod启动成功。

    kubectl get pod -l app=dbfs-test

    预期输出:

    NAME                         READY   STATUS    RESTARTS   AGE
    dbfs-test-5b5cdb85f****   1/1     Running   0          32s
    dbfs-test-c5bb4746c****    1/1     Running   0          32s

步骤三:验证DBFS存储卷的共享存储

  1. 执行以下命令,查看Pod中的挂载点。

    kubectl exec -it dbfs-test-5b5cdb85f**** -- df 

    预期输出:

    Filesystem     1K-blocks    Used Available Use% Mounted on
    ...
    dbfs_server     19879936  502784  19377152   3% /data
    ...
  2. 执行以下命令,在一个Pod中写入文件。

    kubectl exec -it dbfs-test-5b5cdb85f**** -- sh -c "echo hello > /data/test.txt" 
  3. 执行以下命令,在另一个Pod中读取文件。

    kubectl exec -it dbfs-test-c5bb4746c**** -- cat /data/test.txt

    预期输出:

    hello

    预期输出表明,DBFS存储卷可以实现多个Pod的共享存储。

  • 本页导读 (1)
文档反馈