개요
FSR 은 파일수준의 복제를 구현합니다. 파일을 복제하는 환경은 볼륨의 데이터가 파일 시스템에 의해 형식화 된 파일과 경로를 통해 관리 됨을 전제합니다. 따라서 FSR 은 파일시스템 계층 상부에 커널 필터 모듈을 삽입하여 볼륨으로 유입되는 모든 쓰기 I/O 에 대해 조사하고 해당 I/O 가 복제할 대상인지 식별합니다. 여기서 커널 필터 드라이버내의 복제 대상을 식별하기 위한 파일 경로 필터링 로직을 경로필터(path filter)라고 합니다. 경로필터는 FSR로 유입된 쓰기 I/O 의 목적지 경로가 복제 대상인지를 판단하고 버퍼링을 하거나 또는 I/O 를 하부 계층으로 bypass 합니다. 쓰기 I/O 가 복제 대상으로 식별되면 드라이버는 공유된 메모리 영역을 통해 I/O 데이터를 FSR Syncer 엔진 측으로 전달합니다. 이후 데이터를 타깃으로 송신하여 전달하는 것은 Syncer 엔진이 담당합니다.
즉 FSR은 커널 필터 드라이버 모듈과 Syncer 엔진 두 모듈을 상호 연동하여 복제를 구현합니다. 여기서는 커널 필터 드라이버의 경로필터와 공유버퍼에 대해 설명합니다.
경로 필터
경로필터는 리소스에 지정된 복제대상 경로들을 관리하고 검색하는 용도의 구성요소로서 경로필터의 검색 성능이 로컬 I/O 의 지연성능에 큰 영향을 끼칩니다. 경로필터의 내부 구조가 이진트리를 기본으로 하지만 기본적으로 관리해야할 대상 경로가 많아질 수록 경로필터에 대한 검색비용이 증가하는 것은 불가피 합니다.