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 »

Overview

  • A user/replication console application can pass CLI commands to the FSR to perform any action related to the operation of the FSR.

  • The FSR CLI is all provided as a REST-API.

  • Node-specific settings are set or controlled by commands on each node (no cluster-wide control commands are provided).

  • All settings are dynamically adaptable by default during operation (except for some settings such as required attributes)

REST-API

All REST-APIs are built on gRPC and operate as JSON-RPC over HTTP. The functionality for surveillance requires continuous data passing, so only gRPC is provided.

분류

항목

REST-API

동작

비고

1

config

시스템 설정 조회

GET

/api/v1/config

동작 중인 설정을 반환

-

2

시스템 설정 조회 (파일)

GET

/api/v1/config/dump

파일을 읽어 반환

-

3

시스템 설정 조회 (파일, XML)

GET

/api/v1/config/dump-xml

파일을 읽어 XML로 반환

-

4

시스템 설정 변경

PUT

/api/v1/config

파일에 저장

-

5

시스템 설정 변경 (업데이트)

PUT

/api/v1/config/update

설정을 적용하고 파일에 저장

변경할 부분만 받아 처리함
adjust 호출 필요 없음

6

시스템 설정 갱신

POST

/api/v1/config/adjust

파일로부터 읽어 동작 중인 설정을 갱신

-

7

리소스 목록 조회

GET

/api/v1/resources

리소스 ID 목록 반환

필요성 점검 필요

8

개별 리소스 설정 조회

GET

/api/v1/resource/{ID}

동작 중인 설정을 반환

all 사용 가능

9

개별 리소스 설정 조회 (파일)

GET

/api/v1/resource/{ID}/dump

파일을 읽어 반환

all 사용 가능

10

개별 리소스 설정 조회 (파일, XML)

GET

/api/v1/resource/{ID}/dump-xml

파일을 읽어 XML로 반환

all 사용 가능

11

개별 리소스 설정 변경

PUT

/api/v1/resource/{ID}

파일에 저장

없는 ID 지정 시 새 리소스 파일 생성

12

개별 리소스 설정 변경 (업데이트)

PUT

/api/v1/resource/{ID}/update

설정을 적용하고 파일에 저장

변경할 부분만 받아 처리함
adjust 호출 필요 없음

13

개별 리소스 설정 갱신

POST

/api/v1/resource/{ID}/adjust

파일로부터 읽어 동작 중인 설정을 갱신

all 사용 가능

14

개별 리소스 설정 삭제

DELETE

/api/v1/resource/{ID}

파일 삭제

동작 중인 리소스에는 영향이 없다

15

control

메타 데이터 생성

POST

/api/v1/resource/{ID}/create-meta

리소스 메타 데이터 생성

all 사용 가능

16

메타 데이터 삭제

POST

/api/v1/resource/{ID}/delete-meta

리소스 메타 데이터 삭제

all 사용 가능

17

메타 데이터 정리

POST

/api/v1/resource/cleanup-meta

사용되지 않는 메타 데이터 삭제

-

18

리소스 추가

POST

/api/v1/resource/{ID}/add

리소스 파일을 읽어 적재

all 사용 가능

19

리소스 삭제

POST

/api/v1/resource/{ID}/delete

리소스를 목록에서 제거

all 사용 가능

20

리소스 파일 적재

POST

/api/v1/resource/{ID}/attach

리소스에 파일 적재

all 사용 가능

21

리소스 파일 분리

POST

/api/v1/resource/{ID}/detach

리소스에서 파일 분리

all 사용 가능

22

리소스 기동

POST

/api/v1/resource/{ID}/up

리소스를 적재하여 실행

all 사용 가능.
add, attach, connect 동작

23

리소스 중지

POST

/api/v1/resource/{ID}/down

리소스의 연결을 끊고 분리

all 사용 가능.
disconnect, detach, del 동작

24

승격

POST

/api/v1/resource/{ID}/primary

Primary로 승격 시도

-

25

강등

POST

/api/v1/resource/{ID}/secondary

Secondary로 강등

-

26

연결

POST

/api/v1/resource/{ID}/connect/{PEER}

Connecting 상태로 변경

all 사용 가능. peer 생략 시 전체 연결

27

연결 해제

POST

/api/v1/resource/{ID}/disconnect/{PEER}

Standalone 상태로 변경

all 사용 가능. peer 생략 시 전체 연결 해제

28

동기화 시작

POST

/api/v1/resource/{ID}/resync/{PEER}

상대 노드를 소스로 동기화 시작

all 사용 가능

29

원격 동기화 시작

POST

/api/v1/resource/{ID}/resync-remote/{PEER}

이 노드를 소스로 동기화 시작

all 사용 가능

30

정합성 검증 시작

POST

/api/v1/resource/{ID}/verify/{PEER}

상대 노드를 소스로 정합성 검증 시작

all 사용 가능

31

일시 중지

POST

/api/v1/resource/{ID}/pause

동기화 또는 복제 일시 중지

all 사용 가능. peer 생략 시 전체 일시 중지

