長い答え

長い答え

ウィキペディアによると、ZFS には次の制限があります。

  • 最高。ボリュームサイズ:256テラバイト( 2128バイト)
  • 最高。ファイルサイズ:16エクサバイト(2 64バイト)
  • 最高。ファイル数:
    • 各ディレクトリ:2 48
    • ファイルシステムあたり:制限なし
  • 最高。ファイル名の長さ:255文字のASCII文字(Unicodeなどのマルチバイト文字エンコードの場合は少ない)

なぜこれらの制限はありますか?これらのことを内部的に制限するものは何ですか? ZFSが理論的にボリュームサイズやファイル名の長さなどを無制限に持つことができないのはなぜですか?

ベストアンサー1

これらのことを内部的に制限するものは何ですか?

長い答え

ZFSの制限は、コンピュータで算術を実行する最速の方法であるため、固定サイズの整数に基づいています。

別の方法が呼び出されます。任意の精密演算、しかし本質的に遅い。これが、ランダム精度演算が演算を実行する基本的な方法ではなく、ほとんどのプログラミング言語でアドインライブラリである理由です。例外もありますが、通常は数学中心です。DSL良いbcまたはWolfram言語

高速算術が必要な場合は、固定サイズの単語、ピリオドを使用できます。

コンピュータRAMの任意精度演算による速度低下は十分に悪い。ただし、ファイルシステムがRAMに必要なすべての数をロードするために必要な読み取り数がわからない場合は、非常に高価です。任意のサイズの整数に基づくファイルシステムは、各数字を複数のブロックにまとめる必要があるため、メタデータブロックのサイズを事前に知っているファイルシステムと比較して、複数のディスクヒットから多くの追加I / Oが必要です。

では、各制限事項の実質的な重要性について議論します。

最高。ボリュームサイズ

2 128バイトは実際に無制限です。この数字は約10 38バイトで書くことができます。つまり、その制限に達するには、各ノードに地球サイズのZFSプールが必要です。10 50原子データを格納するために使用される各バイトは、10 12原子未満の要素として格納されます。

10 12原子は多くのように聞こえるが、シリコンは約47ピコグラムにすぎません。

この記事を書いた時点で、microSDストレージのデータ密度(グラム)は2.5×10 -13 g  /バイトです。利用可能な最大のSDカードは1TB、重量は約0.25gです。シリコンですが、地球のコンピュータにもシリコンが必要なので、パッケージを無視することはできません。プラスチックの密度が低く、金属ピンの密度が高いほど、平均してシリコンとほぼ同じ密度になると仮定します。また、チップ間の相互接続などを説明するために、わずかな傾きが必要である。

アウェイウェイ何もないは10 -12なので、上記の47 pgおよび2.5×10 -13 g/Bの数値は約10倍ほど異なります。つまり、現在利用可能な最大のmicroSDカードを使用して単一の最大サイズのZFSプールを構築するには、おそらく地球規模の惑星全体に対応する原子を使用する必要があり、これは近くにある場合にのみ可能です。シリコン、炭素、金などの正しい組み合わせであまり得られないように鉱物予想を超えました。

ここで、テープやディスクなどの密度の高いストレージデバイスの代わりにフラッシュストレージデバイスを使用することが不公平であると思われる場合は、関連するデータレートと冗長性やデバイスの交換を考慮しないことを検討してください。私たちはこの地球サイズのZFSプールです仮想開発者交換する必要はなく、合理的な時間内にプールを埋めるのに十分な速さでデータを転送します。ここでは、ソリッドステートストレージのみを意味します。

上記の近似は非常におおよそのもので、保存密度は増加し続けますが、これを考えてみてください。将来の最大サイズのZFSプールを構築するスタントを実行するには、依然として総クラスターツーコアリソース小惑星

最高。ファイルサイズ

だから私たちは惑星サイズのファイルシステム今。ここに保存されているファイルのサイズについて何を言うことができますか?

地球上のすべての人に同じサイズのプールを提供しましょう。

10 38  ¼ 10 10  ≒ 10 28  ¼ 10 19  ≒ 10 9

これは、プールのサイズを地球の人口²で割ったものを最大ファイルサイズ(整数で表示)で割ったものです。

つまり、各個人は、惑星サイズのZFSストレージアレイの個人用の小さな部分に最大サイズの約10億のファイルを保存できます。

