ZFS はローカルストレージとして意味がありますか?

ZFS はローカルストレージとして意味がありますか?

私は ZFS について読んでいて、一瞬自分のコンピューターでそれを使用することを考えましたが、メモリ要件について読んで考え直しました。

ZFS をローカル ストレージとして使用するのは理にかなっていますか、それともストレージとして使用されるサーバーの方が理にかなっていますか? (他の用途のサーバーであっても、やり過ぎのようです)。

答え1

ZFS には特に高いメモリ要件はありません。

コメントで指摘されているように、特定の機能ZFS (特に重複排除、また L2ARC) が機能するには、一定量のメモリが必要です。

ただし、これらの機能は、それらを使用する特定のユースケースがない限り、使用される可能性は低いです。

ZFS とその第一層 ARC(Adaptive Replacement Cache)は、他のファイルシステムやキャッシュに比べてメモリをそれほど消費しません。アーク例えば最近使用されていないキャッシュ アルゴリズムにより、一部のワークロードでは、利用可能なキャッシュ RAM をより効率的に使用できます。

ZFSとはする必要とするECC RAMです。これはサーバーではよく見られますが、個人用システムではほとんど見られません(多くの低エンドのIntel CPUはECC RAMをサポートしていません)。この要件はZFSの自己修復特性に由来しています。RAMの問題によりデータが破壊される可能性があるZFSを実行するとき。ZFSにはこれをチェックするコードがありません。おそらくその理由の一部はソフトウェアから100%確実に判断する方法はないようだシステムが ECC RAM を使用するかどうか。

ZFS が意味を持つかどうかは、何をしようとしているかによって決まります。同様に、NTFS が意味を持つかどうかも、何をしようとしているかによって決まります。ただし、ZFS は、他のファイル システムにはほとんどまたはまったく提供されていない機能をいくつか提供しており、特定のシナリオでは非常に役立ちます。いくつかのこれらは次の通りです:

  • エンドツーエンドのデータ整合性を保証します。特定の読み取りが成功した場合、その場所に最初に書き込まれたのと同じデータが返されることが確実にわかります。つまり、サイレント データ破損は発生せず、データが復元されるか、I/O エラーが発生するかのいずれかになります。
  • ファイルシステムを意識したストライピングと冗長性。通常の RAID コントローラは、ストレージ デバイス全体を単なる大きなブロックの集まりとして扱い、ディスク上のデータ構造についてはまったく認識しません。ZFS はボリューム管理とファイルシステムを統合しているため、エラーが発生した場合によりインテリジェントな判断を下すことができます。また、ZFS には「最も重要なものを優先する」再同期化方式があり、つまり、障害発生後にファイルシステムの機能に不可欠なデータが最初に再同期化され、それほど重要でないデータは、データがディスク上のどこに保存されているかに関係なく待機します。
  • 階層型キャッシュ。たとえば、RAM ARC を高速 SSD L2ARC で補完し、データの大部分を回転式 HDD に保存することができます。作業データセットを妥当な精度で推定できるワークロードの場合、これにより、比較的低コストで、すべての SSD にする必要もなく、I/O パフォーマンスを大幅に向上できます。
  • 実質的に無料のファイル システム。ZFS では、「ファイル システム」の作成は、ほとんどの最新のファイル システムでディレクトリを作成するのとほとんど変わりません。ファイル システムには、最大および保証の両方の異なるクォータを設定できます。このため、ZFS では、ファイル システムを管理境界として使用することが推奨されることがよくあります。たとえば、大規模なサーバーでは、各ユーザーのホーム ディレクトリを独自のファイル システムとすることができます。これにより、通常のパーティションとファイル システムを別々に作成することによるオーバーヘッドなしで、ディレクトリ ツリーの各部分を互いに分離できます。たとえば、年ごとの電子メール アーカイブや月ごとの写真にファイル システムを使用します。
  • 実質的に無料のスナップショット。数時間前のファイルの状態に戻ることができるという事実が、恥ずかしいミスから私を救ってくれたことが何度あったかわかりません。バックアップは同様の機能を提供します(そして、バックアップは依然として必要です。RAIDの量はバックアップにはならない) ですが、スナップショットははるかに簡単に利用できます。ZFS では、関連するファイル システムのデータ量に関係なく、スナップショット自体に必要なメタデータ ストレージは数キロバイトのみであり、パフォーマンスに大きなコストはかかりません。

ZFS を使用するからといって、これらを使用する必要はありません。しかし、それらは存在しており、有効にしたい場合は通常、コマンド 1 つで実行できます。

さて、これらは「やりすぎ」でしょうか?それは、あなたが何をしようとしているかによって大きく異なります。私は自宅のシステムで ZFS (ECC RAM 付き) を実行しています。ほとんどの場合、他のファイルシステムよりも大きな音を立てることなく (おそらくそれ以下) 静かに動いていますが、少なくとも 1 回はデータ破損から私を救ってくれました (スクラブで問題のあるセクターがいくつか見つかり、自動的に静かにデータを修復した私からの介入は必要ありません。個人的にはそのデータを保存したのには理由がある。その理由は、おそらく後でデータを参照したいからでしょう。宇宙はあなたのデータを嫌っている

ストレージサイズはますます大きくなり、ビットエラー率は基本的に一定(メディアクラスごと)なので、I/Oエラーは少なくなることはないだろう。私が好むリセラーを見ると、SeagateとHGSTの両社が8TB HDDを、高額だが極端ではなく、個人でも購入できる価格で提供している。これは約6.4×10^13ビットである。10^-14ビットのエラー率では、たった1回のメディア読み取りパスでも統計的に非常に可能性が高いI/Oの問題により、セクター全体(4 KiB)が読み取り不能になることがあります。(10 TB HDDに達すると、統計的にはディスク全体を1回読み取ると、少なくとも1つの読み取り不可能なセクターに遭遇する)ある研究によれば、検出されない読み取りエラーは、私たちが認めたいよりもはるかに頻繁に発生し、HDD メーカーはオンディスク ECC アルゴリズムの改善に取り組んでいますが、すぐに利用できるリンクはありません。NTFS、ext4、UFS+、HFS+ などの最新のファイル システムは、このような状況に対応できる準備ができていません。

それが、ZFS や Btrfs のようなニッチなファイルシステムが埋めようとしているものです。

関連情報