LVM + JFSをetch上で使う人への最大にして唯一のアドバイス

使うな

まぁうちの使い方が、ソフトウェアRAID + LVM + Xen + JFSという使い方だからかも知れないけど。こう書くと変態的な構成に見えるけど、やってみればことさらに変わった構成ではないと思う。要するにXenの上でJFSを動かしているだけだし、RAIDやLVMなんてのも、仮想化する環境にはありがちの構成だろうし。てか、CPUを仮想化したら、ディスクも仮想化しとかないとメリット半減どころじゃないよ。仮想化環境のボリュームをファイルで構成する時も、そのファイルが載ってるボリュームはLVMにしといた方が、いろいろ都合がいい。だいたいsnap shotが取れるということだけでも、運用をいろいろ楽にする。

で、この組合せだと、高負荷をかけた時にJFSが破壊される。ズタズタって程じゃないけど、いくつかのファイルが飛んでファイルシステムがリードオンリーになるということが、突発的に発生する。何かをやらかしたとかではなく、突発的にだ。だから「高負荷をかけた時に」というのも正確じゃないかも知れない。何かの転みでファイルシステムがおかしくなる。

同じ構成でReiserはなんともない。

ReiserはHansがアレなことになってしまって、いろいろアレなことがあるのだけど、それでも今のところ結構タフに動いてくれている。mountする時に時間がかかるのだけど、途中で壊れるよりはずっといい。

XFSがどうかは試してない。また、最新のカーネルでどうなるかも試してない。LVMでない時にどうふるまうかもわからない。ただ、事実としてetchではLVM + JFSでは時々おかしくなる。Xenはあまりそういったあたりに関与しないから、多分Xenは関係ない。JFS自体はディストリビューションのカーネルモジュールに存在しているから、多分ボリュームがややこしいことでなければちゃんと動くのだろう(でなきゃリリースさせてないだろう)。

まーそれだけ。

PS.

冷静にもう1度考えてみたのだけど、LVMは関係ないはずだ。なぜなら、Xenの仮想環境に見えているのは、単なる仮想ブロックデバイスだけだから、LVMだろうがディスクだろうが同じことだ。ということは、要するに

etchではJFSを使うな

という結論になる。まぁいろいろ条件が絡むのかも知れないが、どうやらダメらしい。