Test 환경

Model : DL360p Gen8

OS : SLES 11.3 default mode(additionally dev package default mode)

 

1. 필요 패키지 설치 상태 확인

 

2. munu.lst 파일 수정

#vim /boot/grub/menu.lst

crashkernel=256M-:128M, intel_iommu=off

- intel_iommu – 활성화 시 Gen8 이상에 대하여 kdump 구동에 일부 오류가 보고됨(TBOOT시 필수 활성필요)

- crashkernel – kdump 활성화(OS 설치 시 구성 마법사에서 kdump 설정하면 자동 활성화됨, 변경 가능)

 

 

3. sysctl.conf 파일을 수정

#vim /etc/sysctl.conf:

kernel.sysrq = 1

kernel.panic = 30

kernel.panic_on_oops = 1

kernel.unknown_nmi_panic = 1

kernel.panic_on_unrecovered_nmi = 1

kernel.panic_on_io_nmi = 1

kernel.hung_task_panic = 1

kernel.softlockup_panic = 1

 

4. hpwdt 드라이버 설정

# vim /etc/modprobe.conf.local

options hpwdt allow_kdump=1 priority=1

 

5. Kdump 구동을 위한 옵션 변경

#vim /etc/sysconfig/kdump

 

6. Kdump 서비스 구동 상태 확인

#service boot.kdump status

 

7. 설정 적용을 위한 재시작

# reboot

 

8. 덤프 생성 및 확인(by iLO virtual NMI)

 

9. 덤프 생성 및 확인(by Keyboard)

# echo c > /proc/sysrq-trigger

Alt+Sys Rq(Print Screen)+C(동일기능)

반응형
Posted by 스쳐가는인연

댓글을 달아 주세요

리눅스 시스템 운영 중 장애의 원인을 확인하기 위해서 OS의 덤프를 생성해야 할 필요가 있다.


RHEL Kdump 구성 (Test 기준: RHEL 6.4, VM)

 

로컬디스크/스토리지에 저장

1. 필요 Package 확인 (kexec-tools-*.rpm)

아래 명령을 통해 패키지의 설치 상태를 확인

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

[root@vRH6x Packages]# rpm -qa |grep kexec-tools
kexec-tools-2.0.0-258.el6.x86_64

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

 

2. 설치

패키지가 설치 되어 있지 않은 경우 아래 두 가지 중 한가지 방법을 통해 필요 패키지를 설치

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

[root@vRH6x ~]# yum install kexec-tools

or

[root@vRH6x Packages]# rpm -Uvh kexec-tools-2.0.0-258.el6.x86_64.rpm
warning: kexec-tools-2.0.0-258.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
           package kexec-tools-2.0.0-258.el6.x86_64 is already installed

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

 

3. 구성

3.1. grub.conf 파일을 수정하여 Kdump 기능 사용을 설정 하고 리부팅하여 활성화

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

[root@vRH6x Packages]# vim /boot/grub/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_vrh6x-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg_vrh6x-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_vrh6x/lv_root SYSFONT=latarcyrheb-sun16
crashkernel=auto nmi_watchdog=1 rd_LVM_LV=vg_vrh6x/lv_swap rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-358.el6.x86_64.img

[root@vRH6x Packages]# reboot
Broadcast message from
jade@vRH6x.infoages.com
           (/dev/pts/1) at 22:22 ...
The system is going down for reboot NOW!

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

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

NOTE: Kernel Dump를 생성하기 위해 메모리 공간을 예약

RHEL 5
crashkernel=128M@16M

RHEL 6 - Memory 2GB 이하
crashkernel=128M

RHEL 6 - Memory 2GB 이상
crashkernel=auto

128MB 기본 할당에 Memory 1TB64MB씩 추가됨 (절대 용량은 아님)
e.g.) DL980 G7
Memory 1TB > 192M
     DL980 G7
Memory 4TB > 320M

 

Extended crashkernel syntax
===========================

The syntax is:
    crashkernel=<range1>:<size1>[,<range2>:<size2>,...][@offset]
    range=start-[end]

    'start' is inclusive and 'end' is exclusive.

