HDDスピンアップ時間を最小限に抑えるSSDキャッシュ?


8

最初に短いバージョン:SSDを使用してHDDの書き込みを透過的にキャッシュできるLinux互換のソフトウェアを探しています。ただし、HDDを1日に1〜2回スピンアップするだけです(キャッシュされたデータをHDDに書き込むため)。残りの時間は、HDDがノイズの問題で回転していてはいけません。

今より長いバージョン:私はXubuntuを実行する完全にサイレントなコンピューターを構築しました。それはA10-6700T APU、巨大なファンレスクーラー、ファンレスPSU、SSDを備えています。問題は、ノイズの多いHDDも(そして必要に応じて)あり、夜間は回転させないようにすることです。すべての書き込みはSSDにキャッシュする必要があります。夜間に読み取りは必要ありません。

このコンピュータは毎日、約5 GBのデータを自動的にダウンロードし、約1年間保持されるため、必要な合計ディスク容量は2 TB弱になります。このデータは現在、昼夜を問わず回転する3 TBのノイズの多いハードディスクドライブに保存されています。場合によっては、数か月前のデータにアクセスする必要があります。ただし、ほとんどの場合、SSDに収まる過去14日間のデータのみが必要です。理想的には、SSDへのすべての書き込みをキャッシュし、1日に1回だけHDDに書き込む透過的なソリューション(1つのファイルシステム上のすべてのデータ)が欲しいです。読み取りがまだSSDにある場合、読み取りはキャッシュによって処理されます。それ以外の場合、HDDはスピンアップする必要があります。

私はあまり成功せずにbcacheを試しました(cache_mode = writeback、writeback_running = 0、writeback_delay = 86400、sequential_cutoff = 0、congested_write_threshold_us = 0-何か不足していますか?)、ZFS ZIL / L2ARCについて読みましたが、達成できるかどうか確信がありませんZFSの私の目標。ポインタはありますか?

他のすべてが失敗した場合は、いくつかのスクリプトを使用して、SSDから最も古いファイルを削除しながら、ファイルを自動的に大きなドライブにコピーします。

編集キャッシュは本当に私が欲しかったものの間違った用語です。現時点では、元の意図した解決策は不可能だと思われます。貢献してくれた皆さん、ありがとう!


1
SSDに14日間(または適切な量)のデータを保持し、1日に1回実行してそれより古いものをHDDに移動するスクリプトを作成しないのはなぜですか。この方法では、14日以内のものを使用している場合、SSDを使用し、HDDは1日に1回だけ書き込みます。古いものが必要な場合は、HDDにアクセスする必要があります。
Richard Powell

それがまさに私がすることです、私が質問の最後の文で示唆したように:)私が質問した理由の1つは、ドライブを手動でスピンアップしてマウントする必要がある(確かに小さい)煩わしさを避けるためでした透過的なファイルシステムを持っています。
sirprize

回答:


3

これは、キャッシングが実際にどのように、またはなぜ機能するかではありません。キャッシングは、hddへの書き込みを最小限に抑えるのではなく、SSDまたは他のメモリへのより高速なランダムアクセスを活用するためのものです。キャッシングは、大きくて遅いストレージデバイスをサポートする小さくて高速なバッファを使用することにより、書き込みを削減せずに速度を最大化するように設計されています。

実際、メインラインのLinuxカーネルの一部であるbcacheは、パフォーマンス上の利点がないため、SSDを介して渡すのではなく、単純な順次書き込みをhddに渡します。

ZIL / L2ArcはSSDを使用してログ(ZILの場合)と一般的に使用されるファイルクラスター(L2Arcを使用)を保存します。ZILは、すべての書き込みの準備ができるまで同期書き込みを保存することにより、同期書き込みを高速化します。L2Arcは、一般的にアクセスされるファイルをより高速なストレージに保存します。これらはどちらも、必要なことを実行できません。

フュージョンドライブは また、 SSDとHDDを透過的に高速化のためにSSD上で一般的に使用されるファイルを入れて使用して読み込み、あまり頻繁に使用されるファイルのバルク貯蔵用のHDD。また、SSDをスクラッチスペースとして使用したり、メインドライブにファイルを頻繁にバックアップしたりすることもできません。

