私は数億のファイル(数ペタバイト)のファイルシステムを持っており、statが返すほとんどすべてのものを取得して、ある種のデータベースに保存したいと考えています。現在、中央キューからディレクトリ名が供給されるMPIプログラムと、統計呼び出しでNFSを非難するワーカーノード(これはあまり努力せずに処理できます)があります。次に、ワーカーノードはpostgresを押して結果を保存します。
これは機能しますが、非常に遅いです。最新の30ノードクラスターでは、1回の実行に24時間以上かかります。
一元化されたキューを使用する代わりに、ディレクトリ構造を分割するためのアイデアはありますか(このための正確なアルゴリズムはNP困難であるという印象を受けています)。また、postgresをいくつかのルーターを使用したMongoDBの自動シャーディングのようなものに置き換えることを検討しています(postgresは現在大きなボトルネックになっているため)。
私は、この設定をどのように改善できるかについての一般的なアイデアを探しています。
残念ながら、2.6カーネル監査サブシステムのようなものを使用することは、このファイルシステムにヒットするすべてのマシンでそれを実行することは(政治的な方法で)非常に難しいため、おそらく問題外です。
重要な場合は、このファイルシステムを使用するすべてのマシン(数千台)がLinux2.6.xを実行しています。
これの実際の主な目的は、特定の日付より古いファイルを見つけて、それらを削除できるようにすることです。また、ファイルシステムがどのように使用されているかに関する一般的なデータも収集したいと思います。