Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

DRX is configured through the drbd.conf and drx.conf files.

  • The drbd.conf file describes replication connections, buffer sizes, and optional settings. By default, it is created in the same way as the DRBD configuration file format. In most cases, DRBD is installed locally and will be created by modifying the already created drbd.conf file.
  • If DRBD is installed locally, DRX automatically recognizes the path of the configuration file through the environment variable (DRBD), so you do not need to change the path of drbd.conf. /etc/drbd.conf is the default path and you can change the path through drx.conf.
  • If you are adjusting DRX's own options, create a drx.conf file. You do not need to create it unless it is a special case.

4.1. Configuration files

DRX is recommended to unify the configuration file of each node into the same "drbd.conf" file for the sake of management but it is not mandatory, and configuration contents of each node can be changed according to the configuration method, and the configuration file name, Can be specified separately. The major configuration items of DRX are as follows.

  • Connection configuration: Setting DRX inbound IP and outbound IP address to work with DRBD
  • Buffer Configuration: Set buffer size per resource (channel)
  • Compression/Encryption Configuration: Setting the compression/encryption function ON / OFF

DRX sets the buffer size in the "proxy" section within the DRBD configuration file and sets the DRX IP address in the "proxy on" section within the host section. Compression and encryption settings are described in the plugin subsection in the proxy section. The following is a basic DRX configuration form, with slightly different 1:1 and 1:N replication configurations.

Info
title1:1 구성
  • proxy on [ proxy on hostname ] section of on [hostname] section 
    • inside [ proxy inside ip address]:[ port ]
    • outside [ proxy inside ip address ]:[ port]
  • proxy section
    • memlimit
    • plugin section
      • compressor [zlib | lzma | iqa] level [1~9]
      • crypto openssl
Info
title1:N 구성
  • host [ hostname] address [ host ip address ]:[port] via proxy on [proxy on hosname] section of connection section 
    • inside [ proxy inside ip address]: [ port ]
    • outside [ proxy inside ip address ]: [ port]
  • proxy section
    • memlimit
    • plugin section
      • compressor [zlib | lzma | iqa] level [1~9]
      • crypto openssl

4.1.1. Local configuration

  • node1 과 node2 로컬 시스템 상에 DRX가 설치, 구동되는 설정으로 node1과 node2의 "drbd.conf"의 내용은 양 노드 동일합니다.
  • 다음은 1:1 복제 구성과 1:2 복제 구성의 예입니다.
  • 각각의 포트 정보는 방화벽에 의해 예외 처리 적용이 되어야 하며, 중복 사용되는 포트가 없도록 구성하는 것에 유의하십시오.

...

Code Block
titledrbd.conf
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;
        }
    }
}

...

titledrbd.conf

...

Table of Contents


DRX requires configuration of individual replication resources and global settings required to perform drx. Configuration for individual resources is done in the proxy section of each replication configuration file, and global settings are configured through the drx.conf file.

All configuration below is based on working with Block Replication (BSR). For integration with File Replication (FSR), see Configuring file replication in the appendix.

  • If BSR is installed locally, you do not need to change the path to its configuration file as DRX automatically recognizes it through an environment variable. /etc/bsr.conf is the default path and can be changed through drx.conf.
  • It describes replication connections, setting buffer sizes and options, etc. By default, it's written in the same format as the BSR configuration file, and you'll usually end up modifying some of the contents of bsr.conf that was already written when BSR was installed locally (see Format of the BSR configuration file).


Configuration Properties

The main configuration properties are:

  • Connections: Set the DRX inbound IP and outbound IP addresses to work with replication.
  • Buffers: Set buffer size per resource (channel)
    • memlimit
    • rx-memlimit
  • Compression/Encryption: Set compression/encryption features ON/OFF

DRX sets the buffer size in the "proxy" section within the replication configuration file and the IP address in the "proxy on" section within the host section. Compression and encryption settings are described in the plugin subsection within the proxy section. Below is the basic DRX configuration form, with some differences between 1:1 single replication and 1:N multi-replication integration.


Info
title1:1 replication
  • proxy on [ proxy on hostname ] section of on [hostname] section 
    • inside [ proxy inside ip address]:[ port ]
    • outside [ proxy inside ip address ]:[ port]
  • proxy section
    • memlimit
    • plugin section
      • compressor [zlib | lz4 | iqa] level [1~9]
      • crypto openssl
      • rx-memlimit


