2011年7月29日金曜日

RHEL6.1 を使い倒す High Availability


このエントリーをはてなブックマークに追加


High Availability アドオンの使い方。ようはクラスタリング。

公式マニュアル
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/High_Availability_Add-On_Overview/index.html


構築方法は RHEL6.1 を使い倒す Resilient Storage(GFS2) とほぼ一緒なので省略。

ricci を luci 配下に組み込んだらもうクラスタは使える状態になっている。

RHELのクラスタは他のクラスタリングソフト(MSCS/MSFC、VCS、HC/SG)とほとんど変わらず、スタンダードな共有ディスクタイプのクラスタを実現できる。

設定の流れは、


クラスタの作成(ノードの登録)

Quorum の登録(2ノードクラスタの場合のみ)

Fence Devices の作成(必須では無い)

Fence Devices とノードの関連付け(必須では無い)

Failover Domainの作成(ノード間の優先順位付け)

Resource の追加(仮想IPやプロセス、ファイルシステム)

Service Group の登録(Resourceのグルーピングと依存関係、Failover Doaminとの関連付け)


になる。Luciのインターフェースと上の流れを見れば何となくわかると思うので細かな説明はしない。


この中で Fece Decives というのが他のクラスタソフトにはない特徴になる。この機能はSplit Brain 発生時にデータを安全に保護するための機能の事。具体的には I/O を Fence するための機能になる。

通常のクラスタソフトではSplit Brainを回避するために共有ディスクへの SCSI-3 Persistent Reservation(PR) を発生させディスクのロックを取得した方が生き残る、というのが一般的な対処になっている。しかしPRは完璧な機構では無く異常が発生しても互いに正しい手順でPRが行わてしまうとディスクの占有権を取得できてしまう。

そのためにRHELでは一歩進んだ機能が実装されている。ただしこの機能はリスクもあるので設定する際には十分注意(設定しなくてもクラスタは動く)


RHELではSplit Brain 時の制御としてPR以外に異常発生側のノードを、

・強制的に電源をOFFにする
・強制的にI/O不可能な状態にする

という二つの機能が準備されている。当然ながらこれはOSの機能で実現されているわけでは無く、周辺機器(=Fence Devices)との連携によって実行される。


・強制的に電源をOFFにする

この具体例はサーバに搭載されるiLoやBladeサーバの管理プロセッサなどや、APCのPDUなどと連携する。ようはOSが落とせないなら外部から強制的に電源断してやる。仮想環境ではRHEV-Mと連携した仮想OSの強制ダウンも実行できる。


・強制的にI/O不可能な状態にする

これは Brocade のFC-SW なんかと連携して、異常発生のノードがつながっているFCポートを強制ブロックしてI/Oを停止させる。


これらは全てIPベースで連携するので、Fence Device を作成する際には対象機器のIPを聞かれる。その他に選んだデバイスの種類によって、ブレード位置やFCポート位置、PDUのOUT番号などを設定することになる。


この設定をミスると互いにフェンスしあって永久にリブートし続けるとかもあり得るので設定する際は十分注意。

設定方法や注意事項はここでだいたいわかると思います。

0 件のコメント:

コメントを投稿