Oracle Application Server 高可用性ガイド 10g リリース2(10.1.2) B15817-04 |
|
第1章では一般的な高可用性の概要について説明しましたが、この章では、Oracle Application Serverがそのすべてのコンポーネントとサービスの高可用性を確保するために提供する機能、サービスおよび環境の特定のセットについて説明します。この章の項は次のとおりです。
Oracle Application Serverは、同じワークロードをサポートする複数のインスタンスに対するサポートを提供することによって冗長性を実現します。これらの冗長構成では、分散ワークロードまたはフェイルオーバー設定、あるいはその両方によって高可用性を実現します。
Oracle Application Serverでは、Oracle Application Serverシステムのエントリ・ポイント(コンテンツ・キャッシュ)からバック・エンド・レイヤー(データソース)までの、リクエストが通過するすべての層を冗長に構成できます。構成は、OracleAS Clusterを使用したアクティブ/アクティブ構成にすることも、OracleAS Cold Failover Clusterを使用したアクティブ/パッシブ構成にすることもできます。
次の項では、これらの構成の基礎について説明します。
Oracle Application Serverは、OracleAS Clusterを使用して、そのすべてのコンポーネントに対してアクティブ/アクティブ冗長モデルを提供します。OracleAS Clusterでは、複数のOracle Application Serverインスタンスが同じアプリケーション・ワークロードを処理するように構成されます。これらのインスタンスは、同一マシン上または異なるマシン上に配置できます。
アクティブ・インスタンスのフロントエンドには、外部ロード・バランサを配置し、アクティブ・インスタンスのいずれかにリクエストをリダイレクトするか、アドレス・リストなどその他のアプリケーションレベルの構成を配置してリクエストを分散することができます。
OracleAS Cluster構成の最も一般的なプロパティは次のとおりです。
複数のインスタンスで、同じワークロードまたはアプリケーションの処理を行います。これらの構成では、それらが同じリクエストに対して完全に同一なレスポンスを配信することが保証されます。いくつかの構成プロパティを同一にし、ローカル・ホスト名情報などその他の構成プロパティをインスタンス固有にすることができます。
通常、1つのシステムに対して変更を行うと、それをアクティブ/アクティブ構成のその他のシステムに伝播することが必要になります。
可用性を最大にするために、アクティブ/アクティブ構成内の1つのOracle Application Serverインスタンスの停止が、その他のインスタンスによるリクエストの処理続行の能力に影響しないようにする必要があります。
OracleAS Cluster構成のメリットは次のとおりです。
アクティブ/アクティブ構成は、冗長構成です。他のインスタンスが同じリクエストの処理を続行できるので、1つのインスタンスの停止に対する耐性があります。
複数の同一に構成されたインスタンスによって、異なるマシンおよびプロセスにワークロードを分散させることができます。適切に構成されている場合、アプリケーションに対する需要の増大に伴って、新しいインスタンスを追加することもできます。
一般的に、OracleAS Clusterという用語は、Oracle Application Serverインスタンス・レベルでのクラスタリングを意味します。ただし、クラスタリングされているインスタンスの特定のタイプを示す必要がある場合、このドキュメントではOracleAS Cluster(タイプ)を使用してそのクラスタ・ソリューションを明確にします。たとえば、次のように使用します。
Oracle Application Serverは、OracleAS Cold Failover Clusterを使用して、そのすべてのコンポーネントに対してアクティブ/パッシブ・モデルを提供します。OracleAS Cold Failover Cluster構成では、複数のアプリケーション・サーバー・インスタンスが、同じアプリケーション・ワークロードを処理しますが、アクティブなインスタンスは常に1つになるように構成されます。これらのインスタンスは、同一マシン上または異なるマシン上に配置できます。
OracleAS Cold Failover Cluster構成の最も一般的なプロパティは次のとおりです。
アクティブ/パッシブ構成のパッシブOracle Application Serverインスタンスは、アクティブ・インスタンスと同じOracleバイナリ、構成ファイルおよびデータにアクセスします。
OracleAS Infrastructureのインストール時に、「仮想ホストの指定」画面で仮想ホスト名を指定できます。このOracleAS Infrastructure仮想ホスト名は、ハードウェア・クラスタまたはロード・バランサで管理可能で、中間層コンポーネントおよびOracleAS InfrastructureコンポーネントがOracleAS Infrastructureへのアクセスに使用する名前です。OracleAS Infrastructureが単一ノードのインストールであるか、OracleAS Cold Failover ClusterソリューションであるかまたはOracleAS Clusterソリューションであるかどうかは関係ありません。
仮想ホスト名は、仮想IPに関連付けられているホスト名です。OracleAS Infrastructureのシングル・システム・ビューを、ハードウェア・クラスタまたはロード・バランサを使用してOracle Application Server中間層に提示するために選択される名前です。この名前とIPのエントリは、サイトで使用されるDNSに追加する必要があります。これにより、中間層ノードでは、このエントリをローカルな/etc/hosts
ファイル(または等価なファイル)に追加せずにOracleAS Infrastructureに関連付けることができます。たとえば、ハードウェア・クラスタの2つの物理ホスト名がnode1.mycompany.com
とnode2.mycompany.com
であるとき、このクラスタのシングル・ビューをselfservice.mycompany.com
という名前で示すことができます。DNSでは、selfservice
がOracleAS Infrastructureの仮想IPアドレスにマップします。この仮想IPアドレスは、ハードウェア・クラスタを使用する場合、node1
とnode2
の間で浮動します。または、ロード・バランサを使用する場合、node1
とnode2
にマップします。その際、中間層は、どの物理ノードがアクティブで特定のリクエストを処理しているのかを認識しません。
Oracle Application Server中間層インストールの仮想ホスト名は指定できません。ただし、コールド・フェイルオーバー・クラスタの中間層におけるインストール後の構成手順に従って、ハードウェア・クラスタまたはロード・バランサを介して仮想ホスト名を使用することができます。Oracle Application Serverのインストレーション・ガイドを参照してください。
アクティブ/パッシブ構成には、アクティブ・インスタンスの障害を検出し、停止時間を最小限に抑えてパッシブ・インスタンスにフェイルオーバーするための一連のスクリプトとプロシージャも含まれています。
OracleAS Cold Failover Cluster構成のメリットは次のとおりです。
アクティブ・インスタンスになんらかの理由で障害が発生したか、オフラインにする必要がある場合はいつでも、同一に構成されたパッシブ・インスタンスが引き継ぐことができます。
アクティブ/パッシブ構成では、起動していてリクエストを処理しているのは1つのセットのプロセスのみです。通常、1つのアクティブ・インスタンスの管理には、一連のアクティブ・インスタンスの管理ほど手間がかかりません。
アクティブ/アクティブ構成に適していないアプリケーションもあります。アプリケーションの状態や、ローカルに保存されている情報に対する依存度が高いアプリケーションなどです。アクティブ/パッシブ構成では、リクエストを処理しているインスタンスは常に1つのみです。
一般的に、OracleAS Cold Failover Clusterという用語は、Oracle Application Serverインスタンス・レベルでのクラスタリングを意味します。ただし、クラスタリングされているインスタンスの特定のタイプを示す必要がある場合、このドキュメントではOracleAS Cold Failover Cluster(タイプ)を使用してそのクラスタ・ソリューションを明確にします。たとえば、次のようになります。
Oracle Application Serverシステムのエントリ・ポイント(コンテンツ・キャッシュ)からバック・エンド・レイヤー(データソース)までの、クライアント・リクエストが通過するすべての層を、OracleAS Clusterを使用したアクティブ/アクティブ構成またはOracleAS Cold Failover Clusterを使用したアクティブ/パッシブ構成のいずれかで冗長に構成できます。
Oracle Application Serverは、そのスタック全体の高可用性をサポートするための様々な機能およびトポロジを提供します。これには、OracleAS中間層およびOracleAS Infrastructure層の両方にわたるソリューションが含まれます。
この項では、Oracle Application Serverの次の高可用性サービスについて説明します。
Oracle Application Serverインスタンスは、クライアント・リクエストを処理する多数の様々な実行中のプロセスで構成されています。高可用性の確保とは、これらのプロセスがすべてスムーズに実行され、リクエストが処理されると同時に、予期しないハングや障害が発生しないことを意味します。
プロセスが適切な順序で起動されるように(それが依存している他のプロセスが正常に起動された後にのみ起動されるように)、これらのプロセスの相互依存性を管理することも必要です。
Oracle Application Serverは、Oracle Process Manager and Notification Server(OPMN)を使用してプロセス・レベルでの高可用性と管理サービスを実現します。
OPMNには次の機能があります。
OPMNは、次のOracle Application Serverプロセスを明示的に管理するために使用できます。
さらに、OPMNによって、前述のコンポーネントに依存するどのアプリケーションも暗黙的に管理されます。たとえば、OC4Jの下で実行されるどのJ2EEアプリケーションもOPMNによって管理されます。
OPMNは拡張可能で、ロード環境情報、停止プロシージャ、および障害の検出と再起動のメソッドを含むカスタム・プロセスに関する情報を追加する機能を提供します。
OPMNでは、ローカルOracle Application Serverインスタンス上のプロセスを管理できますが、様々なインスタンス上で実行されるOPMNデーモンも連動することによって分散プロセスの管理と制御を実現できます。
たとえば、1つのマシンで発行されたコマンドを使用して、すべてのローカルおよびリモートOracle Application Serverインスタンスで、すべてのプロセスまたは特定のプロセス・タイプを起動できます。
OPMNは、次の2つの主要コンポーネントで構成されています。
ONSは、Oracle Application Serverのコンポーネント間の障害、リカバリ、起動、およびその他の関連する通知のための転送メカニズムです。ONSは、パブリッシュ・サブスクライブ・モデルに従った動作をします。このモデルでは、Oracle Application Serverコンポーネントが、ONSに登録したサブスクリプションごとに特定のタイプの通知を受信します。そのような通知が発行されると、ONSはその通知を適切なサブスクライバに送信します。
PMは、Oracle Application Serverの一元化されたプロセス管理メカニズムであり、Oracle Application Serverプロセスの管理に使用されます。PMによって、それが管理するすべてのプロセスの起動、再起動、停止および監視が行われます。PMによって、OPMNに送信される、プロセスの制御やプロセスに関するステータスの取得についてのすべてのリクエストが処理されます。また、PMが管理するプロセスの障害検出と自動再起動の実行も行います。PMの管理対象となるOracle Application Serverプロセスは、opmn.xml
というファイルで指定されます。PMは、特定のプロセスまたはすべてのプロセスを起動するコマンドを待機します。特定のプロセスまたはすべてのプロセスが停止される場合、PMはリクエスト・パラメータで指定されたリクエストを受信します。
コンポーネントの高可用性を管理し、確実なものとするためには、プロセスを管理するだけでなく、これらのプロセスの構成情報をローカルおよび一連のOracle Application Serverインスタンス全体にわたって管理します。
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には、次のものが保持されます。
DCMを使用すると、次のOracle Application Serverコンポーネントおよびアプリケーションの構成情報を管理できます。
これらのコンポーネントごとの構成情報が、各OracleASインスタンスのメタデータ・リポジトリに格納されます。OracleASインスタンスをDCMで管理すると、構成情報を次のように操作できます。
OracleのDistributed Configuration Managementツールであるdcmctl
によって、OracleASインスタンスのクラスタ全体で構成情報を同期化できます。これには、そのクラスタの1つのインスタンスに新しいJ2EEアプリケーションをデプロイし、その後、そのクラスタの各メンバーに同じアプリケーションが自動的にデプロイされる機能が含まれます。
このようにアプリケーションをデプロイすると、その後、そのクラスタ内のどのインスタンスもそのアプリケーションに対するリクエストを受信して処理できます。
分散アプリケーションのメリットの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)ではどちらのレプリケーションも可能です。
ロード・バランシングで、複数のプロセスにリクエストを分散できます。
ソフトウェアまたはハードウェアの外部ロード・バランサの機能は次のとおりです。
異なるインスタンスにリクエストを割り当てる方法の1つまたは一連のルール。最も一般的なロード・バランシング・アルゴリズムとしては、他のインスタンスと比較した場合のレスポンス時間や許容量など、そのインスタンスの重み付けされたプロパティに基づいた単純なラウンドロビンまたは割当てがあります。
1つ以上のインスタンスに対する障害が発生したリクエストを検出する機能、およびその後のリクエストがそれらのインスタンスに転送されないように該当インスタンスを非アクティブとしてマークする機能。
Oracle Application Serverシステムのコンポーネントと通信するための様々なロード・バランシング・メカニズムがあります。ロード・バランシングは次の部分で実行されます。
Oracle Application Serverのすべてのサブ層は、次のように次の層との間で確立する接続の障害を管理できます。
アクティブ/アクティブ構成の多数のOracle Application Serverインスタンス間でリクエストをロード・バランシングするために、オラクル社では外部ロード・バランサの使用をお薦めします。
いくつかのOracle Application Serverインスタンスを連動するようにグループ化すると、それらはシステムに対する単一の仮想エントリ・ポイントのように動作し、複数インスタンスの構成が隠されます。リクエストはクラスタ内のどのアプリケーション・サーバー・インスタンスでも処理できるので、外部ロード・バランサは、クラスタ内の任意のインスタンスにリクエストを送信できます。管理者は、追加のアプリケーション・サーバー・インスタンスを導入することにより、システムの能力を高めることができます。これらのインスタンスを別々のノードにインストールすれば、ノードの障害に備えて冗長性を確保できます。
Oracle Application Serverインスタンスとともに使用可能な外部ロード・バランサには様々なタイプがあります。表2-1に、これらのタイプの概要を示します。
オラクル社は、外部ロード・バランサを提供していません。他社の外部ロード・バランサを使用できます。
ご使用の外部ロード・バランサがOracle Application Serverと連動することを確認するには、外部ロード・バランサが表2-2に示されている要件を満たすことをチェックしてください。
この表に示されている要件の一部を満たす必要がない場合があります。外部ロード・バランサの要件は、考慮されるトポロジと、ロード・バランシングが実行されるOracle Application Serverコンポーネントによって異なります。
図2-1は、Oracle Application Serverでのハードウェア・ロード・バランシング・ルーターの配置例を示しています。
ロード・バランシングでは、アクセス・ポイントの提供によってスケーラビリティが向上します。このアクセス・ポイントを通じて、使用可能な多数のインスタンスのいずれかにリクエストがルーティングされます。外部ロード・バランサが機能しているグループにインスタンスを追加すれば、ユーザーの追加に対応できます。
ロード・バランシングでは、最も使用可能度が高いインスタンスにリクエストをルーティングすることにより、可用性が向上します。あるインスタンスが停止した場合、または著しくビジーである場合、外部ロード・バランサは別のアクティブなインスタンスにリクエストを送信できます。
システム・コンポーネントのデータ損失からの保護は、高可用性環境の保持に不可欠です。定期的にすべてのOracle Application Server環境の完全なバックアップを行うようにしてください。
Oracle Application Server環境の完全なバックアップには、次のものが含まれます。
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では、次のインストール・タイプがサポートされています。
障害時リカバリとは、自然災害またはそれ以外の災害によるサイトの壊滅的な障害からシステムをどのように回復できるのかを指します。さらに、システムの計画停止の管理方法も障害時リカバリに含まれます。障害時リカバリを必要とするほとんどの状況において、障害の解決には個々のハードウェアやサブコンポーネントのレプリケーションだけでなく、サイト全体を対象としたレプリケーションを行う必要があります。これは、Oracle Application Server Disaster Recovery(OracleAS Disaster Recovery)ソリューションについても同様です。
最も一般的な構成では、本番サイトをミラー化するスタンバイ・サイトを作成します。通常の運用では、本番サイトがクライアント・リクエストを積極的に処理します。スタンバイ・サイトは、本番サイトがホスティングするアプリケーションおよびコンテンツをミラー化するために維持されています。
OracleAS Guardによって、対応するスタンバイ・サイトで本番サイトのリストアが自動的に行われます。完全なOracle Application Server環境を災害から保護するために、OracleAS Guardによって次の操作が実行されます。
|
Copyright © 2005, 2007 Oracle. All Rights Reserved. |
|