HDD 스핀 업 시간을 최소화하기위한 SSD 캐시?


8

short version first : SSD를 사용하여 HDD 쓰기를 투명하게 캐시 할 수있는 Linux 호환 소프트웨어를 찾고 있습니다. 그러나 캐시 된 데이터를 HDD에 쓰려면 하루에 한두 번만 HDD를 돌리고 싶습니다. 나머지 시간에는 소음 문제로 인해 HDD가 돌아 가지 않아야합니다.

더 긴 버전 : Xubuntu를 실행하는 완전히 조용한 컴퓨터를 만들었습니다. A10-6700T APU, 거대한 팬리스 쿨러, 팬리스 PSU, SSD가 있습니다. 문제는 : 그것은 또한 시끄러운 HDD를 가지고 있으며 밤에는 회전시키는 것을 금지하고 싶습니다. 모든 쓰기는 SSD에 캐시되어야하며 밤에는 읽기가 필요하지 않습니다.

이 컴퓨터는 매일 약 5GB의 데이터를 자동으로 다운로드하여 약 1 년 동안 보존되어 총 2TB 미만의 필요한 디스크 용량을 제공합니다. 이 데이터는 현재 밤낮으로 회전하는 3TB 시끄러운 하드 디스크 드라이브에 저장됩니다. 때로는 몇 개월 전에 일부 데이터에 액세스해야 할 수도 있습니다. 그러나 대부분의 경우 SSD에 적합한 지난 14 일 동안의 데이터 만 필요합니다. 이상적으로는 SSD에 대한 모든 쓰기를 캐시하고 하루에 한 번 HDD에 쓰는 투명한 솔루션 (한 파일 시스템의 모든 데이터)을 원합니다. SSD에 여전히있는 경우 캐시에서 읽기를 제공합니다. 그렇지 않으면 HDD가 회전해야합니다.

나는 시도 Bcach 읽기를 많은 성공없이 (사용 cache_mode = 쓰기 저장, writeback_running = 0, writeback_delay = 86400, sequential_cutoff = 0, congested_write_threshold_us = 0 - 아무것도없는) 내가 읽어 ZFS ZIL / L2ARC 하지만 확실히 내가 달성 할 수 아니에요 ZFS와의 나의 목표. 어떤 포인터?

다른 모든 방법이 실패하면 SSD에서 가장 오래된 파일을 삭제하면서 일부 스크립트를 사용하여 자동으로 파일을 큰 드라이브로 복사합니다.

편집 : 캐시는 실제로 내가 원하는 것에 대한 잘못된 용어입니다. 현재로서는 원래 의도 한 해결책이 불가능한 것 같습니다. 기여한 모든 분들께 감사드립니다!


1
SSD에 14 일 (또는 많은 양의) 데이터를 유지하고 하루에 한 번 실행되고 그보다 오래된 것을 HDD로 이동시키는 스크립트를 작성하는 것이 어떻습니까? 이 방법으로 14 일 미만을 사용하는 경우 SSD를 사용하게되고 HDD는 하루에 한 번만 기록합니다. 오래된 것이 필요하다면 HDD에 액세스해야합니다.
Richard Powell

내가 질문의 마지막 문장에서 제안한 것처럼 정확히 내가 할 것입니다. 투명한 파일 시스템.
sirprize

답변:


3

캐싱의 작동 방식 또는 이유는 아닙니다. 캐싱은 hdd에 대한 쓰기를 최소화하는 것이 아니라 SSD 또는 기타 메모리의 더 빠른 속도와 더 나은 임의 액세스를 활용하기위한 것입니다. 캐싱은 크고 느린 저장 장치를 지원하는 더 작고 빠른 버퍼를 사용하여 쓰기를 줄이지 않고 속도를 최대화하도록 설계되었습니다.

사실, 메인 라인 리눅스 커널의 일부인 bcache는 성능상의 이점이 없기 때문에 SSD를 통해 전달하는 대신 순차적 쓰기를 hdd에 전달합니다.

ZIL / L2Arc는 SSD를 사용하여 로그 (ZIL의 경우) 및 일반적으로 사용되는 파일 클러스터 (L2Arc와 함께)를 저장합니다. ZIL은 쓰기 준비가 될 때까지 저장하여 동기 쓰기 속도를 높입니다. L2Arc는 일반적으로 액세스되는 파일을 더 빠른 스토리지에 저장합니다. 이들 중 어느 것도 당신이 원하는 것을 할 수 없습니다.

Fusion 드라이브 SSD와 HDD를 사용하여 SSD에 일반적으로 사용되는 파일을 투명하게 배치하여 더 빠르게 읽을 수 있으며 자주 사용하지 않는 파일의 대량 저장을위한 HDD를 사용합니다. 또한 SSD를 스크래치 공간으로 사용하고 파일을 자주 메인 드라이브에 백업 할 수 없습니다

