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.
CatatanUntuk 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 instance ECS dari custom image yang sudah ada. Instance ini berfungsi sebagai lingkungan perantara untuk memperbarui image tersebut. Sambungkan ke instance tersebut.
PentingInstansi perantara dikenai biaya. Lepaskan instance setelah Anda membuat custom image baru untuk menghindari biaya berkelanjutan.
Berdasarkan sistem operasi instance Anda, pilih metode untuk memverifikasi dan menginstal driver NVMe.
Konfigurasi konsol
Di Konsol ECS - Instances, temukan instance 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 mencantumkan
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 --checkJika output berisi pesan berikut, driver NVMe sudah terinstal. Lewati ke pembuatan custom image.
[SUCCESS] Summary: Your image can Runnig on nvme instanceJika 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 --fixRestart instance setelah konfigurasi selesai.
sudo rebootSetelah instance 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 instanceBuat custom image baru dari instance 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 255 detik.Metode 1: Tambahkan parameter menggunakan grubby
Periksa apakah
grubbytersedia:which grubbyJika 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/grubTekan i untuk masuk ke mode insert. Temukan baris
GRUB_CMDLINE_LINUX=dan tambahkan parameternvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295.Konten file setelah penambahan parameter:
CatatanJika parameter ini sudah ada dalam file konfigurasi, jangan tambahkan lagi.
Tekan Esc untuk keluar dari mode insert. Masukkan
:wqlalu tekan Enter untuk menyimpan dan menutup file.Terapkan konfigurasi GRUB.
Pilih perintah yang sesuai dengan mode startup instance:
Mode boot Legacy BIOS
sudo grub2-mkconfig -o /boot/grub2/grub.cfgMode 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.cfgJalankan 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.cfgJika 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 instance 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 255 detik.Buka file /etc/default/grub:
sudo vi /etc/default/grubTekan 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.Konten file setelah penambahan parameter:
CatatanJika parameter ini sudah ada dalam file konfigurasi, jangan tambahkan lagi.
Tekan Esc untuk keluar dari mode insert. Masukkan
:wqlalu tekan Enter untuk menyimpan dan menutup file.
Terapkan pengaturan GRUB.
Berdasarkan mode startup instance ECS, pilih salah satu perintah berikut:
Perintah ini berlaku untuk Ubuntu dan Debian terlepas dari mode boot:
sudo update-grub2Mode boot Legacy BIOS
sudo grub-mkconfig -o /boot/grub/grub.cfgMode boot UEFI
sudo grub-mkconfig -o /boot/efi/EFI/debian/grub.cfg
Buat custom image baru dari instance 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 instance 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 instance ECS. Lihat Menyambungkan disk cloud ke beberapa instance ECS (multi-attach).
Jika konfigurasi
io_timeoutyang tidak tepat menyebabkan disk NVMe tidak tersedia pada instance ECS Linux, lihat Apa yang harus saya lakukan jika disk NVMe pada instance ECS Linux tidak tersedia karena parameter timeout I/O tidak valid?.