개요
버전
1.x
XML 표기 방식
dump-xml을 통해 얻을 수 있는 XML 형식의 구성 파일 내용에는 userdata 속성이 누락됩니다.
태그명
속성의 상위에 다음과 같이 태그가 존재함을 나타냄
예) tag1/tag2<tag1> <tag2></tag2> </tag1>
ATTRIBUTE
해당 태그의 attribute를 사용 함
TEXT
해당 태그의 텍스트를 사용 함
동적 적용 표기 방식
NO
동적으로 적용되지 않는 속성. 시스템 구성의 경우 서비스 재시작, 리소스 구성의 경우 Down/Up의 절차가 필요 함
ADJUST
구성 조정 명령을 통해 갱신 되는 속성
ADJUST_EACH
시스템 구성 조정 명령 실행 후, 실행 중인 리소스에 적용하려면 해당 리소스에 대한 구성 조정 명령도 실행해야 하는 속성
RECONN
구성 조정 명령 실행 후 노드 간 재 접속이 필요한 속성
PROMOTE
구성 조정 명령 실행 후 강등/승격이 필요한 속성
숫자 자료형의 범위
32비트 정수: 0부터 231-1 (2147483647)
시스템 설정
구조
options
hostname
resources_path
database_path
auto_up
rpc_address
rest_address
file_handle_limit
sync_hash_type
max_block_size
log
level
console
enable
file
enable
location
size_limit
size_limit
file_buffer
location
limit
warn
auto_recover
disk
minimum
period
archive
period
location
userdata
항목별 옵션
options
프로그램 시작 시 사용되는 설정. 동적으로 적용되지 않는다.
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 |
---|---|---|---|---|---|---|---|
hostname | 호스트명 | 문자열 | NO | FSR에서 사용할 호스트명 | ATTRIBUTE | ||
resources_path | . | 디렉토리 경로 | NO | 리소스 파일들이 위치하는 경로 | paths/resources/TEXT | ||
database_path | ../db | 디렉토리 경로 | NO | 리소스 상태를 저장하기 위한 경로 | paths/database/TEXT | ||
auto_up | true | true / false | Boolean | NO | true인 경우 FSR 시작 시 리소스 UP이 수행된다 | ATTRIBUTE | |
rpc_address | 0.0.0.0:5168 | IPv4 / IPv6 | {ip}:{port} | NO | gRPC Listen address | addresses/rpc/TEXT | |
rest_address | 0.0.0.0:5167 | IPv4 / IPv6 | {ip}:{port} | NO | REST-API Listen address | addresses/rest/TEXT | |
file_handle_limit | 128 | 32비트 정수 | 개수 | ADJUST | 복제를 위해 동시에 여는 파일 핸들 개수 제한 | ATTRIBUTE | |
sync_hash_type | crc32 | crc32 / md5 / sha1 / sha256 / sha512 | 해시 유형 | ADJUST | 동기화에 사용할 해시 알고리즘 유형 | ATTRIBUTE | 0.9 |
max_block_size | 1 | 1~30 | MB | PROMOTE | 최대 복제 I/O 블럭 크기 | ATTRIBUTE | 1.0-A2 |
log
로그 관련 설정.
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 | |
---|---|---|---|---|---|---|---|---|
level | debug | debug / info / warn / error / fatal / panic | 로그 레벨 | ADJUST | 로그 출력 레벨 | ATTRIBUTE | ||
console | enable | true | true / false | Boolean | ADJUST | 로그 콘솔 출력 여부 | console/ATTRIBUTE | |
file | enable | true | true / false | Boolean | ADJUST | 로그 파일 사용 여부 | file/ATTRIBUTE | |
filename | ../logs | 파일 경로 | ADJUST | 로그 파일의 경로 및 파일명 | file/TEXT | |||
size_limit | 10 | 32비트 정수 | MB | ADJUST | 로그 파일 개별 크기 제한 | file/ATTRIBUTE | ||
rotate_count | 10 | 32비트 정수 | 개수 | ADJUST | 로그 파일 롤링 시 유지할 개수 | file/ATTRIBUTE |
file_buffer
파일 버퍼 설정.
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 |
---|---|---|---|---|---|---|---|
location | ../buffer | 디렉토리 경로 | NO | 파일 버퍼 기본 위치 | TEXT | ||
limit | 1024M | 32비트 정수 | MB | ADJUST_EACH | 최대 크기. 동적 적용 시 리소스의 조정 명령도 실행해야 적용 된다. | ATTRIBUTE | |
warn | 10M | 32비트 정수 | MB | ADJUST_EACH | 사용량 경고 임계치 | ATTRIBUTE | |
auto_recover | false | true / false | Boolean | - | 동작 중지 임계치 도달 시 자동 재시작 여부 | ATTRIBUTE | 미사용 |
disk
디스크 모니터링.
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 |
---|---|---|---|---|---|---|---|
minimum | 1024 | 32비트 정수 | MB | ADJUST | 디스크 남은 용량으로 인한 동작 중지 임계치 | ATTRIBUTE | |
period | 30 | 32비트 정수 | 초 | ADJUST | 디스크 남은 용량 확인 주기 | ATTRIBUTE |
archive
삭제/고아 파일 보관
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 |
---|---|---|---|---|---|---|---|
period | 0 | 32비트 정수 | 보관 기간(day) | ADJUST | 삭제/고아 파일 보관 기간 | ATTRIBUTE | |
location | ../archives | 디렉토리 경로 | ADJUST | 삭제/고아 파일 보관 위치 | TEXT |
userdata
사용자 속성. object 형태의 데이터를 자유롭게 추가 할 수 있다.
리소스 설정
구조
id
description
auto_up
nodes
index
name
hostname
url
files
path
type
recursive
exclude_patterns
sync
attributes
permissions
archive
enable
period
location
buffer
size
file_buffer
location
limit
warn
auto_up
auto_file_lock
connections
node1
name
url
node2
name
url
buffer
size
file_buffer
limit
warn
network
ping_interval
compress
tls
limit
options
recursive
exclude_patterns
auto_file_lock
database_path
sync
attributes
permissions
network
ping_interval
compress
tls
limit
handlers
options
timeout
timeout_action
after_resync_target
before_resync_target
before_resync_source
out_of_sync
local_io_error
userdata
항목별 옵션
노드 목록은 동적 적용 시 'name'을 기준으로 적용되므로 작성 순서는 관계없다. 네트워크 관련 속성은 재 접속이 필요한 속성이 있으므로 해당 속성은 'RECONN'으로 명시하였다.
최상위 옵션
리소스의 기본 설정
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 |
---|---|---|---|---|---|---|---|
id | 파일명으로 사용 가능해야 함 | 문자열 | NO | 리소스의 ID | ATTRIBUTE | ||
description | 문자열 | ADJUST | 리소스의 설명 | description/TEXT | 미사용 | ||
auto_up | true | true / false | Boolean | NO | true인 경우 FSR 시작 시 리소스 UP이 수행된다 | ATTRIBUTE |
nodes
복제 네트워크의 노드 목록.
(XML: nodes/node)
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | 비고 | |||
---|---|---|---|---|---|---|---|---|---|
index | 0 | 32비트 정수 | 0 이상의 숫자 | ADJUST | 노드의 고유 번호 | ATTRIBUTE | 1.0-A3 | ||
name | 문자열 | ADJUST | 노드명 또는 호스트명 | ATTRIBUTE | |||||
hostname | 문자열 | ADJUST | 노드의 호스트명 | hostname/TEXT | |||||
url | IPv4 / IPv6 | {ip}:{port} | RECONN | 복제 연결 주소 | ATTRIBUTE | ||||
files | path | 디렉토리 경로 | ADJUST | 복제 대상 | files/file/ATTRIBUTE | ||||
type | directory | directory / file | 대상 유형 | ADJUST | 복제 대상 유형 | files/file/ATTRIBUTE | 0.9 | ||
recursive | true | true / false | Boolean | ADJUST | 하위 디렉토리 포함 여부 | files/file/ATTRIBUTE | |||
exclude_patterns (list) | 제외 패턴 | ADJUST | 제외 패턴 | files/file/exclude_patterns/pattern/TEXT | |||||
sync | attributes | true | true / false | Boolean | ADJUST | 속성 동기화 여부 | files/file/sync/ATTRIBUTE | 1.0 | |
permissions | name | name / sid / none | 문자열 플래그 | ADJUST | 보안 설정 복제 기준 | files/file/sync/ATTRIBUTE | 0.9.1 | ||
archive | enable | false | true / false | Boolean | ADJUST | 고아 파일 보관 여부 | files/file/archive/ATTRIBUTE | ||
period | 0 | 32비트 정수 | 보관 기간(day) | ADJUST | 고아 파일 보관 기간 | files/file/archive/ATTRIBUTE | |||
location | 디렉토리 경로 | ADJUST | 고아 파일 보관 위치 | files/file/archive/TEXT | |||||
buffer | size | 10 | 32비트 정수 | MB | PROMOTE | BAB 크기 | buffer/ATTRIBUTE | 1.0-A3 | |
file_buffer | limit | 1024M | 32비트 정수 | MB | ADJUST | 파일 버퍼 최대 크기 | file_buffer/ATTRIBUTE | ||
warn | 10M | 32비트 정수 | MB | ADJUST | 사용량 경고 임계치 | file_buffer/ATTRIBUTE | 0.9.1 | ||
location | 디렉토리 경로 | PROMOTE | 파일 버퍼 위치 | file_buffer/TEXT | |||||
auto_up | true / false | Boolean | NO | 자동 Up | ATTRIBUTE | 0.9.4 | |||
auto_file_lock | off, on, read_only | 문자열 | ADJUST | 자동 파일 잠금 유형 | ATTRIBUTE | 0.9 |
특이사항
0.7에서 추가 된
hostname
속성을 지정하지 않으면 기존과 같이name
속성이 노드명과 호스트명의 역할을 동시에 수행한다.
connections
노드 간 연결에 대한 정의. node1과 node2의 연결에 대한 정의를 기록하며, 연결 설정이 정의되지 않은 노드 간 연결은 기본 값을 사용한다.
(XML: connections/connection)
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 | |
---|---|---|---|---|---|---|---|---|
node1 | name | 문자열 | ADJUST | 연결을 설정할 노드의 호스트명 | node1/ATTRIBUTE | |||
url | IPv4 / IPv6 | {ip}:{port} | RECONN | 복제 연결 주소 | node1/ATTRIBUTE | |||
node2 | name | 문자열 | ADJUST | 연결을 설정할 노드의 호스트명 | node2/ATTRIBUTE | |||
url | IPv4 / IPv6 | {ip}:{port} | RECONN | 복제 연결 주소 | node2/ATTRIBUTE | |||
buffer | size | 10 | 32비트 정수 | MB | PROMOTE | BAB 크기 | buffer/ATTRIBUTE | |
file_buffer | limit | 1024 | 32비트 정수 | MB | ADJUST | 파일 버퍼 최대 크기 | file_buffer/ATTRIBUTE | |
warn | 10M | 32비트 정수 | MB | ADJUST | 사용량 경고 임계치 | file_buffer/ATTRIBUTE | 0.9.1 | |
network | ping_interval | 10 | 32비트 정수 | 초 | RECONN | PING 전송 간격 | network/ATTRIBUTE | |
compress | false | true / false | Boolean | ADJUST | 프로토콜 압축 여부 | network/ATTRIBUTE | ||
tls | false | true / false | Boolean | RECONN | 암호화 통신 여부 | network/ATTRIBUTE | ||
limit | 0 | 32비트 정수 | bps | ADJUST | 초당 전송량 제한 (bits per seconds) | network/ATTRIBUTE |
options
리소스 전역 복제 / 동기화 설정.
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 | |
---|---|---|---|---|---|---|---|---|
recursive | true | true / false | Boolean | ADJUST | 하위 디렉토리 포함 여부 | ATTRIBUTE | ||
exclude_patterns (list) | 제외 패턴 | ADJUST | 제외 패턴 | exclude_patterns/patterns/TEXT | ||||
auto_file_lock | read_only | off, on, read_only | 문자열 | ADJUST | 파일 잠금 유형 | ATTRIBUTE | 0.9 | |
database_path | 디렉토리 경로 | NO | 리소스 상태를 저장하기 위한 경로 | database_path/TEXT | ||||
sync | attributes | true | true / false | Boolean | ADJUST | 속성 동기화 여부 | sync/ATTRIBUTE | 0.9.1 |
permissions | name | name / sid / none | 문자열 플래그 | ADJUST | 보안 설정 복제 기준 | sync/ATTRIBUTE |
network
리소스 전역 네트워크 설정.
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 |
---|---|---|---|---|---|---|---|
ping_interval | 10 | 32비트 정수 | 초 | RECONN | PING 전송 간격 | ATTRIBUTE | |
compress | false | true / false | Boolean | ADJUST | 프로토콜 압축 여부 | ATTRIBUTE | |
tls | false | true / false | Boolean | RECONN | 암호화 통신 여부 | ATTRIBUTE | |
limit | 0 | 32비트 정수 | bps | ADJUST | 초당 전송량 제한 (bits per seconds) | ATTRIBUTE |
handlers
리소스 상황에 따라 실행 할 스크립트
항목 | 기본 값 | 설정 범위 | 단위 | 동적 적용 | 설명 | XML | 비고 | |
---|---|---|---|---|---|---|---|---|
options | timeout | 0 | 32비트 정수 | 초 | ADJUST | 핸들러 실행 시간 제한 | options/ATTRIBUTE | |
timeout_action | kill | kill / continue | 문자열 플래그 | ADJUST | 실행 시간 이후의 동작 | options/ATTRIBUTE | ||
after_resync_target | 문자열 | 스크립트 | ADJUST | 동기화 후 타겟에서 실행 할 스크립트 | scripts/after_resync_target/TEXT | |||
before_resync_target | 문자열 | 스크립트 | ADJUST | 동기화 전 타겟에서 실행 할 스크립트 | scripts/before_resync_target/TEXT | |||
before_resync_source | 문자열 | 스크립트 | ADJUST | 동기화 전 소스에서 실행 할 스크립트 | scripts/before_resync_source/TEXT | |||
out_of_sync | 문자열 | 스크립트 | ADJUST | 동기화 또는 정합성 검증에서 OOS 발생 시 실행 할 스크립트 | scripts/out_of_sync/TEXT | |||
local_io_error | 문자열 | 스크립트 | ADJUST | IO 오류 발생 시 실행 할 스크립트 | scripts/local_io_error/TEXT |
userdata
사용자 속성. object 형태의 데이터를 자유롭게 추가 할 수 있다.
속성의 적용 수순
동일한 이름의 항목이 서로 다른 섹션에 정의 된 경우, 하위 섹션의 값을 사용하여 동작한다. 즉 하위 섹션에서 재정의 할 수 있다.
각 섹션의 상하 관계는 다음과 같다. (우측이 하위 섹션)
시스템 구성 > 리소스 구성의 상위 속성 (network, options) > 리소스 구성의 nodes > 리소스 구성의 connections
목록으로 정의된 값(예: 제외 필터)의 경우 상위 섹션의 값에 하위 섹션의 값을 병합시켜 동작한다.
예를 들어 다음의 항목은 우측의 값이 우선 적용 된다.
resource.options.recursive → resource.nodes.files.recursive
resource.options.sync.attributes → resource.nodes.files.sync.attributes
resource.options.sync.permissions → resource.nodes.files.sync.permissions
system.archive.period → resource.nodes.files.archive.period
system.archive.location → resource.nodes.files.archive.location
resource.nodes.buffer.size → resource.connections.buffer.size
system.file_buffer.location → resource.nodes.file_buffer.location
system.file_buffer.limit → resource.nodes.file_buffer.limit → resource.connections.file_buffer.limit
system.file_buffer.warn → resource.nodes.file_buffer.warn → resource.connections.file_buffer.warn
resource.network.ping_interval → resource.connections.network.ping_interval
resource.network.compress → resource.connections.network.compress
resource.network.tls → resource.connections.network.tls
resource.network.limit → resource.connections.network.limit
다음의 항목은 위의 방식과 다르게 동작한다.
병합되어 사용되는 항목
resource.options.exclude_patterns + resource.nodes.files.exclude_patterns
상하 관계로 동작하는 항목
system.auto_up / resource.auto_up
시스템 구성의 값을 true로 지정한 경우에만 리소스 구성의 값이 유효하다.