Versions Compared

Key

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

Table of Contents

FSR

FSR(File level Sync and Replications)은 기업의 중요 데이터를 네크워크를 통해 이중화하고 실시간 백업하기 위한 파일 수준의 호스트 기반 복제 솔루션입니다.

사용자는 복제 대상을 파일, 디렉터리 수준에서 손쉽게 지정할 수 있고 1:1, 1:N, N:1 등 다양한 구성방식을 통해 유연한 복제 환경을 구축할 수 있습니다. 복제 구축과정에서는 서비스 운영 측면의 다운타임 없이 기 구축 환경에서도 실시간 마이그레이션이 가능하고 스플릿 브레인 자동감지, 삭제 데이터 백업, 압축/암호화, 스냅샷 등 이중화에 필요한 다양한 기능을 제공합니다. 

FSR은 장애극복(fail-over) 클러스터링 기반의 Active-Standby 미러링으로 운영하며 순환 미러링, 이중 프라이머리 등의 운영 방식은 지원하지 않습니다.

...

주요 기능

동기화

Drawio
mVer2
simple0
zoom1
inComment0
custContentId31723685113620143748
pageId1061127806
diagramDisplayNamefsr basic conceptFSR_resync_basic.drawio
lbox1
contentVer1
revision1
baseUrlhttps://mantech.jira.com/wiki
diagramNamefsr basic conceptFSR_resync_basic.drawio
pCenter0
width661529.96
links
tbstyle
height421391

주요 기능

동기화


FSR은 데이터 복제를 수행하기에 앞서 소스 노드의 전체 데이터를 타깃노드로 복사하여 소스와 타깃의 데이터를 일치시키는 과정을 진행합니다. 이 과정을 동기화라고 합니다. 

최초 동기화를 수행할 때에는 전체 데이터를 대상으로 동기화 하지만 한번 동기화가 완료되고 난 이후에 다시 재동기화가 필요할 경우에는 소스 노드 데이터의 변경분에 대해서만 증분 부분 동기화를 수행하여 효율적으로 동기화 합니다. 재동기화는 복제 도중 복제 네트워크 연결이 단절되었다가 재연결 되거나 노드 기동이 노드가 중단(reboot) 되어 재기동 되는 되었다가 재가동 된 후 연결되는 등 복제 네트워크가 정상화 되는 시점에 수행됩니다. 즉 초기동기화를 하고 난 이후에는 FSR 이 동기화가 필요할 때마다 자동으로 증분동기화를 부분동기화를 수행합니다.

동기화는 동기화 명령, 동기화 스케줄 설정등 사용자 개입에 주기 설정 등 사용자에 의해 수동으로 동기화를 수행하도록 동기화 할 수도 있습니다. 


복제

...

Drawio
simple0
zoom1
inComment0
custContentId3172368511
pageId1061127806
diagramDisplayNamefsr basic concept
lbox1
contentVer1
revision1
baseUrlhttps://mantech.jira.com/wiki
diagramNamefsr basic concept
pCenter0
width661
links
tbstyle
height421


데이터의 변경 분을 실시간 타깃으로 반영하는 동작을 복제라고 합니다. 데이터의 변경은 동기화가 진행 중인 상태에서도 수행됩니다. 즉 동기화와 복제는 개별적으로 처리됩니다.

  • 동기화는 전체 동기화 대상을 디렉터리 단위로 목록화 하여 전용 작업자를 통해 순차 처리합니다.
  • 복제는 파일로 향하는 (쓰기)변경 분 데이터를 해당 쓰기 문맥에서 타깃으로 실시간 빠르게 반영합니다.

동기화와 복제는 소스에서 타깃으로 데이터를 반영한다는 측면에서 유사하지만 실질적으로는 서로 다른 동작 이므로 FSR 은 이를 별도로 구분합니다.

복제는 복제를 처리하는 방식에 따라 동기, 비동기 방식으로 구분합니다. 

  • 동기 방식은 하나의 디스크의 쓰기 I/O를 소스와 타깃의 디스크에 동시에 반영한 후 완료하는 방식으로 타깃 정합성을 완전히 보장합니다. 반면 타깃노드의 복제 응답 성능이 로컬 I/O 지연성능에 영향을 주기 때문에 성능 크리티컬한 서비스를 동기방식으로 구축하는 데에는 성능적 제약이 따릅니다.
  • 비동기 방식은 디스크 쓰기 I/O 가 로컬에 반영되고 복제 데이터가 전송버퍼에 복사되었을 때를 복제 완료로 간주합니다. 이 방식은 소스 측의 갑작스런 노드 장애가 있을 경우 복제 버퍼링 과정에 있었던 일부 데이터가 유실 있어서 있으므로 타깃 정합성이 완전히 보장 되지는 않습니다. 그러나 않지만 로컬 I/O 지연에 영향이 없는 높은 성능을 보장하며 전송대역에 제약이 없는 원거리 복제를 구축하는데 사용됩니다보장합니다.

FSR 은 기본적으로 비동기 방식 복제를 지원합니다. 비동기 복제는 로컬 I/O 지연의 영향을 최소화하도록 최소화 하기위해 내부 버퍼링을 수행해야 하며 수행하며 이때 사용하는 버퍼의 크기를 운영환경에 맞게 적절히 설정해야 합니다. 버퍼는 메모리 버퍼와 파일버퍼로 제공되고 제공하고 그 크기는 시스템의 가용 메모리, 디스크 한도 내에서 적당히 설정합니다.


정합성 검증

