- SlideBoom

Ganetiで楽々仮想環境♪
話し手:某企業の社内SE 長谷川 哲
発表者略歴

197x三重県生まれのとある企業の社内SE

主な仕事はMonsterHunter、副業でSI業務

専門はOracle+Java

仕事ではCentOS/RedHat、趣味ではDebian

自宅サーバ運営中
Ganetiとは?

Google社内システムで採用されている。

Xen/KVMをベースとした仮想化インフラ。

DRBD/LVMでディスク冗長化。

これらの技術をPythonで接着。

本家 http://code.google.com/p/ganeti/
■よくあるエンタープライズな仮想環境の一例
共有ディスク
物理サーバ
物理サーバ
物理サーバ
この共有ディスクがやられると全滅。
仮想化ソフト
仕組み上、単一障害点が必ずできてしまう。
VMWare ESXi OracleVM etc
しかも共有ディスクのリプレイス時には、
関連するサーバ・サービスが全部止まる。
おまけに普通のサーバよりも高額。
色んなサーバが動きます。
■とある企業のシステム部門
このストレージが販売後5年経過したので
ディスコンになりました。保守できませーん。
リプレイスの見積もりがこちらになりまーす。
と言うわけで、リプレイスの予算をください。
後、作業時、システムも全面停止します。
そんな予算あるわけないだろ、JK
あ、システム止めたら減俸な。
そんな~(泣
創意工夫と気合いと根性で乗り切れ。
※登場する人物、団体は全てフィクションです。
■そこで?提案したGanetiのアーキテクチャ
物理サーバ
物理サーバ
DRBD
物理サーバ
LVM
これらの各技術をPythonで接着。
コマンド一発で色々管理できるように!
LVM
LVM
DRBD
LVM
LVM
DRBD
仮想化ソフト Xen/KVM
LVM
■インストールまで
Debianを普通にインストール。
パッケージは aptitude install ganeti で一発。
Dom0の割当メモリ量を制限
xen-linux-2.6.26-1からブートするように設定
lvmコマンドでPVを作ってxenvgと言う名前のVGを作る。
/etc/network/interfacesを編集して
eth0→xen-br0にブリッジ設定
Drbdモジュールを有効にする。特に難しい設定等は無し。
英語で詳しいドキュメントがあるのでそっちを見て下さい!
ハマった点
– 共有ディスク領域に最低20GBが必要。
– Kernel2.6.26-2だとうまく動かなかった?
– 多重化する場合、/etc/hostnameをFQDNにしないと
gnt-node add時に名前解決できなかった。
– NICのブリッジ化やXenの設定をミスると結構大変。
■Ganetiの論理サーバ構成
物理サーバ 物理サーバ
物理サーバ
クラスタ1
VM1
P
VM3
S
物理サーバ
クラスタ2
VM1
S
VM2
P
物理サーバ
VM2
S
VM3
P
VM4
P
VM4
S
VM5
S
VM5
P
P:Primaryノード
S:Secondaryノード
■仮想マシンの管理
●クラスタを初期化
# gnt-cluster init <cluster-name>
●とりあえず仮想マシンを作る
# gnt-instance add -n –node=<pv> \
-o debootstrap -t plain <vm>
↑ここでVMのメモリやディスク設定も可。
●コンソールにログイン
# gnt-instance console <vm>
LVMやXenの管理コマンドを使うと、
VMのディスクやら何やらが見れます。
■クラスタの管理
●クラスタに物理ノードを追加
# gnt-node add <node2>
●ディスク冗長化した仮想マシン作成
# gnt-instance add -n <node1>:<node2>
-o debootstrap -t drbd <vm>
●フェイルオーバー/Migrate
# gnt-instance failover <vm>
# gnt-instance migrate <vm>
●マスタノードの切り替え
上記操作はマスタノードから実行する必要あり。
マスタが落ちたら?→他のノードで、以下を実行
# gnt-cluster masterfailover
■まとめ
Ganetiはいいよ!
– 高価な共有ディスクは要らないよ。
– コマンド一発で仮想マシンが管理できるよ。
– DRBDの制約上、プライマリなノードは存在するけ
ど、単一障害点では無いよ。
•イマイチな点
– 日本語ドキュメントがまだまだ少ないよ。
– ディスク割当とか細かい設定できないよ。
– 対応OSもとりあえずDebianとUbuntuだけだよ。
– GUIが無いよ→ダメ管理者にとって死活問題だよ
まとめ
Debian/Ubuntuで使うならそのまま導入できるよ。
技術要素として見ても面白いよ。
うちの自宅鯖に入れるよ。
■とある企業のシステム部門(その後)
Oracleが動作保証されてないん
だから、黙ってOracleVM使え。
予算はお前の給料削って
捻出したから安心しる。
えー?!(・д・)
毎度ありー♪
(とほほ~今日は定時で上がって、
この前、自宅サーバ用に買った
ML115x2台にGaneti導入しよう。。。)
※登場する人物、団体は全てフィクションです。