Versions Compared

Key

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

Table of Contents

After the DRX Configuration File is created, it is ready to start replication. You can start replication by starting (up) the replication resource with the following commands.
Startup of resources provides a way to start all resources in the configuration file at once with control over the DRX services already prepared during installation or individually through a command-type utility. The following is a description of this

5.1. Service Control

Control of a service depends on

Table of Contents


Replication resources can be manually started individually through a command-line utility, or they can be automatically started all at once through the DRX service that you staged during installation.

Service

Follow the service control commands provided by the OS. The following service control commands were described OS-separated.

...

.

Info
Since DRX 1.4, the DRX service name has been changed from DRXSVC to DRX. In the examples described below, rename the drxsvc service to drx.

Startup

Code Block
titleWindows
c:\>sc start drxsvc 


Code Block
titleLinux
# Centos7CentOS 7 
[root@node1 ~]# systemctl start drxsvc
# Centos6CentOS 6
[root@node1 ~]# service drxsvc start 

...


Inquery

Use the service control command to check the status of the drxsvc service.

Info

Windows

sc query drxsvc


Info

Linux

<CentOS 6.x>

service drxsvc status 


<CentOS 7.x>

systemctl status drxsvc 



Stop

Code Block
titleWindows
c:\>sc stop drxsvc 


Code Block
titleLinux
# CentOS Centos77 
[root@node1 ~]# systemctl stop drxsvc
# CentOS Centos66
[root@node1 ~]# service drxsvc stop

5.1.3 와치독

DRX 서비스는 DRX 프로세스에 대한 관리를 위해 DRX 와치독을 내장합니다. 와치독은 DRX 프로세스의 이상 종료를 감지할 경우 DRX를 재 기동 시키는 역할을 하고 다음과 같은 상황에서 동작합니다.

...


Watchdog

The DRX service embeds a DRX watchdog to manage the DRX process. The watchdog will restart DRX if it detects an abnormal termination of a DRX process in the following situations

  • If the DRX process is terminated unexpectedly.
  • DRX is shut down using the "drx-ctl shutdown"

...

이러한 와치독에 의한 재기동은 DRX 로그에 상시 기록되어 이력으로 남겨집니다.

DRX 프로세스가 일반적인 상황에서 종료되면 와치독에 의해서 자동 재기동되기 때문에 DRX 프로세스를 완전히 종료시키기 위해선 DRX 서비스 중지를 통해 종료해야 합니다.

5.2. 리소스 제어

리소스를 개별적으로 제어하려면 drx-ctl 의 up/down 명령을 이용해야 합니다. drx-ctl 의 all 옵션을 통해 모든 리소스의 기동/중지를 수행할 수도 있습니다.

Info
  • drx-ctl 의 up 과 drbdadm 에서 제공하는 up 은 기능적으로 의미가 다릅니다. drbdadm 의 up은 리소스의 복제 대상 장치 및 복제연결을 준비하는 과정을 수행하는 명령이고 drx-ctl 의 up 은 복제 연결을 중개하는 채널을 생성하는 명령입니다. 
  • 절차적으로는 drx-ctl up 이후 drbdadm up 이 수행되어야 복제 연결이 원할할 수 있습니다. 그 이유는 DRX 중개 채널을 미리 준비해 둔 상태에서 drbd 양노드 간의 연결이 시도되어야 복제 연결 성립에 대한 지연이 줄어들기 때문입니다. 

...

  • command.

Restarts by these watchdogs are always written to the DRX log for history.

Because the DRX process is automatically restarted by the watchdog when it is terminated under normal circumstances, the only way to completely terminate the DRX process is by stopping the DRX service.

To start DRX without a watchdog, you must start DRX in foreground mode.


Resource

To control resources individually, you should use the up/down commands of drx-ctl. You can also start/stop all resources with the all option of drx-ctl.

DRX resources are resources that mediate replication connections. They are functionally different from replication resources and should not be confused. For example, bsradm up is a command to start a replication resource, while drx-ctl up is a command to start brokering a replication connection.

Info

Procedurally, it is recommended to perform drx-ctl up followed by bsradm up. Having a DRX brokered channel ready in advance and establishing a replicated connection on both nodes is a good idea to reduce connection latency.

