Version 1.0 Oracle Database RAC BIG-IP LTM
目次 Oracle Database および RAC における BIG-IP LTM の導入前提条件と設定上の注意...1 製品バージョンおよびバージョン履歴...1 設定例...2 Oracle Database に関する BIG-IP LTM の設定... 3 Oracle ヘルスモニタの作成...3 ノードの作成...6 プールの作成...6 TCP プロファイルの作成...8 バーチャルサーバの作成...11 付録 A: BIG-IP 設定のバックアップおよび復元... 14 BIG-IP 設定の保存および復元...14 F5 導入ガイド i
Oracle Database および RAC における BIG-IP LTM の導入 本書は BIG-IP Local Traffic Manager(LTM) および Oracle Database(Real Application Cluster (RAC) データベースを含む ) に関する F5 導入ガイドです このガイドでは Oracle Database において Oracle Database クライアントとサーバ間の接続を最適化する場合の BIG-IP LTM の設定方法について説明します Oracle RAC は 企業におけるデータベースのパフォーマンス 信頼性およびスケーラビリティを拡張する上で役に立ちます BIG-IP を Oracle Net 環境のフル TCP プロキシとして追加すると ネットワークのパフォーマンスと信頼性が改善され より高速なクライアントフェイルオーバーを実現できます BIG-IP は RAC ノードを監視 サーバの TCP オーバーヘッドを軽減 すべてのクライアントに単一の仮想 IP アドレスを提供 プライマリからスタンバイクラスタフェイルオーバー接続管理を提供できます これらの 2 つのテクノロジを組み合わせることで ミッションクリティカルなアプリケーションにエンタープライズクラスのデータベース接続サービスを提供できます Oracle RAC の詳細については http://www.oracle.com/jp/products/database/options/rac/index.html をご覧ください BIG-IP LTM の詳細については http://www.f5networks.co.jp/product/bigip/ltm/index.html をご覧ください 前提条件と設定上の注意 導入の前提条件および設定上の注意は次のとおりです Oracle Database をすでに実装している必要があります この導入ガイドでは F5 製品を設定するための設定手順についてだけ説明しています Oracle 製品の設定方法については 該当する Oracle ドキュメントを参照してください 基本的な設定タスク および F5 製品の設定を完了するために必要な IP アドレスなどのいくつかの情報について簡単に確認しておいてください 製品バージョンおよびバージョン履歴 この導入ガイドの確認に使用した製品とバージョンは以下のとおりです テストされた製品 テストされたバージョン BIG-IP LTM 10.2 Oracle Database 11g Release 1 11.1.0.6.0 1-1
Oracle Database および RAC における BIG-IP LTM の導入 改訂履歴 文書バージョン 説明 1.0 新規導入ガイド 設定例 この導入ガイドでは それぞれ 3 つのノードを持つ 2 つの RAC クラスタを例に挙げて説明します 最初のクラスタは RAC プライマリで 2 つめのクラスタは RAC スタンバイです BIG-IP は Oracle Net クライアント ( アプリケーションサーバ ) と Oracle Net サーバ (RAC ノード ) 間にフル TCP プロキシとして追加されています クライアントは BIG-IP の仮想 IP アドレスに接続し BIG-IP は RAC サーバのプールに接続します BIG-IP は SQL クエリを使用して各 RAC ノードの状態を判別して 各 RAC ノードを個別に監視します BIG-IP ロードバランシングプールは Priority Group と呼ばれる高度な機能を使用して RAC プライマリノードだけにトラフィックを送信します すべての RAC プライマリノードが何らかの理由で使用できなくなった場合 BIG-IP は トラフィックを RAC スタンバイノードに送信します RAC プライマリノードから RAC スタンバイノードへの移行が行われる場合 クライアント側の接続が正しくリセットされ再接続されます Application Servers (or Clients) BIG-IP Local Traffic Manager Oracle Database 11g (primary nodes) Oracle Database 11g (Standby nodes) 図 1 論理設定例 F5 導入ガイド 1-2
Oracle Database に関する BIG-IP LTM の設定 この項では BIG-IP LTM の Oracle Database サーバに関する設定を行います ヒント この導入ガイドの手順を開始する前に 既存の BIG-IP 設定を保存しておくことをお勧めします BIG-IP LTM 設定のバックアップまたは復元については 該当する BIG-IP LTM のマニュアルを参照してください (Ask F5 から利用できます ) Oracle ヘルスモニタの作成 まず Oracle Database のヘルスモニタを設定します この手順は省略可能ですが 強くお勧めします 注 ここでは 監視のための専用ユーザを Oracle Database に作成していることを前提としています このユーザは 特権のあるユーザまたは管理ユーザにすることはできませんが データベースを監視するための正しい権限を持っている必要があります ヘルスモニタを設定するには 1. [Main] タブで [Local Traffic] を展開し [Monitors] をクリックします [Monitors] 画面が開きます 2. [Create] ボタンをクリックします [New Monitor] 画面が開きます 3. [Name] ボックスに このモニタの名前を入力します この例では ora11g-rac-primary1_monitor と入力します 4. [Type] リストから [Oracle] を選択します 5. [Configuration] リストから [Advanced] を選択します 6. [Interval] ボックスに Oracle TCP.CONNECT_TIMEOUT 設定に使用した値を指定します Oracle 設定の値を指定していない場合 [Interval] の値はデフォルトのままにします この例では 10 と入力します 7. [Timeout] ボックスに インターバルの値を 3 倍して 1 足した値をタイムアウトとして入力します ( たとえば デフォルト設定は インターバルが 5 で タイムアウトが 16 です ) この例では 31 と入力します 8. [Send String] ボックスに 定期的な監視インターバルで実行する SQL クエリを入力します この例では 次のように指定します SELECT status FROM v$instance 1-3
Oracle Database および RAC における BIG-IP LTM の導入 9. [Receive String] ボックスに SQL クエリから予測する応答を入力します この例では 次のように指定します OPEN 10. [Username] ボックスに 監視のために作成したユーザを指定します この例では bigip と入力します 11. [Password] ボックスに 関連するパスワードを入力します 12. [Database] ボックスに 接続先の Oracle Database INSTANCE を指定します この例では primary1 と入力します 13. [Receive Row] および [Receive Column] ボックスは 複数の結果を返す SQL クエリをどのように扱うかを指定します これは 複数の行 複数のカラムがある結果で 目的の結果を特定できる場合に定義します この例では 両方に 1 を指定します 14. [Alias Address] ボックスに 手順 12 で定義したインスタンスが実行するマシンの IP アドレスを指定します この例では 10.133.17.31 と入力します 15. [Alias Service Port] ボックスに 手順 14 で指定したインスタンスのリスナーとするポートを指定します この例では 1521 と入力します ( 図 2 を参照してください ) 16. [Finished] ボタンをクリックします 新しいモニタが [Monitor] リストに追加されます 17. 重要 : 各データベースインスタンス ( 必要に応じてプライマリおよびスタンバイインスタンス ) でこのすべての手順を繰り返します F5 導入ガイド 1-4
図 2 Oracle モニタの作成 終了すると モニタのリストが次のようになります 図 3 モニタリスト 1-5
Oracle Database および RAC における BIG-IP LTM の導入 ノードの作成 次に BIG-IP LTM 上にノードを作成します これにより 前述の手順で作成したモニタのほかに ノード固有のヘルスモニタを割り当てることができます ノードを作成するには 1. [Main] タブで [Local Traffic] を展開し [Nodes] をクリックします 2. [Create] ボタンをクリックします 3. [Address] ボックスに 1 つの RAC ノードの IP アドレスを指定します この例では 10.133.17.31 と入力します 4. [Name] ボックスに 同じ RAC ノードのホスト名を指定します この例では rac1-11g と入力します 5. [Health Monitors] リストから [Node Specific] を選択します 6. [Select Monitors Available] リストから ICMP モニタおよび前述の手順でこのノード用に作成したモニタの両方を選択して [Add (<<)] ボタンをクリックします 7. [Repeat] をクリックします 8. クラスタの各 RAC ノードでこの手順を繰り返します ただし 手順 6 では該当するモニタを関連付けてください 図 4 [New node configuration] ページ プールの作成 次の手順では Oracle 製品に BIG-IP LTM のプールを作成します BIG-IP プールは 一連のデバイスをまとめてグループ化したもので ロードバランシング方式に従ってトラフィックを受信します F5 導入ガイド 1-6
このプールでは BIG-IP LTM で Priority Group 機能を使用します Priority Group Activation の値によって そのグループに限定されるトラフィックに対して各 Priority Group で利用可能のままにする必要がある最小メンバ数が決定されます この設定は 個々のプールメンバの Priority Group 設定とともに使用されます 最高の優先度グループに割り当てられた利用可能なメンバの数が Priority Group Activation 設定に指定した数を下回った場合 BIG-IP によってトラフィックは 2 番目に高い優先度グループにも分散されます この場合 Priority 機能を使用して プライマリ RAC ノードにスタンバイノードより高い重みを付けます この方法では プライマリノードが最初にトラフィックを受け取り すべてのプライマリノードがダウン状態になると トラフィックはスタンバイノードに送信されます プールを作成するには 1. [Main] タブで [Local Traffic] を展開し [Pools] をクリックします [Pool] 画面が開きます 2. [Create] ボタンをクリックします [New Pool] 画面が表示されます 3. [Configuration] リストから [Advanced] を選択します 4. [Name] ボックスに プールの名前を入力します この例では ora11g-rac-primary-standby_pool と入力します 5. [Health Monitors Available] セクションで [gateway_icmp] を選択して [Add (<<)] ボタンをクリックします 6. [Action On Service Down] リストから [Reject] を選択します 7. [Load Balancing Method] リストから 最適なロードバランシング方式を選択します ( 最適な結果をもたらすロードバランシング方式はネットワークによって異なる場合があります ) この例では [Least Connections (node)] を選択します 8. [Priority Group Activation] リストから [Less Than] を選択します [Available Members] ボックスに 特定の優先度レベルで使用可能なノードの最小数を指定します これを下回ると プールでこれより低い優先度レベルが選択されます この例では 1 と入力します 9. [Address] ボックスに 最初のプライマリ RAC ノードの IP アドレスを指定します この例では 10.133.17.31 と入力します 10. [Service Port] ボックスに 最初のプライマリ RAC ノードのポートを指定します この例では 1521 と入力します 11. [Priority] ボックスに プライマリ RAC ノードの優先度レベルとして割り当てる数値を指定します この例では 100 と入力します 12. [Add] ボタンをクリックします 13. 各プライマリ RAC ノードに対して 手順 9 ~ 12 を繰り返します 1-7
Oracle Database および RAC における BIG-IP LTM の導入 14. 各スタンバイ RAC ノードに対して プライマリノードより低い優先度レベルを使用して 手順 9 ~ 12 を繰り返します この例では スタンバイノードの優先度レベルに 50 と入力します 15. [Finished] をクリックします 図 5 プール設定 TCP プロファイルの作成 次の手順では TCP プロファイルを作成します プロファイルとは 特定タイプのネットワークトラフィックの動作を制御するための ユーザが構成可能な設定を含むオブジェクトのことです Oracle クライアントの動作はソフトウェアバージョン 作成者の環境設定などにより異なるため BIG-IP の両側で個別の TCP プロファイルを使用して より明確にフェイルオーバーを処理し 接続の両側を最適化します F5 導入ガイド 1-8
デフォルトのプロファイルを使用することも可能ですが 初期的には設定を変更していない場合でも デフォルトの親プロファイルを基にして新しいプロファイルを作成することを強くお勧めします 新しいプロファイルを作成することで この導入に固有なプロファイル設定を簡単に変更できます クライアント側 TCP プロファイルの作成 まず クライアント側 TCP プロファイルを設定します 次の手順では Oracle Net 設定 ( 以前の Oracle SQL*Net) の多くの値を理解している必要があります これらの値は この手順を開始する前に理解しておいてください 注 この例では クライアントは データベースサーバにローカルな LAN セグメントのアプリケーションサーバです そのため tcp-lan-optimized という親プロファイルを使用します すべての環境は異なるため 実際の設定に最適な親 TCP プロファイルを選択してください 新しい TCP プロファイルを作成するには 1. [Main] タブの [Local Traffic] を展開し [Profiles] をクリックします [HTTP Profiles] 画面が開きます 2. メニューバーの [Protocol] メニューから [TCP] をクリックします 3. [Create] ボタンをクリックします [New TCP Profiles] 画面が開きます 4. [Name] ボックスに このプロファイルの名前を入力します この例では ora11g-rac-client-tcp_profile と入力します 5. [Protocol Profile] リストから [tcp-lan-optimized] を選択します 6. [Settings] セクションで テーブルの上の [Custom] ボックスをクリックします これにより すべてのチェックボックスが選択され 次の設定を変更できるようになります 7. [Maximum Syn Retransmissions] ボックスに Oracle Net 設定の TCP.CONNECT_TIMEOUT の値を入力します Oracle 設定の TCP.CONNECT_TIMEOUT の値をデフォルトから変更していない場合 BIG-IP 設定の [Maximum Syn Retransmissions] の値を変更する必要はありません ただし TCP.CONNECT_TIMEOUT 値を Oracle が推奨している 10 秒に設定している場合 [Maximum Syn Retransmissions] の値を 5 に変更します 次のことに注意してください 注 : BIG-IP での SYN 再転送間の時間は 指数的に増加します たとえば 最初の再転送は 1 秒後に発生し 次の再転送は 2 秒後 3 回目は 4 秒後 4 回目は 8 秒後というように発生します Oracle が推奨する 10 秒を設定している場合 BIG-IP 設定で 5 (16 秒 ) を使用することをお勧めします 1-9
Oracle Database および RAC における BIG-IP LTM の導入 Oracle TCP の Connection Timeout の設定の詳細については http://download.oracle.com/docs/cd/e16338_01/network.112/b562 87/sqlnet.htm#BIIDDACA を参照してください 8. [Idle Timeout] ボックスに Oracle Net 設定の SQLNET.EXPIRE_TIME の値を入力します Oracle 設定の SQLNET.EXPIRE_TIME の値をデフォルトから変更していない場合 BIG-IP 設定の [Idle Timeout] の値を変更する必要はありません ただし SQLNET.EXPIRE_TIME 値を Oracle が推奨している 10 秒に設定している場合 [Idle Timeout] の値を 660 (11 分 ) など 大きい値に変更してください Oracle Net の Expire Timeout の設定の詳細については http://download.oracle.com/docs/cd/e16338_01/network.112/b562 87/sqlnet.htm#BIIEEGJH を参照してください 注 : [Idle Timeout] の値を Oracle SQLNET.EXPIRE_TIME 設定より大きい値に設定することで BIG-IP でアイドル接続が十分に確保され 古い接続のクリーンアップに役に立ちます 9. [Send Buffer] ボックスに Oracle Net RECV_BUF_SIZE 設定より大きい値を入力します BIG-IP のデフォルトサイズは 64KB です これは Oracle デフォルトサイズの 8KB に十分な値です Oracle のデフォルトは データベースを実行する Operating System に固有です Oracle のソケットバッファサイズの設定の詳細については http://download.oracle.com/docs/cd/e16338_01/network.112/b562 88/performance.htm#NETAG0142 を参照してください 10. [Receive Window] ボックスに Oracle Net SEND_BUF_SIZE 設定より大きい値を入力します BIG-IP のデフォルトサイズは 64KB です これは Oracle デフォルトサイズの 32KB に十分な値です Oracle のデフォルトは データベースを実行する Operating System に固有です Oracle のソケットバッファサイズの設定の詳細については http://download.oracle.com/docs/cd/e16338_01/network.112/b562 88/performance.htm#NETAG0142 を参照してください 11. [Keep Alive Interval] ボックスに [Idle Timeout] に指定した値より大きい値を入力します BIG-IP で Keep Alives 接続を使用しない場合 値を Indefinite に設定します F5 導入ガイド 1-10
12. [Finished] ボタンをクリックします 図 6 TCP プロファイル設定 ( 一部省略 ) サーバ側 TCP プロファイルの作成 次の手順では サーバ側 TCP プロファイルを作成します サーバ側 TCP プロファイルを作成するには クライアント側 TCP プロファイルの作成 (1-9 ページ ) の手順に従いますが 次の部分が異なります 手順 4: プロファイルの名前を一意で指定します この例では ora11g-rac-server-tcp_profile と入力します 手順 7: [Maximum Syn Retransmissions] は変更せずデフォルト値を使用します バーチャルサーバの作成 次に 上記の手順で作成したプロファイルおよびプールを参照するバーチャルサーバを設定します 1-11
Oracle Database および RAC における BIG-IP LTM の導入 バーチャルサーバを作成するには 1. [Main] タブで [Local Traffic] を展開し [Virtual Servers] をクリックします [Virtual Server] 画面が表示されます 2. [Create] ボタンをクリックします [New Virtual Servers] 画面が開きます 3. [Name] ボックスに このバーチャルサーバの名前を入力します この例では ora11g-rac-primary-standby_vs と入力します 4. [Destination] セクションで [Host] オプションボタンを選択します 5. [Address] ボックスに このバーチャルサーバの IP アドレスを入力します この例では 10.133.17.121 を使用します 6. [Service Port] ボックスに Port と入力します この例では 1521 と入力します 7. [Configuration] リストから [Advanced] を選択します 8. [Type] リストはデフォルト設定の [Standard] のままにします 9. [Protocol Profile (Client)] リストから クライアント側 TCP プロファイルの作成 の項で作成したプロファイルの名前を選択します この例では [ora11g-rac_client-tcp-profile] を選択します 10. [Protocol Profile (Server)] リストから サーバ側 TCP プロファイルの作成 の項で作成したプロファイルの名前を選択します この例では [ora11g-rac_server-tcp-profile] を選択します 図 7 バーチャルサーバ設定 ( 一部省略 ) 11. [SNAT Pool] リストから [Auto Map] を選択します 12. [Resources] セクションで [Default Pool] リストから プールの作成 の項で作成したプールを選択します この例では [ora11g-rac-primary-standby_pool] を選択します F5 導入ガイド 1-12
13. [Default Persistence Profile] リストから [dest_addr] を選択します 14. [Fallback Persistence Profile] リストから [source_addr] を選択します 15. [Finished] ボタンをクリックします 図 8 バーチャルサーバでのプールおよびパーシステンス設定 1-13
Oracle Database および RAC における BIG-IP LTM の導入 付録 A: BIG-IP 設定のバックアップおよび復元 この設定が終了したら BIG-IP 設定を保存することをお勧めします BIG-IP 設定を保存すると 次の重要なデータが収集され 単一の User Configuration Set (UCS) ファイルが圧縮されます BIG-IP 設定ファイル BIG-IP ライセンスおよびパスワード SSL 証明書 SSH 鍵 BIG-IP 設定の保存および復元 Configuration ユーティリティを使用すると BIG-IP を設定するために編集できるすべての設定ファイルを保存および復元できます これらの設定ファイルは User Configuration Set (UCS) と呼ばれます Configuration ユーティリティを使用して BIG-IP 設定を保存するには 1. [Main] タブの [System] を展開し [Archive] をクリックします 2. [Create] ボタンをクリックします 3. [File Name] ボックスに このアーカイブサーバの名前を入力します 4. その他の設定は省略可能です 5. [Finished] ボタンをクリックします アーカイブが作成されます BIG-IP 設定を復元するには 1. [Main] タブの [System] を展開し [Archive] をクリックします 2. [Upload] ボタンをクリックします 3. [File Name] ボックスに ファイル名を入力するか [Browse] をクリックして検索します 4. [Upload] をクリックします F5 導入ガイド 1-14