BTRFS 풀에서 여러 디스크가 함께 실행되는 파일 서버가 있고 캐싱을 위해 SSD를 추가하려고합니다. 나는 주로 속도를 내고 있지는 않지만 정기적으로 작은 액세스를 잡아서 하드 디스크를 과도하게 사용하지 않는 대부분의 시간 동안 종료 할 수 있기를 원합니다 (24/7을 실행하지 않으면 에너지를 절약하고 디스크 수명 연장).
내가 아는 한 현재 리눅스에는 dm-cache와 bcache의 두 가지 SSD 캐싱 기술이 구현되어 있습니다. dm-cache는 여전히 더 효율적이라고 들었지만 개발은 두 가지 모두를 위해 진행 중이며 절대 최대 효율성을 위해 조정할 필요는 없습니다.
bcache의 설명서를 읽고 다음 옵션을 사용했습니다.
writeback_delay : 더티 데이터가 캐시에 기록되고 이전에 캐시 데이터가 포함되어 있지 않은 경우 쓰기를 시작하기 전에 몇 초 동안 기다립니다. 기본값은 30입니다.
writeback_percent : 0이 아닌 경우 bcache는 백그라운드 쓰기 저장을 제한하고 PD 컨트롤러를 사용하여 속도를 부드럽게 조정하여이 백분율의 캐시를 더티 상태로 유지하려고합니다.
writeback_running : 꺼져 있으면 더티 데이터의 쓰기 저장이 전혀 수행되지 않습니다. 더티 데이터는 대부분 가득 찰 때까지 캐시에 계속 추가됩니다. 벤치마킹만을위한 것입니다. 기본값은 on입니다.
충분히 큰 값을 설정하면 writeback_delay
나를 위해 일하는 것 같습니다 : 한 시간에 한 번만 다시 쓰십시오. 캐시가 가득 차면 (이러한 것으로 가정합니다).
이 설정이 합리적입니까? 디스크 회전에 성공할 다른 방법이 있습니까? 또한 요구 사항을 충족하면 완전히 다른 경로를 사용하는 것이 좋습니다.
@gorkypl은 비슷한 문제에 대한 다른 해결책을 찾고있는 것 같지만 요구 사항과 환경이 다르며 아직 답변을받지 못했습니다.
bcache
하십시오.