GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengonfigurasi Fitur Dukungan Early-kdump di CentOS/RHEL 8

Apa itu dukungan kdump awal?

Pada CentOS/RHEL versi sebelumnya (5/6/7), layanan kdump akan dimulai sangat terlambat dalam urutan boot. Jadi informasi crash awal hilang selama booting. Memulai CentOS/RHEL 8, mekanisme kdump baru yang disebut "dukungan kdump awal" diperkenalkan untuk mengatasi masalah ini. Kdump awal menyimpan vmlinuz dan initramf dari kernel crash di dalam initramf dari kernel booting dan memuatnya langsung ke dalam memori yang dicadangkan (crashkernel) selama tahap boot awal.

Paket “kexec-tools” sekarang memiliki 2 modul tambahan untuk memuat kernel crash dan initramfs sedini mungkin selama urutan boot untuk menangkap dump crash kernel dari kernel booting.

/usr/lib/dracut/modules.d/99earlykdump/early-kdump.sh
/usr/lib/dracut/modules.d/99earlykdump/module-setup.sh
# dracut --list-modules | grep earlykdump
earlykdump

Secara default, dukungan kdump awal dinonaktifkan dan kami harus mengaktifkannya secara manual. Ini juga mendukung semua target dump dan parameter konfigurasi yang didukung oleh konfigurasi kdump sebelumnya di CentOS/RHEL 5,6,7.

Konfigurasikan layanan kdump

1. Lihat posting konfigurasi kdump di bawah ini untuk mengkonfigurasi kdump dan memastikan bahwa layanan kdump dalam status berjalan.

CentOS / RHEL 7 :Cara mengkonfigurasi kdump
# systemctl enable --now kdump.service
# systemctl status kdump.service
● kdump.service - Crash recovery kernel arming
Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2019-08-19 23:42:11 IST; 16h ago
Main PID: 1255 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 26213)
Memory: 0B
CGroup: /system.slice/kdump.service

Aug 19 23:42:09  systemd[1]: Starting Crash recovery kernel arming...
Aug 19 23:42:11  kdumpctl[1255]: Kdump already running: [WARNING]
Aug 19 23:42:11  systemd[1]: Started Crash recovery kernel arming.

2. Daftar modul early-dump yang tersedia di sistem

# dracut --list-modules | grep earlykdump
earlykdump 

3. Tambahkan parameter rd.earlykdump ke kernelops baris di /boot/grub2/grubenv berkas:

# cat /boot/grub2/grubenv
# GRUB Environment Block
saved_entry=4eb68bf18e86437d9c957ff4863a3288-4.18.0-80.el8.x86_64
kernelopts=root=/dev/mapper/ol-root ro crashkernel=auto resume=/dev/mapper/ol-swap rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rd.earlykdump
boot_success=0
###################################################################################################
###################################################################################################
###################################################################################################

Buat ulang iniramfs

1. Sekarang langkah selanjutnya adalah membuat ulang initramf untuk menambahkan modul early-kdump:

# lsinitrd | grep -i early
# dracut -f --add earlykdump

Misalnya:

# lsinitrd |grep -i early
Arguments: -f --add 'earlykdump'
earlykdump
-rwxr-xr-x 1 root root 1940 Jun 17 10:29 usr/lib/dracut/hooks/cmdline/00-early-kdump.sh 

2. Reboot kotak untuk memuat perubahan

# reboot

3. Setelah server kembali online, periksa status early-kdump:

# journalctl -x |grep -i early-kdump
Aug 20 16:08:09 [HOSTNAME] dracut-cmdline[196]: early-kdump is enabled.
Aug 20 16:08:10 [HOSTNAME] dracut-cmdline[196]: kexec: loaded early-kdump kernel

Menguji kdump awal

Sekarang mari kita uji kdump awal menggunakan file unit systemd kustom dan buat panik menggunakan SysRq crash.

1. Buat nama file unit /etc/systemd/system/test_early_kdump.service .

# touch /etc/systemd/system/test_early_kdump.service

2. Berikan izin yang sesuai:

# chmod 664 /etc/systemd/system/test_early_kdump.service

File unit akan terlihat seperti di bawah ini:

# cat /etc/systemd/system/test_early_kdump.service
[Unit]
Description=test_early_kdump Service
Before=kdump.service

[Service]
ExecStart=/usr/local/test_early_kdump.sh
Type=simple

[Install]
WantedBy=default.target

3. Kemudian buat skrip lain /usr/local/test_early_kdump.sh file untuk meneruskan perintah crash sysrq:

# cat /usr/local/test_early_kdump.sh
#!/bin/bash
/usr/bin/echo c > /proc/sysrq-trigger

4. Berikan izin yang dapat dieksekusi untuk skrip:

# chmod +x /usr/local/test_early_kdump.sh

5. Muat ulang daemon systemd:

# systemctl daemon-reload
PENTING :Jangan memulai layanan test_early_kdump.service (test crash) jika tidak, sistem akan langsung crash.

6. Aktifkan layanan test_early_kdump ini pada level boot:

# systemctl enable test_early_kdump.service

7. Nyalakan ulang sistem:

# reboot
Catatan :Saat sistem mem-boot sesuai skrip pengujian khusus, itu akan memicu crash dan terus me-reboot.

8. Nonaktifkan file unit &skrip khusus dan hapus setelah diuji. Boot sistem dalam mode penyelamatan menggunakan ‘systemd.unit=rescue.target ' dan nonaktifkan layanan 'test_early_kdump' saat boot.

# systemctl disable test_early_kdump.service

Perintah di atas menonaktifkan file unit khusus. Lain kali sistem akan boot secara normal.

Cara Boot ke Mode Penyelamatan atau Mode Darurat Melalui Systemd di CentOS/RHEL 7 dan 8

9. Hapus file unit khusus dan file skrip kerusakan saat kerusakan TEST selesai:

# rm /etc/systemd/system/test_edump.service
rm: remove regular file '/etc/systemd/system/test_edump.service'? y 
# rm /usr/local/test_early_kdump.sh

10. Periksa /var/crash/ folder sesuai kdump.conf (path /var/crash) yang disebutkan untuk vmcore:

# ls -l /var/crash/127.0.0.1-2019-08-20-17:09:23
total 56648
-rw-------. 1 root root 57959829 Aug 20 17:09 vmcore
-rw-r--r--. 1 root root 41452 Aug 20 17:09 vmcore-dmesg.txt


Linux
  1. Cara Memulai Ulang Layanan Jaringan di CentOS 8 atau RHEL 8

  2. CentOS / RHEL 7 :Cara mengonfigurasi server nama khusus cache

  3. CentOS / RHEL 6,7 :Cara mengonfigurasi halaman besar

  1. CentOS / RHEL 6:Cara mengkonfigurasi kdump

  2. CentOS / RHEL 7 :Cara mengkonfigurasi kdump

  3. CentOS / RHEL 5:Cara Mengonfigurasi kdump

  1. CentOS / RHEL :Cara mengkonfigurasi server DHCP

  2. CentOS / RHEL 5, 6:cara menonaktifkan NetworkManager

  3. Cara Menginstal dan mengkonfigurasi telnet di RHEL / CentOS 5,6