web-dev-qa-db-ja.com

低メモリシステムでのパフォーマンスではなく透過的な圧縮に使用されるZVOLでのZFS / ext4の信頼性?

インターネット上の低メモリシステムでのZFSについて多くの物議を醸す声明を読みましたが、ほとんどのユースケースはパフォーマンスの高いデータストレージでした。

パフォーマンス上の理由ではなく、透過的な圧縮と重複排除をサポートし(後者はオプションの場合があります)、BTRFSよりも成熟しているように見えるため、ZFSを使用したいと思います。 RAID構成を使用したくありません。

ルートおよびホームファイルシステム用のラップトップコンピューターで使用したいのですが、ストレージスペースとデータの安全性(停電やその他のランダムな不整合後の回復可能性、RAMの不足による破損のリスクが非常に低いなど)が重要です。ディスクパフォ​​ーマンス。 ext2/3/4と同等の安全性が必要です。

ZVOLの上にext4を使用したいと思います。

したがって、質問は次のとおりです。

  • IOパフォーマンス/キャッシングが問題にならない場合、ZFSは「低RAM」で確実に動作するように構成できますか? RAID機能は必要ありませんか?
  • ZFSをファイルシステム自体として使用せず、別のファイルシステムを上に配置する場所でZVOLを使用する場合、RAM必要な変更はどのように行われますか?
  • RAM重複排除をオンにして必要な変更を行うにはどうすればよいですか?重複排除をオンにしてRAMが低くなり始めた場合でも、安全ですか?ZFSは一時停止できますか?重複排除とRAMの使用量を減らしますか?
  • 自動重複排除を無効にすることはできますが、手動で実行することはありますか?
  • ZVOL上のext4は、低いRAMの状況でも、データを確実に保存できます。不整合が発生した場合、修復の成功率は高くなります(ext2/3/4の場合と同様)?ext4はZVOLに加えて、ext4の堅牢性が追加されるため、堅牢性が向上しますか、それともデータは基盤となるZVOLと同じくらい堅牢ですか?

システム仕様:

  • Linux
  • 8 GiB RAM(グラフィックカードと共有)、ただし、そのほとんど(少なくとも7 GiB)はユーザースペースソフトウェアで使用できるはずです。
  • 約700 GiB ZFSに使用するSSDストレージ、
  • 多分別のシステムで128 GiB eMMCのZFSに使用します。
  • 現在のディスク使用量(du -shにある大きなディレクトリの/)(/はext4、上にマウントされた/ varはreiserfs)(透過圧縮のあるストレージに移動したい):

    74M     /etc
    342G    /home
    5.0G    /opt
    1.5G    /root
    261M    /tmp
    35G     /usr
    30G     /var
    

または、BTRFSを使用するだけです(「バグ」が原因でデータ損失が深刻/回復困難になる可能性があることを読みましたが、それはすべて物議を醸しています...)?

4
Golar Ramblar

短い答え:

  • はい、ZFSで低RAM(〜1 GB)を正常に使用することは可能です。
  • 重複排除は使用しないでくださいが、RAIDと圧縮は通常問題ありません。
  • 複製を有効にすると、新しく書き込まれたすべてのデータに対して機能し、簡単に削除することはできません。
  • 重複排除はオンラインデータでのみ機能するため、重複排除を有効にすることはできません。
  • あなたのアイデアは、正当な理由もなく不必要に複雑なので、ZFSを使用して1日と呼ぶことをお勧めします。

長い答え:

IOパフォーマンス/キャッシングが問題ではなく、RAID機能が必要ない場合、ZFSは「低RAM」で確実に動作するように構成できますか?

はい、RAID機能が有効になっている場合でも可能です。ネット上で人々が主張するよりもはるかに少ない必要があります。たとえば、FreeBSD、2コア、および 768 MB 仮想化で高速ファイルサーバーを実行しているこの男を見てください。または、SolarisInternalsガイド(現在はarchive.orgからのみ入手可能)を参照してください。ここでは、512 MBが最低限、1 GBが最小推奨、2GBが完全推奨として記載されています。

ただし、重複排除は避けたいと思います。ページングメモリが原因で低速であるためではなく、システムが停止した場合に重複排除されていない状態に戻ることができないためです。また、RAMとディスクの間のトレードであり、予算システムではどちらも持っていないので、あまり利益はありません。

ZFSをファイルシステム自体として使用せず、別のファイルシステムを上に配置する場所でZVOLを使用する場合、RAM必要な変更はどのように行われますか?

アクセス方法(KVM、Fuse、iSCSIなどの仮想化)に応じて、2番目のファイルシステムとZFSの上のレイヤーに追加のメモリが必要になります。

RAM重複排除をオンにして必要な変更を行うにはどうすればよいですか?重複排除をオンにしてRAMが低くなり始めた場合でも、安全ですか?ZFSは一時停止できますか?重複排除とRAMの使用量を減らしますか?

重複排除を一時停止することはできませんが、データは安全です。多くのメモリスワッピングと待機が発生するため、あまり使用できない可能性があります。重複排除はオンラインであるため、無効にするには、重複排除をオフにして、すべてのデータを再度書き込む必要があります(つまり、基本的にすべてのデータを新しいファイルシステムにコピーし、古いファイルシステムを破棄します)。

自動重複排除を無効にすることはできますが、手動で実行することはありますか?

いいえ、保存データには影響しません。重複排除を行っていて、ブロックを書き込みたい場合、ZFSは重複排除テーブルにブロックが存在するかどうかを確認します。はいの場合、書き込みは破棄され、参照が重複排除テーブルに追加されます。いいえの場合、それが書き込まれ、最初の参照が追加されます。これは、古いデータが重複排除の影響を受けないことを意味し、新しいブロックを書き込まずにオンにしても、古いデータの使用済みサイズについては何も考慮されません。

ZVOL上のext4は、低いRAMの状況でも、データを確実に保存できます。不整合が発生した場合、修復の成功率は高くなります(ext2/3/4の場合と同様)?ext4はZVOLに加えて、ext4の堅牢性が追加されるため、堅牢性が向上しますか、それともデータは基盤となるZVOLと同じくらい堅牢ですか?

私の目には、これは不必要な複雑さです。新しい機能がないため(下のext4と上にZFSがある場合のように、スナップショットなど)、さらにfsckやその他のfdiskフォーマットの演習などの新しい責任があります。

私がそのようなことをする唯一のユースケースは、特定のファイルシステムの低レベルの機能を要求する、またはハードコードされた仮定を持つ特別なアプリケーションがある場合です(幸い、その動作は最近死んでいるようです)。

4
user121391

user121391はあなたに良い情報を与えるのに素晴らしい仕事をしたので、私はあなたの記憶の懸念に触れるだけです。

メモリに関する限り、そうです、ZFSはメモリを大量に消費する可能性があります。キャッシュに空きシステムメモリを利用します。何年にもわたって、Sunは、現在Oracleが微調整し、パフォーマンス、信頼性を改善し、メモリ使用量を改善してきました。詳細については、ZFS内部/悪のチューニングガイドサイト、または ZFSブログ を確認できます。ただし、これらの調整と機能のほとんどは、Solaris11.xバージョンのZFSでのみ検出される可能性があります。

本当にメモリが心配な場合は、重複排除がライブであり、重複排除テーブルをメモリに保持する必要があるため、かなりの量のメモリが必要になるため、重複排除を使用したくないでしょう。

1
sleepyweasel