Versions Compared

Key

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

Table of Contents

...

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

...

drx 리소스는 복제 연결을 중개하는 리소스 입니다. 복제 리소스와는 기능적으로 차이가 있으므로 혼동하지 말아야 합니다. 예를 들어 bsradm up은 복제 리소스를 시작하는 명령이고 drx-

...

ctl up 은 복제 연결의 중개를 시작하는 명령입니다. 

Info

절차적으로는 drx-ctl up 이후 bsradm up 의 순서로 수행하는게 좋습니다. DRX 중개 채널을 미리 준비해 두고 양 노드의 복제 연결을 수립하는 것이 연결 지연을 줄이는 데 좋습니다.

시작

중개 연결을 시작하는 명령입니다.

Info
iconfalse
drx-ctl up [resource or all]

중지

중개 연결을 중지하는 명령입니다.

Info
iconfalse
drx-ctl down [resource or all]

...

명령어 설명출력 예시 (단위는 KiloBytes)

drx-ctl version

drx-ctl ver

버전 정보


Code Block
themeDJango
titleversion
collapsetrue
< 개발 버전 >
[root@c69-r1 dgkim]# drx-ctl ver
drx     : Test version: Nov 29 2018, 16:13:46

[root@c69-r1 dgkim]#

< 배포(TEST빌드) 버전 >
[root@c69-r1 dgkim]# drx-ctl ver
drx     : 1.2(2018-11-29_16-52-41_TEST1) GIT-hash: b62c996 Nov 29 2018, 16:55:04

[root@c69-r1 dgkim]#


drx-ctl license

drx-ctl lic

라이선스 정보


Code Block
themeDJango
titlelicense
collapsetrue
[root@c73-p1 bsr.d]# drx-ctl lic
Product type : DRX
License status : Temporary, Expire date: 30-nov-2018, Validity day: 9

[root@c73-p1 bsr.d]#


drx-ctl dump [resource or all]


리소스 파일, drx.conf 파일의 덤프

  • drx.conf의 내용은 "<DRX configuration>"에 출력되며 ini형식(이름=값)으로 출력됩니다. 


Code Block
themeDJango
titledump
collapsetrue
[root@c73-p1 bsr.d]# drx-ctl dump all
# /etc/bsr.conf
global {
    usage-count yes;
}

common {
}

# resource r0 on c73-p1: ignored, not stacked
# defined at /etc/bsr.d/r0.res:1
resource r0 {
    device               /dev/bsr0 minor 0;
    disk                 /dev/sdd1;
    meta-disk        /dev/sdb1;
    on c74-1 {
        node-id 1;
    }
    on c74-3 {
        node-id 3;
    }
    connection DR-1-3 {
        host c74-1         address         ipv4 31.1.1.164:6677         via proxy on c73-p1 {
            inside           ipv4 31.1.1.191:6678;
            outside          ipv4 31.1.1.191:6679;
        }
        host c74-3         address         ipv4 31.1.1.166:6677         via proxy on c73-p2 {
            inside           ipv4 31.1.1.192:6678;
            outside          ipv4 31.1.1.192:6679;
        }
    }
    net {
        protocol           A;
        on-congestion    pull-ahead;
        sndbuf-size      10M;
        congestion-fill  480M;
    }
    proxy {
        memlimit         500M;
    }
}

# resource r0-1 on c73-p1: ignored, not stacked
# defined at /etc/bsr.d/r0.res:36
resource r0-1 {
    device               /dev/bsr1 minor 1;
    disk                 /dev/sdd2;
    meta-disk        /dev/sdb2;
    on c74-2 {
        node-id 2;
    }
    on c74-3 {
        node-id 3;
    }
    connection DR-2-3 {
        host c74-2         address         ipv4 31.1.1.165:6680         via proxy on c73-p1 {
            inside           ipv4 31.1.1.191:6681;
            outside          ipv4 31.1.1.191:6682;
        }
        host c74-3         address         ipv4 31.1.1.166:6680         via proxy on c73-p2 {
            inside           ipv4 31.1.1.192:6681;
            outside          ipv4 31.1.1.192:6682;
        }
    }
    net {
        protocol           A;
        on-congestion    pull-ahead;
        sndbuf-size      10M;
        congestion-fill  480M;
    }
    proxy {
        memlimit         500M;
    }
}


<DRX configuration>
lang=korean
proxy-type=1
loglevel-file=debug

[root@c73-p1 bsr.d]#


drx-ctl show [connection name or all] 현재 적용된 설정 값
  • 전역 설정 항목은 "<DRX configuration>"에 출력되며 ini형식(이름=값)으로 출력됩니다. 


  • 노드 설정 항목은 가독성을 위해서 테이블 형식으로 출력됩니다. 
