web-dev-qa-db-ja.com

ハートビート/ DRBDフェイルオーバーが期待どおりに機能しませんでした。フェイルオーバーをより堅牢にするにはどうすればよいですか?

DRBDハートビートのセットアップでノードに障害が発生したが、フェイルオーバーしなかったというシナリオがありました。何が起こったのかというと、プライマリノードはロックされていましたが、直接ダウンしませんでした(sshまたはnfsマウントではアクセスできませんでしたが、pingを実行できました)。望ましい動作は、これを検出してセカンダリノードにフェイルオーバーすることでしたが、プライマリが完全にダウンしなかったため(サーバーからサーバーへの専用ネットワーク接続がある)、ハートビートの検出メカニズムが検出されなかったようです。その上で、したがってフェイルオーバーしませんでした。

誰かこれを見たことがありますか?より堅牢なクラスターフェイルオーバーを実現するために構成する必要があるものはありますか? DRBDは他の点では正常に機能しているようですが(古いプライマリを再起動したときに再同期する必要がありました)、適切なフェイルオーバーがないと、使用が制限されます。

  • ハートビート3.0.4
  • drbd84
  • RHEL 6.1
  • ペースメーカーを使用していません

このセットアップでは、nfs03がプライマリサーバーであり、nfs01がセカンダリサーバーです。

ha.cf

  # Hearbeat Logging
logfacility daemon
udpport 694


ucast eth0 192.168.10.47
ucast eth0 192.168.10.42

# Cluster members
node nfs01.openair.com
node nfs03.openair.com

# Hearbeat communication timing.
# Sets the triggers and Pulse time for swapping over.
keepalive 1
warntime 10
deadtime 30
initdead 120


#fail back automatically
auto_failback on

そしてここにharesourcesファイルがあります:

nfs03.openair.com   IPaddr::192.168.10.50/255.255.255.0/eth0      drbddisk::data  Filesystem::/dev/drbd0::/data::ext4 nfs nfslock
5
Quinn Murphy

プライマリシステムが期待どおりに動作するかどうかを確認するには、監視を実装する必要があると思います。チェックに失敗した場合は、サーバーの電源を切り(IPMI/ILOまたはスイッチドPDUを使用)、ハートビートにその仕事を任せる必要があります。

思った通りに動かない状況が必ずあると思います。

2
Oliver

完璧な解決策ではありませんが、2〜3年前に古いdrbdでこの問題が発生しました。私がしたことは、実際のホストがアクティブなマスターであるかスレーブであるかをチェックするスクリプトをcronに両方のホストに追加することでした。スレーブ上にある場合は、NFSディレクトリ内の既知のファイルが使用可能かどうかを確認しました。そうでない場合; NFSが壊れていると思いました。 sshを送信しますpower offコマンド。あなたはこの線に沿って働くことを試みることができます。私は彼らがより良い方法であると確信しています。これは私には十分でした。

2
Kris_R