Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

환경

다음은 FSR이 지원하는 플랫폼과 대상 시스템의 물리적 요구사양 입니다.

플랫폼

Windows 2012 x64 이상, Linux CentOS 6.4, Ubuntu 16.04 LTS x64 이상의 플랫폼에서 동작합니다. 파일시스템은 NTFS, ReFS 와 ext 계열(ext3 이상), xfs 를 지원합니다. (FAT 계열 등 구형 파일시스템은 지원하지 않습니다.)

CPU

최소 2GHz, 4 core 이상 x86/x64 호환 프로세서에서 동작합니다.

메모리

복제를 위한 메모리 버퍼 용도로 리소스 당 1GB 이상 물리메모리가 권장됩니다.

디스크

설치파일과 로그 파일 등 기본 설치용량은 2GB 이며 파일 버퍼 용으로 리소스 당 10GB 이상 하드 디스크 용량이 요구됩니다.

운영 방식

  • 액티브/패시브 클러스터링 운영을 기본으로 한 프라이머리에서 세컨더리 노드로의 단방향 복제를 지원합니다. 환형 미러링, 이중 프라이머리 모드 등의 운영방식은 지원하지 않습니다.
  • 비동기 방식의 복제를 지원하며 동기방식 복제는 지원하지 않습니다.

기능 범위

FSR 은 기본적으로 상용 파일시스템에서 구현하는 모든 파일 유형과 파일 I/O에 대한 복제를 지원하는 것을 목표로 하지만 모든 환경과 파일시스템을 전부 지원하기란 현실적으로 불가능합니다. 우리는 우선 가장 많이 사용되는 파일시스템과 환경을 우선적으로 지원하면서 그 지원 범위를 확대해 가겠습니다. 그리고 일부 시스템 파일들과 특수한 파일들에 대한 복제는 지원 명세에서 제외합니다. 이와 관련한 구체적인 파일복제 기능의 범위에 대해 다음의 분류에 따라 구체적으로 설명합니다.

파일 유형

다음의 파일 유형 들을 지원합니다.

  • 일반 파일 및 디렉터리
  • 링크 파일
    • 소프트 링크
    • 하드링크
    • 정션, reparse point
  • 스파스 파일
  • 압축 파일
  • 암호화 파일

다음의 특수 파일들은 FSR 1.1 버전에서 지원할 예정입니다.

  • NTFS ADS(Alternate Data Stream)
  • NTFS TxF(Transaction File)

I/O 유형

NTFS, ext 파일시스템에서 구현하는 대부분의 I/O 유형들을 지원합니다.

  • 일반 I/O
    • 버퍼 I/O (Buffered I/O, Cached I/O)
    • 직접 I/O (Direct I/O, Non-Cached I/O)
  • 메모리맵 I/O
  • 특수 I/O
    • linux
      • 비동기 I/O(aio)
      • 벡터 쓰기(writev)
      • splice I/O
      • uring I/O

파일 속성

다음의 파일 속성들을 복제 합니다.

  • 파일속성: 읽기전용, 숨김, 시스템, 디렉터리, 아카이브, 스파스, 압축, 암호화
  • ACL: 소스파일의 SID 또는 계정이름
  • 시간: 마지막 수정시간, 마지막 기록시간, 만든시간

거의 모든 파일 속성에 대해서 복제하지만 '파일 엑세스 시간', '오프라인 파일' 속성에 대해선 예외로 합니다. 

공유 파일

네트웍 파일시스템(NFS)에 의해 공유된 파일을 완전하게 실시간 복제하는 것은 기술적인 제약이 따릅니다. 공유된 파일들을 변경하는 주체가 다수의 노드가 될 수 있기 때문에 로컬파일시스템을 필터링 하는 것만으로는 실시간 I/O 를 캡처하는 데 한계가 있습니다.

...

FSR(File Sync Replicator)의 원활한 동작을 위해 요구되는 플랫폼, 하드웨어 리소스, 그리고 복제 지원 범위에 대한 상세 사양을 기술합니다. 안정적인 서비스 운영을 위해 아래 권장 사양을 준수하여 시스템을 구성하십시오.

플랫폼 및 파일 시스템