Code Block
themeDJango
titleshow
collapsetrue
[root@c73-p1 dgkim]# drx-ctl show all
-----------------------------------------------------------------------
Name                 bwlimit min-raw-block-size compress level crypto  
-----------------------------------------------------------------------
DR-1-3-c73-p2-c73-p1 0       0                  NONE     9     OPENSSL 
-----------------------------------------------------------------------
DR-2-3-c73-p2-c73-p1 0       0                  LZ4      1     NONE    
-----------------------------------------------------------------------
<DRX configuration>
language=korean
base-dir=not set
bsr-conf=not set
connect-timeout=10
loglevel-file=debug
loglevel-stdout=info
logfile-max-size=10.00 MB
logfile-max-count=10
performance-log-enable=disable
ip-verification=on
process-thread-count=auto

[root@c73-p1 dgkim]#


drx-ctl memusage [connection name or all] 

drx-ctl mem [connection name or all] 

리소스의 버퍼 메모리 정보


Code Block
themeDJango
titlememusage
collapsetrue
< 일반 모드 >
[root@c73-p1 dgkim]# drx-ctl mem all
--------------------------------------------------------------------------------------
Name                 Capacity Use (Size)                                  Full Counts 
--------------------------------------------------------------------------------------
DR-1-3-c73-p2-c73-p1 716800   [>>>>>>>.....................] 23% (163277) 0           
                     10240    [............................]  0% (0)      -           
--------------------------------------------------------------------------------------
DR-2-3-c73-p2-c73-p1 512000   [............................]  0% (0)      0           
                     10240    [............................]  0% (0)      -           
--------------------------------------------------------------------------------------
 Active bab counts : 2

<상세 모드>
[root@c73-p1 dgkim]# drx-ctl mem all -v
----------------------------------------------------------------------------------------------------------
Name                 Capacity Begin     End       Use (Size)                                  Full Counts 
----------------------------------------------------------------------------------------------------------
DR-1-3-c73-p2-c73-p1 716800   340236152 504137496 [>>>>>>>.....................] 22% (160060) 0           
                     10240    0         0         [............................]  0% (0)      -           
----------------------------------------------------------------------------------------------------------
DR-2-3-c73-p2-c73-p1 512000   64273922  64273922  [............................]  0% (0)      0           
                     10240    0         0         [............................]  0% (0)      -           
----------------------------------------------------------------------------------------------------------
 Active bab counts : 2
----------------------------------------------------------------------------------------------------------
name                 Latency    cur             avg             max             min             
----------------------------------------------------------------------------------------------------------
DR-1-3-c73-p2-c73-p1 TX BAB     00:00:00.000000 00:00:00.443516 00:00:06.765142 00:00:00.000101 
                     RX BAB     00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 
                     Compress   00:00:00.000088 00:00:00.000087 00:00:00.001439 00:00:00.000001 
                     Decompress 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 
----------------------------------------------------------------------------------------------------------
DR-2-3-c73-p2-c73-p1 TX BAB     00:00:00.000000 00:00:00.001627 00:00:00.004173 00:00:00.000261 
                     RX BAB     00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 
                     Compress   00:00:00.000000 00:00:00.000113 00:00:00.001440 00:00:00.000001 
                     Decompress 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 
----------------------------------------------------------------------------------------------------------
 Active bab counts : 2
[root@c73-p1 dgkim]#


drx-ctl statistics [connection name or all]

drx-ctl st [connection name or all]

각종 통계치 출력
  • 사용자가 원하는 column만을 출력하는 옵션 : --filter
  • 압축률(ratio)는 소수점 둘째 자리까지 출력합니다. 압축률(ratio)는 원본 사이즈를 압축 결과 사이즈로 나누기에 소수점이 출력되야 가독성이 좋습니다. 
Code Block
themeDJango
titlestatistics
collapsetrue
< 일반 모드 > 
C:\Users\Administrator>drx-ctl st all
---------------------------------------------------------------
name              type tx rx ratio cp-avg ec-avg dc-avg de-avg
---------------------------------------------------------------
w1-w2-w16-2-w16-1 meta 0  0
w1-w2-w16-2-w16-1 data 0  0  0.00  0      0      0      0
---------------------------------------------------------------
 All connections : 2, Established : 2

C:\Users\Administrator>

< 상세 모드 >
C:\Users\Administrator>drx-ctl st all -v
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
name              type tx rx t-raw t-net r-raw r-net ratio cur  best worst cp-avg cp-cur cp-min cp-max ec-avg ec-cur ec-min ec-max dc-avg dc-cur dc-min dc-max de-avg de-cur de-min de-max
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
w1-w2-w16-2-w16-1 meta 0  0
w1-w2-w16-2-w16-1 data 90 0  63118 63135 0     0     0.00  0.00 0.00 0.00  0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 All connections : 2, Established : 2

C:\Users\Administrator>

< 사용자 출력 모드 >
C:\Users\Administrator>drx-ctl st all -v --filter=name,tx,rx,cp-avg,cp-cur,cp-min,cp-max
----------------------------------------------------
name              tx rx cp-avg cp-cur cp-min cp-max
----------------------------------------------------
w1-w2-w16-2-w16-1 0  0
w1-w2-w16-2-w16-1 0  0  0      0      0      0
----------------------------------------------------
 All connections : 2, Established : 2

