8.4.4. 設定の概要: KVM リモートノード
本セクションでは、
libvirt
と KVM 仮想ゲストを使って Pacemaker に仮想マシンを起動させてからそのマシンをリモートノードとして統合させる手順についての概要を簡単に説明しています。
- 仮想化ソフトウェアのインストールと、クラスターノードでの
libvirtd
サービスの有効化が完了したら、すべてのクラスターノードと仮想マシンに/etc/pacemaker/authkey
のパスでauthkey
を配置します。これにより安全なリモート通信と認証が行えるようになります。次のコマンドでauthkey
を作成します。#
dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1
pacemaker_remote
パッケージのインストール、pacemaker_remote
サービスの起動、このサービスの起動時の実行を有効化、ファイアウォールでの TCP ポート 3121 の通信の許可をすべての仮想マシンでそれぞれ行います。#
yum install pacemaker-remote resource-agents
#systemctl start pacemaker_remote.service
#systemctl enable pacemaker_remote.service
#firewall-cmd --add-port 3121/tcp --permanent
- 各仮想マシンに静的ネットワークアドレスと固有のホスト名を与えます。
- 仮想マシン管理用の
VirtualDomain
リソースエージェントを作成するため、Pacemaker にディスク上のファイルにダンプする仮想マシンの XML 設定ファイルが必要になります。例えば、guest1
と言う名前の仮想マシンを作成している場合は、次のコマンドを使ってホスト上のいずれかの場所にあるファイルに XML をダンプします。#
virsh dumpxml guest1 > /virtual_machines/guest1.xml
VirtualDomain
リソースを作成し、remote-note
リソースメタオプションを設定して仮想マシンがリソースを実行できるリモートノードであることを示します。以下の例では、メタ属性のremote-node=guest1
使って、このリソースがguest1
と言うホスト名でクラスターに統合可能なリモートノードであることを pacemaker に伝えています。仮想マシンが起動すると、クラスターによりホスト名guest1
で仮想マシンのpacemaker_remote
サービスへの通信が試行されます。#
pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest1
VirtualDomain
リソースの作成が完了したら、リモートノードはクラスター内の他のノードと全く同じように扱うことができるようになります。例えば、リソースを作成してリソースの制約をそのリソースに配置しリモートノードで実行させることができます。#
pcs resource create webserver apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=30s
#pcs constraint webserver prefers guest1
リモートノードがクラスターに統合されたら、リモートノードで Pacemaker を実行しているかのようにリモートノード自体でpcs
コマンドを実行できるようになります。