Info
title1:N replication
  • host [ hostname] address [ host ip address ]:[port] via proxy on [proxy on hosname] section of connection section 
    • inside [ proxy inside ip address]: [ port ]
    • outside [ proxy inside ip address ]: [ port]
  • proxy section
    • memlimit
    • plugin section
      • compressor [zlib | lz4 | iqa] level [1~9]
      • crypto openssl
      • rx-memlimit

Local configuration

  • With DRX installed and running on node1 and node2 local machines, the contents of "bsr.conf" on node1 and node2 are the same on both nodes.
  • The following is an example of a 1:1 replication configuration and a 1:2 replication configuration.
  • Note that the respective port information must be exceptionally handled by the firewall and configured so that there are no redundant ports.
methodWindows configurationLinux configuration비고
1:1 replication


Code Block
titledrbd.conf
resource r0 {
    device d minor 1;      
    disk d; outside 100.100.10.31:7791;         }     } 
   on node2 {meta-disk f;         address 100.100.10.41:7789; 

 	net {
   proxy on node2 {  protocol A;
		sndbuf-size 20M;
		on-congestion pull-ahead;
		congestion-fill 480M;
		ping-timeout 30;
 inside 100.100.100.41:7790;  }

	proxy {
       outside 100.100.100.41:7791	memlimit 500M; # DRX TX Buffer
		plugin {
			#compressor zlib }level 1;
			#crypto openssl;
		}
} 
}

1:2 복제

  • Windows: MDR 구성
  • Linux: stacked 1:2 프록시 구성
Code Block
titledrbd.conf
resource r2  	}
 
	on node1 {
  startup {      address   10.10.0.250:7789;
        wfcnode-timeoutid 30;   }      	proxy {
      memlimit 500M; proxy on }node1 {
    net {       protocol Ainside 10.10.0.250:7790;
      verify-alg crc32c;       on-congestion pull-aheadoutside 10.10.0.250:7791;
       sndbuf-size 20M;}
    }
 congestion-fill 480M;  
}	on node2 {
 device e minor 2;   disk	e; address  meta-disk	g "C:/r2_meta.vhd";

  on node1 { 10.10.0.253:7789;
        node-id	 1;
      }  proxy on node2 {
          node-id	2;  inside 10.10.0.253:7790;
   }   on node3 {     node-id	3outside 10.10.0.253:7791;
        }
     connection DR-node1-node3}
}



Code Block
titledrbd.conf
resource r0 {
# 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
titledrbd.conf
global {
       disable-ip-verificationdevice /dev/bsr1;
    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;
       usage-count     nooutside 100.100.100.41:7791;
}  common {     }
  startup { } 
}




1:2 replication

  • Windows: MDR
  • Linux: stacked 1:2


Code Block
titledrbd.conf
resource r2 {
  startup {
      wfc-timeout     3;
  }
  
 }
}
resource r0 	proxy {
      memlimit protocol500M;
B;  }
  
  disknet {
      protocol A;
       on-io-error detachverify-alg crc32c;
       }on-congestion pull-ahead; 
      net {sndbuf-size 20M;
      congestion-fill 480M;
      protocolping-timeout A30;
  }

  device e minor 2;
  disk	e;
  verifymeta-alg crc32cdisk	g "C:/r2_meta.vhd";

  on node1 {
        on-congestion pull-ahead;node-id	1;    
  }
  on node2 {
    sndbuf-size 10Mnode-id	2;
  }
  on node3 {
      congestion-fill 80Mnode-id	3;
  }
  
 }      connection DR-node1-node3 { 
on
pr1	 {host node1 address 100.100.100.9:6677 via proxy on node1 {
	 	inside 100.100.100.9:6678;
	 	outside 100.100.100.9:6679;
	 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;
       }
	 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 { 

	 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
titledrbd.conf
global {
       disable-ip-verification;
       meta-disk internalusage-count     no;
}
common {
    }  } resourcestartup r0_1{
        protocol   A;    wfc-timeout    meta-disk internal3;
       }
}
resource device /dev/drbd10;r0 {
       proxydisk {
               memlimit 500Mon-io-error detach;
       }
       net {
              protocol A;
              verify-alg crc32c;
              on-congestion pull-ahead; 
              sndbuf-size 10M;
              congestion-fill 450M80M;
              ping-timeout 30;
       }
       stacked-on-top-of r0pr1 {
               address 10.30.0.135:7788device /dev/bsr0;
               disk /dev/sdb1;
               proxy on pr1 pr2{address 200.200.23.132:7799;
               meta-disk internal;
       }
inside 10.30.0.135:7789;      on pr2 {
               outside 10.30.0.135:7790;	# mirror VIPdevice /dev/bsr0;
               disk /dev/sdb1;
}        }        on dd1 {address 200.200.23.137:7799;
                 address 10.30.0.199:7788meta-disk internal;
       }
     }
resource proxyr0_1{
on dd1 {     meta-disk internal;
       device /dev/bsr10;
       proxy inside 10.30.0.199:7789;{
               memlimit 500M;
       outside 10.30.0.199:7790;}
     #DR mirror IPnet {
              }protocol A;
      }
}