For example:
    crashkernel=512M-2G:64M,2G-:128M

This would mean:
    1) if the RAM is smaller than 512M, then don't reserve anything
       (this is the "rescue" case)
    2) if the RAM size is between 512M and 2G (exclusive), then reserve 64M
    3) if the RAM size is larger than 2G, then reserve 128M

 

nmi_watchdog=1

nmi_watchdog을 활성화
시스템이 일정시간 응답이 없는 경우 특정 Task를 구동하는 타이머

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

 

3.2 Kernel 파라메터 확인 및 변경

아래 명령어를 통해 nmi_watchdog 파라메터 확인

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

[root@vRH6x ~]# sysctl -a|grep nmi_watchdog
kernel.nmi_watchdog = 1

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

해당 값이 0이라면 동작하지 않으므로 변경 필요
sysctl.conf
을 편집하여 해당 값을 추가하고 “sysctl –w”로 적용한다

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

[root@vRH6x ~]# vim /etc/sysctl.conf
kernel.nmi_watchdog = 1

[root@vRH6x ~]# sysctl -w

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

 

3.3 kdump.conf 설정

1) 생성 위치 지정

raw <partition>
raw <
블럭 디바이스
>
path <path>
nfs <nfs
마운트 경로
>
net <nfs
마운트 경로>    - nfs 이용

nfs4 <nfs
마운트 경로>   - nfs4를 이용 (RHEL 6.3 이상)
ssh <user@server>
net <user@server>       - ssh
이용

파일시스템 타입 <LABEL>
파일시스템 타입
<UUID>
파일시스템 타입 <블럭 디바이스>

 

2) 덤프레벨 (X 표시된 항목은 Dump 발생 시 수집되지 않음)

                dump | zero | cache|cache  | user | free
               level | page | page |private| data | page
              -------+------+------+-------+------+------
                   0 |      |      |       |      |
                   1 |  X   |      |       |      |
                   2 |      |  X   |       |      |
                   3 |  X   |  X   |       |      |
                   4 |      |  X   |  X    |      |
                   5 |  X   |  X   |  X    |      |
                   6 |      |  X   |  X    |      |
                   7 |  X   |  X   |  X    |      |
                   8 |      |      |       |  X   |
                   9 |  X   |      |       |  X   |
                  10 |      |  X   |       |  X   |
                  11 |  X   |  X   |       |  X   |
                  12 |      |  X   |  X    |  X   |
                  13 |  X   |  X   |  X    |  X   |
                  14 |      |  X   |  X    |  X   |
                  15 |  X   |  X   |  X    |  X   |
                  16 |      |      |       |      |  X
                  17 |  X   |      |       |      |  X
                  18 |      |  X   |       |      |  X
                  19 |  X   |  X   |       |      |  X
                  20 |      |  X   |  X    |      |  X
                  21 |  X   |  X   |  X    |      |  X
                  22 |      |  X   |  X    |      |  X
                  23 |  X   |  X   |  X    |      |  X
                  23 |  X   |  X   |  X    |      |  X
                  24 |      |      |       |  X   |  X
                  25 |  X   |      |       |  X   |  X
                  26 |      |  X   |       |  X   |  X
                  27 |  X   |  X   |       |  X   |  X
                  28 |      |  X   |  X    |  X   |  X
                  29 |  X   |  X   |  X    |  X   |  X
                  30 |      |  X   |  X    |  X   |  X
                  31 |  X   |  X   |  X    |  X   |  X

0 – Full Dump
31 – Small Dump

 

3) 덤프 실패 시 취할 액션

default reboot                         - 재부팅(기본)
default halt                            -
시스템 halt 된 후 덤프 시도

default poweroff                      -
시스템 종료
default shell                            - shell
이 수행되며, 수동으로 덤프 시도 가능, 종료 시 리부팅
default mount_root_run_init         - root
파일시스템을 마운트 후 init을 수행.
                                            init
스크립트는 덤프를 /var/crash에 저장 시도

 

