翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アクティブ/パッシブ AWS IoT Greengrass V2 サービス
この設定では、一度に 1 つのインスタンスで systemd サービス AWS IoT Greengrass V2 として を実行します。Pacemaker は、DRBD レプリケーション、ファイルシステムマウント、 AWS IoT Greengrass V2 サービスを順序付けられたリソースとして管理します。プライマリインスタンスが失敗した場合、Pacemaker はスタンバイインスタンスの DRBD をプライマリに昇格させ、ファイルシステムをマウントして起動します AWS IoT Greengrass V2。
重要
先に進む前提条件とクラスターのセットアップ前に、「」のすべてのステップを完了してください。
警告
特に明記されていない限り、プライマリインスタンスでのみ次のコマンドを実行します。
DRBD リソースをアタッチする
先に進む前に、Pacemaker が実行されていることを確認します。
sudo systemctl status pacemaker
リソースを作成する前に STONITH を無効にします。フェンシングデバイスが設定されていない場合、STONITH が有効になっている場合 (デフォルト)、Pacemaker はリソースの起動を拒否します。
sudo pcs property set stonith-enabled=false
警告
STONITH は、このチュートリアルを簡素化するためにここでは無効になっています。本番環境では、STONITH を有効にし、分割ブレインやデータの破損を防ぐためにフェンシングエージェント (fence_awsAmazon EC2 インスタンスなど) を設定する必要があります。
プライマリインスタンスで DRBD デバイスをアンマウントし、すべてのインスタンスで DRBD をダウンして、Pacemaker が DRBD ライフサイクルをクリーンに制御できるようにします。
# On the primary instance only sudo umount /greengrass/v2 # On all instances sudo drbdadm down greengrass
Pacemaker で DRBD リソースを作成します。
sudo pcs resource create drbd-greengrass \ ocf:linbit:drbd drbd_resource=greengrass \ op monitor interval=15s role=Promoted \ op monitor interval=30s role=Unpromoted
一度に 1 つのインスタンスのみがプライマリになるように、リソースを昇格可能として設定します。クラスター内のインスタンス数clone-maxに設定します。
sudo pcs resource promotable drbd-greengrass \ promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true
ファイルシステムリソースをアタッチする
すべての AWS IoT Greengrass V2 リソースは に保存されます/greengrass/v2。このステップでは、昇格されたインスタンスのそのパスに DRBD デバイスをマウントするように Pacemaker に指示します。これにより、フェイルオーバー中に AWS IoT Greengrass V2 データディレクトリがレプリケートされ、使用可能になります。
ファイルシステムリソースを無効な状態で作成します。すべての制約が設定された後で有効にします。
sudo pcs resource create fs_greengrass Filesystem \ device="/dev/drbd0" \ directory="/greengrass/v2" \ fstype="ext4" \ op start timeout=15s \ op stop timeout=15s \ --disabled
リソースの検証
リソースが作成され、すべてのインスタンスに伝達されていることを確認します。
sudo pcs status
AWS IoT Greengrass V2 systemd リソースのプロビジョニングとアタッチ
-
プロビジョニング AWS IoT Greengrass V2。以前に DRBD デバイスをアンマウントしたため、メンテナンスモードを有効にし、プロビジョニング用に再マウントします。
# Enable maintenance mode to prevent Pacemaker from interfering sudo pcs property set maintenance-mode=true # Check which node Pacemaker promoted to Primary sudo pcs status | grep drbd-greengrass # On the Promoted node, mount the DRBD device sudo mount /dev/drbd0 /greengrass/v2自動プロビジョニングを使用してプライマリインスタンス AWS IoT Greengrass V2 でプロビジョニングします。「自動リソースプロビジョニングを使用して AWSAWS IoTAWS IoT Greengrass V2 Core ソフトウェアをインストールする」の手順に従います。
AWS IoT Greengrass V2 が
/greengrass/v2ディレクトリ (DRBD マウントパス) にインストールされていることを確認します。プロビジョニング後、デバイスをアンマウントし、メンテナンスモードを無効にします。sudo umount /greengrass/v2 sudo pcs property set maintenance-mode=false -
AWS IoT Greengrass V2 サービスを無効にして、Pacemaker が systemd の代わりに管理できるようにします。
sudo systemctl disable greengrass sudo systemctl stop greengrass -
すべてのスタンバイインスタンスにランタイムの前提条件をインストールします。 AWS IoT Greengrass V2 には、自動プロビジョナーが DRBD レプリケートディレクトリの外部にインストールする Java およびその他の依存関係が必要です。各スタンバイインスタンスに同じ JDK バージョンをインストールします。前提条件の完全なリストについては、「 AWS IoT Greengrass V2 の要件」を参照してください。
-
他のインスタンスに systemd unit ファイルを作成します。 AWS IoT Greengrass V2 systemd unit ファイルをスタンバイインスタンスにコピーして、Pacemaker がフェイルオーバー中に任意のインスタンスでサービスを開始できるようにします。
# On the primary instance, view the unit file location systemctl show -p FragmentPath greengrassそのファイルを他のインスタンスで同じパスにコピーします。次に、新しいユニットファイルを認識するように、各スタンバイインスタンスに systemd を再ロードします。
# On each standby instance sudo systemctl daemon-reload -
AWS IoT Greengrass V2 リソースをアタッチします。
sudo pcs resource create greengrass systemd:greengrass \ op monitor interval=10s \ op start timeout=60s \ op stop timeout=60s \ --disabled
リソース制約を作成する
Pacemaker がフェイルオーバー中に正しい順序でリソースを管理するように、制約の順序を作成します。
sudo pcs constraint order promote drbd-greengrass-clone then start fs_greengrass sudo pcs constraint colocation add fs_greengrass with Promoted drbd-greengrass-clone score=INFINITY sudo pcs resource group add greengrass-group fs_greengrass greengrass sudo pcs constraint location greengrass-group prefersinstance1=200
制約が設定されるようにリソースを有効にします。
sudo pcs resource enable fs_greengrass sudo pcs resource enable greengrass
リソース制約の最終状態を確認します。
sudo pcs constraint show
出力には、次の制約が表示されます。
-
Location Constraints –
greengrass-groupリソースグループはプライマリインスタンスを優先します。 -
コロケーション制約 – 昇格された で
fs_greengrass実行されdrbd-greengrass-clone、 でgreengrass実行されますfs_greengrass。 -
順序の制約 – DRBD はファイルシステムの起動前に昇格し、ファイルシステムの起動前に昇格します AWS IoT Greengrass V2。
フェイルオーバーを検証する
フェイルオーバーをシミュレートして、セットアップが機能することを確認します。
-
初期状態を確認します。 AWS IoT Greengrass V2 がプライマリインスタンスで実行されていることを確認します。
sudo pcs status -
プライマリインスタンスの障害をシミュレートします。プライマリノードをスタンバイモードにして、リソースの移行をトリガーします。
sudo pcs node standbyprimary-node-name -
フェイルオーバーを確認します。スタンバイインスタンスで、クラスターのステータスを確認します。DRBD、ファイルシステム、 AWS IoT Greengrass V2 リソースがスタンバイインスタンスで実行されているはずです。
sudo pcs status -
障害が発生したインスタンスを復旧します。
sudo pcs node unstandbyprimary-node-nameノードをオンラインに戻すと、クラスターはスタンバイインスタンスとして再結合されます。フェイルオーバー中に昇格されたインスタンスは、プライマリインスタンスのままです。
トラブルシューティング
リソースが失敗状態になった場合は、次のコマンドを使用してリソースをクリーンアップして再起動できます。
sudo pcs resource cleanup