10장. FS-Cache
FS-Cache는 파일 시스템에서 네트워크를 통해 검색된 데이터를 가져와 로컬 디스크에 캐시하는 데 사용할 수 있는 영구 로컬 캐시입니다. 이렇게 하면 네트워크를 통해 마운트된 파일 시스템에서 데이터에 액세스하는 사용자의 네트워크 트래픽을 최소화할 수 있습니다(예: NFS).
다음 다이어그램은 FS-Cache가 작동하는 방식에 대한 높은 수준의 예시입니다.
그림 10.1. FS-Cache 개요
[D]
FS-Cache는 시스템의 사용자와 관리자에게 최대한 투명하게 설계되었습니다. Solaris의 cachefs 와 달리 FS-Cache를 사용하면 초과된 파일 시스템을 만들지 않고 서버의 파일 시스템이 클라이언트의 로컬 캐시와 직접 상호 작용할 수 있습니다. NFS를 사용하면 마운트 옵션은 클라이언트에 FS-cache가 활성화된 NFS 공유를 마운트하도록 지시합니다.
FS-Cache는 네트워크를 통해 작동하는 파일 시스템의 기본 작업을 변경하지 않으며, 단순히 해당 파일 시스템에 데이터를 캐시할 수 있는 영구적인 위치를 제공합니다. 예를 들어 클라이언트는 FS-Cache가 활성화되어 있는지 여부에 관계없이 NFS 공유를 마운트할 수 있습니다. 또한 캐시된 NFS는 파일을 부분적으로 캐시하고 완전히 읽을 필요가 없으므로 캐시에 맞지 않는 파일을 처리할 수 있습니다. FS-Cache는 또한 클라이언트 파일 시스템 드라이버에서 캐시에 발생하는 모든 I/O 오류를 숨깁니다.
캐싱 서비스를 제공하기 위해 FS-Cache에는 캐시 백엔드 가 필요합니다. 캐시 백엔드는 캐싱 서비스(예: cachefiles)를 제공하도록 구성된 스토리지 드라이버입니다. 이 경우 FS-Cache에는 캐시 백엔드로 bmap 및 확장 속성(예: ext3)을 지원하는 마운트된 블록 기반 파일 시스템이 필요합니다.
FS-Cache는 네트워크에 관계없이 모든 파일 시스템을 중재할 수 없습니다. FS-Cache는 FS-Cache, 데이터 스토리지/retrieval, 메타데이터 설정 및 유효성 검사와의 상호 작용을 허용하도록 공유 파일 시스템의 드라이버를 변경해야 합니다. FS-Cache에는 지속성을 지원하기 위해 캐시된 파일 시스템의 인덱싱 키와 일관성 데이터가 필요합니다. 오브젝트를 캐시하기 위해 파일 시스템 오브젝트와 일관되게 일치해야 하는 인덱싱 키 및 캐시 개체가 아직 유효한지 여부를 확인할 수 있습니다.
참고
Red Hat Enterprise Linux 7에서 cachefilesd 패키지는 기본적으로 설치되지 않으므로 수동으로 설치해야 합니다.
10.1. 성능 보장
FS-Cache는 성능 향상을 보장하지 않지만 네트워크 정체를 방지하여 일관된 성능을 보장합니다. 캐시 백엔드를 사용하면 성능이 저하됩니다. 예를 들어 캐시된 NFS 공유는 교차 네트워크 조회에 디스크 액세스를 추가합니다. FS-Cache는 가능한 한 비동기적으로 사용하려고 하지만, 이를 수행할 수 없는 동기 경로(예: 읽기)가 있습니다.
예를 들어 FS-Cache를 사용하여 구성되지 않은 GigE 네트워크를 통해 두 컴퓨터 간에 NFS 공유를 캐시하면 파일 액세스 성능이 저하되지 않습니다. 대신 로컬 디스크가 아닌 서버 메모리에서 NFS 요청이 더 빨라졌습니다.
따라서 FS-Cache를 사용하는 것은 다양한 요인 간의 손상 입니다. 예를 들어 FS-Cache가 NFS 트래픽을 캐시하는 데 사용되는 경우 클라이언트가 조금 느려질 수 있지만 네트워크 대역폭을 사용하지 않고 로컬로 읽기 요청을 수행하여 네트워크 및 서버 로드를 크게 줄일 수 있습니다.