本文列出使用非揮發性記憶體高速 (NVMe) 介面時,可能會遇到的磁碟錯誤。
您可以使用 NVMe 介面搭配本機 SSD 和永久磁碟 (永久磁碟或 Google Cloud Hyperdisk)。只有最新的機器系列 (例如 Tau T2A、M3、C3、C3D 和 H3) 會使用 NVMe 介面搭配 Persistent Disk。機密 VM 也會使用 NVMe 做為永久磁碟。其他所有 Compute Engine 機型系列都使用 SCSI 磁碟介面做為永久磁碟。
I/O 作業逾時錯誤
如果遇到 I/O 逾時錯誤,延遲時間可能超過提交至 NVMe 裝置的 I/O 作業預設逾時參數。
錯誤訊息:
[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 ...
解決方法:
如要解決這個問題,請增加逾時參數的值。
查看逾時參數的目前值。
- 判斷永久磁碟或本機 SSD 磁碟區使用的 NVMe 控制器。
ls -l /dev/disk/by-id
顯示磁碟的
io_timeout
設定 (以秒為單位)。 取代下列項目:cat /sys/class/nvme/CONTROLLER_ID/NAMESPACE/queue/io_timeout
CONTROLLER_ID
:NVMe 磁碟控制器的 ID,例如nvme1
NAMESPACE
:NVMe 磁碟的命名空間,例如nvme1n1
如果只有一個使用 NVMe 的磁碟,請使用下列指令:
cat /sys/class/nvme/nvme0/nvme0n1/queue/io_timeout
- 判斷永久磁碟或本機 SSD 磁碟區使用的 NVMe 控制器。
如要增加提交至 NVMe 裝置的 I/O 作業逾時參數,請在
/lib/udev/rules.d/65-gce-disk-naming.rules
檔案中新增下列一行,然後重新啟動 VM:KERNEL=="nvme*n*", ENV{DEVTYPE}=="disk", ATTRS{model}=="nvme_card-pd", ATTR{queue/io_timeout}="4294967295"
卸離的磁碟仍會顯示在運算執行個體的作業系統中
如果 VM 使用 Linux 核心 6.0 至 6.2 版,涉及 Compute Engine API 方法 instances.detachDisk
或 gcloud compute instances detach-disk
指令的作業可能無法正常運作。 Google Cloud 控制台會顯示裝置已移除,運算執行個體中繼資料 (compute disks describe
指令) 會顯示裝置已移除,但裝置掛接點和 udev 規則建立的任何符號連結,仍會顯示在客層作業系統中。
錯誤訊息:
嘗試從 VM 中卸離的磁碟讀取資料時,會發生 I/O 錯誤:
sudo head /dev/nvme0n3 head: error reading '/dev/nvme0n3': Input/output error
問題:
如果作業系統映像檔使用 Linux 6.0-6.2 核心,但未包含 NVMe 修復程式的回溯移植,系統就無法辨識 NVMe 磁碟何時卸離。
解決方法:
重新啟動 VM,完成移除磁碟的程序。
如要避免這個問題,請使用 Linux 核心版本沒有這個問題的作業系統:
- 5.19 以上版本
- 6.3 以上版本
您可以在客體 OS 中使用 uname -r
指令,查看 Linux 核心版本。
後續步驟
- 瞭解永久磁碟。
- 瞭解本機 SSD。
- 設定磁碟以符合效能需求。
- 瞭解符號連結。