MaxDirSize とは
すべてのとおり
に適用されます
- ONTAP 9
- Data ONTAP 8
- Data ONTAP 7
回答
maxdir-size は、ディレクトリファイルが拡張できる最大サイズを制限するボリュームオプションです。ディレクトリが拡張できる最大サイズ( K バイト)を設定します。
- Data ONTAP 7.0 以降では、デフォルトの maxdir-size はシステムメモリの合計( KB 単位)の 1% です。
maxdir-size の制限に達したときに表示されるエラーメッセージは次のとおりです。
[myvol@filer: wafl.dir.size.max:warning]: Directory [dir] has reached the maxdirsize limit. Please increase the maxdirsize by using the vol options command.
Data ONTAP 8.0 以降では、次のエラーメッセージが表示されます。
Sun Aug 19 00:17:28 EDT [wafl.dir.size.max:warning]: Directory reached the maxdirsize limit. Reduce the number of files or use the vol options command to increase this limit.
「」create_ucode
convert_ucode
および「」ボリュームオプションを有効にすると、 maxdir-size エラーが表示されます。
- 大容量ディレクトリファイル
- パフォーマンスが低下します
- ディレクトリファイルのサイズを制限してパフォーマンスを最適化します
ほとんどのユーザは、この設定を変更する必要はありません。このオプションは、システムユーザがディレクトリをシステムパフォーマンスに影響を与えるサイズに拡張する場合に便利です。ユーザが制限値のディレクトリにファイルを作成しようとすると、 ENOSPC エラーが返され、作成が失敗します。特定のディレクトリ操作ではディレクトリ全体をメモリに常駐させる必要があるため、このオプションは必要以上に大きくしないことを推奨します。このため、これらの操作ではディレクトリ全体をロードする必要があります。ロードには時間がかかり、最悪の場合はロードできません。
注: maxdir-size はボリュームオプションであり、異なるモデルプラットフォーム間でボリュームを SnapMirror するときに転送されます。 ボリュームが低いメモリプラットフォーム(つまり、デフォルトの maxdir-size が小さい)から大きいメモリプラットフォームに転送された場合、はより小さい maxdir-size を保持します。 このエラーが、プラットフォームのデフォルトよりも小さい maxdir-size が設定されているボリュームで受信された場合は、 maxdir-size をプラットフォームのデフォルトに安全に設定できます。
maxdir-size 制限の主な目的は、パフォーマンスです。ディレクトリを介したスキャンは線形です。平均すると、検索ごとにディレクトリサイズの半分をスキャンする必要がありますが、これは低速になる可能性があります。WAFL は、使用されるディレクトリデータ構造を拡張します。ただし、ディレクトリが拡大しても、ディレクトリ構造を削除して再作成しなくても、ディレクトリ構造を減らすことはできません。ディレクトリから多数のファイルが削除されている場合は、次の手順を実行してディレクトリスペースを削減できます。
- ファイルを一時ディレクトリにコピーします。
- 元のディレクトリを削除します。
- 一時ディレクトリの名前を元のディレクトリ名に変更します。
少数のファイルしか削除されなかった場合、またはディレクトリファイルのサイズを小さくするのに手順が効果を得なかった場合は、 maxdir-size を大きくします。詳細については、ご使用の OS バージョンに対応した ONTAP マニュアルを参照してください。
次のエラーメッセージが表示された場合は、 maxdir-size の設定を増やすか、既存のファイルを再編成して、単一のディレクトリに格納されないようにします。
Error message: [myvol@filer: wafl.dir.size.max:warning]: Directory [dir] has reached the maxdirsize limit. Please increase the maxdirsize by using the vol options command.
Data ONTAP 7 モード以降の場合、構文は次のとおりです。
vol options volname maxdirsize {size in Kb}
clustered Data ONTAP 8.0 では、 ONTAP 9 以降の構文は次のとおりです。
volume modify -vserver {NAME} -volume {NAME} -maxdir-size {size in bytes}
次の例では、 SVM1 という名前の仮想サーバ上のボリューム vol1 に、最大ディレクトリサイズを 60 MB に設定します。
cluster1::*> volume modify vol1 -vserver svm1 -maxdir-size 60MB Volume modify successful on volume: vol1 cluster1::*> volume show -volume vol1 -fields maxdir-size (volume show) vserver volume maxdir-size ------- ------ ----------- svm1 vol1 60MB cluster1::*>
注:上記のコマンドを実行するには、権限レベルを advanced に設定する必要があります。
create_ucode
convert_ucode
このメッセージは、「」および「」ボリュームオプションを有効にした後にも表示されることがあります。メッセージは Filer 上の Unicode の変換によって生成されるため、 maxdir-size を大きくしても問題が解決しない場合があります。Filer 上の Snapshot はファイルシステムの変更をロックしているため、 Unicode に対応していないデータにアクセスすると、一時ファイルが作成されます。
この場合はconvert_ucode
create_ucode
、「」および「」オプションが有効になる前に作成されたスナップショットを削除します。これにより、ボリュームに余分な一時データを作成せずに、既存のデータを Unicode 形式に変換できます。'convert_ucode
「 and 」'create_ucode
オプションは有効のままにします。「 old 」 Snapshot が削除されたら、ディレクトリに大量のデータとファイルがないかぎり、 maxdir-size を増やす必要はありません。
maxdir-size が参照するディレクトリはどれですか。
maxdir-size は、ディレクトリファイルが占有するディスク上のサイズを表します。UNIX の場合と同様に、 Filer では、ディレクトリは他のファイルとほとんど同じサイズになります。名前(または CIFS の場合は複数の名前のバリエーション)と inode 番号のマッピングは、そのディスクスペースに格納されます。
使用されている maxdir-size の量を特定する方法を教えてください。
ディレクトリのサイズは Windows では正確には判断できませんが、ファイル数と名前の長さから推測できます。これは、 CIFS の ~ 100k のファイル数がからのものです。ディレクトリが NFS のみの場合、約 300K のファイルです。
maxdir-size のサイズを決定する方法はありますか。
UNIX システムでls -kld
は、問題のディレクトリに問題があります。それはサイズを与える。
注意ls -ld
-k
:変更は可能ですが、出力は 1024 で割る必要があります。これは、「 like --block-size=1k 」を意味するためです。
このサイズがデフォルト値に達すると、新しいファイルの作成が失敗する可能性があります。 バックグラウンドクリーンアップ処理(スナップ削除など)が実行されている場合は、新しいファイルが作成され続けることがあります。この制限に達すると、 maxdir-size を増やすことを推奨します。ここでも、 maxdir-size を増やすことができることに注意してください。そのため、基本的な経験則として、 maxdir-size を 2% ずつ増やします。つまり、システムメモリではなく、現在の値の 2% ずつ増やします。
maxdir-size のサイズを変更すると、パフォーマンスにどのような影響がありますか。
パフォーマンスの問題は数値化するのは困難ですが、一般的な意味では簡単に説明できます。大規模なディレクトリでの検索では、大量の CPU が消費されます。大規模なディレクトリを NFS から CIFS にのみ変換すると、長時間にわたって大量のリソースが消費されます。パフォーマンスへの影響としては、ディレクトリがメモリにロードされると、ディレクトリツリー全体がロードされることがあります。一部のメモリは使用されないためにメモリ不足になることがありますが、ディスクからの読み取りや、ディレクトリを格納するためのメモリ内のスペースの検出によるパフォーマンスへの影響があります。
.snapshot にあるファイルとディレクトリを計算に含める必要がありますか?
いいえ。 Snapshot に格納されているファイルとディレクトリを計算に含める必要はありません。
maxdir-size はすぐに変更されますか。
はい。ユーザが Filer に接続しているときにディレクトリ・サイズを増やすために、オンザフライで maxdir-size を変更できます。
ストレージシステムがアップグレードされた場合、 maxdir-size は増加しますか。
デスティネーションボリュームは作成された maxdir サイズを保持します。 アップグレード後に maxdir サイズを大きくするには、ボリュームを再作成するか、ストレージシステムの適切な maxdir サイズに手動で変更する必要があります。
ボリュームが以前のリリースの ONTAP から移行された場合、 maxdir-size は増加しますか。
デスティネーション以前の Data ONTAP リリースでは、システムメモリサイズをベースとして使用して maxdir-size が決定されていました。移行時に、ボリュームは必要に応じて maxdir-size を保持します。
MaxDirSize および FlexGroup
FlexGroup 内のすべての構成ボリュームで、 maxdir-size の制限がリニアに発生するとは限りません(重み付けラウンドロビン設計)。この制限が発生した構成ボリューム(複数可)については、修正は同じです。[1]リファレンスについては、 27 ページから NetApp ONTAP FlexGroup ボリュームを参照してください。