Versions Compared

Key

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

Table of Contents

...

구성 유형

FSR은 대표적으로 다음과 같은 구성 유형을 지원합니다. 

...

1:1 복제

소스 노드와 타깃노드를 대상으로 한 1:1 복제 구성입니다.

<그림>

...

1

...

:N 복제

하나의 소스노드를 다수의 타깃노드로 동시 복제하는 1:N 복제 구성입니다.

<그림>

...

N:1 복제

다수의 노드를 소스로 하고 하나의 노드를 타깃으로 구성하는 N:1 복제 방식 입니다.

<그림>

...

로컬 복제

소스와 타깃의 복제 대상을 하나의 노드로 지정하는 방식입니다. 별도의 타깃노드를 두지 않고 로컬에 실시간 백업을 하거나 로컬 마이그레이션을 하기위한 용도로 사용합니다.

<그림>

...

공유 볼륨 복제

하나의 소스 데이터를 두 노드가 공유하고 타깃 노드로 복제하는 구성입니다. 공유 볼륨은 SAN 형태의 스토리지 볼륨, NFS의 공유볼륨을 대상으로 합니다.

...

<그림- 공유 스토리지>

<그림- NFS 공유>

...



구성 파일

구성파일은 복제의 구성 유형과 속성을 기술하는 json 형식의 텍스트 파일로서 시스템 구성파일과 리소스 구성파일로 기술합니다. 시스템 구성파일에는 FSR의 동작에 필요한 노드 전역적인 경로들이 지정되고, 리소스 구성파일에서 ip주소, 복제대상, 핸들러 등 복제를 위한 구체적인 사항을 기술합니다. 

...

FSR 엔진은 리소스 기동 시점에 구성 파일을 해석하여 구성 형태에 맞게 노드 간 연결 및 복제 대상경로 등을 초기화 하여 복제 서비스를 준비 합니다.

구성파일의 형식과 관련한 세부 속성은 Appendix C. 구성파일의 내용을 참고하세요.

...

시스템 구성

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

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

fsradm config adjust

...

리소스 구성

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

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

Code Block
languagejs
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의 구성파일은 json 형식으로 기술하며 json 형식에 따라 하나의 속성을 키와 값의 쌍으로 기술합니다. 속성의 유형에 따라 객체(object)와 배열(array)형식으로 기술할 수 있으며, 객체는 중괄호로 구분하고 배열은 대괄호로 구분합니다. 또한 객체와 배열은 혼합하여 기술할 수 있습니다.

기본 구성

  • 리소스를 식별하기 위한 ID를 기술합니다.
  • 복제 대상 노드들을 nodes 항목에 배열 형식으로 기술합니다. node 항목 내에서 hostname, ip 주소:포트 를 기술합니다. hostname 을 기술하지 않고 IP 주소로 name 항목을 기술할 수도 있습니다.
  • 복제대상을 directories 항목에 디렉터리와 파일로 기술합니다. 필요하다면 제외패턴을 추가적으로 기술합니다.

개별 연결 구성

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

...

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

제외 패턴

복제 대상에서 배제할 필요가 있는 파일에 대해선 제외 패턴을 통해 복제 대상에서 제외할 수 있습니다. 제외 패턴은 와일드카드(*, !) 기호를 사용하여 손쉽게 기술할 수 있습니다.

버퍼 구성

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

...

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

메모리 버퍼

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

최대 수십GB 까지 할당할 수 있으며 보통 수GB 수준으로 할당합니다.

파일 버퍼

파일버퍼는 파일버퍼가 위치하는 디스크의 공간이 허용되는 용량 만큼 할당할 수 있습니다. 최대 수십TB 까지 할당할 수 있으며 보통 수십GB 수준의 대용량으로 운영할 수 있습니다. 파일버퍼는 시스템 볼륨의 경로로 구성할 경우 파일버퍼의 읽기,쓰기 I/O 로 인해 시스템 전반의 성능에 영향을 줄 수 있기 때문에 별도의 디스크 경로로 운영하는 것을 권장합니다. 

...