FSR은 엔터프라이즈 환경의 주요 운영체제와 파일 시스템을 지원합니다.

지원 운영체제 (OS)

  • Windows: Windows Server 2012 x64 이상

  • Linux:

    • CentOS 7.x 이상

    • Ubuntu 18.04 LTS x64 이상

    • (기타 x86/x64 호환 주요 리눅스 배포판)

지원 파일 시스템

  • Windows: NTFS, ReFS

  • Linux: ext 계열 (ext3, ext4), xfs

  • 미지원: FAT/FAT32 등 구형 파일 시스템은 지원하지 않습니다.

...

하드웨어 요구 사항

시스템 안정성과 I/O 처리 성능을 보장하기 위한 최소 및 권장 하드웨어 사양입니다.

CPU

  • 아키텍처: x86/x64 호환 프로세서

  • 사양: 최소 2GHz 클럭, 4 Core 이상 권장

메모리 (RAM)

메모리 구성은 시스템 운영 영역복제 버퍼 영역으로 나뉘며, 각 용도에 맞는 충분한 리소스 확보가 필요합니다.

  1. 시스템 권장 메모리

  • 기본 용량: 최소 4GB 이상

  • 가용 용량: 전체 물리 메모리의 30% 이상 여유 공간 확보 권장

주의: 메모리 부족에 따른 I/O 성능 저하 운영체제는 물리 메모리 공간이 부족해질 경우, 가용 메모리 확보를 위해 디스크를 활용하는 페이징(Paging/Swapping) 기법을 가동합니다.

페이징이 발생하면 디스크 읽기/쓰기 작업이 급증하여 I/O 병목 현상(Disk Thrashing)이 발생합니다. 이는 디스크 자원을 필수적으로 사용하는 FSR의 복제 성능에 심각한 지연을 초래할 수 있습니다. 따라서 시스템 안정성을 위해 페이징이 발생하지 않도록 충분한 물리 메모리 여유 공간을 상시 확보해야 합니다.

  1. 복제용 메모리 버퍼 (Memory Buffer)

로컬 I/O 부하를 완충하고 전송 효율을 높이기 위한 버퍼 크기 산정 공식은 다음과 같습니다.

Buffer Size = Max Bandwidth(/sec) * Timeout(sec)

  • 산정 예시 (1Gbps 대역폭 기준):

    • 대역폭: 100MB/s (약 1Gbps)

    • 타임아웃: 5s

    • 계산: 100MB/s * 5s = 500MB

    • 권장 설정: 계산값의 여유를 두어 500MB ~ 1GB로 설정

  1. WAN 구간 (DR) 구성 시 고려사항

  • DRX 버퍼링: WAN 구간의 네트워크 변동성에 대응하기 위해 DRX 연동 기능을 권장합니다.

  • 버퍼 확장: DRX 미사용 시, 위 산정 공식의 2~3배로 버퍼를 확장하거나 파일 버퍼(File Buffer) 사용을 고려해야 합니다.

버퍼 블로트(Bufferbloat) 주의: WAN 구간 대역폭 대비 버퍼 크기를 과도하게 크게 설정할 경우, 버퍼에 쌓인 데이터 자체가 병목을 유발하여 지연(Latency)이 심화될 수 있습니다. 네트워크 환경에 맞춰 적정 크기로 튜닝하는 과정이 필요합니다.

...

디스크 및 스토리지

설치 및 운영을 위한 디스크 공간 요구사항입니다.

구분

필요 용량 / 설명

기본 설치

2GB (설치 파일, 엔진, 성능 로그 등)

디버그 로그

리소스 당 약 110MB 추가 필요

파일 버퍼

메모리 버퍼 부족 시 디스크를 버퍼로 사용. 설정한 크기만큼 디스크 공간 점유.

스냅샷 (백업)

외부 디스크: 데이터 디스크 용량만큼의 별도 디스크 준비 필요

내부 디스크: 데이터 디스크 내 충분한 여유 공간 확보 필요