4) 그 외 옵션

link_delay <seconds>
-
혹 네트워크 초기화가 늦는 경우를 대비하여 덤프를 생성 후 전송 전 일정시간 대기

kump_post <binary 또는 script>
-
덤프 생성 프로세스 완료 후 사용자가 지정한 실행파일이나 스크립트를 실행

kdump_pre <binary 또는 script>
-
덤프 생성 프로세스 이전에 사용자가 지정한 실행 파일이나 스크립트 실행

extra_bins <binaries 또는 scripts>
- kdump initrd
에 실행 파일들이나 스크립트들을 포함

extra_modules <module(s)>
- kdump initrd
에 로드하고자하는 확장 커널 모듈에 대한 정의. 모듈들은 공백으로 구분

debug_mem_level <0-3>
- kdump
스크립트 실행 시 디버그 모드를 활성화

  kdump
스크립트 수행할 때 메모리의 상태를 실시간으로 출력
  Redhat
권고 값으로 시스템을 설정 후 테스트 시 사용하면 kdump 메모리의 적정량 확인 가능

 

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

NOTE: VMware 환경에서 RHEL 6.4 kdump 구동을 위한 옵션 설정

[root@vRH6 ~]# vim /etc/kdump.conf

path /var/crash
core_collector makedumpfile -c --message-level 1 -d 31

 

NOTE: Hyper-V 환경에서 RHEL 6.4 kdump 구동을 위한 옵션 설정

[root@vRH6x ~]# vim /etc/kdump.conf

path /var/crash
core_collector makedumpfile -c --message-level 1 -d 31
extra_modules ata_piix sr_mod sd_mod
blacklist hv_vmbus hv_storvsc hv_utils hv_netvsc hid-hyperv
options ata_piix prefer_ms_hyperv=0
disk_timeout 100

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

 

4. 서비스 구동 및 상태 확인

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

[root@vRH6x ~]# service kdump start
No kdump initial ramdisk found.                                   [
WARNING
]
Rebuilding /boot/initrd-2.6.32-358.el6.x86_64kdump.img
Starting kdump:                                                       [ 
OK  ]
[root@vRH6x ~]# chkconfig kdump on
[root@vRH6x ~]# chkconfig --list |grep kdump

kdump          0:off     1:off     2:on     3:on     4:on     5:on     6:off
[root@vRH6x ~]# echo c > /proc/sysrq-trigger

Connection closed by foreign host.

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

덤프 진행 시 원격 연결은 종료되고, 시스템(콘솔)은 응답 없음 상태로 진입
vmcore
생성이 완료되면 시스템이 재부팅 됨.

 

리부팅이 완료되면 지정했던 위치에 생성된 덤프를 확인할 수 있음

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

[root@vRH6x ~]# cd /var/crash/
[root@vRH6x crash]# ls
127.0.0.1-2013-12-07-01:51:22
[root@vRH6x 127.0.0.1-2013-12-07-01:51:22]# ls
vmcore  vmcore-dmesg.txt

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


원격 디스크/스토리지에 저장 (NFS)

1. NFS 서버에서 공유 스토리지 구성을 확인 (인증/권한/방화벽 설정 확인 필요)

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

[root@vRH6x ~]# service nfs start
Starting NFS services:                                                [ 
OK 
]
Starting NFS quotas:                                                 [ 
OK 
]
Starting NFS mountd:                                                [ 
OK 
]
Stopping RPC idmapd:                                               [ 
OK 
]
Starting RPC idmapd:                                                [ 
OK 
]
Starting NFS daemon:                                               [ 
OK  ]

[root@vRH6x ~]# chkconfig  nfs on

[root@vRH6x ~]# chkconfig --list |grep nfs
nfs               0:off     1:off     2:on     3:on     4:on     5:on     6:off
nfslock           0:off     1:off     2:off     3:on     4:on     5:on     6:off

[root@vRH6x tmp]# vim /etc/exports
/tmp/kdump 192.168.0.*(rw,sync,no_root_squash)