32

재개

POST

/api/v1/resource/{ID}/resume

동기화 또는 복제 재개

all 사용 가능. peer 생략 시 전체 재개

33

파일 보호

POST

/api/v1/resource/{ID}/lock/{LEVEL}

파일 보호 시작

all 사용 가능. 쓰기 방지, 읽기/쓰기 방지

34

파일 보호 해제

POST

/api/v1/resource/{ID}/unlock

파일 보호 해제

all 사용 가능

35

RID 갱신

POST

/api/v1/resource/{ID}/rid/update

리소스의 RID 갱신 (Rotate)

-

36

RID 강제 설정

POST

/api/v1/resource/{ID}/rid

리소스의 RID를 변경

-

37

열려있는 파일 닫기

POST

/api/v1/resource/{ID}/close-files

복제를 위해 열려있는 파일을 모두 닫음

all 사용 가능

38

네트워크 대역폭 변경

PUT

/api/v1/resource/{ID}/override/network-limit/{PEER}

네트워크 대역폭을 임의로 변경

all 사용 가능

39

네트워크 대역폭 되돌리기

DELETE

/api/v1/resource/{ID}/override/network-limit/{PEER}

네트워크 대역폭을 구성 값으로 되돌리기

all 사용 가능

40

Inqury

리소스 상태 조회

GET

/api/v1/resource/{ID}/status

리소스와 연결의 상태 값 목록 반환

all 사용 가능

41

리소스 성능 조회

GET

/api/v1/resource/{ID}/perf

BAB, 소켓 등의 성능 정보 반환

all 사용 가능

42

정합성 검증/동기화 결과 조회 (요약)

GET

/api/v1/resource/{ID}/result

동기화 또는 정합성 검증의 결과 요약 내용 반환

-

43

정합성 검증/동기화 결과 조회 (범위)

GET

/api/v1/resource/{ID}/result/batch/{index}/{count}

동기화 또는 정합성 검증의 파일 결과 반환

시작 인덱스와 요청 개수 지정

44

정합성 검증/동기화 결과 조회 (파일)

GET

/api/v1/resource/{ID}/result/file/{dir}/{name}

동기화 또는 정합성 검증의 파일 결과 반환

디렉토리 인덱스와 파일명 지정

45

RID 조회

GET

/api/v1/resource/{ID}/rid

리소스의 RID 값 반환 (Old ULID 축약)

all 사용 가능

46

RID 조회 (전체)

GET

/api/v1/resource/{ID}/rid-long

리소스의 RID 값 반환 (전체 Old ULID)

all 사용 가능

47

EFS

인증서 목록 조회

GET

/api/v1/efs/cert

실행 계정의 인증서 목록 반환

-

48

인증서 내보내기

POST

/api/v1/efs/cert/{Thumbprint}/export

지정 인증서를 pfx 포맷으로 반환

인증서 내용은 base64 인코딩으로 전달

49

인증서 가져오기

POST

/api/v1/efs/cert

인증서를 스토어로 가져오기

인증서 내용은 base64 인코딩으로 전달

50

암호화를 위한 현재 인증서 지정

POST

/api/v1/efs/cert/{Thumbprint}/set-current

지정 인증서를 현재 인증서로 지정

-

51

인증서 삭제

DELETE

/api/v1/efs/cert/{Thumbprint}

지정 인증서 삭제

-

52

Manage

FSR 정보 조회

GET

/api/v1/system

버전 등의 일반적인 정보 반환

-

53

FSR 재시작

POST

/api/v1/system/restart

FSR 프로세스 재시작

-

54

FSR 중지

POST

/api/v1/system/stop

FSR 프로세스 중지

-

55

Tool

RID 비교

POST

/api/v1/tool/rid_compare

두 RID 비교

-

56

License

라이선스 조회

GET

/api/v1/license

라이선스 상태 조회

-

57

라이선스 설정

PUT

/api/v1/license

라이선스 설정

-

리소스 ID 확장

0.7에서 로컬 복제 기능이 추가되면서 하나의 리소스 파일에 두 개 이상의 노드가 로컬에 적재 될 수 있게 되었습니다. 이런 경우 리소스 ID만으로는 노드를 구분할 수 없으므로 다음과 같이 노드명을 추가로 지정해야 합니다.

리소스ID:노드명

  • 호스트명을 인식하여 자신의 노드로 인식되는 노드만 지정 할 수 있습니다.

  • 노드명을 생략하여 리소스 ID만 지정하면 자신의 모든 노드에 일괄 적용합니다.

    • 단, 다음의 명령은 노드가 1개인 경우에만 노드명을 생략 할 수 있습니다.

      • 승격, 강등, 동기화/정합성 검증 시작

사용 예)

  • 노드명 지정: fsradm up r0:node1

  • 노드명 생략: fsradm up r0

조회 명령의 출력 내용

