ヘッダーをスキップ

Oracle Application Server 高可用性ガイド
10g リリース2(10.1.2)
B15817-04
目次
目次
索引
索引

戻る 次へ

2
Oracle Application Server 高可用性フレームワーク

第1章では一般的な高可用性の概要について説明しましたが、この章では、Oracle Application Serverがそのすべてのコンポーネントとサービスの高可用性を確保するために提供する機能、サービスおよび環境の特定のセットについて説明します。この章の項は次のとおりです。

2.1 冗長アーキテクチャ

Oracle Application Serverは、同じワークロードをサポートする複数のインスタンスに対するサポートを提供することによって冗長性を実現します。これらの冗長構成では、分散ワークロードまたはフェイルオーバー設定、あるいはその両方によって高可用性を実現します。

Oracle Application Serverでは、Oracle Application Serverシステムのエントリ・ポイント(コンテンツ・キャッシュ)からバック・エンド・レイヤー(データソース)までの、リクエストが通過するすべての層を冗長に構成できます。構成は、OracleAS Clusterを使用したアクティブ/アクティブ構成にすることも、OracleAS Cold Failover Clusterを使用したアクティブ/パッシブ構成にすることもできます。

次の項では、これらの構成の基礎について説明します。

2.1.1 Oracle Application Serverのアクティブ/アクティブ構成: Oracle Application Server Cluster

Oracle Application Serverは、OracleAS Clusterを使用して、そのすべてのコンポーネントに対してアクティブ/アクティブ冗長モデルを提供します。OracleAS Clusterでは、複数のOracle Application Serverインスタンスが同じアプリケーション・ワークロードを処理するように構成されます。これらのインスタンスは、同一マシン上または異なるマシン上に配置できます。

アクティブ・インスタンスのフロントエンドには、外部ロード・バランサを配置し、アクティブ・インスタンスのいずれかにリクエストをリダイレクトするか、アドレス・リストなどその他のアプリケーションレベルの構成を配置してリクエストを分散することができます。

OracleAS Cluster構成の最も一般的なプロパティは次のとおりです。

OracleAS Cluster構成のメリットは次のとおりです。

一般的に、OracleAS Clusterという用語は、Oracle Application Serverインスタンス・レベルでのクラスタリングを意味します。ただし、クラスタリングされているインスタンスの特定のタイプを示す必要がある場合、このドキュメントではOracleAS Cluster(タイプ)を使用してそのクラスタ・ソリューションを明確にします。たとえば、次のように使用します。

2.1.2 Oracle Application Serverのアクティブ/パッシブ構成: Oracle Application Server Cold Failover Cluster

Oracle Application Serverは、OracleAS Cold Failover Clusterを使用して、そのすべてのコンポーネントに対してアクティブ/パッシブ・モデルを提供します。OracleAS Cold Failover Cluster構成では、複数のアプリケーション・サーバー・インスタンスが、同じアプリケーション・ワークロードを処理しますが、アクティブなインスタンスは常に1つになるように構成されます。これらのインスタンスは、同一マシン上または異なるマシン上に配置できます。

OracleAS Cold Failover Cluster構成の最も一般的なプロパティは次のとおりです。

OracleAS Cold Failover Cluster構成のメリットは次のとおりです。

一般的に、OracleAS Cold Failover Clusterという用語は、Oracle Application Serverインスタンス・レベルでのクラスタリングを意味します。ただし、クラスタリングされているインスタンスの特定のタイプを示す必要がある場合、このドキュメントではOracleAS Cold Failover Cluster(タイプ)を使用してそのクラスタ・ソリューションを明確にします。たとえば、次のようになります。

Oracle Application Serverシステムのエントリ・ポイント(コンテンツ・キャッシュ)からバック・エンド・レイヤー(データソース)までの、クライアント・リクエストが通過するすべての層を、OracleAS Clusterを使用したアクティブ/アクティブ構成またはOracleAS Cold Failover Clusterを使用したアクティブ/パッシブ構成のいずれかで冗長に構成できます。

2.2 Oracle Application Serverにおける高可用性サービス

Oracle Application Serverは、そのスタック全体の高可用性をサポートするための様々な機能およびトポロジを提供します。これには、OracleAS中間層およびOracleAS Infrastructure層の両方にわたるソリューションが含まれます。

