mdadm(softraid) 환경에서 문제 발생시 복구 방법

mdadm(softraid) 환경에서 문제가 발생된 disk 에 대하여 add/remove 는 일반적으로
가이드하는 방법이다.
Link : http://blog.seabow.pe.kr/?p=413

그리나 이번에 mdadm(softraid) 환경에서 색다른 경험을 하게 되었다.
복구 방법 이랄까?

아무리 찾아봐도 자세한 내용을 찾기 힘들었다. ( 실력이 부족한거 인정… )
해당 device 에 구성되어있던 LVM 이 전혀 인식이 안 됨…ㅠㅠ

그러던중 softraid 로 구성했던 device 에 대한 metadata 가 살아 있는지 여부도 궁금했으므로
아래의 명령어로 확인을 해 보았다.

mdadm --examine /dev/sd[a-z] 

-E, –examine
Print contents of the metadata stored on the named device(s).
Note the contrast between –examine and –detail. –examine
applies to devices which are components of an array, while
–detail applies to a whole array which is currently active.

ex)

/dev/sdi1:
 Magic : a92b4efc
 Version : 0.90.00
 UUID : 907371f9:451d1714:3017a5a8:c86610be
 Creation Time : Fri Aug 19 14:58:28 2016
 Raid Level : raid1
 Used Dev Size : 2490176 (2.37 GiB 2.55 GB)
 Array Size : 2490176 (2.37 GiB 2.55 GB)
 Raid Devices : 12
 Total Devices : 2
Preferred Minor : 0

 Update Time : Tue Aug 23 15:50:34 2016
 State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 10
 Spare Devices : 0
 Checksum : 26d4efbf - correct
 Events : 91742


 Number Major Minor RaidDevice State
this 0 8 129 0 active sync /dev/sdi1

 0 0 8 129 0 active sync /dev/sdi1
 1 1 8 145 1 active sync /dev/sdj1
 2 2 0 0 2 faulty removed
 3 3 0 0 3 faulty removed
 4 4 0 0 4 faulty removed
 5 5 0 0 5 faulty removed
 6 6 0 0 6 faulty removed
 7 7 0 0 7 faulty removed
 8 8 0 0 8 faulty removed
 9 9 0 0 9 faulty removed
 10 10 0 0 10 faulty removed
 11 11 0 0 11 faulty removed

해당 device 의 metadata 가 살아 있다는걸 확인하고 device 에 대한 active 를 시도 한다.

mdadm --assemble /dev/mdX /dev/sdX1

/dev/mdX – softraid 로 구성된 md device 이름
/dev/sdX1 – softraid 로 구성된 md device 의 실제 scsi device 명과 파티션 넘버

ex)

mdadm --assemble /dev/md3 /dev/sda5

기존에 구성된 /dev/md3 의 /dev/sda5 에 대하여 softraid 가 활성화 된다.
그리고 위에서 언급했던 LVM 도 Enable 되었으며 Active 와 함께 Data 도 보이기 시작.

softraid 를 자주 쓸 기회가 없어서 찾아보지 않았던 내용 이었지만 이번 기회에 확인하게 되었다.

참고 자료 : 
Link : https://raid.wiki.kernel.org/index.php/RAID_setup
Link : https://raid.wiki.kernel.org/index.php/RAID_Recovery

RHEL6, xwindows-Places-Connect to Server-Windows Share ( 윈도우 공유 ) 메뉴가 안 보일경우?

pic1

위에 보이는 것처럼 Windows Share ( 윈도우 공유 ) 기능이 보이지 않는다.

pic2

그 이유는 gvfs-smb 패키지가 설치되지 않아서 이며, 해당 패키지를 설치하고 Xwindows 를 재 시작
하면 보통 메뉴가 활성화 된다.

pic3

패키지 설치 완료~!

pic4

메뉴 활성화~!

끝…

 

RHEL(CentOS) /sbin/init 파일을 못 찾고 부팅이 안 될경우?

RHEL(CentOS) 환경에서 운영중 갑자기 kernel panic 이 발생하고 부팅이 안 되는경우?
그리고 만약 시스템 파일이 유실  되었다면 어떻게 추적할까?

 

  1. OS CD 를 이용하여 rescue mode 진입 ( continue mode )
    또는 skip mode 로 진입하여 /mnt/sysimage 를 “/” 으로 하여 마운트를 진행
    ex)
    /mnt/sysimage
    /mnt/sysimage/boot
    /mnt/sysimage/tmp
  2.  rpm 명령을 이용하여 점검
    #rpm –root=/mnt/sysimage -Va > /tmp/rpm_va.txt
    해당 명령어상의 “missing” 체크
  3. 위의 “missing” 으로 표시된 파일들 restore 진행 또는 동일한 시스템의 파일을 복사하여
    restore 진행

    참고 :
    Link : https://access.redhat.com/solutions/29892
    Link : https://access.redhat.com/solutions/63257

