캐싱에 SSD를 사용하여 하드 디스크가 다운 될 수있는 방법은 무엇입니까?


9

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하십시오.
mikeserv

답변:


1

귀하의 접근 방식이 너무 복잡하다고 생각합니다.

캐싱 읽기 : 여기서 수행 할 작업이 없습니다. 충분한 램을 가지고 있다면 이것은 리눅스에서 자동으로 수행됩니다.

쓰기 캐싱 기본적으로 이것이 원하는 것입니다. 그러나 쓰기가 결국 디스크에 들어가면 깨어날 수도 있습니다.

따라서 영향을받는 파일 시스템을 ram-disk / dev / shm 또는 ssd에 직접 넣을 수 있습니다.

절전 : 나는 자주 스핀 다운 / 업이 전력을 절약 한다고 생각하지 않습니다. 반대로 디스크가 더 일찍 죽을 수 있으므로 생산 공정에 추가 에너지 소비가 있습니다. 또한 스핀 업은 매우 전력 집약적입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.