[Linux-ha-jp] sfexによる共有ディスクの排他制御について

Back to archive index

NAKAHIRA Kazutomo nakah****@oss*****
2010年 12月 20日 (月) 10:42:25 JST


TO:齊藤さま

はじめまして。中平と申します。

> 1.リソースグループをフェイルオーバさせる手順はありますか?
> 今は、フェイルオーバさせたいサーバで/etc/init.d/corosync stopで停止させてフェイルオーバさせています。
> crm resource stopではリソースグループを指定できないようなので、困っています。

2台構成の場合は、単純に下記コマンドを打つことでリソースを予備機へ
フェイルオーバさせることができます。

# crm resource move "リソースグループID"
WARNING: Creating rsc_location constraint 'cli-standby-"リソースグループ 
ID"' with a score of -INFINITY for resource "リソースグループID" on serverB.
         This will prevent "リソースグループID" from running on serverB 
until the constraint is removed using the 'crm_resource -U' command or 
manually with cibadmin
         This will be the case even if serverB is the last node in the 
cluster
         This message can be disabled with -Q

上記コマンドは、指定したリソースに対し現在起動しているノード上で
起動することを禁止する制約を設定することで、強制的にリソースを
他のノードへ追い出します。

コマンド実行時に表示されるワーニングメッセージには、
この制約が設定されたままではリソースを元のノードに
F/Oすることができないので、リソースが移動した後に
下記コマンドで制約を消去するように書かれています。

# crm_resource -U -r "リソースグループID"


> 2.ハートビートセグメント切断後の正しい復旧手順は、/etc/init.d/corosyncの再起動以外にあるのでしょうか?

ハートビートセグメント故障時の復旧手順としては、まず予備機側の
corosyncサービスを停止してから、ハートビート線を復旧し、
予備機側の corosyncを起動するのが一番確実な方法かと思います。


> 3.sfexを利用する前にsfex_init -n 1 /dev/sdb1でQuorum領域の初期化をしました。このようなsfex用のコマンドは他にあるのでしょうか?
> Quorum領域に書き込まれている情報を表示するようなコマンドはないのでしょうか?

sfex領域を初期化するコマンドは、sfex_initのみとなります。
Quorum領域の情報を表示するコマンドには、sfex_statコマンドがあります。

齊藤さまがどのバージョンの sfexを使用されているのかによって事情が
変わりますが、Linux-ha japanコミュニティ上で公開している sfex-1.3を
ご利用の場合は、標準で sfex_statコマンドが付属しております。

resource-agentsパッケージに標準で含まれている sfex-daemonをご利用の
場合は、最新版にアップデートして頂くことで、sfex_statコマンドを
ご利用可能になります。
# resource-agents-1.0.3 にはまだ入っていません。。

> 4.そもそも、スプリットブレイン対策でノードフェンシングという機能が存在していると思うのですが、今回のようにsfexで共有ディスクの排他制御を実現している場合は、STONITHは無効にしていても問題ないでしょうか?

STONITHには、例えば F/O時に現用機のリソース停止に失敗した場合でも
予備機が現用機を強制停止し、F/Oを成功させるといった用途があります。

IPMIなどでリセットが可能なサーバをご利用でしたら、STONITHも
あわせて導入されることをお勧めします。


以上です。
よろしくお願いいたします。

(2010/12/19 2:45), john john wrote:
>
> 齊藤と申します。
>
> 2台のESXi上にそれぞれ1つずつゲストOSを稼働させています。
> それぞれ、serverAとserverB。
> OSはCentOS 5.5 x64で、本日時点で最新のパッチ適用済みです。
> MySQLのデータベースを共有ディスクに配置しています。
> sfexを使って共有ディスクの排他制御を実現していて、ハートビートセグメントを切断しても排他制御が動作し、スプリットブレインが起きないことを確認しました。
>
> serverBがActiveな状態の時に、ハートビートセグメントを停止した際に、crm_monでモニタリングしていると、以下のようなエラーが出てserverAでリソースが起動しない事を確認しました。
> しかし、その後ハートビートセグメントを復旧させて、serverBを/etc/init.d/corosync stopで停止させても同じエラーが表示されたままでserverAにフェイルオーバしませんでした。
>
> Failed actions:
>      Disk-HB_start_0 (node=serverA, call=9, rc=1, status=complete): unknown error
>
> serverAで/etc/init.d/corosync stopで停止した後、/etc/init.d/corosync startで起動させる事で、Failed actionsが消え、フェイルオーバできる状態になりました。
>
>
> 4点質問がございます。
>
> 1.リソースグループをフェイルオーバさせる手順はありますか?
> 今は、フェイルオーバさせたいサーバで/etc/init.d/corosync stopで停止させてフェイルオーバさせています。
> crm resource stopではリソースグループを指定できないようなので、困っています。
>
> 2.ハートビートセグメント切断後の正しい復旧手順は、/etc/init.d/corosyncの再起動以外にあるのでしょうか?
>
> 3.sfexを利用する前にsfex_init -n 1 /dev/sdb1でQuorum領域の初期化をしました。このようなsfex用のコマンドは他にあるのでしょうか?
> Quorum領域に書き込まれている情報を表示するようなコマンドはないのでしょうか?
>
> 4.そもそも、スプリットブレイン対策でノードフェンシングという機能が存在していると思うのですが、今回のようにsfexで共有ディスクの排他制御を実現している場合は、STONITHは無効にしていても問題ないでしょうか?
>
> 以上、よろしくお願い致します。
>   		 	   		
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan


-- 
NAKAHIRA Kazutomo
Infrastructure Software Technology Unit
NTT Open Source Software Center





Linux-ha-japan メーリングリストの案内
Back to archive index