高可用性とは、必要なシステムまたはデバイスに対して、常にアクセス可能な状態を維持する能力のことです。高可用性アーキテクチャにより、サービスを中断することなく、ユーザーはシステムにアクセスできます。高可用性システムをデプロイすることで、システムの停止時間つまり使用不可の時間が最小化され、システムの稼働時間つまり使用可能な時間が最大化されます。
この項では、Oracle Traffic Directorインスタンス間でフェイルオーバーに対応するようにOracle Traffic Directorを構成する手順を説明します。次の項が含まれます:
Oracle Traffic Directorの高可用性ソリューションは、複数のインスタンスを作成し、そのインスタンス間の指定したVIPのIPフェイルオーバーを構成する機能を提供します。
Oracle Traffic Directorでは、高可用性ソリューションは、2つ以上のインスタンス間でIPフェイルオーバーを構成することで、指定した仮想IPアドレス(VIP)に冗長性を付与します。IPフェイルオーバーはフェイルオーバー・グループとして構成されます。これはVIP、プライマリとして指定された1つのインスタンスとバックアップ・インスタンスとして指定された1つ以上のインスタンスをグループ化したものです。 フェイルオーバーは、トラフィックを送信するクライアントおよびトラフィックを受信するOracle Traffic Directorインスタンスの両方に対して透過的です。
フェイルオーバー・グループでは、次のモードで動作するOracle Traffic Directorインスタンスを構成できます:
アクティブ-パッシブ: 1つのVIPアドレスが使用されます。フェイルオーバー・グループ内の1つのインスタンスがプライマリ・ノードとして指定されます。プライマリ・ノードに障害が発生すると、各リクエストが、同じVIPを通じてもう一方のインスタンスにルーティングされます。
アクティブ-アクティブ: 1つのVIPアドレスが使用されます。ノードのうちの1つはマスター・ノードであり、その他のノードはバックアップ・ノードです。VIPへの受信リクエストはOTDインスタンス間で分散されます。マスター・ノードでエラーが発生すると、最も優先度が高いバックアップ・ノードが次のマスター・ノードとして選択されます。
ここで説明したアクティブ-パッシブ設定では、フェイルオーバー・グループ内の1つのノードが、どの時点でも冗長となります。
Oracle Traffic Directorでは、LinuxのkeepalivedやSolarisのvrrpd (ネイティブ)のような、Virtual Routing Redundancy Protocol (VRRP)実装を使用することによって、フェイルオーバー・グループ内のインスタンス間におけるフェイルオーバーをサポートしています。
Keepalivedには、オリジン・サーバーのロード・バランシングやヘルス・チェックなど、他の機能も備わっていますが、Oracle Traffic DirectorではVRRPサブシステムのみを使用します。Keepalivedの詳細は、http://www.keepalived.org
を参照してください。
VRRPでは、なんらかの理由で最初のノードが使用できなくなったときにルーターによってあるノードから別のノードにVIPアドレスをフェイルオーバーする方法を指定します。このIPフェイルオーバーは、各ノード上で実行されているルーター・プロセスによって実装されます。2つのノードからなるフェイルオーバー・グループでは、現在VIPが割り当てられているノード上のルーター・プロセスがマスターと呼ばれます。マスターは、その存在を継続的に2つ目のノード上のルーター・プロセスに通知します。
注意:
フェイルオーバー・グループのメンバーとして構成されたOracle Traffic Directorインスタンスが存在するホスト上では、Oracle Traffic DirectorがKeepalivedの唯一のコンシューマである必要があります。そうでない場合、インスタンスの停止時間中にフェイルオーバーを有効にするためにOracle Traffic Directorでkeepalived
デーモンを起動および停止したときに、同じホスト上でkeepalived
を使用している他のサービスが中断される可能性があります。
マスター・ルーター・プロセスが実行されているノードに障害が発生した場合、2つ目のノード上のルーター・プロセスは約3秒の待機後マスターがダウンしていると判断し、VIPをそのノードに割り当てることによってマスターのロールを引き継ぎます。最初のノードがもう一度オンラインになった場合は、そのノード上のルーター・プロセスがマスター・ロールを引き継ぎます。VRRPの詳細は、http://datatracker.ietf.org/doc/rfc5798
のRFC 5798を参照してください。
Oracle Traffic Directorは、同じサブネットに属しているノード上にインスタンスをデプロイすることで、インスタンス間でのフェイルオーバーをサポートします。ノードの1つはアクティブ・ルーター・ノードとして選択され、残りのノードはバックアップ・ルーター・ノードです。すべてのOracle Traffic Directorインスタンス間のトラフィックが管理されます。
このソリューションでも、ロード・バランシングおよびフェイルオーバー・タスクを実行するためにKeepalived v 1.2.13とLinux Virtual Server(LVS)を使用します。さらに、次のパッケージが必要です。
ipvsadm (1.26以降)
iptables (1.4.7以降)
最初はすべてのノードがバックアップ・ノードとして構成され、それらのノードには異なる優先度が割り当てられます。最も優先度が高いノードがマスターとして選択され、その他のノードはバックアップ・ノードになります。マスター・ノードでエラーが発生すると、最も優先度が高いバックアップ・ノードが次のマスター・ノードとして選択されます。Keepalivedマスター・ノードはLVSのマスター・ノードでもあります。
Keepalivedは次のことを実行します。
マスター上の仮想IPを調査する
VIPのGratuitous ARPメッセージを送信する
LVSを構成する(ipvsadm)
他のノード上のKeepalivedのヘルス・チェックを行う
LVSは次のことを実行します。
Oracle Traffic Directorインスタンス間で負荷分散を行う
マルチキャストを介してバックアップ・ノードへの既存の接続情報を共有する。
各Oracle Traffic Directorインスタンス上のサービスの整合性を確認する。Oracle Traffic Directorインスタンスで障害が発生した場合、そのインスタンスはLVS構成から削除され、オンラインに戻ったら再度追加されます。
Oracle Traffic Directorの一般的なデプロイメント・トポロジは、単一ドメインに含まれる3ノード・インストールです。
WebLogic Server管理マシンには、Oracle Traffic DirectorがWebLogic ServerおよびJRFインストールと同じ場所に配置されています。これが、WebLogic Server管理サーバーをホストします。
他の2つのマシンには、WebLogic Serverバイナリのサブセットのみを持つOracle Traffic Directorスタンドアロン・インストールが含まれ、管理対象Oracle Traffic Directorドメインをホストします。
2つのOracle Traffic Directorインスタンスは一般に、フェイルオーバー・グループを形成することでVIP (仮想IP)に高可用性を提供します。
前提条件
オペレーティング・システム | 高可用性要件 | システム要件 |
---|---|---|
Linux |
アクティブ-アクティブ
|
|
Linux |
アクティブ-パッシブ
|
|
Solaris |
アクティブ-アクティブ |
サポート対象外 |
Solaris |
アクティブ-パッシブ
|
|
Windows |
アクティブ-アクティブ |
サポート対象外 |
Windows |
アクティブ-パッシブ |
サポート対象外 |
AIX |
アクティブ-アクティブ |
サポート対象外 |
AIX |
アクティブ-パッシブ |
サポート対象外 |
表記法
この章では、次のトークンを使用して同じデータを表します。
トークン | 説明 |
---|---|
|
フェイルオーバー・グループのプライマリ・インスタンスが実行されているマシンのホスト名。 |
|
フェイルオーバー・グループのバックアップ・インスタンスが実行されているマシンのホスト名。 |
|
Weblogic ServerコンソールでOTD_HOST_1に対応するマシンの作成時に指定された名前。 |
|
Weblogic ServerコンソールでOTD_HOST_2に対応するマシンの作成時に指定された名前。 |
|
フェイルオーバー・グループの作成に使用された仮想IP (OTD_HOST_1およびOTD_HOST_2と同じサブネット上)。 |
|
WebLogic Server管理が実行されているサーバーのホスト名。 |