ストレージ

2012年02月24日

最近はGlusterFSなんかも触ってます(。╹ω╹。)

fuseを使えばマウントして、ファイルシステムとして使えるとか
どのノードも対等だから、接続用サーバがSPOFになる悩みもないとかで、実に興味深いです。
最近ではSwiftのコードを入れて
オブジェクトストレージ機能も持たせたとか何とか。

設定とか


特に設定ファイルを書くこともありませんでした。
すごく・・・簡単です。
gluster volume create ...
とか、コマンドベースでvolumeの操作をするだけでした。

ファイルの分散方法としては
distribute/replicate/stripeの3要素ががあります。

・distribute ファイル単位で保存先のサーバを分散
・replica 複数のサーバに同じファイルを保存
・stripe ファイル自体を細切れにして分散保存

4台以上にすればdistribute + replicaとかdistribute + stripeなんて組み合わせもできますが
replica + stripeはできないみたいです(´・ω・`)

その他メモ・ハマりどころ


fuseマウントはvolume単位でしかできない


NFSみたいに特定のディレクトリを・・・とは行かず
提供されている一番上の階層をマウントしないといけないようです。

lsするとファイルが2つ見える


これはテスト中に起こした現象で、別段不具合でもナンでもないんですが面白かったので。
distributeで動作しているサーバは
例えば2台なら2台それぞれに違うファイルが置かれ
クライアントから見た時は、それぞれのサーバのファイルを足してみます。

クライアントから見て
aaa, bbb, ccc,ddd, eee, fff
みたいにファイルが見えてる時にはサーバ内部では
サーバ1:aaa, bbb, ccc
サーバ2:ddd, eee, fff
こんな風に分担して保存してるわけですが
そのディレクトリに、主動でファイルを追加して
サーバ1:aaa, bbb, ccc, ddd, eee, fff
サーバ2:aaa, bbb, ccc, ddd, eee, fff
とかやると
クライアントからは
aaa,aaa, bbb, bbb, ccc,ccc, ddd,ddd, eee, eee, fff,fff
こんな風に表示されます。

ちなみに、rmすると1つだけ消えます。

NFSが落ちる\(^o^)/


GlusterdにNFSの機能もあり、NFSv3でマウントして利用することもできます。
・・・が、なんか負荷をかけたら固まっちゃいました(てへぺろ)

原因調査中。

fuseマウントするとkvmが起動できない(解決)


IaaS環境でのファイルシステムとして注目を集めているので
GlusterFS上にイメージを置いて、マイグレーションした時に
移行先でもマウントするだけで同じ物を利用できる・・・というような使い道を想定してます。

なので、fuseマウントした状態で
どの程度仮想マシンのイメージ置き場に使えるかなと思って起動させてみましたが
そもそも起動できませんでした\(^o^)/
# virsh create test.xml
error: Failed to create domain from test.xml
error: internal error Process exited while reading console log output: qemu: could not open disk image /mnt/disk.qcow2
どういうことなの・・・

調べてみたら同じ症状で悩んでる人が居ました。
cacheをnoneからwritebackwritethroughにすればいいのかー。
多分、cacheがnoneな場合とでopenする時のモードが違う(かつfuseやglusterfsが対応していないオプションを使っている)のかなぁ・・・

ちなみにqcow2だとやっぱり失敗。rawだと成功。この辺も何か対応してないとかあるんだろうなぁ。

nanodayo at 12:16コメント(3)トラックバック(0)