Skip to main content
ONTAP Technical Reports
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ONTAP inode タイプ

共同作成者 whyistheinternetbroken

ONTAPは公開inodeを使用して、FlexVolおよびFlexGroupボリュームに存在するファイルシステムオブジェクトを表します。各ボリュームには定められた最高水位制限があり("MaxfilesとONTAP inode情報"を参照)、ファイルシステムでは公開inodeもその制限にカウントされます。

inodeとは何ですか?

一般的に、inodeとは、オブジェクトのファイルシステム上の記録のことです。これは、識別情報や、種類、所有者、タイムスタンプ、権限などのメタデータを格納し、オブジェクトのデータを指し示します。オブジェクト名は、inode自体ではなく、ディレクトリに格納されます。

ONTAP では、WAFL はこれらのレコードを各 FlexVol または FlexGroup 構成要素の非表示のボリュームレベル inode ファイルに保存します。パブリック inode はボリュームの `files`設定(一般的に maxfiles と呼ばれます)にカウントされます。パブリックオブジェクトを作成するとパブリック inode の使用量が増加しますが、プライベート inode では増加しません。inode ファイルの容量と拡張については、"容量が及ぼす影響"を参照してください。

次の図は、パブリック inode ファイルが files-used、 inodefile-public-capacity、 `files`の上限値、およびボリューム内で消費される容量とどのように関連しているかを示しています。

inodefile-public-capacity にネストされた files-used を示す ONTAP ボリューム inode ファイルの図

ONTAPにおけるinodeの種類

iノードの*タイプ*は、それがどのような種類のオブジェクトを表すかを示します。ONTAPはまた、各iノードを*パブリック*または*プライベート*iノード空間に配置します。パブリックiノードはmaxfilesにカウントされますが、プライベートiノードはカウントされません。ディレクトリインデックスのiノードは、ボリューム構成に応じてどちらの領域にも存在できます。

公開iノード

パブリック iノードはボリュームのパブリック iノード ファイルから割り当てられ、 `files`および `files-used`にカウントされます。これらには、クライアントから見えるオブジェクトと、ディレクトリエントリとして表示されない公開メタデータオブジェクトが含まれます。

以下の表は、ONTAPで見つかったパブリック inode のリストとそれらに関する追加情報を示します。maxdir-size 列は、そのオブジェクトを作成すると親ディレクトリにディレクトリエントリが追加され、その結果、親のディレクトリファイルが拡張されるかどうかを示します。

タイプ それが表すもの また、maxdir-sizeにもカウントされます。

通常ファイル

デフォルトのファイルの内容と属性

*はい。*ファイルを作成すると、親ディレクトリに名前が追加されます。

ディレクトリ

ディレクトリ名とディレクトリ自身のinode

*はい。*ディレクトリを作成すると、親ディレクトリに名前が追加されます。新しいディレクトリには独自のディレクトリファイルもあり、 `maxdir-size`それぞれ独立して制限されます。

シンボリック リンク

ファイルデータではなくパス名ポインタ

はい。* シンボリック リンクを作成すると、親ディレクトリに名前が追加されます。

特殊ファイル

UNIX FIFO、ソケット、またはデバイスノード

*はい。*特殊ファイルを作成すると、親ディレクトリに名前が追加されます。

名前付きストリーム

ファイルのデフォルトコンテンツ以外の追加データ(NTFS代替データストリーム)

*いいえ。*ストリームは、親ユーザーディレクトリ内の名前ではありません。

ストリームディレクトリ

ファイルの名前付きストリームの名前を保持する隠しコンテナ

*いいえ。*これはユーザーに表示されないディレクトリエントリです。

ACL(xinode)

NTFSセキュリティ記述子またはNFSv4 ACLは、アクセス制御エントリ(ACE)データとして保存されます。

*いいえ。*ACLはディレクトリのエントリではありません。

ディレクトリインデックス(公開時)**

Companion B+treeは、大規模なディレクトリ内で名前を検索するために使用されます。

*いいえ。*インデックスはディレクトリのエントリではありません。

メモ * シンボリック リンクは、独自のパブリック inode とディレクトリエントリです。ハードリンクは異なります。既存の通常ファイル inode に対する別のディレクトリ名であり、独立した inode タイプではありません。ハードリンクを作成すると、ディレクトリエントリが追加され、親ディレクトリファイルのサイズが増加しますが、別のパブリック inode は割り当てられません。
メモ ** ディレクトリインデックスのinodeはデフォルトではプライベートです。それらは、"プライベートインデックスinodeとパブリックインデックスinodeについて"の説明に従って、パブリックinode空間に移動できます。

