Pemecahan masalah

Halaman ini mencakup langkah-langkah pemecahan masalah untuk beberapa masalah dan error umum.

Instance FAILED

Status FAILED berarti data instance telah hilang dan instance harus dihapus.

Instance Parallelstore dalam status FAILED akan terus ditagih hingga dihapus.

Untuk mengambil status instance, ikuti petunjuk di Mengelola instance: Mengambil instance.

Untuk menghapus instance, baca Mengelola instance: Menghapus instance.

Waktu tunggu habis selama pengujian jaringan atau pemasangan dfuse

Jika, saat memasang instance Parallelstore, waktu tunggu perintah dfuse -m habis; atau jika waktu tunggu perintah pengujian jaringan seperti self_test atau daos health net-test habis, hal ini mungkin disebabkan oleh masalah konektivitas jaringan.

Untuk memverifikasi konektivitas ke server Parallelstore, jalankan

self_test --use-daos-agent-env -r 1

Jika pengujian melaporkan masalah koneksi, ada dua kemungkinan alasannya:

Agen DAOS mungkin telah memilih antarmuka jaringan yang salah selama penyiapan

Anda mungkin perlu mengecualikan antarmuka jaringan yang tidak dapat menjangkau IP dalam daftar access_points.

  1. Jalankan ifconfig untuk mencantumkan antarmuka jaringan yang tersedia. Contoh output dapat menampilkan beberapa antarmuka jaringan seperti eth0, docker0, ens8, lo, dll.

  2. Hentikan daos_agent.

  3. Edit /etc/daos/daos_agent.yml untuk mengecualikan antarmuka jaringan yang tidak diinginkan. Hapus tanda komentar pada baris exclude_fabric_ifaces dan perbarui nilainya. Entri yang Anda sertakan khusus untuk situasi Anda. Contoh:

    exclude_fabric_ifaces: ["docker0", "ens8", "lo"]
    
  4. Mulai ulang daos_agent.

Alamat IP instance atau klien bertentangan dengan alamat IP internal

Instance dan klien Parallelstore tidak dapat menggunakan alamat IP dari rentang subnet 172.17.0.0/16. Lihat Masalah umum untuk mengetahui informasi selengkapnya.

ENOSPC jika ada kapasitas yang tidak digunakan di instance

Jika instance Anda menggunakan striping seimbang minimum atau (default), Anda mungkin mengalami error ENOSPC meskipun file yang ada tidak menggunakan semua kapasitas instance. Hal ini mungkin terjadi saat menulis file besar yang umumnya lebih besar dari 8 GiB, atau saat mengimpor file tersebut dari Cloud Storage.

Gunakan striping file maksimum untuk mengurangi kemungkinan error ini.

Pemecahan masalah Google Kubernetes Engine

Bagian berikut mencantumkan beberapa masalah umum dan langkah-langkah untuk mengatasinya.

Transport endpoint is not connected di Pod workload

Error ini disebabkan oleh penghentian dfuse. Pada umumnya, dfuse dihentikan karena kehabisan memori. Gunakan anotasi Pod gke-parallelstore/[cpu-limit|memory-limit] untuk mengalokasikan lebih banyak resource ke penampung sidecar Parallelstore. Anda dapat menetapkan gke-parallelstore/memory-limit: "0" untuk menghapus batasan memori sidecar jika tidak tahu jumlah memori yang ingin dialokasikan untuknya. Perhatikan bahwa hal ini hanya berfungsi dengan cluster Standard; dengan cluster Autopilot, Anda tidak dapat menggunakan nilai 0 untuk membatalkan penetapan batas dan permintaan resource penampung sidecar. Anda harus menetapkan batas resource yang lebih besar secara eksplisit untuk penampung sidecar.

Setelah mengubah anotasi, Anda harus memulai ulang Pod workload. Menambahkan anotasi ke workload yang sedang berjalan tidak mengubah alokasi resource secara dinamis.

Peringatan peristiwa pod

Jika Pod beban kerja Anda tidak dapat dimulai, periksa peristiwa Pod:

kubectl describe pod POD_NAME -n NAMESPACE

Solusi berikut adalah untuk error umum.

Masalah pengaktifan driver CSI

Error pengaktifan driver CSI yang umum adalah sebagai berikut:

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

Peringatan ini menunjukkan bahwa driver CSI tidak diaktifkan, atau tidak berjalan.

Jika cluster Anda baru saja diskalakan, diupdate, atau diupgrade, peringatan ini normal dan bersifat sementara. Perlu waktu beberapa menit agar Pod driver CSI dapat berfungsi setelah operasi cluster.

Jika tidak, pastikan driver CSI diaktifkan di cluster Anda. Lihat Mengaktifkan driver CSI untuk mengetahui detailnya. Jika CSI diaktifkan, setiap node akan menampilkan Pod bernama parallelstore-csi-node-id yang aktif dan berjalan.

Kegagalan AttachVolume.Attach

Setelah Pod dijadwalkan ke node, volume akan dilampirkan ke node dan Pod penginstal akan dibuat jika menggunakan pemasangan node.

Hal ini terjadi di pengontrol dan melibatkan langkah AttachVolume dari attachdetach-controller.

Kode error Peringatan peristiwa pod Solusi
InvalidArgument
  • AttachVolume.Attach failed for volume "volume" : rpc error: code = InvalidArgument desc = an error occurred while preparing mount options: invalid mount options
Flag pemasangan yang tidak valid diteruskan ke PersistentVolume atau StorageClass. Periksa opsi pemasangan dfuse yang didukung untuk mengetahui detail selengkapnya.
NotFound
  • AttachVolume.Attach failed for volume "volume" : rpc error: code = NotFound desc = failed to get instance "instance"
Instance Parallelstore tidak ada. Pastikan volumeHandle PersistentVolume memiliki format yang benar.

Kegagalan MountVolume.MountDevice

Setelah volume dilampirkan ke node, volume akan di-staging ke node.

Hal ini terjadi di node dan melibatkan langkah MountVolume.MountDevice dari kubelet.

Kode error Peringatan peristiwa pod Solusi
FailedPrecondition
  • MountVolume.MountDevice failed for volume "volume" : rpc error: code = FailedPrecondition desc = mounter pod "pod" expected to exist but was not found
Error ini biasanya disebabkan oleh pod mounter yang dihapus secara manual. Hapus semua workload yang menggunakan PVC dan deploy ulang. Tindakan ini akan membuat Pod mounter baru.
DeadlineExceeded
  • MountVolume.MountDevice failed for volume "volume": rpc error: code = DeadlineExceeded desc = context deadline exceeded
Terjadi masalah saat menghubungkan ke instance Parallelstore. Pastikan jaringan VPC dan titik akses Anda dikonfigurasi dengan benar.

Kegagalan MountVolume.SetUp

Setelah volume di-staging ke node, volume akan dipasang dan disediakan ke penampung di Pod. Hal ini terjadi di node dan melibatkan langkah MountVolume.SetUp di kubelet.

Pemasangan pod

Kode error Peringatan peristiwa pod Solusi
ResourceExhausted
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = ResourceExhausted desc = the sidecar container failed with error: signal: killed
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = ResourceExhausted desc = the sidecar container terminated due to OOMKilled, exit code: 137
Proses dfuse berakhir, yang biasanya disebabkan oleh kondisi kehabisan memori (OOM). Pertimbangkan untuk meningkatkan batas memori penampung sidecar menggunakan anotasi gke-parallelstore/memory-limit.

Jika Anda tidak yakin dengan jumlah memori yang ingin dialokasikan ke sidecar parallelstore, sebaiknya tetapkan gke-parallelstore/memory-limit: "0" untuk menghilangkan batasan memori yang diberlakukan oleh Parallelstore.

