환경
다음은 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에 대한 복제를 지원하는 것을 목표로 합니다. 하지만 현실적으로는 모든 유형의 파일시스템을 지원할 수는 없으므로 가장 많이 사용되는 파일시스템과 환경을 우선적으로 지원하고 점차 그 지원 범위를 확대하고 있습니다. 또한 일부 시스템 파일들과 특수한 파일들에 대한 복제는 지원 명세에서 제외합니다. 아래의 내용은 이와 관련한 FSR에서 지원하는 구체적인 기능 범위에 대한 설명입니다.
FSR의 복제 대상을 지정할 때 OS에서 사용하는 시스템 파일들을 복제 대상으로 지정하지 않도록 주의해야 합니다. 시스템 파일들을 복제하는데 통상적으로 문제는 없지만 복제가 수행되는 과정에서 때로는 OS 로부터 유입된 파일 I/O와 FSR 엔진의 I/O 가 경쟁을 일으켜 교착상태가 되거나 예기치 않은 문제가 유발될 수 있으므로 OS 시스템 파일에 대한 복제는 대상에서 배제합니다.
파일 유형
다음의 파일 유형 들을 지원합니다.
- 일반 파일 및 디렉터리
- 링크 파일
- 소프트 링크
- 하드링크
- 정션, reparse point
- 스파스 파일
- 압축 파일
- 암호화 파일
- 특수 파일
- NTFS ADS(Alternate Data Stream)
- NTFS TxF(Transaction File)
- 링크파일은 다른 경로를 가리키는 파일입니다. 만약 복제 대상 내의 링크 파일이 복제 경로를 벗어난 외부 경로를 가리킬 경우 fsr 은 링크 파일 자체는 복제 하지만 링크가 가리키는 대상은 복제하지 않습니다. 링크파일이 가리키는 경로가 fsr 에 등록된 복제 대상 경로가 아니기 때문입니다. 따라서 링크파일이 가리키는 경로를 복제하고자 한다면 링크가 가리키는 해당 경로를 직접 복제 경로로 등록하여 구성할 것을 권장합니다.
- 한 파일을 링크한 하드링크들이 복제 경로 내부와 외부에 각각 존재할 수 있습니다. 이 경우 복제 대상이 아닌 외부 경로의 하드링크에 대한 변경점은 fsr에서 추적할 수 없으므로 복제 내부 경로에 위치한 하드링크 관점의 복제가 누락될 수 있습니다. 따라서 복제를 구성함에 있어서 하드링크가 복제 경로 내외부를 가로질러 링크하고 있는지 사전에 파악해야 합니다.
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 데이터를 복사하는 시간이 소요되면 결과적으로 오리지널 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,SMB 등)에 의해 공유된 파일을 실시간 복제하는 것은 기술적으로 불가합니다. 이것은 공유된 파일 데이터에 I/O 를 수행하는 주체가 여러 노드에 걸쳐 있기 때문에 FSR 이 설치된 로컬 파일시스템을 필터링 하는 것만으로는 복제를 구현할 수 없습니다.
따라서 FSR에선 원격의 네트워크 공유 파일에 대해선 실시간 복제를 지원하지 않습니다. 다만 원격의 공유파일들을 동기화 소스로 삼아 일정 주기로 읽어서 동기화 시키는 방식을 통해 백업하는 것은 가능합니다.