Memecahkan masalah volume Managed Lustre

Halaman ini berisi langkah-langkah pemecahan masalah untuk masalah dan error umum saat menggunakan driver CSI Lustre Terkelola Google Cloud di Google Kubernetes Engine.

Sebelum mengikuti langkah-langkah pemecahan masalah di bagian ini, lihat batasan saat menghubungkan ke Managed Lustre dari GKE.

Kapasitas instance minimum yang diperbarui

Kapasitas minimum untuk instance Managed Lustre telah diperbarui menjadi 9.000 GiB. Untuk membuat instance 9.000 GiB menggunakan driver CSI Managed Lustre, upgrade versi cluster Anda ke 1.34.0-gke.2285000 atau yang lebih baru.

Tingkat performa yang salah untuk instance Lustre yang disediakan secara dinamis

Saat menyediakan instance Lustre secara dinamis, pembuatan instance gagal dengan error InvalidArgument untuk PerUnitStorageThroughput, terlepas dari nilai perUnitStorageThroughput yang ditentukan dalam permintaan API. Hal ini memengaruhi versi GKE 1.33 sebelum 1.33.4-gke.1036000.

Solusi:

Upgrade cluster GKE ke versi 1.33.4-gke.1036000 atau yang lebih baru. Jika menggunakan channel Stabil, versi yang lebih baru mungkin belum tersedia. Dalam hal ini, Anda dapat memilih versi secara manual dari saluran Reguler atau Cepat yang mencakup perbaikan.

Port komunikasi Managed Lustre

Driver CSI Managed Lustre menggunakan port yang berbeda untuk berkomunikasi dengan instance Managed Lustre, bergantung pada versi cluster GKE dan konfigurasi Managed Lustre yang ada.

  • Port default (988): Untuk cluster GKE baru yang menjalankan versi 1.33.2-gke.4780000 atau yang lebih baru, driver menggunakan port 988 untuk komunikasi Lustre secara default.

  • Port lama (6988): Driver menggunakan port 6988 dalam skenario berikut:

    • Versi GKE sebelumnya: Jika cluster GKE Anda menjalankan versi sebelum 1.33.2-gke.4780000, tanda --enable-legacy-lustre-port diperlukan saat mengaktifkan driver CSI. Mengaktifkan tanda ini akan mengatasi konflik port dengan gke-metadata-server di node GKE.
    • Instance Managed Lustre yang ada dengan dukungan GKE: Jika Anda terhubung ke instance Managed Lustre yang ada yang dibuat dengan tanda --gke-support-enabled, Anda harus menyertakan --enable-legacy-lustre-port saat mengaktifkan driver CSI, terlepas dari versi cluster Anda. Tanpa tanda ini, cluster GKE Anda akan gagal memasang instance Lustre yang ada.

    Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan driver CSI dengan port lama, lihat Port komunikasi Lustre.

Kueri log

Untuk memeriksa log, jalankan kueri berikut di Logs Explorer.

Untuk menampilkan log server node driver CSI Managed Lustre:

resource.type="k8s_container"
resource.labels.pod_name=~"lustre-csi-node*"

Memecahkan masalah penyediaan volume

Jika PersistentVolumeClaim (PVC) tetap dalam status Pending dan tidak ada PersistentVolume (PV) yang dibuat setelah 20-30 menit, mungkin terjadi error.

  1. Periksa peristiwa PVC:

    kubectl describe pvc PVC_NAME
    
  2. Jika error menunjukkan masalah konfigurasi atau argumen tidak valid, verifikasi parameter StorageClass Anda.

  3. Buat ulang PVC.

  4. Jika masalah berlanjut, hubungi Cloud Customer Care.

Memecahkan masalah pemasangan volume

Setelah Pod dijadwalkan ke node, volume akan di-mount. Jika ini gagal, periksa peristiwa Pod dan log kubelet.

kubectl describe pod POD_NAME

Masalah pengaktifan driver CSI

Gejala:

MountVolume.MountDevice failed for volume "yyy" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

atau

MountVolume.SetUp failed for volume "yyy" : kubernetes.io/csi: mounter.SetUpAt failed to get CSI client: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

Penyebab: Driver CSI tidak diaktifkan atau belum berjalan.