ACL iノード

ファイルまたはディレクトリに NTFS セキュリティ記述子または NFSv4 ACL がある場合、ONTAP はその ACL を別の ACL inode(拡張 inode、または xinode とも呼ばれる)として保存します。ACL inode には ACE が含まれています。ONTAP はパブリック inode 空間から割り当てるため、 `files`および `files-used`にカウントされます。ファイルまたはディレクトリの inode は、その ACL inode を参照します。

メモ UNIXモードビットは、ファイルまたはディレクトリ自身のinodeに格納されます。追加のパブリックinodeは割り当てられません。

ACLのinode使用は、必ずしもファイルやディレクトリと1対1の関係にあるとは限りません:

  • 同じ保存済みセキュリティ記述子を持つファイルまたはディレクトリは、ONTAP の ACL 共有最適化によってそれらが統合される際に、ACL inode を共有できます。継承によって、共有の候補となる同一の記述子が生成されることがよくあります。

  • ACE、所有者またはグループ情報、制御フラグ、または継承結果が異なる場合、共有が行われない可能性があります。同一の記述子であっても、必ずしも統合されるとは限りません。例えば、共有が認識される前に別々の操作で作成または更新された場合などがこれに該当します。

  • 作成リクエストが独自の ACE を提供せず、かつ親 ACL に継承属性がある場合、作成リクエストは親の ACL を継承できます。

  • NTFSセキュリティスタイルのボリュームは、デフォルトでNTFS ACLを適用します。新しいファイルやディレクトリは、結果として保存される記述子が同一であれば、ACL の inode を共有できますが、管理者は、すべてのデフォルトまたは継承された ACL が1つの inode を共有すると想定してはなりません。

  • モードビットのみを使用するUNIXセキュリティスタイルのオブジェクトは、NFSv4 ACLが保存されるまでACL inodeを消費しません。混合セキュリティスタイルには、モードビットのみで保護されたオブジェクトとACLで保護されたオブジェクトの両方を含めることができます。

名前付きストリーム

名前付きストリームとは、ユーザーが通常開くコンテンツとは別に、ファイルに添付される追加データのことです。ONTAP では、これは NTFS 代替データストリーム(ADS)の WAFL 表現です。ファイルのデフォルトの名前なしデータは、ベースファイルの inode に格納されます。追加の名前付きストリームはそれぞれ別のパブリック inode であり、 `files`および `files-used`にカウントされます。

名前付きストリームはファイルと共に保持されます。これらは一時的なスクラッチ領域ではなく、ONTAP が開く、コピーする、または保存する場合にのみ使用されるものではありません。ストリームは、そのストリームが削除されるか、ベースファイルが削除されるまで割り当てられたままになります。アプリケーションはストリームを作成し、後でそれを削除することができますが、ONTAP が名前付きストリームを自動的に期限切れにすることはありません。

注意すべき点:

  • SMBワークロードは、名前付きストリームを作成して使用します。Windows では、それらを `filename:stream_name`のように扱います。たとえば `report.docx:Zone.Identifier`のようになります。 `Zone.Identifier`は、Windows の Web メタデータのマークです。インターネットからファイルがダウンロードされると、Windows またはブラウザはゾーン ID (通常はインターネットゾーン)を記録し、エクスプローラ、SmartScreen、および Office がユーザーによるブロック解除までそのファイルを信頼できないものとして扱えるようにします。そのストリームは、削除されるまでファイル上に残ります。その他の一般的なソースとしては、バックアップおよびセキュリティアプリケーション、サイドカーデータを ADS として保存するアプリケーションなどが挙げられます。Microsoft Office `~$`のロックファイルと一時保存ファイルは、名前付きストリームではなく、通常のファイルおよびディレクトリエントリです。OneDriveによって同期されたファイルは、必ずしも `Zone.Identifier`ストリームを受け取るわけではありません。動作はクライアントと転送パスによって異なります。

  • SMB にアクセスする macOS クライアントは、Finder メタデータとリソース フォークに名前付きストリームを使用できます。これは一般的に `AFP_AfpInfo`および `AFP_Resource`として表されます。

  • 通常のリスト表示では、名前付きストリームは非表示になります。エクスプローラ、macOS Finder、 dir、および NFS ls / `stat`はデフォルトファイルを表示するため、 `files-used`は表示可能な数を超える場合があります。Windows SMB クライアントからストリームを列挙するには、 `dir /r`または PowerShell `Get-Item <file> -Stream *`を使用します。ONTAP は NFSv4 の名前付き属性をサポートしていないため、NFS クライアントは SMB ストリームを追加の名前として認識しませんが、inode 自体は存在します。

  • 隠しファイル、スワップファイル、またはバックアップファイル vi`によって作成された(例えば `.file.swp`または `file~)は通常のファイルおよびディレクトリエントリであり、名前付きストリームではありません。

  • NFSv4.2 拡張属性(xattrs)は、ONTAP 9.12.1 以降でサポートされる別の機能です。これらは ACL の inode ではないため、ACL の xinode としてカウントしないでください。

