Archive for the Category » Solaris(솔라리스) «

sun v480 error message…

처음 에러 메시지
Dec 13 06:47:11 solaris9 picld[60]: [ID 679711 daemon.error] NOTICE: Device FAN_TRAY_0 (CPU1_FAN) OK
Dec 13 06:47:11 solaris9 picld[60]: [ID 114988 daemon.error] FSP_GEN_FAULT_LED has turned OFF
Dec 13 08:22:26 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU1_FAN) failure detected
Dec 13 08:22:28 solaris9 picld[60]: [ID 691918 daemon.error] FSP_GEN_FAULT_LED has turned ON
Dec 13 08:22:41 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU1_FAN) failure detected
Dec 13 08:22:57 solaris9 picld[60]: [ID 679711 daemon.error] NOTICE: Device FAN_TRAY_0 (CPU1_FAN) OK
Dec 13 08:22:58 solaris9 picld[60]: [ID 114988 daemon.error] FSP_GEN_FAULT_LED has turned OFF

FAN TRAY를 교체하려고 준비했을때는 아래와 같이 바뀌었음.
Jan 19 15:24:11 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU0_FAN) failure detected
Jan 19 15:24:11 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU1_FAN) failure detected
Jan 19 15:24:11 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU2_FAN) failure detected
Jan 19 15:24:26 solaris9 picld[60]: [ID 679711 daemon.error] NOTICE: Device FAN_TRAY_0 (CPU0_FAN) OK
Jan 19 15:24:26 solaris9 picld[60]: [ID 679711 daemon.error] NOTICE: Device FAN_TRAY_0 (CPU1_FAN) OK
Jan 19 15:24:26 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU2_FAN) failure detected
Jan 19 15:26:41 solaris9 last message repeated 9 times
FAN TRAY를 교체하고 (이때 FAN Tray의 fan 3개는 모두 정상적으로 돌고 있었음.) 재부팅했을때 아래와 같음.
Jan 19 15:38:59 solaris9 ntpdate[234]: [ID 558275 daemon.notice] adjust time server 10.100.88.42 offset 0.266879 sec
Jan 19 15:39:02 solaris9 xntpd[292]: [ID 702911 daemon.notice] xntpd 3-5.93e Mon Sep 20 15:47:11 PDT 1999 (1)
Jan 19 15:39:02 solaris9 xntpd[292]: [ID 301315 daemon.notice] tickadj = 5, tick = 10000, tvu_maxslew = 495, est. hz = 100
Jan 19 15:39:02 solaris9 xntpd[292]: [ID 798731 daemon.notice] using kernel phase-lock loop 0041
Jan 19 15:39:02 solaris9 last message repeated 1 time
Jan 19 15:39:04 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU2_FAN) failure detected
Jan 19 15:39:05 solaris9 picld[60]: [ID 691918 daemon.error] FSP_GEN_FAULT_LED has turned ON
Jan 19 15:39:19 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU2_FAN) failure detected
Jan 19 15:40:05 solaris9 last message repeated 3 times

일단 팬트레이를 교체해도 문제가 해결되지 않아서 더 찾아보니, picld 버그일 가능성이 있다고 한다. 패치를 찾아서 시도해 보아야 할 상황인데, 패치를 받기가 힘들다. sun이 오라클에 합병당해서

v480 디스크 교체.

운영중인 sun v480 서버의 디스크가 고장났을때, 아래와 같은 절차로 교체.
디스크는 내부 FCAL 디스크 2개이며, mirror 구성되어 있다. 때문에, 디스크 교체후 mirror를 구성해 주어야 한다.

1. 디스크의 교체(핫스왑)
먼저, iostat -en 으로 고장 디스크 확인.

—- errors —-
s/w h/w trn tot

1 0 0 0 c1t0d0
0 13 126 139 c1t1d0

luxadm으로 디스크 제거.

luxadm -e remove_device -F /dev/rdsk/c1t1d0s2
WARNING!! please ensure that no filesystem are mounted on these device(s).
All data on these devices should have been backed up.
Error: SCSI failure. – /dev/rdsk/c1t1d0s2
luxadm -e offline /dev/rdsk/c1t1d0s2
devctl: I/O error

디스크가 이미 고장이므로 luxadm이 정상작동 하지 않았다.
그래서, 그냥 디스크 빼고 새 디스크로 교체.
바로 online 메시지 나오면서 인식.
이후 mirror작업수행.

2. 미러작업 완료후, Resync 중에 시스템을 종료해야만 했다. 이후 재 부팅과정에서 문제가 발생했다.

stale databases …

single user모드로 부팅이 되며, fsck 로도 해결되지 않았음. single모드에서 아래 커맨드 수행

metadb
metadb -d /dev/dsk/c1t1d0s7

s7이 메타디바이스영역.
이후 정상 부팅후,

metadb -a /dev/dsk/c1t1d0s7

이후 metastat 로 확인해보면, resyncing되는것을 확인.
혹시나해서 검색해보니,

http://download.oracle.com/docs/cd/E19455-01/806-3205/troubleshoottasks-38/index.html

solaris lvm mirror – 스크랩

