46.2. フェイルオーバーの設定方法
以下の手順では、サービスを実行する Pacemaker クラスターの作成方法を紹介します。このサービスは、サービスを実行しているノードが利用できなくなると、現在のノードから別のノードにフェイルオーバーします。この手順を行って、2 ノードクラスターでサービスを作成する方法と、サービスを実行しているノードでサービスが失敗するとどうなるかを確認します。
この手順では、Apache HTTP サーバーを実行する 2 ノード Pacemaker クラスターを設定します。その後、1 つのノードで Apache サービスを停止し、どのようにしてサービスを利用可能のままにしているかを確認できます。
この例では、以下のように設定されています。
- 
							ノード: 
z1.example.comおよびz2.example.com - Floating IP アドレス: 192.168.122.120
 
前提条件
- 相互に通信が可能な RHEL 8 を実行するノード 2 つ
 - このノードで静的に割り当てられている IP アドレスの 1 つと同じネットワーク上にあるフローティング IP アドレス
 - 
							
/etc/hostsファイルに、実行中のノード名が含まれている 
手順
両方のノードで、High Availability チャンネルから Red Hat High Availability Add-On ソフトウェアパッケージをインストールし、
pcsdサービスを起動して有効にします。yum install pcs pacemaker fence-agents-all systemctl start pcsd.service systemctl enable pcsd.service
# yum install pcs pacemaker fence-agents-all ... # systemctl start pcsd.service # systemctl enable pcsd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow firewalldデーモンを実行している場合は、両方のノードで、Red Hat High Availability Add-On で必要なポートを有効にします。firewall-cmd --permanent --add-service=high-availability firewall-cmd --reload
# firewall-cmd --permanent --add-service=high-availability # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスター内の両方のノードに、
haclusterユーザーのパスワードを設定します。passwd hacluster
# passwd haclusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow pcsコマンドを実行するノードで、クラスター内の各ノードに対してhaclusterユーザーの認証を行います。pcs host auth z1.example.com z2.example.com
# pcs host auth z1.example.com z2.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 両方のノードで、クラスターメンバーとなるクラスター
my_clusterを作成します。この 1 つのコマンドで、クラスターが作成され、起動します。pcs設定コマンドはクラスター全体に適用されるため、このコマンドは、クラスター内のいずれかのノードで実行してください。クラスター内のいずれかのノードで、以下のコマンドを実行します。
pcs cluster setup my_cluster --start z1.example.com z2.example.com
# pcs cluster setup my_cluster --start z1.example.com z2.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat High Availability クラスターでは、クラスターのフェンシングを設定することが必要になります。この要件の理由については、Red Hat ナレッジベースソリューション Fencing in a Red Hat High Availability Cluster で説明されています。ただし、この手順では、この設定でフェイルオーバーがどのように機能するかだけを示すために、
stonith-enabledクラスターオプションをfalseに設定してフェンシングを無効にします。警告stonith-enabled=falseの使用は、実稼働クラスターには完全に適していません。これにより、障害が発生したノードが適切にフェンスされていることを装うようにクラスターに指示されます。pcs property set stonith-enabled=false
# pcs property set stonith-enabled=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターを作成し、フェンシングを無効にしたら、クラスターのステータスを確認します。
注記pcs cluster statusコマンドを実行したときの出力は、一時的に、システムコンポーネントの起動時の例とは若干異なる場合があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 両方のノードに Web ブラウザーを設定し、Web ページを作成して簡単なテキストメッセージを表示します。
firewalldデーモンを実行している場合は、httpdで必要なポートを有効にします。注記システムの起動時に使用する場合は、
systemctl enableで、クラスターが管理するサービスを有効にしないでください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Apache リソースエージェントが、クラスターの各ノードで Apache のステータスを取得できるようにするため、既存の設定に以下の内容を追加して、ステータスサーバーの URL を有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターが管理するリソース
IPaddr2およびapacheを作成します。IPaddr2リソースは、物理ノードにすでに関連付けられていない Floating IP アドレスです。IPaddr2リソースの NIC デバイスが指定されていない場合、Floating IP は、ノードで使用される静的に割り当てられた IP アドレスと同じネットワーク上に存在している必要があります。利用可能なリソースタイプのリストを表示する場合は、
pcs resource listコマンドを使用します。指定したリソースタイプに設定できるパラメーターを表示する場合は、pcs resource describe resourcetypeコマンドを使用します。たとえば、以下のコマンドは、apacheタイプのリソースに設定できるパラメーターを表示します。pcs resource describe apache
# pcs resource describe apache ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、IP アドレスリソースおよび apache リソースの両方が、
apachegroupという名前のグループに含まれるように設定します。これにより、両リソースが一緒に保存され、同じノードで実行できます。クラスター内のいずれかのノードで、次のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このインスタンスでは、
apachegroupサービスが z1.example.com ノードで実行していることに注意してください。作成した Web サイトにアクセスし、サービスを実行しているノードでそのサービスを停止し、2 番目のノードにサービスがフェイルオーバーする方法を確認してください。
- ブラウザーで、設定済みの Floating IP アドレスを使用して作成した Web サイトを開くように指定します。定義したテキストメッセージが表示され、Web サイトを実行しているノードの名前が表示されるはずです。
 Apache Web サービスを停止します。
killall -9を使用して、アプリケーションレベルのクラッシュをシミュレートします。killall -9 httpd
# killall -9 httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターのステータスを確認します。Web サービスを停止したためにアクションが失敗したものの、サービスが実行していたノードでクラスターソフトウェアがサービスを再起動するため、Web サイトに引き続きアクセスできるはずです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスが再開したら、障害 (failure) ステータスを削除します。
pcs resource cleanup WebSite
# pcs resource cleanup WebSiteCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを実行しているノードをスタンバイモードにします。フェンシングを無効にしているため、ノードレベルの障害 (電源ケーブルを引き抜くなど) を効果的にシミュレートできません。クラスターがこのような状態から復旧するにはフェンシングが必要になるためです。
pcs node standby z1.example.com
# pcs node standby z1.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターのステータスを確認し、サービスを実行している場所をメモします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Web サイトにアクセスします。サービスの切断はありません。表示メッセージには、サービスを実行しているノードが含まれるはずです。
 
クラスターサービスを最初のノードに復元するには、そのノードをスタンドバイモードから回復します。ただし、必ずしもそのサービスが最初のノードに戻るわけではありません。
pcs node unstandby z1.example.com
# pcs node unstandby z1.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 最終的なクリーンナップを行うために、両方のノードでクラスターサービスを停止します。
pcs cluster stop --all
# pcs cluster stop --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow