Dokumen ini berisi daftar error yang mungkin Anda alami saat menggunakan disk dengan antarmuka nonvolatil memory Express (NVMe).
Anda dapat menggunakan antarmuka NVMe untuk SSD Lokal dan persistent disk (Persistent Disk atau Google Cloud Hyperdisk). Hanya seri mesin terbaru, seperti Tau T2A, M3, C3, C3D, dan H3 yang menggunakan antarmuka NVMe untuk Persistent Disk. Confidential VMs juga menggunakan NVMe untuk Persistent Disk. Semua seri mesin Compute Engine lainnya menggunakan antarmuka disk SCSI untuk persistent disk.
Error waktu tunggu operasi I/O habis
Jika Anda mengalami error waktu tunggu I/O, latensi dapat melebihi parameter waktu tunggu default untuk operasi I/O yang dikirimkan ke perangkat NVMe.
Pesan error:
[1369407.045521] nvme nvme0: I/O 252 QID 2 timeout, aborting [1369407.050941] nvme nvme0: I/O 253 QID 2 timeout, aborting [1369407.056354] nvme nvme0: I/O 254 QID 2 timeout, aborting [1369407.061766] nvme nvme0: I/O 255 QID 2 timeout, aborting [1369407.067168] nvme nvme0: I/O 256 QID 2 timeout, aborting [1369407.072583] nvme nvme0: I/O 257 QID 2 timeout, aborting [1369407.077987] nvme nvme0: I/O 258 QID 2 timeout, aborting [1369407.083395] nvme nvme0: I/O 259 QID 2 timeout, aborting [1369407.088802] nvme nvme0: I/O 260 QID 2 timeout, aborting ...
Resolusi:
Untuk mengatasi masalah ini, tingkatkan nilai parameter waktu tunggu.
Melihat nilai parameter waktu tunggu saat ini.
- Menentukan pengontrol NVMe yang digunakan oleh persistent disk atau volume SSD Lokal.
ls -l /dev/disk/by-id
Menampilkan setelan
io_timeout
, yang ditentukan dalam detik, untuk disk. Ganti kode berikut:cat /sys/class/nvme/CONTROLLER_ID/NAMESPACE/queue/io_timeout
CONTROLLER_ID
: ID pengontrol disk NVMe, misalnya,nvme1
NAMESPACE
: namespace disk NVMe, misalnya,nvme1n1
Jika Anda hanya memiliki satu disk yang menggunakan NVMe, gunakan perintah:
cat /sys/class/nvme/nvme0/nvme0n1/queue/io_timeout
- Menentukan pengontrol NVMe yang digunakan oleh persistent disk atau volume SSD Lokal.
Jika ingin meningkatkan parameter waktu tunggu untuk operasi I/O yang dikirim ke perangkat NVMe, tambahkan baris berikut ke file
/lib/udev/rules.d/65-gce-disk-naming.rules
, lalu mulai ulang VM:KERNEL=="nvme*n*", ENV{DEVTYPE}=="disk", ATTRS{model}=="nvme_card-pd", ATTR{queue/io_timeout}="4294967295"
Disk yang dilepas masih muncul di sistem operasi instance komputasi
Pada VM yang menggunakan kernel Linux versi 6.0 hingga 6.2, operasi yang melibatkan metode Compute Engine API instances.detachDisk
atau perintah gcloud compute instances detach-disk
mungkin tidak berfungsi seperti yang diharapkan.
Konsol Google Cloud menampilkan perangkat sebagai dihapus, metadata instance komputasi
(perintah compute disks describe
) menampilkan perangkat sebagai dihapus, tetapi titik pemasangan
perangkat dan symlink apa pun yang dibuat oleh aturan udev masih terlihat di
sistem operasi tamu.
Pesan error:
Mencoba membaca dari disk yang dilepas di VM akan menyebabkan error I/O:
sudo head /dev/nvme0n3 head: error reading '/dev/nvme0n3': Input/output error
Masalah:
Image sistem operasi yang menggunakan kernel Linux 6.0-6.2, tetapi tidak menyertakan backport perbaikan NVMe, tidak dapat mengenali saat disk NVMe dilepas.
Resolusi:
Mulai ulang VM untuk menyelesaikan proses penghapusan disk.
Untuk menghindari masalah ini, gunakan sistem operasi dengan versi kernel Linux yang tidak memiliki masalah ini:
- 5.19 atau yang lebih baru
- 6.3 atau yang lebih baru
Anda dapat menggunakan perintah uname -r
di OS tamu untuk melihat versi kernel
Linux.
Apa langkah selanjutnya?
- Pelajari Persistent Disk.
- Pelajari SSD Lokal.
- Mengonfigurasi disk untuk memenuhi persyaratan performa.
- Pelajari symlink.