당신이보고있는 것은 전혀 캐싱하는 것이 아니라 시스템을 HDD에 주기적으로 백업하는 것입니다. 더 큰 파일을 가진 HDD의 첫 번째 분기 (예측이 필요함)와 SSD의 분기 인 Aufs 와 함께 무언가를 퍼지 할 수 있다고 생각 합니다. 그런 다음 SSD에서 파일을 파일로 이동시키는 스크립트를 실행하십시오 HDD는 주기적으로 동일한 위치에서 액세스 할 수 있습니다. 나는 이것을 아직 테스트하지는 않았지만 캐싱과 달리 파일을 주기적으로 이동하고 auf를 사용하는 것이 원하는 것입니다.

연령별로 파일을 정렬하는 가장 간단한 방법은 ls -tr-t 시간을 기준으로 정렬하고 (가장 오래된 것부터 가장 오래된 것) r은 순서를 반대로합니다. (특정 범위를 염두에두고 find . -mtime n특정 숫자가 n 일 전에 수정 된 파일을 제공 할 때 n이 훌륭하게 작동 하는 경우 , -n은 마지막 n 일에 수정 된 파일을 제공하고 + n은 n 일 전에 수정 된 파일을 제공합니다). 사용 방법에 대한 아이디어를 여기 에서 찾을 수 있습니다.

정숙함이 실제 목표이므로 드라이브가 정숙 모드를 지원하는지 확인할 수 있습니다. 그러면 hdparm -M /dev/sda다음과 같은 결과가 출력 acoustic = 254 (128=quiet ... 254=fast)됩니다.이 경우 명령을 사용하여 하드 드라이브를 정숙하게 만들 수 있습니다 hdparm -M 128 /dev/sda. hdparm -M 1254 /dev/sda더 빠른 속도가 필요할 때 반대 명령을 실행하십시오 .


입력 해 주셔서 감사합니다. 이것은 제가 가장 좋아하는 답변입니다. 나는 aufs에 대해 몰랐고 그것을 조사 할 것이다.
sirprize

백업 프로세스를 트리거하는 많은 방법을 생각할 수는 있지만 스크립팅, 필요한 파일을 선택하기위한 일부 sed / awk 및 이동을보고 있습니다. 아마 cron 일 수도 있습니다. 나는 hdparm만으로도 하드 드라이브의 '소리 크기'문제를 크게 해결할 수 있다고 생각하며 사용하지 않을 때 드라이브의 전원을 끄면 유용 할 수 있습니다.
Journeyman Geek

다시 한 번 감사드립니다. 질문의 마지막 문장에서 제안한대로 bash-fu, cron, hdparm, mount 및 rsync를 사용하겠습니다. hdparm -M은 드라이브를 조금 더 조용하게 만드는 데 도움이되었지만 밤에는 디스크가 전혀 회전하지 않는 것을 선호합니다.
sirprize

3

다른 답변은 소프트웨어 관점에서 문제를 처리했기 때문에 하드웨어 솔루션에 대한 정보를 포함시키는 것으로 생각했습니다.

하드 드라이브 소리 방지 기사 에는 다음과 같은 옵션이 있습니다.

  • 하드 드라이브 조각 모음
  • 하드 드라이브를 고무 밴드로 감싸 진동을 줄입니다.
  • 새로운 하드 드라이브 사용 : 현재 대부분의 하드 드라이브에는 유체 다이내믹 베어링이 장착되어있어 매우 빠른 속도로 회전 할 때에도 플래터가 거의 조용하게 유지됩니다.

매우 큰 파일을 복사 할 때도 새로운 4TB 하드 디스크를들을 수 없다는 내 경험을 간증 할 수 있습니다.

일부 연구를 통해 SilentDrive HD 인클로저 및 음향 재료 또는 NoiseMagic NoVibes III Silent 하드 드라이브 장착 시스템 과 같은 하드 디스크 용 음향 감쇠 재료도 찾을 수 있습니다 . 나는 이것들이 어디에서 팔리는 지 모른다. 그리고 위의 고무줄은 나에게 거의 효율적으로 보인다.

컴퓨터 전체를 방음 할 수도 있습니다. 방음 자료를 판매하는 일부 웹 사이트는 Quiet PC USA , AcousticPC 또는 Dynamat 이지만 그러한 웹 사이트 가 많이 있습니다.

일부 컴퓨터 케이스는 이미 자동 작동을 위해 설계되었습니다. 예를 들어
6 개의 저잡음, 성능 지향 사례, 테스트를 참조하십시오 .

마지막으로 시끄 럽거나 찰칵 소리가 나거나 소음이 나는 시끄러운 하드 드라이브는 하드 드라이브가 고장 나기 시작했다는 표시 일 수 있으므로주의하십시오.


의견을 보내 주셔서 감사합니다. 이미 특수 하드웨어를 사용하고 있습니다.이 경우에는 드라이브를 제외한 완전 자동 하드웨어입니다. "잡음"이란 정상적인 하드 드라이브의 정상적인 소리를 말합니다. 드라이브를 돌리고 마운트하고 백업하고 마운트를 해제 한 다음 다시 스핀 다운하려면 크론을 사용해야합니다.
sirprize

2

Puppy Linux 의 여러 변형은 Ubuntu를 기반으로하지만 Aufs를 사용 합니다 .

