Instal driver NVMe pada custom image Anda sebelum menerapkan workload pada instance ECS yang menggunakan image tersebut. Hal ini memungkinkan peningkatan performa penyimpanan dengan protokol Non-Volatile Memory Express (NVMe).
Standar antarmuka NVMe untuk memori non-volatile adalah protokol berkecepatan tinggi yang dirancang untuk penyimpanan solid-state, seperti SSD berbasis flash. Dibandingkan dengan protokol tradisional seperti SCSI dan virtio-blk, NVMe memberikan kecepatan dan bandwidth yang lebih tinggi.
Skenario
Lakukan langkah-langkah dalam topik ini jika Anda mengalami salah satu situasi berikut:
Anda mengimpor custom image yang dibuat secara lokal ke Alibaba Cloud dan Image Check melaporkan bahwa driver NVMe tidak tersedia.
Anda tidak dapat memilih custom image saat membeli tipe instans ECS yang mendukung protokol NVMe. Hal ini terjadi ketika atribut NVMe pada image tidak sesuai dengan persyaratan tipe instans.
CatatanUntuk daftar family instans yang mendukung NVMe, lihat Ikhtisar family instans. Anda juga dapat mengonfirmasi dukungan NVMe dengan memeriksa parameter
NvmeSupportdalam operasi API DescribeInstanceTypes.Untuk memeriksa apakah custom image mendukung NVMe, verifikasi parameter
NvmeSupportdalam operasi API DescribeImages.Untuk informasi lebih lanjut tentang mengapa beberapa image tidak muncul saat Anda membuat instance ECS, lihat Mengapa saya tidak dapat menemukan image tertentu saat membuat instance ECS?.
Prosedur
Luncurkan instance ECS dari custom image yang sudah ada. Instance ini berfungsi sebagai lingkungan perantara untuk memperbarui image tersebut. Kemudian hubungkan ke instance tersebut.
PentingAnda dikenai biaya untuk instance perantara ini. Lepaskan instance tersebut setelah Anda membuat custom image baru untuk menghindari biaya berkelanjutan.
Pilih metode konfigurasi berdasarkan sistem operasi instance Anda. Kemudian verifikasi dan instal driver NVMe.
Konfigurasi konsol
Di ECS console - Instances, temukan instance target dan buka halaman detailnya. Di pojok kanan atas, klik More actions lalu pilih Set NVMe driver status.
Klik One-click 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 membantu Anda mengonfigurasi driver NVMe dengan cepat. Namun, plugin ini hanya mendukung sistem operasi tertentu.Jalankan perintah berikut untuk memeriksa apakah Cloud Assistant Agent telah diinstal dan apakah plugin
ecs_nvme_configtersedia:acs-plugin-manager --list
Jika tidak ada output yang terkait Cloud Assistant, pertama-tama instal Cloud Assistant Agent.
Jika daftar plugin muncul dan mencakup
ecs_nvme_config, lanjutkan ke langkah berikutnya.
Gunakan plugin
ecs_nvme_configuntuk menyelesaikan konfigurasi NVMe.Jalankan perintah berikut untuk menggunakan plugin
ecs_nvme_configguna 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 konfigurasi lebih lanjut dan langsung lanjutkan ke pembuatan custom image.
[SUCCESS] Summary: Your image can Runnig on nvme instanceJika hasil yang dikembalikan berisi pesan serupa dengan pesan
[ERROR]berikut, Anda harus melanjutkan 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 dan parameter terkait berdasarkan hasil pemeriksaan:
sudo acs-plugin-manager --exec --plugin ecs_nvme_config --params --fixSetelah konfigurasi selesai, jalankan perintah berikut untuk merestart instance.
sudo rebootSetelah instance restart, jalankan kembali perintah pemeriksaan untuk memverifikasi konfigurasi yang 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 NVMe driver menjadi Supported, sistem tidak akan mengenali image tersebut sebagai kompatibel dengan NVMe. Akibatnya, Anda tetap tidak dapat memilih tipe instans yang mendukung NVMe saat membuat instance dari image ini.
Konfigurasi manual (CentOS/Alibaba Cloud Linux)
Jalankan perintah berikut untuk memeriksa 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 langsung ke Konfigurasi konsol.Jika output berisi
CONFIG_BLK_DEV_NVME=m, lakukan langkah-langkah berikut.
Jalankan perintah berikut untuk memeriksa apakah initramfs berisi driver NVMe:
sudo lsinitrd /boot/initramfs-`uname -r`.img | grep -i nvme | awk '{print $NF}'
Jika hasil yang dikembalikan sesuai dengan gambar, sistem operasi dapat boot pada family instans yang mendukung protokol NVMe, dan Anda dapat melanjutkan ke langkah d.
Jika perintah tidak menghasilkan output, lakukan langkah-langkah berikut (Langkah c).
Jalankan perintah berikut untuk memastikan initramfs menyertakan driver NVMe:
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 NVMe. 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_timeoutmemiliki nilai default 30 detik. Sebelum menambahkan nilai untuk parameterio_timeout, Anda harus menjalankan perintahecho 4294967295 > /sys/module/nvme_core/parameters/io_timeoutatauecho 4294967295 > /sys/module/nvme/parameters/io_timeoutuntuk memverifikasi apakah parameterio_timeoutdapat diatur ke nilai maksimum 4.294.967.295 detik. Jika perintah mengembalikan-bash: echo: write error: Invalid argument, versi Linux saat ini hanya mendukung pengaturan nilai hingga 255 detik.Metode 1: Tambahkan parameter menggunakan grubby
Periksa apakah perintah
grubbytersedia:which grubbyJika output mencakup path ke
grubby(misalnya,/usr/sbin/grubby), sistem mendukunggrubby. Anda dapat melanjutkan ke langkah berikutnya.Jika tidak ada output, sistem Anda tidak mendukung
grubby. Lihat Metode 2 untuk menambahkan parameter.
Jalankan perintah berikut untuk menambahkan parameter kernel menggunakan
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
Jalankan perintah berikut untuk membuka 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.Gambar berikut menunjukkan isi file setelah penambahan parameter.
CatatanJika parameter tersebut sudah ada dalam file konfigurasi, jangan tambahkan lagi.
Tekan Esc untuk keluar dari mode insert. Masukkan
:wqlalu tekan Enter untuk menyimpan dan menutup file.Jalankan perintah berikut untuk menerapkan konfigurasi GRUB.
Pilih perintah yang sesuai dengan mode startup instance ECS Anda:
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 perintah berikut:
sudo grub2-mkconfig -o /boot/grub2/grub.cfgJika tidak, jalankan perintah berikut (pilih baris yang sesuai dengan 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 NVMe driver menjadi Supported, sistem tidak akan mengenali image tersebut sebagai kompatibel dengan NVMe. Akibatnya, Anda tetap tidak dapat memilih tipe instans yang mendukung NVMe saat membuat instance dari image ini.
Jalankan kembali perintah berikut untuk memeriksa 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 siap untuk boot pada tipe instans ECS yang mendukung NVMe.

Konfigurasi manual (Ubuntu/Debian)
(Opsional) Jalankan perintah berikut untuk memeriksa apakah initrd berisi driver NVMe:
lsinitramfs /boot/initrd.img-`uname -r` | grep -i nvmeOutput berikut menunjukkan bahwa sistem operasi Ubuntu memuat driver NVMe dalam 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 NVMe. 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_timeoutdikonfigurasi dengan nilai default 30 detik. Sebelum menambahkan nilai untuk parameterio_timeout, Anda harus menjalankan perintahecho 4294967295 > /sys/module/nvme_core/parameters/io_timeoutatau perintahecho 4294967295 > /sys/module/nvme/parameters/io_timeoutuntuk memverifikasi apakah parameterio_timeoutdapat diatur ke nilai maksimum 4.294.967.295 detik. Jika perintah mengembalikan error-bash: echo: write error: Invalid argument, distribusi Linux saat ini hanya mendukung nilai 255 detik.Jalankan perintah berikut untuk membuka file /etc/default/grub:
sudo vi /etc/default/grubTekan tombol i untuk masuk ke mode edit, lalu tambahkan parameter berikut ke baris
GRUB_CMDLINE_LINUX=:nvme_core.multipath=n nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295.Setelah menambahkan parameter, isi file menjadi seperti berikut:
CatatanJika parameter tersebut sudah ada dalam file konfigurasi, jangan tambahkan lagi.
Tekan Esc untuk keluar dari mode insert. Masukkan
:wqlalu tekan Enter untuk menyimpan dan menutup file.
Jalankan perintah berikut untuk menerapkan pengaturan GRUB yang telah dikonfigurasi.
Bergantung pada mode awal instans ECS, pilih salah satu perintah berikut yang sesuai untuk Anda:
Perintah ini berlaku untuk sistem 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 NVMe driver menjadi Supported, sistem tidak akan mengenali image tersebut sebagai kompatibel dengan NVMe. Akibatnya, Anda tetap tidak dapat memilih tipe instans yang mendukung NVMe saat membuat instance dari image ini.
(Opsional) Terapkan ulang workload Anda menggunakan custom image baru yang mendukung NVMe. Misalnya, buat instance dari custom image atau shared image. Saat pembuatan, pilih tipe instans yang mendukung protokol NVMe.
Setelah memverifikasi penerapan, hapus custom image asli untuk menghindari biaya sumber daya yang tidak digunakan.
Referensi
Tipe instans ECS berbasis protokol NVMe hanya mendukung disk Enterprise SSD (ESSD) dan disk ESSD AutoPL. Disk ini mendukung multi-attach, memungkinkannya disambungkan ke beberapa instance ECS secara bersamaan untuk berbagi data. Untuk informasi lebih lanjut, lihat Menyambungkan disk cloud ke beberapa instance ECS (multi-attach).
Jika konfigurasi parameter
io_timeoutyang tidak tepat menyebabkan disk NVMe tidak tersedia pada instance ECS berbasis Linux, lihat Apa yang harus saya lakukan jika disk NVMe pada instance ECS Linux tidak tersedia karena parameter timeout I/O yang tidak valid? untuk langkah troubleshooting.