Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

  • DRX 의 CLI 명령체계에 대한 설명과 응용 연동에 따른 프로그래밍 관점의 고려사항에 대해 기술합니다.


1. 개요

DRX CLI는 복제 리소스에 대한 상태 조회와 제어/통지 명령어로 구분하며 drx-ctl 유틸리티를 통해 플랫폼에 관계없이 동일한 방식으로 인터페이스를 제공합니다.

  • 조회 명령은 리소스에 대한 일반적인 요약정보를 출력하며 -v 옵션을 명령줄에 포함할 경우 상세정보를 출력합니다.
  • 제어 명령은 DRX를 리소스 단위로 기동시키고 중지시키는 설정을 동적으로 할 수 있는 명령입니다. 
  • 통지 명령은 DRX에서 발생하는 실시간 상태 변경 상황을 리소스 단위로 출력하는 명령입니다. 한번 수행하여 종료될 때까지 발생하는 이벤트를 수신하고 그 결과를 콘솔에 출력하는 기능을 제공합니다.


2. CLI 

DRX의 CLI는 조회, 제어, 통지로 분류됩니다. 

CLI의 명령어 형식은 drx-ctl {옵션} [명령어] [명령어 인자...]입니다. 명령어와 명령어 인자를 통해서 출력 종류가 결정되며 상세 모드(-v)를 선택하는 "옵션"은 생략 가능합니다. 

CLI의 출력 형식은 "명령어"에 따라서 다르며 "명령어 인자"는 접속 이름(connect name)과 리소스(resource)를 사용할 수 있습니다.

2.1 CLI 목록


분류항목옵션명령Alias비고
조회




DRX 버전N/Adrx-ctl versionverdrx 버전
DRX 상태"drx-ctl info-DRX 프로세스의 기동 또는 중지 상태
라이선스"drx-ctl licenselic라이선스 정보
리소스 구성"drx-ctl dump [resource or all]-

리소스 구성, drx.conf

  • 리소스 구성 파일을 drbdadm 유틸에서 처리하기에 resource를 입력
리소스 구동"drx-ctl show [connect name or all]-동작중인 설정 정보
연결-v

drx-ctl connection [connect name or all]

co
  • 연결 정보
  • 상세모드 (-v) : IP, Up Since, 화살표 제거
통계-vdrx-ctl statistics [connect name or all]st
  • 통계 정보
  • 상세모드 (-v) : Tx/Rx packet, 압축/암호화 Cur, Min, Max
BAB -vdrx-ctl memusage [connect name or all] mem
  • BAB 정보
  • 상세모드 (-v) : Begin, End, BAB Latency
로그N/Adrx-ctl log  [connect name or main] -
  • 현재 기록중인 로그 파일을 출력
  • Rolling한 로그 파일은 출력안함
제어

리소스 up"drx-ctl up [connect name or all]-리소스 기동
리소스 down"drx-ctl down [connect name or all]-리소스 중지
리소스 adjust"drx-ctl adjust [connect name or all] -리소스 갱신
압축"drx-ctl set compress [type] [level] [connect name ] -리소스 압축 설정
암호화"drx-ctl set crypto [on or off] [connect name ] -리소스 암호화 설정
bwlimit"drx-ctl set bwlimit [limit] [connect name ] -
  • 단위 : Bytes Per Second (K, M, G 사용가능)
  • limit : 입력한 리소스의 Bandwidth 
라이선스"drx-ctl set license [file-path]-
  • file-path : 라이선스 파일 경로
  • 지정한 경로의 라이선스 유효성 확인 후 교체
  • Valid한 라이선스로의 교체 시 종료된 DRX는 유지
통계 초기화"drx-ctl reset statistics [connect name or all] st
  • 옵션 치환 : statistics만 st로 처리
통지DRX 이벤트 통지NAdrx-ctl events {connect name or all}-통지 이벤트

2.2 통지 목록


이벤트항목타입타깃DATA설명
공통기동startcommon[start] 이벤트 통지 시작
stopcommon[stop] 이벤트 통지 종료
shutdown[success or fail]명령어에 의한 종료
적용setlicense[temporary, permanent, invalid] 사용자가 설정한 라이선스
loglevel[none, trace, debug, info, warning, critical] 로그 레벨(파일, 콘솔)
개별연결up[connect name ][success or fail] 연결 활성화 결과
down[connect name ][success or fail] 연결 삭제 결과
[drx or drbd]_accept[connect name ][IP:Port] accept 결과
[accept or connector]_state[connect name ]