리소스 상태 조회

  • Resources(Array)

    • id: 리소스 ID

    • node: 자신의 노드명

    • role: 역할

    • file_state: 파일 상태

    • lock: 파일 잠금 상태

    • last_promoted: 마지막으로 승격된 시간

    • pending: 다운로드 중인 파일 개수

    • connections(Array): 상대 노드와의 연결 목록

      • peer: 상대 노드명

      • state: 내 상태

      • role: 상대 노드의 역할

      • peer_state: 상대 노드 상태

      • file_state: 상대 노드 파일 상태

      • repl_started: 복제가 시작된 시간

      • last_synced: 최근 동기화 완료 시간

      • out_of_sync: 타겟에 적용되지 않았고 버퍼링 되지 않은 데이터량

      • sync_errors: 동기화 오류 발생 수

      • sync: 동기화 상태. 진행 중인 아니면 NULL

        • message: 상태 메시지

        • errored_files: 오류가 발생한 파일 수

        • bytes_done: 동기화 완료된 바이트 수

        • bytes_total: 동기화 해야하는 총 바이트 수

        • progress: 진행률 (0~100%)

리소스 성능 조회

  • Resources(Array)

    • id: 리소스 ID

    • node: 자신의 노드명

    • connections(Array): 상대 노드와의 연결 목록

      • peer: 상대 노드명

      • bytes_in: 초당 수신량

      • bytes_out: 초당 전송량

      • memory_buffer: 메모리 버퍼 상태

        • usage: 사용량

        • size: 크기

      • file_buffer: 파일 버퍼 상태

        • usage: 사용량

        • limit: 제한

명령어

fsradm의 모든 기능은 gRPC와 REST-API를 통해 동작합니다.
control 명령이 기본 명령으로 지정되어 있으므로 생략하고 하위 명령을 바로 사용 할 수 있습니다.

명령어 구조:

  • control, ctl: 리소스 관련 제어

    • config, conf: 리소스 구성 파일 제어

      • property, prop: 개별 속성 제어

    • meta: 메타 데이터 제어

    • rid: RID 제어

  • driver: 드라이버 제어 (윈도 전용)

  • efs: NTFS EFS 분석 및 인증서 제어 (윈도 전용)

    • cert: FSR 엔진 인증서 제어

    • usercert: 사용자 인증서 제어

  • events, ev: 이벤트 모니터링

  • license: 라이선스 제어

  • log, l: 로그 모니터링

  • perfmon, p: 성능 모니터

  • system, sys: 시스템 제어

    • config, conf: 시스템 구성 파일 제어

      • property, prop: 개별 속성 제어

이 문서에서 사용하는 명령어의 인수과 표기 방법은 다음과 같습니다.

  • 생략 가능한 인수: {arg}

  • 필수 인수: <arg>

  • 리소스 ID: <id>

  • 리소스 ID 또는 all: <id|all>

시간 값의 경우 다음과 같이 단위를 같이 기입 할 수 있습니다. 기본 단위는 '초'입니다.

  • 100ms, 0.1s, 1m, 1h

설정

명령어

옵션

옵션 설명

사용 API

설명

1

system config dump
sys conf dump

-

-

GET /api/v1/config/dump

시스템 구성 파일의 내용을 JSON으로 출력.

2

system config dump-xml
sys conf dump-xml

-

-

GET /api/v1/config/dump-xml

시스템 구성 파일의 내용을 XML로 출력.

3

system config show
sys conf show

-

-

GET /api/v1/config

동작 중인 시스템 구성 내용을 JSON으로 출력.

4

system config adjust
sys conf adjust

-

-

POST /api/v1/config/adjust

시스템 구성 파일의 내용을 동작 중인 리소스에 적용하고 활성화한다.

5

system config edit
sys conf edit

-u, -user

텍스트 에디터로 수정

GET /api/v1/config
PUT /api/v1/config
POST /api/v1/config/adjust

시스템 구성 내용을 대화형으로 편집하고 적용한다.

6

system config property get {key}
sys conf prop get {key}

-

-

GET /api/v1/config

시스템 구성 파일의 지정 속성 값을 출력한다.

7

system config property set <key> <value>
sys conf prop set <key> <value>

--adjust
-a

리소스에 적용한다

GET /api/v1/config
PUT /api/v1/config
POST /api/v1/config/adjust

시스템 구성 파일의 지정 속성 값을 변경한다.

8

system config property unset <key>
sys conf prop unset <key>

-

-

상동

시스템 구성 파일의 지정 속성을 기본 값으로 변경한다.

9

control config dump <id|all>
conf dump <id>

-

-

GET /api/v1/resource/{ID}/dump

리소스 구성 파일의 내용을 JSON으로 출력.

10

control config dump-xml <id|all>
conf dump-xml <id>

-

-

GET /api/v1/resource/{ID}/dump-xml

리소스 구성 파일의 내용을 XML로 출력.

11

control config show <id|all>
conf show <id|all>

-

-

GET /api/v1/resource/{ID}

동작 중인 리소스 구성 내용을 JSON으로 출력.

12

control config adjust <id|all>
conf adjust <id|all>

-

-

POST /api/v1/resource/{ID}/adjust

리소스 구성 파일의 내용을 동작 중인 리소스에 적용하고 활성화한다.

