DRBD Network Mirroring (http://www.drbd.org/)
OS Version : CentOS5.2
drbd란? => 노드가2개인 HA일경우 (2개의 서버 모두 같은 데이터를 네트워크 미러링을 통해서 저장)
동작순서
2대의 서버가 primary,secondary로 설정.
primary의 로컬에 data저장후 =>
/dev/sdb1에 저장 => drbd(/dev/drbd0장치)저장.
secondary drbd에
저장후 => /dev/sdb1에 저장됨.
설치법
http://rpm.pbone.net/index.php3/stat/26/dist/43/size/352769/name/drbd82-8.2.6-1.el5.centos.src.rpm 다운받은뒤 rpm설치,
yum install kmod-drbd82
1.rpm -Uvh drbd82-8.2.6-1.el5.centos.src.rpm (파일명)
cd
/usr/src/redhat/SPECS/밑에 파일생성 된것 확인.
rpmbulid --ba 파일명(rpm 파일생성)
cd
/usr/src/redhat/RPMS/i386 이동후 => rpm -Uvh 파일명.i386.rpm(만든파일 rpm 설치)
하드디스크 추가후 => fdisk /dev/sdb 파티션 분할.
partprobe 새로 생성한 파티션 인식시키기.
2. drbd.conf 설정
최초
/etc/drbd.conf에는 아무것도 설정안되어 있음.
cp /usr/share/doc/drbd82-8.2.6/drbd.conf /etc/drbd.conf 파일복사
불필요한행 470줄은
삭제후 resource3부터 변경해서 설정.
resource drbd1 { (drbd1=> 디바이스 장치명)
protocol C;
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error
detach; }
syncer {
}
on node1 { (node1
primary 호스트명)
device /dev/drbd1; (디바이스명)
disk /dev/sdb2; (디스크명)
address 10.10.24.14:7791; (primary
ip)
meta-disk internal; (node1,node2 동일하게 internal로 맞출것)
}
on node2 {
device /dev/drbd1;
disk /dev/sdb2;
address 10.10.25.14:7791;
meta-disk internal;
}
}
vi /etc/hosts(node1,node2 서버 hosts 파일 설정을 해야 각서버로 접근허용됨.)
10.10.24.14 node1
10.10.25.14 node2
3. 디바이스 생성(primary,secondary
2대모두설정)
drbdadm create-md drbd0
service drbd start (서비스
시작)
cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash:
3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-i386-build,
2008-10-03 11:42:32
1: cs:SyncSource st:Secondary/Secondary(두대모두 Secondary
보이면됨) ds:UpToDate/Inconsistent C r---
ns:616164 nr:0 dw:4
dr:616305 al:0 bm:37 lo:0 pe:0 ua:0 ap:0
oos:224312
[=============>......] sync'ed: 73.8% (224312/840472)K
(sync 동기화 진행중)
finish: 0:06:13 speed: 416 (320) K/sec
# primary 서버설정
4.
drbdsetup /dev/drbd0 primary -o 설정
cat /proc/drbd 확인시 1: cs:SyncSource
st:Primary/Secondary (앞쪽에 Primary 보이면됨)
Secodary 서버는
st:Secondary/Primary (이렇게 보이면됨)
5. 파일시스템 생성 및 마운트
mkfs -t
ext3 /dev/drdb0
mount /dev/drbd0 /drbd 마운트 걸어서 사용
df -h 마운트
설정확인.
# test진행
1. 기존 마운트 설정된
/drbd 폴더이동 => touch aa.txt bb.txt 테스트 파일 생성.
2. umount (마운트 해제후) =>
service drbd stop(두대모두 차례대로 종료)
3. mkdir test 폴더 생성후 => mount /dev/sdb2
/test 폴더에 마운트
4. 2대의 서버 모두 ls -al /test 폴더에 aa.txt,bb.txt 파일 있으면 정상!
[출처] DRBD Network Mirroring |작성자 ckwnan