momok****@mail*****
momok****@mail*****
2014年 1月 14日 (火) 23:15:16 JST
広瀬と申します。 現在弊社で稼働しているHAシステムの1つで先日Active側でハード障害が 起きた関係で、Standby側に現在切り替えて片系運転状態にあるノードが あります。 問題は、故障したサーバ側のDRBD領域のデータと現時点で稼働している 旧Standby(現Act機)で恐らく誤差が発生したものと推定しています ※すでに電源落ちており、再稼働試しましたがNGだったので確認はと れていません。 Standby側にひっくり返す前に、Standby側のDRBD状態が以下になってい ました ■ログ Jan 13 08:25:58 <ホスト名> kernel: block drbd0: pdsk( UpToDate -> Failed ) Jan 13 08:25:58 <ホスト名> kernel: block drbd0: new current UUID 〜番号省〜 Jan 13 08:25:59 <ホスト名> kernel: block drbd0: pdsk( Failed -> Diskless ) ■DRBDステータス m:res cs ro ds p mounted fstype 0:r0 Connected Secondary/Primary UpToDate/Diskless C 上記のログは未だStandby機がまだスタンバイ状態であった時点であり、 約1時間後にActive機が完全停止に陥った状態です。 どうやらこの1時間の間はメモリ空間上で何らかの処理がなされていた模 様で、MySQLスレーブデータから見るとAM9時台に処理が存在してた事か ら誤差が起きていると判断しております。 この為障害で落ちてしまったサーバ側のDRBD上のデータは現時点では既に 正しいモノでは無くなったので、当該サーバの保守実施後にDRBD領域を再 同期処理を掛ける事になります。 上記の様な状態になっていると前提とした場合、2つ方法があるかと思いま すがどちらがよりベターかご意見頂きたくメールさせていただきました ※前置き長くてすみません 1.故障したサーバの復帰後、DRBD領域としてマークしているパーティ ションをfdiskで初期化後、create-mdでまっさらで作り直し、再同 期させてしまう ※同期処理時の負荷はsyncerを使い調整する事で補える 2.discard-my-dataを使う ⇒こちらが少し不安で、少なくともDRBDプロセスを起動しなければ ならず、SpritBrain状態で無くとも実行は可能なのか、意図的に その状態に持って行く必要があるのかが若干不明 ※私の理解の中で、SpritBrain(DRBDのステータス上はStandAlone) か、またはdisconnectで無いと利用が出来ないのではと思い込ん でいます 尚、当該システムですが、本来はPacemaker+DRBDで構成していましたが、 訳があり、Pacemakerを停止状態でDRBDと必須プロセスのみで構成してい ました(本件との直接の関係性は現時点ではありません)。 わかりにくい点があるかとは思いますが、ご意見頂ければとおもいます。 宜しくお願いいたします。