13

control config add <id>
conf add <id>

--force
-f

강제로 덮어 씌우기

PUT /api/v1/resource/{ID}

리소스 구성 파일을 추가한다.

14

--interactive
-i

대화형 설정 모드

15

control config del <id>
conf del <id>

--force
-f

강제 삭제

DELETE /api/v1/resource/{ID}

리소스 구성 파일을 삭제한다.

16

control config edit <id>
conf edit <id>

--user
-u

텍스트 에디터로 수정

GET /api/v1/resource/{ID}
PUT /api/v1/resource/{ID}
POST /api/v1/resource/{ID}/adjust

리소스 구성 내용을 대화형으로 편집하고 적용한다.

17

control config property get <id> {key}
conf prop get <id> {key}

-

-

GET /api/v1/resource/{ID}

리소스 구성 파일의 지정 속성 값을 출력한다.

18

control config property add <id> <key> <value>
conf prop add <id> <key> <value>

--adjust
-a

리소스에 적용한다

GET /api/v1/resource/{ID}
PUT /api/v1/resource/{ID}
POST /api/v1/resource/{ID}/adjust

리소스 구성의 지정 속성에 값을 추가한다.
목록 형태의 속성에만 유효하다.

19

--index <숫자>

  • i

<숫자>

지정 인덱스에 삽입

20

control config property del <id> <key>
conf prop del <id> <key>

--adjust
-a

리소스에 적용한다

상동

리소스 구성의 지정 속성을 삭제한다.
목록 형태의 속성에만 유효하다.

21

control config property set <id> <key> <value>
conf prop set <id> <key> <value>

상동

상동

상동

리소스 구성 파일의 지정 속성 값을 변경한다.

22

control config property unset <id> <key>
conf prop unset <id> <key>

상동

상동

상동

리소스 구성 파일의 지정 속성을 기본 값으로 변경한다.

개별 속성 설정

속성을 가르키는 key 값은 다음과 같은 방식으로 작성하며, 설정 가능한 모든 속성은 속성 명령(property)의 도움말에 출력됩니다.

  • 구성 파일의 포맷에서 속성의 위치를 경로 형태로 작성합니다.

    λ fsradm conf prop get r0 network/ping_interval
    10 
  • 배열 형태의 속성은 인덱스 번호로 접근합니다.

    λ fsradm conf prop get r0 nodes/0/directories/0/path
    e:/test/local/main
  • 노드명을 사용하는 속성의 경우 노드명을 통한 접근도 지원합니다.

    • 노드 목록

      λ fsradm conf prop get r0 nodes/node1/url
      192.168.35.151:9890
    • 연결 목록
      두 노드의 순서가 바뀌어도 정상 접근됩니다.

      λ fsradm conf prop get r0 connections/node1,node2/buffer
      size: 100
  • 배열 형태의 속성에 값을 추가 할 때는 속성에 맞는 문자열 값을 입력 합니다.
    이미 존재하는 값일 경우 오류가 발생하지 않고 무시됩니다.

    • 노드 목록

      λ fsradm conf prop add r0 nodes node3
      done
    • 연결 목록

      λ fsradm conf prop add r0 connections node1,node3
      done
    • 디렉토리

      λ fsradm conf prop add r0 nodes/node3/directories e:/test/local/main
      done
    • 제외 필터

      λ fsradm conf prop add r0 options/exclude_patterns *.temp
      done
  • 배열 형태의 속성에서 값을 제거 할 경우에도 인덱스 번호와 노드명을 사용할 수 있습니다.

    λ fsradm conf prop del r0 connections/node1,node3
    done
    
    λ fsradm conf prop del r0 nodes/2
    done

제어

명령어

옵션

옵션 설명

사용 API

설명

1

control meta create <id|all>
meta create <id|all>

--force
-f

강제로 덮어 씌우기

POST /api/v1/resource/{ID}/create-meta

리소스 메타 데이터 생성.
리소스가 분리된 상태에서만 수행 가능하다.

2

control meta delete <id|all>
meta delete <id|all>

--force
-f

강제로 삭제

POST /api/v1/resource/{ID}/delete-meta

리소스 메타 데이터 삭제.
리소스가 분리된 상태에서만 수행 가능하다.

3

control meta cleanup
meta cleanup

-

-

POST /api/v1/resource/cleanup-meta

사용하지 않는 메타 데이터 정리.

4

control add <id|all>
add <id|all>

-

-

POST /api/v1/resource/{ID}/add

리소스 구성 파일을 읽어 리소스 목록에 적재.

5

control del <id|all>
del <id|all>

-

-

POST /api/v1/resource/{ID}/delete

적재 된 리소스를 목록에서 제거.

6

control attach <id|all>
attach <id|all>

-

-

POST /api/v1/resource/{ID}/attach

리소스 파일 적재.

7

control detach <id|all>
detach <id|all>

-

-

POST /api/v1/resource/{ID}/detach

리소스 파일 분리.

8

control up <id|all>
up <id|all>

-

-

