...
4.1.1. Local configuration
On node1
...
and node2 local systems, the DRX is installed and operated, and the contents of node1 and node2 are identical for both nodes.
- The following are examples of 1:1 replication configurations and 1:2 replication configurations.
Note that each port information must be subject to exception handling by the firewall and configured so that no redundant ports are used.
방식 | Windows 구성파일configuration | Linux 구성파일configuration | 비고 |
---|
1:1 복제 (2proxy)replication |
Code Block |
---|
| resource r0 {
device d minor 1;
disk d;
meta-disk f;
net {
protocol A;
sndbuf-size 20M;
on-congestion pull-ahead;
congestion-fill 480M;
}
proxy {
memlimit 500M; # DRX TX Buffer
plugin {
#compressor zlib level 1;
#crypto openssl;
}
}
on node1 {
address 10.10.0.250:7789;
node-id 0;
proxy on node1 {
inside 10.10.0.250:7790;
outside 10.10.0.250:7791;
}
}
on node2 {
address 10.10.0.253:7789;
node-id 1;
proxy on node2 {
inside 10.10.0.253:7790;
outside 10.10.0.253:7791;
}
}
} |
|
Code Block |
---|
| resource r0 {
device /dev/drbd1;
disk /dev/sdb1;
meta-disk internal;
net {
protocol A;
sndbuf-size 10M;
on-congestion pull-ahead;
congestion-fill 480M;
}
proxy {
memlimit 500M; # DRX TX Buffer
plugin {
#compressor zlib level 1;
#crypto openssl;
}
}
on node1 {
address 100.100.10.31:7789;
proxy on node1 {
inside 100.100.10.31:7790;
outside 100.100.10.31:7791;
}
}
on node2 {
address 100.100.10.41:7789;
proxy on node2 {
inside 100.100.100.41:7790;
outside 100.100.100.41:7791;
}
}
} |
|
|
1:2 복제replication - Windows: MDR 구성
- Linux: stacked 1:2 프록시 구성
|
Code Block |
---|
| resource r2 {
startup {
wfc-timeout 3;
}
proxy {
memlimit 500M;
}
net {
protocol A;
verify-alg crc32c;
on-congestion pull-ahead;
sndbuf-size 20M;
congestion-fill 480M;
}
device e minor 2;
disk e;
meta-disk g "C:/r2_meta.vhd";
on node1 {
node-id 1;
}
on node2 {
node-id 2;
}
on node3 {
node-id 3;
}
connection DR-node1-node3 { #
DR
로 시작하고 노드간 구분자 = 로 표기 필요
host node1 address 100.100.100.9:6677 via proxy on node1 {
inside 100.100.100.9:6678;
outside 100.100.100.9:6679;
}
host node3 address 100.100.100.11:6677 via proxy on node3 {
inside 100.100.100.11:6678;
outside 100.100.100.11:6679;
}
}
connection DR-node2-node3 { # DR
로
시작하고 노드간 구분자 = 로 표기 필요
host node2 address 100.100.100.10:6680 via proxy on node2 {
inside 100.100.100.10:6681;
outside 100.100.100.10:6682;
}
host node3 address 100.100.100.11:6680 via proxy on node3 {
inside 100.100.100.11:6681;
outside 100.100.100.11:6682;
}
}
connection {
host node1 address 10.20.25.9:6677;
host node2 address 10.20.25.10:6677;
}
} |
|
Code Block |
---|
| global {
disable-ip-verification;
usage-count no;
}
common {
startup {
wfc-timeout 3;
}
}
resource r0 {
protocol B;
disk {
on-io-error detach;
}
net {
protocol A;
verify-alg crc32c;
on-congestion pull-ahead;
sndbuf-size 10M;
congestion-fill 80M;
}
on pr1 {
device /dev/drbd0;
disk /dev/sdb1;
address 200.200.23.132:7799;
meta-disk internal;
}
on pr2 {
device /dev/drbd0;
disk /dev/sdb1;
address 200.200.23.137:7799;
meta-disk internal;
}
}
resource r0_1{
protocol A;
meta-disk internal;
device /dev/drbd10;
proxy {
memlimit 500M;
}
net {
protocol A;
verify-alg crc32c;
on-congestion pull-ahead;
sndbuf-size 10M;
congestion-fill 450M;
}
stacked-on-top-of r0 {
address 10.30.0.135:7788;
proxy on pr1 pr2{
inside 10.30.0.135:7789;
outside 10.30.0.135:7790; # mirror VIP
}
}
on dd1 {
address 10.30.0.199:7788;
proxy on dd1 {
inside 10.30.0.199:7789;
outside 10.30.0.199:7790; #DR mirror IP
}
}
} |
|
|
4.1.2.
...
Dedicated server configuration
기본적으로 구성파일은 양 노드, DRX 노드 모두 동일하게 구성하나, 전용서버의 특성상 이 기종 노드 즉 WDRBD 노드와 Linux DRBD 노드들을 모두 DRX에서 수용하려면 전용서버에 설치된 drbd-utils 의 특성에 맞게 DRX config를 수정할 필요가 있습니다. 구성 절차는 하기 기술된 내용에 준하며 구성예제는 Linux 전용서버를 기준으로 합니다.
...
...
- drbd-utils 설치
- etc 경로에 "drbd.conf" 구성
로컬 노드 | LAN로컬 DRX | 로컬 DRX | WAN
| 원격 DRX | LAN | 원격 노드 |
---|
Code Block |
---|
| resource r0 {
device d minor 1;
disk d;
meta-disk e;
proxy {
memlimit 1G;
}
net {
protocol A;
on-congestion pull-ahead;
congestion-fill 950M;
ping-timeout 30;
}
on w12std-0 {
node-id 0;
}
on w12std-1 {
node-id 1;
}
connection win-r0 {
host w12std-0 address 10.10.0.77:7789 via proxy on 74proxy1 {
inside 10.10.0.115:7790;
outside 10.10.0.115:7791;
}
host w12std-1 address 10.10.0.203:7789 via proxy on 74proxy2 {
inside 10.10.0.102:7790;
outside 10.10.0.102:7791;
}
}
}
|
|
Code Block |
---|
| resource r0 {
device /dev/drbd001; # dummy
disk /dev/sdb1; # dummy
meta-disk /dev/sdc1; # dummy
proxy {
memlimit 1G;
}
net{
protocol A;
on-congestion pull-ahead;
congestion-fill 950M;
ping-timeout 30;
}
on w12std-0 {
node-id 0;
}
on w12std-1 {
node-id 1;
}
connection win-r0 {
host w12std-0 address 10.10.0.77:7789 via proxy on 74proxy1 {
inside 10.10.0.115:7790;
outside 10.10.0.115:7791;
}
host w12std-1 address 10.10.0.203:7789 via proxy on 74proxy2 {
inside 10.10.0.102:7790;
outside 10.10.0.102:7791;
}
}
}
|
Code Block |
---|
| resource r1 {
device /dev/drbd001;
disk /dev/sdb1;
meta-disk /dev/sdc1;
proxy {
memlimit 1G;
}
net{
protocol A;
on-congestion pull-ahead;
congestion-fill 950M;
ping-timeout 30;
}
on cen74-1 {
node-id 0;
}
on cen74-2 {
node-id 1;
}
connection linux-r1 {
host cen74-1 address 10.10.0.11:7792 via proxy on 74proxy1 {
inside 10.10.0.115:7793;
outside 10.10.0.115:7794;
}
host cen74-2 address 10.10.0.105:7792 via proxy on 74proxy2 {
inside 10.10.0.102:7793;
outside 10.10.0.102:7794;
}
}
}
|
|
Code Block |
---|
| resource r0 {
device /dev/drbd001; # dummy
disk /dev/sdb1; # dummy
meta-disk /dev/sdc1; # dummy
proxy {
memlimit 1G;
}
net{
protocol A;
on-congestion pull-ahead;
congestion-fill 950M;
ping-timeout 30;
}
on w12std-0 {
node-id 0;
}
on w12std-1 {
node-id 1;
}
connection win-r0 {
host w12std-0 address 10.10.0.77:7789 via proxy on 74proxy1 {
inside 10.10.0.115:7790;
outside 10.10.0.115:7791;
}
host w12std-1 address 10.10.0.203:7789 via proxy on 74proxy2 {
inside 10.10.0.102:7790;
outside 10.10.0.102:7791;
}
}
}
|
Code Block |
---|
| resource r1 {
device /dev/drbd001;
disk /dev/sdb1;
meta-disk /dev/sdc1;
proxy {
memlimit 1G;
}
net{
protocol A;
on-congestion pull-ahead;
congestion-fill 950M;
ping-timeout 30;
}
on cen74-1 {
node-id 0;
}
on cen74-2 {
node-id 1;
}
connection linux-r1 {
host cen74-1 address 10.10.0.11:7792 via proxy on 74proxy1 {
inside 10.10.0.115:7793;
outside 10.10.0.115:7794;
}
host cen74-2 address 10.10.0.105:7792 via proxy on 74proxy2 {
inside 10.10.0.102:7793;
outside 10.10.0.102:7794;
}
}
} |
|
Code Block |
---|
| resource r0 {
device d minor 1;
disk d;
meta-disk e;
proxy {
memlimit 1G;
}
net {
protocol A;
on-congestion pull-ahead;
congestion-fill 950M;
ping-timeout 30;
}
on w12std-0 {
node-id 0;
}
on w12std-1 {
node-id 1;
}
connection win-r0 {
host w12std-0 address 10.10.0.77:7789 via proxy on 74proxy1 {
inside 10.10.0.115:7790;
outside 10.10.0.115:7791;
}
host w12std-1 address 10.10.0.203:7789 via proxy on 74proxy2 {
inside 10.10.0.102:7790;
outside 10.10.0.102:7791;
}
}
}
|
|
Code Block |
---|
| resource r1 {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk /dev/sdc1;
proxy {
memlimit 1G;
}
net{
protocol A;
on-congestion pull-ahead;
congestion-fill 950M;
ping-timeout 30;
}
on cen74-1 {
node-id 0;
}
on cen74-2 {
node-id 1;
}
connection linux-r1 {
host cen74-1 address 10.10.0.11:7792 via proxy on 74proxy1 {
inside 10.10.0.115:7793;
outside 10.10.0.115:7794;
}
host cen74-2 address 10.10.0.105:7792 via proxy on 74proxy2 {
inside 10.10.0.102:7793;
outside 10.10.0.102:7794;
}
}
|
|
Code Block |
---|
| resource r1 {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk /dev/sdc1;
proxy {
memlimit 1G;
}
net{
protocol A;
on-congestion pull-ahead;
congestion-fill 950M;
ping-timeout 30;
}
on cen74-1 {
node-id 0;
}
on cen74-2 {
node-id 1;
}
connection linux-r1 {
host cen74-1 address 10.10.0.11:7792 via proxy on 74proxy1 {
inside 10.10.0.115:7793;
outside 10.10.0.115:7794;
}
host cen74-2 address 10.10.0.105:7792 via proxy on 74proxy2 {
inside 10.10.0.102:7793;
outside 10.10.0.102:7794;
}
}
} |
|
4.2. 구성 절차
4.2.1. 로컬 구성
...
초기 구성
...
Linux
...
CentOS 버전에 맞게 다음 명령어 중 하나를 사용하여 DRX 서비스를 실행
Code Block |
---|
|
service drxsvc start |
Code Block |
---|
|
systemctl start drxsvc |
Windows
...
다음 명령어를 사용하여 DRX를 재시작
Code Block |
---|
|
sc start drxsvc |
설정 변경
...
Linux
...
다음 명령어를 사용하여 DRX 종료
Code Block |
---|
|
service drxsvc stop |
Code Block |
---|
|
systemctl stop drxsvc |
OS별로 다음 명령어를 사용하여 DRX 재시작
Code Block |
---|
|
service drxsvc start |
Code Block |
---|
|
systemctl start drxsvc |
Windows
- 새롭게 작성된 "drbd.conf" 또는 "drx.conf" 파일을 기존 설정 파일과 교체
- 명령어 "drbdadm down"으로 리소스 종료
- 명령어 "drbdadm up"으로 리소스 시작
다음 명령어를 사용하여 DRX 종료
Code Block |
---|
|
sc start drxsvc |
4.2.2. 전용 서버 구성
...
초기 구성
...
Linux
...
- DRX 가 다수의 노드에 대한 다중 복제 세션을 처리하는 경우에는 다중리소스 형태로 각 노드들의 리소스 파일을 관리하도록 필요.
CentOS 버전에 맞게 다음 명령어 중 하나를 사용하여 DRX 서비스를 실행
Code Block |
---|
|
service drxsvc start |
Code Block |
---|
|
systemctl start drxsvc |
Windows
- 시스템에 "drbd util" 설치
- DRX 설치
- DRX 설치 디렉터리에 라이선스 파일 복사(drx.lic)
- DRBD가 구성된 시스템에서 DRBD 설정 파일(drbd.conf, *.res)을 복사해 DRX가 설치된 시스템의 DRBD /etc 경로로 복사 : DRBD 구성파일과, DRX 구성파일 내용 일치 확인
- DRX 가 다수의 노드에 대한 다중 복제 세션을 처리하는 경우에는 다중리소스 형태로 각 노드들의 리소스 파일을 관리하도록 필요.
DRX 서비스를 실행
Code Block |
---|
|
sc start drxsvc |
설정 변경
...
4.3. drx.conf
DRBD 구성과는 별개로 DRX 내부 속성을 설정할 수 있습니다. 보통의 경우는 DRX 기본 설정으로 동작하기 때문에 속성파일을 제공할 필요가 없습니다. 이 속성은 DRX가 시작될 때 적용되고, DRX 속성 파일은 다음 속성표의 내용을 참고하여 작성합니다.
...
구분 | 속성 | 기본 값 | 설명 |
---|
기본 | lang | korean | DRX 언어 설정 파일- 환경설정의 "base-dir/lang"에 위치(미지정 시 실행파일 하부에 위치)
- "korean.ini"나 "english.ini" 등과 같은 방법으로 파일 생성(utf8 파일)
예)"korean.ini" 설정
|
base-dir | DRX 설치 경로 | 로그 저장이나 언어 설정과 관련한 파일이 있는 디렉터리의 상위 디렉터리로 지정 (미지정 시 DRX를 설치한 경로로 자동 지정됨) |
drbd-conf | Windows: Linux: | "drbd config"를 이용할 경우, 해당 파일의 경로 |
connect-timeout | 3
| 소켓 connect 또는 listen 동작에서 사용하는 타임아웃 값(단위: 초) (※ 네트워크 환경에 따라 연결 지연이 있을 수 있으므로 연결이 원활하지 않을 때 늘릴 것을 권장) |
init-timeout | 10 | 원격 DRX와 연결 후, 초기화 패킷을 주고 받는 동안의 타임아웃 값(단위: 초) (※ 네트워크 환경에 따라 연결 지연이 있을 수 있으므로 연결이 원활하지 않을 때 늘릴 것을 권장) |
bwlimit | 0 (disabled) | 송신 시 대역폭 제한 값 (수신 대역폭은 원격 DRX 의 bwlimit 값에 의해 제어) |
loglevel-file | info | 파일로 저장되는 로그 레벨 지정 |
ip-verification | on | off로 설정시 연결을 위해서 대기(Listen)하기위해 매칭(bind)하는 IP가 0.0.0.0(모든 IP 수신)으로 설정됩니다. |
압축/암호화 | block-size | 63K | 압축/암호화시 사용할 block size |
| bab-read-spin-counter | 10 | bab에서 read시 block size 보다 작을 경우 재시도 횟수 |
| bab-read-spin-delay | 10 | bab read 재시도시 delay 값 (ms) |
| min-raw-block-size | 1K | 압축/암호화 설정시에도 평문으로 보낼 minimum size |
| process-thread-count | -1 (auto) | 멀티쓰레드 패킷 처리시 사용할 쓰레드 개수. ※ 튜닝과 디버깅의 용도이므로 변경하는 것을 권장하지 않습니다. |
...