このトピックでは、バージョン 9.0.0 以降を実行しているアプライアンスのデータベース フェイルオーバー機能について説明します。これらのアプライアンスでは、サービス プロバイダ アプライアンスが予期せずにシャットダウンした場合を除いて、フェイルオーバーは完全に自動化されていますが、その場合は手動プロセスが残っています。
注: このトピックは、バージョン 9.0.0 以降を実行しているアプライアンスにのみ適用されます。古いアプライアンスに関連する情報については、
データベース フェイルオーバー - レガシー アプライアンス を参照してください。
自動フェイルオーバー
自動フェイルオーバー機能には、次のものが含まれます。
- 単一のデータソース接続 - すべてのアプライアンスで、新しい pgbouncer サービスを介してプロキシされる単一のデータソース接続が使用されるようになりました。pgbouncer は、基盤となる postgres データベースへの接続を維持しながら、使用するアプライアンス サービスの単一の接続ポイントを提供する接続プーラーです。このサービスは、すべてのフェイルオーバーとマスターの移行も処理します。新しいマスター データベースを参照するように自動的に更新され、マスター間のシームレスな移行が可能になります。
- アプライアンスのシャットダウンまたは再起動時にマスター データベースの切り替えを制御 - ゲストが開始するシャットダウンまたは現在のデータベース マスターの再起動中に、マスター ロールは制御された方法で HA ペアの他のアプライアンスに移行されます。これは、主に Blast (Web) ポータルを介したデスクトップ接続に影響しますが、アプライアンスの動作がわずかに中断されるだけです。Horizon Client を介して作成されたデスクトップ接続は影響を受けません。また、horizonadmin を短期間使用できない場合もあります。また、切り替え中にデスクトップ接続を要求しているユーザーには、使用可能なデスクトップがないことを示すエラーが表示されることがありますが、その後すぐに再試行してデスクトップに接続できます。
- テナント アプライアンスで予期しない障害が発生した場合のデータベース マスターの自動フェイルオーバー - マスターの障害が自動的に検出され、続いてサービス プロバイダ アプライアンスへの要求が発生して、アプライアンスが実際に停止していることを確認します。フェイルオーバー プロセスは 3 分の遅延後に開始されます。この新しいフェイルオーバー プロセスは、過去のフェイルオーバー プロセスよりも中断が小さいため、slony クラスタを通常のレプリケーション状態のままにします。これにより、フェイルオーバーが発生した後に slony 再初期化は必要なくなります。
これらの機能は、以下で説明するサービスでサポートされています。
サービス | 説明 | ログの場所 | 注 |
---|---|---|---|
pgbouncer | platform services と postgres 間のデータベース接続を仲介する接続プーラー。 | /var/log/pgbouncer/ |
|
Dbmonitor | 次のような監視サービスを実行します。
|
/var/log/dbmonitor/ | |
switchover | シャットダウン時にスクリプトが実行され、switchover アクションが実行されます。 | /var/log/desktone/slony-services | |
resubscribe | 起動時にスクリプトが実行され、resubscribe アクションが実行されます。 | /var/log/desktone/slony-services |
サービス プロバイダ アプライアンスの手動フェイルオーバー
サービス プロバイダ アプライアンスで予期しないシャットダウンが発生した場合は、他のサービス プロバイダ アプライアンスで次の手順を実行して、手動フェイルオーバーを実行できます。
- failover-slony-master スクリプト(/usr/local/desktone/scripts/ にある)を root として実行します。
failover-slony-master <database type> '<database password>'
ここで、<database type> は fdb、edb、または avdb です。 - pgbouncer.ini ファイルが現在のアプライアンスのフロントエンド IP アドレスを参照していることを確認します。
/usr/local/desktone/scripts# grep '<IP address>' /etc/pgbouncer/pgbouncer.ini
- pgbouncer サービスを再ロードします。
service pgbouncer reload
- slony-status を実行してマスター ステータスとレプリケーションを確認します。
/usr/local/desktone/scripts# slony-status <org #>