POST /api/v1/resource/{ID}/up

리소스 활성화. (적재, 파일 적재, 연결)

9

control down <id|all>
down <id|all>

-

-

POST /api/v1/resource/{ID}/down

리소스 비활성화. (연결 종료, 파일 분리, 분리)

10

control primary <id|all>
primary <id|all>

--force
-f

강제 승격

POST /api/v1/resource/{ID}/primary

리소스를 Primary로 승격.

11

--unlock
-u

파일 잠금 해제

12

control secondary <id|all>
secondary <id|all>

--timeout <숫자>
-t <숫자>

시간 제한

POST /api/v1/resource/{ID}/secondary

리소스를 Secondary로 강등.
시간 제한 값이 있으면 해당 시간 동안 버퍼가 비워지는 것을 대기한다. 해당 시간 이후 버퍼를 강제로 비우고 강등한다.

--read-only 옵션은 --lock 옵션과 함께 사용해야한다.

13

--lock
-l

파일 잠금

14

--read-only

읽기 전용으로 잠금

15

control connect <id|all> {peer|all}
connect <id|all> {peer|all}

--discard-my-data

내 데이터를 버림

POST /api/v1/resource/{ID}/connect/{PEER}

리소스를 상대 노드에 연결. connecting 상태로 변경 된다.

16

control disconnect <id|all> {peer|all}
disconnect <id|all> {peer|all}

-

-

POST /api/v1/resource/{ID}/disconnect/{PEER}

상대 노드와의 연결 해제. standalone 상태로 변경 된다.

17

control invalidate <id|all> {peer}
invalidate <id|all> {peer}

--level <숫자>
-l <숫자>

동기화 수준

POST /api/v1/resource/{ID}/resync/{PEER}

상대 노드를 소스로 동기화 시작.

18

--report <모드>

보고서 생성 범위

19

control invalidate-remote <id|all> {peer|all}
invalidate-remote <id|all> {peer|all}

--level <숫자>
-l <숫자>

동기화 수준

POST /api/v1/resource/{ID}/resync-remote/{PEER}

이 노드를 소스로 동기화 시작.

20

--report <모드>

보고서 생성 범위

21

control verify <id|all> {peer}
verify <id|all> {peer}

-

-

POST /api/v1/resource/{ID}/verify/{PEER}

상대 노드를 소스로 정합성 검증 시작.

22

control pause <id|all> {peer|all}
pause <id|all> {peer|all}

-

-

POST /api/v1/resource/{ID}/pause

동기화 또는 복제 일시 중지.

23

control resume <id|all> {peer|all}
resume <id|all> {peer|all}

-

-

POST /api/v1/resource/{ID}/resume

동기화 또는 복제 재개.

24

control lock <id|all>
lock <id|all>

--read-only

읽기 전용으로 잠금

POST /api/v1/resource/{ID}/lock/{LEVEL}

파일 보호 시작.

25

control unlock <id|all>
unlock <id|all>

-

-

POST /api/v1/resource/{ID}/unlock

파일 보호 해제.

26

control close-files <id|all>
close-files <id|all>

-

-

POST /api/v1/resource/{ID}/close-files

복제를 위해 열려있는 파일의 핸들을 닫는다.

27

control override network-limit <res-id|all> <peer-node|all> <value>
override network-limit <res-id|all> <peer-node|all> <value>

-

-

PUT /api/v1/resource/{ID}/override/network-limit/{PEER}

네트워크 대역폭을 임의로 변경한다.

28

control restore network-limit <res-id|all> {peer-node|all}
restore network-limit <res-id|all> {peer-node|all}

-

-

DELETE /api/v1/resource/{ID}/override/network-limit/{PEER}

네트워크 대역폭을 구성 값으로 되돌린다.

동기화 옵션

  • 동기화 수준

    • 0: 해시 비교 없이 모든 파일을 동기화 한다. 이전의 -f 옵션과 같습니다.

    • 1: 속성이 완전히 같으면 파일 내용도 같은 것으로 판단합니다. (기본 값)

      • 대부분의 경우 이 옵션이면 충분하지만 다음과 같이 속성을 유지하면서 파일 내용만 변경하는 경우 동기화되지 않습니다.

        1. 파일의 용량 변화 없이 내용을 수정

        2. 파일의 수정 시간을 내용 변경 전의 값으로 원복

    • 2: 속성이 같아도 해시 비교를 수행합니다.

  • 보고서 생성 범위

    • nothing: 보고서를 생성하지 않습니다.

      • 이전에 생성 된 보고서가 그대로 유지됩니다.

      • 동기화 명령 없이 자동으로 이루어지는 동기화는 모두 이 옵션으로 동작합니다.

    • summary: 요약 정보만 생성합니다.

    • full: 파일 단위의 정보까지 모두 생성합니다.

조회

명령어

옵션

옵션 설명

사용 API

설명

1

system info
sys info

-

-

GET /api/v1/system

엔진 정보 출력.

2

control status {id|all}
status {id|all}

--verbose
-v

상세 출력

GET /api/v1/resource/{ID}/status

