Tambahkan dukungan driver NVMe ke custom image agar dapat boot pada tipe instans ECS berbasis NVMe dengan performa penyimpanan yang ditingkatkan.
NVMe adalah protokol berkecepatan tinggi yang dirancang untuk penyimpanan solid-state, seperti SSD berbasis flash. Dibandingkan dengan SCSI dan virtio-blk, NVMe menawarkan kecepatan dan bandwidth yang lebih tinggi.
Kasus penggunaan
Ikuti prosedur ini jika:
-
Anda mengimpor custom image ke Alibaba Cloud dan Image Check melaporkan bahwa driver NVMe tidak tersedia.
-
Anda tidak dapat memilih custom image saat membuat tipe instans ECS yang mendukung NVMe karena atribut NVMe pada image tidak sesuai dengan persyaratan tipe instans tersebut.
Catatan-
Untuk daftar family instans yang kompatibel dengan NVMe, lihat Ikhtisar family instans. Anda juga dapat memeriksa parameter
NvmeSupportdalam operasi API DescribeInstanceTypes. -
Untuk memeriksa apakah custom image mendukung NVMe, periksa parameter
NvmeSupportdalam operasi API DescribeImages. -
Jika beberapa image tidak muncul saat Anda membuat instans ECS, lihat Tidak dapat menemukan image tertentu.
-
Prosedur
-
Luncurkan instans ECS dari custom image yang sudah ada. Instans ini berfungsi sebagai lingkungan perantara untuk memperbarui image tersebut. Sambungkan ke instans tersebut.
PentingInstansi perantara dikenai biaya. Lepaskan instans tersebut setelah Anda membuat custom image baru untuk menghindari biaya berkelanjutan.
-
Berdasarkan sistem operasi instans Anda, pilih metode untuk memverifikasi dan menginstal driver NVMe.
Konfigurasi konsol
-
Di Konsol ECS - Instances, temukan instans target dan buka halaman detailnya. Di pojok kanan atas, klik All actions, lalu pilih Configure NVMe Driver Status.
-
Klik Install untuk menginstal driver NVMe. Sistem secara otomatis mengatur status driver NVMe menjadi Installed.