Penyelesaian:

  1. Pastikan driver CSI telah diaktifkan.
  2. Jika cluster baru saja diubah skalanya atau diupgrade, tunggu beberapa menit hingga driver berfungsi.
  3. Jika error berlanjut, periksa log lustre-csi-node untuk melihat "Operation not permitted". Hal ini menunjukkan bahwa versi node terlalu lama untuk mendukung Managed Lustre. Untuk mengatasinya, upgrade node pool Anda ke versi 1.33.2-gke.1111000 atau yang lebih baru.
  4. Jika log menampilkan "LNET_PORT mismatch", upgrade node pool Anda untuk memastikan modul kernel Lustre yang kompatibel terinstal.

Titik pemasangan sudah ada

Gejala:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = AlreadyExists
desc = A mountpoint with the same lustre filesystem name "yyy" already exists on
node "yyy". Please mount different lustre filesystems

Penyebab: Pemasangan beberapa volume dari berbagai instance Managed Lustre dengan nama sistem file yang sama pada satu node tidak didukung.

Penyelesaian: Gunakan nama sistem file yang unik untuk setiap instance Managed Lustre.

Pemasangan gagal: Tidak ada file atau direktori tersebut

Gejala:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: No such file or directory

Penyebab: Nama sistem file yang ditentukan salah atau tidak ada.

Penyelesaian: Pastikan fs_name di konfigurasi StorageClass atau PV Anda cocok dengan instance Managed Lustre.

Pemasangan gagal: Error input/output

Gejala:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: Input/output error

Penyebab: Cluster tidak dapat terhubung ke instance Managed Lustre.

Penyelesaian:

  1. Verifikasi alamat IP instance Managed Lustre.
  2. Pastikan cluster GKE dan instance Managed Lustre berada di jaringan VPC yang sama atau di-peering dengan benar.

Error internal

Gejala: rpc error: code = Internal desc = ...

Penyelesaian: Jika error berlanjut, hubungi Cloud Customer Care.

Memecahkan masalah pelepasan volume

Gejala:

UnmountVolume.TearDown failed for volume "yyy" : rpc error: code = Internal desc = ...

Penyelesaian:

  1. Hapus Pod secara paksa:

    kubectl delete pod POD_NAME --force
    
  2. Jika masalah berlanjut, hubungi Cloud Customer Care.

Memecahkan masalah penghapusan volume

Jika PV tetap dalam status "Dirilis" untuk jangka waktu yang lama (misalnya, lebih dari satu jam) setelah menghapus PVC, hubungi Cloud Customer Care.

Memecahkan masalah ekspansi volume

PVC macet di ExternalExpanding

Gejala: Status PVC tidak berubah menjadi Resizing, dan peristiwa menampilkan ExternalExpanding.

Penyebab: Kolom allowVolumeExpansion mungkin tidak ada atau ditetapkan ke false.

Penyelesaian: Pastikan StorageClass memiliki allowVolumeExpansion: true.

kubectl get storageclass STORAGE_CLASS_NAME -o yaml

Perluasan gagal: Argumen tidak valid

Gejala: VolumeResizeFailed: rpc error: code = InvalidArgument ...

Penyebab: Ukuran yang diminta tidak valid (misalnya, bukan kelipatan ukuran langkah atau di luar batas).

Resolusi: Periksa rentang kapasitas yang valid dan perbarui PVC dengan ukuran yang valid.

Perluasan gagal: Error internal

Gejala: VolumeResizeFailed ... rpc error: code = Internal

Penyelesaian: Coba lagi perluasan dengan menerapkan kembali PVC. Jika gagal berulang kali, hubungi Cloud Customer Care.

Batas waktu terlampaui

Gejala: VolumeResizeFailed dengan DEADLINE_EXCEEDED.

Penyebab: Operasi memerlukan waktu lebih lama dari yang diperkirakan, tetapi mungkin masih dalam proses.

Penyelesaian: Tunggu hingga operasi selesai. Pengubah ukuran akan otomatis mencoba lagi. Jika tetap macet dalam waktu yang lama (misalnya, > 90 menit), hubungi dukungan.

Kuota melampaui batas

Gejala: Ekspansi gagal karena batas kuota.

Penyelesaian: Minta penambahan kuota atau minta penambahan kapasitas yang lebih kecil.