awk 에서 if 문 사용하여 특정 컬럼의 특정 값 찾아내기

awk 환경에서 if 문을 사용하여 특정 값을 뽑아낼 수 있다.

ex) 아래와 같은 ps 결과에서 사용자가 “www-data” 인 값을을 뽑아내기

#ps -ef
www-data 17505 826 0 16:07 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 17524 826 0 16:07 ? 00:00:00 /usr/sbin/apache2 -k start
root 17545 515 0 16:07 ? 00:00:00 sshd: root@pts/1
root 17547 17545 0 16:07 pts/1 00:00:00 -bash
www-data 17667 826 0 16:09 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 17816 826 0 16:13 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 17837 826 0 16:14 ? 00:00:00 /usr/sbin/apache2 -k start

 

@ awk 에 if 문을 사용하여 “www-data” 사용자 프로세스 를 출력하는 방법

# ps -ef|awk ‘{if ($1==”www-data”)print}’
www-data 1615 826 0 00:00 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 17466 826 0 16:03 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 17524 826 0 16:07 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 17667 826 0 16:09 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 17816 826 0 16:13 ? 00:00:00 /usr/sbin/apache2 -k start

 

awk 에 if 문을 이용하면 process 상태가 “D” stat 인 프로세스를 찾을때도 유용하다.

참고 : https://goo.gl/zH4qrZ

RHEL7(CentOS7) 에서 Oracle 11gR2 설치시 발생하는 문제?

간만에 RHEL7 에 Oracle 11gR2 를 설치하다가 발생된 문제점을 정리 함.

 

1. RHE7 Packages : ( 패키지가 기본 미디어에 포함되어 있지 않음 )
glibc-static, compat-libstdc++ – optional channel <== 해당 채널에서 다운로드

 

2. runInstaller 설치 과정에서 중단되는 문제

