공유할 서비스 선택

TECH


TECH

OS Kdump 에 대해 알아보는 시간~!!

페이지 정보

작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 1,983회 좋아요 1회 작성일 23-09-21 18:30

본문

 

안녕하세요 여러분~!!

오늘은  Kdump 대해 알아보겠습니다.

 

 

1. kdump kexec 소개 

 

kdump 크래시 덤프 메커니즘을 제공하는 서비스입니다. 서비스를 사용하면 분석을 위해 시스템 메모리의 내용을 저장할 있습니다. 

 

kdump kexec 시스템 호출을 사용하여 재부팅하지 않고 번째 커널(커널 캡처)으로 부팅한 다음 충돌된 커널 메모리 ( crash dump 또는 vmcore) 콘텐츠를 캡처하여 파일에 저장합니다. 번째 커널은 시스템 메모리의 예약된 부분에 있습니다.

  

----중요----

커널 크래시 덤프는 실패 사용할 있는 유일한 정보일 있으며, 비즈니스에 중요한 환경에서 데이터를 갖는 것의 중요성은 과소평가할 없습니다. Red Hat 시스템 관리자가 일반 커널 업데이트 주기에서 kexec-tools 정기적으로 업데이트하고 테스트하는 것이 좋습니다. 이는 새로운 커널 기능을 구현할 특히 중요합니다 

------------ 

 

 

2.  메모리 요구 사항 

     kdump 커널 크래시 덤프를 캡처하여 추가 분석을 위해 저장할 있으려면 캡처 커널에 대해 시스템 메모리의 일부를 영구적으로 예약해야 합니다. 예약된 경우 시스템 메모리의 부분은 기본 커널에서 사용할 없습니다.

 

 

 

1) kdump 설치 

        -    기본적으로 OS 설치 Kdump 활성화 하게 되면 자동으로 설치가 됩니다. 하지만

  

   >  설치가 안 된  서버라면 아래와 같이 진행합니다.

 # yum install kexec-tools

  # yum install system-config-kdump

 

 

 2) kdump 설정

       kdump 커널용으로 예약된 메모리를 지정하려면 crashkernel= 옵션을 필수 값으로 설정합니다. 예를 들어 128MB 메모리를 예약하려면 다음을 사용합니다.

 

 Ex) grub2.cfg

 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet crashkernel=512M

 

  

3) kdump 디렉토리 설정 

        - 로컬 파일 시스템의 /var/crash/ 디렉터리에 vmcore 파일을 저장하려면 /etc/kdump.conf 파일을 편집하고 경로를 지정합니다.

  

주의.  물리적 메모리가 20G라고 가정하면 vmcore 받을  /var/crash 디렉토리는 20G 보다 커야합니다. 메모리가 20G 꽉차있다면, 그것을 내려받아야하기 때문입니다. 하지만, 실제로는 그렇게 떨어지진 않습니다. 하지만 레드햇 권고입니다~

 

 Ex)

# etc/kdump.conf 

......

ext4 /dev/mapper/vg00-varcrashvol

path /var/crash 

core_collector makedumpfile -c --message-level 1 -d 31 

..... 


4)  서비스 활성화

 

-     프롬프트에 root 다음을 입력합니다.

# systemctl enable kdump.service 

 # systemctl start kdump.service

 

4.     

     4. kdump 설정 테스트

         프롬프트에 다음 명령을 입력합니다.

 

# echo 1 > /proc/sys/kernel/sysrq

# echo c > /proc/sysrq-trigger

  

이렇게 하면 Linux 커널이 충돌하게 되며 주소-YYYY-MM-DD-HH:MM:SS/vmcore 파일이 구성에서 선택한 위치에 복사됩니다(, 기본적으로 /var/crash/ 변경).

  

ls -al /var/crash/

 

-rw------- 1 root root 123456789012 May 22 04:12 vmcore

-rw-r--r-- 1 root root 77206 May 22 04:12 vmcore-dmesg.txt 

 

vmcore 레드햇에 분석요청을 하면 원인을 파악해줍니다. 

 

 

여기까지가 기본적으로 레드햇에서 가이드 문서에서 설명하는 내용입니다. 

  

제가 실제로 사용하는 설정에 대해 설명드립니다~

 

# cat etc/grub2.cfg

 

.... crashkernel=auto  ..... 

 

 

 # cat etc/sysctl.conf

 kernel.unknown_nmi_panic=1

 kernel.sysrq = 1

 kernel.panic_on_unrecovered_nmi = 1

 kernel.panic_on_io_nmi = 1

 

 설명:

 * kernel.unknown_nmi_panic

   - default: 0

   - 1 경우 커널이 H/W 부터 인식 없는 NMI 신호를 받을 경우 패닉 발생

   - 일반적으로 NMI 스위치를 수동으로 눌러 정의 되지 않은 NMI 생성

   - NMI watch dog thread 정의 되지 않은 NMI 사용하기 때문에 kernel.nmi_watchdog 1 설정하면 kernel.unknown_nmi_panic 값은 0이어야

 

