Cloud Parallel File Storage (CPFS) adalah sistem file paralel yang dikelola sepenuhnya dan dapat diperluas yang disediakan oleh Alibaba Cloud untuk memenuhi persyaratan dalam skenario komputasi berkinerja tinggi. CPFS mendukung akses bersamaan dari ribuan server dengan throughput puluhan GB/s dan jutaan operasi input/output per detik serta latensi sangat rendah sub-milidetik. Topik ini menjelaskan cara memasang volume CPFS yang disediakan secara statis ke aplikasi dan memverifikasi bahwa volume tersebut dapat digunakan untuk berbagi dan menyimpan data secara persisten.
Pengenalan
CPFS untuk LINGJUN (pratinjau undangan) cocok untuk skenario komputasi cerdas seperti AIGC dan mengemudi otonom. Sebelum memasang, perhatikan hal-hal berikut:
CPFS untuk LINGJUN mendukung jaringan RDMA ujung-ke-ujung dan saat ini dalam pratinjau undangan. Hanya beberapa Wilayah dan zona yang mendukung CPFS untuk LINGJUN.
Saat mengakses CPFS untuk LINGJUN melalui jaringan RDMA, hpn-zone dari Pod harus sama dengan hpn-zone dari CPFS untuk LINGJUN.
CPFS adalah sistem file penyimpanan bersama. Anda dapat memasang volume CPFS ke beberapa Pod.
Anda dapat memasang volume CPFS ke Pod ACS yang dipercepat CPU apa pun. Namun, hanya Pod ACS dengan model GPU tertentu yang mendukung volume CPFS. Untuk informasi lebih lanjut, ajukan Tiket.
Prasyarat
Komponen managed-csiprovisioner telah diinstal di kluster ACS.
Buka halaman manajemen kluster ACS di Konsol ACS. Di panel navigasi sisi kiri halaman manajemen kluster, pilih . Pada tab Storage, Anda dapat memeriksa apakah managed-csiprovisioner telah diinstal.
Buat sistem file CPFS
CPFS Edisi Komputasi Cerdas
Buat sistem file CPFS untuk LINGJUN.
Catat ID sistem file.
(Opsional) Buat titik pemasangan VPC.
Untuk Pod yang tidak mendukung protokol RDMA (seperti Pod CPU dan beberapa Pod GPU), Anda perlu membuat titik pemasangan VPC untuk mengakses CPFS melalui jaringan VPC.
Gunakan VPC dan vSwitch dari kluster ACS untuk membuat titik pemasangan VPC dan menghasilkan alamat pemasangan. Catat nama domain titik pemasangan dalam format
cpfs-***-vpc-***.<Region>.cpfs.aliyuncs.com.
Pasang volume CPFS
Langkah 1: Buat PV dan PVC
kubectl
Simpan konten YAML berikut sebagai cpfs-pv-pvc.yaml.
Pilih YAML yang sesuai berdasarkan tipe komputasi pod tempat Anda akan memasangnya.
CPFS untuk LINGJUN (jaringan RDMA)
PentingHanya mendukung pod dengan model GPU tertentu. Untuk informasi tentang model GPU yang mendukung protokol RDMA, lihat model GPU yang didukung oleh ACS.
apiVersion: v1 kind: PersistentVolume metadata: name: cpfs-test labels: alicloud-pvname: cpfs-test spec: accessModes: - ReadWriteMany capacity: storage: 10Ti csi: driver: povplugin.csi.alibabacloud.com volumeAttributes: filesystemId: bmcpfs-***** path: / volumeHandle: bmcpfs-***** --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cpfs-test spec: accessModes: - ReadWriteMany selector: matchLabels: alicloud-pvname: cpfs-test resources: requests: storage: 10TiParameter PV
Parameter
Deskripsi
labelsTetapkan label agar PVC dapat menggunakan
selectoruntuk mencocokkan dan mengikat.accessModesMode akses PV.
capacity.storageKapasitas volume yang dideklarasikan.
csi.driverJenis driver, diatur ke
povplugin.csi.alibabacloud.com.csi.volumeAttributesAtribut volume CPFS.
filesystemId: ID sistem file CPFS untuk LINGJUN.path: Default adalah/, yang menunjukkan Direktori root dari sistem file CPFS. Anda juga dapat mengaturnya ke subdirektori, seperti/dir. Jika subdirektori tidak ada, itu akan dibuat secara otomatis saat volume dipasang.
csi.volumeHandleID sistem file CPFS untuk LINGJUN.
Parameter PVC
Parameter
Deskripsi
accessModesMode akses yang diminta oleh PVC untuk PV.
selectorGunakan label pada PV untuk mencocokkan dan mengikat.
resources.requests.storageKapasitas penyimpanan yang dialokasikan ke pod. Tidak boleh melebihi kapasitas PV.
CPFS untuk LINGJUN (jaringan VPC)
apiVersion: v1 kind: PersistentVolume metadata: name: cpfs-test labels: alicloud-pvname: cpfs-test spec: accessModes: - ReadWriteMany capacity: storage: 10Ti csi: driver: nasplugin.csi.alibabacloud.com volumeAttributes: mountProtocol: efc server: cpfs-***-vpc-***.cn-wulanchabu.cpfs.aliyuncs.com path: / volumeHandle: bmcpfs-***** --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cpfs-test spec: accessModes: - ReadWriteMany selector: matchLabels: alicloud-pvname: cpfs-test resources: requests: storage: 10TiParameter PV
Parameter
Deskripsi
labelsTetapkan label agar PVC dapat menggunakan
selectoruntuk mencocokkan dan mengikat.accessModesMode akses.
capacity.storageKapasitas volume yang dideklarasikan.
csi.driverJenis driver, diatur ke
povplugin.csi.alibabacloud.com.csi.volumeAttributesAtribut volume CPFS.
mountProtocol: Protokol pemasangan, diatur keefc.server: Nama domain titik pemasangan VPC dari sistem file CPFS.path: Default adalah/, yang menunjukkan Direktori root dari sistem file CPFS. Anda juga dapat mengaturnya ke subdirektori, seperti/dir.
csi.volumeHandleID sistem file CPFS untuk LINGJUN.
Parameter PVC
Parameter
Deskripsi
accessModesMode akses yang diminta oleh PVC untuk PV.
selectorGunakan label pada PV untuk mencocokkan dan mengikat.
resources.requests.storageKapasitas penyimpanan yang dialokasikan ke pod. Tidak boleh melebihi kapasitas PV.
Buat PV dan PVC.
kubectl create -f cpfs-pv-pvc.yamlKonfirmasikan bahwa PVC terikat ke PV.
kubectl get pvc cpfs-testOutput yang diharapkan:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE cpfs-test Bound cpfs-test 10Ti RWX <unset> <unset> 10s
Konsol
Masuk ke Konsol ACS.
Di halaman Clusters, klik nama kluster untuk masuk ke halaman manajemen kluster.
Di bilah navigasi sisi kiri halaman manajemen kluster, pilih .
Di halaman Persistent Volume Claims, klik Create.
Di kotak dialog yang muncul, konfigurasikan parameter dan klik Create.
Parameter berikut dikonfigurasikan untuk membuat PVC dan PV secara bersamaan. Anda juga dapat membuat PV terlebih dahulu lalu membuat PVC.
CatatanSaat menggunakan konsol, memasang CPFS untuk LINGJUN ke aplikasi CPU melalui titik pemasangan VPC saat ini tidak didukung.
Parameter
Deskripsi
Contoh
Storage Claim Type
Pilih CPFS.
CPFS
Name
Masukkan nama kustom untuk PVC. Nama harus mengikuti persyaratan format yang ditampilkan di antarmuka.
cpfs-test
Allocation Mode
Pilih Existing Volumes atau Create Volume sesuai kebutuhan.
Create Volume
CPFS Type
Pilih CPFS AI Computing Edition.
CPFS AI Computing Edition
Access Mode
Mendukung ReadWriteMany dan ReadWriteOnce.
ReadWriteMany
File System ID
tentukan ID sistem file CPFS untuk AI Computing yang akan dipasang.
bmcpfs-0115******13q5
Lihat PVC dan PV yang telah dibuat.
Di halaman Persistent Volume Claims dan halaman Persistent Volumes, Anda dapat melihat PVC dan PV baru yang dibuat, dan konfirmasikan bahwa mereka saling terikat.
Langkah 2: Buat aplikasi dan pasang volume CPFS
kubectl
Buat file bernama cpfs-test.yaml menggunakan konten YAML berikut.
Aplikasi dengan akselerasi GPU
Contoh YAML berikut membuat Deployment yang terdiri dari dua pod. Kedua pod menyatakan bahwa mereka ingin menggunakan daya komputasi GPU melalui label
alibabacloud.com/compute-class: gpu, dan meminta sumber daya penyimpanan melalui PVC bernamacpfs-test. Jalur pemasangan untuk keduanya adalah/data.CatatanUntuk informasi tentang model GPU spesifik, lihat Tentukan model GPU dan versi driver untuk pod ACS dengan akselerasi GPU.
apiVersion: apps/v1 kind: Deployment metadata: name: cpfs-test labels: app: cpfs-test spec: replicas: 2 selector: matchLabels: app: cpfs-test template: metadata: labels: app: cpfs-test # Setel kelas komputasi ke GPU alibabacloud.com/compute-class: gpu # Tentukan model GPU, isi sesuai kebutuhan, seperti T4 alibabacloud.com/gpu-model-series: T4 alibabacloud.com/compute-qos: default spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80 volumeMounts: - name: pvc-cpfs mountPath: /data volumes: - name: pvc-cpfs persistentVolumeClaim: claimName: cpfs-testAplikasi dengan akselerasi CPU
Contoh YAML berikut membuat Deployment yang terdiri dari dua pod. Pod tersebut meminta sumber daya penyimpanan melalui PVC bernama
cpfs-test. Jalur pemasangan untuk keduanya adalah/data.apiVersion: apps/v1 kind: Deployment metadata: name: cpfs-test labels: app: cpfs-test spec: replicas: 2 selector: matchLabels: app: cpfs-test template: metadata: labels: app: cpfs-test spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80 volumeMounts: - name: pvc-cpfs mountPath: /data volumes: - name: pvc-cpfs persistentVolumeClaim: claimName: cpfs-testBuat Deployment dan pasang volume CPFS.
kubectl create -f cpfs-test.yamlLihat status penyebaran pod dalam Deployment.
kubectl get pod | grep cpfs-testKeluaran yang diharapkan menunjukkan bahwa dua pod telah dibuat:
cpfs-test-****-***a 1/1 Berjalan 0 45s cpfs-test-****-***b 1/1 Berjalan 0 45sLihat jalur pemasangan.
Perintah contoh di bawah ini diharapkan mengembalikan data dalam direktori yang dipasang CPFS untuk sistem file LINGJUN. Secara default, direktori tersebut kosong.
kubectl exec cpfs-test-****-***a -- ls /data
Konsol
Di panel navigasi sisi kiri halaman manajemen kluster, pilih .
Di halaman Deployments, klik Create from Image.
Konfigurasikan parameter Deployment dan klik Create.
Catat parameter berikut. Pertahankan pengaturan default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat aplikasi tanpa status menggunakan Deployment.
Aplikasi dengan akselerasi GPU
Halaman konfigurasi
Parameter
Deskripsi
Contoh
Basic Information
Name
Nama Deployment. Masukkan nama kustom. Nama harus mengikuti persyaratan format yang ditampilkan di antarmuka.
cpfs-test
Replicas
Konfigurasikan jumlah replika untuk Deployment.
2
Type
Pilih tipe komputasi untuk pod.
CatatanUntuk informasi tentang model GPU spesifik, lihat Tentukan model GPU dan versi driver untuk pod ACS dengan akselerasi GPU.
GPU, T4
Container
Image Name
Masukkan alamat citra yang digunakan untuk menerapkan aplikasi.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Required Resources
Tetapkan sumber daya GPU, vCPU, dan memori yang diperlukan.
GPU: 1
CPU: 2 vCPUs
Memori: 2 GiB
Volume
Klik Add PVC, lalu konfigurasikan parameternya.
Mount Source: Pilih PVC yang Anda buat sebelumnya.
Container Path: Masukkan jalur kontainer tempat sistem file CPFS akan dipasang.
Sumber pemasangan: pvc-cpfs
Jalur kontainer: /data
Aplikasi dengan akselerasi CPU
Halaman Konfigurasi
Parameter
Deskripsi
Contoh
Basic Information
Application Name
Nama Deployment. Masukkan nama kustom. Nama harus mengikuti persyaratan format yang ditampilkan di antarmuka.
cpfs-test
Replicas
Konfigurasikan jumlah replika untuk Deployment.
2
Type
Pilih tipe komputasi untuk pod.
CPU, tujuan umum
Container
Image Name
Masukkan alamat citra yang digunakan untuk menerapkan aplikasi.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Required Resources
Tetapkan sumber daya vCPU dan memori yang diperlukan.
CPU: 0,25 vCPUs
Memori: 0,5 GiB
Volume
Klik Add PVC, lalu konfigurasikan parameternya.
Mount Source: Pilih PVC yang Anda buat sebelumnya.
Container Path: Masukkan jalur kontainer tempat sistem file CPFS akan dipasang.
Sumber pemasangan: pvc-cpfs
Jalur kontainer: /data
Lihat status penyebaran aplikasi.
Di halaman Deployments, klik nama aplikasi.
Di tab Pods, pastikan pod berjalan normal (statusnya Berjalan).
Verifikasi penyimpanan bersama dan penyimpanan persisten
Penyebaran yang dibuat berdasarkan contoh di atas mencakup dua Pod yang keduanya memasang sistem file CPFS yang sama. Anda dapat memverifikasinya dengan cara berikut:
Buat file di salah satu Pod, lalu periksa file tersebut di Pod lainnya untuk memverifikasi penyimpanan bersama.
Buat ulang Penyebaran, lalu verifikasi apakah data dalam sistem file tetap ada di Pod baru untuk memastikan penyimpanan persisten.
-
Lihat informasi Pod.
kubectl get pod | grep cpfs-testOutput yang diharapkan:
cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45s -
Verifikasi penyimpanan bersama.
-
Buat sebuah file di salah satu Pod.
Gunakan Pod bernama
cpfs-test-****-***asebagai contoh:kubectl exec cpfs-test-****-***a -- touch /data/test.txt -
Lihat file tersebut di Pod lainnya.
Gunakan Pod bernama
cpfs-test-****-***bsebagai contoh:kubectl exec cpfs-test-****-***b -- ls /dataOutput yang diharapkan adalah sebagai berikut, menunjukkan bahwa file baru
test.txttelah dibagikan:test.txt
-
-
Verifikasi penyimpanan persisten.
-
Buat ulang Penyebaran.
kubectl rollout restart deploy cpfs-test -
Lihat Pod dan tunggu hingga Pod baru berhasil dibuat.
kubectl get pod | grep cpfs-testOutput yang diharapkan:
cpfs-test-****-***c 1/1 Running 0 78s cpfs-test-****-***d 1/1 Running 0 52s -
Periksa apakah data dalam sistem file masih ada di Pod baru.
Gunakan Pod bernama
cpfs-test-c***sebagai contoh:kubectl exec cpfs-test-****-***c -- ls /dataOutput yang diharapkan adalah sebagai berikut, menunjukkan bahwa data dalam sistem file CPFS masih ada dan dapat diambil dari direktori pemasangan Pod baru:
test.txt
-