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 3 Next »

개요

버전

FSR 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)

시스템 설정

 설정 파일 예제
Error rendering macro 'code': Invalid value specified for parameter 'lang'
{
  "options": {
    "hostname": "",
    "resources_path": ".",
    "database_path": "../db",
    "auto_up": true,
    "rpc_address": "0.0.0.0:5168",
    "rest_address": "0.0.0.0:5167",
    "file_handle_limit": 128
  },
  "log": {
    "level": "debug",
    "console": {
      "enable": true
    },
    "file": {
      "enable": true,
      "location": "../logs",
      "size_limit": 10,
      "rotate_count": 10
    }
  },
  "file_buffer": {
    "location": "../buffer",
    "limit": 1024,
    "warn": 10,
    "auto_recover": false
  },
  "disk": {
    "minimum": 0,
    "period": 0
  },
  "archive": {
    "period": 0,
    "location": "../archives"
  },
  "userdata": null
}
 XML 출력 예제
<system>
  <options hostname="node1" auto_up="true" file_handle_limit="128" sync_hash_type="crc32">
    <paths>
      <resources>.</resources>
      <database>../db1</database>
    </paths>
    <addresses>
      <rpc>0.0.0.0:5168</rpc>
      <rest>0.0.0.0:5167</rest>
    </addresses>
  </options>
  <log level="info">
    <console enable="true"></console>
    <file enable="true" size_limit="10" rotate_count="10">../logs/node1</file>
  </log>
  <file_buffer limit="1024" warn="10" auto_recover="true">../buffer</file_buffer>
  <disk minimum="1024" period="3"></disk>
  <archive enable="true" period="3">../archive</archive>
</system>

구조

  • 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

    • space

      • minimum

      • period

    • health

      • 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

복제를 위해 동시에 여는 파일 핸들 개수 제한
0으로 설정 시 기본 값 사용

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

로그 파일 개별 크기 제한
0으로 설정 시 기본 값 사용

file/ATTRIBUTE

rotate_count

10

32비트 정수

개수

ADJUST

로그 파일 롤링 시 유지할 개수
0으로 설정 시 기본 값 사용

file/ATTRIBUTE

file_buffer

파일 버퍼 설정 입니다.

항목

기본 값

설정 범위

단위

동적 적용

설명

XML

비고

location

../buffer

디렉토리 경로

NO

파일 버퍼 기본 위치

TEXT

limit

1024M

32비트 정수

MB

ADJUST_EACH

최대 크기. 동적 적용 시 리소스의 조정 명령도 실행해야 적용 된다.
0으로 설정 시 파일 버퍼 미사용

ATTRIBUTE

warn

10M

32비트 정수

MB

ADJUST_EACH

사용량 경고 임계치
0으로 설정 시 경고 비활성화

ATTRIBUTE

auto_recover

false

true / false

Boolean

-

동작 중지 임계치 도달 시 자동 재시작 여부

ATTRIBUTE

미사용

disk

디스크 모니터링 관련 설정 입니다.

항목

기본 값

설정 범위

단위

동적 적용

설명

XML

비고

space

minimum

1024

32비트 정수

MB

ADJUST

디스크 남은 용량으로 인한 동작 중지 임계치
0으로 설정 시 모니터링 비활성화

ATTRIBUTE

period

30

32비트 정수

ADJUST

디스크 남은 용량 확인 주기
0으로 설정 시 모니터링 비활성화

ATTRIBUTE

health

period

1

32비트 정수

ADJUST

디스크 상태 확인 주기
0으로 설정 시 모니터링 비활성화

ATTRIBUTE

archive

삭제/고아 파일 보관 관련 설정입니다.

항목

기본 값

설정 범위

단위

동적 적용

설명

XML

비고

period

0

32비트 정수

보관 기간(day)

ADJUST

삭제/고아 파일 보관 기간
0으로 설정 시 무기한 보관

ATTRIBUTE

location

../archives

디렉토리 경로

ADJUST

삭제/고아 파일 보관 위치
설정 파일 위치를 기준으로 상대 경로로 동작한다

TEXT

userdata

사용자 속성. object 형태의 데이터를 자유롭게 추가 할 수 있습니다.

리소스 설정

 설정 파일 예제
