DRX 1.1.x User's Guide
- 1 1. 개요
- 2 2. DRX 네트워크
- 3 3. 설치
- 3.1 3.1. Linux 설치
- 3.2 3.2. Windows 설치
- 4 4. 삭제
- 5 5. 라이선스
- 6 6. 구성
- 6.1 6.1. 구성 파일
- 6.2 6.2. 구성 절차
- 6.3 6.3. DRX 속성 파일 구성
- 7 7. 관리 명령
- 7.1 7.1. 명령어
- 8 8. 로그
- 8.1 8.1. 저장 방식
- 8.2 8.2. 로그 설정
- 9 9. 명령어 옵션
- 10 10. 주의사항
- 11 11. 참고
1. 개요
1.1. 사용 목적
DRX(Data Replication Xcelerator)는 WAN 구간(원거리) 데이터 복제를 위한 DRBD 연동 프록시 솔루션 입니다.
DRBD의 비동기 방식(A type) 복제는 기본적으로 동기 방식에 비해 로컬 I/O 응답 성능이 좋습니다. 그러나 비동기 복제는 복제 데이터를 원격으로 전송한 시점에 복제를 수행한 것으로 간주하고 로컬 I/O 를 완료하기 때문에 데이터 전송의 성공 여부에 따라 로컬 I/O 응답성능에 영향이 있을 수 있습니다. 만약 송신버퍼에 여유공간이 없어서 TCP 소켓 버퍼로 데이터 복사가 지연되면 로컬 I/O의 대기(block)가 발생하게 됩니다. 즉, 송신 버퍼의 크기와 버퍼의 여유공간이 로컬 I/O 응답성능에 영향을 주게 됩니다. 일반적으로 TCP 소켓 송신 버퍼는 제한된 크기를 가지기 때문에 소켓 버퍼의 여유공간은 다량의 복제 데이터를 처리하기에는 상시 부족하며 따라서 로컬 I/O 쓰기 요청이 급격히 발생하게 되면 복제가 동반된 로컬 I/O의 응답성능 저하는 피하기 어렵습니다. 이러한 I/O 응답성능 저하 문제는 DRX의 버퍼링 메커니즘을 사용하여 극복할 수 있습니다.
DRX는 DRBD 송신부와 TCP 소켓 채널을 직접 연결하여 Primary 노드의 변경된 데이터를 즉시 수용하고 DRX 내부에서 버퍼링함으로써 로컬 I/O가 대기하는 문제를 해소하고 로컬 응용프로그램의 쓰기 성능저하 현상을 큰폭으로 개선합니다.
DRX의 버퍼링은 시스템이 제공하는 메모리 아키텍처 상의 주소 공간과 사용 가능한 실제 물리메모리의 한도 내에서 자유롭게 구성할 수 있습니다. 만약 DRX의 버퍼 크기를 초과하는 데이터를 수용해야 하는 혼잡(full)상황에 이를 경우 DRX는 이에 대해 능동적으로 처리하지 않기 때문에 DRBD 가 스스로 혼잡을 인지하고 지연복제(Ahead mode)로 구동할 수 있도록 설정해야 합니다. 통상 DRX 와 DRBD를 연동할 경우 지연복제 모드를 기본구성으로 하는 것은 필수적입니다.
또한 DRX는 원격지 데이터의 가용성 증대를 위해 데이터 가속(압축)기능을 제공하여 타겟 RPO(Recovery Point Objective)를 큰 폭으로 개선할 수 있습니다. 그리고 원거리 복제의 특성상 고객의 중요 데이터가 WAN 구간을 경유하여 노출되는 상황에 대비할 수 있도록 데이터 암호화 기능을 동시에 제공합니다.
다음 그림은 DRX와 DRBD 간 버퍼링 연동 모습입니다.
DRX 버퍼링은 WAN 구간을 경유하기 이전 시점에 로컬 DRX로 부터 수행되며 원격 DRX에선 버퍼링 할 필요가 없습니다.
1.2. 고려 사항
DRX는 DRBD를 설치한 시스템에서 동작하거나 전용 서버에 설치하여 동작합니다. 또한 DRX 인스턴스는 여러 노드에 분산된 DRBD 디바이스에 프록시 역할을 할 수 있습니다. 일반적으로 송신 시점에 데이터 패킷이 몰릴 경우를 대비하여 DRBD의 Activity Log를 충분한 용량으로 미리 설정해야 합니다. 만약 송신 시점에 과도한 데이터 패킷이 처리되는 도중 Primary 노드가 손상되어 Primary 노드가 재 기동 된다면 다량의 Activity Log가 OOS로 설정되어 장시간 동안 재 동기화 될 수 있습니다. 이러한 장시간 동기화가 발생하는 게 우려된다면 DRBD의 csums-alg 설정을 활성화하는 것이 좋습니다.
1.3. 지원 플랫폼
플랫폼 | OS 버전 |
|---|---|
Windows | Windows 2008 이상 64비트 |
Linux | CentOS 6.4 이상 64비트 |
2. DRX 네트워크
DRX는 다음과 같은 다양한 구성이 가능합니다.
한 시스템에서 DRBD와 DRX를 모두 설치하여 운영합니다.
DRX 전용머신을 통해 운영합니다.
하나의 DRX 전용서버를 경유하여 여러 DRBD 리소스를 운영합니다.
3. 설치
DRX 는 운영머신에 DRBD 가 이미 설치된 경우 DRX 패키지만 추가로 설치하면 됩니다. 그러나 DRX 전용서버로 별도 구성할 경우 DRX 패키지와 더불어 DRBD 유틸리티를 부가적으로 설치해야 하며 HW 압축을 사용할 경우 QAT 라이브러리에 대한 설치가 요구됩니다.
플랫폼 | 로컬형 | 전용서버 | 비고 |
|---|---|---|---|
Linux |
|
| drbd-utils 버전: 8.9.x |
Windows |
|
|
|
3.1. Linux 설치
설치는 Shell Script 설치와 GUI 기반의 자동설치를 지원하고 수동으로 직접 설치할 수도 있습니다. 자동 설치 시 기본 설치 위치는 "/opt/DRX" 경로이며 해당 경로에 DRX 라이선스 파일이 위치해야 합니다.
3.1.1. Linux 서비스 자동 설치 - Shell Script 설치
다음은 Shell Script로 설치할 때 화면 출력입니다.
[root@node1 opt]# sh DRX_Centos-x64_1_1-A7.sh -c
Unpacking JRE ...
Preparing JRE ...
Starting Installer ...
Please select a language:
1: English [Enter]
2: Korean
[1 - 2]
3.1.2. Linux 서비스 자동 설치 - GUI 설치
DRX 설치파일을 직접 실행하여 GUI 방식 설치를 합니다. 설치한 다음 새 명령창을 열어서 다음 순서대로 DRX를 구축합니다(설치를 마친 다음, 새로운 명령 라인으로 수행해야 합니다).
3.1.3. Linux 서비스 수동 설치
서비스를 데몬 서비스로 설정하여 시스템을 재시작 하면 자동으로 DRX 서비스가 시작됩니다.(서비스에 대한 자동시작은 systemctl 또는 chkconfig를 통해 구성할 수 있습니다.) 설치가 끝나면 DRX 서비스가 등록되지만, 설치 경로에 DRX 라이선스가 없을 경우 DRX가 시작되지 않습니다. 이럴 경우 라이선스 파일을 설치경로에 복사하고 서비스를 다음의 명령을 통해 수동 시작하십시요.
서비스 실행
# Centos7
[root@node1 ~]# systemctl start drxsvc
# Centos6
[root@node1 ~]# service drxsvc start
서비스 중지
# Centos7
[root@node1 ~]# systemctl stop drxsvc
# Centos6
[root@node1 ~]# service drxsvc stop
삭제
[root@node1 ~ ]# /opt/DRX/uninstall
3.1.4. Linux DRX 와치독
Linux DRX는 DRX 서비스의 관리를 위해 DRX 와치독을 함께 구동하며 다음과 같은 상황에서 동작합니다.
DRX 프로세스가 예기치 않게 종료된 경우
리눅스에서 "drx-ctl -c shutdown" 명령어를 사용하여 DRX 종료시킨 경우
위 동작의 과정은 "DRX_HOME/logs/service.log" 로그에서 확인할 수 있으며 리눅스에서 DRX를 완전히 종료시키고자 할 경우에는 다음과 같은 명령으로 수행해야 합니다.
CentOS6: service drxsvc [start/stop]
CentOS7: systemctl [start/stop] drxsvc
3.2. Windows 설치
3.2.1. DRX Windows 서비스 자동 설치
인스톨러를 사용하여 설치하면 DRX 서비스는 시스템 기동 시 자동 시작 되도록 Windows 서비스에 등록 됩니다.
3.2.2. DRX Windows 서비스 수동 설치
다음 명령을 이용하여 DRX 서비스를 직접구축 할 수 있습니다.
drxsvc /i: Drx 서비스 설치
drxsvc /u: Drx 서비스 제거
drxsvc /s: Drx 서비스 시작
drxsvc /t: Drx 서비스 종료
3.2.3. Widnows DRX 와치독
Widnows DRX는 DRX 서비스의 관리를 위해 DRX 와치독을 함께 구동하고 DRX 프로세스의 이상 종료를 감지하면 DRX를 재기동 시키는 역할을 합니다.
4. 삭제
4.1. Windows 삭제
제어판 → 프로그램 → 프로그램 제거 및 변경 창에서 DRX 삭제하거나 설치 경로에 제공되는 "uninstall.exe" 명령으로 삭제합니다.
4.2. Linux 삭제
설치 경로에 제공되는 "uninstall.exe" 명령으로 삭제합니다.
DRX를 삭제 하더라도 로그와 설정 파일 및 라이선스 파일은 유지됩니다.
5. 라이선스
DRX를 운영하려면 라이선스 파일이 필요합니다.
파일 이름: "drx.lic"
DRX를 설치한 경로에 라이선스 파일을 복사해야 합니다.
라이선스 관련 문의 사항은 맨텍에 문의하시기 바랍니다.
6. 구성
6.1. 구성 파일
DRX는 DRBD 구성파일 내의 "proxy" 섹션에서 버퍼 크기를 설정하고 호스트 섹션 내의 "proxy on" 섹션에서 DRX IP 주소를 설정합니다. 압축,암호화 설정은 proxy 섹션내의 plugin 서브섹션에서 기술합니다.
DRX는 DRBD와 같은 시스템에 설치하는 로컬 구성방식과 별도 전용머신으로 운영하는 구성방식을 모두 제공합니다. 기본적으로 각 노드의 구성파일은 동일한 내용의 "drbd.conf" 파일을 이용합니다. 그러나 상황에 따라 DRBD 노드와 DRX 구성파일의 리소스명을 다르게 설정해야 하는 경우도 있기 때문에 절대적인 것은 아닙니다. 구성 파일 경로나 이름을 다르게 지정하려면, DRX 실행 옵션에서 "-c"를 사용하여 구성 파일의 위치를 직접 지정할 수도 있습니다.
DRX는 기존 DRBD 구성파일 내에 다음과 같이 Proxy 섹션과 Proxy on 섹션을 설정하여 DRBD와 연동 합니다. 하기 내용과 같이 1:1 복제 구성과 1:N 복제 구성 시 다소 차이가 있습니다.
1:1 구성
on <host-name> 섹션
address <host ip address:port>
proxy on <proxy on host-name> 섹션
inside <proxy inside ip address:port>
outside <proxy outside ip address:port>
Proxy 섹션
memlimit
plugin 섹션
compressor <zlib | lzma | iqa> level <1~9>
crypto openssl
1:N 구성
connection 섹션
host <host-name> address <host ip address:port> via proxy on <proxy on host-name> 섹션
inside <proxy inside ip address:port>
outside <proxy outside ip address:port>
Proxy 섹션
memlimit
plugin 섹션
compressor <zlib | lzma | iqa> level <1~9>
crypto openssl
6.1.1. 로컬 구성
node1 과 node2 같은 시스템 상에 DRX가 구동되는 설정으로 node1과 node2의 "drbd.conf"의 내용은 양 노드 동일합니다.
다음은 1:1 복제 구성과 1:2 복제 구성의 예입니다.
각각의 포트 정보는 방화벽에 의해 예외 처리 적용이 되어야 하며, 중복 사용되는 포트가 없도록 구성하는 것에 유의하십시오.
방식 | Windows 구성파일 | Linux 구성파일 | 비고 |
|---|---|---|---|
1:1 복제 (2proxy) | drbd.confresource r0 {
device d minor 1;
disk d;
meta-disk f;
net {
protocol A;
sndbuf-size 20M;
on-congestion pull-ahead;
congestion-fill 480M;
ping-timeout 30;
}
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;
}
}
} | drbd.confresource r0 {
device /dev/drbd1;
disk /dev/sdb1;
meta-disk internal;
net {
protocol A;
sndbuf-size 10M;
on-congestion pull-ahead;
congestion-fill 480M;
ping-timeout 30;
}
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 복제
| drbd.confresource r2 {
startup {
wfc-timeout 3;
}
proxy {
memlimit 500M;
}
net {
protocol A;
verify-alg crc32c;
on-congestion pull-ahead;
sndbuf-size 20M;
congestion-fill 480M;
ping-timeout 30;
}
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;
}
} | drbd.confglobal {
disable-ip-verification;
usage-count no;
}
common {
startup {
wfc-timeout 3;
}
}
resource r0 {
disk {
on-io-error detach;
}
net {
protocol A;
verify-alg crc32c;
on-congestion pull-ahead;
sndbuf-size 10M;
congestion-fill 80M;
ping-timeout 30;
}
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{
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;
ping-timeout 30;
}
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
}
}
} |
|
6.1.2. 전용 서버 구성
기본적으로 config는 양 노드, DRX 노드 모두 동일하게 구성하나, 전용서버의 특성상 이 기종 노드 즉 WDRBD 노드와 Linux DRBD 노드들을 모두 DRX에서 수용하려면 전용서버에 설치된 drbd-utils 의 특성에 맞게 DRX config를 수정할 필요가 있습니다.
절차는 하기 기술된 내용에 준하며 구성예제는 Linux 전용 머신을 기준으로 합니다.
Windows 전용서버
DRX 서버로 "drbdadm.exe" 파일 복사
"drbdadm.exe" 파일이 있는 폴더의 상위 폴더에 etc 폴더를 생성
cygwin.dll 파일을
생성한 etc 경로에서 "drbd.conf" 구성
Linux 전용서버
drbd-utils 설치
etc 경로에 "drbd.conf" 구성
로컬 노드 |
| 로컬 DRX |
| 원격 DRX |
| 원격 노드 |
|---|---|---|---|---|---|---|
Windows node r0resource 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;
}
}
}
| r0resource 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;
}
}
}
r1resource 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;
}
}
}
| r0resource 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;
}
}
}
r1resource 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;
}
}
} | Windows node r0resource 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;
}
}
}
| |||
Linux node r1resource 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;
}
}
| Linux node r1resource 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;
}
}
} |
6.2. 구성 절차
6.2.1. 로컬 구성
초기 구성
설정 변경
6.2.2. 전용 서버 구성
초기 구성
설정 변경
위의 절차에 따라 정상적으로 구성이 되었을 경우 DRBD와 DRX는 연결을 성립하고 복제를 시작합니다.
6.3. DRX 속성 파일 구성
DRX 속성 파일을 사용하면, DRBD 구성과는 별개로 DRX 내부 속성을 설정할 수 있습니다. 보통의 경우는 DRX 기본 설정으로 동작하기 때문에 속성파일을 제공할 필요가 없습니다.
이 속성은 DRX가 시작될 때 적용되고, DRX 속성 파일은 다음과 같이 생성하고 하기 속성표의 내용을 참고하여 작성합니다.
파일 이름: "drx.conf"
기본 위치: 설치한 경로와 동일
기타: 파일의 시작 부분에 "[global] section"을 지정해야 함
속성표
구분 | 속성 | 기본 값 | 설명 |
|---|---|---|---|
기본 | lang | korean | DRX 언어 설정 파일
|
base-dir | DRX 설치 경로 | 로그 저장이나 언어 설정과 관련한 파일이 있는 디렉터리의 상위 디렉터리로 지정 (미지정 시 DRX를 설치한 경로로 자동 지정됨) | |
drbd-conf | Windows:
Linux:
| "drbd config"를 이용할 경우, 해당 파일의 경로 | |
connect-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) | 멀티쓰레드 패킷 처리시 사용할 쓰레드 개수. ※ 튜닝과 디버깅의 용도이므로 변경하는 것을 권장하지 않습니다. |
drx.conf 예제
drx.conf |
|---|
# [global] lang=korean #drbd-conf=c:\program files\DRX\drbd.conf #connect-timeout=10 # log levels: debug < info < warn < err
|
압축/암호화의 전송 Buffer사이즈는 block-size값의 2배로 설정되며 최대 1M까지 설정된다.
7. 관리 명령
DRX는 "drx-ctl" 명령어로 관리합니다.
"drbd proxy" 호환 명령어 중 "show" 계열의 명령과 "print statistics" 계열의 명령어를 제공합니다.
"add", "del", "set" 등과 같은 설정 명령들은 제공하지 않으며 drbd.config 구성 파일을 통해서만 관련 설정할 수 있습니다.
7.1. 명령어
다음은 명령 목록입니다.
drx-ctl show
현재 구성된 리소스의 정보와 상태를 출력합니다.
C:\Users\sekim>drx-ctl show
Command id (4) : show
================================================================================================================================================================================
Name Type Status local-drbd-ip listen-lan-ip local-drx-wan-ip remote-drx-ip Up since
================================================================================================================================================================================
active-standby-x64-pas1-x64-act data established 10.10.0.250:7789 10.10.0.250:7790 10.10.0.250:7791 10.10.0.251:7791 2018-08-21 09:29:11
active-standby-x64-pas1-x64-act meta established 10.10.0.250:7789 10.10.0.250:7790 10.10.0.250:7791 10.10.0.251:7791 -
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
All connections : 2
Name: 연결 이름
type: data or meta
Status: 연결 상태
stopped: 기동 중지 상태
stopping: 기동 중지 중
waiting: 연결을 대기 중
connecting: 로컬 스트림과 연결 중
bridging: 로컬 DRX와 원격 DRX가 연결을 시작하는 상태
bridged: 로컬 DRX와 원격 DRX가 연결된 상태
connected: 로컬 DRX와 로컬 DRBD 연결된 상태
establishing: 로컬 DRX와 원격 DRX 연결, 로컬 DRBD 연결된 상태
established: 로컬 DRX와 원격 DRX 연결, 로컬 DRBD 원격 DRBD 모두 연결된 상태 (복제 기동 상태)
local-drbd-ip: drbd 연결 IP
listen-lan-ip: DRX 에서 listen하는 로컬 IP
local-drx-wan-ip: DRX 에서 원격 수신 대기하는 IP
remote-drx-ip: DRX 에서 원격으로 연결하는 IP
up since: drbd/drx 기동 시작 시간.