NDMPのバックアップとリストアへの影響

NDMPダンプおよびリストア処理中、ONTAPは通常ファイル、ディレクトリ、NTストリーム、ストリームディレクトリ、ACL iノードなどのオブジェクトクラスを個別に識別することで、各オブジェクトのデータとメタデータをシリアル化し、ダンプ統計情報に報告し、正しく再構築できるようにします。この分類では、個別のmaxfiles制限や個別の `volume show`カウンターは作成されません。 `files-used`は、パブリックiノードの合計数となります。

NDMPダンプは名前空間を走査し、それらのオブジェクトを一つずつシリアル化します。リストア機能も同様の方法でそれらを再構築します。そのため、パブリックinode数が多いと、ボリュームのデータ容量が控えめであったり、目に見えるファイル数が少なく見えたりしても、ダンプとリストアに時間がかかります。名前付きストリームとACL inodeは、エクスプローラ、Finder、 dir、または `ls`に表示されない場合でもダンプおよびリストアの対象となるため、ダンプ統計では単純なディレクトリ一覧で示唆されるよりも多くのストリームおよびACLオブジェクトが報告される可能性があります。

このジョブは、スループットよりもメタデータに依存することが多いです。数百万個のinode、ACL、およびストリームを作成、検索、再構築するには、CPU、メモリ、およびストレージI/Oを消費しますが、オブジェクトあたりのデータ量は比較的少ないです。ファイルサイズが小さいこと、ACLの使用頻度が高いこと、名前付きストリームが多いことが、そのオーバーヘッドを増加させます。大規模なフラットディレクトリは、ダンプ時に列挙コストを増加させ、ファイル数の多いボリュームのリストアでは、オブジェクトが存在した後もディレクトリインデックスの再構築に時間がかかることがあります。データサイズのみから推定するのではなく、ストリームやACLを含む代表的なオブジェクト数を使用して、ダンプおよびリストアの所要時間を測定してください。

プライベートiノード

プライベートiノードは、ONTAP内部のメタデータレコードです。これらは別のプライベートiノード空間に存在し、 `files`または `files-used`のカウント対象にはならず、追加のクライアントファイルとして使用することもできません。

以下の表は、一般的なプライベートiノードの種類を示しています。

タイプ それが表すもの また、maxdir-sizeにもカウントされます。

ディレクトリインデックス(デフォルト)*

Companion B+treeは、大規模なディレクトリ内で名前を検索するために使用されます。

いいえ。

プライベートメタファイル

ONTAPで使用される隠れたWAFLメタデータ

いいえ。

ゾンビ

参照または非同期削除が完了するまで保持される、リンクされていないオブジェクト

いいえ。

メモ * ディレクトリ インデックスはデフォルトでは非公開です。公開インデックス転送については"プライベートインデックスinodeとパブリックインデックスinodeについて"を参照してください。
メモ ほとんどの場合、プライベートinodeはmaxfilesにカウントされないため、プライベートinodeの使用状況を監視する必要はありません。ただし、NetAppサポートから指示された場合は除きます。

ゾンビinode

リンクされていないファイルは、必ずしもすぐに解放されるとは限りません。ONTAPは、参照や非同期処理が完了するまで、一時的にゾンビとして保持することができます。そのため、大規模な非同期削除操作は、クリーンアップ処理中にプライベートinodeの使用量を増加させる可能性があります。繰り返しになりますが、プライベートinodeはボリューム内で許可されている合計数 `files`にはカウントされません。

"← 前へ:ファイル数とinode容量が多い"

"次は、Maxfiles と ONTAP inode 情報 →"