4.1.2. 전용 서버 구성

기본적으로 구성파일은 양 노드, DRX 노드 모두 동일하게 구성하나, 전용서버의 특성상 이 기종 노드 즉 WDRBD 노드와 Linux DRBD 노드들을 모두 DRX에서 수용하려면 전용서버에 설치된 drbd-utils 의 특성에 맞게 DRX config를 수정할 필요가 있습니다. 구성 절차는 하기 기술된 내용에 준하며 구성예제는 Linux 전용서버를 기준으로 합니다.

  • Windows 전용서버
    1. DRX 서버로 "drbdadm.exe" 파일 복사
    2. "drbdadm.exe" 파일이 있는 폴더의 상위 폴더에 etc 폴더를 생성
    3. cygwin.dll 파일을 
    4. 생성한 etc 경로에서 "drbd.conf" 구성
  • Linux 전용서버
    1. drbd-utils 설치
    2. etc 경로에 "drbd.conf" 구성
로컬 노드LAN로컬 DRXWAN
원격 DRXLAN원격 노드 Code Block
titleWindows node r0
resource r0 { device d minor 1; disk
        verify-alg crc32c;
              on-congestion pull-ahead;
              sndbuf-size 10M;
             
d;
 
meta
congestion-
disk
fill 
e
450M;
 
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
stacked-on-top-of r0 {
               address 10.
10
30.0.
77:7789 via
135:7788;
               proxy on 
74proxy1
pr1 pr2{
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
titler0
resource r0 {
                       inside 10.30.0.135:7789;
               
device
 
/dev/drbd001;
 
#
 
dummy
     outside 10.30.0.135:7790;	# mirror 
disk /dev/sdb1; # dummy
VIP
           
meta-disk
 
/dev/sdc1;
 
#
 
dummy
 }
proxy
 
{
      }
       on dd1 {
memlimit
 
1G;
         
}
     address 10.30.0.199:7788;
  
net{
             proxy on dd1 {
 
protocol
 
A;
 
on-congestion
 
pull-ahead;
 
congestion-fill
 
950M;
                 
ping-timeout
inside 10.30.0.199:7789;
             
}
          
on w12std-0 {
outside 10.30.0.199:7790;     #DR mirror IP
         
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 {
}



Dedicated server configuration

By default, the configuration file is the same for both nodes and DRX nodes, but due to the nature of dedicated servers, DRX config must be modified to accommodate both Windows and Linux nodes in DRX. The configuration procedure is as described below, and the example configuration is based on a Linux dedicated server.


CentOS 버전에 맞게 다음 명령어 중 하나를 사용하여 DRX 서비스를 실행 

Code Block
titleCentOS 6
service drxsvc start
Code Block
titleCentOS 7
systemctl start drxsvc
Windows
  1. 시스템에 "drbd util" 설치
  2. DRX 설치
  3. DRX 설치 디렉터리에 라이선스 파일 복사(drx.lic)
  4. DRBD가 구성된 시스템에서 DRBD 설정 파일(drbd.conf, *.res)을 복사해 DRX가 설치된 시스템의 DRBD /etc 경로로 복사 : DRBD 구성파일과, DRX 구성파일 내용 일치 확인
    1. DRX 가 다수의 노드에 대한 다중 복제 세션을 처리하는 경우에는 다중리소스 형태로 각 노드들의 리소스 파일을 관리하도록 필요.
  5. DRX 서비스를 실행 

Code Block
titleDRX 종료
sc stop drxsvc
Code Block
titleDRX 종료
sc start drxsvc

설정 변경

Info
iconfalse

6.2.1 설정 변경 동일 절차

위의 절차에 따라 정상적으로 구성을 하고 DRX가 기동되면 DRBD와의 연결이 성립되고 복제가 시작됩니다. DRX를 초기기동하고 제어하는 방법에 대해선 5. Working with DRX 의 내용을 참고하세요.

4.3. drx.conf

DRBD 구성과는 별개로 DRX 내부 속성을 설정할 수 있습니다. 보통의 경우는 DRX 기본 설정으로 동작하기 때문에 속성파일을 제공할 필요가 없습니다. 이 속성은 DRX가 시작될 때 적용되고, DRX 속성 파일은 다음 속성표의 내용을 참고하여 작성합니다.

  • 파일 이름: "drx.conf"
  • 기본 위치: drx 설치 경로
  • 주의: 파일의 시작 부분에 "[global]  section"을 기술해야 함
구분속성기본 값설명기본langkorean DRX 언어 설정 파일
  • 환경설정의 "base-dir/lang"에 위치(미지정 시 실행파일 하부에 위치)
  • "korean.ini"나 "english.ini" 등과 같은 방법으로 파일 생성(utf8 파일)
    예)"korean.ini" 설정
base-dir

DRX 설치 경로

로그 저장이나 언어 설정과 관련한 파일이 있는 디렉터리의 상위 디렉터리로 지정

(미지정 시 DRX를 설치한 경로로 자동 지정됨)

drbd-conf

Windows:

  • ../etc/drbd.conf

Linux:

  • /etc/drbd.conf
"drbd config"를 이용할 경우, 해당 파일의 경로connect-timeout3

소켓 connect 또는 listen 동작에서 사용하는 타임아웃 값(단위: 초)

(※ 네트워크 환경에 따라 연결 지연이 있을 수 있으므로 연결이 원활하지 않을 때 늘릴 것을 권장)

init-timeout10

원격 DRX와 연결 후, 초기화 패킷을 주고 받는 동안의 타임아웃 값(단위: 초)

(※ 네트워크 환경에 따라 연결 지연이 있을 수 있으므로 연결이 원활하지 않을 때 늘릴 것을 권장)

bwlimit0 (disabled)송신 시 대역폭 제한 값 (수신 대역폭은 원격 DRX 의 bwlimit 값에 의해 제어)loglevel-fileinfo

파일로 저장되는 로그 레벨 지정

  • 위치: 설치 경로의 logs 폴더에 저장
ip-verificationon

off로 설정시 연결을 위해서 대기(Listen)하기위해 매칭(bind)하는 IP가 0.0.0.0(모든 IP 수신)으로 설정됩니다.

압축/암호화block-size63K압축/암호화시 사용할 block sizebab-read-spin-counter10bab에서 read시 block size 보다 작을 경우 재시도 횟수bab-read-spin-delay10bab read 재시도시 delay 값 (ms) inside 10.10.0.115:7790; outside 1157791; } resource r0 { device d minor 1; diskd; metadiske proxy{ memlimit1G; net{ protocolA; on-congestionpull-ahead; congestion-fill 950M; ping-timeout 30; } on w12std-0 { node-id 0; } on w12std-1 { node-id 1; } connection win-r0 { inside 10.10.0.115:7790; } inside 10.10.0.102:7790; outside7791 } }}resourcer1{device/dev/drbd0;disk/dev/sdb1;meta-disk/dev/sdc1;proxy{ } protocol A congestion pull-ahead; congestionfill950M ping-timeout 30; } on cen74-1 { nodeid0 } on cen74-2 { } connection linux-r1 { host cen74-1 address11:7792 via proxy on 74proxy1resource 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 { inside 10.10.0.115:7793; } inside 10.10.0.102:7793; outside7794; } } }
Local
LAN
Local DRX
WAN

