RHEL 6.9には2ノードクラスタがあります。/etc/init.d/myApplication
呼び出すサービスによって生成されたシェルスクリプトを介して起動するアプリケーションを生成するのに問題があることを除いて、すべてが構成されました。「マイアプリ」。そのアプリでpcs resource create myApp lsb:myApp op monitor interval=30s op start on-fail=standby
私はこのセットを使い始めましたが、仕事用です。必要なのは、このアプリケーションを手動で起動する必要があるため、両方のノードで同時に起動することです。したがって、最初のノードが失敗した場合は、パッシブノードでまだアクティブでない場合は介入が必要です。
2つの異なるサービスがあります。
-VirtIP (ocf:heartbeat:IPaddr2)
アプリケーションサーバーへのサービスIPの提供
-Cron (lsb:crond)
アプリケーションファイルの同期(共有ストレージを使用しない)
myAppにホストして、VirtIPとCronを依存関係として使用しています。
マスター/スレーブとレプリケーションの両方を試しましたが、その構成について何かを見逃したようです。アプリケーションをオフラインにすると、Pacemakerはサービスがダウンしていることを検出せず、pcs status
myAppがノード(または私の設定に従ってノード)で実行され続けていると出力します。また、パッシブノードのペースメーカーによってアプリケーションを実行しているサービスが停止することもあります。
どのように設定する必要がありますか? RHEL文書を読んだが、まだ止まっている。 myAppサービスが失敗した場合にペースメーカーにフェイルオーバーを開始させるにはどうすればよいですか?場合によっては、サービスが停止したことを検出できない理由がわかりません。
編集:したがって、テスト目的で開始/再起動のパスワード要件を削除し、サービスが正常に開始/再起動され、管理対象の依存リソースが期待どおりに停止/開始されました。ただし、myAppサービスを停止すると、停止したリソースには反映されず、起動されたノード1にのみ保持されます。同様に、ノード1をスタンバイ状態に切り替えてフェイルオーバーをシミュレートすると、ノード1のすべてのリソースのみが停止します。
ベストアンサー1
私の考えでは、シェル/初期化スクリプトが正しい戻りコードを返さないようです。 Pacemakerがinitスクリプトとうまく機能するためには、initスクリプトはLSBと完全に互換性がなければなりません。ここで互換性チェックでinitスクリプトを実行してください。http://www.linux-ha.org/wiki/LSB_Resource_Agents
あなたのスクリプトは0を返すべきではありませんが、0を返すようです。