Kernelin kdump xüsüsiyyətinin CentOS/Red Hat 7 ƏS’də manual olaraq aktivləşdirilməsi
Salam dostlar. Kdump, sistem və ya kernel zədələnəndə xəta dumplarını(crash dump) tutan bir kernel xüsüsiyyətidir. Xəta dumpları sistemdə hər hansı problem olanda həmin problemi yaddaşa qeyd edən xüsüsiyyətdir.Bu yaddaş fiziki ram tərəfindən ayrılır. Kdump bu xəta dumplarını sistem zədələnəndə sizin təyin etdiyinizə uygun olaraq lokal və ya hər hansı uzaq(remote) maşında vmcore faylına yazır. Bu fayl vasitəsi ilə siz problemin nədən qaynaqlandığını analiz edə və gələcəkdə bunun üçün bəzi önləmlər ala bilərsiniz. Ümümiyyətlə kdump susmaya görə əməliyyat sistemi yüklənən zaman aktivləşdirilə bilər. Biz isə bu məqalədə kdump’un manual olaraq aktivləşdirilməsi qaydasına baxacağıq.
1. Yum komandası vasitəsi ilə “kexec-tools” paketinin yüklənməsi.
[root@server2 ~]# yum install kexec-tools –y
2. Grub faylında kdump kernel üçün ayrılan yaddaşın yenilənməsi
Bu Grub2 faylının (/etc/default/grub), ‘GRUB_CMDLINE_LINUX‘ sətri ilə başlayan kdump üçün ayrılmış hissəsində ‘crashkernel=<Reserved_size_of_RAM>‘ dəyişiklik etməlisiniz. Susmaya görə ‘auto’ xüsüsiyyəti olur. Amma siz bunu minimum olaraq 128M etməlisiniz.Əgər istəsəniz bu sətirdə olan ‘rhgb’ və ‘quiet’ xüsüsiyyətlərini silədə bilərsiniz. Bu xsüsiyyətləin olmaması , sistem açılarkən yüklənmə prosesinin necə getdiyini görə bilərsiniz.
GRUB_CMDLINE_LINUX=”crashkernel=128M console=tty0 console=ttyS0,9600n8″
[root@server2 ~]# cat /etc/default/grub
Grub2 konfiqurasiya faylında dəyişikliyin yerinə yetirilməsi üçün aşağıdakı komandadan istifadə edilməlidir.(BİOS bazalı sistemlərdə(mbr olan))
[root@server2 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
UEFİ proqram təminatlı sistemlərdə isə aşağıdakı kimi olmalıdır.
[root@server2 ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Əgər bu komandaları sisteminizə uygun işlətdikdən sonra heç bir problemlə qarşılaşmadınızsa, o zaman sistemə restart vermək lazımdır
[root@server2 ~]# shutdown -r now
Sistem restart olduqdan sonra xüsüsiyyətin aktivləşdirilməsindən əmin olmaq üçün /proc/cmdline faylına baxırıq.
[root@server2 ~]# cat /proc/cmdline
3./etc/kdump.conf faylında dump faylının yerinin təyin edilməsi və faylın sıxılması . Dediyimiz kimi vmcore faylı həm lokal sistemdə həmdə uzaq serverdə(NFS) yerləşdirilə bilər. Biz bu gün lokal sistemdən istifadə edəcəyik. Əgər sizin NFS serveriniz varsa bu zaman, konfiqurasiya faylında həmin faylın yolunu göstərə bilərsiniz. Lokal sistemdə direktoriyanı istəyiniz direktoriyanı seçə bilərsiniz, mən /var/crash direktoriyasını təyin edəcəm. Kdump həmçinin bu faylın sistemdə çox yer tutmaması üçün, həmin faylı core_collector makedumpfile -c xüsüsiyyəti ilə arxivləməyə də imkan verir.
[root@server2 ~]# vim /etc/kdump.conf
Burada olan default xüsüsiyyəti əgər kdump-da hər hansı problem olarsa , o zaman sistemə sistemin restart olacağını deyirsiniz. Belə olacağı halda siz makedumpfile komandasından istifadə edərək manual olaraq dump faylın yaratmalısınız. Ümümiyyətlə bu dediyimiz dump faylı ya kdump-compressed formatında yada kı ELF formatında saxlanıla bilər.Burada kdump-compressed formatından istifadə edəcəyik çünki arxivlənməni dəstəkləyir və yanlz crash utilindən istifadə edərək oxunulur. ELF isə sıxılmanı dəstəkləmir amma crash və GDB utilitlərindən istifadə edilərək oxunula bilir.Bundan əlavə siz bu faylda disk yerini partition,ssh vasitəsi ilə başqa maşın və s. kimi üsullarla dump faylının yerini təyin edə bilərsiniz. Ətraflı olaraq /etc/kdump.conf faylında göstərilmişdir.
4. Kdump servisinin aktivləsdiriməsi, sistem yüklənəndə avtomatik işə düşməsini təyin edib, statusuna baxırıq.
[root@server2 ~]# systemctl start kdump
[root@server2 ~]# systemctl enable kdump
[root@server2 ~]# systemctl status kdump
5. Sistemi manual olaraq zədələyirik(yəni crash edirik). Sonra isə vmcore faylının /var/crash direktoriyasında yaranacağını görəcəksiniz.
[root@server2 ~]# echo 1 > /proc/sys/kernel/sysrq ; echo c > /proc/sysrq-triggerBu zaman sistem zədələnəcək və restart olacaq.Sonra isə ls –lR /var/crash komandasından istifadə edərək vmcore faylının yarandığını görə bilərsiniz.
[root@server2 ~]# ls -lR /var/crash/
6. Crash utilitindən istifadə edərək xəta dumplarının analiz edilməsi.
Bunu etmək üçün ilk öncə biz crash və kernel-debuginfo paketinlərini yükləməliyik.
[root@server2 ~]# yum install crash –y
‘kernel-debuginfo’ paketini yükləmək üçün, birinci olaraq Debug repoitoriyasını aktivləşdirməliyik.Bunu /etc/yum.repos.d/CentOS-Debuginfo.repo faylında enabled xüsusiyyətini 0-dan 1-rəqəminə çevirərək edirik.
[root@server2 ~]# cat /etc/yum.repos.d/CentOS-Debuginfo.repo
[root@server2 ~]# yum install kernel-debuginfo –y
Bu paket yükləndikdən dərhal sonra aşağıdakı komandanı icra edib, crash interfeysinə daxil oluruq.
[root@server2~]# crash /var/crash/127.0.0.1-2016-10-14-04\:04\:06/vmcore /usr/lib/debug/lib/modules/`uname -r`/vmlinux
İndi bəzi nümünələr baxaq.
Kernel zədələnəndə proseslərin siyahını göstərir:
crash> ps
Sistem zədələnəndə açıq olan faylların siyahısını göstərir:
crash> files
Sistem , zədələnmənin baş verməsi vaxtı və səbəbi haqqında informasiya verir
crash> sys
Vm kommandası sistemdə problem baş verərkən, virtual yaddaşın istifadəsini göstərir.
crash> vm
Ümümiyyətlə help komandasında istifadə edə bilərsiniz.
crash> help
Əmrlər siyahısına baxdıqdan sonra istədiyiniz əmr haqqında aşağıdaki formada yazmaq şərti ilə komandanın istifadə olunma qaydası barəsində məlumat ala bilərsiniz.
crash> help command
Bundan əlavə siz komandalar haqqında məlumat aldıqdan sonra problemin baş vermə səbəbini və problem müddətində sistemdə baş verən prosesləri analiz edə bilərsiniz. Sonra exit komandası ilə crash terminalından çıxış edə bilərsiniz.
crash> exit
Yazıb crash interfeysinden çıxırsınız.
Bu qədər dostlar, yararlı olmaq ümidi ilə….
Əlavə məlumat üçün
http://www.linuxtechi.com/how-to-enable-kdump-on-rhel-7-and-centos-7/
http://www.thegeekstuff.com/2014/05/kdump/