리소스와 연결의 상태 출력.

3

--watch
-w

모니터링

4

--interval <시간>
-i <시간>

모니터링 시 갱신 주기

5

control perf {id|all}
perf {id|all}

--verbose
-v

상세 출력

GET /api/v1/resource/{ID}/perf

리소스 연결의 버퍼와 네트워크 등의 성능 통계 출력.

6

--watch
-w

모니터링

7

--interval <시간>
-i <시간>

모니터링 시 갱신 주기

8

control result <id> {dir-index} {filename}
result <id> {dir-index} {filename}

--verbose
-v

상세 출력

GET /api/v1/resource/{ID}/result

가장 최근의 동기화 또는 정합성 검증의 결과 출력.
결과는 타겟에 저장되므로 타겟에서만 출력 가능하다.
디렉토리 및 파일명을 지정하면 요약 정보를 생략하고 지정한 파일의 결과를 출력한다.

9

control rid show <id|all>
rid show <id|all>

--verbose
-v

상세 출력

GET /api/v1/resource/{ID}/rid

리소스의 RID 출력.
기본적으로 Old ULID를 2개만 출력하며, 긴 버전 옵션이 지정된 경우에는 32개를 모두 출력한다.

10

--long
-l

긴 버전의 RID 출력

11

events
ev

--json
-j

JSON 포맷으로 출력

GRPC SubscribeEvents

이벤트 모니터링.
동기화 진행률과 성능 통계는 기본적으로 갱신 주기 마다 전달되지만, 이전 데이터와 변화가 없는 경우 생략된다.

12

--sync

동기화 진행률 포함

13

--perf

성능 통계 포함

14

--interval <시간>
-i <시간>

동기화 진행률과 성능 통계 갱신 주기

15

log
l

--home <경로>

엔진 홈 경로

GRPC SubscribeEvents

로그 파일의 내용을 출력한다.
tail 명령과 유사하게 동작하며, 엔진의 시스템 구성 파일을 직접 읽어 로그 파일의 위치를 파악하므로 엔진이 종료되어 있어도 사용 가능하다.
gRPC를 통해 리소스 적재 이벤트를 받아 출력해야 하는 로그 파일을 실시간으로 변경한다.

16

--lines <숫자>
-n <숫자>

출력 할 라인 수

17

--resource <id>
-t <id>

리소스 지정

18

--no-main

메인 로그 비활성화

19

--no-resource

리소스 로그 비활성화

20

--no-color

생상을 입히지 않음

21

--follow
-f

지속 출력

22

perfmon {id|all}
p {id|all}

--json <파일명>
-j <파일명>

JSON 파일로 내보내기

GRPC SubscribePerfs

성능 모니터의 정보를 출력한다.
JSON이나 CSV로 내보내는 옵션을 사용하지 않으면 콘솔 화면에 출력한다.

--display 옵션을 사용하면 파일로 내보내면서 화면에도 출력이 가능하다.

23

--csv <파일명>
-c <파일명>

CSV 파일로 내보내기

24

--interval <시간>
-i <시간>

정보 갱신 주기

25

--display
-d

콘솔 화면에 출력

26

--watch
-w

모니터링 모드

동기화 및 정합성 결과 조회

실행 인수 지정에 따라 다음과 같이 동작합니다.

  • 리소스명만 지정 (예: fsradm result r0)

    • 보고서의 요약 정보만 출력합니다.

    • 동기화 시 보고서 생성 범위를 nothing로 지정한 경우 갱신되지 않으므로 이전에 생성 된 정보가 출력됩니다.

  • 디렉토리 인덱스 지정 (예: fsradm result r0 0)

    • 해당 복제 대상의 파일 결과 목록을 모두 출력합니다.

    • 동기화 시 보고서 생성 범위를 full로 지정한 경우에만 이 정보가 생성되며, summary로 수행 한 경우 아무것도 출력되지 않습니다.

    • 디렉토리 인덱스는 구성 파일에 작성한 복제 대상 – files 항목 – 에 정의된 복제 대상 경로의 번호입니다. 첫번째 복제 대상 경로가 0번이며 정의 된 순서대로 1씩 증가합니다.

  • 파일 경로 지정 (예: fsradm result r0 0 data/)

    • 지정 경로와 그 하위 파일 결과 목록을 모두 출력합니다.

    • 파일 경로는 복제 대상 경로에 대하여 상대 경로로 입력합니다.

    • 정확한 파일명을 입력하면 해당 파일에 대한 결과만 출력되며, 파일명 뒤에 경로 구분자인 /를 입력하면 해당 디렉토리 하위의 모든 파일 결과를 출력합니다.

이벤트 목록

이벤트 조회를 시작하면 각 리소스의 분류 별 최근 이벤트가 전달됩니다. 이런 이벤트의 경우 occur 필드를 통해 해당 이벤트의 발생시간을 얻을 수 있습니다.

분류

타입명

필드

데이터 범위

비고

1

RPC 연결 상태

rpc

state

연결 상태

connected, disconnected

-

2

cause

오류 내용

