2012年2月1日水曜日

GlusterFS+mhddfs+XFSを試してみた


mhddfsで束ねたXFS領域をGlusterFSでミラーする構成を試しています。

■感想
・GlusterFSはCPUを大食いだ。
・速度は問題無し。むしろ想像より速くてびびった。
・なんか不安定な感じがする。だいぶ不安。

■構成
最終的にはネットワーク越しで構成しますが、マシンに空きがないので、とりあえずローカルでテスト。

○検証方法
・CentOS6.2をSDカードにインストールしてmhddfsとGlusterFSを導入する。
・XFSでフォーマットしたSATA HDDを4台用意する。
・mhddfsで2台ずつ束ねる。
・束ねたhdd領域をGlusterFSでレプリカする。
・他のサーバでマウントし、適当なテストデータを大量コピー(rsync)して様子を見る。

○挙動
以下いずれもGlusterFSかmhddfsかXFSか、どの影響かわかりませんが、気が付いた点。

・パフォーマンスは悪くない。Write/Read共に80〜90MB/sくらい出てます(WD10EADS-00L5B1)。なんだ、ZFSなんかよりよっぽど速いじゃないか。RAID1の同一ディスクにイメージファイル作ってXFSフォーマットしてマウントしてGlusterFSでレプリカして、なんていう構成だと4MB/sくらいだったし、mhddfsは遅いという話を散見してたのでドキドキしてましたが、これなら実用に堪える感じ。同一ディレクトリに1万個くらいファイル設置してみましたが、これも応答速度に問題無し。XFSのおかげでしょうが。ランダムアクセスはあんまり発生しないので調べなくていいや。

・コピー途中に本構成を仕込んでるサーバが突然リブートした模様; SDカード起動の影響かな。。これなんか不安定なんすよ。SDカードはそのままにアダプタを変えると挙動が大幅に変わるし。でも起動ディスクごときにSATAポート取られたくないんだよなぁ。。

・発生条件がよくわかりませんが、permission errorでmhddfs領域に書き込めなくなる場合がある模様(もちろんpermission設定的には書き込める状態ですよ、ディレクトリ777とかで)。mhddfsのマウントし直しで解消。書き込めない最中はクライアントに対してはGlusterFSを通じてpermission errorがそのまま返る模様。多いに不安。dmesgには何も出てないし発生の瞬間には立ち会っていなかったのでよくわかりませんが、両方とも発生してたので、もしかするとmhddfsのせいじゃないかも知れない。またネットワーク越しだと違うかも知れない。

・mhddfsをGlusterFSで束ねるんですが、GlusterFS領域をローカルでマウントできません。mountコマンドを打っても無視されます。もちろんmhddfsを通さなければ動作します。FUSEの2重化が不可なんでしょうかね。ネットワーク越しではマウントできるので目をつぶることにします。

・ディスクへの書き込みは同時ではなく数秒おきにラウンドロビンするようですが、同時並行アクセスが全くないわけではないようです。ライトキャッシュも効いてる様子で、細かいファイルはかなり溜め込んでから書き込んでます。メモリ消費具合や挙動から察するに、GlusterFSがラウンドロビンして、XFSが遅延書き込みしてる感じかな?(想像) ということはbrick間やディスク間では結構な量の不一致が発生してるはずなので、運用上は留意が必要かなぁ(想像)。混ぜるな危険、みたいな。もしレプリカ修復が日常的に発生するようだと、 レプリカ3本欲しいかも。。でもコストが。。

・CPU負荷が高いす。マルチコアプロセッサは必須かなぁ。atomでは無理そうだ。具体的にはこんな感じ↓@Core 2 Quad Q6600

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2278 root      20   0  737m  28m 2012 S 68.1  0.4  62:26.57 glusterfsd
 2282 root      20   0  737m  24m 2012 R 66.4  0.3  61:48.47 glusterfsd
 5631 root      20   0 1294m  16m  608 S 21.3  0.2  20:00.89 mhddfs
 5648 root      20   0  975m  22m  604 S 20.3  0.3  19:15.53 mhddfs

書き込みアクセス中。mhddfs領域2つをローカルでレプリケーションしてるので2つずつ上がってると思われる。
読み込みは、glusterfsdプロセスが増える場合と増えない場合がある模様。条件は不明。
メモリ消費量が小さくないようなので、小メモリ構成だと同時アクセスが増えたら危険かも知れない。この感じだと、同時100アクセスに備えるなら4GB+キャッシュ分は必要でしょうかねぇ。

もうちょっとテストしてみます。

0 件のコメント: