Pada instance bare metal Elastic Compute Service (ECS), layanan kdump bawaan sistem operasi mungkin gagal menghasilkan file dump crash. Topik ini menjelaskan penyebab dan solusi untuk masalah tersebut.
Deskripsi Masalah
Berikut adalah skenario-skenario di mana file dump crash tidak dapat dihasilkan setelah perangkat di-hot-swap pada instance berikut:
Instance dari keluarga Instance Bare Metal ECS generasi keenam (termasuk ebmg6, ebmc6, dan ebmr6) yang menggunakan gambar berikut:
Gambar CentOS 8.3 atau lebih lama
Gambar Ubuntu 16/18
Gambar Debian 10
Gambar Alibaba Cloud Linux 2 dengan versi kernel lebih lama dari 4.19.91-24.al7
Instance dari keluarga Instance Bare Metal ECS generasi ketujuh (termasuk ebmg7, ebmc7, dan ebmr7) yang menggunakan gambar Debian 10.
Penyebab
Saat layanan kdump instance berada dalam fase crashkernel, sumber daya pci_resource gagal dialokasikan ke perangkat blok vda. Akibatnya, file dump crash tidak dapat dihasilkan. Penyebab utama masalah ini adalah ketidakcocokan antara tipe instance dengan sistem operasi. Keluaran perintah serupa dengan yang ditunjukkan pada gambar berikut akan ditampilkan.
Solusi
Anda dapat menggunakan salah satu metode berikut untuk menyelesaikan masalah ini:
Metode 1: Tingkatkan kernel sistem operasi ke versi 5.10.
Metode 2: Tambahkan patch berikut ke sistem operasi dan bangun ulang kernel:
Benjamin Herrenschmidt (1): PCI: Jangan auto-realloc jika kita mempertahankan konfigurasi firmware Kelsey Skunberg (1): PCI: Jadikan pci_hotplug_io_size, mem_size, dan bus_size menjadi privat Logan Gunthorpe (1): PCI: Jangan nonaktifkan BAR jembatan saat menetapkan sumber daya bus Nicholas Johnson (2): PCI: Tambahkan parameter "pci=hpmmiosize" dan "pci=hpmmioprefsize" PCI: Hindari penugasan ulang jendela MMIO hpmemsize gandaCatatanBeberapa versi kernel sudah mencakup sebagian dari patch di atas. Anda hanya perlu menambahkan patch yang belum termasuk ke dalam kernel. Sebagai contoh, versi kernel 4.19 Debian 10 sudah mencakup patch pertama dan ketiga. Sebelum sistem operasi dapat menggunakan layanan kdump seperti yang diharapkan, Anda harus menambahkan patch kedua, keempat, dan kelima ke kernel.
Perhatikan hal-hal berikut:
Untuk kernel sistem operasi Debian atau Ubuntu, Anda harus memodifikasi parameter crashkernel untuk menyesuaikan memori yang dicadangkan untuk kdump. Pengaturan yang direkomendasikan:
crashkernel=0M-2G:0M,2G-8G:192M,8G-:256MUntuk beberapa gambar sistem operasi seperti gambar Debian 10, Anda harus menyesuaikan jumlah memori yang dicadangkan menjadi 384 MB atau 512 MB. Jika jumlah memori yang dicadangkan tidak ditingkatkan, pengecualian out-of-memory (OOM) terjadi saat layanan kdump berada dalam fase crashkernel, dan file dump crash tidak dapat dihasilkan.
Prosedur berikut menunjukkan cara menyesuaikan parameter crashkernel untuk mencadangkan 256 MB memori jika total memori sistem lebih dari 384 MB:
Buka file /kdump-tools.cfg.
vim /etc/default/grub.d/kdump-tools.cfgTekan tombol I untuk masuk ke mode Sisipkan dan modifikasi pengaturan parameter crashkernel berikut:
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT crashkernel=384M-:256M"Setelah memodifikasi parameter, tekan tombol Esc, masukkan
:wq, lalu tekan tombol Enter untuk menyimpan dan menutup file.Perbarui konfigurasi GRand Unified Bootloader (GRUB).
update-grubMulai ulang Instance ECS agar konfigurasi berlaku.
Disarankan untuk memulai ulang Instance ECS selama jam-jam sepi guna mengurangi dampak pada operasi bisnis akibat pemulaian ulang instance. Untuk informasi lebih lanjut tentang cara memulai ulang Instance ECS, lihat Mulai ulang sebuah instance.