全部产品
Search
文档中心

:Apa yang harus saya lakukan jika disk NVMe pada instance ECS Linux tidak tersedia karena parameter io_timeout tidak valid?

更新时间:Jul 02, 2025

Topik ini menjelaskan penyebab dan solusi untuk masalah ketika disk Non-Volatile Memory Express (NVMe) pada instance Elastic Compute Service (ECS) Linux tidak tersedia akibat parameter io_timeout yang tidak valid.

Deskripsi masalah

Ketika instance ECS Linux menggunakan disk NVMe sebagai disk sistem, operasi baca/tulis I/O pada instance tersebut menjadi lambat. Akibatnya, sistem operasi atau aplikasi yang di-hosting pada instance tersebut tidak dapat melakukan operasi baca/tulis I/O pada disk NVMe. Status sistem file pada disk NVMe berubah dari mode baca-tulis menjadi hanya-baca. Operasi penulisan berikutnya gagal pada disk NVMe, sehingga sistem operasi dan aplikasi tidak dapat menyediakan layanan seperti yang diharapkan.

Catatan

I/O lambat mengacu pada skenario di mana operasi baca/tulis I/O pada disk dilakukan dengan laju lebih rendah dari yang diharapkan atau memerlukan waktu lama untuk diselesaikan.

Penyebab

Parameter io_timeout driver NVMe menentukan periode timeout maksimum untuk I/O. Jika latensi operasi I/O melebihi nilai parameter io_timeout, driver NVMe akan gagal dalam operasi I/O dan mengembalikan kesalahan. Akibatnya, status sistem file pada disk NVMe mungkin berubah dari mode baca-tulis menjadi hanya-baca. Jika status disk NVMe berubah menjadi hanya-baca, operasi penulisan berikutnya pada disk gagal, sehingga sistem operasi atau aplikasi yang di-hosting pada instance tersebut tidak dapat menyediakan layanan seperti yang diharapkan.

Catatan
  • Pada sebagian besar distribusi Linux, parameter io_timeout memiliki nilai default 30 detik. Untuk mencegah kesalahan timeout operasi I/O pada disk NVMe, atur parameter io_timeout ke nilai maksimum yang didukung. Pada versi kernel terbaru, nilai maksimum yang didukung untuk parameter io_timeout adalah 4.294.967.295 detik. Pada versi kernel yang lebih lama, nilai maksimum yang didukung adalah 255 detik.

  • Modul kernel driver NVMe bervariasi berdasarkan versi kernel. Modul kernel berikut digunakan untuk driver NVMe: nvme.ko dan nvme_core.ko. Nama lengkap parameter io_timeout bisa jadi nvme.io_timeout atau nvme_core.io_timeout.

Solusi

Konfigurasi sementara parameter io_timeout

Anda dapat mengatur parameter io_timeout dengan langkah-langkah berikut. Nilai yang Anda tentukan untuk parameter io_timeout bersifat sementara dan perlu diatur ulang setiap kali instance ECS Linux di-restart.

  1. Hubungkan ke instance ECS Linux.

    Untuk informasi lebih lanjut, lihat Ikhtisar Metode Koneksi.

  2. Periksa jalur modul kernel yang berisi parameter io_timeout.

    • Jalankan perintah berikut untuk memeriksa apakah jalur /sys/module/nvme_core/parameters/io_timeout ada. Jika jalur tersebut ada, nama lengkap parameter io_timeout adalah nvme_core.io_timeout.

      cat /sys/module/nvme_core/parameters/io_timeout
    • Jika jalur tersebut tidak ada, jalankan perintah berikut untuk memeriksa apakah jalur /sys/module/nvme/parameters/io_timeout ada. Jika jalur tersebut ada, nama lengkap parameter io_timeout adalah nvme.io_timeout.

       cat /sys/module/nvme/parameters/io_timeout
  3. Jalankan salah satu perintah berikut untuk menulis nilai 4.294.967.295 ke jalur yang diperoleh pada langkah sebelumnya.

    Modul kernel nvme.ko

    sudo sh -c 'echo 4294967295 > /sys/module/nvme/parameters/io_timeout'

    Modul kernel nvme_core.ko

    sudo sh -c 'echo 4294967295 > /sys/module/nvme_core/parameters/io_timeout'
    • Jika perintah berhasil dijalankan tanpa kesalahan, parameter io_timeout telah diatur ke 4.294.967.295.

    • Jika pesan kesalahan seperti Numerical result out of range dikembalikan, ulangi langkah ini untuk mengatur parameter io_timeout ke 255.

Konfigurasi permanen parameter io_timeout

Anda dapat mengubah nilai parameter io_timeout dalam file konfigurasi GRand Unified Bootloader (GRUB) atau menggunakan plugin ecs_nvme_config Cloud Assistant untuk mengonfigurasi pengaturan terkait NVMe dalam sistem operasi instance. Untuk informasi lebih lanjut, lihat Bagaimana cara menginstal driver NVMe untuk image kustom? Nilai yang Anda tentukan untuk parameter io_timeout bersifat permanen dan tidak dipengaruhi oleh faktor-faktor seperti startup instance.