먼저 다음과 같이 /proc/cmdline 및 dmesg 결과에서 crash라는 단어를 검색해봅니다. 없으면 crashdump가 enable되지 않은 상태입니다.
u0017649@sys-90592:~$ cat /proc/cmdline | grep crash
u0017649@sys-90592:~$ dmesg | grep -i crash
crashdump를 enable하기 위해서는 linux-crashdump를 설치합니다. 설치 과정 중에 다음과 같이 kexec-tools와 kdump-tools를 enable하겠냐는 것을 묻는데, 둘다 yes로 하셔야 합니다.
u0017649@sys-90592:~$ sudo apt install linux-crashdump
┌────────────────────────┤ Configuring kexec-tools ├────────────────────────┐
│ │
│ If you choose this option, a system reboot will trigger a restart into a │
│ kernel loaded by kexec instead of going through the full system boot │
│ loader process. │
│ │
│ Should kexec-tools handle reboots? │
│ │
│ <Yes> <No> │
│ │
└───────────────────────────────────────────────────────────────────────────┘
┌────────────────────────┤ Configuring kdump-tools ├────────────────────────┐
│ │
│ If you choose this option, the kdump-tools mechanism will be enabled. A │
│ reboot is still required in order to enable the crashkernel kernel │
│ parameter. │
│ │
│ Should kdump-tools be enabled by default? │
│ │
│ <Yes> <No> │
│ │
아마 고객사의 Minsky 환경에서는 그렇지 않겠습니다만, 제가 쓰는 PDP (Power Development Platform) cloud 환경처럼 혹시 아래 파일에 USE_GRUB_CONFIG=false로 되어 있다면 이걸 true로 고쳐 주셔야 crashdump 설정이 유효하게 됩니다.
u0017649@sys-90592:~$ sudo vi /etc/default/kexec
...
#USE_GRUB_CONFIG=false
USE_GRUB_CONFIG=true
이제 시스템을 reboot 합니다.
u0017649@sys-90592:~$ sudo shutdown -r now
시스템이 부팅되면, /var/crash 밑에 아무 것도 없는 것을 확인합니다.
u0017649@sys-90592:~$ ls /var/crash
아울러 아까는 없었던 crashkernel 관련 항목이 /proc/cmdline과 dmesg에 나오는 것을 확인합니다.
u0017649@sys-90592:~$ cat /proc/cmdline | grep crash
root=UUID=2a159e60-be84-4802-9bf1-bdbcf457a39e ro splash quiet crashkernel=384M-2G:128M,2G-:256M
u0017649@sys-90592:~$ dmesg | grep -i crash
[ 0.000000] Reserving 256MB of memory at 128MB for crashkernel (System RAM: 4096MB)
[ 0.000000] Kernel command line: root=UUID=2a159e60-be84-4802-9bf1-bdbcf457a39e ro splash quiet crashkernel=384M-2G:128M,2G-:256M
이제 kdump-config show 명령으로 crashdump 준비 상태를 확인합니다.
u0017649@sys-90592:~$ sudo kdump-config show
DUMP_MODE: kdump
USE_KDUMP: 1
KDUMP_SYSCTL: kernel.panic_on_oops=1
KDUMP_COREDIR: /var/crash
crashkernel addr:
/var/lib/kdump/vmlinuz: symbolic link to /boot/vmlinux-4.4.0-104-generic
kdump initrd:
/var/lib/kdump/initrd.img: broken symbolic link to /var/lib/kdump/initrd.img-4.4.0-104-generic
current state: Not ready to kdump
여기서는 Not ready인데, 이유는 제가 쓰는 PDP (Power Development Platform) cloud 환경에서는 저 /var/lib/kdump/initrd.img-4.4.0-104-generic 대신 /var/lib/kdump/initrd.img-4.4.0-98-generic이 들어있기 때문입니다. 아마도 고객사의 Minsky 서버에서는 이런 문제는 없을 것입니다. PDP에서만 있는 이 문제는 그냥 간단히 /var/lib/kdump/initrd.img-4.4.0-98-generic를 /var/lib/kdump/initrd.img-4.4.0-104-generic 라는 이름으로 copy해서 해결하겠습니다.
u0017649@sys-90592:~$ sudo cp /var/lib/kdump/initrd.img-4.4.0-98-generic /var/lib/kdump/initrd.img-4.4.0-104-generic
이제 kdump-config load를 수행한 뒤 다시 kdump-config show를 해보면 ready to kdump로 상태가 바뀐 것을 보실 수 있습니다.
u0017649@sys-90592:~$ sudo kdump-config load
Modified cmdline:root=UUID=2a159e60-be84-4802-9bf1-bdbcf457a39e ro splash quiet irqpoll nr_cpus=1 nousb systemd.unit=kdump-tools.service elfcorehdr=156864K
* loaded kdump kernel
u0017649@sys-90592:~$ sudo kdump-config show
DUMP_MODE: kdump
USE_KDUMP: 1
KDUMP_SYSCTL: kernel.panic_on_oops=1
KDUMP_COREDIR: /var/crash
crashkernel addr:
/var/lib/kdump/vmlinuz: symbolic link to /boot/vmlinux-4.4.0-104-generic
kdump initrd:
/var/lib/kdump/initrd.img: symbolic link to /var/lib/kdump/initrd.img-4.4.0-104-generic
current state: ready to kdump
kexec command:
/sbin/kexec -p --command-line="root=UUID=2a159e60-be84-4802-9bf1-bdbcf457a39e ro splash quiet irqpoll nr_cpus=1 nousb systemd.unit=kdump-tools.service" --initrd=/var/lib/kdump/initrd.img /var/lib/kdump/vmlinuz
crashdump를 테스트하는 방법은 다음과 같습니다. 단, 이것이 수행될 때는 일단 시스템이 죽고, 또 시스템 reboot이 제대로 되지 않을 수 있으므로 반드시 IPMI나 RGB 모니터 등으로 console을 확보한 뒤에 하시기 바랍니다.
sudo가 아닌, 반드시 "su -"를 통해 root 계정으로 login 한 뒤, 다음과 같이 명령을 날리면 시스템이 죽으면서 /var/crash 디렉토리에 dump를 쏟습니다.
root@sys-90592:~# echo c > /proc/sysrq-trigger
리부팅이 끝나면 다음과 같은 형태로 crash file이 만들어진 것을 보실 수 있습니다.
# ls /var/crash
linux-image-3.0.0-12-server.0.crash
이 파일을 분석하는 것은 Ubuntu 공식 문서에 따르면 https://www.dedoimedo.com/computers/crash-analyze.html 에 나온 것을 참조하여 하면 된다고는 하는데, 저도 경험이 없고, 또 쉬워 보이지도 않네요.
이 외에, 기술지원 계약자에게 시스템 정보를 모아서 보내려면 sosreport를 사용하시는 것이 좋습니다. 원래 redhat에 있던 이 기능은 ubuntu에서도 사용이 가능합니다. 먼저 아래와 같이 sosreport를 설치하시고...
u0017649@sys-90528:~$ sudo apt-get install sosreport
(반드시 root 권한으로) sosreport를 수행하시기만 하면 됩니다. 결과물은 /tmp 밑에 tar.xz 포맷으로 생성됩니다.
u0017649@sys-90528:~$ sudo sosreport
...
Please enter your first initial and last name [sys-90528]:
Please enter the case id that you are generating this report for []:
Setting up archive ...
Setting up plugins ...
Running plugins. Please wait ...
Running 23/61: kernel...
Creating compressed archive...
Your sosreport has been generated and saved in:
/tmp/sosreport-sys-90528-20171227231646.tar.xz
The checksum is: 939ce2d2b6a254fbb576a2f6728b5678
Please send this file to your support representative.
u0017649@sys-90528:~$ ls -l /tmp/sosreport-sys-90528-20171227231646.tar.xz
-rw------- 1 root root 5231340 Dec 27 23:17 /tmp/sosreport-sys-90528-20171227231646.tar.xz
저 파일 속의 내용은 뭐 대단한 것은 아니고 그냥 시스템의 주요 config 파일들을 모아 놓는 것입니다.
u0017649@sys-90528:~$ sudo tar -tf /tmp/sosreport-sys-90528-20171227231646.tar.xz | more
...
sosreport-sys-90528-20171227231646/lib/udev/rules.d/60-cdrom_id.rulessosreport-sys-90528-20171227231646/lib/udev/rules.d/80-docker-ce.rules
sosreport-sys-90528-20171227231646/lib/nvidia-361/
sosreport-sys-90528-20171227231646/lib/nvidia-361/modprobe.conf
sosreport-sys-90528-20171227231646/lib/modules/
sosreport-sys-90528-20171227231646/lib/modules/4.4.0-98-generic/
sosreport-sys-90528-20171227231646/lib/modules/4.4.0-98-generic/modules.dep
...
sosreport-sys-90528-20171227231646/etc/rcS.d/S03udev
sosreport-sys-90528-20171227231646/etc/rcS.d/S02plymouth-log
sosreport-sys-90528-20171227231646/etc/rcS.d/S08checkfs.sh
sosreport-sys-90528-20171227231646/etc/rcS.d/S02plymouth-log
sosreport-sys-90528-20171227231646/etc/rcS.d/S08checkfs.sh
Hw 엔지니어를 위한 Deep Learning: Ubuntu 16.04 Ppc64Le에 Crashdump를 설정하는 방법 >>>>> Download Now
답글삭제>>>>> Download Full
Hw 엔지니어를 위한 Deep Learning: Ubuntu 16.04 Ppc64Le에 Crashdump를 설정하는 방법 >>>>> Download LINK
>>>>> Download Now
Hw 엔지니어를 위한 Deep Learning: Ubuntu 16.04 Ppc64Le에 Crashdump를 설정하는 방법 >>>>> Download Full
>>>>> Download LINK