* kernel.panic_on_unrecovered_nmi

   - default: 0

   - 1 경우 복구 불가능한 parity 또는 ECC 메모리 오류를 나타내는 없는 NMI 감지 된경우 패닉

 

* kernel.panic_on_io_nmi

  - 커널이 일반적으로 수정할 없는 I/O 오류로 인해 NMI(Non Maskable Interrupt) 발생 경우 패닉 허용 여부 

 

 

# cat etc/kdump.conf

path /kdump          <-- 직관적으로 쉽게 알수있게 디렉토리를 따로 만들었습니다. 메모리의 1.5 

                           하지만 제경험상으로 20G 이상 떨어진적이 없어 최대 50G 설정해놓습니다. 

core_collector makedumpfile -l --message-level 1 -d 31    <---  전 딱히 레벨을 변경하지 않았습니다. 레벨 

                                                                     변경 시 파일이 커 질수있습니다.

  

그리고 이건 경험인데요, 제가 기술지원을 다니면서 Kdump 하는 사이트가 있고, 절대 안하는 사이트들이 있었습니다.

  

-  설정하는 사이트 : 정확한 원인이 필요하다고 생각하는 사이트들입니다. 그리고 서비스가 모두 이중화 되어있어서, 1대가 죽어도 크게 상관않하는 .

-  설정 안하는 사이트: 서비스가 먼저인곳, 사실 vmcore 떨어지게되면 얼마나 걸릴지 아무도 모릅니다. 서버가 재부팅될때까지 무조건 기다려야합니다

                          그래서 서비스를 먼저 복구하려고 서버가 패닉걸리면 그냥 재부팅을 해버립니다.

 

저의 개인적 경험이니  참고만하세요~^^

 

 

 

감사합니다.

 

 

 

참고사이트 : https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/7/html-single/kernel_administration_guide/index#chap-introduction-to-kdump

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
173 Middleware 미들웨어 아이디로 검색 전체게시물 10-23 2170
(오픈소스 활용-22) 리눅스에 Jenkins-2.4 설치 가이드

카테고리 : Middleware

2,170 0
작성자 : 미들웨어 23/10/23
172 OS OSworker 아이디로 검색 전체게시물 10-15 1518
OS 내에서 Java 설치 및 설정 하기 #java version

카테고리 : OS

1,518 0
작성자 : OSworker 23/10/15
171 Middleware 미들웨어 아이디로 검색 전체게시물 10-11 851
(MSA 개발-3) MSA 파일(JAVA)분석

카테고리 : Middleware

851 0
작성자 : 미들웨어 23/10/11
170 OS OSworker 아이디로 검색 전체게시물 10-09 2307
authselect를 사용하여 사용자 인증 구성에 대해 알아보겠습니다. #pam_faillock #pam.d

카테고리 : OS

2,307 0
작성자 : OSworker 23/10/09
169 OS OSworker 아이디로 검색 전체게시물 09-30 5694
Red Hat Subscription-Manager 사용법에 대해 알아보겠습니다~

카테고리 : OS

5,694 0
작성자 : OSworker 23/09/30
168 OS OSworker 아이디로 검색 전체게시물 09-25 1231
Stratis 파일시스템에 대해 들어보셨나요?

카테고리 : OS

1,231 0
작성자 : OSworker 23/09/25
167 Middleware 미들웨어 아이디로 검색 전체게시물 09-22 864
(MSA 개발-2) Oracle DB & SpringBoot MSA 응용 프로그램 테스트

카테고리 : Middleware

864 0
작성자 : 미들웨어 23/09/22
열람중 OS OSworker 아이디로 검색 전체게시물 09-21 1984
열람중
Kdump 에 대해 알아보는 시간~!!

카테고리 : OS

1,984 0
작성자 : OSworker 23/09/21
165 Middleware 미들웨어 아이디로 검색 전체게시물 09-11 4567
(MSA 개발-1) Oracle DB를 사용한 SpringBoot 마이크로서비스

카테고리 : Middleware

4,567 0
작성자 : 미들웨어 23/09/11
164 OS OSworker 아이디로 검색 전체게시물 08-30 3308
Red Hat Linux lifecycle

카테고리 : OS

3,308 0
작성자 : OSworker 23/08/30
Total 233건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 chlux.co.kr All rights reserved.
상단으로Top