DRBD 설정 · 5 min read · Jan 30, 2026
DRBD 8.3 제3 노드 복제와 Debian Etch
DRBD 8.3 제3 노드 복제와 Debian Etch
DRBD 8.3 + Debian Etch 설치 및 설정 가이드
제3 노드 설정
by Brian Hellman
최근 DRBD 8.3의 출시로 이제 제3 노드 기능이 무료로 제공되는 구성 요소로 포함되었습니다. 이 문서에서는 표준 Debian Etch 설치에서 제3 노드를 설정하는 기본 사항을 다룹니다. 이 튜토리얼의 끝에서 SAN, iSCSI 대상, 파일 서버 또는 데이터베이스 서버로 활용할 수 있는 DRBD 장치를 갖게 될 것입니다.
참고: LINBIT 지원 고객은 섹션 1을 건너뛰고 패키지 저장소를 이용할 수 있습니다.
LINBIT는 제3 노드 솔루션을 호스팅하고 있으며, 자세한 정보는 [email protected]으로 문의하시기 바랍니다.
서문:

설정은 다음과 같습니다:
- 세 개의 서버: alpha, bravo, foxtrot
- alpha와 bravo는 기본 및 보조 로컬 노드입니다.
- foxtrot는 원격 네트워크에 있는 제3 노드입니다.
- alpha와 bravo는 외부 연결을 위해 192.168.1.x 네트워크(eth0)에 인터페이스가 있습니다.
- alpha와 bravo 간에는 172.16.6.10 및 .20을 사용하여 복제를 위한 크로스오버 링크가 존재합니다.
- Heartbeat는 지리적으로 다양한 위치에 있는 재해 복구 노드와 통신하기 위해 192.168.5.2의 가상 IP를 제공합니다.
섹션 1: 소스 설치
이 단계는 3개의 각 노드에서 수행해야 합니다.
전제 조건:
- make
- gcc
- glibc 개발 라이브러리
- flex 스캐너 생성기
- 현재 커널의 헤더
다음 명령을 특권 사용자로 입력하여 이러한 종속성을 충족하십시오:
apt-get install make gcc libc6 flex linux-headers-uname -r libc6-dev linux-kernel-headers
종속성이 설치되면 DRBD를 다운로드합니다. 최신 버전은 항상 http://oss.linbit.com/drbd/에서 얻을 수 있습니다. 현재 버전은 8.3입니다.
cd /usr/src/
wget http://oss.linbit.com/drbd/8.3/drbd-8.3.0.tar.gz
다운로드가 완료되면:
- DRBD 압축 해제
- 소스 디렉토리로 이동
- 소스 컴파일
- DRBD 설치
tar -xzvf drbd-8.3.0.tar.gz
cd /usr/src/drbd-8.3.0/
make clean all
make install
이제 모듈을 로드하고 확인합니다:
modprobe drbd
cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
세 개의 노드 각각에서 이 작업이 완료되면 다음 섹션으로 진행합니다.
섹션 2: Heartbeat 구성
제3 노드를 설정하려면 DRBD 위에 DRBD를 쌓아야 합니다. 제3 노드가 연결할 가상 IP가 필요하며, 이를 위해 간단한 Heartbeat v1 구성을 설정합니다. 이 섹션은 alpha와 bravo에서만 수행됩니다.
Heartbeat 설치:
apt-get install heartbeat
authkeys 파일 편집:
vi /etc/ha.d/authkeys
auth 1
1 sha1 yoursupersecretpasswordhere파일이 생성되면 파일의 권한을 변경합니다. 이 단계를 따르지 않으면 Heartbeat가 시작되지 않습니다.
chmod 600 /etc/ha.d/authkeysauthkeys 파일을 bravo로 복사:
scp /etc/ha.d/authkeys bravo:/etc/ha.d/ha.cf 파일 편집:
vi /etc/ha.d/ha.cfdebugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 1
deadtime 10
warntime 5
initdead 60
udpport 694
ucast eth0 192.168.1.10
ucast eth0 192.168.1.20
auto_failback off
node alpha
node bravoha.cf 파일을 bravo로 복사:
scp /etc/ha.d/ha.cf bravo:/etc/ha.d/haresources 파일 편집, 여기서 생성된 IP는 제3 노드가 참조할 IP입니다.
vi /etc/ha.d/haresourcesalpha IPaddr::192.168.5.2/24/eth0haresources 파일을 bravo로 복사:
scp /etc/ha.d/haresources bravo:/etc/ha.d/가상 IP를 올리기 위해 두 서버에서 heartbeat 서비스를 시작합니다:
alpha:/# /etc/init.d/heartbeat startbravo:/# /etc/init.d/heartbeat startHeartbeat는 새로운 인터페이스(eth0:0)를 올립니다.
참고: Heartbeat가 인터페이스를 올리는 데 최대 1분이 걸릴 수 있습니다.
alpha:/# ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr 00:08:C7:DB:01:CC
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
섹션 3: DRBD 구성
DRBD 구성은 drbd.conf 파일을 통해 이루어집니다. 이 파일은 모든 노드(alpha, bravo, foxtrot)에서 동일해야 합니다. 사용 카운트가 yes로 설정되어 있다는 점에 유의하십시오. 이는 Linbit에 DRBD를 설치했음을 알립니다. 개인 정보는 수집되지 않습니다. 자세한 내용은 이 페이지를 참조하십시오:
global { usage-count yes; }
resource data-lower {
protocol C;
net {
shared-secret "LINBIT";
}
syncer {
rate 12M;
}
on alpha {
device /dev/drbd1;
disk /dev/hdb1;
address 172.16.6.10:7788;
meta-disk internal;
}
on bravo {
device /dev/drbd1;
disk /dev/hdd1;
address 172.16.6.20:7788;
meta-disk internal;
}
}
resource data-upper {
protocol A;
syncer {
after data-lower;
rate 12M;
al-extents 513;
}
net {
shared-secret "LINBIT";
}
stacked-on-top-of data-lower {
device /dev/drbd3;
address 192.168.5.2:7788; # Heartbeat에서 제공한 IP
}
on foxtrot {
device /dev/drbd3;
disk /dev/sdb1;
address 192.168.5.3:7788; # 백업 노드의 공용 IP
meta-disk internal;
}
}
섹션 4: DRBD 장치 준비
이제 구성이 완료되었으므로 alpha와 bravo에서 메타데이터를 생성합니다.
alpha:/usr/src/drbd-8.3.0# drbdadm create-md data-lower
메타데이터 작성 중…
활동 로그 초기화 중
비트맵 초기화되지 않음
새 DRBD 메타데이터 블록이 성공적으로 생성되었습니다.
bravo:/usr/src/drbd-8.3.0# drbdadm create-md data-lower
메타데이터 작성 중…
활동 로그 초기화 중
비트맵 초기화되지 않음
새 DRBD 메타데이터 블록이 성공적으로 생성되었습니다.
이제 alpha와 bravo에서 DRBD를 시작합니다:
alpha:/usr/src/drbd-8.3.0# /etc/init.d/drbd startbravo:/usr/src/drbd-8.3.0# /etc/init.d/drbd start하위 레벨 DRBD 장치가 연결되었는지 확인합니다:
cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r—
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:19530844
alpha에게 기본 노드가 되도록 지시합니다:
참고: 명령에서 언급한 바와 같이, 이는 bravo의 모든 데이터를 덮어씁니다: 지금은 좋아하는 음료를 가져갈 좋은 시간입니다.
alpha:/# drbdadm – –overwrite-data-of-peer primary data-lower
alpha:/# cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r—
ns:3088464 nr:0 dw:0 dr:3089408 al:0 bm:188 lo:23 pe:6 ua:53 ap:0 ep:1 wo:b oos:16442556
[==>……………..] 동기화됨: 15.9% (16057/19073)M
완료: 0:16:30 속도: 16,512 (8,276) K/sec
데이터 동기화가 완료되면 alpha에서 data-upper의 메타데이터를 생성하고, 이어서 foxtrot에서 생성합니다.
리소스는 data-upper이며 –stacked 옵션은 alpha에서만 활성화됩니다.
alpha:~# drbdadm –stacked create-md data-upper
메타데이터 작성 중…
활동 로그 초기화 중
비트맵 초기화되지 않음
새 DRBD 메타데이터 블록이 성공적으로 생성되었습니다.
성공
foxtrot:/usr/src/drbd-8.3.0# drbdadm create-md data-upper
메타데이터 작성 중…
활동 로그 초기화 중
비트맵 초기화되지 않음
새 DRBD 메타데이터 블록이 성공적으로 생성되었습니다.
스택 리소스를 올린 후 alpha를 data-upper의 기본으로 설정합니다:
alpha:/# drbdadm --stacked adjust data-upperfoxtrot:~# drbdadm adjust data-upper
foxtrot:~# cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@foxtrot, 2009-02-02 10:28:37
1: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent A r—
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:19530208
alpha:~# drbdadm –stacked – –overwrite-data-of-peer primary data-upper
alpha:~# cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—
ns:19532532 nr:0 dw:1688 dr:34046020 al:1 bm:1196 lo:156 pe:0 ua:0 ap:156 ep:1 wo:b oos:0
1: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent A r—
ns:14512132 nr:0 dw:0 dr:14512676 al:0 bm:885 lo:156 pe:32 ua:292 ap:0 ep:1 wo:b oos:5018200
[=============>……] 동기화됨: 74.4% (4900/19072)M
완료: 0:07:06 속도: 11,776 (10,992) K/sec
다시 음료 시간입니다!
동기화가 완료되면 /dev/drbd3를 통해 DRBD 블록 장치에 접근하십시오. 이는 두 개의 로컬 노드와 원격 제3 노드 모두에 기록됩니다. Heartbeat 구성에서는 /dev/drbd3 장치를 올리기 위해 “drbdupper” 스크립트를 사용할 것입니다. 즐거운 시간 되세요!
DRBD® 및 LINBIT®는 LINBIT, 오스트리아의 등록 상표입니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.