Cuturnの適当日記

徒然なるままに適当に駄文を吐き出しております

今週のお題は分散ストレージ+仮想化

今週はESXiと分散ストレージ GlusterFSを上手く組み合わせてフェイルオーバー可能なストレージを作れないかなぁと画策。

関連製品

VSAというのがあります。これは、ESXi上のローカルディスクを使って安くHA可能にしましょう、という製品。

仕組みとしては、ESXi上のディスクを2つに分割し、他ノードのレプリカ用、自ノードのアクセス用の2つのボリュームとして分けて、各ESXi上にできたアプライアンスがディスクを同期させるようになってる。でも、以下のようなデメリットがある。

  • 後からサーバを増やすなどはできない
  • 管理サーバが別途必要で複雑化する
GlusterFS+Heartbeatでやってみよう

VSAはマネージャーで頑張って管理してるけどGlusterFSで分散ストレージになってくれればそれでいいじゃないか、そして、IPについてはHeartbeatを使ってクラスタリングすればいいじゃないか、ということでやってみた。

GlusterFSのボリュームの概念はここ参照。

環境作り

・ESXiを2台ESXi上に立てる
・各ESXi上にGlusterFS+HeartbeatをインストールしたLinuxサーバを作る 今回はCentOS6で。
・各ESXi上からGlusterボリュームをNFSマウントする

性能とってみた

とりあえずGlusterFSサーバ上と作った仮想マシン上でhdparm取ってみる。

コマンド:hdparm -t /dev/sda2
GlusterFS上:50MB/sec
testサーバ上:4MB/sec

超遅い!いやまぁ本当はGlusterFSの乗ってるボリュームで取らないといい比較じゃない気もするのだけど・・・。
まぁいいや性能は後だ!

耐障害性検証してみた

サーバ上でpingを撃ち続けさせながら、とりあえずGlusterFSを片方殺してみた。
結論としてはPingは途切れなかった。まぁ読み書きがたくさんあったら別かもしれんが、とりあえず問題なくHAフェイルオーバーしている。

うん、この発想は間違って無さそうな気がする。多分、KVMを使うのであればGlusterFSを各KVMホストにインストールすることで、共有ディスクなしでHAClusterを容易に組める、ような気はする。
その場合は各ホストがマウントするGlusterFSは自分自身のIPをマウントさせるので、readは速いんじゃないかな。