Konfigurasi otomatis menggunakan Cloud Assistant
Cloud Assistant menyediakan plugin
ecs_nvme_configuntuk mengonfigurasi driver NVMe secara cepat. Plugin ini hanya mendukung sistem operasi tertentu.-
Periksa apakah Cloud Assistant Agent telah diinstal dan plugin
ecs_nvme_configtersedia:acs-plugin-manager --list
-
Jika tidak ada output terkait Cloud Assistant, instal Cloud Assistant Agent terlebih dahulu.
-
Jika daftar plugin mencakup
ecs_nvme_config, lanjutkan ke langkah berikutnya.
-
-
Gunakan plugin
ecs_nvme_configuntuk mengonfigurasi driver NVMe.-
Gunakan plugin
ecs_nvme_configuntuk memeriksa apakah modul NVMe tersedia dan dapat dikonfigurasi:sudo acs-plugin-manager --exec --plugin ecs_nvme_config --params --check-
Jika output berisi pesan berikut, driver NVMe telah terinstal. Lewati ke pembuatan custom image.
[SUCCESS] Summary: Your image can Runnig on nvme instance -
Jika output berisi pesan
[ERROR]seperti berikut, lanjutkan ke langkah berikutnya.[ERROR] 1.initrd/initramfs not has nvme module, Please run acs-plugin-manager --exec --plugin ecs_nvme_config --params -f/--fix to enable nvme;
-
-
Konfigurasikan driver NVMe berdasarkan hasil pemeriksaan:
sudo acs-plugin-manager --exec --plugin ecs_nvme_config --params --fix -
Restart instans setelah konfigurasi selesai.
sudo reboot -
Setelah instans restart, verifikasi konfigurasi berhasil:
sudo acs-plugin-manager --exec --plugin ecs_nvme_config --params --checkContoh output sukses:
[OK] 1.initrd/initramfs already contain nvme module; [OK] 2.fstab file looks fine and does not contain any device names; [OK] 3.The nvme parameters already included. [SUCCESS] Summary: Your image can Runnig on nvme instance -
Buat custom image baru dari instans tempat Anda menginstal driver tersebut. Kemudian modifikasi atribut custom image baru tersebut dan atur atribut NVMe driver menjadi Supported.
PentingJika Anda tidak mengatur atribut driver NVMe menjadi Supported, sistem tidak akan mengenali image tersebut sebagai kompatibel NVMe. Anda tidak akan dapat memilih tipe instans yang mendukung NVMe saat membuat instans dari image ini.
-
Konfigurasi manual (CentOS/Alibaba Cloud Linux)
-
Periksa apakah kernel telah memuat driver NVMe:
cat /boot/config-`uname -r` | grep -i nvme | grep -v "^#"
-
Jika output berisi
CONFIG_BLK_DEV_NVME=y, sistem operasi dapat langsung boot pada family instans yang mendukung NVMe. Lanjutkan ke Konfigurasi konsol. -
Jika output berisi
CONFIG_BLK_DEV_NVME=m, lakukan langkah-langkah berikut.
-
-
Periksa apakah initramfs berisi driver NVMe:
sudo lsinitrd /boot/initramfs-`uname -r`.img | grep -i nvme | awk '{print $NF}'
-
Jika output sesuai dengan gambar, sistem operasi dapat boot pada family instans yang mendukung NVMe. Lanjutkan ke langkah d.
-
Jika tidak ada output, lakukan langkah c.
-
-
Tambahkan driver NVMe ke initramfs:
mkdir -p /etc/dracut.conf.d echo 'add_drivers+=" nvme nvme-core "' | sudo tee /etc/dracut.conf.d/nvme.conf > /dev/null sudo dracut -v -fCatatanJika tool dracut belum diinstal, jalankan sudo yum -y install dracut untuk menginstalnya.
-
Tambahkan parameter
io_timeoutuntuk NVMe di GRUB.CatatanTambahkan parameter
io_timeoutuntuk NVMe di GRUB guna mencegah kegagalan I/O akibat timeout perangkat. Mengatur nilai ini ke batas maksimum yang didukung memastikan sistem terus memproses permintaan I/O tanpa kegagalan prematur.Pada sebagian besar distribusi Linux, parameter
io_timeoutsecara default bernilai 30 detik. Sebelum menambahkan nilai untuk parameterio_timeout, jalankanecho 4294967295 > /sys/module/nvme_core/parameters/io_timeoutatauecho 4294967295 > /sys/module/nvme/parameters/io_timeoutuntuk memverifikasi apakahio_timeoutdapat diatur ke nilai maksimum 4.294.967.295 detik. Jika perintah mengembalikan-bash: echo: write error: Invalid argument, versi Linux tersebut hanya mendukung hingga 255 detik.Metode 1: Tambahkan parameter menggunakan grubby
-
Periksa apakah
grubbytersedia:which grubby-
Jika output mencantumkan path ke
grubby(misalnya,/usr/sbin/grubby), sistem mendukunggrubby. Lanjutkan ke langkah berikutnya. -
Jika tidak ada output, sistem Anda tidak mendukung
grubby. Gunakan Metode 2 sebagai gantinya.
-
-
Tambahkan parameter kernel dengan
grubby:sudo grubby --update-kernel=ALL --args="nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295"
Metode 2: Tambahkan parameter dengan mengedit file konfigurasi GRUB
-
Buka file grub:
sudo vi /etc/default/grub -
Tekan i untuk masuk ke mode insert. Temukan baris
GRUB_CMDLINE_LINUX=dan tambahkan parameternvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295.Isi file setelah penambahan parameter:
CatatanJika parameter tersebut sudah ada dalam file konfigurasi, jangan tambahkan lagi.
-
Tekan Esc untuk keluar dari mode insert. Masukkan
:wqdan tekan Enter untuk menyimpan serta menutup file. -
Terapkan konfigurasi GRUB.
Pilih perintah yang sesuai dengan mode startup instans:
-
Mode boot Legacy BIOS
sudo grub2-mkconfig -o /boot/grub2/grub.cfg -
Mode boot UEFI
-
Lihat file konfigurasi GRUB:
# Untuk CentOS, jalankan: cat /boot/efi/EFI/centos/grub.cfg # Untuk Alibaba Cloud Linux, jalankan: cat /boot/efi/EFI/alinux/grub.cfg -
Jalankan perintah yang sesuai berdasarkan output:
-
Jika file konfigurasi mengarah ke file konfig lain (misalnya,
/boot/grub/grub.cfg), jalankan:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg -
Jika tidak, jalankan perintah yang sesuai untuk sistem Anda:
# Untuk CentOS sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg # Untuk Alibaba Cloud Linux sudo grub2-mkconfig -o /boot/efi/EFI/alinux/grub.cfg
-
-
-
-
Buat custom image baru dari instans tempat Anda menginstal driver tersebut. Kemudian modifikasi atribut custom image baru tersebut dan atur atribut NVMe driver menjadi Supported.
PentingJika Anda tidak mengatur atribut driver NVMe menjadi Supported, sistem tidak akan mengenali image tersebut sebagai kompatibel NVMe. Anda tidak akan dapat memilih tipe instans yang mendukung NVMe saat membuat instans dari image ini.
-
-
Verifikasi output terkait NVMe:
sudo lsinitrd /boot/initramfs-`uname -r`.img | grep -i nvme | awk '{print $NF}'Jika perintah mengembalikan nama file driver (misalnya, nvme.ko), konfigurasi telah selesai. Sistem operasi kini dapat boot pada tipe instans ECS yang mendukung NVMe.