[stopped/stopping, waiting, bridging/bridged, 

connecting/connected, establishing/established] 

연결 상태와 결과

state 주체와 connect name을 추가

설정set[connect name ]compressor [none, zlib, lz4, qat] [level] 압축 설정
[connect name ]crypto [none, openssl] 암호화 설정
[connect name ]bwlimit [size] 리소스의 Bandwidth
reset[connect name ][success or fail] 통계 수치 초기화
상태packet[connect name ][receive_fail] [origin size] [receive size] 

실패만 통지

compress[connect name ][compress or decompress]_fail [origin size] [receive size] [return value]

실패만 통지

crypto[connect name ][encrypto or decrypto]_fail [origin size] [receive size] [return value]

실패만 통지

3. 고려사항

  • DRX 에 대한 제어명령은 비동기적으로 수행합니다. 즉 CLI 제어 명령이 수행되어 리턴된 시점이 상태제어가 최종 완료되었음을 의미하지는 않습니다. 따라서 제어명령 수행이후 조회명령을 통해 상태가 정상적으로 변경되었는지 확인하는 과정을 추가로 수행해야 합니다.
    • 상태 변경에 대한 완료를 통보받으려면 통지 명령을 수행하여 DRX의 이벤트를 실시간 통보받을 수 있는 방식으로 인터페이싱할 수 있습니다.
  • drx-ctl 명령은 이를 수신하는 drx 서버에서 기본적으로 한 번에 하나의 명령만 수행하므로 다수의 명령이 drx로 동시에 전달될 경우 큐잉된 일부 명령에 대한 타임아웃이 발생할 수 있습니다. 타임아웃을 피하기 위해선 drx-ctl 명령이 순차적으로 수행하도록 보장해줄 필요가 있습니다.

    • drx-ctl의 반환값은 아래와 같습니다. 


      반환값설명
      drx-ctl 

      0성공
      -1실패
      -2타임아웃
      -3DRX가 실행 안됨(not working)
      -128잘못된 옵션 (Invalid argument)

4. 운영 

DRX 는 리소스 정보를 파일로 구성하고 drx-ctl 명령을 통해 각 리소스별로 제어합니다.

다음은 복제리소스를 구성하고 기동시키는 일반적인 예입니다. 

  1. 리소스 구성
  2. DRX 서비스 시작
  3. BAB사이즈를 잘못 설정해서 재설정
    1. 리소스 r0 down 
    2. 리소스 r0 의 BAB 사이즈를 700M로 변경
    3. 리소스 r0 up
  4. 동작중인 리소스에 LZ4 압축 알고리즘을 적용
    1. "drx-ctl set compress lz4 1 r0" 명령어 입력
    2. "drx-ctl mem r0" 명령어로 리소스 r0의 BAB 사용률을 확인
    3. 영구적으로 압축 설정을 적용하기 위해서 리소스 파일에 설정을 추가



5. CLI 출력 양식