파일 버퍼 (File Buffer) 특성

  • 용도: 메모리 리소스가 부족할 때 일반 파일을 버퍼로 활용하는 기능입니다.

  • 성능 영향: 메모리 대비 I/O 속도가 느리므로 전체 성능 저하가 발생할 수 있습니다. 성능 저하를 최소화하려면 파일 버퍼 전용 디스크 볼륨 구성을 권장합니다.

  • 크기 설정: 통상 메모리 버퍼 산정 크기의 5 ~ 10배 수준으로 설정합니다.

...

복제 지원 범위

FSR이 지원하는 데이터 유형과 제외되는 항목에 대한 상세 정의입니다.\

디스크 경로

  • 지원: 로컬 디스크(Local Disk) 경로

  • 미지원: NAS(NFS, CIFS) 등의 원격 마운트 경로

    • 참고: NAS 경로는 실시간 복제가 아닌 '주기적 동기화' 방식을 통해 백업해야 합니다.

파일 유형 및 속성

  1. 지원 파일 유형

  • 일반 파일 및 디렉터리

  • 링크 파일 (Soft Link, Junction, Reparse Point)

  • 스파스 파일 (Sparse File), 압축/암호화 파일

  • 특수 파일: NTFS ADS(Alternate Data Stream), NTFS TxF(Transaction File)

  1. 복제 제외 대상 (주의)

시스템 안정성을 위해 OS 구동과 관련된 파일은 복제 대상에서 제외해야 합니다.

  • OS 시스템 파일, 드라이버 파일, 스왑(Swap/Page) 파일

  • OS 설치 경로 (예: C:\Windows, /boot, /proc 등)

경고: 시스템 파일을 복제 대상으로 지정할 경우, OS의 I/O와 복제 프로세스가 경합하여 심각한 시스템 오류나 성능 저하를 유발할 수 있습니다.

  1. 링크(Link) 파일 처리 정책

  • 기본 동작: FSR은 링크 파일 자체(Pointer)만 복제하며, 링크가 가리키는 원본 대상(Target)은 복제하지 않습니다.

  • 외부 링크: 링크가 복제 설정 경로 외부를 가리킬 경우, 해당 원본 데이터는 복제되지 않습니다. 원본 데이터까지 복제를 원한다면 해당 경로를 복제 대상에 포함해야 합니다.

  • 하드링크(Hard Link) 제약: 하드링크가 복제 경로 내/외부에 걸쳐 존재하는 경우, 외부 하드링크를 통한 변경 사항은 FSR이 추적할 수 없어 데이터 불일치가 발생할 수 있습니다. 구성 전 하드링크 구조 파악이 필요합니다.

파일 속성 및 권한

  • 지원 속성: 읽기 전용, 숨김, 시스템, 아카이브, 압축, 암호화 등 표준 속성.

  • 시간 속성: **수정 시간(mtime)**만 복제됩니다. (접근 시간 등은 복제 제외)

  • 보안 속성 (ACL): 소스 파일의 보안 식별자(SID, UID/GID)를 복제합니다.

    • 참고: 소스와 타깃 서버의 보안 계정 체계가 다를 경우, 복제 후 타깃 서버에서 권한 재설정(매핑) 작업이 필요할 수 있습니다.

  • Windows 특정 제외 속성:

    • 장치/가상 특성 (FILE_ATTRIBUTE_DEVICE, VIRTUAL)

    • OneDrive 관련 속성 (RECALL_ON_OPEN, PINNED 등)

...

I/O 지원 및 운영 방식

I/O 처리 유형

Windows 및 Linux의 표준/특수 I/O를 폭넓게 지원합니다.

  • 일반: Buffered I/O, Direct I/O, Memory Mapped I/O

  • Linux 특수: AIO, Writev, Splice I/O, uring I/O

    • Splice I/O 성능 참고: Linux Splice I/O는 Zero-copy 기반의 고속 전송 기술입니다. FSR이 이를 캡처하여 복제할 경우, 데이터 사본 생성 과정에서 불가피하게 오리지널 Splice I/O 대비 성능 저하가 발생할 수 있습니다.

운영 모드

  • 구성 방식: Active-Passive (단방향 복제)

  • 복제 방식: 비동기(Asynchronous) 방식 지원

  • 미지원: 동기(Synchronous) 방식, 환형(Ring) 미러링, Active-Active(이중 프라이머리) 모드