この項では、Oracle Application Serverの次の高可用性サービスについて説明します。

2.2.1 プロセス障害の検出と自動再起動

Oracle Application Serverインスタンスは、クライアント・リクエストを処理する多数の様々な実行中のプロセスで構成されています。高可用性の確保とは、これらのプロセスがすべてスムーズに実行され、リクエストが処理されると同時に、予期しないハングや障害が発生しないことを意味します。

プロセスが適切な順序で起動されるように(それが依存している他のプロセスが正常に起動された後にのみ起動されるように)、これらのプロセスの相互依存性を管理することも必要です。

Oracle Application Serverは、Oracle Process Manager and Notification Server(OPMN)を使用してプロセス・レベルでの高可用性と管理サービスを実現します。

2.2.1.1 Oracle Process Manager and Notification Serverを使用したプロセス管理

OPMNには次の機能があります。

2.2.1.1.1 OPMNを使用した自動化されたプロセス管理

OPMNは、次のOracle Application Serverプロセスを明示的に管理するために使用できます。

さらに、OPMNによって、前述のコンポーネントに依存するどのアプリケーションも暗黙的に管理されます。たとえば、OC4Jの下で実行されるどのJ2EEアプリケーションもOPMNによって管理されます。

OPMNは拡張可能で、ロード環境情報、停止プロシージャ、および障害の検出と再起動のメソッドを含むカスタム・プロセスに関する情報を追加する機能を提供します。

2.2.1.1.2 OPMNを使用した分散プロセス制御

OPMNでは、ローカルOracle Application Serverインスタンス上のプロセスを管理できますが、様々なインスタンス上で実行されるOPMNデーモンも連動することによって分散プロセスの管理と制御を実現できます。

たとえば、1つのマシンで発行されたコマンドを使用して、すべてのローカルおよびリモートOracle Application Serverインスタンスで、すべてのプロセスまたは特定のプロセス・タイプを起動できます。

OPMNは、次の2つの主要コンポーネントで構成されています。

2.2.2 構成管理

コンポーネントの高可用性を管理し、確実なものとするためには、プロセスを管理するだけでなく、これらのプロセスの構成情報をローカルおよび一連のOracle Application Serverインスタンス全体にわたって管理します。

2.2.2.1 Distributed Configuration Managementを使用した構成管理

Distributed Configuration Management(DCM)は、複数のOracle Application Serverインスタンスを1つのインスタンスとして作成および管理できる管理フレームワークです。複数のインスタンスによって、Oracle Application Serverは大量の通信を確実に処理できるようになります。これは、複数のインスタンスにワークロードが分散されるためです。

DCMによって次のことが可能になります。

DCMによって、複数のOracleASインスタンスの構成を、それらが単一のOracle Application Serverインスタンスであるかのようにアーカイブ、インポート、エクスポートおよび同期化できます。この管理機能を実現するために、DCMではOracle Application Serverインスタンスの構成に関する情報がファイルベースまたはOracleAS Metadata RepositoryというOracleデータベースベース・リポジトリに保持されます。

OracleAS Metadata Repositoryには、次のものが保持されます。

2.2.2.1.1 DCMを使用した構成の同期化と管理

DCMを使用すると、次のOracle Application Serverコンポーネントおよびアプリケーションの構成情報を管理できます。

これらのコンポーネントごとの構成情報が、各OracleASインスタンスのメタデータ・リポジトリに格納されます。OracleASインスタンスをDCMで管理すると、構成情報を次のように操作できます。

2.2.2.1.2 DCMを使用した分散アプリケーションのデプロイ

OracleのDistributed Configuration Managementツールであるdcmctlによって、OracleASインスタンスのクラスタ全体で構成情報を同期化できます。これには、そのクラスタの1つのインスタンスに新しいJ2EEアプリケーションをデプロイし、その後、そのクラスタの各メンバーに同じアプリケーションが自動的にデプロイされる機能が含まれます。

このようにアプリケーションをデプロイすると、その後、そのクラスタ内のどのインスタンスもそのアプリケーションに対するリクエストを受信して処理できます。

2.2.3 状態レプリケーション