Remote DRX
LAN
Remote


Code Block
titleWindows node r0
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
titler0
resource r0 {
        device /dev/bsr001; #  dummy
inside 10.10.0.102:7790;       disk /dev/sdb1; # dummy
        meta-disk /dev/sdc1; # dummy

		proxy outside 10.10.0.102:7791;{
                memlimit }1G;
        }
}
Code Block
titler1
resource r1 {
	device /dev/drbd001;
	disk /dev/sdb1;
	meta-disk /dev/sdc1;

	proxy {
		memlimit 1G;
	}
	net{
		        net{
                protocol A;
				on-congestion pull-ahead;
				congestion-fill 950M;
		                ping-timeout 30;
	}
	
	on cen74-1 {
		
        }

        on w12std-0 {
                node-id 0;
	} 	on cen74-2 { 		node-id 1; 	}  	connection}
linux-r1 { 		host cen74-1 address 10.10.0.11:7792 via proxy on 74proxy1w12std-1 {
 			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
titler0
resource r0 { node-id 1;
        }
        device /dev/drbd001; # dummyconnection win-r0 {
          disk /dev/sdb1; # dummy   host w12std-0 address 10.10.0.77:7789 via proxy meta-disk /dev/sdc1; # dummyon 74proxy1 {
          proxy {             inside 10.10.0.115:7790;
  memlimit 1G;         }         net{   outside 10.10.0.115:7791;
            protocol A; 				on-congestion pull-ahead;
				congestion-fill 950M; }
                host pingw12std-timeout1 30;
     address 10.10.0.203:7789 via proxy on 74proxy2 {
  }          on w12std-0 {          inside 10.10.0.102:7790;
     node-id 0;         }         on w12std-1 {outside 10.10.0.102:7791;
                }
node-id 1;        }
}



Code Block
titler1
resource r1 {
	device /dev/bsr001;
	disk   connection win-r0 {
                host w12std-0 address 10.10.0.77:7789 via proxy on 74proxy1 {
                        /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:7790;
                        7793;
			outside 10.10.0.115:77917794;
		}
		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
titler0
resource r0 {
        device /dev/bsr001; # dummy host
w12std-1 address 10.10.0.203:7789 via proxy on 74proxy2 { disk /dev/sdb1; # dummy
        meta-disk /dev/sdc1; # dummy

       inside 10.10.0.102:7790;
    proxy {
                memlimit 1G;
  outside 10.10.0.102:7791;     }
        net{
  }         } } 
Code Block
titler1
resource r1 { 	device /dev/drbd001protocol A;
	disk /dev/sdb1;
	meta-disk /dev/sdc1;

	proxy {
		memlimit 1G;
	}
	net{
		protocol A;
		on-congestion pull-ahead;
		congestion-fill 950M;
					on-congestion pull-ahead;
				congestion-fill 950M;
                ping-timeout 30;
 	}  	on cen74-1 { 		node-id 0; 	}

 	on cen74-2 { 		node-id 1; 	}  	connectionon linuxw12std-r10 {
 		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
titleWindows node r0
      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;
 
  
  
 
Code Block
titleLinux node r1
 
 
         
 
      outside 10.10.0.102:7791;
 
 
         
 
    }
     
 
  }
}



Code Block
titler1
resource r1 {
	device /dev/bsr001;
	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
titleWindows node r0
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
titleLinux node r1
resource r1 {
        device /dev/bsr0;
        disk /dev/sdb1;
      inside 10.10.0.115:7793;  meta-disk /dev/sdc1;

        proxy {
                outside 10.10.0.115:7794;memlimit 1G;
        }
        }net{
                host cen74-2 address 10.10.0.105:7792 via proxy on 74proxy2 {protocol A;
				on-congestion pull-ahead;
				congestion-fill 950M;
                ping-timeout 30;
        }
 inside 10.10.0.102:7793;      on cen74-1 {
                outside 10.10.0.102:7794node-id 0;
        }
       } on cen74-2 {
      }  
Code Block
titleLinux node r1
        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:

4.2. 구성 절차

4.2.1. 로컬 구성 

...

iconfalse

초기 구성

...

iconfalse
Linux

...

CentOS 버전에 맞게 다음 명령어 중 하나를 사용하여 DRX 서비스를 실행

Code Block
titleCentOS 6
service drxsvc start
Code Block
titleCentOS 7
systemctl start drxsvc
Windows

...

다음 명령어를 사용하여 DRX를 재시작

Code Block
titleDRX 종료
sc stop drxsvc
Code Block
titleDRX 재시작
sc start drxsvc

설정 변경

...

iconfalse
Linux

...

다음 명령어를 사용하여 DRX 종료 

Code Block
titleCentOS 6
service drxsvc stop
Code Block
titleCentOS 7
systemctl stop drxsvc

OS별로 다음 명령어를 사용하여 DRX 재시작 

Code Block
titleCentOS 6
service drxsvc start
Code Block
titleCentOS 7
systemctl start drxsvc
Windows
  1. 새롭게 작성된 "drbd.conf" 또는 "drx.conf" 파일을 기존 설정 파일과 교체
  2. 명령어 "drbdadm down"으로 리소스 종료 
  3. 명령어 "drbdadm up"으로 리소스 시작 
  4. 다음 명령어를 사용하여 DRX 종료 

Code Block
titleWindows
sc stop drxsvc
Code Block
titleWindows
sc start drxsvc

4.2.2. 전용 서버 구성

...

iconfalse

초기 구성

...

iconfalse
Linux

...

  1. DRX 가 다수의 노드에 대한 다중 복제 세션을 처리하는 경우에는 다중리소스 형태로 각 노드들의 리소스 파일을 관리하도록 필요.
7793;
                        outside 10.10.0.102:7794;
                }
        }




Code Block
titleLinux node r1
resource r1 {
	device /dev/bsr0;
	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;
		}
	}
}