(この例では、ストレージアレイがまだ惑星サイズであるという事実が気に入らない場合は、上記の最初の制限に達するにはそれほど大きくなければなりません。

ファイルあたりの最大ファイルサイズは16です。 ヨーロッパ銀行ZFSではext4最大ボリュームサイズより16倍大きい、今日それ自体は非常に大きいと考えられています。

誰かがPlanet ZFS(旧Earth)スライスを使用して最大サイズのext4ディスクイメージバックアップを保存すると想像してください。さらに、このクレイジー顧客(常に1人はいる)が決定します。tarファイルあたり最大16個は、ZFS最大ファイルサイズ制限に達することです。これが完了すると、顧客はまだそうすることができます。再び約10億回。

この制限を心配するには、この種の問題を解決する必要があると想像する必要があります。これは、そのファイルをオンラインバックアップサービスに転送するために必要なデータ帯域幅も考慮しません。一度

私達はまた地球コンピュータがどれだけの可能性があるか調べなければなりません。まず、重力によってそれ自体が崩壊したり、中央で溶けたりせずにそれを作る方法を調べる必要があります。それから、残りのスラグなしで地球上のすべての原子を使ってそれを作る方法を見つけなければなりません。

今、あなたは地球のコンピュータ表面を地獄にしたので、そのコンピュータを使用したい人は誰もが他の場所、つまり人々がスピードの呪いを絶えず聞く場所に住んでいるはずです。言い換えれば、地球のコンピュータに比べて少しの遅延が追加されます。今住んでいるところどこでもすべての取引の間に。今日の10ms以下のインターネットping時間が問題だと思ったら、次のことを想像してください。2.6光秒もし私たちが地球の人口を月に移したら、私たちはこの地球コンピュータを作ることができます。

ZFSのボリュームとファイルサイズの制限は、サイエンスフィクションの内容です。

最高。ディレクトリあたりのファイル数

2 48はディレクトリあたり約10 14ファイルです。これはZFSをファイルシステムとして処理しようとしているアプリケーションでのみ問題になります。フラットファイルシステム

インターネット研究者がインターネット上のすべてのIPアドレスのファイルを保存していると想像してください。まず、以前のIPv4スペースから空きスペースを引いた後、現在のIPv6アドレスを使用しているホストを追加して算術がスムーズに機能すると仮定すると、正確に2から32のIPが追跡されます。この研究者が解決しようとしている問題は何ですか? 2 16 - 65536以上を保存できるファイルシステムを構築する必要があります! - IPによる文書化?

研究者が各TCPポートのファイルも保存するので、IP:ポートの組み合わせごとに1つのファイルしか保存しないと仮定すると、2 16乗を使い果たします。

回避策は簡単です。各IPファイルをIP名を付けたサブディレクトリに保存し、各ポートファイルを各IPファイルを含むディレクトリのサブディレクトリに保存します。私たちの研究者は、各IP:ポートの組み合わせについて、長期的なグローバルインターネット監視システムに十分な10 14ファイルを保存できるようになりました。

ZFSのディレクトリサイズの制限は、今日の実際のアプリケーションで到達する可能性が高いため、「サイエンスフィクションの大きな制限」と呼ばれるわけではありませんが、階層の力は他のディレクトリを追加できることを意味します。レイヤー:制限。

この制限は、指定されたディレクトリ内のファイルを見つけるために必要なデータ構造が大きすぎてRAMに収まらないように、低すぎるように設定できます。この問題を回避するには、データを階層的に構成することをお勧めします。

最高。ファイル名の長さ

この制限は厳密に見えますが、実際には意味があります。

この制限は ZFS では発生しません。私はそれが戻ってくると信じていますBSDの4.2FFS。引用は見つからなかったが、限度が小さかったとき、誰かが「おばあちゃんに送るメモ」を書くのに十分なスペースがあると指摘しました。

すると、次のような質問が出ます。なぜファイル名をより説明的に指定するのですか?これより大きい実際の要件には階層が必要な場合があります。この場合、階層のレベル数に1を加えた値を掛けます。つまり、ファイルが階層内の3レベルに埋め込まれている場合、フルパス名の制限は4×255 = 1020文字です。

結局、この限界は技術的限界ではなく人間の限界である。ファイル名は人が使用するためのものであり、人がファイルの内容を効果的に説明するために実際には255文字以上を必要としません。上限が高いとまったく役に立ちません。この制限は古くなっています(1983年)。それ以来、人間はより長いファイル名を処理する能力を得ていなかったからです。

奇妙に見える「255」の値がどこから来るのかを尋ねると、これは8ビットバイトサイズによるいくつかの制限です。 2 8は 256 です。ここで使用されるN-1値は、おそらくそれらが次を使用していることを意味します。ヌルターミネーター各ファイルのメタデータの256バイトフィールドにファイル名文字列の終わりを表示します。

短い答え

実際、限界?


脚注:

  1. 測定には0.01gの精度を持つ天びんを使用しています。

  2. 75億5000万、この文章を書く時点で。上ではこれを 10 10に丸めました。私たちは世紀半ばに行かなければなりません。

おすすめ記事