SSD를 캐시로 사용할 수 있나요?

SSD를 캐시로 사용할 수 있나요?

저는 주로 plex와 Serviio(dlna 서버)와 함께 사용하는 Linux 미디어 서버를 가지고 있습니다. 저는 t400 4GB GPU(트랜스코딩), 16GB DDR4 RAM, i7-6700 CPU를 가지고 있습니다. 이제 3개의 SSD가 있습니다. 영화용 1TB, 스왑용 250GB(더 작은 SSD는 찾을 수 없음), 또 다른 500GB SSD는 사용되지 않습니다. 이 SSD를 캐시로 사용해볼까 생각도 해봤습니다. 두 개의 HDD가 USB를 통해 외부적으로 PC에 연결되어 있고 시스템에 삼바 공유가 탑재되어 있습니다(사진과 비디오를 저장하는 NAS에서). 문제는 이 500GB SSD를 외장 HDD 및 Samba 공유에서 들어오는 데이터의 캐시로 어떻게 사용하는가입니다. (또한 내 NAS의 읽기 부하를 줄이기 위해).

답변1

다른 PC에서 똑같이 잘 작동할 필요가 없는 로컬 블록 장치로 자신을 제한할 수 있는 경우(즉, SMB 공유를 무시하고 USB 디스크를 사용), 포함된 데이터에 액세스하기 위해 다른 컴퓨터에 연결하는 것은 더 이상 쉬운 작업이 아닙니다. )), LVM 캐싱이 현명한 선택이 될 것입니다.man lvmcache이 콘텐츠에 대한 읽기 문서입니다. bcache비슷한 일을 할 수 있고, 조금 더 오래되었고 .만큼 좋지는 않습니다 lvmcache.

여기서 문제는 캐싱 전략이 다음을 기반으로 한다는 것입니다.조각존재하다블록 장치, 아닙니다문서존재하다파일 시스템. 이로 인해 네트워크 액세스를 캐싱하는 데 적합하지 않습니다.

기술적으로 overlayfs오버레이를 통해 액세스할 때 하위 파일 시스템에 액세스하는 파일을 "추가"하는 것과 같은 작업을 수행하는 것이 가능할 것입니다(즉, overlayfs 용어로 copy_up읽기 시, 쓰기 액세스 시뿐만 아니라). 그러나 더 이상 액세스할 수 없는 서버에서 기본 원본 파일이 변경되었는지 여부를 감지하는 메커니즘이 필요합니다. 딱딱한! 따라서 캐시가 요청된 데이터를 이해할 수 있도록 네트워크 파일 시스템 드라이버에 이를 통합해야 하며, overrideFS가 반드시 필요한 것은 아닙니다.

가장 가까운 것은 파일의 느슨한 일관성을 허용할 수 있는 경우(즉, 두 사람이 동시에 동일한 파일에 액세스하려고 시도하고 둘 중 한 명 또는 둘 다 파일을 변경하려고 시도하는 일이 발생하지 않음) 다음을 사용할 수 있다는 것입니다. 이것fsc CIFS 마운트 옵션, cachefilesdSSD의 파일 시스템에서 캐시를 실행합니다.

그래서 결론:

  • 로컬 USB 디스크의 경우 이를 볼륨 그룹에 물리 볼륨으로 추가하고 SSD를 동일한 그룹에 다른 물리 볼륨으로 추가한 다음 lvmcache먼저 SSD에 논리 볼륨을 생성하여 SSD를 USB 디스크에 대한 모든 액세스를 위한 캐시로 만듭니다. 그러면 볼륨은 USB 디스크(두 개의 물리적 디스크에 걸쳐 있을 수 있음)에 상주하는 논리 볼륨이지만 SSD SSD의 논리 볼륨에 캐시됩니다.

  • 원격 SMB 파일 시스템의 경우 fsc파일 시스템 캐싱을 활성화 하려면 cachefilesd캐시를 로컬 볼륨에 배치하도록 구성된 데몬을 실행합니다. (위 발표에서 볼 수 있듯이 이는 SSD에 직접 있는 볼륨일 수도 있고, HDD로 지원되고 SSD로 가속화되는 캐시 가속 볼륨일 수도 있습니다.)

관련 정보