19 環境のスケール・アップ

管理対象サーバーの追加、他の製品の組込みによるドメインの拡張、管理対象サーバーのクラスタの作成、スタンドアロン・ドメインまたはシステム・コンポーネントの作成、既存のOracleホームまたはドメインのコピーによって環境を拡張できます。

環境のスケール・アップの概要

スケーラビリティとはスループットを提供するシステムの能力で、使用可能なハードウェア・リソースに比例し、またこのリソースによってのみ制限されます。スケーラブルなシステムとは、リクエストが増加してもレスポンス時間およびスループットに悪影響をもたらすことなく処理できるシステムです。

1つの操作環境において計算力を増加することを、垂直スケーリングといいます。水平スケーリングとは、複数のシステムを連動させて共通の問題をパラレル処理することです。

Oracle Fusion Middlewareでは、垂直と水平の両方でスケーリングを行います。

Oracle Fusion Middlewareでは、管理対象サーバーまたはコンポーネントを同一ホストに追加でき、垂直的なスケーラビリティも優れています。これは、スケール・アップと呼ばれます。

水平方向では、Oracle Fusion Middlewareには別のホスト・コンピュータへのフェイルオーバー機能が用意されています。これにより、あるコンピュータが停止しても、環境はデプロイ済アプリケーションのコンシューマに、サービス提供を続けることができます。これはスケールアウト、またはマシンのスケールアウトとも呼ばれます。『高可用性ガイド』トポロジのスケールアウトに関する項を参照してください。

高可用性システムのデプロイによって、システムのダウン(使用不可の時間)を最小限に抑え、実行(使用可能な時間)を最大化できます。Oracle Fusion Middlewareは、ロード・バランシングや基本的なクラスタ化から、ハードウェアおよびソフトウェアの壊滅的な障害発生時にシステムの可用性を最大限にすることまで、多種多様な高可用性ソリューションを提供するように設計されています。

高可用性ソリューションは、ローカルの高可用性と障害時リカバリの2つの基本的なカテゴリに分類できます。参照:

ドメインの拡張による追加コンポーネントのサポート

Oracle WebLogic Serverドメインを作成する場合、特定のドメイン・テンプレートを使用して作成します。そのテンプレートは、特定のコンポーネントや、Oracle WebLogic Serverなどのコンポーネント・グループをサポートしています。そのドメインにOracle HTTP Serverなどの他のコンポーネントを追加する場合は、そのコンポーネントのドメイン・テンプレートを使用して追加の管理対象サーバーをドメインに作成することで、そのドメインを拡張できます。

ドメインを拡張する際は、ドメインをオフラインにする必要があります。

ドメインを拡張するには、目的のコンポーネントがインストールされているOracleホームからOracle WebLogic Server構成ウィザードを使用します。そこで、拡張するドメインと追加するコンポーネントを選択します。詳細は、『Oracle Fusion Middleware Infrastructureのインストールと構成』WebLogicドメインの構成に関する項を参照してください。