FSR 의 정합성 검증은 소스노드와 타깃노드의 복제 파일 SET에 대해 파일단위 해쉬 요약을 수행하고 목록화하여 실시간 비교하는 기능입니다. 비교의 결과에 차이가 있다면 이를 알려주고 해당 차이점을 재동기화를 통해 해소할 수 있습니다. FSR은 정상적인 운영상황에서는 소스와 타깃의 정합성을 검증할 필요가 없습니다. 다만 복제 단위가 파일인 만큼 타깃의 파일이 보호되지 않는 상황에서 임의로 데이터가 조작되거나 삭제되는 등 의도되지 않은 운영상황을 해결해야 하거나 소스와 타깃의 차이점 비교를 해야할 필요가 있을 때 정합성 검증 기능이 유용합니다.

최적화

복제는 운영환경에 따라 전송 대역폭이 낮을 경우 타깃 정합성을 유지하기 어렵습니다. 복제 환경이 물리적으로 뒷받침 되지 못하는 이러한 상황에 대해서 FSR은 전송 데이터에 대한 압축을 통해 전송 부하를 최적화하는 기능을 제공하고 필요에 따라 실시간 암호화도 동시 수행할 수 있습니다.

또한 운영 상황에 따라 복제 전송 대역을 임의로 제한하여 공용 네트워크 대역을 효율적으로 사용할 수 있는 기능을 제공합니다. 

스플릿 브레인 해결

FSR은 복제 스플릿 브레인을 자동 감지 합니다. 이는 다른 상용 파일복제 솔루션에서는 제공하지 않는 기능으로 FSR 솔루션만의 큰 특징입니다. 여타 파일 복제 솔루션에선 스플릿브레인의 감지를 HA 솔루션의 운영에 맡겨서 처리합니다. 그러나 이러한 방식은 HA 운영에 의존적이며 상황에 따라 역싱크로 인한 데이터 유실이 발생할 여지가 있습니다. 이러한 문제를 근본적으로 방지하기 위해선 복제 솔루션 측면에서 파일의 상태를 추적하고 스플릿 브레인을 자동 감지하여 데이터 유실이 발생하지 않도록 해야 합니다.

성능 통계

복제의 운영상황을 모니터링하고 성능을 실시간 확인할 수 있는 통계 정보를 제공합니다. 

HA/DR 연동

FSR은 HA/DR 연동을 위한 CLI와 Rest-API 를 제공합니다. 명령어의 내용을 소스와 타깃의 차이점 을 비교하고 싶을 때, 타깃의 파일잠금이 해제되어 임의로 데이터가 조작되는 등 의도되지 않은 운영상황의 결과를 추적하고자 할 때 유용합니다.


스플릿브레인 감지

복제 운영 중 의도치 않은 비정상적 상황에 놓일 경우 소스 측의 데이터를 보호하기 위한 조치가 필요합니다. 그 중 연결 단절 후 특정 시점에 2 Primary 가 되어(스플릿 브레인, spli-brain) 잠재적으로 데이터 유실의 위험이 생기면 이를 자동 감지하여 복제를 차단하도록 조치해야 하는데, 이러한 기능을 스플릿 브레인 감지라고 합니다. 이와 관련한 자세한 사항은 문제 해결 의 스플릿 브레인을 참고하세요.


스냅샷

복제 운영 중 장애로 인해 페일오버에 실패하거나 말웨어 감염 등 보안 이슈로 인해 복제 타깃으로 복구할 수 없는 경우가 발생할 수 있습니다. 일반적으로는 이런 경우에 데이터 백업을 통해 복구할 수 있도록 대비해야 합니다. FSR은 스냅샷 기능을 통해 특정 시점으로의 복구를 지원하며 스냅샷을 생성하고 관리하며 스냅샷 스토리지의 공간을 조정하는 등 스냅샷 시점복구와 관련한 일체의 인터페이스를 제공합니다. 이와 관련한 자세한 사항은 스냅샷 - FSR 1.2 부분을 참고하세요.


용어


노드

네트워크에 연결된 장치를 통칭하는 용어이며 그 중 네트워크 주소가 할당된 노드를 호스트라고 합니다. 통상 노드와 호스트는 구분하지 않고 사용되는 경향이 있으며 본 매뉴얼에서도 노드는 호스트와 특별히 구분하지 않고 동등한 의미로 사용합니다.

...

Info

비슷한 용어

  • Primary/Secondary, 소스/타깃, Active/Standby 는 복제, HA 환경에 따라 의미가 다르지만 엄격하게 구분해서 쓰지는 않습니다.
  • 여기서는 일반적으로 소스/타깃을 사용하고 부여된 역할 측면으로는 Primary/Secondary 로 사용합니다.
  • 복제의 경우 항상 Primary가 소스이며 Secondary 가 타깃이지만, 동기화의 경우는 Secondary 노드 도 소스 노드가 Primary 는 복제, 동기화에서 항상 소스이지만, Primary 가 없는 클러스터 에서는 Secondary 가 동기화 소스가 될 수 있습니다.

...

복제 대상

리소스 내의 구성요소로서 복제 대상을 기술한 복제의 단위입니다. 파일셋은 복제대상 복제 대상은 파일 또는 디렉터리로 기술하며 제외필터를 포함합니다. 제외필터는 복제 대상들 중 일부 파일 또는 디렉터리를 제외할 수 있도록 제공하는 정책으로서 와일드카드 등 정규식 기반으로 기술합니다.

...

FSR은 복제 대상 파일셋의 파일 상태를 표현하는 ULID 기반의 고유번호를 유지하고 관리합니다. 이 값을 RID(Revision Identifier)라고 합니다. FSR은 RID 를 통해 동기화의 방향을 결정하고 스플릿 브레인을 식별합니다.

...