INFO: liblist`

INFO: /lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'
collect2: error: ld returned 1 exit status

INFO: make: *** [ctxhx] Error 1

INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make

solution :
아래의 내용 실행

# Fix ctx/lib/ins_ctx.mk
 
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
 
cat << __EOF__ > /tmp/memcpy_wrap.c
#include 
#include 
 
asm (".symver wrap_memcpy, memcpy@GLIBC_2.14");
void *wrap_memcpy(void *dest, const void *src, size_t n) {
return memcpy(dest, src, n);
}
__EOF__
 
if [[ -e "${ORACLE_HOME}/ctx/lib/ins_ctx.mk" ]]; then
sed -i -e 's/\$(INSO_LINK)/\$(INSO_LINK) -Wl,--wrap=memcpy_wrap \$(ORACLE_HOME)\/ctx\/lib\/memcpy_wrap.o/g' ${ORACLE_HOME}/ctx/lib/ins_ctx.mk
gcc -c /tmp/memcpy_wrap.c -o ${ORACLE_HOME}/ctx/lib/memcpy_wrap.o && rm /tmp/memcpy_wrap.c
fi

link : http://www.uxora.com/oracle/dba/23-oracle-installation-errors-and-fixes

(RHEL)sosreport 실행시 iptables(nf_conntrack) 룰이 활성화 되는 문제

문제 :
RHEL6 에서 sosreport 를 실행 시킬경우 iptables 이 활성화 되면서 최악의 경우엔 /var/log/messages 파일
에아래와 같은 메시지가 발생.

내용 : 

“nf_conntrack: table full, dropping packet” <== 해당 메시지

위 메시지로만 보면 nf_contrack table 이 Full 이 되어 packet drop 이 발생된다는 내용으로
사용자는 iptables 를 활성화 한 적이 없으나? 

왜? iptables 이 활성화 되고 “nf_conntrack: table full, dropping packet” 메시지가 발생 되는지?

이해하기 힘들 것이다.

관련 내용을 찾아 보던 중 RHE6.4 에서 관련 Bug 가 확인 되었다.
Link : https://bugzilla.redhat.com/show_bug.cgi?id=980390

 RHEL6.4 환경에서 openswan 패키지가 설치되어 있고 sosreport 를 실행하게되면
sosreport 의 openswan plugin 이 실행 되면서 iptables 이 활성화 되는 문제점.

관련 내용은 위의 bugzilla 를 참고.

해결 발법 : 

1. openswan 패키지 삭제 
해당 패키지가 설치되어 있는 환경에서 sosreport 실행될때 iptables 작동으로 인한 nf_conntrack 모듈이 활성화 됨.
 
방법 : 
# rpm -e openswan-xxx
 
*) 해당 시스템에서 해당 패키지 사용 여부 확인 후 조치 필요
 
2. sos 패키지 업데이트
 
위 버그에 의해서 openswan 이 설치되어 있는 환경에서 sosreport 를 수행하게되면 iptables 가 작동되어 nf_conntrack 모듈이 활성화 됨.
 
방법 : 
# rpm -Uvh sos-xxx.rpm
 
3. /etc/sos.conf 상에 openswan plugin 비 활성화
sosreport 수행할 때 openswan plugin 을 수행하지 않도록 조치
 
방법 : 
# vi /etc/sos.conf

[plugins]
disable = <pluginA>, <pluginB>, <pluginC>
확인 :
# sosreport --list-plugin
 
4. nf_conntrack 모듈을 blacklist 처리
 
해당 모듈을 지속적으로 활성화 되지 않도록 조치
 
 

# vi /etc/modprobe.d/blacklist.conf

 
~~~ 생략
install nf_conntrack /bin/false  <=== 끝에 추가
 
관련 KBase 는 다음과 같습니다.
 
How do I blacklist a kernel module to prevent it from loading automatically?

RHCS, Error storing oracledb: Duplicate  로그 발생?

RHEL5,6 기반에 RHCS 서비스 데몬을 시작 하면서 아래와 같은 로그가 발생된다?

Error storing oracledb: Duplicate

이유가 뭘까?

이유는 /usr/share/cluster 디렉토리에 있었다.

Link : https://access.redhat.com/solutions/21663

내용을 보면 위 디렉토리에 중복된 스크립트가 포함되어 있어서 발생된 로그다.

ex)

oracledb
oracledb.bak
oracledb.bak.orig

문제된 파일을 삭제하거나 다른곳으로 옮겨야 한다.

ethtool 설정을 지속적으로 ethX, bondX, brX 에 적용 시키려면?

튜닝 혹은??? 여러가지 설정을 할때 ethtool 명령을 사용하게 된다.

그런데… ethtool 옵션에 대하여 rebooting 을 할때? 혹은 network restart 할때도 적용 시키고
싶을땐 어떻게 해야될까?

찾아보니??? 아래와 같은 방법이 있더라는…

우선 network 서비스 스크립트를 확인 해 볼 필요가 있다.

file : /etc/sysconfig/network-scripts/ifup-eth ( CentOS7.2 기준 )

    335 exec /etc/sysconfig/network-scripts/ifup-post ${CONFIG} ${2}

 CentOS7.2 버전의 경우 335번째 라인에 위와 같은 내용이 포함되어 있다.

ifup-post 를 호출하는??? 

그럼 ifup-post 에 어떤 내용이 들어 있을까?

file : /etc/sysconfig/network-scripts/ifup-post ( CentOS7.2 기준 )

    101 # Notify programs that have requested notification
    102 do_netreport
    103 
    104 if [ -x /sbin/ifup-local ]; then
    105     /sbin/ifup-local ${DEVICE}
    106 fi

엇??? Default 로는 ifup-local 파일이 없는뎅?

심지어 실행까지 하네???

여기서 확인해볼 내용은 아래의 Red Hat 문서 되시겠다.

Link : https://access.redhat.com/solutions/8694 ( RHN ID 필요 )

해당 문서에는 이렇게 언급되어 있다.

네트워크가 ifup 되고 스크립트 또는 프로그램을 실행 시키고 싶을땐 어떻게 하나요?

그렇다… ifup-local 파일은 이런 이유로 사용 될 수 있다.

파일의 예제는 아래처럼?

#!/bin/bash
if [ "$1" == "bond0" ]; then
  /sbin/ethtool -G eth0 rx 1024 tx 1024
  /sbin/ethtool -G eth1 rx 1024 tx 1024
fi

위 예제는 bond0 인터페이스의 slave 인터페이스인 eth0, eth1 에 대한 rx, tx  링 버퍼 사이즈 값을
설정 한 예제이다.

여기에 설정을 하면 network 인터페이스가 ifup 되면서 ifup-local 파일도 함께 실행 시켜줄 것이다.

끝.

1 2 3 105