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
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-daemoninstallé dans votre cluster, avec l'indicateurAlinasMountProxy=truedé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.
-
Enregistrez le code YAML suivant sous le nom
cnfs-efc.yaml.Paramètre
Description
descriptionDescription du système de fichiers.
typeType de volume. Définissez sur
naspour les systèmes de fichiers NAS.reclaimPolicySeule la valeur
Retainest prise en charge. La suppression de la ressource CNFS ne supprime pas le système de fichiers NAS sous-jacent.serverAdresse 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.
useClientDéfinissez sur
EFCClientpour 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 -
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
-
Vérifiez que le pod est en cours d'exécution :
kubectl get pod -l app=efc-testRésultat attendu :
NAME READY STATUS RESTARTS AGE efc-test-f545b86d6-spr7p 1/1 Running 0 29m -
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-efcRé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-efcconfirme qu'EFC est actif. Si la sortie affichenfsà 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
Utiliser CNFS pour gérer les systèmes de fichiers NAS — gérez les systèmes de fichiers NAS via CNFS, y compris le provisionnement dynamique pour les nouveaux systèmes de fichiers.
Gérer cnfs-nas-daemon — installez et configurez l'add-on
cnfs-nas-daemonet la feature gateAlinasMountProxy.