Startup

Commands to start an intermediary connection.

Info
iconfalse
drx-ctl up [resource or all]

...

Stop

Command to stop an intermediary connection.

Info
iconfalse
drx-ctl down [resource or all]

5.3. 설정 변경

DRX의 설정은 구성파일의 내용을 변경하거나 drx-ctl set 명령을 통해 변경할 수 있습니다.

Info

DRX는 설정을 변경하기 위해서 리소스 파일을 수정하거나 변경사항을 파일에 적용하는 명령을 제공하지 않습니다. 리소스 파일에 대한 수정은 사용자에 의한 수작업을 전제로 합니다.

5.3.1. 정적 설정 변경

구성파일의 내용을 변경하고 리소스를 재시작하여 적용하는 방식을 정적 설정 변경 방식이라고 합니다. 

5.3.2. 동적 설정 변경

drx-ctl set 명령을 통해 운영중에 실시간 설정을 변경하는 방식을 동적 설정 변경 방식이라고 합니다. set 명령의 설정은 실제 리소스 구성파일의 내용에 반영되지 않으며 임시설정의 의미를 가집니다. 다음은 bwlimit 의 동적설정 예시 입니다.

Info
iconfalse

drx-ctl set bwlimit [resource name] [bwlimit-in-bytes]

drx-ctl adjust 명령은 사용자가 직접 구성파일을 변경하고 이를 운영중에 동적 적용하기 위한 명령입니다. adjust 명령은 리소스가 중지된(down)상태이면 리소스를 기동하는 역할까지 수행합니다.

Info
iconfalse
drx-ctl adjust [resource name]

Autostart

DRX resources are automatically started by the DRX service startup. However, sometimes you may want to prevent resources from being started automatically by the service. The following configuration file settings can be used to prevent resources from starting automatically when the service starts.

Info
resource r0 {
    proxy {
        plugin {
            svc-autostart no;
        }
    }
}

Inquery

The following is a description of the drx-ctl commands that query the status and information of replication resources.

Info
The commands default to resources, but some specify just the connection name without resources.

The console output is in Kilo Bytes and is omitted.


Settings

DRX's settings can be applied by directly changing the contents of the configuration file, or by using the drx-ctl set command.

Info

DRX does not provide commands to modify resource files or apply changes to files to change settings. Modifying a resource file is subject to manual intervention by the user.

Static Settings

You manually change the contents of the bsr.conf and drx.conf configuration files and restart the resource with the adjust command to take effect.

CommandDescriptionOutput sample
drx-ctl adjust [resource or all] Update Settings, restart resources


Code Block
themeDJango
titleadjust
collapsetrue
[root@c73-p1 bsr.d]# drx-ctl adjust all
DR-1-3-c73-p2-c73-p1: up.
DR-2-3-c73-p2-c73-p1: up.
Result: 2 resource(s) updated.

[root@c73-p1 bsr.d]#


Dynamic Settings

The drx-ctl set command allows you to change settings in real-time during operation. The set command does not reflect the contents of the actual resource configuration file, so it can be said to be a temporary setting, as it will revert to the configuration file's settings when drx is restarted.

CommandDescriptionOutput sample
drx-ctl set compress [type] [level] [connection name] 

Compression plugin settings

  • type
    • NONE 
    • ZLIB
    • LZ4
  • level: 1~9


Code Block
themeDJango
titleset compress
collapsetrue
< Set the compression plugin to LZ4 for resource r0 only >
[root@c73-p1 dgkim]# drx-ctl set compress lz4 1 DR-1-3-c73-p2-c73-p1
Result: 1 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:31:10.271886 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor: LZ4
I1126 17:31:10.271918 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor level: 1
I1126 17:31:10.271924 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor: LZ4
I1126 17:31:10.271925 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor level: 1


< Disable the compression plugin on resource R0 >
[root@c73-p1 dgkim]# drx-ctl set compress none 1 DR-1-3-c73-p2-c73-p1
DR-1-3-c73-p2-c73-p1: updated.
Result: 1 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:31:37.741765 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor: NONE
I1126 17:31:37.741795 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor level: 1
I1126 17:31:37.741800 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor: NONE
I1126 17:31:37.741802 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor level: 1



