私は2つの記憶装置を持っています。典型的なスローHDD(750GB、/dev/sda
)と高速SSD(128GB、/dev/sdb
)です。現在、SSDの同じbtrfsパーティションにUbuntuとMint()をインストールしています/dev/sdb5
。私のbtrfsプールは/dev/sdb5
。
私が達成したいのは、SSDのパフォーマンスを維持しながらHDDからデータを複製することです。
読み取りケースの場合、理想的なプログラムは次のとおりです。
- SSDから読む
- チェックサムの確認
- 検証されたら…いいですね。データをください。
- それ以外の場合は、HDDからデータを取得し、データを複製してエラーを修正します。
btrfs check --repair
私はHDDチェックサムをチェックし、SSDデータを介してビットロートを修正するために毎月手動で実行します(一部のツール、どのツールがよくわかりません...おそらく?)。
手書きケースの場合:
- SSDへの書き込み
- 書き込み要件が低い場合、HDDに同期してシステム速度を低下させません。
可能ですか?どうすればいいですか?
最も重要なことは、btrfsが好きで、SSDの優れたパフォーマンスを維持しながら、HDDとSSDドライブにデータを自動的にコピーしたいということです。
SSDを書き込みキャッシュとして使用することは、データの複製とセキュリティが不足しているため、オプションではありません。
答え1
SSDの書き込み速度が読み取り速度よりも速いと仮定すると、LinuxのRAIDサブシステムを使用してSSDを簡単に設定できます。/dev/sda1
(HDD)と/dev/sdb1
(SSD)をコピーしたいとします。
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 --write-mostly --write-behind=1024 /dev/sda1
--write-mostly
言い換えると、前面デバイスは最初に読み出しに使用され、背面デバイスはほとんどの場合書き込みにのみ使用されます。--write-behind
書き込み指向デバイスが遅れる可能性があることを意味します。このパラメータは書き込みバッファのサイズを決定します。コンピュータのパフォーマンスによっては、write-behindパラメータを調整する必要があります。
既存のボリュームを使用する場合Super Block Format 1.0からRAID-1に変換できます。。
ドライブにはすでに自己整合性チェックが含まれているため、一番上にある他のドライブは通常あまり使用されません。ドライブエラーの主な問題は、データが破損するのではなく、データが読み取れなくなることです。 SSDとHDDの相対的な検出されていないエラーレートがどのくらいかはわかりませんが、ほぼ同じだと思います(したがって、SSDとHDDではなく特定のデバイス間)。したがって、データがHDDから読み出されると仮定する理由はありません。 HDDはより正確です。 BtrfsとZFSには、必要に応じてオプションのファイルシステムレベルの整合性チェック機能があります。