研究室におけるCloudStackの運用や障害対応に関する話
僕は研究室でCloudStackでプライベートクラウドを構成していますが,本記事ではその運用上必要になった対応に関するお話をしたいと思います.研究を進めるにあたり新しい環境が必要な場合,通常は物理サーバのセットアップを行いますこないますが,面倒くさいだけでなく,操作ミスや設定の不整合により,もう一度新しい環境を作り直す必要がある可能性があります.このため我々の研究室では,CloudStackを利用することによりこのような際にかかるコストを削減しています.
さて,クラウド運用していて必ずしも安定動作しているわけではありません.というのは,CloudStackのバグ以外にも,敵はたくさんいるからです.今回は次の4つに関するお話をします.
Ethernetモジュールのバグ
比較的レアなケースだと思いますが,現在利用しているマシンのNICのドライバモジュールにバグがあり,ネットワーク上が不要なパケットで溢れてダウンしたことがあります.症状としては,復帰してから数時間から数日程度で環境が落ちて,アクセスできなくなります.また,tcpdump等のコマンドでパケットを監視すると,同じようなパケットが流れ続けているため,原因の特定はそこまで難しくないと思います.ディストリビューション側でモジュールのアップデートが降ってきていたので,それを利用したら解決しました.
LANケーブルの接触不良
これはよくあるケースですね.ネットワークの構成を変更していない場合でも,何らかの形でスイッチを動かしたり,LANケーブルに触れた場合に接触が悪くなってネットワークが疎通できなくなることがありました.リンクアップしているかどうかにかかわらず,疎通がとれない場合はLANケーブルを抜き差ししてみると良いかもしれません.また,大掃除やネットワーク環境を把握するためにスイッチ付近をうろうろしたあとに障害が発生した場合,この可能性も濃厚なので,注意が必要です.LANケーブルを挿し直したり,質の良いLANケーブルやスイッチを利用することで対応が可能です.
不安定な電源
多数のサーバを稼働させる場合,安定した電源が必要になります.特に,サーバは起動する際に電力を食うので,安定運用していると思っていても,何らかの問題が発生してサーバがダウンし,同時に電源を入れようとすると復帰しない可能性があります.問題の特定は難しいですが,そもそもサーバ置き場に何らかのうしろめたいことがあると思うので,「もしかしたら…」という場面がよくあるのかもしれません.
停電対応
大学は必ず1年に数回停電します.この際,マシンの電源を入れたままにしておくと,データが吹っ飛ぶ可能性があります.このため,停電があるときは事前にマシンの電源を落としておく必要があります.手順は次の通りです.
- 起動中のすべての仮想マシンの電源を落とす
- ゾーンを無効にする
- すべてのシステムVMを落とす(セカンダリストレージVM,コンソールプロキシVM,仮想ルータ)
- すべてのホストをメンテナンスモードにする(1台ずつ設定する必要がある.複数のホストを並行してメンテナンスモードにすることはできないので注意)
- すべてのホストの電源を落とす
- 管理サーバを落とす
- NAS等のストレージの電源を落とす
復帰するときは逆順で作業します.
落雷等で予期しない停電が発生した場合,上記の逆順で復帰します.復帰の際に,以下の項目を確認します.
- ゾーンを無効にする
- すべてのホストにおいて virsh list --all して,リストがあれば virsh destroy 1 とかする
- 管理サーバ側からVMが停止していることを確認する(停電前の状態が残っているので,更新されるのを待つ)
- システムVMを破棄する(HAが有効なので必要に応じて再作成される)
- ゾーンを有効にする
この方法で概ね復帰が可能かと思われます.
おわりに
12月25日には自宅CloudStack立ててみた,みたいなトピックで書きます