C:\Users\Administrator>

drx-ctl connections [connection name or all]

drx-ctl co [connection name or all]

리소스의 연결 정보


Code Block
themeDJango
titleconnections
collapsetrue
< 일반 모드 >
[root@74qat-p1 ~]# drx-ctl co all
-------------------------------------------------------------------------------------------------
Name                 Type local-bsr-ip State          local-drx-ip State          remote-drx-ip
-------------------------------------------------------------------------------------------------
r0-74qat-p2-74qat-p1 meta (local-bsr)  -established-> (local-drx)  <-bridged----- (remote-drx)
r0-74qat-p2-74qat-p1 data (local-bsr)  <-established- (local-drx)  -----bridged-> (remote-drx)
-------------------------------------------------------------------------------------------------
 All connections : 2, Established : 2
[root@74qat-p1 ~]#

< 상세 모드 >
[root@74qat-p1 ~]# drx-ctl co all -v
----------------------------------------------------------------------------------------------------------------------------------
Name                 Type local-bsr-ip   State       local-drx-ip                    State   remote-drx-ip   Up since
----------------------------------------------------------------------------------------------------------------------------------
r0-74qat-p2-74qat-p1 meta 31.1.1.121:8800 established 31.1.1.138:8801/31.1.1.138:8802 bridged 31.1.1.139:8802 -
r0-74qat-p2-74qat-p1 data 31.1.1.121:8800 established 31.1.1.138:8801/31.1.1.138:8802 bridged 31.1.1.139:8802 2018-11-23 18:07:49
----------------------------------------------------------------------------------------------------------------------------------
 All connections : 2, Established : 2
[root@74qat-p1 ~]#


...

사용자가 직접 bsr.conf 와 drx.conf 구성파일의 내용을 변경하고 adjust 명령을 통해 리소스를 재 시작하여 적용 합니다.

명령설명출력 예
drx-ctl adjust [resource or all] 설정 갱신, 중지된 리소스 기동


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]#

...


동적 설정

drx-ctl set 명령을 통해 운영중에 실시간으로 설정을 변경할 수 있습니다. set 명령은 실제 리소스 구성파일의 내용에 반영되지 않으므로 내용을 변경하지는 않기 떄문에 drx 가 재 시작될 경우 시작되면 동적 설정 전의 구성파일의 설정으로 돌아가므로 임시 임시적인 설정이라고 할 수 있습니다.

명령설명출력 예
drx-ctl set compress [type] [level] [connection name] 

압축 플러그인 설정

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


Code Block
themeDJango
titleset compress
collapsetrue
< 리소스 r0만 압축 플러그인을 LZ4로 설정 >
[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]#

<로그 출력>
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


< 리소스 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]#

<로그 출력>
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



< 모든(2개) 리소스의 압축 플러그인을 LZ4로 설정 >
[root@c73-p1 dgkim]# drx-ctl set compress lz4 1 all
Result: 2 resource(s) updated.

[root@c73-p1 dgkim]#

<로그 출력>
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] 암호화 설정


Code Block
themeDJango
titleset crypto
collapsetrue
< 리소스 r0만 암호화 플러그인을 활성화 > 
[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]#

<로그 출력>
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


< 모든 리소스의 암호화 플러그인을 활성화 > 
[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]#

<로그 출력>
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


< 모든 리소스의 암호화 플러그인을 비활성화 > 
[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]# 

<로그 출력>
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] B/W를 설정


Code Block
themeDJango
titleset bwlimit
collapsetrue
< 리소스 r0의 B/W를 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]#

<로그 출력>
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


< 모든 리소스의 B/W를 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]#

<로그 출력>
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]라이선스 정보를 변경
  • 지정한 경로의 라이선스 유효성을 확인한 후, 기본 경로의 라이선스 정보를 변경합니다. 
  • 유효한 라이선스로 변경시 리소스의 연결을 유지해야하므로 DRX 프로세스의 동작을 변경하지 않습니다. 
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>

<로그 출력>
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] 

통계값 초기화


Code Block
themeDJango
titlereset statistics
collapsetrue
< 리소스 r0만 통계값을 초기화 >
[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]#

< 모든 리소스의 통계값을 초기화 >
[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]#



이벤트

drx 엔진에서 발생하는 이벤트를 실시간 수신할 수 있습니다.

명령어설명출력 예시
drx-ctl events [connection name or all]실시간 이벤트 출력


Code Block
themeDJango
titleevents
collapsetrue
< 공용 이벤트만 수신 >
[root@c73-p1 bsr.d]# drx-ctl events 
[system] connected
[2018-11-27 11:22:38.933] start common


< 입력한 연결의 이벤트만 수신 >
[root@c73-p1 bsr.d]# drx-ctl events DR-1-3-c73-p2-c73-p1
[system] connected


< 모든 이벤트를 수신 >
[root@c73-p1 bsr.d]# drx-ctl events all
[system] connected
[2018-11-27 10:43:12.831] start common


...