drx.conf

Apart from the BSR configuration, you can set DRX internal behavior properties, which have the meaning of global settings that are applied when DRX starts. In most cases, you do not need to modify the drx.conf file, as DRX default settings will work. Use the following table of properties as a guide.

  • file name: "drx.conf"
  • default path: DRX Installed path
  • Caution: [global] section should be described at the beginning of the file
typepropertydefault valuedescription
normallangenglishDRX language settings file
  • Located in "base-dir/lang" of the configuration.
  • ex) korean.ini
base-dir

DRX install path

Default path where DRX is installed

bsr-conf-path

Windows:

  • ../etc/bsr.conf

Linux:

  • /etc/bsr.conf
Specify the path to bsr.conf
fsr-conf-path

Windows:

  • ../etc/bsr.conf

Linux:

  • /etc/bsr.conf
Specify the path to fsr.conf
connect-timeout10

Timeout value in seconds after connecting to a remote DRX, while sending and receiving initialization packets

bwlimit0 (unlimited)Bandwidth limit on sending (incoming bandwidth controlled by bwlimit value on remote DRX)
ip-verificationon

on: Allow only the IP connections set in dbd.conf.
off: Allow connections for all IPs.

ulimit-open-files-count0

Applies to Linux only and sets the number of files the process can open.

