DRX 구성파일이 작성되면 복제를 시작할 준비가 된 상태입니다. 다음의 명령들을 통해 복제리소스를 기동(up)하면 복제가 시작됩니다.
리소스에 대한 기동은 구성파일의 리소스를 한 번에 모두 기동시키거나 리소스 개별적으로 기동하는 방법을 제공합니다. DRX 설치과정에서 이미 준비한 DRX 서비스(drxsvc)를 재기동시켜서 전체 리소스를 기동(up)하거나 drx-ctl 명령을 통해 리소스 개별적으로 기동시킬 수 있습니다. 다음은 이에 대한 설명입니다.
5.1. 서비스 제어
서비스에 대한 제어는 OS에서 제공하는 서비스 제어 명령에 따라 다르게 수행됩니다. 다음은 서비스 제어 명령에 대해 OS별로 구분하여 설명하였습니다.
5.1.1. 서비스 기동
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.
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 |
---|
|
c:\>sc start drxsvc |
Code Block |
---|
|
# CentOS Centos77
[root@node1 ~]# systemctl start drxsvc
# CentOS Centos66
[root@node1 ~]# service drxsvc start |
...
Inquery
Use the service control command to check the status of the drxsvc service.
Stop
Code Block |
---|
|
c:\>sc stop drxsvc |
Code Block |
---|
|
# Centos7CentOS 7
[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 양노드 간의 연결이 시도되어야 복제 연결 성립에 대한 지연이 줄어들기 때문입니다.
|
...
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 |
---|
|
drx-ctl up [resource or all] |
...
Stop
Command to stop an intermediary connection.
Info |
---|
|
drx-ctl down [resource or all] |
5.3. 설정 제어
DRX의 설정은 구성파일의 내용을 변경하거나 drx-ctl set 명령을 통해 변경할 수 있습니다.
5.3.1. 정적 설정 변경
구성파일의 내용을 변경하고 리소스를 재시작하여 적용하는 방식을 정적 설정 변경 방식이라고 합니다.
5.3.2. 동적 설정 변경
drx-ctl set 명령을 통해 운영중에 실시간 설정을 변경하는 방식을 동적 설정 변경 방식이라고 합니다. set 명령의 설정은 실제 리소스 구성파일의 내용에 반영되지 않으며 임시설정의 의미를 가집니다. 다음은 bwlimit 의 동적설정 예시 입니다.
Info |
---|
|
drx-ctl set bwlimit [resource name ] [bwlimit-in-bytes ]
|
구성파일의 변경은 사용자에 의해 수동으로 하고 이를 운영중에 동적설정 하기 위한 명령이 drx-ctl adjust 명령입니다. adjust 명령은 설정을 적용하고 리소스를 기동하는 역할까지 수행합니다.
Info |
---|
|
drx-ctl adjust [resource name]
|
Info |
---|
현재 DRX는 설정을 변경하기 위해서 리소스 파일을 수정하거나 변경사항을 파일에 적용하는 명령을 제공하지 않습니다. 리소스 파일에 대한 수정은 사용자에 의한 수작업을 전제로 합니다. |
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.
Command | Description | Output sample |
---|
drx-ctl adjust [resource or all] | Update Settings, restart resources |
Code Block |
---|
theme | DJango |
---|
title | adjust |
---|
collapse | true |
---|
| [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.
Command | Description | Output sample |
---|
drx-ctl set compress [type] [level] [connection name] | Compression plugin settings |
Code Block |
---|
theme | DJango |
---|
title | set compress |
---|
collapse | true |
---|
| < 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 |
---|
theme | DJango |
---|
title | set crypto |
---|
collapse | true |
---|
| < 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 |
---|
theme | DJango |
---|
title | set bwlimit |
---|
collapse | true |
---|
| < 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 |
---|
theme | DJango |
---|
title | set license |
---|
collapse | true |
---|
| 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 |
---|
theme | DJango |
---|
title | reset statistics |
---|
collapse | true |
---|
| < 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.
Command | Descriptions | Output samples |
---|
drx-ctl events [connection name or all] | Real-time event output |
Code Block |
---|
theme | DJango |
---|
title | events |
---|
collapse | true |
---|
| < 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.
Event | Type | Description | Output sample |
---|
common | start | Start event notifications |
Code Block |
---|
theme | DJango |
---|
title | start |
---|
collapse | true |
---|
| [root@c73-p1 bsr.d]# drx-ctl events
[system] connected
[2018-11-27 11:22:38.933] start common |
|
stop | Stop event notifications |
Code Block |
---|
theme | DJango |
---|
title | stop |
---|
collapse | true |
---|
| [2018-11-27 11:12:39.098] stop common |
|
shutdown | Exit with a command |
Code Block |
---|
theme | DJango |
---|
title | shutdown |
---|
collapse | true |
---|
| [2018-11-27 11:12:39.076] shutdown success
|
|
set license | Licenses setting up | - temporary, permanent, invalid
Code Block |
---|
theme | DJango |
---|
title | set license |
---|
collapse | true |
---|
| [2018-11-27 13:17:58.806] set license temporary |
|
set loglevel | log level(file, console) |
Code Block |
---|
theme | DJango |
---|
title | set loglevel |
---|
collapse | true |
---|
| [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
|
|
개별 | up | up |
Code Block |
---|
theme | DJango |
---|
title | up |
---|
collapse | true |
---|
| [2018-11-27 13:50:29.151] up DR-1-3-c73-p2-c73-p1 success |
|
down | down |
Code Block |
---|
theme | DJango |
---|
title | down |
---|
collapse | true |
---|
| [2018-11-27 13:46:37.141] down DR-1-3-c73-p2-c73-p1 success |
|
accept | IP Accept result |
Code Block |
---|
theme | DJango |
---|
title | accetp state |
---|
collapse | true |
---|
| [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 |
|
conn | connection status, result |
Code Block |
---|
theme | DJango |
---|
title | conn state |
---|
collapse | true |
---|
| [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 |
|
set | compression |
Code Block |
---|
theme | DJango |
---|
title | set compress |
---|
collapse | true |
---|
| [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 |
---|
theme | DJango |
---|
title | set crypto |
---|
collapse | true |
---|
| [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 |
---|
theme | DJango |
---|
title | set bwlimit |
---|
collapse | true |
---|
| [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 |
|
reset | Resetting statistics |
Code Block |
---|
theme | DJango |
---|
title | reset statistics |
---|
collapse | true |
---|
| [2018-11-27 17:58:52.962] reset DR-1-3-c73-p2-c73-p1 success |
|
packet | Send/Receive Failure |
Code Block |
---|
theme | DJango |
---|
title | packet error |
---|
collapse | true |
---|
| [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 |
---|
theme | DJango |
---|
title | compress error |
---|
collapse | true |
---|
| [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 |
---|
theme | DJango |
---|
title | crypto error |
---|
collapse | true |
---|
| [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 |
|