たとえば、当初はOracle Application Development Frameworkをサポートするように作成されたドメインを拡張し、Oracle HTTP Serverもサポートできるようにする手順は次のとおりです。

  1. 『リポジトリ作成ユーティリティによるスキーマの作成』スキーマの作成に関する項の説明に従って、RCUを使用してコンポーネントの必須スキーマを追加します。
  2. 『Oracle HTTP Serverのインストールと構成』Oracle HTTP Serverのインストールに関する項の説明に従って、Oracle HTTP Serverをインストールします。
  3. Oracleホームから、次のコマンドを使用して構成ウィザードを起動します。
    (UNIX) ORACLE_HOME/oracle_common/common/bin/config.sh
    (Windows) ORACLE_HOME\oracle_common\common\bin\config.cmd
    

    構成ウィザードの「ようこそ」画面が表示されます。

  4. 「既存ドメインの更新」を選択します。
  5. 「ドメインの場所」でドメインの場所を指定します。
  6. 「次へ」をクリックします。
  7. 「製品テンプレートを使用してドメインを更新」を選択します。
  8. Oracle HTTP Server (コロケート)を選択します。
  9. 「次へ」をクリックします。
  10. 「以下の追加製品をサポートするために、自動的にドメインを拡張する」を選択して、このドメインを拡張する元になるソースを選択します。たとえば、「Oracle HTTP Server」を選択します。
  11. 「次へ」をクリックします。
  12. RCUデータまたは「手動構成」 のいずれかを選択します。「RCUデータ」を選択した場合、「RCU構成の取得」を選択すると、情報は自動的に移入されます。「手動構成」を選択した場合は、「次へ」をクリックします。

    追加した新しいコンポーネントのスキーマを選択します。「コンポーネント・データソース」ページ内の値が正しくない場合、これらの値を変更します。

  13. 「次へ」をクリックします。

    「JDBCコンポーネント・スキーマ・テスト」画面が表示されます。

  14. テストが成功したら、「次へ」をクリックします。

    「拡張構成」画面が表示されます。

  15. 「システム・コンポーネント」を選択します。
  16. 「次へ」をクリックします。
  17. 「追加」をクリックして、新しいOracle HTTP Serverインスタンスを作成します。
  18. インスタンスの名前を入力し、コンポーネント・タイプとして「OHS」を選択します。
  19. 「次へ」をクリックします。
  20. 「OHSサーバー」ページの各フィールドは、事前に移入されています。
  21. 「次へ」をクリックします。
  22. 新しいマシンを作成しない場合は、「マシン」ページで「次へ」をクリックします。
  23. システム・コンポーネントの割当ページでサーバーをダブルクリックし、これをマシンの下に移動します。
  24. この画面に表示されている情報を確認して、正しければ「更新」をクリックします。
  25. 操作が完了したら、「完了」をクリックします。

ドメインへの管理対象サーバーの追加

ドメインに管理対象サーバーを追加して、システムの容量を拡大できます。管理対象サーバーは、クラスタに追加することができます。

管理対象サーバーをクラスタに追加すると、管理対象サーバーは、そのクラスタが対象となっているアプリケーションおよびサービスを継承されます。管理対象サーバーをクラスタの一部として追加するのではない場合、管理対象サーバーは、テンプレートからアプリケーションとサービスを自動的には継承しません。

管理対象サーバーをドメインに追加するには、Fusion Middleware ControlOracle WebLogic Server管理コンソールまたはWLSTを使用できます。

Fusion Middleware Controlを使用して、管理対象サーバーを追加するには:

  1. 「WebLogicドメイン」メニューから「環境」を選択し、「サーバー」を選択します。

    「サーバー」ページが表示されます。

  2. 「作成」をクリックします。

    「サーバーの作成」ページが表示されます。

  3. 「名前」に、サーバーの名前を入力します。

    ドメイン内の各サーバーには、ドメイン内のすべての構成オブジェクトに対して一意の名前が必要です。ドメイン内では、各サーバー、コンピュータ、クラスタ、JDBC接続プール、仮想ホストおよびその他すべてのリソース・タイプに、一意の名前を付ける必要があり、ドメインと同じ名前を使用することはできません。

  4. 「サーバー・リスニング・ポート」に、サーバー・インスタンスへのアクセス元のポート番号を入力します。

    1つのコンピュータで複数のサーバー・インスタンスを実行している場合は、各サーバーで固有のリスニング・ポートを使用する必要があります。

  5. このサーバーをスタンドアロン・サーバーにするのか、それとも既存のクラスタのメンバーにするのかを指定します。
    • このサーバーをスタンドアロン・サーバーにする場合は、「いいえ、これはスタンドアロン・サーバーです。」を選択します。

    • 既存のクラスタに属するサーバーとする場合は、「はい、このサーバーを既存のクラスタのメンバーにします。」を選択します。次に、所属先とするクラスタを選択します。

    • 新しいクラスタに属するサーバーとする場合は、「クラスタを作成します。」を選択します。

  6. 「次へ」をクリックします。
  7. 「マシンの選択」では、既存のマシンを選択するか、「新規マシンの作成」をクリックします。
  8. 「作成」をクリックします。
  9. サーバーまたはクラスタにOracle JRFが適用されていない場合は、「管理対象サーバーまたはクラスタへのOracle JRFテンプレートの適用」の説明に従って、JRFを適用します。

