翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アクティブ/パッシブロードバランサー
この設定では、一度に 1 つのインスタンスで HAProxy をロードバランサーとして実行します。HAProxy 設定ファイルは DRBD レプリケートストレージに保存されるため、Pacemaker がスタンバイインスタンスにフェイルオーバーすると、設定はすぐに使用できます。
重要
先に進む前提条件とクラスターのセットアップ前に、「」のすべてのステップを完了してください。
警告
特に明記されていない限り、プライマリインスタンスでのみ次のコマンドを実行します。
すべてのインスタンスに HAProxy をインストールする
HAProxy をインストールし、サービスを無効にして、Pacemaker がサービスを管理できるようにします。各インスタンスでこれを実行します。
sudo apt install -y haproxy sudo systemctl disable haproxy sudo systemctl stop haproxy
HAProxy の DRBD マウントを設定する
DRBD デバイスをロードバランサーのディレクトリにマウントします。
マウントポイントディレクトリを作成します。各インスタンスでこれを実行します。
sudo mkdir -p /drbd/loadbalancer/
DRBD デバイスをプライマリインスタンスにマウントします。まず、前提条件から以前のマウントポイントをアンマウントします。
sudo umount /greengrass/v2 sudo mount /dev/drbd0 /drbd/loadbalancer/
でマウントを確認しますlsblk。にdrbd0マウントされている が表示されます/drbd/loadbalancer。
HAProxy を設定する
設定ファイルは、フェイルオーバーインスタンスにレプリケートされるように DRBD マウントディレクトリにある必要があります。
-
HAProxy 設定を DRBD マウントディレクトリにコピーします。
sudo mkdir -p /drbd/loadbalancer/etc/haproxy/ sudo cp /etc/haproxy/haproxy.cfg /drbd/loadbalancer/etc/haproxy/haproxy.cfg -
HAProxy systemd unit ファイルを編集して、DRBD マウントパスの設定を使用します。各インスタンスでこれを実行します。
sudo systemctl edit haproxy次の行を追加して、設定ファイルパスを DRBD マウントパスに更新します。
[Service] Environment="CONFIG=/drbd/loadbalancer/etc/haproxy/haproxy.cfg" -
systemd を再ロードします。各インスタンスでこれを実行します。
sudo systemctl daemon-reload
DRBD リソースをアタッチする
DRBD デバイスをアンマウントし、DRBD を下げて、Pacemaker がデバイスを管理できるようにします。プライマリインスタンスとすべてのインスタンスdrbdadm downでアンマウントを実行します。
# On the primary instance only sudo umount /drbd/loadbalancer # On all instances sudo drbdadm down greengrass
sudo pcs resource create drbd-greengrass \ ocf:linbit:drbd drbd_resource=greengrass \ op monitor interval=15s role=Promoted \ op monitor interval=30s role=Unpromoted
sudo pcs resource promotable drbd-greengrass \ promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true
ファイルシステムリソースをアタッチする
sudo pcs resource create fs_loadbalancer Filesystem \ device="/dev/drbd0" \ directory="/drbd/loadbalancer" \ fstype="ext4" \ op start timeout=15s \ op stop timeout=15s \ --disabled
HAProxy systemd リソースをアタッチする
sudo pcs resource create haproxy systemd:haproxy \ op monitor interval=10s \ op start timeout=60s \ op stop timeout=60s \ --disabled
リソース制約を作成する
sudo pcs constraint colocation add haproxy with fs_loadbalancer sudo pcs constraint order fs_loadbalancer then start haproxy sudo pcs constraint colocation add fs_loadbalancer with Promoted drbd-greengrass-clone sudo pcs constraint order promote drbd-greengrass-clone then start fs_loadbalancer
制約が設定されるようにリソースを有効にします。
sudo pcs resource enable fs_loadbalancer sudo pcs resource enable haproxy
このチュートリアルのセットアップで STONITH を無効にします。
sudo pcs property set stonith-enabled=false
警告
STONITH は、このチュートリアルを簡素化するためにここでは無効になっています。本番環境では、STONITH を有効にし、分割ブレインやデータの破損を防ぐためにフェンシングエージェント (fence_awsAmazon EC2 インスタンスなど) を設定する必要があります。
フェイルオーバーを検証する
-
初期状態を確認します。HAProxy がプライマリインスタンスで実行されていることを確認します。
sudo pcs status -
フェイルオーバーをシミュレートします。プライマリノードをスタンバイモードにして、すべてのリソースをプライマリノードから強制的にオフにします。
sudo pcs node standbyprimary-node-name -
フェイルオーバーを確認します。スタンバイインスタンスで、クラスターのステータスを確認します。DRBD、ファイルシステム、および HAProxy リソースがup-to-date設定ファイルを使用してスタンバイインスタンスで実行されているはずです。
sudo pcs status障害が発生したインスタンスが回復すると、Pacemaker を設定して移行しない限り、ロードバランサーサービスはスタンバイインスタンスに残ります。
-
ノードをオンラインに戻します。
sudo pcs node unstandbyprimary-node-name