分散アプリケーションのメリットの1つは、複数の冗長プロセスを設定し、それらすべてで同じリクエストを処理できることです。これらのアプリケーション・プロセスの1つが使用不可になった場合、別のアプリケーション・プロセスでリクエストを処理できます。

アプリケーションによっては、Oracle Application Serverが、連続したリクエスト間のステートフル情報を保持することが必要な場合があります。これらのリクエストの透過的なフェイルオーバーを実現するには、複数のプロセス間でこのアプリケーション状態を再作成する必要があります。Oracle Application Serverでは、OracleAS Cluster(OC4J)によってJ2EEアプリケーションでの状態のレプリケーションが可能です。OracleAS Cluster(OC4J)では、いくつかのプロセスが連動して、同じJ2EEアプリケーションを実行し、それによって作成された状態がレプリケートされます。これによって、クラスタ内のインスタンス間でのリクエストの透過的なフェイルオーバーが可能になります。J2EEアプリケーションでは、通常、2つの異なるタイプの状態が保持されます。HTTPセッション状態(サーブレットおよびJSPによって更新される)とステートフル・セッションEJB状態(ステートフル・セッションEJBインスタンスによって更新される)です。OracleAS Cluster(OC4J)ではどちらのレプリケーションも可能です。

関連項目

『Oracle Application Server Containers for J2EEユーザーズ・ガイド』の「OC4Jのクラスタリング」 

2.2.4 サーバーのロード・バランシングとフェイルオーバー

ロード・バランシングで、複数のプロセスにリクエストを分散できます。

ソフトウェアまたはハードウェアの外部ロード・バランサの機能は次のとおりです。

2.2.4.1 Oracle Application Serverで提供される内部ロード・バランシング・メカニズム

Oracle Application Serverシステムのコンポーネントと通信するための様々なロード・バランシング・メカニズムがあります。ロード・バランシングは次の部分で実行されます。

Oracle Application Serverのすべてのサブ層は、次のように次の層との間で確立する接続の障害を管理できます。

2.2.4.2 外部ロード・バランサ

アクティブ/アクティブ構成の多数のOracle Application Serverインスタンス間でリクエストをロード・バランシングするために、オラクル社では外部ロード・バランサの使用をお薦めします。

いくつかのOracle Application Serverインスタンスを連動するようにグループ化すると、それらはシステムに対する単一の仮想エントリ・ポイントのように動作し、複数インスタンスの構成が隠されます。リクエストはクラスタ内のどのアプリケーション・サーバー・インスタンスでも処理できるので、外部ロード・バランサは、クラスタ内の任意のインスタンスにリクエストを送信できます。管理者は、追加のアプリケーション・サーバー・インスタンスを導入することにより、システムの能力を高めることができます。これらのインスタンスを別々のノードにインストールすれば、ノードの障害に備えて冗長性を確保できます。

Oracle Application Serverインスタンスとともに使用可能な外部ロード・バランサには様々なタイプがあります。表2-1に、これらのタイプの概要を示します。

表2-1    外部ロード・バランサのタイプ 
ロード・バランサのタイプ  説明 

ハードウェア・ロード・バランサ 

ハードウェアのロード・バランシングでは、Oracle Application ServerインスタンスのグループまたはOracleAS Web Cacheの前面にBig-IPやAlteonなどのハードウェア・ロード・バランサを配置します。ハードウェア・ロード・バランサは、クライアントには透過的な方法で、Oracle HTTP ServerまたはOracleAS Web Cacheのインスタンスにリクエストをルーティングします。 

ソフトウェア・ロード・バランサ 

ソフトウェア・ロード・バランサでは、1つのアプリケーション・サーバーに対する複数のコールをインターセプトして、これらのリクエストを冗長なコンポーネントにルーティングするプロセスが使用されます。 

Linux用LVSネットワーク・ロード・バランサ 

一部のLinuxオペレーティング・システムでは、オペレーティング・システムを使用してネットワーク・ロード・バランシングを実行できます。 

Windowsネットワーク・ロード・バランサ(Oracle Application ServerのWindowsバージョンに適用) 

一部のWindowsオペレーティング・システムでは、オペレーティング・システムを使用してネットワーク・ロード・バランシングを実行できます。たとえば、Microsoft Advanced Serverでは、NLB機能を使用して、同じ仮想IPアドレスまたはMACアドレスを共有している異なるマシンにリクエストを送信できます。これらのサーバー自体をオペレーティング・システム・レベルでクラスタリングする必要はありません。  