disconnected 상태에서만 사용 됨

3

프로그램 기동/종료

program

state

프로그램 기동 상태

started, exit

-

4

cause

오류 내용

exit 상태에서만 사용 됨

5

시스템 설정 갱신

system_updated

-

-

adjust 수행 시 발생한다

-

6

리소스 추가

added

resource

리소스 ID

-

-

7

node

자신의 노드명

-

8

리소스 삭제

deleted

resource

리소스 ID

-

-

9

node

자신의 노드명

-

10

리소스 상대 노드 추가

peer_added

resource

리소스 ID

-

-

11

node

자신의 노드명

-

12

peer

상대 노드명

-

13

리소스 상대 노드 제거

peer_deleted

resource

리소스 ID

-

-

14

node

자신의 노드명

-

15

peer

상대 노드명

-

16

리소스 노드명 변경

renamed

resource

리소스 ID

-

-

17

node

자신의 노드명

-

18

value

새로운 노드명

-

19

리소스 노드명 변경 (상대)

peer_renamed

resource

리소스 ID

-

-

20

node

자신의 노드명

-

21

peer

상대 노드명

-

22

value

상대의 새로운 노드명

-

23

리소스 설정 갱신

updated

resource

리소스 ID

adjust 수행 시 발생한다

-

24

node

자신의 노드명

-

25

리소스 연결 상태

state

resource

리소스 ID

-

-

26

node

자신의 노드명

-

27

peer

상대 노드명

-

28

value

상태 값

standalone, established 등

29

리소스 연결 상태 (상대)

peer_state

resource

리소스 ID

-

-

30

node

자신의 노드명

-

31

peer

상대 노드명

-

32

value

상태 값

standalone, established 등

33

리소스 파일 상태

file_state

resource

리소스 ID

-

34

node

자신의 노드명

-

35

value

상태 값

inconsistent, consistent 등

36

리소스 파일 상태 (상대)

peer_file_state

resource

리소스 ID

-

-

37

node

자신의 노드명

-

38

peer

상대 노드명

-

39

value

상태 값

inconsistent, consistent 등

40

리소스 역할

role

resource

리소스 ID

-

-

41

node

자신의 노드명

-

42

value

역할 값

primary, secondary

43

리소스 역할 (상대)

peer_role

resource

리소스 ID

-

-

44

node

자신의 노드명

-

45

peer

상대 노드명

-

46

value

역할 값

primary, secondary

47

노드 연결 동작

connection

resource

리소스 ID

-

-

48

node

자신의 노드명

-

49

peer

상대 노드명

-

50

state

연결 상태

connected, accepted, disconnected

51

url

IP:Port

상대 노드의 주소

52

cause

오류 내용

disconnected에서만 사용 됨

53

상대 노드로부터 연결이 거부 됨

refuse

resource

리소스 ID

-

-

54

node

자신의 노드명

-

55

peer

상대 노드명

-

56

cause

거부 이유

irrelevance(관계 없는 노드), split-brain
two-primary, invalid-direction

57

younger

younger 노드명

-

58

쓰기 오류

write_error

resource

리소스 ID

-

-

59

node

자신의 노드명

-

60

filename

파일명

절대 경로

61

cause

오류 내용

-

62

디스크 공간 상태

diskspace

resource

리소스 ID

-

-

63

node

자신의 노드명

-

64

state

공간 상태

not_enough, enough

65

remain

남은 용량

바이트 단위. 문자열 형식

66

성능 정보

perf

resource

리소스 ID

-

--perf 옵션 필요

67

node

자신의 노드명

-

68

peer

상대 노드명

-

69

perf

성능 정보

REST-API의 성능 정보와 같다.

70

동기화 상태

sync

resource

리소스 ID

-

--sync 옵션 필요

71

node

자신의 노드명

-

72

peer

상대 노드명

-

73

status

동기화 상태

REST-API의 동기화 상태와 같다.

74

파일 잠금

file_lock

resource

리소스 ID

-

-

75

state

잠금 상태

REST-API의 파일 잠금 상태와 같다.

76

node

자신의 노드명

-

77

RID

rid

resource

리소스 ID

-

78

node

자신의 노드명

79

value

RID 값

80

consistency

플래그

파일 상태가 Consistent 이상인 경우 true

81

outdated

플래그

파일 상태가 Outdated인 경우 true

82

primary

플래그

승격된 경우 true

83

crashed_primary

플래그

Primary 상태에서 비정상 종료된 경우 true

84

파일 버퍼 사용량 경고

file_buf_warn

resource

리소스 ID

-

0.9.1

85

node

자신의 노드명

-

86

peer

상대 노드명

-

87

버퍼 넘침

overflowed

resource

리소스 ID

-

0.9.1

88

node

자신의 노드명

-

89

peer

상대 노드명

-

90

라이선스 상태

license

status

라이선스 상태

invalid, expired, not exist, valid

-

91

license-type

라이선스 유형

temporary, permanent

92

expires-at

기간 제한 (날짜)

년-월-일 (예: 2020-11-30)

