...
DRX는 관리의 편의를 위해서 각 노드의 구성파일을 동일한 내용의 "drbd.conf" 파일로 통일시키도록 권장 하지만 필수사항은 아니며 구성방식에 따라서 각 노드별 구성내용이 달라질 수 있고 구성파일명, 경로 등도 별도로 지정할 수 있습니다. DRX 의 주요 구성 항목은 다음과 같습니다.
- 연결 구성: DRBD 와 연동하기 위한 DRX inbound IP, outbound IP 주소 설정
- 버퍼 구성: 리소스(채널) 별 버퍼 크기 설정
- 압축/암호화 구성: 압축/암호화 기능 ON/OFF 설정
DRX는 DRBD 구성파일 내의 "proxy" 섹션에서 버퍼 크기를 설정하고 호스트 섹션 내의 "proxy on" 섹션에서 DRX IP 주소를 설정합니다. 압축,암호화 설정은 proxy 섹션내의 plugin 서브섹션에서 기술합니다. 아래의 내용은 기본적인 DRX 구성 양식이며 1:1 복제와 1:N 복제 연동에 다소 차이가 있습니다.
Info |
---|
|
- on [hostname] 섹션 내의 proxy on [ proxy on hostname ] 섹션
- inside [ proxy inside ip address]:[ port ]
- outside [ proxy inside ip address ]:[ port]
- Proxy 섹션
- memlimit
- plugin 섹션
- compressor [zlib | lzma | iqa] level [1~9]
- crypto openssl
|
...
로컬 노드 | LAN | 로컬 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. drx.
...
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 |
설정 변경
위의 절차에 따라 정상적으로 구성을 하고 DRX가 기동되면 DRBD와의 연결이 성립되고 복제가 시작됩니다. DRX를 초기기동하고 제어하는 방법에 대해선 5. 제어 의 내용을 참고하세요.
4.3. drx.conf
DRBD 구성과는 별개로 DRX 내부 속성을 설정할 수 있습니다. 보통의 경우는 DRX 기본 설정으로 동작하기 때문에 속성파일을 제공할 필요가 없습니다. 이 속성은 DRX가 시작될 때 적용되고, DRX 속성 파일은 다음 속성표의 내용을 참고하여 작성합니다.
...
conf
DRBD 구성과는 별개로 DRX 내부 동작 속성을 설정할 수 있으며 이 속성은 DRX가 시작될 때 적용되는 전역설정의 의미를 가집니다. 보통의 경우는 DRX 기본 설정으로 동작하기 때문에 drx.conf 파일을 제공할 필요가 없습니다. DRX 속성 파일은 다음 속성표의 내용을 참고하여 작성합니다.
- 파일 이름: "drx.conf"
- 기본 위치: drx 설치 경로
- 주의: 파일의 시작 부분에 "[global] sectionsection"을 기술해야 함합니다.
구분 | 속성 | 기본 값 | 설명 |
---|
기본 | 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) | 멀티쓰레드 패킷 처리시 사용할 쓰레드 개수. ※ 튜닝과 디버깅의 용도이므로 변경하는 것을 권장하지 않습니다. |
...