外部ロード・バランサの要件

オラクル社は、外部ロード・バランサを提供していません。他社の外部ロード・バランサを使用できます。

ご使用の外部ロード・バランサがOracle Application Serverと連動することを確認するには、外部ロード・バランサが表2-2に示されている要件を満たすことをチェックしてください。

この表に示されている要件の一部を満たす必要がない場合があります。外部ロード・バランサの要件は、考慮されるトポロジと、ロード・バランシングが実行されるOracle Application Serverコンポーネントによって異なります。

表2-2    外部ロード・バランサの要件 
外部ロード・バランサの要件  説明 

仮想サーバーおよびポートの構成 

外部のロード・バランサで仮想サーバー名とポートを構成できる必要があります。また、仮想サーバー名とポートは次の要件を満たす必要があります。

  • ロード・バランサで複数の仮想サーバーの構成を許可する必要があります。各仮想サーバーについて、ロード・バランサでは複数のポート上のトラフィック管理を構成できることが必要です。たとえば、OracleAS Cluster(Identity Management)の場合、HTTPまたはHTTPSトラフィックについてはある仮想サーバーとポートで、LDAPおよびLDAPSトラフィックについては別の仮想サーバーとポートで、ロード・バランサを構成する必要があります。

  • 仮想サーバー名はIPアドレスに関連付けられていて、DNSの一部である必要があります。クライアントは仮想サーバー名を使用して外部ロード・バランサにアクセスできることが必要です。

 

永続性または持続性 

Oracle Application Serverのコンポーネントによっては、外部ロード・バランサで永続性または持続性が使用されるものがあります。次に例を示します。

  • Oracle Delegated Administration Servicesの場合、外部ロード・バランサにHTTPトラフィックのためのCookieの永続性を構成する必要があります。具体的には、/oiddas/で始まるURIに対するCookieの永続性を設定する必要があります。これは、Oracle Delegated Administration ServicesのURIです。Cookieベースの永続性の設定を強くお薦めします。

    外部ロード・バランサによってURIレベルでのCookieの永続性の設定が許可されない場合は、すべてのHTTPトラフィックに対するCookieの永続性を設定します。どちらの場合も、ブラウザ・セッションが期限切れになったときにCookieが期限切れになるように設定します。詳細は、外部ロード・バランサのドキュメントを参照してください。

  • Oracle Internet Directoryに関しては、外部ロード・バランサに永続性を設定しないでください。

  • OracleAS Single Sign-Onに関しては、永続性を設定する必要はありません。ただし、Oracle HTTP Serverと互換性のある永続性または持続性を設定する場合があります。

  • OracleAS Portalの場合は、OracleAS Web Cacheに対してCookieベースの永続性を有効にします。

 

リソースの監視、ポートの監視およびプロセス障害の検出 

通知などの方法を使用してサービスおよびノードの障害を検出するように、またOracle Net以外のトラフィックを障害の発生したノードに送ることを停止するように、外部ロード・バランサを設定する必要があります。ご使用の外部ロード・バランサに、障害の自動検出機能がある場合は、それを使用してください。

たとえば、OracleAS Cluster(Identity Management)の場合、外部ロード・バランサで監視する必要のある特定のコンポーネントは、Oracle Internet Directory、OracleAS Single Sign-OnおよびOracle Delegated Administration Servicesです。これらのコンポーネントを監視するには、次のプロトコルのモニターを設定します。

  • LDAPおよびLDAPSリスニング・ポート

  • HTTPおよびHTTPSリスニング・ポート(配置のタイプによって異なる)

これらのモニターでは、サービスを監視するためにそれぞれのプロトコルを使用する必要があります。つまり、LDAPポートにはLDAPを、LDAP SSLポートにはLDAP over SSLを、そしてOracle HTTP ServerのポートにはHTTPまたはHTTPS(あるいはその両方)を使用します。ご使用の外部ロード・バランサでこれらのモニターが提供されていない場合は、外部ロード・バランサのドキュメントで、利用できないサービスへの受信リクエストのルーティングを自動停止するよう外部ロード・バランサを設定する最善の方法を確認してください。 