< Set the compression plugin for all (2) resources to LZ4 >
[root@c73-p1 dgkim]# drx-ctl set compress lz4 1 all
Result: 2 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:32:30.656067 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor: LZ4
I1126 17:32:30.656089 t77473 DR-1-3-c73-p2-c73-p1:ad] Set compressor level: 1
I1126 17:32:30.656095 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor: LZ4
I1126 17:32:30.656118 t77473 DR-2-3-c73-p2-c73-p1:am] Set compressor: LZ4
I1126 17:32:30.656096 t77473 DR-1-3-c73-p2-c73-p1:cm] Set compressor level: 1
I1126 17:32:30.656133 t77473 DR-2-3-c73-p2-c73-p1:am] Set compressor level: 1
I1126 17:32:30.656138 t77473 DR-2-3-c73-p2-c73-p1:cd] Set compressor: LZ4
I1126 17:32:30.656139 t77473 DR-2-3-c73-p2-c73-p1:cd] Set compressor level: 1


drx-ctl set crypto [on or off] [connection name] Encryption settings


Code Block
themeDJango
titleset crypto
collapsetrue
< Enable the encryption plugin for resource R0 only > 
[root@c73-p1 dgkim]# drx-ctl set crypto on DR-1-3-c73-p2-c73-p1
DR-1-3-c73-p2-c73-p1: updated.
Result: 1 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:10:10.611963 t77473 DR-1-3-c73-p2-c73-p1:ad] Set crypto: OPENSSL
I1126 17:10:10.611987 t77473 DR-1-3-c73-p2-c73-p1:cm] Set crypto: OPENSSL


< Enable the encryption plugin for all resources > 
[root@c73-p1 dgkim]# drx-ctl set crypto on all
DR-2-3-c73-p2-c73-p1: updated.
Result: 2 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:08:26.156687 t77473 DR-1-3-c73-p2-c73-p1:ad] Set crypto: OPENSSL
I1126 17:08:26.156713 t77473 DR-2-3-c73-p2-c73-p1:am] Set crypto: OPENSSL
I1126 17:08:26.156702 t77473 DR-1-3-c73-p2-c73-p1:cm] Set crypto: OPENSSL
I1126 17:08:26.156719 t77473 DR-2-3-c73-p2-c73-p1:cd] Set crypto: OPENSSL


< Disable encryption plugins for all resources > 
[root@c73-p1 dgkim]# drx-ctl set crypto off all
DR-1-3-c73-p2-c73-p1: updated.
DR-2-3-c73-p2-c73-p1: updated.
Result: 2 resource(s) updated.

[root@c73-p1 dgkim]# 

<output log>
I1206 14:12:59.701227 t81344 DR-1-3-c73-p2-c73-p1:am] Set crypto: NONE
I1206 14:12:59.701250 t81344 DR-1-3-c73-p2-c73-p1:cd] Set crypto: NONE
I1206 14:12:59.701305 t81344 DR-2-3-c73-p2-c73-p1:ad] Set crypto: NONE
I1206 14:12:59.701315 t81344 DR-2-3-c73-p2-c73-p1:cm] Set crypto: NONE


drx-ctl set bwlimit [limit] [connection name] Setting bandwith limits 


Code Block
themeDJango
titleset bwlimit
collapsetrue
< Set the B/W of resource r0 to 1G >
[root@c73-p1 dgkim]# drx-ctl set bwlimit 1G DR-1-3-c73-p2-c73-p1
DR-1-3-c73-p2-c73-p1: updated.
Result: 1 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:21:11.633557 t77473 DR-1-3-c73-p2-c73-p1:ad] Set bandwidth limit: 1.00 GB
I1126 17:21:11.633573 t77473 DR-1-3-c73-p2-c73-p1:cm] Set bandwidth limit: 1.00 GB


< Set the B/W of all resources to 100M >
[root@c73-p1 dgkim]# drx-ctl set bwlimit 100M all
DR-1-3-c73-p2-c73-p1: updated.
DR-2-3-c73-p2-c73-p1: updated.
Result: 2 resource(s) updated.

[root@c73-p1 dgkim]#