管理対象サーバーまたはクラスタへのOracle JRFテンプレートの適用

Oracle JRF (Java Required Files)は、Oracle WebLogic Serverインストールに含まれておらず、Oracleビジネス・アプリケーションおよびアプリケーション・フレームワークに共通の機能を提供するコンポーネントで構成されています。

Oracle JRFには、共通の場所にデプロイされる、個別に開発されたいくつかのライブラリおよびアプリケーションが含まれています。Java Required Filesの一部と見なされるコンポーネントには、Oracle Application Development Framework共有ライブラリやODLロギング・ハンドラがあります。

特定の状況では、JRFテンプレートを管理対象サーバーまたはクラスタに適用する必要があります。JRFが構成されているドメイン内の管理対象サーバーにのみJRFを適用できます。つまり、ドメインを作成または拡張した場合は、構成ウィザードでOracle JRFを選択しておく必要があります。

JRFの適用については、次の点に注意してください。

  • すでにJRFで構成されている既存のクラスタに管理対象サーバーを追加する場合は、その管理対象サーバーにJRFを適用する必要はありません。

  • Fusion Middleware Controlを使用してサーバーを作成すると、JRFテンプレートが自動的に適用されます。

  • 管理対象サーバーをドメインに追加する際、その管理対象サーバーにJRFサービスが必要だが、管理対象サービスがクラスタに属していない場合、その管理対象サーバーにJRFを適用する必要があります。

  • クラスタを新規作成し、そのクラスタにJRFが必要な場合、クラスタにJRFを適用する必要があります。

  • テンプレート拡張プロセスで製品テンプレートによって追加される管理対象サーバーにJRFを適用する必要はありません(ただし、構成ウィザードでJRFを選択する必要があります)。

  • JRFの適用後は、サーバーまたはクラスタを再起動する必要があります。

    ノード・マネージャを使用してサーバーまたはクラスタを起動する場合は(たとえば、ノード・マネージャを使用する管理コンソールを通して)、ノード・マネージャのプロパティstartScriptEnabledtrueに設定する必要があります。「ノード・マネージャでの管理対象サーバーの起動の構成」を参照してください。

applyJRFコマンドの形式は次のとおりです。

applyJRF(target={server_name | cluster_name | *}, domainDir=domain_path,
        [shouldUpdateDomain= {true | false}])

applyJRFコマンドは、オンラインまたはオフラインで使用できます。

  • オンライン・モードでは、shouldUpdateDomainオプションを値true(デフォルト)で使用した場合、JRFの変更は暗黙的にアクティブになります。オンライン・モードでは、このオプションによって、オンラインWLST save()コマンドおよびactivate()コマンドがコールされます。

  • オフライン・モードでは、管理サーバーおよび管理対象サーバーまたはクラスタを再起動する必要があります。(オフライン・モードでは、shouldUpdateDomainオプションを値trueで指定した場合、このオプションによってWLST updateDomain()コマンドがコールされます。)

たとえば、JRFで管理対象サーバーserver1を構成するには、次のコマンドを使用します。

applyJRF(target='server1', domainDir='DOMAIN_HOME')

ドメイン内のすべての管理対象サーバーをJRFで構成するには、targetオプションの値としてアスタリスク(*)を指定します。

クラスタをJRFで構成するには、次のコマンドを使用します。

applyJRF(target='cluster1', domainDir='DOMAIN_HOME')

JRFの詳細は、次の場所を参照してください。

クラスタの作成

