다시 일어났다! 주기적으로 충돌하는 4 대의 서버가 있으며 시스템 로그 나 직렬 콘솔에 인쇄 된 정보가 없습니다.
또한 Linux kdump 서비스 는 코어 덤프를 기본 위치 인에 쓰지 않습니다 /var/crash
.
- 왜 그런지 알아낼 수 있습니까?
- 루트 파일 시스템이 LVM 볼륨 인 경우 문제가됩니까?
여기 내가 시도한 것이 있습니다.
-
내 시스템은 최신 커널을 갖춘 Scientific Linux 6.5입니다.
[root@host1 ~]# uname -r 2.6.32-431.11.2.el6.x86_64 [root@host1 ~]# cat /etc/issue Scientific Linux release 6.5 (Carbon)
-
파일
/etc/kdump.conf
은 기본 설정이 포함 된 바닐라 파일입니다. 대부분의 라인에만 두 개의 활성 라인이있다, 주석 처리path
하고core_collector
.#net my.server.com:/export/tmp #net user@my.server.com path /var/crash core_collector makedumpfile -c --message-level 1 -d 31 #core_collector scp
-
나는 수 있도록
kdump
서비스가 실행되고, 그kdump
내를 재 구축 할 필요가 없습니다initrd
.[root@host1 ~]# chkconfig --list kdump kdump 0:off 1:off 2:off 3:on 4:on 5:on 6:off [root@host1 ~]# /etc/init.d/kdump restart Stopping kdump: [ OK ] Starting kdump: [ OK ] [root@host1 ~]#
-
그런 다음 RHEL6 배포 가이드 : 29 장 에서 빌린 다음 명령을 사용하여 커널 충돌을 강제합니다 . kdump Crash Recovery Service :
그런 다음 쉘 프롬프트에서 다음 명령을 입력하십시오.
echo 1 > /proc/sys/kernel/sysrq echo c > /proc/sysrq-trigger
Linux 커널이 강제 종료됩니다.
-
시스템이 충돌합니다. 시리얼 콘솔에서 진행 상황을 볼 수 있습니다. 나는 메시지가 표시
Saving to the local filesystem UUID=e7abcdeb-1987-4c69-a867-fabdceffghi2
하지만, 즉시 그 후 나는의 이상한 메시지가 표시Usage: fsck.ext4
일종의 뭔가 같은 외모의 실수로 호출되고,fsck
이 일을해야 무엇이든 대신합니다. 메모리 부족 오류 또는 기타 언급이 없습니다.host1.example.org login: SysRq : Trigger a crash BUG: unable to handle kernel NULL pointer dereference at (null) ... ... skipping 50 lines of output ... Creating block device ram8 Creating block device ram9 Creating Remain Block Devices Making device-mapper control node Scanning logical volumes Reading all physical volumes. This may take a while... No volume groups found No volume groups found Activating logical volumes No volume groups found No volume groups found Free memory/Total memory (free %): 58272 / 116616 ( 49.9691 ) Saving to the local filesystem UUID=e7abcdeb-1987-4c69-a867-fabdceffghi2 Usage: fsck.ext4 [-panyrcdfvtDFV] [-b superblock] [-B blocksize] [-I inode_buffer_blocks] [-P process_inode_size] [-l|-L bad_blocks_file] [-C fd] [-j external_journal] [-E extended-options] device Emergency help: -p Autom
-
그런 다음 시스템이 재부팅됩니다 (기본값).
-
시스템이 다시 온라인 상태가되면에 아무것도 없습니다
/var/crash
. 충돌 덤프가 작성되지 않았다고 가정합니다.[root@host1 ~]# ls -lA /var/crash/ total 0 [root@host1 ~]#
-
크래시 덤프가 일반적으로 작동 할 수 있다는 것을 알고 있습니다. 내가 말할 경우
kdump
다음과 같은 구성으로 다른 시스템에 코어 덤프를 복사, kdump에 성공적으로 다른 호스트에 코어 덤프를 작성합니다 :path vmcore ssh user@hostb.example.org sshkey /root/.ssh/kdump_id_rsa
-
내가 설정 한 경우
default shell
에/etc/kdump.conf
다시 나에 대해 조금 더 정보 오류가 initrd를 재 구축하고 시스템을 충돌mount: can't find /mnt in /etc/fstab
Free memory/Total memory (free %): 58272 / 116616 ( 49.9691 ) Saving to the local filesystem UUID=e720481b-1987-4c69-a867-f2b4cba3b312 Usage: fsck.ext4 [-panyrcdfvtDFV] [-b superblock] [-B blocksize] [-I inode_buffer_blocks] [-P process_inode_size] [-l|-L bad_blocks_file] [-C fd] [-j external_journal] [-E extended-options] device Emergency help: -p Automatic repair (no questions) -n Make no changes to the filesystem -y Assume "yes" to all questions -c Check for bad blocks and add them to the badblock list -f Force checking even if filesystem is marked clean -v Be verbose -b superblock Use alternative superblock -B blocksize Force blocksize when looking for superblock -j external_journal Set location of the external journal -l bad_blocks_file Add to badblocks list -L bad_blocks_file Set badblocks list mount: can't find /mnt in /etc/fstab dropping to initramfs shell exiting this shell will reboot your system /sys/block #
-
그러나 지금, 나는 붙어 있습니다.
답변
게임에 조금 늦었지만 미래에 kdump를 구성 해야하는 경우 :
경로 지시어는 지정된 파티션 또는 파일 시스템의 경로를 지정한다고 생각합니다. 기본적으로 루트 fs입니다. fstab에 / var 용 별도의 파티션이 있으면 시스템이 정상적으로 부팅 될 때 충돌 디렉토리가 난독 화됩니다. 즉, 정상적으로 부팅하고 / var를 마운트 해제하면 crash / [UniqCoreDir]이 표시됩니다. kdump.conf에 “ext4 / PATH / TO / DEVICE”지시문을 추가하여이를 조정할 수 있습니다. 또한 마운트되지 않은 다른 경로를 사용할 수 있습니다.
단지 추측이지만 / var 아래에 많은 vmcore가 묻혀있을 수 있습니다.
답변
/ boot /에서 kdump initrd를 분리하여 덤프하려는 최종 경로를 확인하십시오.
-
“path”옵션이 약간 이상하다고 생각합니다. 기본값으로 두거나 명시 적으로 / var / crash로 설정합니다.
-
컴퓨터를 재부팅하는 일종의 워치 독이 있습니까? 또한 시작하기 전에 머신을 재부팅하여 코어가 생성되지 않을 수도 있습니다.