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

1

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/cmdline2

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

3Burada 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

4

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-trigger

Bu 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/

5

6. Crash utilitindən istifadə edərək xəta dumplarının analiz edilməsi.

Bunu etmək üçün ilk öncə biz crashkernel-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

6

 

[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

7

İ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          

 

8Vm 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/

 

 

Səs: +50. Bəyənilsin Zəifdir

Müəllif: Babək Məmmədov

Şərh yazın