[root@vRH6x tmp]# exportfs -a

[root@vRH6x tmp]# chmod 777 kdump

[root@vRH6x tmp]# ls –al
drwxrwxrwx.  2 root root 4096 Dec  8 01:18 kdump

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

 

2. Linux에서 원격 스토리지 연결 및 쓰기 가능 상태 확인

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

[root@vRH6 mnt]# showmount -e 192.168.0.16
Export list for 192.168.0.16:
/tmp/kdump 192.168.0.*,192.168.0.0

[root@vRH6 mnt]# mount -t nfs 192.168.0.16:/tmp/kdump /mnt/kdump

[root@vRH6x mnt]# ls –al
drwxrwxrwx.  2 root root 4096 Dec  8 01:18 kdump

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

 

3. kdump.conf 파일에서 덤프 저장 위치 설정/변경

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

[root@vRH6x ~]# vim /etc/kdump.conf

nfs 192.168.0.16:/tmp/kdump
path /RHEL-Kdump
core_collector makedumpfile -c --message-level 1 -d 31

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

 

4. kdump 서비스를 재시작하여 구성한 설정 적용

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

[root@vRH6 mnt]# service kdump restart
Stopping kdump:                                                                [ 
OK  ]
Detected change(s) the following file(s):

  /etc/kdump.conf
Rebuilding /boot/initrd-2.6.32-358.el6.x86_64kdump.img
Starting kdump:                                                                 [ 
OK  ]

[root@vRH6x ~]# echo c > /proc/sysrq-trigger

Connection closed by foreign host.

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

덤프 진행 시 원격 연결은 종료되고, 시스템(콘솔)은 응답 없음 상태로 진입
vmcore
생성이 완료되면 시스템이 재부팅 됨.

 

리부팅이 완료되면 지정했던 위치에 생성된 덤프를 확인할 수 있음

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

[root@vRH6x tmp]# cd kdump
[root@vRH6x kdump]# ls
RHEL-Kdump

[root@vRH6x kdump]# cd RHEL-Kdump/
[root@vRH6x RHEL-Kdump]# ls
192.168.0.5-2013-12-08-01:54:56

[root@vRH6x RHEL-Kdump]# cd 192.168.0.5-2013-12-08-01\:54\:56/
[root@vRH6x 192.168.0.5-2013-12-08-01:54:56]# ls
vmcore  vmcore-dmesg.txt

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

 

iLONMI Button이용 Kdump 생성

1. RHEL 6 - sysctl.conf 파일에 옵션 추가 설정

/etc/sysctl.conf:
panic_on_io_nmi = 1

 

2. RHEL 5 이하 - iLO wdt 드라이버 설치 필요.

HP iLO2/iLO3/iLO4 Watchdog Timer KMOD for Red Hat Enterprise Linux

 

3. iLODiagnostics 항목의 NMI Button을 클릭

 

참조문헌

Linux kdump에 대한 이해
http://www.openseed.co.kr/blog/?p=19

Troubleshooting kernel crashes, system hangs, or system reboots with kdump
https://access.redhat.com/site/solutions/6038

Documentation for Kdump - The kexec-based Crash Dumping Solution
https://www.kernel.org/doc/Documentation/kdump/kdump.txt

Chapter 29. The kdump Crash Recovery Service
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-kdump.html

Can't use kdump or kexec for Linux virtual machines on Hyper-V
http://support.microsoft.com/kb/2858695/en

 

How to Setup kdump Via a Network nfs Share and ILO Hot Keys
http://h10025.www1.hp.com/ewfrf/wc/document?docname=c03261562&cc=kr&dlc=en&lc=en

Advisory: (Revision) Linux - A Generated NMI Using the NMI Button or Virtual NMI Button From Integrated Lights-Out 3 (ILO 3) / Integrated Lights-Out 4 (ILO 4) Does Not Initiate Kdump on Linux