5.1 조회 

  • drx-ctl version
    • 옵션 치환 : ver
    • DRX의 버전 정보를 출력합니다. 
    • 출력 샘플
      version
      < 개발 버전 >
      [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
    • 옵션 치환 : lic
    • 라이선스 정보를 출력합니다. 
    • 출력 샘플
      license
      [root@c73-p1 drbd.d]# drx-ctl lic
      Product type : DRX
      License status : Temporary, Expire date: 30-nov-2018, Validity day: 9
      
      [root@c73-p1 drbd.d]#
  • drx-ctl dump [resource or all]
    • 리소스의 설정과 drx.conf의 설정을 출력합니다. 
    • 리소스 구성 파일을 drbdadm 유틸에서 처리하기에 resource를 입력합니다.
    • drx.conf의 내용은 "<DRX configuration>"에 출력되며 ini형식(이름=값)으로 출력됩니다. 

    • 출력 샘플
      dump
      [root@c73-p1 drbd.d]# drx-ctl dump all
      # /etc/drbd.conf
      global {
          usage-count yes;
      }
      
      common {
      }
      
      # resource r0 on c73-p1: ignored, not stacked
      # defined at /etc/drbd.d/r0.res:1
      resource r0 {
          device               /dev/drbd0 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/drbd.d/r0.res:36
      resource r0-1 {
          device               /dev/drbd1 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 drbd.d]#
  • drx-ctl show [connect name or all]
    • 프로세스에서 사용중인 설정 값들을 출력합니다. 
    • 전역 설정 항목은 "<DRX configuration>"에 출력되며 ini형식(이름=값)으로 출력됩니다. 
    • 노드 설정 항목은 bwlimit와 min-raw-block-size이며 가독성을 위해서 테이블 형식으로 출력됩니다. 

    • 출력 샘플
      show
      [root@c73-p1 dgkim]# drx-ctl show all
      ------------------------------------------------
      Name                 bwlimit min-raw-block-size 
      ------------------------------------------------
      DR-1-3-c73-p2-c73-p1 1048576 256               
      ------------------------------------------------
      DR-2-3-c73-p2-c73-p1 102400  64                 
      ------------------------------------------------
      <DRX configuration>
      language=korean
      base-dir=not set
      drbd-conf=not set
      connect-timeout=3
      init-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 connections [connect name or all]
    • 옵션 치환 : co
    • 상세 옵션 : -v 
    • 리소스의 연결 정보를 출력합니다. 
      • 일반 모드 : IP Address 생략, 연결 화살표 출력

      • 상세 모드 : IP Address 출력, 연결 화살표 생략
    • 출력 샘플
      connections
      < 일반 모드 >
      [root@74qat-p1 ~]# drx-ctl co all
      -------------------------------------------------------------------------------------------------
      Name                 Type local-drbd-ip State          local-drx-ip State          remote-drx-ip
      -------------------------------------------------------------------------------------------------
      r0-74qat-p2-74qat-p1 meta (local-drbd)  -established-> (local-drx)  <-bridged----- (remote-drx)
      r0-74qat-p2-74qat-p1 data (local-drbd)  <-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-drbd-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 ~]#
  • drx-ctl statistics [connect name or all]
    • 옵션 치환 : st
    • 일반 모드 : TX, RX 속도, 압축/해제/암호화 평균 Latency를 출력합니다. 
    • 상세 모드 : TX/RX의 RAW데이터, 압축/해제/암호화의 현재값, 최대값, 최소값 출력합니다. 
    • 사용자 출력 모드 : 사용자가 원하는 column을 출력합니다. 
    • Human Readable(B, KB, MB, GB)로 출력되는 단위를 KiloBytes로 고정하며 표기를 생략합니다. KiloBytes 보다 작은 값은 0으로 표기합니다.
    •  옵션
      • 상세 모드 옵션 : v 
      • 사용자 출력 옵션 : --filter
    • 축약어 설명
      축약어설명축약어설명축약어설명
      txTX speedratiocompress average ratioecencrypto
      rxRX speedcurcompress current ratio dcdecrypto
      t-netTX-Network 전송 사이즈worstcompress worst ratio

      t-rawTX RAW 사이즈bestcompress best ratio

      r-rawRX-Network 전송 사이즈cpcompress

      r-netRX RAW 사이즈dedecompress

    • 출력 샘플
      statistics
      < 일반 모드 > 
      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 memusage [connect name or all] 
    • 리소스의 BAB 정보를 출력합니다. 
    • Human Readable(B, KB, MB, GB)로 출력되는 단위를 KiloBytes로 고정하며 표기를 생략합니다. KiloBytes 보다 작은 값은 0으로 표기합니다.
    • 옵션 치환 : mem
    • 상세 모드 
      • 옵션 : v
      • 연결된 리소스의 BAB Latency(TX, RX, 압축/해제) 정보를 출력합니다. 
    • 출력 샘플

      memusage
      < 일반 모드 >
      [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 log  [connect name or main] 
    • 기록중인 로그의 내용을 출력합니다. 
    • 옵션
      • 옵션을 입력하지 않으면 공통(main) 로그만 출력됩니다. 
      • connect name or all : 모든 리소스 또는 입력한 리소스의 로그를 출력합니다.
      • m : main 로그를 출력합니다.
      • n [숫자] : 마지막 n개의 로그를 출력합니다. 
    • 출력 샘플

      log
      < main 로그 출력 >
      [root@c69-r1 ~]# drx-ctl log
      Online mode. (main)
      I1126 08:50:17.448040 t30088 main] Resource create complete (success: 2, failed: 0)
      ^C[root@c69-r1 ~]#
      
      
      < 리소스별 로그 출력 >
      [root@c69-r1 ~]# drx-ctl log r0
      Online mode. (without main, r0-c69-r2-c69-r1)
      D1126 08:53:50.977215 t30109 r0-c69-r2-c69-r1:ad:o] <<=== drxp_type::ping
      ^C[root@c69-r1 ~]#
      [root@c69-r1 ~]# drx-ctl log r0_1
      Online mode. (without main, r0_1-c69-r3-c69-r1)
      D1126 08:54:08.696168 t30133 r0_1-c69-r3-c69-r1:cd:o] <<=== drxp_type::ping
      D1126 08:54:14.707857 t30129 r0_1-c69-r3-c69-r1:am:o]  ===>> send stream payload_len (16) meta
      D1126 08:54:14.708035 t30127 r0_1-c69-r3-c69-r1:am:o] <<=== drxp_type::stream (crypto:NONE) (compress:NONE) [16]
      D1126 08:54:14.708129 t30128 r0_1-c69-r3-c69-r1:am:o]  ===>> send stream payload_len (16) meta
      D1126 08:54:14.708208 t30127 r0_1-c69-r3-c69-r1:am:o] <<=== drxp_type::stream (crypto:NONE) (compress:NONE) [16]
      ^C[root@c69-r1 ~]#
      
      
      < main로그와 모든 리소스의 로그 출력 >
      [root@c69-r1 ~]# drx-ctl log -m all
      Online mode. (main, r0-c69-r2-c69-r1, r0_1-c69-r3-c69-r1)
      D1126 08:54:24.708287 t30126 r0_1-c69-r3-c69-r1:am:o] <<=== drxp_type::stream (crypto:NONE) (compress:NONE) [16]
      ^C[root@c69-r1 ~]#
      [root@c69-r1 ~]#
      
      
      < 마지막 10개의 로그와 모든 리소스(r0, r0_1)의 로그 출력 >
      [root@c69-r1 ~]# drx-ctl log -m -n 10 all
      Online mode. (main, r0-c69-r2-c69-r1, r0_1-c69-r3-c69-r1)
      D1126 08:54:34.708110 t30129 r0_1-c69-r3-c69-r1:am:o] <<=== drxp_type::stream (crypto:NONE) (compress:NONE) [16]
      D1126 08:54:34.708215 t30126 r0_1-c69-r3-c69-r1:am:o]  ===>> send stream payload_len (16) meta
      D1126 08:54:34.708425 t30127 r0_1-c69-r3-c69-r1:am:o] <<=== drxp_type::stream (crypto:NONE) (compress:NONE) [16]
      D1126 08:54:38.992691 t30114 r0-c69-r2-c69-r1:cm:o] <<=== drxp_type::stream (crypto:NONE) (compress:NONE) [16]
      D1126 08:54:38.992832 t30114 r0-c69-r2-c69-r1:cm:o]  ===>> send stream payload_len (16) meta
      D1126 08:54:40.696530 t30131 r0_1-c69-r3-c69-r1:cd:o] <<=== drxp_type::ping
      D1126 08:54:44.707844 t30127 r0_1-c69-r3-c69-r1:am:o]  ===>> send stream payload_len (16) meta
      D1126 08:54:44.708060 t30129 r0_1-c69-r3-c69-r1:am:o] <<=== drxp_type::stream (crypto:NONE) (compress:NONE) [16]
      D1126 08:54:44.708151 t30126 r0_1-c69-r3-c69-r1:am:o]  ===>> send stream payload_len (16) meta
      D1126 08:54:44.708223 t30129 r0_1-c69-r3-c69-r1:am:o] <<=== drxp_type::stream (crypto:NONE) (compress:NONE) [16]
      ^C[root@c69-r1 ~]#
      [root@c69-r1 ~]#