Dibatalkan
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = Aborted desc = NodePublishVolume request is aborted due to rate limit
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = Aborted desc = An operation with the given volume key key already exists
Operasi pemasangan volume dibatalkan karena pembatasan kapasitas atau operasi yang ada. Peringatan ini normal dan seharusnya bersifat sementara.
InvalidArgument MountVolume.SetUp failed for volume "volume" : rpc error: code = InvalidArgument desc = Jika Anda memberikan argumen yang tidak valid di StorageClass atau PersistentVolume, log error akan menunjukkan kolom dengan argumen yang tidak valid. Untuk penyediaan dinamis, periksa Kelas Penyimpanan. Untuk penyediaan statis, periksa Volume Persisten.
FailedPrecondition MountVolume.SetUp failed for volume "volume" : rpc error: code = FailedPrecondition desc = can not find the sidecar container in Pod spec Penampung sidecar Parallelstore tidak dimasukkan. Pastikan anotasi Pod gke-parallelstore/volumes: "true" disetel dengan benar.

Pemasangan node

Kode error Peringatan peristiwa pod Solusi
Dibatalkan
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = Aborted desc = NodePublishVolume request is aborted due to rate limit
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = Aborted desc = An operation with the given volume key key already exists
Operasi pemasangan volume dibatalkan karena batas kapasitas atau operasi yang ada. Peringatan ini normal dan seharusnya bersifat sementara.
InvalidArgument MountVolume.SetUp failed for volume "volume" : rpc error: code = InvalidArgument desc = Jika Anda telah memberikan argumen yang tidak valid di StorageClass atau Volume Persisten, log error akan menunjukkan kolom dengan argumen yang tidak valid. Untuk penyediaan dinamis, periksa Kelas Penyimpanan. Untuk penyediaan statis, periksa Volume Persisten.
FailedPrecondition MountVolume.SetUp failed for volume "volume" : rpc error: code = FailedPrecondition desc = mounter pod expected to exist but was not found Pod Parallelstore mounter tidak ada. Jika Pod penginstal tidak sengaja dihapus, buat ulang semua workload untuk meminta pembuatan ulang.
DeadlineExceeded MountVolume.SetUp failed for volume "volume" : rpc error: code = DeadlineExceeded desc = timeout waiting for mounter pod gRPC server to become available Server gRPC Pod penginstal tidak dimulai. Periksa log pod mounter untuk mengetahui adanya error.

Memecahkan masalah jaringan VPC

Izin ditolak untuk menambahkan peering untuk layanan servicenetworking.googleapis.com

ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have 
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.

Error ini berarti Anda tidak memiliki izin IAM servicenetworking.services.addPeering di akun pengguna.

Lihat Kontrol akses dengan IAM untuk mengetahui petunjuk cara menambahkan salah satu peran berikut ke akun Anda:

  • roles/compute.networkAdmin atau
  • roles/servicenetworking.networksAdmin

Tidak dapat memodifikasi rentang yang dialokasikan di CreateConnection

ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection.

Error ini ditampilkan saat Anda telah membuat peering VPC di jaringan ini dengan rentang IP yang berbeda. Ada dua solusi yang memungkinkan:

Ganti rentang IP yang ada:

gcloud services vpc-peerings update \
  --network=NETWORK_NAME \
  --ranges=IP_RANGE_NAME \
  --service=servicenetworking.googleapis.com \
  --force

Atau, tambahkan rentang IP baru ke koneksi yang ada:

  1. Ambil daftar rentang IP yang ada untuk peering:

    EXISTING_RANGES=$(
      gcloud services vpc-peerings list \
        --network=NETWORK_NAME \
        --service=servicenetworking.googleapis.com \
        --format="value(reservedPeeringRanges.list())"
    )
    
  2. Kemudian, tambahkan rentang baru ke peering:

    gcloud services vpc-peerings update \
      --network=NETWORK_NAME \
      --ranges=$EXISTING_RANGES,IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

Rentang alamat IP habis

Masalah: Pembuatan instance gagal dengan error rentang habis:

ERROR: (gcloud.alpha.Parallelstore.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted

Solusi: Ikuti panduan VPC untuk membuat ulang rentang IP atau memperluas rentang IP yang ada.

Jika membuat ulang instance Parallelstore, Anda harus membuat ulang rentang IP, bukan memperluasnya.