Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

시스템 구성파일은 config.json 파일입니다. 별도 경로를 지정하지 않을 경우 %FSR_HOME%/conf/config.json 의 경로에 위치합니다.

구성파일을 수정한 뒤 적용하기 위해서는 프로그램을 재 실행하거나 다음의 갱신 명령을 실행합니다.

fsradm config adjust

리소스 구성

리소스 파일의 파일 형식은 '*.res'이며, 경로는 시스템 설정 파일의 'options/resource_path' 항목에 명시되어 있습니다.
resource_path 의 기본 값은 현재 위치('.')이고 시스템 구성 파일의 위치를 기준으로 하여, 기본 위치는 config.json 파일의 위치와 같습니다.

다음은 리소스 구성 파일의 예 입니다.

Code Block
languagetext
titler0.res
{
  "id": "r0",
  "description": "test resource",
  "auto_start": true,
  "nodes": [
    {
      "name": "node1-hostname",
      "urls": {
        "repl": "10.20.200.75:9810",
        "sync": "10.20.200.75:9811"
      },
      "directories": [
        {
          "path": "G:/test/r0",
          "exclude_patterns": [
          ]
        }
      ]
    },
    {
      "name": "node2-hostname",
      "urls": {
        "repl": "10.20.200.76:9810",
        "sync": "10.20.200.76:9811"
      },
      "directories": [
        {
          "path": "G:/test/r0",
          "exclude_patterns": [
          ]
        }
      ]
    }
  ],
  "connections": [
    {
      "node1": {
        "name": "node1-hostname"
      },
      "node2": {
        "name": "node2-hostname"
      },
      "buffer": {
        "size": 1024
      },
      "network": {
        "ping_interval": 10,
        "compress": false,
        "tls": false,
        "limit": 0
      }
    }
  ],
  "options": {
    "exclude_patterns": [
    ]
  }
}

...

Info

FSR은 복제 대상 파일의 데이터와 속성을 동기화하고, 파일에 발생하는 쓰기를 포함한 모든 변경분 I/O 에 대해 복제 합니다(일부 속성은 선택사항). 다만 파일 엑세스 시간, 오프라인, 재분석 등 운영환경에 의존적이거나 특수한 파일속성은 복제할 수 없습니다.

그리고 복제를 구성하기 전 다음의 사항들에 대해 주의해야 합니다.

  • 시스템에서 사용하는 파일이나 디렉터리는 복제해선 안됩니다.
  • 타깃에 복제된 파일을 Application 에서 열도록 허용해선 안됩니다. 이를 위해 FSR은 타깃 파일 보호 기능을 제공하며 이는 선택사항 입니다.
  • 타깃 디렉터리에 복제하기 전에 타깃 디렉터리에 있던 다른 데이터가 덮어쓰기 되지 않도록 사전에 반드시 확인해야 합니다.


개별 연결 구성

connections 항목을 별도 기술하지 않을 경우 복제 대상 노드들은 개별적으로 각각의 노드들이 모두 연결을 수립합니다. 이것을 mesh 네트워크라고 합니다. mesh 네트워크에서 n 노드에 대한 복제 연결은 n*(n-1)/2 만큼 생성됩니다.

...

각각의 연결은 2 개의 노드에 대한 연결을 의미하여 node1, node2로 고정된 항목에서 이름 항목으로 기술합니다. node1.name, node2.name 의 항목은 앞서 node 항목에서 기술한 name 내용을 내용과 동일하게 기술하여 node 항목과 connections.node1, connections.node2 의 항목이 매칭되도록 합니다.

보통의 경우에 있어서는 개별연결을 구성하지 않고 connections를 구성할 필요 없이 mesh 네트워크로 구성하여 복제합니다구성합니다.

제외 패턴

복제 대상에서 배제할 필요가 있는 파일에 대해선 제외 패턴을 통해 복제 대상에서 제외할 수 있습니다. 제외 패턴은 단일 경로 또는 와일드카드(*, !) 기호 등을 사용하여 정규식 기반으로 지정할 수 있습니다.

...

비동기 복제에 있어서 실시간 I/O 변경 분은 버퍼에 축적되어 타깃에 순차적으로 반영되기 때문에 버퍼링이 지속되는 한 타깃이 데이터는 최신의 복제 상태를 유지할 수 있게 됩니다있습니다. 따라서 버퍼를 구성하는 것은 FSR 구성에 있어서 가장 중요한 사항으로 구성 에서의 핵심사항으로서 리소스를 기동하기 전에 버퍼 용량과 관련한 사항들을 운영환경에 맞게 적절히 구성해야 합니다. 

버퍼는 커널에 고정적으로 할당되는(비페이징 풀) 커널 메모리 버퍼와 파일로 할당되는 파일버퍼로 제공됩니다구성합니다. 시스템의 가용한 가용 커널 메모리는 한정적이기 제한적이기 때문에 시스템의 메모리 상황에 맞게 메모리 버퍼를 산정해야 하고 메모리 버퍼 공간이 부족할 경우 추가적으로 파일버퍼로 충당할 수 있습니다. FSR은 메모리버퍼를 우선하여 사용하고 메모리 버퍼가 다 사용될 경우 파일버퍼링으로 전환하여 처리합니다. 만약 두 버퍼가 모두 오버플로우 된다면 버퍼링은 자동 중단되어 버퍼링되었던 데이터들은 모두 버려지고 재동기화 단계로 이행하게 됩니다. 따라서 가능한 한 버퍼링 버퍼링을 위한 공간을 많이 확보하여 동기화 상태로 전환되지 않도록 복제 상태를 유지할 않고 복제 상태가 유지되도록 할 필요가 있습니다.

또한 이 두가지 방식의 버퍼는 메모리와 파일을 대상으로 I/O를 수행하기 때문에 메모리와 파일버퍼는 근본적으로 성능에 큰 차이를 보입니다. 차이가 있기 때문에 로컬 시스템의 I/O 부하가 큰 상황에서는 크다면 메모리 버퍼를 많이 확보하는 운영방식이 성능에 유리합니다.

버퍼는 복제 연결 단위로 작동하기 때문에 1:N 복제의 경우 연결 개수(N) 만큼 개별적으로 지정해야 합니다.

메모리 버퍼

커널에서 할당되는 메모리는 가용 용량이 제한적입니다제한적 입니다. 시스템 가용 용량에 비해 너무 많이 많은 커널 메모리를 할당할 경우 시스템 성능에 영향을 줄 수 있으므로 적정한 수준으로 할당해야 합니다.

...