리눅스 pacemaker 기반의 High Availaiblity 구성방법에 대해 설명합니다. pacemaker를 사용하는 다른 리눅스 기반도 구성이 가능합니다.
Pacemaker 기반 Linux High Availability 입문용으로는 적합하지 않을 수 있습니다. Pacemaker 기반 Linux High Availability를 한 번도 설치 및 구성을 하지 않은 리눅스 관리자라면 설치 문서를 먼저 참고하십시오.
RHEL7 및 CentOS 7을 중심으로 레드햇 계열의 리눅스에 적합한 내용으로 작성되었습니다.
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를 백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이 문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수 있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
2015년 하반기에는 총 7건의 공유자료를 slideshare에 게시하였습니다.
오픈스택, pacemaker, Docker 등과 같은 클라우드 인프라 구축 기술 정보를 만나 보세요.
- 2015. 07 ~ 2016. 03사이의 크리티컬 이슈 해결방안
- 유용한 팁 정보 등의 내용
리눅스 pacemaker 기반의 High Availaiblity 구성방법에 대해 설명합니다. pacemaker를 사용하는 다른 리눅스 기반도 구성이 가능합니다.
Pacemaker 기반 Linux High Availability 입문용으로는 적합하지 않을 수 있습니다. Pacemaker 기반 Linux High Availability를 한 번도 설치 및 구성을 하지 않은 리눅스 관리자라면 설치 문서를 먼저 참고하십시오.
RHEL7 및 CentOS 7을 중심으로 레드햇 계열의 리눅스에 적합한 내용으로 작성되었습니다.
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를 백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이 문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수 있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
2015년 하반기에는 총 7건의 공유자료를 slideshare에 게시하였습니다.
오픈스택, pacemaker, Docker 등과 같은 클라우드 인프라 구축 기술 정보를 만나 보세요.
- 2015. 07 ~ 2016. 03사이의 크리티컬 이슈 해결방안
- 유용한 팁 정보 등의 내용
2011-12-08 Red Hat Enterprise Virtualization for Desktops (RHEV VDI) with Cis...Shawn Wells
Field call with Cisco on integrating Red Hat's Virtual Desktop capabilities with Cisco UCS hardware. Steps through underling virtualization technology, performance & scalability, and SPICE display protocol.
It explains virtualization technology, KVM How-To, RHEV introduction for users and engineers.
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). RHEV is based on KVM and includes Red Hat Subscription program. You can understand about virtualization in this document.
Enjoy.
Trouble shoot of Rcplex installation on WIN7 64bit(Korean)
- ERROR: cannot extract packages from 'Rcplex_0.3-3.tar.gz'
- had non-zero exit status
- ""Rcplex_0.3-3.tar.gz"' had status 1
1. 難攻不落(난공불락) 리눅스 및 오픈소스 인프라 세미나
발표자 : 이미르
2014. 04. 19
Linux Kernel Core Dump Analysis
2. Table of Content
Kernel Dump ?
분석을 위한사전준비사항 – kdump 설정, debuginfo
Introduce to Crash tool
Case 별 분석
- Memory 문제 (1개)
- Cpu stuck 문제 (1개)
- Other modules (3rd-party) 문제 (1개)
- CRASH tool 의 다양한 접근 방법
Conclusion
3. Kernel Dump ?
일반 소프트웨어에서 Segment Violation 또는 메모리 할당 오류등이 발생시,
Segment Fault 가 나며, 프로그램이 종료되는 것과 마찬가지로,
Kernel 역시 실행중 여러가지 이유로 인해,
Kernel program 이 죽을 수 있음 - Panic
Kernel 은 OS 의 핵심 Space 를 차지하기 때문에, 이와같은 Panic 상황에서
원인을 밝혀 낼 core file 이 필요.
Linux Kernel Core Dump – linux 에서는 vmcore file 이라고도 부르며,
커널의 Crash 가 발생할 경우, 발생 시점의 디렉토리아래,
Vmcore 라는 파일명의 Memory dump 파일을 생성.
4. Kernel Dump ?
Kdump / Kexec
Kernel 에서 발생한 특정 이슈에 대해서 발생시의 상황과 Memory
상태를
파일로 복사하여 문제 상황을 추적/분석 하여 추후 재발을 방지하기
위한
메카니즘.
Linux 에서는 kdump 라는 프로세스에서 kexec 라는 프로그램을 이용,
이미 예약해 둔 메모리 영역을 이용하여 임시 커널을 로드,
커널패닉이 발생했을 때, 문제된 커널의 메모리 상태를 vmcore 라는
파일 형태로 생성하는 솔루션이 제공.
6. Kernel Dump ?
출처 : Open Source Consulting Tech Blog
http://www.openseed.co.kr/blog/?p=19
7. Kernel Dump ?
How to configure to Kernel Dump
1. Kexec-tools 패키지 필요.
2. grub.conf 에 crash kernel 을 위한 parameter 설정 필요. (리부팅 필요)
3. kernel dump file 을 저장하기 위한 충분한 저장공간.
* crashkernel = kernel crash 때, kdump 및 kexec 에서 상태캡쳐를 위해
사용될 공간을 설정하는 boot parameter
title Oracle Linux Server (2.6.32-400.34.3.el5uek)
root (hd0,0)
kernel /vmlinuz-2.6.32-400.34.3.el5uek ro root=/dev/mapper/VolGroup00-LogVol00 crashkernel=400M@64M
numa=off clocksource=hpet elevator=noop console=tty0 console=ttyS0,115200
initrd /initrd-2.6.32-400.34.3.el5uek.img
title Oracle Linux Server (2.6.18-371.6.1.0.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-371.6.1.0.1.el5 ro root=/dev/mapper/VolGroup00-LogVol00 crashkernel=400M@64M
numa=off clocksource=hpet elevator=noop console=tty0 console=ttyS0,115200
initrd /initrd-2.6.18-371.6.1.0.1.el5.img
title Oracle Linux Server (2.6.18-371.4.1.0.1.el5)
8. Pre-requisite
1. 해당 커널 버젼에 맞는 Debuginfo 패키지 필요.
( debug info package 다운로드 스샷등 추가 )
2. Crash 라는 커널덤프 분석용 툴 필요.
3. 참조할 커널 코드
- 일반적으로 kernel-{version}.src 등의 패키지에서 확인 가능함.
- Web page (git)등을 통해 간단히 Diff 또는 소스코드를 직접 확인 가능.
사진 : http://lxr.free-electrons.com
Kernel Dump Analysis
9. 컴파일 시, Kernel 에 대한 debug 정보를 함께 포함하여 컴파일 한
디버깅용 패키지.
해당 패키지에서 제공되는 vmlinux 라는 파일이 커널 분석에 함께 필요함.
* redhat :
ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/x86_6
4/Debuginfo/
* centos :
http://debuginfo.centos.org/
* oracle :
https://oss.oracle.com/el5/debuginfo/
https://oss.oracle.com/el6/debuginfo/
Debuginfo ?
10. CRASH ?
* GDB 로는 커널코어, mcore, Xen 또는 S390 덤프파일들을 읽기 어려웠음.
* dumpfiles 의 포맷이 각각 조금씩 달라 분석에 어려움이 있었음.
* 거의 모든 종류의 LKCD ( Linux Kernel Core Dump ) 파일을 지원하기 위해
개발.
* Disasembly, Kernel Stack Trace, Memory trace, kernel structure & variable
등을
GDB 명령형식으로 확인 할 수 있게끔 개발됨.
Kdump 에 대한 Redhat White-paper ( web ) :
http://people.redhat.com/anderson/crash_whitepaper/
11. CRASH ?
* 주요 명령어
sys - 시스템의 일반적인 정보를 출력해 준다.
bt - Backtrace 명령. 스택의 내용들을 순차적으로 출력해준다.
ps - Process list 출력.
free - Memory 및 스왑 상태 출력.
mount - 마운트 상태 출력
irq - 각 장치의 ( irq ) 상태를 출력.
kmem - 메모리 상태 출력 ( kmalloc, valloc 등 메모리 할당 상태도 보여줌 )
log - dmesg 의 내용을 출력.
mod - 로딩된 모듈 리스트 출력.
net - Network 상태 출력.
runq - 실행중인 task 리스트 출력.
task - 작업목록 출력.
rd - 메모리 번지수에 대한 상세정보 출력.
foreach - 모든 task, process 등 디버깅 정보에 대한 상세한 출력이 가능함.
set - 설정된 주소 및 PID 등을 기본 컨텍스트로 설정.
struct - 구조화된 메모리 내부의 변수들을 출력해 준다.
files - task 가 열고있는 파일디스크립터들을 출력해준다.
12. Simple Sequence for LKCD Analysis
1. debug info 로 부터 vmlinux 추출
2. CRASH tools 을 이용한 corefile 과 vmlinux 로드.
3. 커널 로그 확인.
4. 메모리 상태 확인.
5. backtrace 를 통한 최종 stack 내용 확인
6. 최종 스택의 Return Address 의 내용을 Code 또는 Dis-Assembly 를 통해 확인.
7. 버그 정보 검색.
8. 버그일 경우 해당 패치정보 검색.
9. 알려지지 않은 버그일 경우 해당 벤더에 버그 오픈 또는 Advanced 분석 요청.
** 대부분의 커널 버그는 잘 알려져 있는 버그.
13. Case 별로 알아가는 LKCD Analysis
버그 및 Stack trace 내용에 대한 Database 를 보유하는 것이 중요하다.
이슈에 대한 분류
- Memory
- Cpu 문제
- H/W 이슈
- Other modules (3rd-party)
상위 커널 업그레이드로 해결되는 경우가 대부분이다.
Debuginfo 에서 vmlinux 추출 방법
-rpm2cpio kernel-debuginfo-{version}.x86_64.rpm | cpio -ivd
14. Case 1
상황
-Console 및 네트웍으로 전혀 접속할 수 없어 서비스도 되지 않았으나,
ping 은 가고 있던 이른바 hang up 상태의 시스템에서 시그널을 발생시켜
얻어낸 vmcore.
- 시스템 Hangup 의 원인이 밝혀져야 하는 상황.
분석과정
-file:///Case_1_memoryissue.odt
15. Case 2
상황
- 알수 없는 이유로 시스템이 백업도중 Crash.
백업을 위한 용도로 주로 사용되는 미디어 서버.
분석과정
-file:///Case_2_kernelbug.odt
16. Case 3
상황
- 시스템 Crashed. Vmcore 생성을 통한 분석요청.
분석과정
-file:///Case_3NMI_signal_partial.odt
17. Case 4
상황
- 시스템 Crashed. Vmcore 생성을 통한 분석요청.
실제 vmcore 파일을 이용한 분석 과정 재현.
18. Conclusion
커널 덤프분석으로 완벽한 원인 분석을 하는 것은 매우 어렵다.
많은 분석에 대한 Case 를 Data 로 보유하는 것이 dump 분석에 대한
노하우이다.
Stack trace 만으로 추측 할 수 있는 부분은 거의 없다.
많은 시간의 분석 시간이 소요 될 수 있으며, dump 만으로 분석하는 것 보다는,
다양한 system log 및 자료들을 이용하여 (sosreport) 병행해서 접근해야 한다.
대부분의 커널 버그는 Kernel update 로 해결된다.
- 실재 새로운 버그를 찾기는 어려우며,
- kdump 분석을 통해, 더 낫고 빠른 문제해결 또는 재발방지를 위한 방편임을
잊지 말자.
3rd-party 모듈 사용시에는 해당 vendor 의 지원이 필요하다.
( Stack 내용을 정확히 볼 수 없기 때문 )