8.4. pacemaker_remote サービス

pacemaker_remote サービスを使用するとノードに corosync を実行させることなくクラスターに統合、クラスター側でリソースをクラスターノードのように管理させることができるようになります。これにより、仮想環境で pacemakercorosync を実行することなく、Pacemaker クラスターで仮想環境 (KVM/LXC) およびその仮想環境内に存在するリソース群を管理させることができるようになります。
pacemaker_remote サービスの説明では次のような用語を使用しています。
  • クラスターノード -High Availability サービス (pacemakercorosync) を実行しているノード
  • リモートノードpacemaker_remote を実行しているノード、corosync クラスターメンバーシップを必要とせずクラスターにリモートで統合
  • コンテナー — 追加リソースを含んでいる Pacemaker リソース (例えば webserver リソースを含んでいる KVM 仮想マシンリソースなど)
  • コンテナーリモートノードpacemaker_remote サービスを実行している仮想ゲストのリモートノード、クラスター管理の仮想ゲストリソースがクラスターで起動されリモートノードとしてクラスターに統合されるというようなリモートノード事例を指す場合に使用
  • pacemaker_remote — Pacemaker クラスター環境、スタンドアローン (非クラスター) 環境、いずれの環境下でもゲストノード (KVM and LXC) 内のアプリケーションをリモートで管理できるサービスデーモン (Pacemaker のローカルリソース管理デーモン (LRMD) の拡張バージョンで、ゲスト上にある LSB、OCF、upstart、systemd などのリソースの管理およびモニタリングをリモートで行うことが可能、またリモートノードで pcs を使用することも可)
  • LXClibvirt-lxc Linux コンテナードライバーで定義される Linux Container
pacemaker_remote サービスを実行している Pacemaker クラスターには次のような特徴があります。
  • 仮想リモートノードは pacemaker_remote サービスを実行します (仮想マシン側ではほとんど設定を必要としません)。
  • クラスターノードで実行しているクラスタースタック (pacemakercorosync) は仮想マシンを起動し直ちに pacemaker_remote サービスへ接続、クラスター内に仮想マシンを統合できるようにします。
仮想マシンリモートノードとクラスターノードとの主な違いとは、リモートノードはクラスタースタックを実行していないという点です。つまり、リモートノードは定足数を採用していません。これはリモートノードがクラスタースタックに関連するスケーラビリティの制限には縛られないということにもなります。定足数の制限以外、リモートノードはリソース管理に関してはクラスターノードと同じように動作します。クラスターでは各リモートノード上のリソースを完全に管理、モニタリングすることができます。リモートノードに対して制約を作り、スタンバイモードにしたり、クラスターノードで行うような動作をリモートノードに行わせることもできます。リモートノードはクラスターノード同様クラスターの状態出力に表示されます。

8.4.1. コンテナーリモートノードのリソースオプション

仮想マシンまたは LXC リソースがリモートノードとして動作するよう設定している場合には VirtualDomain リソースを作成して仮想マシンを管理させます。VirtualDomain リソースに設定できるオプションの詳細については次のコマンドで確認してください。
# pcs resource describe VirtualDomain
VirtualDomain リソースオプションの他にもリソースをリモートノードとして有効にして接続パラメーターを定義するメタデータオプションを設定することもできます。表8.3「KVM/LXC リソースをリモートノードとして設定するメタデータオプション」 にメタデータオプションを示します。

表8.3 KVM/LXC リソースをリモートノードとして設定するメタデータオプション

フィールドデフォルト説明
remote-node
<none>
このリソースで定義するリモートノードの名前、リソースをリモートノードとして有効にしてノードの識別に使用する固有名を定義する (他にパラメーターが設定されていない場合はこの値がポート 3121 で接続するホスト名とみなされる) 警告: この値はいずれのリソース、ノード ID とも重複不可
remote-port
3121
pacemaker_remote へのゲスト接続に使用するカスタムのポートを設定
remote-addr
remote-node value used as hostname
リモートノード名がゲストのホスト名ではない場合に接続する IP アドレスまたはホスト名
remote-connect-timeout
60s
保留中のゲスト接続がタイムアウトするまでの時間
次のコマンドでは vm-guest1 と言う名前の VirtualDomain リソースを作成しています。remote-node メタ属性を使ってリソースを実行することができるリモートノードになります。
# pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest1