問題
- 新規フォルダの作成にIOExceptionが発生する。
- 基礎となるOSの1フォルダあたりのファイル数/サブフォルダ数の制限に引っかかった。 FileSystemStoreやAdvancedFileSysteStoreでは、この問題に遭遇することがあります。
環境
- ポータル6.2
- DXP 7.0
- DXP 7.1
解像度
- システム内のDocumentsとMediaフォルダの数を減らす
- DBStoreに移行する
- この制限値以上をサポートする基礎的なファイルシステムを使用するか、現在のファイルシステムをより多くサポートするように設定する(可能な場合)。
Ext4 の wikipedia エントリーにあるように、:
サブディレクトリの数に制限なしExt4では、サブディレクトリの数に制限を設けることができます。
([15]|https://en.wikipedia.org/wiki/Ext4#cite_note-15] より大きなディレクトリと継続的なパフォーマンスを可能にするために、ext4 はデフォルトで HTree インデックス(B-tree の特殊バージョン)を使用します。 この機能は、Linux 2.6.23で実装されています。 ext3ではdir_index機能を有効にすることで、HTreeを使用することができます。
dir_index
ハッシュ化されたB-treeを使用し、大規模ディレクトリの名前検索を高速化する。 この機能はext3およびext4ファイルシステムでサポートされており、ext2ファイルシステムでは無視されます。
dir_nlink
通常、ext4ではinodeに65,000を超えるハードリンクを持たせることはできません。 これは、ディレクトリだけでなく通常のファイルにも適用されます。つまり、1つのディレクトリに64,998個を超えるサブディレクトリは存在できません('.'と'..'の各エントリと、その親ディレクトリのディレクトリエントリがハードリンクとしてカウントされるためです)。 この機能は、リンク数が最大数を超える可能性がある場合に、ディレクトリへのハードリンクの数が不明であることを示すためにext4に1のリンク数を使用させることでこの制限を解除します