Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Mount NAS via EFC client with CNFS

Dernière mise à jour :Aug 11, 2026

Elastic File Client (EFC) accélère l'accès à File Storage NAS grâce à la mise en cache distribuée. Il prend en charge un accès parallèle aux données à forte concurrence et à grande échelle, ce qui le rend particulièrement adapté aux charges de travail conteneurisées intensives en données, telles que l'analyse du Big Data, l'entraînement de l'IA et l'inférence. Par rapport au protocole Network File System (NFS) traditionnel, EFC offre des performances d'E/S nettement supérieures et une latence réduite. Cette rubrique explique comment monter un système de fichiers NAS en utilisant EFC via Container Network File System (CNFS).

accélère l'accès à File Storage NAS grâce à la mise en cache distribuée. Il

Important

EFC nécessite des nœuds exécutant Alibaba Cloud Linux 3 ou ContainerOS avec une version du noyau 5.10.134-17.2 ou ultérieure. Les nœuds ne satisfaisant pas à ces exigences basculent automatiquement vers le protocole NFS pour le montage. Vérifiez la compatibilité des nœuds avant de poursuivre.

Fonctionnement d'EFC

EFC est un client conforme POSIX fonctionnant dans l'espace utilisateur, basé sur FUSE (Filesystem in Userspace). Il remplace les clients NFS en mode noyau et offre les fonctionnalités principales suivantes :

  • Accès multi-connexions

  • Mise en cache des métadonnées et des données

  • Surveillance intégrée via Managed Service for Prometheus

Par rapport aux clients NFS en mode noyau :

Fonctionnalité

Description

Cohérence stricte des données

Les fichiers et répertoires restent cohérents grâce à un mécanisme de verrouillage distribué. Les fichiers écrits sont immédiatement visibles par tous les autres clients et les nouveaux fichiers sont synchronisés instantanément entre les nœuds.

Mise en cache en lecture/écriture sur nœud unique

EFC met les données en cache dans une partie de la mémoire des nœuds de calcul, améliorant ainsi le débit pour les petits fichiers et offrant des gains de performance d'E/S supérieurs à 50 % par rapport aux clients NFS traditionnels.

Préchargement des petits fichiers

Identifie et précharge automatiquement les répertoires et fichiers fréquemment utilisés afin de réduire la charge liée à l'extraction des données.

Mise à jour à chaud et basculement

Les mises à jour du client s'appliquent sans redémarrer les applications. En cas de défaillance du client, un basculement automatique prévient toute interruption de service.

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • L'add-on cnfs-nas-daemon installé dans votre cluster, avec l'indicateur AlinasMountProxy=true défini dans FeatureGate du plug-in CSI. Consultez la section Gérer cnfs-nas-daemon pour plus de détails.

  • Des nœuds exécutant Alibaba Cloud Linux 3 ou ContainerOS, avec une version du noyau 5.10.134-17.2 ou ultérieure.

Configurer CNFS pour utiliser le client EFC

Étape 1 : Créer une ressource CNFS

Cette section montre comment configurer un système de fichiers NAS existant pour utiliser le client EFC. Pour créer un nouveau système de fichiers NAS via CNFS avec EFC, ajoutez useClient: EFCClient dans la section parameters lors de la création de la ressource ContainerNetworkFileSystem. Consultez la section Utiliser CNFS pour gérer les systèmes de fichiers NAS (recommandé) pour plus de détails.

  1. Enregistrez le code YAML suivant sous le nom cnfs-efc.yaml.

    Paramètre

    Description

    description

    Description du système de fichiers.

    type

    Type de volume. Définissez sur nas pour les systèmes de fichiers NAS.

    reclaimPolicy

    Seule la valeur Retain est prise en charge. La suppression de la ressource CNFS ne supprime pas le système de fichiers NAS sous-jacent.

    server

    Adresse de la cible de montage. La cible de montage doit se trouver dans le même VPC que vos pods et son état doit être Ready. Pour de meilleures performances, utilisez le même vSwitch pour la cible de montage et les pods. Si aucune cible de montage existante ne répond à ces exigences, créez-en une nouvelle.

    useClient

    Définissez sur EFCClient pour activer le client EFC.

    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
  2. Créez la ressource CNFS :

    kubectl create -f cnfs-efc.yaml

Étape 2 : Créer un PersistentVolume et un PersistentVolumeClaim

Enregistrez le code YAML suivant sous le nom 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

Appliquez la configuration :

kubectl create -f cnfs-pv-pvc.yaml

Monter un système de fichiers NAS sur une charge de travail

Étape 1 : Créer un Deployment

Enregistrez le code YAML suivant sous le nom 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

Appliquez la configuration :

kubectl create -f cnfs-deployment.yaml

Étape 2 : Vérifier le montage EFC

  1. Vérifiez que le pod est en cours d'exécution :

    kubectl get pod -l app=efc-test

    Résultat attendu :

    NAME                       READY   STATUS    RESTARTS   AGE
    efc-test-f545b86d6-spr7p   1/1     Running   0          29m
  2. Une fois que le pod atteint l'état Running, confirmez le point de montage EFC à l'intérieur du pod :

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

    Résultat attendu :

    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)

    Le type de montage fuse.aliyun-alinas-efc confirme qu'EFC est actif. Si la sortie affiche nfs à la place, cela signifie que le nœud ne satisfait pas aux exigences du système d'exploitation ou du noyau et a basculé vers le protocole NFS. Vérifiez la version du système d'exploitation et la version du noyau du nœud par rapport aux prérequis.

Étapes suivantes