http://h20566.www2.hp.com/portal/site/hpsc/template.PAGE/public/kb/docDisplay/?sp4ts.oid=4194735&spf_p.tpst=kbDocDisplay&spf_p.prp_kbDocDisplay=wsrp-navigationalState%3DdocId%253Demr_na-c02702542-2

 


반응형
Posted by 스쳐가는인연

댓글을 달아 주세요

HP G7 장비에서 아래 OS들을 사용 중 간혹 Script를 실행 시 ACPI Error가 발생 할 수 있다.


SUSE Linux Enterprise Server 11 Service Pack 1

Novell Open Enterprise Server 11 (OES 11) Linux

SUSE Linux Enterprise Server 11 Service Pack 2


발생 메시지 (유사 형태)

ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff888020775bc8), AE_AML_BUFFER_LIMIT

ACPI Error: SMBus or IPMI write requires Buffer of length 66, found length 32 (20110413/exfield-285)


원인 :

이 메시지는 아직 완벽히 통합 구현되지 않은 script나 application이 /sys/devices/LNXSYSTEM:00/ directory 하위의 특정 kernel ACPI 부분을 접근 시 발생


해결방법:

이 메시지는 단순 Warning 으로 시스템 운영에 영향을 주지 않으니 무시해도 된다.


- SLES11 SP2의 경우는 kernel 3.0.26-0.7.6 이후 부터 수정됨

- SLES11 SP1의 경우는 supportconfig를 실행하는 경우 발생되는 데,

   "-o SYSFS" option과 함께 실행하면 메시지가 발생 되지 않는다.

   (eg) # supportconfig -o SYSFS


   만약 supportconfig를 포함하여 만들어진 app의 경우는 실행 시 위 option을 적용하기 어렵기 때문에,

   아래 사항을 적용하면 됨.

   이 값을 적용하면 실행 시 “-o SYSFS” option을 적용할 필요가 없음.

          /etc/supportconfig.conf 생성

          # supportconfig -C


          SYSFS 파라메터 수정 (default=1 -> 0 변경)

          # vi /etc/supportconfig.conf

          OPTION_SYSFS=0


증상 확인/재현 방법:

   # find /sys/devices/LNXSYSTM\:00/ |grep ACPI000D

   # cat /sys/devices/LNXSYSTM:00/device:00/ACPI000D:00/power1_average


참조,
Frequent ACPI errors starting with SMBus or IPMI write requires Buffer of length 42
http://www.novell.com/support/kb/doc.php?id=7010449


반응형
Posted by 스쳐가는인연

댓글을 달아 주세요

  1. 감솨 ^^ 2013.09.27 15:40  댓글주소  수정/삭제  댓글쓰기

    좋은 내용이네요.... 퍼갑니다 !!

NTP 동기화 방법

SLE:~ # mv /etc/ntp.conf /etc/ntp.conf.bk << 기존 파일 백업

SLE:~ # vi /etc/ntp.conf << 신규 파일 생성 및 편집

 

# Set servers for synchronizing << NTP 서버 등록

server ntpServerAddress1

server ntpServerAddress2

 

SLE:~ # /etc/init.d/ntp start << NTP 서비스 실행

Starting network time protocol daemon (NTPD)done

SLE:~ # chkconfig ntp on

SLE:~ # ntpq p << 상태 확인

 

22.0 Time Synchronization with NTP

https://www.suse.com/documentation/sles11/book_sle_admin/?page=/documentation/sles11/book_sle_admin/data/book_sle_admin.html

 

date Command 이용 시간 설정

SLE:~ # date 01150950 << 2012 1 15일 오전 9 50

SLE:~ # date +%Y%m%d -s "20120115" << 2012 1 15

 

참고
http://www.server-world.info/en/note?os=SUSE_Linux_Enterprise_Server_11&p=ntp
http://opensuse-guide.org/command.php

http://novellkorea.co.kr/bbs/suse_doc/1604
https://www.suse.com/documentation/sles11/book_sle_admin/data/cha_netz_xntp.html
https://www.suse.com/documentation/sles11/

반응형
Posted by 스쳐가는인연
TAG ntp, sle, SuSE

댓글을 달아 주세요