あなたが見ているのは全くキャッシュではなく、HDDへのシステムの定期的なバックアップです。私はあなたがAufsと一緒に何かをファッジすることができるかもしれないと推測しています -より大きなファイルを持つHDDの最初のブランチ(それが正確になるため)とSSDのブランチ、そしてファイルをSSDからSSDに移動するスクリプトを実行しますHDDは定期的に、同じ場所からアクセスできるようにします。私はまだこれをテストしていませんが、キャッシングとは異なり、定期的にファイルを移動してaufsを使用することは、おそらくあなたが望んでいることでしょう。

経過時間でファイルを並べ替える最も簡単な方法は、ls -tr-tは時間で並べ替え(新しいものから古いものへ)で、rは順序を逆にします。(特定の範囲を念頭に置いている場合find . -mtime n、特定の数はn日前に変更されたファイルを提供し、-nは過去n日間に変更されたファイルを提供し、+ nはn日前に変更されたファイルを提供します。ここでそれを使用する方法に関するいくつかのアイデアを見つけることができます

静粛性が本当の目標なので、ドライブがマナーモードをサポートしているかどうかを確認できます。hdparm -M /dev/sdaこれにより次のような出力acoustic = 254 (128=quiet ... 254=fast)が得られます。この場合、コマンドを使用してハードドライブを静音にすることができますhdparm -M 128 /dev/sdahdparm -M 1254 /dev/sdaさらに速度が必要な場合は、反対のコマンドを実行してください。


入力をありがとう、これはまだ私のお気に入りの答えです。私はaufsについて知りませんでしたので、調査します。
2013年

あなたのようなバッチ処理のプロセスでは透明性は実際には不可能です-バックアップタイプのジョブをトリガーする多くの方法を考えることができますが、実際にはスクリプト、いくつかのsed / awkが必要なファイルを選択し、移動していますファイル、おそらくcronで。hdparmだけでハードドライブの「ラウドネス」の問題を大幅に解決できるのではないかと私は半信半疑であり、使用していないときにドライブの電源を切ることができるため、役立つ場合もあります。
ジャーニーマンオタク

再度ありがとうございます。質問の最後の文で提案されているように、bash-fu、cron、hdparm、mount、rsyncを使用します。hdparm -Mはドライブを少し静かにするのに役立ちましたが、私は夜間はディスクがまったく回転しないようにします。
sirprize

3

他の回答はソフトウェアの観点から問題を扱ったので、ハードウェアソリューションに関するいくつかの情報を含めると考えました。

ハードドライブのサウンドプルーフの記事には、次のオプションがリストされています。

  • ハードドライブをデフラグする
  • 振動を抑えるためにハードドライブをラバーバンドで包みます
  • 新しいハードドライブを選ぶ:現在のほとんどのハードドライブには、流体動圧軸受が装備されているため、非常に高速で回転しているときでも、プラッターはほとんど音を出さないようにすることができます。

私は自分の経験から、非常に大きなファイルをコピーした場合でも、新しい4 TBのハードディスクが聞こえないことを証明できます。

いくつかの調査により、SilentDrive HDエンクロージャーおよび音響材料NoiseMagic NoVibes IIIサイレントハードドライブマウントシステムなど、ハードディスク用の音響減衰材料を見つけることもできます 。これらがどこで売られているのかはわかりませんし、上のラバーバンドもほぼ同じくらい効率的です。

コンピュータ全体を防音することもできます。防音素材を販売するWebサイトの例としては、Quiet PC USAAcousticPCDynamatなどがありますが、そのようなサイトは多数あります。

一部のコンピュータケースは、サイレント操作用にすでに設計されています。たとえば、
6つの低ノイズ、パフォーマンス指向のケース、テスト済みを参照してください。

最後の発言として、ノイズの多いハードドライブがカチカチ、クリック、またはガタガタと鳴ることは、ハードドライブが故障し始めている兆候である可能性があるため、注意してください。


あなたのフィードバックをありがとう、賛成票を持っています。私はすでに専用ハードウェアを使用しています-この場合、ドライブを除いて完全にサイレントなハードウェアです。「ノイズ」とは、正常なハードドライブの通常のサウンドを指します。ドライブをスピンアップし、マウントし、バックアップを作成し、アンマウントしてから再びスピンダウンするには、cronを使用する必要があります。
sirprize

2

パピーリナックスのいくつかのバリエーションはUbuntuに基づいていますが、Aufsを使用しています。

パピーは完全にRAMから実行され、通常の操作ではHDDアクセスはありません。

HDDがフラッシュドライブであるとパピーに伝えると、RAMファイルシステムは継続的にではなく定期的にディスクにダンプされます。これは、フラッシュドライブへの頻繁な書き込みの摩耗を減らすように設計されていますが、HDDでも正常に機能します。

パピーのほぼすべてと同様に、GUIを使用して、RAMファイルシステムを保存する頻度を設定できます。通常、これは約10分ごとですが、たとえば720分(12時間)ごとにダンプするように設定することを妨げるものは何もありません。

パピーリナックスイベントマネージャー

私のGrub4DOSブートローダーmenu.lstファイルからのこの抜粋pmediaは、HDDの代わりにフラッシュドライブを使用していると言うカーネルオプションの設定を示しています...

# 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

パピーリナックスの「バリエーション」についてのメモ...
私はパピーリナックス5.2.8「Lupu」を使用しています。このバージョンは、その起源のため、「Lupu」ではなく「Lucid」とも呼ばれます。Slackwareと他のいくつかのディストリビューションに基づくバージョンもあります。すでにXubuntuを使用しているので、Puppy Linux Lupuが最も身近なものになります。また、はるかに高速になります。Xubuntuを約1年間使用してから、Puppyを見つけました。

「Ubuntu Precise Pangolin」をベースにした、「Puppy Linux Precise」と呼ばれるはるかに新しいバージョンもあります。新しいバージョンで使用されているカーネルには大きな変更があり、古いハードウェアではうまく機能しない可能性があります。お使いのマシンが5年未満の場合は、Preciseの方が適している可能性があります。正確なオプションなどは異なる場合がありますが、テストすることはできませんが、上記の手法はPreciseでも機能します。


0

短い解決策であり、すぐに実装可能です(ただし、希望どおりに答えることはできません)は、ストレージディスクを別の場所に転送することです。それは、ネットワークファイルサーバーシャ​​ーシ(WDワールドエディションのような)またはUSB3ディスクであり、完全に聞こえないように、静かなPCと同じ部屋または別の部屋に置くことができます。

ネットワークを介してデータを転送する場合にのみドライブを確実に使用するためこれは私の意見ではより優れています-OSは回避できない他の整頓またはファイルシステムツリーの再調整を行っている可能性があり、邪魔になる可能性があります。別の部屋は大きなプラスです。

キャッシングは簡単です。その日のデータを外部ディスクにバックアップするだけです。これは、rsyncまたはのようなソリューションを使用して実行できますunison

より長いソリューションも理想的ではありません(つまり、単一のアプリケーションではありません)が、ssdと同じボックスにドライブを入れ、より高速を実現します(ただし、ネットワークよりも5GB /日だけ高速にする必要がありますか?):

を使用smartctlして、ドライブのスピンダウン時間を設定し、このドライブをマウントされていない状態に保つことができます。これは、OSがドライブ上で実行することを回避するためです。次にmount、必要なデータにスクリプトを記述して(上記のように)バックアップします。


残念ながら、それらはすべて避けたいものでした。あなたの時間をありがとう!
2013年

0

私の答えは気に入らないでしょうが、実際にはキャッシュという用語を乱用しています。実際にはバックアップソリューションについて説明しています。rsyncを確認するか、より完全なものが必要な場合は、他のバックアップソリューションをさらに検索してください。


これは完全に真実であり、私が私の回答で詳しく説明したものです:)
ジャーニーマンオタク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.