구성…

http://blog.naver.com/comki/100024647947

복구

http://www.brandonhutchinson.com/Replacing_a_disk_with_different_geometry_in_DiskSuite.html

내가 해본것.
원본디스크: c0t0d0s2 대상디스크: c0t1d0s2
원본디스크의 파티션 (7번 슬라이스는 md를 위한 공간으로 16MB잡았음)

partition> p
Current partition table (original):
Total disk cylinders available: 47994 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 root wm 352 – 27391 38.47GB (27040/0/0) 80687360
1 swap wu 0 – 351 512.88MB (352/0/0) 1050368
2 backup wm 0 – 47993 68.29GB (47994/0/0) 143214096
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 27392 – 34255 9.77GB (6864/0/0) 20482176
6 unassigned wm 34256 – 47982 19.53GB (13727/0/0) 40961368
7 unassigned wm 47983 – 47993 16.03MB (11/0/0) 32824

1. 디스크 미러 만들기
prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s – /dev/rdsk/c0t1d0s2
여기서 두 디스크의 모델이 서로 달라서 에러 발생. 이것은 두번째 문서를 참조하여, 같은 모델로 설정함.
format -> disk -> 1 -> type -> …..
디스크 파티션은 아래와 같음
/dev/dsk/c0t0d0s1 – - swap – no -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no -
/dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /oracle ufs 2 yes -
/dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /oradata ufs 2 yes -
swap – /tmp tmpfs – yes -
작업내용
metadb -a -f -c 2 /dev/dsk/c0t0d0s7 /dev/dsk/c0t1d0s7
metainit -f d10 1 1 c0t0d0s0
metainit -f d20 1 1 c0t1d0s0
metainit d0 -m d10
metaroot d0
lockfs -fa
metainit -f d11 1 1 c0t0d0s1
metainit -f d21 1 1 c0t1d0s1
metainit d1 -m d11
metainit -f d 15 1 1 c0t0d0s5
metainit -f d15 1 1 c0t0d0s5
metainit -f d25 1 1 c0t1d0s5
metainit d5 -m d15
metainit -f d16 1 1 c0t0d0s6
metainit -f d26 1 1 c0t1d0s6
metainit d6 -m d16
/etc/vfstab 을 편집
/dev/md/dsk/d1 – - swap – no -
/dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no -
/dev/md/dsk/d5 /dev/md/rdsk/d5 /oracle ufs 2 yes -
/dev/md/dsk/d6 /dev/md/rdsk/d6 /oradata ufs 2 yes -
swap – /tmp tmpfs – yes -
그리고 재부팅 후 나머지 슬라이스를 메타디바이스에 추가해준다.
metattach d0 d20
metattach d1 d21
metattach d5 d25
metattach d6 d26
# metastat
d6: Mirror
Submirror 0: d16
State: Okay
Submirror 1: d26
State: Resyncing
Resync in progress: 17 % done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 40961368 blocks (19 GB)
d16: Submirror of d6
State: Okay
Size: 40961368 blocks (19 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s6 0 No Okay Yes
d26: Submirror of d6
State: Resyncing
Size: 40961368 blocks (19 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s6 0 No Okay Yes
d5: Mirror
Submirror 0: d15
State: Okay
Submirror 1: d25
State: Resyncing
Resync in progress: 79 % done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 20482176 blocks (9.8 GB)
d15: Submirror of d5
State: Okay
Size: 20482176 blocks (9.8 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s5 0 No Okay Yes
d25: Submirror of d5
State: Resyncing
Size: 20489378 blocks (9.8 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s5 0 No Resyncing Yes
d1: Mirror
Submirror 0: d11
State: Okay
Submirror 1: d21
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 1050368 blocks (512 MB)
d11: Submirror of d1
State: Okay
Size: 1050368 blocks (512 MB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s1 0 No Okay Yes
d21: Submirror of d1
State: Okay
Size: 1051466 blocks (513 MB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s1 0 No Okay Yes
d0: Mirror
Submirror 0: d10
State: Okay
Submirror 1: d20
State: Resyncing
Resync in progress: 0 % done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 80687360 blocks (38 GB)
d10: Submirror of d0
State: Okay
Size: 80687360 blocks (38 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s0 0 No Okay Yes
d20: Submirror of d0
State: Resyncing
Size: 80687360 blocks (38 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s0 0 No Okay Yes

2. dd로 두번째 디스크 에러 유발
dd if=/dev/zero of=/dev/dsk/c0t1d0s2
이후, prtvtoc로 두번째 디스크의 파티션을 재 설정하고, 각각의 서브미러를 replace해준다.
metareplace -e d5 c0t1d0s5
metareplace -e d6 c0t1d0s6
metareplace -e d0 c0t1d0s0
metareplace -e d1 c0t1d0s1
만약 제대로 수행이 안된다면, 메타디바이스에서 분리(metadetach)후, 삭제(metaclear)하고, 다시 만들어줌(metainit)
metadetach -f d0 d20
metaclear d20
metainit -f d20 1 1 c0t1d0s0

netservices

solaris10에서  불필요한 네트워크 서비스를 제한할 수 있는 커맨드

netservices [open | limited]

open이면 모든 네트워크 서비스들이 열리고, limited로 하면, nfs같은 사용안하는 서비스는 열리지 않음.

관련커맨드는, svcadm, svccfg등..

solaris /etc/system 설정.

/etc/system화일은 커널변수를 변경할때 사용하는 화일이다.

/etc/system 파일에서 변수로 사용 되는 것들
- moddir 변수는 부팅되는 시간에 로드되는 모듈의 탐색 경로를 수정
- exclude 변수는 참조되는 모듈들을 배제할 때 사용
- rootdev 변수는 교체될 루트 장치를 결정할 때 사용
- variable = value 는 커널 매개변수의 기본으로 지정

* 스택상에서 프로그램 실행되는것을 방지하는 방법
set noexec_user_stack = 1
set noexec_user_stack_log = 1         #로그에 남도록 설정

* session time out 설정
set swip :tcpidletimeout=200

* 텔넷의 동시접속자 수 제한
set pt_cnt=100
set npty=100

dtrace에 관한 글…

dtrace가 솔라리스10의 회심의 역작이라지만,  그 개념 말고는 별로 아는게 없다.

오늘 http://sdnkorea.com/blog/641에서 그 실 사용 예를 보았다.

dtrace를 실행하는 것이 문제가 아니라, 그 실행 결과물을 해석하는것. 역시 해석이 어려운거다.

solaris10 SMF

solaris10을 사용하면서 아직도 익숙하지 않은것 중의 하나가  SMF다. 개념은 알겠는데, 도대체 새로 컴파일한 프로그램을 어떻게 등록해야 할지 막막하다. 특히,  최근에 apache2, tomcat을 설치했는데, 이것을 SMF에 등록하려니 엄두가 안난다.

SMF가 모든 서비스를  관리 하겠다는 것 같다. 그런데, 새로운 서비스를 등록하려면???

문서를 찾아본 결과는 좀 복잡했다. 게다가 설정을 xml로 하는듯 해서 그냥 포기한 상태다. 그러던 중 오늘 우연히, 정말로 우연히 apache2를 SMF에 등록하는 문서를 보게되었다. 물론, 하나하나 자세하게 설명되어 있는것은 아니지만, 그냥 한번 따라해 보기에는 적당한듯 하다.

아래에 링크를 적어 놓는다.

http://CecilDesK.egloos.com/tb/4414991

따라해 보니 잘 된다. 시간 날때, tomcat의 catalina.sh를 가지고 도전해 봐야 겠다.

sun studio…

sun studio도 다운로드하여 사용가능하게 됨에 따라서 mysql5.0을 테스트로 컴파일해 보았다.

환경은 Solaris 10, SunStudio 12.

export PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/lib
export CC=cc
LD_LIBRARY_PATH=/usr/lib

위와이 환경을 잡아 놓고 cc로 컴파일

마지막에 워닝…

    ld: warning: file /usr/sfw/lib/libstdc++.so: attempted multiple inclusion of file

설치하니 잘 작동한다.

solaris10 oracle10g설치

운영환경: Solaris10, 127127-11,

오라클 화일:  10gr2_db_sol.cpio.gz

oracle 계정관련: id: oracle, group: dba

.profile의 내용(bash 쉘)

export ORACLE_BASE=/oracle;
export ORACLE_HOME=/oracle/product/10gr2;
export ORACLE_SID=fox;
export ORACLE_OWNER=oracle;
export ORACLE_PATH=$ORACLE_HOME/bin;
export ORACLE_DOC=$ORACLE_HOME/ocommon/nls/admin/data;

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib;
PATH=$PATH:/usr/ccs/bin:/usr/sfw/bin:/usr/local/bin:$ORACLE_HOME/bin:$ORACLE_HOME/network/admin;
export PATH;
LANG=c;

oracle 계정으로 로그인한후 runInstaller를 실행시킨후 진행하면 됨. 데이타베이스생성은 나중에 한다.

오라클 설치후, 데이타베이스를 생성하기위해서 아래의 명령을 실행 

oracle$ $ORACLE_HOME/bin/dbca

out of memory 에러. 커널 파라메터를 수정한다. (/etc/system 화일에 다음의 내용을 추가)

set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=256
set semsys:seminfo_semmni=100
set semsys:seminfo_semvmx=32767
set noexec_user_stack=1

커널파라메타 설정후 재부팅을 한다. 이후, 데이타베이스생성은 에러없이 진행되었다.

리스너 생성은 netca 를 이용한다.

zfs 사용기?

오랫동안 사용하던 E450이 문제가 있어서 수리를 하면서, 그동안 사용하던 solaris9를 solaris10으로 다시 설치했다. disksuit로 구성을 하려다가 오래전에 본 비디오가 생각나서 zfs로 구성을 해 보기로 했다.

개념은 굉장히 간단하며, 사용방법 또한 metadb를 구성하는 것보다 간단하다. 하지만, 아직 확실한 개념 정립이 되지 않아서…

more »

Bad Behavior has blocked 31 access attempts in the last 7 days.