<output log>
I1126 17:20:55.431890 t77473 DR-1-3-c73-p2-c73-p1:ad] Set bandwidth limit: 100.00 MB
I1126 17:20:55.431916 t77473 DR-1-3-c73-p2-c73-p1:cm] Set bandwidth limit: 100.00 MB
I1126 17:20:55.431964 t77473 DR-2-3-c73-p2-c73-p1:am] Set bandwidth limit: 100.00 MB
I1126 17:20:55.431984 t77473 DR-2-3-c73-p2-c73-p1:cd] Set bandwidth limit: 100.00 MB


drx-ctl set license [file-path]Change a license information
  • After validating the license for the specified path, change the license information for the default path.
  • Changing to a valid license does not change the behavior of the DRX process because the resource must remain connected.
Code Block
themeDJango
titleset license
collapsetrue
C:\Users\Administrator>drx-ctl set license drx.lic
License status : Temporary, Expire date: 30-nov-2018, Validity day: 4
Result: done.


C:\Users\Administrator>

<output log>
I1127 09:28:40.374185 t5880 main] Verify license is available
I1127 09:28:40.374185 t5880 main:license] Checking license for [C:\Users\Administrator\drx.lic]
I1127 09:28:40.374185 t5880 main:license] License Status: Temporary, Expire date: 30-nov-2018, Validity day: 4
I1127 09:28:40.389865 t5880 main] License applied


drx-ctl reset statistics [connection name or all] 

drx-ctl reset st [connection name or all] 

Resetting statistics


Code Block
themeDJango
titlereset statistics
collapsetrue
< Initialize statistics for resource R0 only >
[root@c73-p1 dgkim]# drx-ctl reset st DR-1-3-c73-p2-c73-p1
DR-1-3-c73-p2-c73-p1: reseted.
Result: 1 resource(s) reseted.

[root@c73-p1 dgkim]#

< Reset statistics for all resources >
[root@c73-p1 dgkim]# drx-ctl reset st all
DR-1-3-c73-p2-c73-p1: reseted.
DR-2-3-c73-p2-c73-p1: reseted.
Result: 2 resource(s) reseted.

[root@c73-p1 dgkim]#



Event

Receive real-time events as they happen in the DRX engine.

CommandDescriptionsOutput samples
drx-ctl events [connection name or all]Real-time event output


Code Block
themeDJango
titleevents
collapsetrue
< Receive only common events >
[root@c73-p1 bsr.d]# drx-ctl events 
[system] connected
[2018-11-27 11:22:38.933] start common


< Receive only events from specified connections >
[root@c73-p1 bsr.d]# drx-ctl events DR-1-3-c73-p2-c73-p1
[system] connected


< Receive all events >
[root@c73-p1 bsr.d]# drx-ctl events all
[system] connected
[2018-11-27 10:43:12.831] start common



A list of event notifications.

EventTypeDescriptionOutput sample
commonstartStart event notifications


Code Block
themeDJango
titlestart
collapsetrue
[root@c73-p1 bsr.d]# drx-ctl events 
[system] connected
[2018-11-27 11:22:38.933] start common


stopStop event notifications


Code Block
themeDJango
titlestop
collapsetrue
[2018-11-27 11:12:39.098] stop common


shutdownExit with a command


Code Block
themeDJango
titleshutdown
collapsetrue
[2018-11-27 11:12:39.076] shutdown success


set licenseLicenses setting up
  • temporary, permanent, invalid
Code Block
themeDJango
titleset license
collapsetrue
[2018-11-27 13:17:58.806] set license temporary


set loglevellog level(file, console)


Code Block
themeDJango
titleset loglevel
collapsetrue
[2018-11-27 13:44:31.681] set loglevel-file trace
[2018-11-27 13:44:41.496] set loglevel-file debug
[2018-11-27 13:44:44.328] set loglevel-file info
[2018-11-27 13:44:46.088] set loglevel-file warning
[2018-11-27 13:44:47.968] set loglevel-file error
[2018-11-27 13:44:48.104] set loglevel-file critical
[2018-11-27 13:44:57.776] set loglevel-file off


개별upup


