[클러스터] DRBD란 .. 0.8.x 대
DRBD/QuickStart ¶
1.2 소개 ¶
1.3 DRBD 란 ¶
보통 DRBD는 HA-Cluster 시스템의 HeartBeat을 통해 제어 되는 것이 일반적 사용 방법이지만 8.0.x대 버전으로 넘어 오면서 OCFS2, GFS,…등 HA-Cluster에서의 확장된 기능이 추가 되었다. 이문서에서는 다루진 않겠지만 추후에 DRBD+OCFS2-HOWTO문서를 만들 것이다.
1.4.1 구현 환경 ¶
- vmware
- redhat enterprise 4 (update5) Linux Kernel 2.6.9
- vmware을 이용하여 RHEL-4.5을 두번 설치한다.(한번 설치 후 복사하여 사용해도 뭐…)
- 주의 할 점은 컴파일 할 수 있는 환경과, LVM 을 사용 하여도 무관 하지만, 필자의 경우 미러링 할 HDD장치를 별도 추가 하였다. 그것이 편하므로..
===============================================================
| |
| 192.168.0.10:eth0 eth0:192.168.0.11 |
| /————-\ |
| ==================== ==================== |
| | Linux Box Master | | Linux Box Slave | |
| | | | | |
| | | | | |
| | | | | |
| ==================== ==================== |
| \————-/ |
| 10.1.1.0.31:eth1 eth1:10.1.1.32 |
| hosts: cnode1 hosts: cnode2 |
| |
===============================================================
1.4.2 소프트웨어 다운로드 ¶
- DRBD : http://www.drbd.org/download.html
- Browse the list : http://www.linbit.com/support/
- User-guide : http://www.drbd.org/users-guide/index.html
- 버전 : 8.2.4 버전
- 다운로드 : http://oss.linbit.com/drbd/8.2/drbd-8.2.4.tar.gz
- ※ 8.x.x대 버전을 살펴 볼때 업데이트가 되면서 기능이 추가되는 것이 있다. 이버전에서는 간단한 테스트 목적이므로 디테일한 사항에 대해선 웹사이트를 참조 바란다.
1.5 설치 ¶
- 필자는 소스를 가지고 rpm으로 만들었다. 위 “Browser the list”항목에 rpm 소스를 직접 다운들 받아도 상관없고, rpm빌드 작업이 안된 리눅스같은 경우는 컴파일을 하면 된다.
- 아래 [“작업 서버 Master & Slave“] 이란 표시는 위에 구성된 서버 둘다 작업을 해야 된다는 것이다.
작업 서버 [Master & Slave]
===================================================================================
[root@localhost ~]# cd /tmp
[root@localhost tmp]# wget http://oss.linbit.com/drbd/8.2/drbd-8.2.4.tar.gz ./
[root@localhost tmp]# tar zxvf drbd-8.2.4.tar.gz -C /usr/local/src
[root@localhost tmp]# cd /usr/local/src/drbd-8.2.4/
[root@localhost src]# make rpm
…
(if completed)…
[root@localhost src]# cd dist/RPMS/i386/
[root@localhost i386]# ls -all
-rw-r–r– 1 root root 136485 Mar 17 09:40 drbd-8.2.4-3.i386.rpm
-rw-r–r– 1 root root 225904 Mar 17 09:40 drbd-debuginfo-8.2.4-3.i386.rpm
-rw-r–r– 1 root root 829769 Mar 17 09:40 drbd-km-2.6.9_55.ELsmp-8.2.4-3.i386.rpm
[root@localhost i386]# rpm -ivh drbd-*
- DRBD가 사용하는 환경 설정 파일은 /etc/drbd.conf 이다.(man 5 drbd.conf)
- 필자는 우선 man 5 drbd.conf의 샘플 config 파일을 사용하겠다.(무수히 많은 옵션들은 바로 바로 좌절로 돌아올 수 있으니 기본 기능을 맛을 보고 넘어가자 )
- 환경 설정 파일 만들기
작업 서버 [Master & Slave]
===================================================================================
[root@localhost ~]# vi /etc/drbd.conf
global { usage-count yes; }
common { syncer { rate 10M; } }
resource r0 {
protocol C;
net {
cram-hmac-alg sha1;
}
on cnode1 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.1.1.31:7789;
meta-disk internal;
}
on cnode2 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.1.1.32:7789;
meta-disk internal;
}
}
[root@localhost ~]# _
- HOSTNAME 변경
- drbd.conf의 r0의 “cnode1″은 “uname -n”을 했을 경우의 값과 동일 해야 된다.
작업 서버 [Master]
===================================================================================
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=cnode1
GATEWAY=192.168.0.250
[root@localhost ~]# reboot
…
[root@cnode1 ~]# _
작업 서버 [Slave]
===================================================================================
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=cnode2
GATEWAY=192.168.0.250
[root@localhost ~]# reboot
…
[root@cnode2 ~]# _
- cnode1 와 cnode2를 각 /etc/hosts에 등록한다.
작업 서버 [Master & Slave]
===================================================================================
[root@cnode ~]# vi /etc/host
127.0.0.1 localhost.localdomain localhost
10.1.1.31 cnode1
10.1.1.32 cnode2
[root@cnode ~]# _
- 위 환경 설정에 보면 7789의 포트를 cnode1,cnode2 사용하게 된다. 방화벽이 설정 되어 있다면 아래 와 같이 iptables 수정한다.
작업 서버 [Master]
===================================================================================
[root@cnode1 ~]# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -s cnode2 -p tcp –dport 7789 -j ACCEPT
[root@cnode1 ~]# _
작업 서버 [Slave]
===================================================================================
[root@cnode2 ~]# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -s cnode1 -p tcp –dport 7789 -j ACCEPT
[root@cnode2 ~]# _
- 양 노드간의 HDD의 메타정보를 가지고 있다. 프로그램 실행하기 전에 메타파일을 생성해야 된다.
작업 서버 [Master & Slave]
===================================================================================
[root@cnode ~]# drbdadm –create-md r0
… Create meta-data….success
[root@cnode ~]# server drbd start
작업 서버 [Master]
===================================================================================
[root@cnode1 ~]# service drbd start
……. 상대 노드(cnode2)를 무한으로 기다린다. 무시하고 “yes”를 입력하여 빠져나온다.
[root@cnode1 ~]# drbdsetup /dev/drbd0 primary (-o)
[root@cnode1 ~]# mkfs.ext3 /dev/drbd0
작업 서버 [Slave]
===================================================================================
[root@cnode2 ~]# service drbd start
[root@cnode2 ~]# cat /proc/drbd
version: 8.2.4 (api:88/proto:86-88)
GIT-hash: fc00c6e00a1b6039bfcebe37afa3e7e28dbd92fa build by root@localhost.localdomain, 2008-04-11 16:23:59
0: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r—
ns:596 nr:404 dw:1000 dr:2809 al:0 bm:8 lo:0 pe:0 ua:0 ap:0
[>……………….] sync’ed: 0.3% (523443/961240)M
finish: 14:30:08 speed: 50,236 (50,096) K/sec
[root@cnode2 ~]# _
- 위 실행 상태는 cnode1, cnode2에서 모두 확인 할 수 있다. 싱크를 맞추는 작업하는 동안 쉬자.