93

expires-in

기간 제한 (남은 일자)

-

EFS

윈도 전용 명령어로 리눅스에서는 사용 할 수 없습니다.

분석

명령어

옵션

옵션 설명

사용 API

설명

1

efs analyze dir <dir…>
efs analyze by-dir <dir…>

--json
-j

JSON 포맷으로 출력

GRPC EFSAnalyze

지정한 디렉토리 하위의 암호화 된 파일을 조회하여 복호화에 필요한 인증서 목록과 설치 상태를 분석한다.

2

--verbose
-v

상세 출력

3

efs analyze resource <id>
efs analyze by-res <id>

--json
-j

JSON 포맷으로 출력

GRPC EFSAnalyze

지정한 리소스의 복제 경로 하위의 암호화 된 파일을 조회하여 복호화에 필요한 인증서 목록과 설치 상태를 분석한다.

4

--verbose
-v

상세 출력

엔진 실행 계정 스토어 제어

명령어

옵션

옵션 설명

사용 API

설명

1

efs cert list

-

-

GET /api/v1/efs/cert

인증서 스토어의 인증서 목록을 출력한다.

2

efs cert export <thumbprint> <file>

--password <password>
-p <password>

인증서 비밀번호

POST /api/v1/efs/cert/{Thumbprint}/export

지정한 리소스의 복제 경로 하위의 암호화 된 파일을 조회하여 복호화에 필요한 인증서 목록과 설치 상태를 분석.

3

efs cert import <file>

--password <password>
-p <password>

인증서 비밀번호

POST /api/v1/efs/cert

지정 파일의 인증서를 가져와 인증서 스토어에 등록

4

--set-current
-c

현재 인증서로 지정

5

efs cert set-current <thumbprint>

-

-

POST/api/v1/efs/cert/{Thumbprint}/set-current

인증서 스토어의 지정 인증서를 암호화를 위한 현재 인증서로 지정

6

efs cert delete <thumbprint>

-

-

DELETE /api/v1/efs/cert/{Thumbprint}

인증서 스토어에서 지정 인증서 삭제

CLI 실행 계정 스토어 제어

명령어

옵션

옵션 설명

사용 API

설명

1

efs usercert list

-

-

GET /api/v1/efs/cert

인증서 스토어의 인증서 목록을 출력한다.

2

efs usercert export <thumbprint> <file>

--password <password>
-p <password>

인증서 비밀번호

POST /api/v1/efs/cert/{Thumbprint}/export

지정한 리소스의 복제 경로 하위의 암호화 된 파일을 조회하여 복호화에 필요한 인증서 목록과 설치 상태를 분석.

3

efs usercert import <file>

--password <password>
-p <password>

인증서 비밀번호

POST /api/v1/efs/cert

지정 파일의 인증서를 가져와 인증서 스토어에 등록

4

--set-current
-c

현재 인증서로 지정

5

efs usercert set-current <thumbprint>

-

-

POST/api/v1/efs/cert/{Thumbprint}/set-current

인증서 스토어의 지정 인증서를 암호화를 위한 현재 인증서로 지정

6

efs usercert delete <thumbprint>

-

-

DELETE /api/v1/efs/cert/{Thumbprint}

인증서 스토어에서 지정 인증서 삭제

관리

driver 명령은 윈도 전용으로 리눅스에서는 사용할 수 없습니다.

분류

명령어

옵션

옵션 설명

사용 API

설명

1

드라이버 설치

driver install

--force
-f

강제 설치

-

드라이버를 설치한다. 드라이버가 적재 중일때는 실패한다.
강제 설치 옵션 사용 시 적재 중인 드라이버를 분리 한 뒤 설치한다.

2

드라이버 제거

driver uninstall

--force
-f

강제 제거

-

드라이버를 제거한다. 드라이버가 적재 중일때는 실패한다.
강제 설치 옵션 사용 시 적재 중인 드라이버를 분리 한 뒤 제거한다.

3

엔진 재시작

system restart
sys restart

-

POST /api/v1/system/restart

현재 프로세스 PID는 유지하면서 엔진의 동작 전체를 재시작한다.

4

엔진 종료

system stop
sys stop

-

POST /api/v1/system/stop

실행 중인 엔진에 종료 명령을 전달하여 스스로 종료하도록 한다. 서비스로 실행중이면 자동으로 재 시작 된다.

도구

분류

명령어

옵션

옵션 설명

사용 API

설명

1

RID 비교

control rid compare <rid1> <rid2>
rid compare <rid1> <rid2>

-

-

POST /api/v1/tool/rid_compare

두 RID의 비교 결과를 출력한다.

2

서포트 파일
생성

system support
sys su

--dump <file>
-d <file>

포함할 덤프 파일 지정

서포트 파일 생성

라이선스

분류

명령어

옵션

사용 API

설명

1

설정

license set <license-file>

-

PUT /api/v1/license

지정한 파일을 읽어 라이선스를 설정한다.

2

조회

license show

-

GET /api/v1/license

현재 라이선스 상태를 출력한다.

  • No labels