web-dev-qa-db-ja.com

LinuxでのNetapp NFSマウント用の単一ディレクトリ内の最大ファイル数

私が持っている古いLinuxボックスには、NetappのNFSマウントがあります。このボックスの1つのディレクトリに100k個のファイルがあると、ファイルに書き込むことができなくなります。誰がこれを引き起こしているのか知っていますか?シンボリックリンクは引き続き記述できると言われています。

調べながら、より具体的な情報を追加します。 「ファイル/フォルダー構造および/またはデータベースをより適切に使用する」をスキップしてください、私は知っています...

7
Kyle Brandt

システムは、NetApp ONTAPファイルシステムの固定制限であるディレクトリのリンク制限に達しています。 このナレッジベースの記事から

Data ONTAP 6.5以降、1つのディレクトリに含めることができるサブディレクトリの最大数は99998(100K)です。 Data ONTAP 6.4以前のバージョンは65534(64K)サブディレクトリに制限されていました。この番号は変更できません。この制限の理由を理解するには、ハードリンクとサブディレクトリの実装に関する以下のセクションを参照してください。

6
Kyle Brandt

ヒットする可能性のある制限は2つあります。

  • iノード(そうではない)

    そのボリュームで使用可能なすべてのiノードを消費しました。これは、df -iおよびmaxfilesコマンドで確認できます。

  • maxdirsize(可能性が高い)

    ONTAPでは、ディレクトリのサイズに制限があります。サイズは、ファイルコンテンツではなく、メタデータ/ハードリンクの産物です。この制限のデフォルトは(> 6.5と仮定して)システムRAMの1%です。これは、大きなディレクトリがシステムのパフォーマンスに影響を与えないようにするためです。線形ディレクトリスキャンでは、ディレクトリデータ構造をメモリにロードする必要があるためです。概要:

これらの問題のいずれでもない場合は、ONTAPログを確認して投稿することをお勧めします。

6
Dan Carley

新しいバージョンのNetApp(8.1以降)では、次のコマンドを使用して、ボリュームごとのデフォルトの制限を上書きできます。

vol options vol_name maxdirsize 150000

現在の設定を確認するには

vol options vol_name

GUIクライアントからこれらを変更する方法はありません。

0
sorin