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