개요
사용자/복제 콘솔 응용은 FSR에 CLI 명령어를 전달하여 FSR의 운영과 관련한 모든 동작을 수행할 수 있습니다.
FSR CLI 는 모두 REST-API 로 제공합니다.
노드 별 개별 설정은 각 노드상에서 명령어로 설정하거나 제어합니다.(클러스터 단위의 제어명령은 제공하지 않는다)
모든 설정은 기본적으로 운영 중 동적 적용 가능합니다.(필수 속성 등 일부 설정 제외)
REST-API
모든 REST-API는 gRPC 기반으로 제작되었으며, JSON-RPC over HTTP 형태로 동작합니다. 감시를 위한 기능은 지속적인 데이터 전달이 필요하므로 gRPC만 제공됩니다.
분류 | 항목 | REST-API | 동작 | 비고 | ||
---|---|---|---|---|---|---|
1 | 설정 | 시스템 설정 조회 | 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 | 설정을 적용하고 파일에 저장 | 변경할 부분만 받아 처리함 | |
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 | 설정을 적용하고 파일에 저장 | 변경할 부분만 받아 처리함 | |
13 | 개별 리소스 설정 갱신 | POST | /api/v1/resource/{ID}/adjust | 파일로부터 읽어 동작 중인 설정을 갱신 | all 사용 가능 | |
14 | 개별 리소스 설정 삭제 | DELETE | /api/v1/resource/{ID} | 파일 삭제 | 동작 중인 리소스에는 영향이 없다 | |
15 | 제어 | 메타 데이터 생성 | 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 사용 가능. | |
23 | 리소스 중지 | POST | /api/v1/resource/{ID}/down | 리소스의 연결을 끊고 분리 | all 사용 가능. | |
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 | 조회 | 리소스 상태 조회 | 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 | 관리 | FSR 정보 조회 | GET | /api/v1/system | 버전 등의 일반적인 정보 반환 | - |
53 | FSR 재시작 | POST | /api/v1/system/restart | FSR 프로세스 재시작 | - | |
54 | FSR 중지 | POST | /api/v1/system/stop | FSR 프로세스 중지 | - | |
55 | 도구 | RID 비교 | POST | /api/v1/tool/rid_compare | 두 RID 비교 | - |
56 | 라이선스 | 라이선스 조회 | 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 | - | - | GET /api/v1/config/dump | 시스템 구성 파일의 내용을 JSON으로 출력. |
2 | system config dump-xml | - | - | GET /api/v1/config/dump-xml | 시스템 구성 파일의 내용을 XML로 출력. |
3 | system config show | - | - | GET /api/v1/config | 동작 중인 시스템 구성 내용을 JSON으로 출력. |
4 | system config adjust | - | - | POST /api/v1/config/adjust | 시스템 구성 파일의 내용을 동작 중인 리소스에 적용하고 활성화한다. |
5 | system config edit | -u, -user | 텍스트 에디터로 수정 | GET /api/v1/config | 시스템 구성 내용을 대화형으로 편집하고 적용한다. |
6 | system config property get | - | - | GET /api/v1/config | 시스템 구성 파일의 지정 속성 값을 출력한다. |
7 | system config property set | --adjust | 리소스에 적용한다 | GET /api/v1/config | 시스템 구성 파일의 지정 속성 값을 변경한다. |
8 | system config property unset | - | - | 상동 | 시스템 구성 파일의 지정 속성을 기본 값으로 변경한다. |
9 | control config dump | - | - | GET /api/v1/resource/{ID}/dump | 리소스 구성 파일의 내용을 JSON으로 출력. |
10 | control config dump-xml | - | - | GET /api/v1/resource/{ID}/dump-xml | 리소스 구성 파일의 내용을 XML로 출력. |
11 | control config show | - | - | GET /api/v1/resource/{ID} | 동작 중인 리소스 구성 내용을 JSON으로 출력. |
12 | control config adjust | - | - | POST /api/v1/resource/{ID}/adjust | 리소스 구성 파일의 내용을 동작 중인 리소스에 적용하고 활성화한다. |
13 | control config add | --force | 강제로 덮어 씌우기 | PUT /api/v1/resource/{ID} | 리소스 구성 파일을 추가한다. |
14 | --interactive | 대화형 설정 모드 | |||
15 | control config del | --force | 강제 삭제 | DELETE /api/v1/resource/{ID} | 리소스 구성 파일을 삭제한다. |
16 | control config edit | --user | 텍스트 에디터로 수정 | GET /api/v1/resource/{ID} | 리소스 구성 내용을 대화형으로 편집하고 적용한다. |
17 | control config property get | - | - | GET /api/v1/resource/{ID} | 리소스 구성 파일의 지정 속성 값을 출력한다. |
18 | control config property add | --adjust | 리소스에 적용한다 | GET /api/v1/resource/{ID} | 리소스 구성의 지정 속성에 값을 추가한다. |
19 | --index
| 지정 인덱스에 삽입 | |||
20 | control config property del | --adjust | 리소스에 적용한다 | 상동 | 리소스 구성의 지정 속성을 삭제한다. |
21 | control config property set | 상동 | 상동 | 상동 | 리소스 구성 파일의 지정 속성 값을 변경한다. |
22 | control config property unset | 상동 | 상동 | 상동 | 리소스 구성 파일의 지정 속성을 기본 값으로 변경한다. |
개별 속성 설정
속성을 가르키는 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 | --force | 강제로 덮어 씌우기 | POST /api/v1/resource/{ID}/create-meta | 리소스 메타 데이터 생성. |
2 | control meta delete | --force | 강제로 삭제 | POST /api/v1/resource/{ID}/delete-meta | 리소스 메타 데이터 삭제. |
3 | control meta cleanup | - | - | POST /api/v1/resource/cleanup-meta | 사용하지 않는 메타 데이터 정리. |
4 | control add | - | - | POST /api/v1/resource/{ID}/add | 리소스 구성 파일을 읽어 리소스 목록에 적재. |
5 | control del | - | - | POST /api/v1/resource/{ID}/delete | 적재 된 리소스를 목록에서 제거. |
6 | control attach | - | - | POST /api/v1/resource/{ID}/attach | 리소스 파일 적재. |
7 | control detach | - | - | POST /api/v1/resource/{ID}/detach | 리소스 파일 분리. |
8 | control up | - | - | POST /api/v1/resource/{ID}/up | 리소스 활성화. (적재, 파일 적재, 연결) |
9 | control down | - | - | POST /api/v1/resource/{ID}/down | 리소스 비활성화. (연결 종료, 파일 분리, 분리) |
10 | control primary | --force | 강제 승격 | POST /api/v1/resource/{ID}/primary | 리소스를 Primary로 승격. |
11 | --unlock | 파일 잠금 해제 | |||
12 | control secondary | --timeout | 시간 제한 | POST /api/v1/resource/{ID}/secondary | 리소스를 Secondary로 강등. --read-only 옵션은 --lock 옵션과 함께 사용해야한다. |
13 | --lock | 파일 잠금 | |||
14 | --read-only | 읽기 전용으로 잠금 | |||
15 | control connect | --discard-my-data | 내 데이터를 버림 | POST /api/v1/resource/{ID}/connect/{PEER} | 리소스를 상대 노드에 연결. connecting 상태로 변경 된다. |
16 | control disconnect | - | - | POST /api/v1/resource/{ID}/disconnect/{PEER} | 상대 노드와의 연결 해제. standalone 상태로 변경 된다. |
17 | control invalidate | --level | 동기화 수준 | POST /api/v1/resource/{ID}/resync/{PEER} | 상대 노드를 소스로 동기화 시작. |
18 | --report | 보고서 생성 범위 | |||
19 | control invalidate-remote | --level | 동기화 수준 | POST /api/v1/resource/{ID}/resync-remote/{PEER} | 이 노드를 소스로 동기화 시작. |
20 | --report | 보고서 생성 범위 | |||
21 | control verify | - | - | POST /api/v1/resource/{ID}/verify/{PEER} | 상대 노드를 소스로 정합성 검증 시작. |
22 | control pause | - | - | POST /api/v1/resource/{ID}/pause | 동기화 또는 복제 일시 중지. |
23 | control resume | - | - | POST /api/v1/resource/{ID}/resume | 동기화 또는 복제 재개. |
24 | control lock | --read-only | 읽기 전용으로 잠금 | POST /api/v1/resource/{ID}/lock/{LEVEL} | 파일 보호 시작. |
25 | control unlock | - | - | POST /api/v1/resource/{ID}/unlock | 파일 보호 해제. |
26 | control close-files | - | - | POST /api/v1/resource/{ID}/close-files | 복제를 위해 열려있는 파일의 핸들을 닫는다. |
27 | control override network-limit | - | - | PUT /api/v1/resource/{ID}/override/network-limit/{PEER} | 네트워크 대역폭을 임의로 변경한다. |
28 | control restore network-limit | - | - | DELETE /api/v1/resource/{ID}/override/network-limit/{PEER} | 네트워크 대역폭을 구성 값으로 되돌린다. |
동기화 옵션
동기화 수준
0: 해시 비교 없이 모든 파일을 동기화 한다. 이전의 -f 옵션과 같습니다.
1: 속성이 완전히 같으면 파일 내용도 같은 것으로 판단합니다. (기본 값)
대부분의 경우 이 옵션이면 충분하지만 다음과 같이 속성을 유지하면서 파일 내용만 변경하는 경우 동기화되지 않습니다.
파일의 용량 변화 없이 내용을 수정
파일의 수정 시간을 내용 변경 전의 값으로 원복
2: 속성이 같아도 해시 비교를 수행합니다.
보고서 생성 범위
nothing: 보고서를 생성하지 않습니다.
이전에 생성 된 보고서가 그대로 유지됩니다.
동기화 명령 없이 자동으로 이루어지는 동기화는 모두 이 옵션으로 동작합니다.
summary: 요약 정보만 생성합니다.
full: 파일 단위의 정보까지 모두 생성합니다.
조회
명령어 | 옵션 | 옵션 설명 | 사용 API | 설명 | |
---|---|---|---|---|---|
1 | system info | - | - | GET /api/v1/system | 엔진 정보 출력. |
2 | control status | --verbose | 상세 출력 | GET /api/v1/resource/{ID}/status | 리소스와 연결의 상태 출력. |
3 | --watch | 모니터링 | |||
4 | --interval | 모니터링 시 갱신 주기 | |||
5 | control perf | --verbose | 상세 출력 | GET /api/v1/resource/{ID}/perf | 리소스 연결의 버퍼와 네트워크 등의 성능 통계 출력. |
6 | --watch | 모니터링 | |||
7 | --interval | 모니터링 시 갱신 주기 | |||
8 | control result | --verbose | 상세 출력 | GET /api/v1/resource/{ID}/result | 가장 최근의 동기화 또는 정합성 검증의 결과 출력. |
9 | control rid show | --verbose | 상세 출력 | GET /api/v1/resource/{ID}/rid | 리소스의 RID 출력. |
10 | --long | 긴 버전의 RID 출력 | |||
11 | events | --json | JSON 포맷으로 출력 | GRPC SubscribeEvents | 이벤트 모니터링. |
12 | --sync | 동기화 진행률 포함 | |||
13 | --perf | 성능 통계 포함 | |||
14 | --interval | 동기화 진행률과 성능 통계 갱신 주기 | |||
15 | log | --home | 엔진 홈 경로 | GRPC SubscribeEvents | 로그 파일의 내용을 출력한다. |
16 | --lines | 출력 할 라인 수 | |||
17 | --resource | 리소스 지정 | |||
18 | --no-main | 메인 로그 비활성화 | |||
19 | --no-resource | 리소스 로그 비활성화 | |||
20 | --no-color | 생상을 입히지 않음 | |||
21 | --follow | 지속 출력 | |||
22 | perfmon | --json | JSON 파일로 내보내기 | GRPC SubscribePerfs | 성능 모니터의 정보를 출력한다. --display 옵션을 사용하면 파일로 내보내면서 화면에도 출력이 가능하다. |
23 | --csv | CSV 파일로 내보내기 | |||
24 | --interval | 정보 갱신 주기 | |||
25 | --display | 콘솔 화면에 출력 | |||
26 | --watch | 모니터링 모드 |
동기화 및 정합성 결과 조회
실행 인수 지정에 따라 다음과 같이 동작합니다.
리소스명만 지정 (예:
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 | |||
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 | --json | JSON 포맷으로 출력 | GRPC EFSAnalyze | 지정한 디렉토리 하위의 암호화 된 파일을 조회하여 복호화에 필요한 인증서 목록과 설치 상태를 분석한다. |
2 | --verbose | 상세 출력 | |||
3 | efs analyze resource | --json | JSON 포맷으로 출력 | GRPC EFSAnalyze | 지정한 리소스의 복제 경로 하위의 암호화 된 파일을 조회하여 복호화에 필요한 인증서 목록과 설치 상태를 분석한다. |
4 | --verbose | 상세 출력 |
엔진 실행 계정 스토어 제어
명령어 | 옵션 | 옵션 설명 | 사용 API | 설명 | |
---|---|---|---|---|---|
1 | efs cert list | - | - | GET /api/v1/efs/cert | 인증서 스토어의 인증서 목록을 출력한다. |
2 | efs cert export | --password | 인증서 비밀번호 | POST /api/v1/efs/cert/{Thumbprint}/export | 지정한 리소스의 복제 경로 하위의 암호화 된 파일을 조회하여 복호화에 필요한 인증서 목록과 설치 상태를 분석. |
3 | efs cert import | --password | 인증서 비밀번호 | POST /api/v1/efs/cert | 지정 파일의 인증서를 가져와 인증서 스토어에 등록 |
4 | --set-current | 현재 인증서로 지정 | |||
5 | efs cert set-current | - | - | POST/api/v1/efs/cert/{Thumbprint}/set-current | 인증서 스토어의 지정 인증서를 암호화를 위한 현재 인증서로 지정 |
6 | efs cert delete | - | - | DELETE /api/v1/efs/cert/{Thumbprint} | 인증서 스토어에서 지정 인증서 삭제 |
CLI 실행 계정 스토어 제어
명령어 | 옵션 | 옵션 설명 | 사용 API | 설명 | |
---|---|---|---|---|---|
1 | efs usercert list | - | - | GET /api/v1/efs/cert | 인증서 스토어의 인증서 목록을 출력한다. |
2 | efs usercert export | --password | 인증서 비밀번호 | POST /api/v1/efs/cert/{Thumbprint}/export | 지정한 리소스의 복제 경로 하위의 암호화 된 파일을 조회하여 복호화에 필요한 인증서 목록과 설치 상태를 분석. |
3 | efs usercert import | --password | 인증서 비밀번호 | POST /api/v1/efs/cert | 지정 파일의 인증서를 가져와 인증서 스토어에 등록 |
4 | --set-current | 현재 인증서로 지정 | |||
5 | efs usercert set-current | - | - | POST/api/v1/efs/cert/{Thumbprint}/set-current | 인증서 스토어의 지정 인증서를 암호화를 위한 현재 인증서로 지정 |
6 | efs usercert delete | - | - | DELETE /api/v1/efs/cert/{Thumbprint} | 인증서 스토어에서 지정 인증서 삭제 |
관리
driver 명령은 윈도 전용으로 리눅스에서는 사용할 수 없습니다.
분류 | 명령어 | 옵션 | 옵션 설명 | 사용 API | 설명 | |
---|---|---|---|---|---|---|
1 | 드라이버 설치 | driver install | --force | 강제 설치 | - | 드라이버를 설치한다. 드라이버가 적재 중일때는 실패한다. |
2 | 드라이버 제거 | driver uninstall | --force | 강제 제거 | - | 드라이버를 제거한다. 드라이버가 적재 중일때는 실패한다. |
3 | 엔진 재시작 | system restart | - | POST /api/v1/system/restart | 현재 프로세스 PID는 유지하면서 엔진의 동작 전체를 재시작한다. | |
4 | 엔진 종료 | system stop | - | POST /api/v1/system/stop | 실행 중인 엔진에 종료 명령을 전달하여 스스로 종료하도록 한다. 서비스로 실행중이면 자동으로 재 시작 된다. |
도구
분류 | 명령어 | 옵션 | 옵션 설명 | 사용 API | 설명 | |
---|---|---|---|---|---|---|
1 | RID 비교 | control rid compare | - | - | POST /api/v1/tool/rid_compare | 두 RID의 비교 결과를 출력한다. |
2 | 서포트 파일 | system support | --dump | 포함할 덤프 파일 지정 | 서포트 파일 생성 |
라이선스
분류 | 명령어 | 옵션 | 사용 API | 설명 | |
---|---|---|---|---|---|
1 | 설정 | license set | - | PUT /api/v1/license | 지정한 파일을 읽어 라이선스를 설정한다. |
2 | 조회 | license show | - | GET /api/v1/license | 현재 라이선스 상태를 출력한다. |