CentOS4.3 OS 미러링테스트
CentOS4.3 기반 OS 미러링 테스트 에 관하여 (재원)
– 테스트결과 소프트웨어레이드에서는 강력한성능 (솔라리스SVM보다 우수함)
– 한쪽디스크가 나가도 다른쪽 디스크로 별다른 작업없이 부팅가능함
– 디스크 교체시에도 간단한 명령으로 복구가능함
작업방법
1. 제조사 및 용량이 같거나 큰 디스크를 2장(mirror) 준비한다
2. 리눅스 설치화면중 파티션관련 작업중 새로만들 파트션타입을 리눅스레이드(fd) 타입으로
맞춘후 (2개의 디스크각가) 중간메뉴에 RAID 버튼을눌러 생성된 타입(fd)을
레이드로 구성한구 마운트포인트할당 및 파티션 타입(ex: ext3)으로 만든다.. 생략
3 레이드 작업을 한후 스왑파티션은 각디스크마다 따로 설정해둔다(동일하게)
4 작업완료하고 리눅스설치한후 리부팅하였을 때 부팅화면에서 GRUB 로 멈춰있을 때
아래와 같이 굵은글씨있는부분 을 씨디롬으로 부팅하여 grub를 입력한후 타이핑한다
GRUB은 자체적으로 RAID1을 지원하지 않으므로, 모든 RAID1구성 하드드라이브에 각각 설치한다.
A. 쉘 프롬프트에서 GRUB을 실행시키면 GRUB의 쉘로 들어간다.
a. shell> grub
———————————— 설명 시작 ————————————-
레드햇리눅스은 /boot파티션을 GRUB의루트파티션으로 마운트하는 독특한 설정을 가진다.
GRUB에서의 path는 (<device-type><device-number>,<partition-number>)</path/to/file>의 형태이다.
(<디바이스 타입><디바이스 번호>)는 드라이브. 예) (hd0)
(<디바이스 타입><디바이스 번호>,<파티션 번호>)는 파티션. (hd0,0)
(<디바이스 타입><디바이스 번호>,<파티션 번호)</path/to/file>는 파일이다. 예) (hd0,0)/grub/grub.conf
SCSI에서는 sda=hd0 sdb=hd1이고, IDE에서는 hda=hd0 and hdb=hd1이다.
SCSI와 IDE가 함께 있는 경우에는 ‘device (hd0) /dev/hda’같은 명령어로 확실히 알려주는 게 좋다.
————————————- 설명 끝 ————————————–
B. 모든 RAID1 구성 하드드라이브의 마스터 부트 레코드에 GRUB을 설치하기.
a. /dev/hda1에 설치
– grub>device (hd0) /dev/hda
– grub>root (hd0,0)
– grub>setup (hd0)
b. /dev/hda2에 설치
– grub>device (hd0) /dev/hdb
– grub>root (hd0,0)
– grub>setup (hd0)
c. 두번째 드라이브(/dev/hdb)도 디바이스번호 0으로 설정한 것에 주의한다.
0번 디바이스는 마스터 부트 레코드(MBR)가 위치할 것이다.
임시로 두번째 드라이브(/dev/hdb)를 0번 디바이스로 설정했으므로,
부팅가능한 MBR을 두번째 드라이브에도 쓰게 된다.
보통 부팅할 때는 첫번째 드라이브(/dev/hda)의 MBR을 사용하게 될것이다.
첫번째 드라이브가 고장나면, 두번째 드라이브에서 부팅하게 될 것이다.
C. 모든 GRUB의 설정화일이 위치한 곳이 3군데인 것을 확인한다.
– grub>find /grub/stage1
(hd0,0) -> /newboot
(hd1,0) -> /newboot
(hd2,0) -> 기존의 /boot
D. 만약 GRUB설정화일이 기준의 /boot에만 있다면 수동으로 GRUB을 설치한다.
(설치가 잘 되었다면 건너뛴다.)
a. device (hd0) /dev/hda
b. install (hd0,0)/grub/stage1 (hd0) (hd0,0)/grub/stage2 p (hd0,0)/grub/grub.conf
c. device (hd1) /dev/hdb
d. install (hd1,0)/grub/stage1 (hd1) (hd1,0)/grub/stage2 p (hd1,0)/grub/grub.conf
e. ‘B. 모든 RAID1 구성 하드드라이브의 마스터 부트 레코드에 GRUB을 설치하기’로 되돌아가서 반복한다.
ㅂ. /etc/fstab/을 수정
A. /etc/fstab을 /etc/fstab.bak로 백업.
‘cp /etc/fstab /etc/fstab.bak’
B. /boot줄 맨 앞에 #를 넣어서 코멘트 처리한다.
C. 마운트 포인트 /newboot를 /boot로 고친다.
ㅅ. 파티션 테이블 백업
A. sfdisk -d /dev/hda > /partitions.hda
B. sfdisk -d /dev/hdb > /partitions.hdb
C. sfdisk -d /dev/sda > /partitions.sda
D. sfdisk -d /dev/sdb > /partitions.sdb
ㅇ. 디스크 고장 이후 복구
A. 파티션 테이블 복구
sfdisk /dev/hda < /partitions.hda
B. 고장난 디스크를 RAID에서 제거
mdadm /dev/md0 -r /dev/hda1
C. 새로운 디스크를 RAID에 추가
mdadm /dev/md0 -a /dev/hda1
D. 교체한 디스크가 부팅 디스크이면 GRUB을 설치한다.
a. shell> grub
b. grub> device (hd0) /dev/hda
c. grub>root (hd0,0)
d. grub>setup (hd0)
e. 부팅이 안 되면 쌍을 이루는 2개의 RAID 파티션 모두에 한다.