ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Linuxコミュの大量のファイルを保存するNFSサーバーに最適なファイルシステム

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ネットから無造作にファイルを集めるクローラーのような物を作成しています。
集めたファイルは共通のNFSに格納する方式をとっています。
ファイルを集めるクローラーは複数台あり、NFSは1台構成です。

処理的には大量のファイル・ディレクトリを一気に作成していくのですが、
実際に動作させた所、ディレクトリ作成で「too many links」が頻繁に発生しま
した。

色々調べた所、ファイルシステムに問題があるという事に行き着きました。
現在NFSで使用しているファイルシステムはext3です。

ext3は大量にファイルを作る場合には、あまり向いていないようですが、
ファイルシステムにあまり詳しくないため、今回のような使用用途にマッチした
ファイルシステムが何なのかの判断が出来ません。

一応、私なりに調べた結果、「ReiserFS」「XFS」あたりが良いのかと思ったの
ですが(どちらが良いかは判断出来ません(><))、他に何か良いファイルシステ
ムがあれば教えて頂けないでしょうか?

それとOSはCentOS4.4です。

但し、CentOSの場合はReiserFS,XFS共に標準サポートではないので、ファイルシ
ステムに合わせてOSの変更も検討しています。

コメント(14)

1ディレクトリ配下に32,000個以上ディレクトリを作ろうとしていませんか?

他のファイルシステムを選択するのもよいですが、同様の使い方をしているとそう遠くないうちにディレクトリエントリに対するアクセスのパフォーマンス劣化の問題にもあたる可能性もありますから、ディレクトリをベタに使わず階層化して分散させる(1ディレクトリエントリ中のディレクトリ・ファイル数を少なくする)のがよいでしょう。

例1)パス中にドメイン名等 階層構造を持つものを分散のネタにする
/export/foo.bar.com/xxxxx -> /export/3/com/bar/foo/xxxxx
/export/example.jp/xxxxx -> /export/2/jp/example/xxxxx
/export/192.168.33.4/xxxxx -> /export/0/192/168/33/4/xxxxx
・最後のIPの場合だけ階層が逆(ディレクトリと同順)になるので 4 ではなく 0 を当てて例外扱いしたほうが美しいでしょう

例2)階層構造はないがパスがほどよくバラけているなら単純に先頭何文字かでぶった切ってみる
/export/qwertyuiop/xxxxx -> /export/4/q/w/e/qwertyuiop/xxxxx
/export/asdf/xxxxx -> /export/4/a/s/d/asdf/xxxxx
/export/zxc/xxxxx -> /export/3/z/x/c/zxc/xxxxx
/export/jk/xxxxx -> /export/2/j/k/jk/xxxxx
/export/P/xxxxx -> /export/1/P/P/xxxxx
・この例では先頭3文字で分散
 で、3文字以下の場合、.../z/x/c/zxc/xxxxx でなく .../z/x/c/xxxxx としても良い(決めの問題)
・分散のネタに直接パス名を使わず、hash関数にぶっこんでhash数値化したもので分散したほうがいいかも
2>
 1ディレクトリの制限があるので、ディレクトリは細かく分割しています。

3>
 まじですか!!
 出来る限りXFSをメインに考えたいと思います。

CentOS(RedHat)のXFSはまだ不安定とどこかで見たのですが、現在はどうなんだろう?
CentOS5も出たし

もしかしたら他のOSにした方が良いかも知れませんね。
XFSにする場合は良いOSはありますでしょうか?
無料ディストリがいいのですが、、

とりあえず、XFS,ReiserFSを動かして試してみたいと思います。
ReiserFS でも上限は 65535だった気がします。
XFSは 4294967295だったかな?

こないだ CentOS 4.4+ XFSで 504000個のディレクトリ作成できる事は確認しております。

wikipediaのXFSの項目に、サポートLinuxの名称がちょこっと乗ってますね
http://ja.wikipedia.org/wiki/XFS
丸さん、igarinさん、はじめまして、

> ReiserFS でも上限は 65535だった気がします。

すみません、これは違う気がします。
少なくとも、私の spamfolder (MH) には今 122223 個の
ファイルが置かれて平気なので…

あと、昔仕事で XFS を使ったときはファイル削除の遅さに閉口した
記憶が有ります。今は改善されているのかもしれませんが、
頻繁な削除が予想される場合は、これも事前テストをお勧めします。

reiserfs の将来を不安視する声は確かに有りますが、
(reiserfs4 ならともかく)
reiserfs3 は十分枯れた fs ではないでしょうか…

個人的には過去 7年間仕事と個人で NFS 込で使用して、
(SELinux 抜きなら) 安定性のみならず性能面でも
非常に信頼できる fs だと感じております。
reiserfsはRedhat系で使われないため
評価が少ないだけではないのではないでしょうか?
昔はRedhat9をインストールしてext3を使っていたものの
あまりのファイル削除の遅さに耐え切れず
ファイルシステムを換えたのですが、
XFSとreiserfsを自作のベチンマークで比較すると
速度的にreiserfs優れていたため
自分はreiserfsを選択しました。
削除速度も改善され、数年間問題も特におこっておりません。

ところで、reiser4ってどうなんでしょう?
自作のベンチマークで色々試したのですが、
reiserfsを上回る速度は全く体感できなかったです。
(全ての速度面でreiserfsを下回った)
いつまで経ってもカーネルに組み込まれないともなれば、
これは不安要素にはなるなと…
ZFSなんてどうでしょと呟いてみる。
私はネタや人柱希望向けのファイルシステムという認識しかないですが、もう少しこなれれば様々な面で明るい材料になると思います。
ZFSってあるんですね。
ログインシェルはzshを使っているので、興味ありますが、会社で使用するのは微妙ですねw

色々試した結果XFSに決めました。
ありがとうございました。
ZFS、Mac OS Xのファイルシステムに
http://www.itmedia.co.jp/news/articles/0706/07/news080.html

明るい材料!?
>明るい材料!?
明るい材料。
私は暗い材料を提供。
ZFSはLinuxではライセンスの問題があるとか言ってますが、
どうなんでしょうか。
何でBSDに提供できてLinuxにはだめなんだろう。
SunもLinuxを大事にしてほしい。

最近のNASはスナップショットが使えるのでXFSを使うことが多いようです。
XFSですが調べてみると64ビットのジャーナリングファイルシステムらしいですが、XFSのNFSサーバーを立てる場合は、CPUが64bitの場合、OSも64bitのOSにした方がいいでしょうか?
性能あがる?

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Linux 更新情報

Linuxのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。