ONTAPのファイル、ディレクトリ、サブディレクトリに関する制限は何ですか?
環境
- ONTAP 9
回答
ファイルまたはディレクトリの作成時に発生する制限事項:
- 親ディレクトリの最大サイズ(つまり、ディレクトリファイルのサイズ。-maxdirsize-のマニュアルページを参照):
この制限に達するとエラーメッセージが生成され、クライアントにエラーが返されます。クライアントは通常、このエラーをボリュームがいっぱいになったと解釈しますが、これは必ずしもボリュームの空き容量が不足していることを意味するわけではありません。 - サブディレクトリの数:
- リンク数フィールドは4バイトで、約43億個のリンク/サブディレクトリを格納できます。
- この数字は変更されない可能性があります。この制限の理由を理解するには、下記のハードリンクとサブディレクトリの実装に関するセクションを参照してください。
- ボリューム内に存在できるファイルの数(つまり、inodeファイルのサイズ)。man pages for -maxfiles-を参照してください)。
- ボリュームの最大サイズ(-vol size-のマニュアルページを参照)。
- qtreeに実装されたクォータは、クライアントが使用できる最大スペースを制限できます(-qtree-のマニュアルページを参照)。
ディレクトリに関する情報:
- ディレクトリの目的は、inodeと1つ以上の名前(場合によっては異なるパスを持つ)との間のマッピングを提供することです。
- ディレクトリとは、inodeを消費する「特殊な」ファイルに他なりません。
- このディレクトリには、inode番号と、異なる形式(Unicode、NFS、8.3)の1つ以上のファイル名が含まれています。
- 1つのディレクトリに保存できるファイルの数は、ファイル名の長さとファイル名の種類に大きく左右されます。
- Unicode名は通常、NFS名よりも多くのスペースを必要とします。
- 名前がUnicode、NFS、および8.3で同時に保存される場合に、最大の容量が使用されます(-volオプションcreate_ucode | convert_ucode-のmanページを参照)。
- ディレクトリファイルのサイズは-volオプションmaxdirsize-で制御できますが、ディレクトリのサイズは縮小できないことに注意してください。
iノードとiノードファイルに関する情報:
- iノード情報は、隠しシステムファイルであるiノードファイルに格納され、各iノードは288バイト長です(Data ONTAP 9.0より前のリリースでは192バイト)。
- iノードファイルは通常縮小できないため、
-maxfiles-コマンドを使用する際は注意してください。- 最大はWAFLブロック(4KB)あたり1つのinodeです。
- 最小値およびデフォルト値は、ボリューム容量32KBあたり1つのinodeです。
- ボリュームの maxfiles パラメータの値を減らすことができます。 ただし、ボリュームに保存されている現在のファイル数を下回らないようにしてください。
ハードリンクとサブディレクトリに関する追加情報:
- ハードリンクとは、名前(または名前の統一されたグループ)とinode番号との間のマッピングであり、ディレクトリ内に保持されます。
- inode番号は複数の名前で参照することができ、それぞれの参照はinodeのリンクカウントに加算されます。
- ディレクトリはハードリンクを多用し、ハードリンクを使用して実装されています。
- ONTAPには1つのinodeあたり100,000個のハードリンクという制限がありますが、ディレクトリには適用されません。
- ハードリンクは、ディレクトリツリーにおける親ディレクトリと子ディレクトリ間の接続性を示すために使用されます。
- 各ディレクトリには、最低でも「.」と「..」という2つのエントリがあります。 ここで「.」は自身へのハードリンクであり、「..」は親ディレクトリへのハードリンクです。
- したがって、作成されるサブディレクトリはすべて親ディレクトリのハードリンク数を増加させ、上記で説明したサブディレクトリの制限につながります。
- ファイルシステム構造の非常に概略的な図(実際の実装は異なりますが、一般的な理解には役立ちます):
