HP rp시리즈에서 mirror(lv-copy) 된 디스크 교체 : replace disk in mirror vg
2016.05.18 02:36
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
HP rp시리즈에서 mirror(lv-copy) 된 디스크 교체
[ 시나리오 ]
HP rp 시리즈 서버에서
/dev/dsk/c2t0d0 , /dev/dsk/c2t1d0 디스크 2개로 mirror vg 가 구성되어 있는 상태에서
두번째 디스크 /dev/dsk/c2t1d0 에서 Fail이 발생한 경우
[ 작업절차 ]
1. Fail이 발생한 디스크를 vg로 부터 제거
2. 물리디스크 교체
3. 다시 mirror vg 를 구성
1. Fail이 발생한 디스크를 vg로 부터 제거
1) lv에서 Fail이 발생한 디스크를 제거(lvreduce)
- 전체 lv 리스트 확인
# vgdisplay -v vg00 | grep "LV Name"
LV Name /dev/vg00/lvol1
LV Name /dev/vg00/lvol2
LV Name /dev/vg00/lvol3
LV Name /dev/vg00/lvol4
LV Name /dev/vg00/lvol5
LV Name /dev/vg00/lvol6
LV Name /dev/vg00/lvol7
위 7개의 모든 LV 들에게서 물리디스크를 제거해야 함.
- VG 구성 확인
# strings /etc/lvmtab
# lvdisplay -v -k /dev/vg00/lvol3
- LV로부터 물리디스크를 분리
# lvreduce -m 0 /dev/vg00/lvol7 /dev/dsk/c2t1d0
# lvreduce -m 0 /dev/vg00/lvol6 /dev/dsk/c2t1d0
# lvreduce -m 0 /dev/vg00/lvol5 /dev/dsk/c2t1d0
# lvreduce -m 0 /dev/vg00/lvol4 /dev/dsk/c2t1d0
# lvreduce -m 0 /dev/vg00/lvol3 /dev/dsk/c2t1d0
# lvreduce -m 0 /dev/vg00/lvol2 /dev/dsk/c2t1d0
# lvreduce -m 0 /dev/vg00/lvol1 /dev/dsk/c2t1d0
2) VG 에서 물리디스크를 분리(vg reduce)
- 현재 상태 확인
# vgdisplay -v /dev/vg00
: 여기서 -Cur PV- 의 값과 -Act PV-값을 확인한다. 두가지 값이 일치해야 함
- VG로부터 물리디스크 분리
# cp /etc/lvmtab /etc/lvmtab.old
# vgreduce /dev/vg00 /dev/dsk/c2t1d0
확인
# vgdisplay -v /dev/vg00
# lvdisplay -v /dev/vg00/lvol1
- lvmtab reconfig
# vgscan -v
: /etc/lvmtab file을 다시 생성한다.
# lvlnboot -R
또는
# lvcfgbackup /dev/vg01
2. 물리디스크 교체
1) Fail 이 발생한 두번째 디스크를 교체
2) 기존 special file을 제거
(H/W path 확인)
# ioscan -fnkC disk
disk 1 0/1/1/0.0.0 sdisk CLAIMED DEVICE MAXTOR ATLAS10K4_146SCA
/dev/dsk/c2t0d0 /dev/dsk/c2t0d0s2 /dev/rdsk/c2t0d0 /dev/rdsk/c2t0d0s2
/dev/dsk/c2t0d0s1 /dev/dsk/c2t0d0s3 /dev/rdsk/c2t0d0s1 /dev/rdsk/c2t0d0s3
disk 2 0/1/1/0.1.0 sdisk CLAIMED DEVICE MAXTOR ATLAS10K4_146SCA
/dev/dsk/c2t1d0 /dev/rdsk/c2t1d0
(제거)
# rmsf -H 0/1/1/0.1.0
3) 교체한 디스크 재인식
(reconfigure)
# ioscan -fnC disk
(special file 생성)
# insf -e -C disk
3. 다시 mirror vg 를 구성
1) PV 생성
# pvcreate -B -f /dev/rdsk/c2t1d0
2) root disk 미러
# vgextend /dev/vg00 /dev/dsk/c2t1d0
# strings /etc/lvmtab
# mkboot /dev/dsk/c2t1d0
# mkboot -a "hpux -lq(0/1/1/0.1.0)/stand/vmunix" /dev/dsk/c2t1d0
# lvextend -m 1 /dev/vg00/lvol7 /dev/dsk/c2t1d0
# lvextend -m 1 /dev/vg00/lvol6 /dev/dsk/c2t1d0
# lvextend -m 1 /dev/vg00/lvol5 /dev/dsk/c2t1d0
# lvextend -m 1 /dev/vg00/lvol4 /dev/dsk/c2t1d0
# lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c2t1d0
# lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c2t1d0
# lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c2t1d0
- 미러링중 모니터링 스크립트(잘 되고 있는지 얼마나 걸리는지 궁금하니까)
# vi view_progress.sh
while [ 0 ] ;
do
LIST=7
while [ ${LIST} -ne 0 ];
do
echo "/dev/vg00/lvol${LIST} : \c"
lvdisplay -v /dev/vg00/lvol${LIST} | grep -i stale | grep -v "LV Status" | wc -l
LIST=`expr ${LIST} - 1`
done
sleep 10
clear
done
# ./view_progress.sh
3) 변경사항 저장 및 부팅순서 재설정
# lvlnboot -R
- 부팅가능하도록 설정
# setboot
# setboot -p 0/1/1/0.0.0
# setboot -a 0/1/1/0.1.0
# setboot
Primary bootpath : 0/1/1/0.0.0
Alternate bootpath : 0/1/1/0.1.0
Autoboot is ON (enabled)
매우 유용한 정보 입니다. 고맙습니다.