WebLogic Serverクラスタは、同時に実行され、連動してスケーラビリティと信頼性の向上を実現する複数のWebLogic Serverサーバー・インスタンスで構成されます。クラスタは、クライアントからは単一のWebLogic Serverインスタンスのように見えます。クラスタを構成するサーバー・インスタンスは、同じコンピュータ上で実行することや、別のコンピュータに配置することが可能です。既存のコンピュータ上のクラスタにサーバー・インスタンスを追加して、クラスタの容量を拡大したり、クラスタにコンピュータを追加して、追加のサーバー・インスタンスをホストしたりできます。クラスタ内の各サーバー・インスタンスでは、同じバージョンのWebLogic Serverを実行する必要があります。

WLST、Oracle WebLogic Server管理コンソールまたはFusion Middleware Controlを使用して、管理対象サーバーのクラスタを作成できます。この項では、Fusion Middleware Controlを使用してクラスタを作成する方法を説明します。

2つの管理対象サーバーwls_server1およびwls_server2のクラスタを作成するには:

  1. 「WebLogicドメイン」メニューから「環境」を選択し、「クラスタ」を選択します。

    「クラスタ」ページが表示されます。

  2. 「作成」を展開します。次に、「クラスタ」または「動的クラスタ」のいずれかを選択します。
    この例では、「クラスタ」を選択します。

    「静的クラスタの作成」ページが表示されます。

  3. 「名前」に、クラスタの名前を入力します。
  4. 「クラスタ・メッセージング・モード」セクションで、次のいずれかを選択します。
    • ユニキャスト。「ユニキャスト・ブロードキャスト・チャネル」にチャネルを入力します。このチャネルは、クラスタ内でのメッセージの伝送に使用されます。

    • マルチキャスト。マルチキャスト・ブロードキャスト・チャネルにチャネルを入力します。マルチキャスト・アドレスは、範囲が224.0.0.0 - 239.255.255.255のIPアドレスです。「マルチキャスト・ポート」にポート番号を入力します。

      ノート:

      入力するマルチキャスト・アドレスが使用されていないことを確認する必要があります。

  5. 「次へ」をクリックします。
  6. 「サーバーの追加」ページで、クラスタに追加する1つ以上のサーバーを選択します。このシナリオでは、wls_server1およびwls_server2を選択します。
  7. 「作成」をクリックします。

これで、wls_server1およびwls_server2の、2台のメンバーを持つクラスタができました。

クラスタの詳細は、『Oracle WebLogic Serverクラスタの管理』WebLogic Serverクラスタリングの理解に関する項を参照してください。

実行時スケーリングのための拡張度および動的クラスタの使用

動的クラスタのエラスティック・スケーリングを構成できます。エラスティック・スケーリングにより、必要に応じてまたは一定の条件に基づいて動的サーバー・インスタンスが追加または削除されます。

拡張度により、次のいずれかに基づいて動的クラスタのエラスティック・スケーリングを構成することが可能になります。

  • アクティブな動的クラスタからの、実行中の動的サーバー・インスタンスの手動による追加または削除。これは実行時スケーリングと呼ばれます。要求時スケーリングは、Enterprise ManagerのFusion Middlewareコンポーネント、WebLogic Server管理コンソールまたはWebLogic Scripting Tool(WLST)を使用して実行できます。

  • 動的クラスタをスケール・アップまたはダウンするべき条件や、スケーリング操作自体を定義するアクションを設定するポリシーの確立。スケーリング・ポリシーで定義された条件が発生すると、対応するスケーリング・アクションが自動的に起動されます。

動的クラスタは、アプリケーションのリソース・ニーズを満たすように動的にスケール・アップできるサーバー・インスタンスで構成されます。動的クラスタは、指定した数の生成された(動的)サーバー・インスタンスの構成を定義する単一のサーバー・テンプレートを使用します。動的クラスタを作成すると、動的サーバーが事前構成され、自動的に生成されます。これにより、追加のサーバー容量が必要な場合に動的クラスタ内のサーバー・インスタンスの数を簡単にスケール・アップできます。

拡張度および動的クラスタの詳細は、『Oracle WebLogic Server動的クラスタの拡張度の構成』拡張度の概要に関する項を参照してください。

スタンドアロン・ドメインおよびシステム・コンポーネントの作成