강아지는 RAM에서 완전히 실행되며 정상적인 작동에는 HDD 액세스가 없습니다.

HDD에 플래시 드라이브라고 강아지에게 말하면 RAM 파일 시스템을 지속적이 아닌 주기적으로 디스크에 덤프합니다. 이것은 플래시 드라이브에 대한 빈번한 쓰기의 마모를 줄 이도록 설계되었지만 HDD에서도 잘 작동합니다.

강아지의 모든 것과 마찬가지로 GUI를 사용하여 RAM 파일 시스템 저장 빈도를 설정할 수 있습니다. 일반적으로 10 분마다되지만 예를 들어 720 분 (12 시간)마다 덤프하도록 설정하는 것을 막을 수있는 것은 없습니다.

강아지 리눅스 이벤트 관리자

내 Grub4DOS 부트 로더 menu.lst파일 에서 발췌 한이 pmediaHDD 대신 플래시 드라이브를 사용하고 있다는 커널 옵션 설정을 보여줍니다 ...

# menu.lst produced by grub4dosconfig-v1.7.1
#
# 'kernel ... pmedia=ideflash'
#     Treat the HDD as a flashdrive: infrequent writes of filesystem to savefile

title Puppy Lupu 5.2.8 (sda3/puppy528lu) Cached\nUse SWAP; changes to RAM; flush to disk every 10min (fastest)
  find --set-root --ignore-floppies --ignore-cd /puppy528lu/initrd.gz
  kernel /puppy528lu/vmlinuz   psubdir=puppy528lu pmedia=ideflash pfix=copy,fsck
  initrd /puppy528lu/initrd.gz

Puppy Linux "variations"에 대한 메모 ...
Ubuntu 10.04 Lucid Lynx를 기반으로하는 Puppy Linux 5.2.8 "Lupu"를 사용하고 있습니다. 이 버전은 종종 기원으로 인해 "Lupu"대신 "Lucid"라고도합니다. 슬랙웨어 및 기타 배포판을 기반으로하는 버전도 있습니다. Xubuntu를 이미 사용하고 있으므로 Puppy Linux Lupu가 가장 친숙 할 것입니다. 또한 훨씬 빠릅니다. 강아지를 찾기 전에 약 1 년 동안 쉬 분투를 사용했습니다.

"Puppy Linux Precise"라는 "Ubuntu Precise Pangolin"을 기반으로하는 훨씬 더 최신 버전도 있습니다. 최신 버전에서 사용 된 커널에는 이전 하드웨어와 잘 작동하지 않는 주요 변경 사항이 있습니다. 컴퓨터가 5yo 미만인 경우 Precise에 만족할 수 있습니다. 정확한 옵션 등은 다를 수 있지만 테스트 할 수는 없지만 위에서 설명한 기술은 여전히 ​​정확한 작동합니다.


0

짧은 해결책과 신속하게 구현할 수 있지만 원하는대로 정확히 대답 할 수는 없습니다. 스토리지 디스크를 다른 곳에 전송하십시오. netowrk 파일 서버 샤시 (WD 월드 에디션과 같은) 또는 USB3 디스크 일 수 있으며 조용한 PC와 같은 방에 있거나 다른 방에 보관하여 완전히 듣지 않도록 할 수 있습니다.

네트워크를 통해 데이터를 전송하려는 경우 에만 드라이브를 사용하고 있기 때문에 내 의견으로는 더 낫습니다 .OS는 피할 수 없으며 방해 할 수있는 다른 정리 또는 파일 시스템 트리 균형 조정을 수행 할 수 있습니다 . 다른 방은 큰 장점입니다.

이 같은 솔루션을 사용하여 수행 할 수있는 외부 디스크 상에 바로 백업 날의 데이터 - 캐싱은 쉽게 충분해야한다 rsyncunison.

더 긴 솔루션은 다시 이상적이지 않지만 (즉, 단일 응용 프로그램이 아님) ssd와 동일한 상자에 드라이브를 설치하고 더 높은 속도를 달성 할 수 있습니다 (그러나 5GB / 일 동안 네트워크보다 더 높은 속도가 실제로 필요합니까?).

당신이 사용할 수있는 smartctlOS가 드라이브에 물건을 할 것을 피하기 위해 - 드라이브의 다운 시간 스핀을 설정하고 마운트 해제 된 상태에서이 드라이브를 유지. 그런 다음 스크립트를 작성하고 mount필요한 데이터를 백업하십시오 (위와 같이).


불행히도, 그것들은 내가 피하고 싶었던 모든 것입니다. 그래도 시간 내 주셔서 감사합니다!
sirprize

0

당신은 내 대답을 좋아하지 않지만 실제로는 캐시라는 용어를 남용하고 실제로 백업 솔루션을 설명하고 있습니다. 더 완전한 것을 원한다면 rsync를 보거나 다른 백업 솔루션을 더 검색하십시오.


이것은 절대적으로 사실이며, 내 답변에서 깊이 다루었습니다 :)
Journeyman Geek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.