ネットワーク・アドレス変換(NAT) 

ロード・バランサには、クライアントからOracle Application Serverノードへのトラフィックをルーティングするためにネットワーク・アドレス変換(NAT)を実行する機能が必要です。これは具体的に、OracleAS Portalのデプロイに必要です。そこでは、OracleAS Portalノード内からロード・バランサの仮想サーバーに送信されたリクエスト(Parallel Page Engine(PPE)のループバックやキャッシュ無効化などのリクエスト)に対して、NATの有効化をロード・バランサで許可する必要があります。 

フォルト・トレラント・モード 

ロード・バランサをフォルト・トレラント・モードになるように構成することを強くお薦めします。 

その他 

トラフィックの転送先のバックエンド・サービスが使用できない場合はコール元のクライアントにただちに戻すようロード・バランサの仮想サーバーを構成することを強くお薦めします。この方法は、クライアント・マシンのTCP/IP設定に基づいてタイムアウト後にクライアントを切断するよりも優れています。 

図2-1は、Oracle Application Serverでのハードウェア・ロード・バランシング・ルーターの配置例を示しています。

図2-1    Oracle Application Serverでのロード・バランシング・ルーターの配置例


画像の説明

ロード・バランシングでは、アクセス・ポイントの提供によってスケーラビリティが向上します。このアクセス・ポイントを通じて、使用可能な多数のインスタンスのいずれかにリクエストがルーティングされます。外部ロード・バランサが機能しているグループにインスタンスを追加すれば、ユーザーの追加に対応できます。

ロード・バランシングでは、最も使用可能度が高いインスタンスにリクエストをルーティングすることにより、可用性が向上します。あるインスタンスが停止した場合、または著しくビジーである場合、外部ロード・バランサは別のアクティブなインスタンスにリクエストを送信できます。

関連項目

 

2.2.5 バックアップとリカバリ

システム・コンポーネントのデータ損失からの保護は、高可用性環境の保持に不可欠です。定期的にすべてのOracle Application Server環境の完全なバックアップを行うようにしてください。

Oracle Application Server環境の完全なバックアップには、次のものが含まれます。

2.2.5.1 Oracle Application Server Backup and Recovery Tool

Oracleインストールで最も頻繁に変更される重要なファイルは、構成ファイルとデータ・ファイルです。オラクル社では、これらの構成ファイルおよびデータ・ファイルのバックアップのためにOracle Application Server Backup and Recovery Tool(OracleAS Backup and Recovery Tool)を提供しています。

OracleAS Backup and Recovery Toolは、Perlスクリプトであり、関連構成ファイルです。このツールを使用して、次のタイプのファイルをバックアップおよびリカバリできます。

OracleAS Backup and Recovery Toolは、Oracle Application Serverをインストールしたときにデフォルトでインストールされます。このツールは、$ORACLE_HOME/backup_restoreディレクトリにインストールされます。

OracleAS Backup and Recovery Toolでは、次のインストール・タイプがサポートされています。

2.2.6 障害時リカバリ

障害時リカバリとは、自然災害またはそれ以外の災害によるサイトの壊滅的な障害からシステムをどのように回復できるのかを指します。さらに、システムの計画停止の管理方法も障害時リカバリに含まれます。障害時リカバリを必要とするほとんどの状況において、障害の解決には個々のハードウェアやサブコンポーネントのレプリケーションだけでなく、サイト全体を対象としたレプリケーションを行う必要があります。これは、Oracle Application Server Disaster Recovery(OracleAS Disaster Recovery)ソリューションについても同様です。

最も一般的な構成では、本番サイトをミラー化するスタンバイ・サイトを作成します。通常の運用では、本番サイトがクライアント・リクエストを積極的に処理します。スタンバイ・サイトは、本番サイトがホスティングするアプリケーションおよびコンテンツをミラー化するために維持されています。

2.2.6.1 Oracle Application Server Guard

OracleAS Guardによって、対応するスタンバイ・サイトで本番サイトのリストアが自動的に行われます。完全なOracle Application Server環境を災害から保護するために、OracleAS Guardによって次の操作が実行されます。


戻る 次へ
Oracle
Copyright © 2005, 2007 Oracle.

All Rights Reserved.
目次
目次
索引
索引