1つまたは2つの仮想IP (VIP)アドレスで表されたフェイルオーバー・グループ内で2つのOracle Traffic Directorインスタンスを組み合せることによって、Oracle Traffic Directorインスタンスの高可用性を確保できます。フェイルオーバー・グループ内の両方のホストでは、同じオペレーティング・システム・バージョンを実行し、同一のパッチおよびサービス・パックを使用し、同じ構成のOracle Traffic Directorインスタンスを実行する必要があります。
注意:
|
図14-1は、アクティブ-パッシブ・モードでの高可用性を実現するためにデプロイされたOracle Traffic Directorを示しています。
図14-1 Oracle Traffic Directorネットワーク・トポロジ: アクティブ-パッシブ・フェイルオーバー・モード
図14-1に示されたトポロジは、2つのOracle Traffic Directorインスタンス(otd_1
とotd_2
)で構成され、アクティブ-パッシブ・フェイルオーバー・ペアを形成し、クライアント・リクエストに対し単一の仮想IPアドレスを提供します。アクティブなインスタンス(この例ではotd_1
など)がリクエストを受信すると、リクエストの送信先のサーバー・プールを特定し、そのサーバー・プールに定義されたロード分散メソッドに基づいてプール内のいずれかのサーバーにリクエストを転送します。
図14-1では、バック・エンドに2つのサーバー・プールのみが示されていますが、複数のサーバー・プール内のサーバーにリクエストをルーティングするようにOracle Traffic Directorを構成できます。
ここで説明したアクティブ-パッシブ設定では、フェイルオーバー・グループ内の1つのノードが、どの時点でも冗長となります。リソースの使用率を向上するには、アクティブ-アクティブ・モードの2つのOracle Traffic Directorインスタンスを2つの仮想IPアドレスを使用して構成できます。各インスタンスは1つの仮想IPアドレスで受信したリクエストに応じ、もう1つのインスタンスをバックアップします。
この項には次のトピックが含まれます:
Oracle Traffic Directorでは、LinuxのkeepalivedやSolarisのvrrpd (ネイティブ)のような、Virtual Routing Redundancy Protocol (VRRP)実装を使用することによって、フェイルオーバー・グループ内のインスタンス間におけるフェイルオーバーをサポートしています。
Keepalived v1.2.2はOracle Linuxに搭載されているため、別途インストールまたは構成する必要はありません。Keepalivedは、GNU General Public Licenseに基づいてライセンスされています。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で |
マスター・ルーター・プロセスが実行されているノードに障害が発生した場合、2つ目のノード上のルーター・プロセスは約3秒の待機後マスターがダウンしていると判断し、VIPをそのノードに割り当てることによってマスターのロールを引き継ぎます。最初のノードがもう一度オンラインになった場合は、そのノード上のルーター・プロセスがマスター・ロールを引き継ぎます。VRRPの詳細は、http://datatracker.ietf.org/doc/rfc5798
のRFC 5798を参照してください。
フェイルオーバー・グループでは、次のモードで動作するOracle Traffic Directorインスタンスを構成できます:
アクティブ-パッシブ: 1つのVIPアドレスが使用されます。フェイルオーバー・グループ内の1つのインスタンスがプライマリ・ノードとして指定されます。プライマリ・ノードに障害が発生すると、各リクエストが、同じVIPを通じてもう一方のインスタンスにルーティングされます。
アクティブ-アクティブ: このモードでは2つのVIPアドレスが必要です。フェイルオーバー・グループ内の各インスタンスは、プライマリ・インスタンスおよびバックアップとして指定され、それぞれにVIPアドレスが1つずつ割り当てられます。各リクエストは両方のインスタンスによって同時に受信されます。
次の図は、アクティブ-アクティブおよびアクティブ-パッシブのフェイルオーバー・モードを表しています。
この項では、フェイルオーバー・グループを作成してOracle Traffic Directorインスタンスの高可用性ペアを実装する方法を説明します。フェイルオーバーの動作方法の詳細は、14.2.1項「フェイルオーバーの動作」を参照してください。
管理コンソールまたはCLIのいずれかを使用して、フェイルオーバー・グループを作成できます。
始める前に
フェイルオーバー・グループに割り当てる一意のVIPアドレスを決定します。
VIPアドレスは、フェイルオーバー・グループ内のノードと同じサブネットに属している必要があります。
クライアントはこれらのVIPアドレスにアクセスできる必要があります。
注意: Oracle Traffic Directorインスタンスのアクティブ-アクティブ・ペアを構成するには、同じインスタンスを含む2つのフェイルオーバー・グループを作成する必要がありますが、その際、フェイルオーバー・グループごとに異なるVIPアドレスを割り当て、プライマリ・ノードとバックアップ・ノード・ロールを逆にします。 |
VIPを管理するインタフェースのネットワーク接頭辞を特定します。このネットワーク接頭辞は、次の例のようなClassless Inter-Domain Routing (CIDR)形式で表されたサブネット・マスクです。
256個のアドレスを含むサブネット(8ビット)内のIPv4 VIPアドレスの場合、サブネット・マスク255.255.255.0
のCIDR表記は24
であり、この値は使用可能なIPv4アドレスの最大数(32ビット)から、指定されたサブネットのアドレス数(8ビット)を引くことによって計算できます。
同様に、4096個のアドレスを含むサブネット(12ビット)内のIPv4 VIPアドレスの場合、サブネット・マスク255.255.240.0
のCIDR表記は20
(=32
-12
)となります。
IPv6サブネットのサブネット・マスクのCIDR表記を計算するには、使用可能なIPv6アドレスの最大数である128ビットから、サブネットのアドレス空間のビット・サイズを引く必要があります。
ネットワーク接頭辞を指定しない場合、IPv4 VIPでは24
が、IPv6 VIPでは64
がデフォルトで想定されます。
フェイルオーバー・グループ内のプライマリ・ノードおよびバックアップ・ノードとして構成するOracle Traffic Director管理ノードを識別します。これらのノードは同じサブネットに属している必要があります。
ここで選択する管理ノードに、指定した構成に使用するOracle Traffic Directorインスタンスが存在している必要があります。
各ノードのネットワーク・インタフェースを識別します。
ネットワーク・インタフェースを指定しない場合、管理サーバーによって、指定したVIPで使用可能なネットワーク・インタフェースの検出が自動的に試行されます。現在ホスト上で稼働しているネットワーク・インタフェースごとに、管理サーバーによって、インタフェースのIPアドレスのネットワーク部が、指定したVIPのネットワーク部と比較されます。結果が一致した最初のネットワーク・インタフェースが、VIPのネットワーク・インタフェースとして使用されます。
この管理サーバーによる比較では、フェイルオーバー・グループ用に指定されたVIPがIPv4アドレスであるかIPv6アドレスであるかに応じて、それぞれIPv4アドレスまたはIPv6アドレスで構成されたホスト上のネットワーク・インタフェースのみが検証されます。
フェイルオーバー・グループを作成する構成では、リスナーのIPアドレスがアスタリスク(*
)またはVIPと同じアドレスであることを確認してください。それ以外の場合、VIPに送信されたリクエストが仮想サーバーにルーティングされません。
各フェイルオーバー・グループのルーターIDは一意である必要があります。ルーターIDを指定しない場合、最初のフェイルオーバー・グループについては255に設定されます。後続のフェイルオーバー・グループを作成するたびに、デフォルトのルーターIDは、254、253のように1つずつ減ります。
管理コンソールを使用したフェイルオーバー・グループの作成
管理コンソールを使用してフェイルオーバー・グループを作成するには、次の操作を行います:
2.3.2項「管理コンソールへのアクセス」の説明に従って、管理コンソールにログインします。
ページの左上隅にある「構成」ボタンをクリックします。
使用可能な構成のリストが表示されます。
フェイルオーバー・グループを作成する構成を選択します。
ナビゲーション・ペインで、「フェイルオーバー・グループ」を選択します。
フェイルオーバー・グループ・ページが表示されます。
「新規フェイルオーバー・グループ」をクリックします。
新規フェイルオーバー・グループ・ウィザードが表示されます。
画面上のプロンプトに従って、仮想IPアドレス、ネットワーク・インタフェース、管理ノードのホスト名など、前に決定した詳細を使用してフェイルオーバー・グループの作成を完了します。
フェイルオーバー・グループが作成されたら、新規フェイルオーバー・グループ・ウィザードの結果画面に、フェイルオーバー・グループの作成が成功したことを示すメッセージが表示されます。
結果画面で、「閉じる」をクリックします。
フェイルオーバー・グループ・ページに、作成したフェイルオーバー・グループの詳細が表示されます。
注意: この時点では、2つのノードはアクティブ-パッシブ・ペアになっています。これらをアクティブ-アクティブ・ペアに変更するには、同じ2つのノードを含む別のフェイルオーバー・グループを作成しますが、その際、異なるVIPを割り当て、プライマリおよびバックアップ・ロールを逆にします。 |
CLIを使用したフェイルオーバー・グループの作成
フェイルオーバー・グループを作成するには、create-failover-group
コマンドを実行します。
たとえば、次のコマンドでは、次の詳細でフェイルオーバー・グループが作成されます。
構成: soa
プライマリ・ノード: node1.example.com
バックアップ・ノード: node2.example.com
仮想IPアドレス: 10.229.227.80
VIPのネットワーク接頭辞: 指定されていないため、コマンドでは、ネットワーク接頭辞は24
(サブネット・マスク255.255.255.0
に相当)と見なされます
> tadm create-failover-group --config=soa --virtual-ip=10.229.227.80 --primary-node=node1.example.com --backup-node=node2.example.com
OTD-70201 Command 'create-failover-group' ran successfully.
注意: フェイルオーバー・グループを作成する際、インスタンスが存在するノード上で管理ノード・プロレスが非 |
これらをアクティブ-アクティブ・フェイルオーバーを有効にするには、同じ2つのノードを含む別のフェイルオーバー・グループを作成しますが、プライマリとバックアップ・ロールを逆にします。
create-failover-group
の詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照するか、--help
オプションを付けてコマンドを実行してください。
Oracle Traffic Directorでは、フェイルオーバー・グループの一部であるインスタンスを起動するとkeepalived
デーモンが自動的に起動され、インスタンスを停止するとデーモンが停止されます。keepalived
デーモンの構成パラメータは、フェイルオーバー・グループの一部である各インスタンスのconfig
ディレクトリにあるkeepalived.conf
というファイルに格納されます。インスタンスが存在するノード上で管理ノード・プロレスが非root
として実行されている場合は、これらのノードでroot
ユーザーとしてstart-failover
コマンドを実行する必要があります。これはフェイルオーバーを手動で開始するためです。このコマンドを実行しないとフェイルオーバーは開始しないため、高可用性を実現できません。start-failover
の詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照してください。
注意:
|
フェイルオーバー・グループを作成したら、それらをリストしたり、設定を表示したり、フェイルオーバー・グループのプライマリ・ノードを変更したり、プライマリ・ノードとバックアップ・ノードを切り替えたり、それらを削除したりすることができます。フェイルオーバー・グループのVIPまたは任意のプロパティを変更するには、フェイルオーバー・グループを削除してから新たに作成しなおす必要があることに注意してください。
管理コンソールまたはCLIを使用することによって、フェイルオーバー・グループを表示、変更および削除できます。
管理コンソールを使用したフェイルオーバー・グループの管理
管理コンソールを使用してフェイルオーバー・グループを表示、変更および削除するには、次の操作を行います:
2.3.2項「管理コンソールへのアクセス」の説明に従って、管理コンソールにログインします。
ページの左上隅にある「構成」ボタンをクリックします。
使用可能な構成のリストが表示されます。
フェイルオーバー・グループを管理する構成を選択します。
ナビゲーション・ペインで、「フェイルオーバー・グループ」を選択します。
フェイルオーバー・グループ・ページが表示されます。使用可能なフェイルオーバー・グループのリストが表示され、各フェイルオーバー・グループのプライマリ・ノードおよびバックアップ・ノードが示されます。
フェイルオーバー・グループのプロパティを表示するには、その仮想IPをクリックします。
プライマリ・ノードおよびバックアップ・ノードのホストを切り替えるには、「プライマリの切替え」ボタンをクリックします。結果のダイアログ・ボックスで、「OK」をクリックします。
フェイルオーバー・グループを削除するには、「削除」ボタンをクリックします。結果のダイアログ・ボックスで、「OK」をクリックします。
CLIを使用したフェイルオーバー・グループの管理
構成のフェイルオーバー・グループのリストを表示するには、次の例に示すようにlist-failover-groups
コマンドを実行します。
tadm> list-failover-groups --config=soa --verbose --all
virtual-ip primary-node backup-node
-------------------------------------------
10.229.231.254 node1.example.com node2.example.com
10.229.231.253 node2.example.com node1.example.com
フェイルオーバー・グループの現在の設定を表示するには、次の例に示すようにget-failover-group-prop
コマンドを実行します。
tadm> get-failover-group-prop --config=soa --virtual-ip=10.229.231.254
virtual-ip=10.229.231.254
backup-node=node2.example.com
network-prefix-length=21
router-id=255
primary-node=node1.example.com
primary-nic=eth0
backup-nic=eth0
フェイルオーバー・グループのプライマリとバックアップ・ノードを切り替えるには、set-failover-group-primary
コマンドを実行します。
たとえば、次のコマンドを実行すると、構成soa
のVIPアドレス10.228.12.250
で表されるフェイルオーバー・グループのプライマリ・ノードがapp2.example.com
に変更されます。
tadm> set-failover-group-primary --config=soa --virtual-ip=10.228.12.250 --primary-node=app2.example.com
OTD-70201 Command 'set-failover-group-primary' ran successfully.
注意: インスタンスが存在するノード上で管理ノード・プロレスが非 |
フェイルオーバー・グループを削除するには、次の例に示すように、delete-failover-group
コマンドを実行します。
tadm> delete-failover-group --config=soa --virtual-ip=10.228.12.250
OTD-70201 Command 'delete-failover-group' ran successfully.
注意: フェイルオーバー・グループを削除する際、インスタンスが存在するノード上で管理ノード・プロレスが非 |
この項で説明されたコマンドの詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照するか、--help
オプションを付けてコマンドを実行してください。
注意:
|