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-daemontelah diinstal di kluster, danAlinasMountProxy=truetelah ditambahkan ke FeatureGate komponencsi-pluginuntuk mengaktifkancnfs-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.
PentingJika 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
Buat resource CNFS dan tentukan klien EFC.
Simpan konten berikut sebagai cnfs-efc.yaml.
CatatanContoh 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: EFCClientke bagianparametersresource 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: EFCClientParameter
Deskripsi
descriptionDeskripsi sistem file.
typeJenis volume yang akan dibuat.
reclaimPolicyKebijakan reclaim yang didukung hanya
Retain, yang berarti menghapus CNFS tidak akan menghapus sistem file NAS.parametersserverAlamat 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.
useClientAtur ke
EFCClientuntuk mengaktifkan klien EFC.Buat resource CNFS.
kubectl create -f cnfs-efc.yaml
Gunakan CNFS untuk membuat volume yang sesuai.
kubectl create -f cnfs-pv-pvc.yamlBerikut 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
Buat Deployment dan pasang sistem file NAS.
kubectl create -f cnfs-deployment.yamlKode 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-pvcPeriksa status pod dalam Deployment.
kubectl get pod -l app=efc-testOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE efc-test-f545b86d6-spr7p 1/1 Running 0 29mSetelah pod berjalan, periksa titik pemasangan EFC di dalamnya.
kubectl exec <pod-name> -- mount -t fuse.aliyun-alinas-efcOutput 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)