환경
다음은 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 이상 하드 디스크 용량이 요구됩니다.
운영 방식
- Active-Passive 클러스터링 운영을 기본으로 합니다.
- 프라이머리에서 세컨더리 노드로의 단방향 복제를 지원합니다. 환형 미러링, 이중 프라이머리 모드 등의 운영방식은 지원하지 않습니다.
- 비동기 방식의 복제를 지원하며 동기방식 복제는 지원하지 않습니다.
기능 범위
FSR 은 기본적으로 상용 파일시스템에서 구현하는 모든 파일 유형과 파일 I/O에 대한 복제를 지원하는 것을 목표로 하지만 모든 환경과 파일시스템을 전부 지원하기란 현실적으로 불가능합니다. 우리는 우선 가장 많이 사용되는 파일시스템과 환경을 우선적으로 지원하면서 그 지원 범위를 확대해 가겠습니다. 그리고 일부 시스템 파일들과 특수한 파일들에 대한 복제는 지원 명세에서 제외합니다. 이와 관련한 구체적인 파일복제 기능의 범위에 대해 다음의 분류에 따라 구체적으로 설명합니다.
파일 유형
다음의 파일 유형 들을 지원합니다.
- 일반 파일 및 디렉터리
- 링크 파일
- 소프트 링크
- 하드링크
- 정션, reparse point
- 스파스 파일
- 압축 파일
- 암호화 파일
다음의 특수 파일들은 FSR 1.1 버전에서 지원할 예정입니다.
- NTFS ADS(Alternate Data Stream)
- NTFS TxF(Transaction File)
사용자가 FSR의 복제 대상을 지정할 때 OS 수준에서 사용되는 시스템 파일들이 복제 대상으로 지정되지 않도록 주의해야 합니다. 시스템 파일들을 복제하는데 통상적으로는 문제가 없다 하더라도 동기화나 복제가 수행되는 과정에서 간혹 OS의 파일 I/O와의 경쟁으로 인해 교착상태가 발생하면 운영에 문제가 될 수 있으므로 주의해야 합니다.
I/O 유형
Windows 와 Linux 에서 지원하는 대부분의 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
- linux
리눅스의 Splice I/O 는 고속의 데이터 전송을 위해 zero copy 를 구현하는 특수 I/O 입니다. FSR 은 Splice I/O 를 캡쳐하여 복제 할 수 있지만 복제를 위해 Splice I/O 데이터를 복사하는 과정에서 Copy Latency 가 추가 소요되어 결과적으로 오리지널 Splice I/O 대비 성능저하를 가져옵니다. 이는 데이터 복제를 구현하는데 따르는 불가피한 기술적 한계입니다. Splice I/O 를 사용하는 응용프로그램의 데이터를 복제할 경우 이 점을 감안해야 합니다.
파일 속성
다음의 파일 속성들을 복제 합니다.
- 파일속성: 읽기전용, 숨김, 시스템, 디렉터리, 아카이브, 스파스, 압축, 암호화
- ACL: 소스파일의 SID 또는 계정이름
- 시간: 수정시간
대분의 파일 속성에 대해서 복제하지만 파일시간 속성은 수정시간에 대해서만 복제하고 그 이외의 시간에 대해선 복제하지 않습니다. 예를 들어 소스와 타깃의 파일 접근시간을 일치시키는 것은 기술적으로 불가능합니다.
- Windows 의 파일 특성 중 장치 특성(FILE_ATTRIBUTE_DEVICE)과 가상 특성(FILE_ATTRIBUTE_VIRTUAL)은 시스템에 예약된 특성으로 복제에서 제외합니다.
- Windows 10 에 추가된 OneDrive 와 관련된 다음의 파일 특성은 지원하지 않습니다.
- FILE_ATTRIBUTE_RECALL_ON_OPEN
- FILE_ATTRIBUTE_PINNED
- FILE_ATTRIBUTE_UNPINNED
- FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
공유 파일
네트웍 파일시스템(NFS)에 의해 공유된 파일을 완전하게 실시간 복제하는 것은 기술적인 제약이 따릅니다. 공유된 파일들을 변경하는 주체가 다수의 노드가 될 수 있기 때문에 로컬파일시스템을 필터링 하는 것만으로는 실시간 I/O 를 캡처하는 데 한계가 있습니다.
따라서 공유 파일에 대해선 실시간 복제를 구현하지 않으며 주기적인 동기화를 통해 백업하는 기능으로 제공합니다.