5.2 제어

  • drx-ctl up [connect name or all]
    • 입력한 리소스를 up 합니다. 
    • 설정 샘플
      up
      < 개별 리소스 up >
      [root@c73-p1 dgkim]# drx-ctl up r0
      DR-1-3-c73-p2-c73-p1: up.
      Result: 1 resource(s) up.
      
      [root@c73-p1 dgkim]#
      
      < 모든 리소스 up >
      [root@c73-p1 dgkim]# drx-ctl up all
      DR-1-3-c73-p2-c73-p1: up.
      DR-2-3-c73-p2-c73-p1: up.
      Result: 2 resource(s) up.
      
      [root@c73-p1 dgkim]#
      
      
  • drx-ctl down [connect name or all]
    • 입력한 리소스를 down 합니다.
    • 설정 샘플
      down
      < 개별 리소스 down >
      [root@c73-p1 dgkim]# drx-ctl down r0
      DR-1-3-c73-p2-c73-p1: resource down.
      Result: 1 resource(s) down.
      
      [root@c73-p1 dgkim]#
      
      < 모든 리소스 down >
      [root@c73-p1 dgkim]# drx-ctl down all
      DR-1-3-c73-p2-c73-p1: resource down.
      DR-2-3-c73-p2-c73-p1: resource down.
      Result: 2 resource(s) down.
      
      [root@c73-p1 dgkim]#
       
  • drx-ctl adjust [connect name or all] 
    • 동작중인 리소스는 갱신(update)하고, down된 리소스는 up합니다.
    • 설정 샘플
      adjust
      [root@c73-p1 drbd.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 drbd.d]#
    • 동작중인 리소스의 BAB 사이즈는 변경할 수 없습니다. 
    • 에러 예시

      adjust error
      [root@c73-p1 drbd.d]# drx-ctl adjust all 
      DR-1-3-c73-p2-c73-p1:ad: Can't change memory limit of active resource.
      DR-1-3-c73-p2-c73-p1:cm: Can't change memory limit of active resource.
      DR-1-3-c73-p2-c73-p1: updated.
      DR-2-3-c73-p2-c73-p1: updated.
      Result: 2 resource(s) updated.
      
      [root@c73-p1 drbd.d]#
  • drx-ctl set compress [type] [level] [connect name] 
    • 입력한 리소스의 압축 플러그인을 설정합니다. 
    • 옵션

      압축 종류방식압축률 설정 범위ETC
      NONE--OFF
      IQAHW1~9-
      ZLIBSW1~9-
      LZ4SW1~9-
    • 설정 샘플

      set compress
      < 리소스 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] [connect name] 
    • 입력한 리소스의 암호화 플러그인을 설정합니다. 
    • 설정 샘플
      set crypto
      < 리소스 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] [connect name] 
    • 입력한 리소스의 B/W를 설정합니다. 
    • 설정 샘플

      set bwlimit
      < 리소스 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 프로세스의 동작을 변경하지 않습니다. 
    • 설정 샘플
      set license
      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 [connect name or all] 
    • 입력한 리소스의 통계값을 초기화 합니다. 
    • 옵션 치환 : st
    • 설정 샘플
      reset statistics
      < 리소스 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]#
      
      