Error rendering macro 'code': Invalid value specified for parameter 'lang'
{
  "id": "r0",
  "description": "test resource",
  "auto_up": true,
  "nodes": [
    {
      "name": "node1",
      "url": "192.168.35.101:9876",
      "files": [
        {
          "path": "E:\\Repl\\Datas",
          "type": "directory",
          "recursive": true,
          "exclude_patterns": [],
        },
        {
          "path": "E:\\Repl\\data.xml",
          "type": "file",
        }
      ],
      "auto_file_lock": "off"
    },
    {
      "name": "node2",
      "url": "192.168.35.102:9876",
      "directories": [
        {
          "path": "F:\\Repl\\Datas",
          "type": "directory",
          "recursive": true,
          "exclude_patterns": [],
        },
        {
          "path": "F:\\Repl\\data.xml",
          "type": "file",
        }
      ],
      "auto_file_lock": "off"
    }
  ],
  "connections": [],
  "options": {
    "recursive": true,
    "exclude_patterns": [
      "*.tmp"
    ],
    "sync": {
      "attributes": false,
      "permissions": "none",
    },
    "auto_file_lock": "off",
    "database_path": ""
  },
  "userdata": null
}
 XML 출력 예제
<resource id="r0" auto_up="true">
  <nodes>
    <node name="node1" url="127.0.0.1:9810">
      <files>
        <file path="E:/test/node1">
          <exclude_patterns>
            <pattern>*.tmp</pattern>
            <pattern>*.bak</pattern>
          </exclude_patterns>
        </file>
        <file path="E:/test/data.dat" type="file">
          <exclude_patterns></exclude_patterns>
        </file>
      </files>
      <file_buffer limit="1024" warn="150">D:/Temp</file_buffer>
    </node>
    <node name="node2" url="127.0.0.1:9820">
      <files>
        <file path="F:/test/node2">
          <exclude_patterns>
            <pattern>*.tmp</pattern>
            <pattern>*.bak</pattern>
          </exclude_patterns>
        </file>
        <file path="F:/test/data.dat" type="file">
          <exclude_patterns></exclude_patterns>
        </file>
      </files>
    </node>
  </nodes>
  <connections>
    <connection>
      <node1 name="node1"></node1>
      <node2 name="node2"></node2>
      <buffer size="100"></buffer>
      <network ping_interval="10"></network>
    </connection>
  </connections>
  <options recursive="true" auto_file_lock="on">
    <exclude_patterns></exclude_patterns>
    <sync attributes="true"></sync>
  </options>
  <network ping_interval="10" compress="false" tls="false" limit="0"></network>
  <handlers>
    <options timeout="0" timeout_action="kill"></options>
    <scripts></scripts>
  </handlers>
</resource>

구조

  • 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
(list)

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

고아 파일 보관 기간
0으로 설정 시 무기한

files/file/archive/ATTRIBUTE

location

디렉토리 경로

ADJUST

고아 파일 보관 위치

files/file/archive/TEXT

buffer

size

10

32비트 정수

MB

PROMOTE

BAB 크기
0으로 설정 시 메모리 버퍼 미사용

buffer/ATTRIBUTE

1.0-A3

file_buffer

limit

1024M

32비트 정수

MB

ADJUST

파일 버퍼 최대 크기
0으로 설정 시 파일 버퍼 미사용

file_buffer/ATTRIBUTE

warn

10M

32비트 정수

MB

ADJUST

사용량 경고 임계치
0으로 설정 시 경고 비활성화

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

특이사항

  • 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 크기
0으로 설정 시 메모리 버퍼 미사용

buffer/ATTRIBUTE

file_buffer

limit

1024

32비트 정수

MB

ADJUST

파일 버퍼 최대 크기
0으로 설정 시 파일 버퍼 미사용

file_buffer/ATTRIBUTE

warn

10M

32비트 정수

MB

ADJUST

사용량 경고 임계치
0으로 설정 시 경고 비활성화

file_buffer/ATTRIBUTE

0.9.1

network

ping_interval

10

32비트 정수

RECONN

PING 전송 간격
0으로 설정 시 비활성화

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)
0으로 설정 시 제한 없음

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 전송 간격
0으로 설정 시 비활성화

ATTRIBUTE

compress

false

true / false

Boolean

ADJUST

프로토콜 압축 여부

ATTRIBUTE

tls

false

true / false

Boolean

RECONN

암호화 통신 여부

ATTRIBUTE

limit

0

32비트 정수

bps

ADJUST

초당 전송량 제한 (bits per seconds)
0으로 설정 시 제한 없음

ATTRIBUTE

handlers

리소스 상황에 따라 실행 할 스크립트

항목

기본 값

설정 범위

단위

동적 적용

설명

XML

비고

options

timeout

0

32비트 정수

ADJUST

핸들러 실행 시간 제한
0으로 설정 시 제한 없음

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로 지정한 경우에만 리소스 구성의 값이 유효합니다.

  • No labels