All Products
Search
Document Center

Container Service for Kubernetes:Memasang sistem file NAS dengan klien EFC melalui CNFS

Last Updated:Jun 18, 2026

Elastic File Client (EFC) mendukung akses paralel untuk beban kerja berkonkurensi tinggi dan set data berskala besar, sehingga cocok untuk aplikasi kontainerisasi yang intensif data serta berkonkurensi tinggi, seperti analitik data besar dan pelatihan serta inferensi AI. Dibandingkan dengan pemasangan sistem file NAS menggunakan protokol NFS bawaan, penggunaan EFC mempercepat akses file dan meningkatkan kinerja baca-tulis. Topik ini menjelaskan cara menggunakan CNFS untuk memasang sistem file NAS dengan klien EFC.

Pengenalan EFC

Elastic File Client (EFC) adalah klien POSIX berbasis FUSE yang berjalan di user-space yang disediakan oleh Alibaba Cloud. EFC dapat menggantikan klien NFS tradisional berbasis kernel-space dan menyediakan kemampuan akselerasi seperti akses multi-link, caching metadata. EFC juga terintegrasi dengan Managed Service for Prometheus untuk menyediakan pemantauan kinerja sisi klien.

Dibandingkan dengan klien NFS berbasis kernel-space dan klien berbasis FUSE open-source lainnya, klien EFC memberikan manfaat berikut:

  • Konsistensi data: Menjamin konsistensi kuat pada file dan direktori dengan menggunakan mekanisme distributed lock. Data yang ditulis oleh satu klien segera dapat dibaca oleh klien lain. File baru langsung dapat diakses oleh semua klien lain, yang menyederhanakan manajemen data di berbagai node.

  • Caching baca/tulis single-node: Mengoptimalkan logika caching FUSE dan menggunakan memori minimal pada node komputasi untuk menyimpan cache data. Hal ini memberikan kinerja baca/tulis yang lebih baik untuk file kecil, dengan peningkatan kinerja lebih dari 50% dibandingkan klien NFS tradisional.

  • Pra-ambil file kecil: Secara otomatis mengidentifikasi dan melakukan pra-ambil direktori dan file yang sering diakses untuk mengurangi overhead pengambilan data.

  • Hot upgrade dan failover: Klien mendukung hot upgrade tanpa perlu me-restart aplikasi. Jika terjadi kegagalan klien, sistem secara otomatis melakukan failover tanpa memengaruhi layanan Anda.

Prasyarat

  • Add-on cnfs-nas-daemon telah diinstal di kluster, dan AlinasMountProxy=true telah ditambahkan ke FeatureGate komponen csi-plugin untuk mengaktifkan cnfs-nas-daemon. Untuk informasi selengkapnya, lihat Mengelola add-on cnfs-nas-daemon.

  • Sistem operasi node adalah Alibaba Cloud Linux 3 atau ContainerOS, dan versi kernel adalah 5.10.134-17.2 atau lebih baru.

    Penting

    Jika sistem operasi node atau versi kernel tidak memenuhi persyaratan, sistem secara otomatis akan kembali menggunakan protokol NFS untuk pemasangan.

Konfigurasikan CNFS untuk menggunakan klien EFC

  1. Buat resource CNFS dan tentukan klien EFC.

    1. Simpan konten berikut sebagai cnfs-efc.yaml.

      Catatan

      Contoh ini menunjukkan cara mengaktifkan klien EFC menggunakan CNFS untuk mengonfigurasi sistem file NAS yang sudah ada. Jika Anda membuat sistem file NAS baru menggunakan CNFS, Anda juga dapat mengaktifkan klien EFC dengan menambahkan useClient: EFCClient ke bagian parameters resource ContainerNetworkFileSystem. Untuk informasi selengkapnya tentang cara membuat sistem file NAS menggunakan CNFS, lihat Mengelola sistem file NAS menggunakan CNFS.

      apiVersion: storage.alibabacloud.com/v1beta1
      kind: ContainerNetworkFileSystem
      metadata:
        name: cnfs-efc-test
      spec:
        description: "cnfs"
        type: nas
        reclaimPolicy: Retain
        parameters:
          server: 17f7e4****-h****.cn-beijing.nas.aliyuncs.com
          useClient: EFCClient

      Parameter

      Deskripsi

      description

      Deskripsi sistem file.

      type

      Jenis volume yang akan dibuat.

      reclaimPolicy

      Kebijakan reclaim yang didukung hanya Retain, yang berarti menghapus CNFS tidak akan menghapus sistem file NAS.

      parameters

      server

      Alamat titik pemasangan NAS. Titik pemasangan harus memenuhi persyaratan berikut:

      • Titik pemasangan harus berada dalam VPC yang sama dengan pod kluster. Jika tidak, pemasangan akan gagal.

      • Untuk kinerja optimal, gunakan vSwitch yang sama untuk titik pemasangan dan pod kluster.

      • Status titik pemasangan harus Available.

      Jika tidak ada titik pemasangan yang memenuhi persyaratan, Anda dapat membuat yang baru. Untuk informasi selengkapnya, lihat Mengelola titik pemasangan.

      useClient

      Atur ke EFCClient untuk mengaktifkan klien EFC.

    2. Buat resource CNFS.

      kubectl create -f cnfs-efc.yaml
  2. Gunakan CNFS untuk membuat volume yang sesuai.

    kubectl create -f cnfs-pv-pvc.yaml

    Berikut adalah contoh cnfs-pv-pvc.yaml.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: efc-pv
    spec:
      accessModes:
      - ReadWriteMany
      capacity:
        storage: 50Gi
      claimRef:
        name: efc-pvc
        namespace: default
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeAttributes:
          containerNetworkFileSystem: cnfs-efc-test
          path: /
        volumeHandle: efc-pv
      volumeMode: Filesystem
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: efc-pvc
      namespace: default
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 50Gi
      storageClassName: ""
      volumeMode: Filesystem
      volumeName: efc-pv

Buat workload dan pasang NAS

  1. Buat Deployment dan pasang sistem file NAS.

    kubectl create -f cnfs-deployment.yaml

    Kode berikut adalah contoh cnfs-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: efc-test
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: efc-test
      template:
        metadata:
          labels:
            app: efc-test
        spec:
          containers:
          - command:
            - sh
            - -c
            - |
              sleep infinity
            image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
            name: test
            volumeMounts:
            - mountPath: /mnt
              name: pvc
          volumes:
          - name: pvc
            persistentVolumeClaim:
              claimName: efc-pvc
  2. Periksa status pod dalam Deployment.

    kubectl get pod -l app=efc-test

    Output yang diharapkan:

    NAME                       READY   STATUS    RESTARTS   AGE
    efc-test-f545b86d6-spr7p   1/1     Running   0          29m
  3. Setelah pod berjalan, periksa titik pemasangan EFC di dalamnya.

    kubectl exec <pod-name> -- mount -t fuse.aliyun-alinas-efc

    Output yang diharapkan:

    bindroot-3889a-8TzEY5mc:3d2804****-w****.cn-shanghai.nas.aliyuncs.com:/ on /mnt type fuse.aliyun-alinas-efc (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=1048576)