Code Block
themeDJango
titleup
collapsetrue
[2018-11-27 13:50:29.151] up DR-1-3-c73-p2-c73-p1 success


downdown


Code Block
themeDJango
titledown
collapsetrue
[2018-11-27 13:46:37.141] down DR-1-3-c73-p2-c73-p1 success


acceptIP Accept result


Code Block
themeDJango
titleaccetp state
collapsetrue
[2018-11-27 13:50:29.659] drx_accept DR-1-3-c73-p2-c73-p1 31.1.1.192:33476
[2018-11-27 13:50:34.298] bsr_accept DR-1-3-c73-p2-c73-p1 31.1.1.164:40557


connconnection status, result


Code Block
themeDJango
titleconn state
collapsetrue
[2018-11-27 14:23:39.120] acceptor_state DR-1-3-c73-p2-c73-p1 bridging
[2018-11-27 14:23:39.121] connector_state DR-1-3-c73-p2-c73-p1 bridging
[2018-11-27 14:23:39.123] connector_state DR-1-3-c73-p2-c73-p1 bridged
[2018-11-27 14:23:39.222] connector_state DR-1-3-c73-p2-c73-p1 connecting
[2018-11-27 14:23:39.328] acceptor_state DR-1-3-c73-p2-c73-p1 bridged
[2018-11-27 14:23:39.422] acceptor_state DR-1-3-c73-p2-c73-p1 waiting
[2018-11-27 14:23:43.960] acceptor_state DR-1-3-c73-p2-c73-p1 connected
[2018-11-27 14:23:43.960] acceptor_state DR-1-3-c73-p2-c73-p1 establishing
[2018-11-27 14:23:44.038] acceptor_state DR-1-3-c73-p2-c73-p1 established
[2018-11-27 14:23:44.069] connector_state DR-1-3-c73-p2-c73-p1 establishing
[2018-11-27 14:23:44.069] connector_state DR-1-3-c73-p2-c73-p1 established


setcompression


Code Block
themeDJango
titleset compress
collapsetrue
[2018-11-27 15:27:26.895] set DR-1-3-c73-p2-c73-p1 compressor NONE
[2018-11-27 15:27:50.308] set DR-1-3-c73-p2-c73-p1 compressor LZ4 1
[2018-11-27 15:30:34.584] set DR-1-3-c73-p2-c73-p1 compressor ZLIB 1
[2018-11-27 17:48:31.204] set DR-1-3-c73-p2-c73-p1 compressor IQA 1


crypto


Code Block
themeDJango
titleset crypto
collapsetrue
[2018-11-27 17:50:32.851] set DR-1-3-c73-p2-c73-p1 crypto OPENSSL
[2018-11-27 17:50:46.264] set DR-1-3-c73-p2-c73-p1 crypto NONE


Bandwidth


Code Block
themeDJango
titleset bwlimit
collapsetrue
[2018-11-27 17:56:07.698] set DR-1-3-c73-p2-c73-p1 bwlimit 1073741824
[2018-11-27 17:58:12.380] set DR-1-3-c73-p2-c73-p1 bwlimit 104857600


resetResetting statistics


Code Block
themeDJango
titlereset statistics
collapsetrue
[2018-11-27 17:58:52.962] reset DR-1-3-c73-p2-c73-p1 success


packet

Send/Receive Failure


Code Block
themeDJango
titlepacket error
collapsetrue
[2018-11-28 11:12:19.953] packet DR-1-3-c73-p2-c73-p1 receive_fail 15 15


compress

Failure-only notifications


Code Block
themeDJango
titlecompress error
collapsetrue
[2018-11-28 09:43:04.543] compress DR-1-3-c73-p2-c73-p1 compress_fail 80 1048576 0
[2018-11-28 10:28:30.629] compress DR-1-3-c73-p1-c73-p2 decompress_fail 47 1048576 0


crypto

Failure-only notifications


Code Block
themeDJango
titlecrypto error
collapsetrue
[2018-11-28 10:28:42.186] crypto DR-2-3-c73-p2-c73-p1 encrypto_fail 41 1048576 48
[2018-11-28 10:28:42.081] crypto DR-2-3-c73-p1-c73-p2 decrypto_fail 96 1048576 80