Konfigurasi manual (Ubuntu/Debian)
-
(Opsional) Periksa apakah initrd berisi driver NVMe:
lsinitramfs /boot/initrd.img-`uname -r` | grep -i nvmeOutput berikut menunjukkan bahwa Ubuntu memuat driver NVMe di initrd secara default.

-
Tambahkan parameter
io_timeoutuntuk NVMe di GRUB.CatatanTambahkan parameter
io_timeoutuntuk NVMe di GRUB guna mencegah kegagalan I/O akibat timeout perangkat. Mengatur nilai ini ke batas maksimum yang didukung memastikan sistem terus memproses permintaan I/O tanpa kegagalan prematur.Pada sebagian besar distribusi Linux, parameter
io_timeoutsecara default bernilai 30 detik. Sebelum menambahkan nilai untuk parameterio_timeout, jalankanecho 4294967295 > /sys/module/nvme_core/parameters/io_timeoutatauecho 4294967295 > /sys/module/nvme/parameters/io_timeoutuntuk memverifikasi apakahio_timeoutdapat diatur ke nilai maksimum 4.294.967.295 detik. Jika perintah mengembalikan-bash: echo: write error: Invalid argument, distribusi Linux tersebut hanya mendukung hingga 255 detik.-
Buka file /etc/default/grub:
sudo vi /etc/default/grub -
Tekan i untuk masuk ke mode edit. Tambahkan parameter berikut ke baris
GRUB_CMDLINE_LINUX=:nvme_core.multipath=n nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295.Isi file setelah penambahan parameter:
CatatanJika parameter tersebut sudah ada dalam file konfigurasi, jangan tambahkan lagi.
-
Tekan Esc untuk keluar dari mode insert. Masukkan
:wqdan tekan Enter untuk menyimpan serta menutup file.
-
-
Terapkan pengaturan GRUB.
Berdasarkan mode startup instans ECS, pilih salah satu perintah berikut:
-
Perintah ini berlaku untuk Ubuntu dan Debian terlepas dari mode boot:
sudo update-grub2 -
Mode boot Legacy BIOS
sudo grub-mkconfig -o /boot/grub/grub.cfg -
Mode boot UEFI
sudo grub-mkconfig -o /boot/efi/EFI/debian/grub.cfg
-
-
Buat custom image baru dari instans tempat Anda menginstal driver tersebut. Kemudian modifikasi atribut custom image baru tersebut dan atur atribut NVMe driver menjadi Supported.
PentingJika Anda tidak mengatur atribut driver NVMe menjadi Supported, sistem tidak akan mengenali image tersebut sebagai kompatibel NVMe. Anda tidak akan dapat memilih tipe instans yang mendukung NVMe saat membuat instans dari image ini.
-
-
(Opsional) Terapkan ulang workload Anda dengan custom image baru yang kompatibel NVMe. Misalnya, buat instans dari custom image atau shared image dan pilih tipe instans yang kompatibel NVMe.
Setelah memverifikasi penerapan, hapus custom image asli untuk menghindari biaya sumber daya yang tidak digunakan.
Referensi
-
Tipe instans ECS berbasis NVMe hanya mendukung disk ESSD dan ESSD AutoPL. Disk ini mendukung multi-attach untuk penyambungan simultan ke beberapa instans ECS. Lihat Menyambungkan disk cloud ke beberapa instans ECS (multi-attach).
-
Jika konfigurasi
io_timeoutyang tidak tepat menyebabkan disk NVMe tidak tersedia pada instans ECS Linux, lihat Apa yang harus saya lakukan jika disk NVMe pada instans ECS Linux tidak tersedia karena parameter I/O timeout tidak valid?.