5.3 통지

DRX 프로세스에서 발생한 Event를 Client(drx-ctl)에서 수신할 수 있습니다. 

  • drx-ctl events {connect name or all}
    • 옵션

      • 공란 : 공용 이벤트만 출력
      • all : 모든 이벤트 출력
      • connect name : 입력한 리소스의 이벤트를 출력
    • 출력 샘플
      events
      < 공용 이벤트만 수신 >
      [root@c73-p1 drbd.d]# drx-ctl events 
      [system] connected
      [2018-11-27 11:22:38.933] start common
      
      
      < 입력한 리소스의 이벤트만 수신 >
      [root@c73-p1 drbd.d]# drx-ctl events DR-1-3-c73-p2-c73-p1
      [system] connected
      
      
      < 모든 리소스의 이벤트를 수신 >
      [root@c73-p1 drbd.d]# drx-ctl events all
      [system] connected
      [2018-11-27 10:43:12.831] start common
      
      
  • 이벤트 목록 
이벤트타입설명
공통start이벤트 통지 시작
start
[root@c73-p1 drbd.d]# drx-ctl events 
[system] connected
[2018-11-27 11:22:38.933] start common
stop이벤트 통지 종료
stop
[2018-11-27 11:12:39.098] stop common
shutdown명령어로 종료
shutdown
[2018-11-27 11:12:39.076] shutdown success
set license설정한 라이선스
  • 임시(temporary), 정식(permanent), 유효하지 않은 라이선스(invalid)
set license
[2018-11-27 13:17:58.806] set license temporary
set loglevel로그 레벨(파일, 콘솔)
set loglevel
[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
[2018-11-27 13:50:29.151] up DR-1-3-c73-p2-c73-p1 success
down비활성화
down
[2018-11-27 13:46:37.141] down DR-1-3-c73-p2-c73-p1 success
acceptIP Accept 결과
accetp state
[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] drbd_accept DR-1-3-c73-p2-c73-p1 31.1.1.164:40557
conn연결 상태와 결과
conn state
[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압축 
set compress
[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
암호화 
set crypto
[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
set bwlimit
[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통계 수치 초기화
reset statistics
[2018-11-27 17:58:52.962] reset DR-1-3-c73-p2-c73-p1 success
packet

송/수신 실패

packet error
[2018-11-28 11:12:19.953] packet DR-1-3-c73-p2-c73-p1 receive_fail 15 15
compress

실패만 통지

compress error
[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

실패만 통지

crypto error
[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




  • No labels