Values : -1 (10240), 0 (same as system setting), Specify yourself (1-65536)

ipc-port9100Specify internal ipc port values for the CLI to control the drx (supported in version 1.3.1 and later).
logloglevel-fileinfo

Specify the log level that is written as a file

  • Location: stored in the logs folder of the installation path
loglevel-consoleinfoSpecify the log level that is output to the screen in foreground mode
logfile-max-size10MFile size limit per log file
logfile-max-count10Maximum number of log files kept by type
performance-logoffWhether to save performance statistics log
compress/encrypt



block-size63K

Block size to be used for compression/encryption

  • Note: The size of the transfer buffer for compression/encryption is set to twice the block-size value and is set to 1MB maximum.
min-raw-block-size1K
압축/암호화 설정시에도 평문으로 보낼 minimum size※ 튜닝과 디버깅의 용도이므로 변경하는 것을 권장하지 않습니다
Minimal packet size to send as plain text even when compression/encryption is set.
process-thread-count-1 (auto)

멀티쓰레드 패킷 처리시 사용할 쓰레드 개수. 

Number of threads to use when processing multi-thread packets.

※ It is intended for tuning and debugging, so it is not recommended to make any changes. 


drx.conf 예제sample

drx.conf

#BSR Proxy configuration
# DRX properties
#[global]
language settings file
# lang=korean
drx_path=./#drbd-conf

Default path where DRX is installed
# base-dir=/opt/DRX

Specify the path to bsr.conf
# bsr-conf-path=c:\program files\DRX\drbdbsr.conf#connect-timeout=10

Bandwidth limit on sending
# bwlimit=100M

Block size to be used for compression/encryption
# block-size=100K

Minimal packet size to send as plain text
# min-raw-block-size=256K 

Timeout value
# connect-timeout=10

# Confirmation of binding IP that listens for connection
# ip-verification=off

# log levels: off < trace < debug < info < warning < warn < err 
loglevel-file=infoblock-size=1M # 압축/암호화시 사용할 block size (기본 63K)
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

...

error < critical
Specify the log level that is output to the screen in foreground mode
# loglevel-console=info

Specify the log level that is written as a file
# loglevel-file=info

File size limit per log file
# logfile-max-size=10M

Maximum number of log files kept by type
# logfile-max-count=10

Whether to save performance statistics log
# performance-log=off

# multi-threaded packet processing. default is auto(-1), disable to 0
# process-thread-count=8