『Oracle HTTP Serverのインストールと構成』スタンドアロン・ドメインでのOracle HTTP Serverの構成に関する項の説明に従い、構成ウィザードを使用して、Oracle HTTP Serverなどのシステム・コンポーネント用のスタンドアロン・ドメインを作成できます。

または、WLSTを使用して、Oracle HTTP Serverなどのシステム・コンポーネントを含むスタンドアロン・ドメインを作成できます。

  1. 次のディレクトリからWLSTを起動します。
    cd ORACLE_HOME/oracle_common/common/bin
    ./wlst.sh
    
  2. スタンドアロン・ドメイン・テンプレートを読み取ります。たとえば、Oracle HTTP Server用のスタンドアロン・ドメイン・テンプレートは、次のとおりです。
    readTemplate('ORACLE_HOME/ohs/common/templates/wls/ohs_standalone_template.jar')
  3. ノード・マネージャを構成します。
    cd('/')
    create('domainName', 'SecurityConfiguration')   
    cd('SecurityConfiguration/domain_name')
    set('NodeManagerUsername', 'username')
    set('NodeManagerPasswordEncrypted', 'password')
    setOption('NodeManagerType', 'PerDomainNodeManager')
    
  4. スタンドアロン・テンプレートには、デフォルトの構成値が含まれています。ただし、これらの値は変更できます。たとえば:
    cd('/OHS/ohs1')
    cmo.setAdminHost('127.0.0.1')
    cmo.setAdminPort('7779')
    cmo.setListenAddress('localhost')
    cmo.setListenPort('7777')
    cmo.setSSLListenPort('4443')
    
  5. ドメインを作成します。この操作には多少時間がかかります。
    writeDomain('domain_dir')
    closeTemplate()

WebLogic Serverドメインでのシステム・コンポーネント・インスタンスの作成

『Oracle HTTP Serverのインストールと構成』WebLogic ServerドメインでのOracle HTTP Serverの構成に関する項の説明に従い、構成ウィザードを使用して、Oracle HTTP Serverなどのシステム・コンポーネント・インスタンスをWebLogic Serverドメインに作成できます。

または、次の方法に従って、Oracle HTTP Serverなどのシステム・コンポーネント・インスタンスを作成できます。

この項では、WLSTコマンドを使用して、システム・コンポーネント・インスタンスを作成する方法について説明します。例としてOracle HTTP Serverを使用し、Oracle JRFが含まれているWebLogic Serverドメインを作成しているものとします。

  1. 次のディレクトリからWLSTを起動します。
    cd ORACLE_HOME/oracle_common/common/bin
    ./wlst.sh
    
  2. ドメイン・テンプレートを読み取り、そのテンプレートをシステム・コンポーネント用に追加します。次の例では、Oracle HTTP Serverテンプレートを示します。
    readDomain('DOMAIN_HOME')
    addTemplate('ORACLE_HOME/ohs/common/templates/wls/ohs_managed_template.jar')
    
  3. システム・コンポーネント用のマシンをまだ作成していない場合は、次のようにして作成します。
    cd('/')
    create('ohs_machine', 'Machine')
    cd('/Machines/ohs_machine')
    create('ohs_machine', 'NodeManager')
    cd('NodeManager/ohs_machine')
    

    この場合、ノード・マネージャのポートはそのままにしておきます。

  4. システム・コンポーネント・インスタンス(この例では、Oracle HTTP Server)を作成します。
    cd('/')
    create('myohs', 'SystemComponent')
    cd('/SystemComponent/myohs')
    cmo.setComponentType('OHS')
    set('Machine', 'ohs_machine')
    
  5. 作成したシステム・コンポーネント・インスタンスを構成します。設定するプロパティは、システム・コンポーネントのタイプごとに異なります。たとえば、Oracle HTTP Serverの場合は、次のようになります。
    cd('/OHS/myohs')
    cmo.setAdminHost('127.0.0.1')
    cmo.setAdminPort('7779')
    cmo.setListenPort('7777')
    cmo.setSSLListenPort('4443')
    
  6. ドメインを更新します。
    updateDomain()
    closeDomain()