Comments
Description
Transcript
ORACLE RAC PACK
1 2 ORACLE RAC PACK 簡単にできるデータベース・ストレージ設計 Nitin Vengurlekar RAC/ASM Development 3 本書は、弊社の一般的な製品の方向性に関する概要 を説明するものです。また、情報提供を唯一の目的と するものであり、いかなる契約にも組み込むことはでき ません。本書は、マテリアルやコード、機能の提供を確 約するものではなく、また、購買を決定する際の判断 材料とはなりえません。オラクルの製品に関して記載さ れている機能の開発、リリース、および時期について は、弊社の裁量により決定いたします。 4 プログラム概要 • 重要な用語および定義の確認 • I/O設計手法 • I/Oコンポーネントの概要 • Oracle ASMの概要および影響 • 全体像の把握 • 構成の検証 • まとめ 5 セッションの目標 • アプリケーション要件を満たすI/Oインフラストラクチャを定義 する方法を理解する • 事後対策ではなく、事前対策 • ストレージ・チームとの効果的なコミュニケーションのために 十分なサポート情報を提供する • 一般的な用語の使用 このプレゼンテーションは、iSCSIネットワークまたはSASネットワークにも適用できますが、おもに、もっとも広 く使用されるFCサブシステムを対象とします。 このセッションの主要な目的は、DBAがストレージ管理者とインテリジェントに対話するために十分なサポート 情報を提供し、アプリケーションのI/O要件がグループ全員に正しく伝達され、理解されるようにすることです。 6 用語と定義 • スループット • 一定時間内にメディア上で転送される情報量(ビット)を示す指標 通常、データ転送速度について論じる場合に使用されます • 多数の要因により、一般的にスループットは特定の帯域幅と一致しません 要因の一部を以下に示します • ネットワーク上のトラフィック量とその種類 • 測定対象のネットワーク・パスで確認されるネットワーク・デバイスの数 (パス・レイテンシ) • グッドプット • 一定時間内に転送される使用可能なデータの測定値(資源効率の大きさ) • したがって、スループットが高くても、グッドプットが相応でない場合あり • 現在のシステムのパフォーマンスの確認 – SQLチューニング、ログ・ファイ ルのI/O待機時間(とくにOracle RACの場合) • データベース・リソース・マネージャを使用して、優先順位の高い作業が適 切にスケジュールされることを確認 スループット スループットとは、一定時間内にメディア上で転送される情報量(ビット)を示す指標です。多数の要因により、 一般的にスループットは特定の帯域幅と一致しません。 スループットは、多くの要因に左右されます。たとえば、トラフィックの量と種類、測定対象のネットワークで確 認されるネットワーク・デバイスの数(パス・レイテンシ)が挙げられます。 どのようなネットワーク(FCネットワークを含む)においても、スループットが、ソースから宛先までのパスのもっ とも低速のリンクより速くなることはありません。セグメントのすべてまたは大半の帯域幅が高い場合に も、スループットの低いパスが1つでもあれば、ネットワーク全体のボトルネックとなります。 帯域幅とは、選択されたメディアを介して、物理的に送信できる情報の量です。 グッドプット レビュー、カーソルごとの実行数、実行ごとの行数など。グッドプットが低い場合、スケーラビリティが低下し ます。 使用できるデータの転送を測定します。この測定値がグットプットとして知られています。グットプットは、一定 時間に転送される使用可能なデータの尺度です。したがって、スループットが高くても、グットプットがあ まり高くないことがあります。この原因は、問合せが十分に調整されていないために(応答時間が速い場 合でも)、必要以上のデータを要求するからです。グッドプットは、資源効率の尺度です。 7 用語と定義 • IOPS • 1秒ごとのI/O処理の標準的な測定単位。すべての読取りと書込みを含め る必要があります • 小規模ブロックのランダムI/O要求を処理するためのストレージ・システム 機能を評価する手段です • I/Oレート・ドリブンのアプリケーション(OLAP、ランダムI/O)を示すために 使用します • MB/秒 • 1秒あたりの転送レート(MB)です • 応答時間特性なしで、大規模ブロックの順次転送レートを測定するため に使用します • データ・レート・ドリブンのアプリケーション(DSS、OLAP)を示すために使 用します • トランザクション/秒 – あらゆるトランザクション 以下を使用して、データの一部を集計できます。CERNの研究員の皆様がまとめてくれました。 set lines 250 set pages 9999 spoolsysmetric_outp.log alter session set nls_date_format='dd-mm-yyyyhh24:mi'; select min(begin_time), max(end_time), sum(case metric_name when 'Physical Read Total Bytes Per Sec' then average end) Physical_Read_Total_Bps, sum(case metric_name when 'Physical Write Total Bytes Per Sec' then average end) Physical_Write_Total_Bps, sum(case metric_name when 'Redo Generated Per Sec' then averageend) Redo_Bytes_per_sec, sum(case metric_name when 'Physical Read Total IO Requests Per Sec' then average end) Physical_Read_IOPS, sum(case metric_name when 'Physical Write Total IO Requests PerSec' then average end) Physical_write_IOPS, sum(case metric_name when 'Redo Writes Per Sec' then average end) Physical_redo_IOPS, sum(case metric_name when 'Current OS Load' then average end) OS_LOad, sum(case metric_name when 'CPU Usage Per Sec' then average end) DB_CPU_Usage_per_sec, sum(case metric_name when 'Host CPU Utilization (%)' then average end) Host_CPU_util, -NOTE 100% = 1 loaded RAC node sum(case metric_name when 'Network Traffic Volume Per Sec' thenaverage end) Network_bytes_per_sec, snap_id from dba_hist_sysmetric_summary group by snap_id order by snap_id; spool off 8 一般的な誤解 「2ギガビット(Gb)のHBAを購入すれば、スループットが2GB になる。これは、400MB/秒のアプリケーションに十分な スループットである」 「500GBのディスク・ドライブがあるので、 ディスクが2つあれば1TBのデータベースを保存できる」 2GbをMBに換算する方法: 2Gb = (2* 1024 * 1024 * 1024) / (1024* 1024) / 8bits = 2147483648 / 1048576 = 2048 / 8 = 256MB 9 I/O設計および計画 • I/O設計および計画の一般的なシナリオ • 新規システムを最初から構築する – 新規インフラストラクチャ • 既存のアプリケーションを拡張する – 現在のインフラストラクチャ の拡張/強化 • セッションでは、このシナリオに焦点を合わせます 10 I/O設計および計画 • アプリケーションのI/O特性の確認 • PRO、RTO、応答時間のSLA、I/Oレートなど • 各I/Oコンポーネントの帯域幅制限の理解 • アプリケーション要件に適合する正しいI/Oコンポーネントの選択 • 目標: • 容量ではなく、スループットのための設計 • スケーラビリティと可用性のための設計 RPO – リカバリ・ポイント目標:どのポイント/状態までデータをリカバリする必要があるか RTO – リカバリ時間目標:データのリカバリに必要な許可時間 11 アプリケーションのI/O特性の確認 • AWRレポートを使用して、I/Oメトリック(1秒ごとのインスタンス・ アクティビティ統計)を確認します • IOPS = “物理読取りの合計I/Oリクエスト” + “物理書込みの合計 リクエスト” • MB/秒 = “物理読取りの合計バイト” + “物理書込みの合計バイト” • Oracle RAC環境の場合 – すべてのノードのIOPSまたはMB/秒を集計 • バックアップ要件を含めます • バックアップするデータの量、頻度、およびバックアップの時間枠に 割り当てられた時間の定義 • これらの値とアプリケーション特性は、システム管理者および ストレージ管理者に通知する必要があります これらの統計は、以下を使用して取り出せます。 set lines 250 set pages 9999 spoolsysmetric_outp.log alter session set nls_date_format='dd-mm-yyyyhh24:mi'; select min(begin_time), max(end_time), sum(case metric_name when 'Physical Read Total Bytes Per Sec' then average end) Physical_Read_Total_Bps, sum(case metric_name when 'Physical Write Total Bytes PerSec' then average end) Physical_Write_Total_Bps, sum(case metric_name when 'Physical Read Total IO Requests Per Sec' then average end) Physical_Read_IOPS, sum(case metric_name when 'Physical Write Total IO Requests Per Sec' then average end) Physical_write_IOPS, snap_id from dba_hist_sysmetric_summary group by snap_id order by snap_id; spool off 新規アプリケーションまたは非既存アプリケーションの場合は、ビジネス・ルールまたはデータ・モデル・トランザクション・プロファイ ル・フローを使用して、「トランザクションが何であるか」を理解し、次に1秒ごとまたは1時間ごとのトランザクションを推定します。 必要に応じて、コンサルティングの仕事で使用した数字も使用できます。これらの数字は、単なるガイドライン値です。 以下の値をOLTPシステムの基本的なガイドラインとして使用します。 低トランザクション・システム – 1,000IOPSまたは200MB/秒 中トランザクション・システム – 5,000IOPSまたは600MB/秒 ハイエンド・トランザクション・システム – 10,000IOPSまたは1GB/秒 <-ほとんど実現されることがなく、一般的にTPC-Cタイプ ワークロード 以下をDSSシステムの基本的なガイドラインとして使用します(単位はGig = GB/秒)です。 12 顧客の例 – AWRレポート 1秒ごとのインスタンス・アクティビティ統計 物理読取りの合計I/Oリクエスト 1,197.43 67,932,081.00 1,050.86 65,114,880.37 物理読取りの合計バイト 物理書込みの合計I/Oリクエスト 物理書込みの合計バイト 合計: 物理読取りの合計I/Oリクエスト + 物理書込みの合計I/Oリクエスト ~ 2,247IOPS 物理読込みの合計バイト + 物理書込みの合計バイト ~ 133MB/秒 IOPSおよびMB/秒の確認が終われば、”大きな作業”は完了します。 13 I/Oスタック・コンポーネントの概要 RDBMS キャラクタ/ブロック マルチパス • データベース • キャラクタ・デバイス・ドライバまたは ブロック・デバイス・ドライバ • マルチパス化ドライバ • SCSIドライバ • HBA • システム・バス • スイッチ/iSCSIルーター • ストレージ・アレイ • ディスク SCSIドライバ システム・バス HBA Fibre スイッチ Fibre HBA Fibre スイッチ Fibre コントローラ コントローラ キャッシュ ディスク ディスク ディスク Oracle ASMデータベース キャラクタまたはブロック・デバイス・ドライバ マルチパス化ドライバ – PowerPath、Windows MPIO SCSIドライバ HBA – ホスト・バス・アダプタ、Qlogic、Emulex System Bus-PCI スイッチ/iSCSIルーター – Brocade、McData ストレージ・アレイ – EMC、HDS、HP ディスク - Seagate データベース・プロセスは、ブロック・デバイスへのコールをおこないます。LinuxのI/Oスケジューラは、汎用ブ ロック・レイヤーと低レベルのデバイス・ドライバの間にインタフェースを形成します。ブロック・レイヤーは、ファ イル・システム、データベース(10g Release 2)および仮想メモリ・マネージャがブロック・デバイスにI/Oリクエ ストを送信するために使用する機能を提供します。これらのリクエストは、I/Oスケジューラによって変換され、 低レベルのデバイス・ドライバが使用できるようになります。デバイス・ドライバは、変換されたリクエストを使用 し、(デバイス固有のプロトコルを使用することで)I/O操作を実行する実際のデバイス・コントローラに転送しま す。 14 帯域幅制限の理解および 正しいコンポーネントの選択 • "もっとも弱いリンク"がスルー プットを定義します • 次のコンポーネントを検討し ます FCスイッチ1 ディスク コントローラ1 ディスク コントローラ2 ディスク コントローラ3 • CPU:数量と速度 • HBA(ホスト・バス・アダプタ): 数量と速度 • スイッチの速度:ポートの速度 • コントローラ:数量と速度 • ディスク:数量と速度 FCスイッチ2 ディスク コントローラ4 ディスク コントローラ5 ディスク コントローラ6 ディスク コントローラ7 ディスク コントローラ8 要求されるI/O需要にかならず対応するために、I/Oパスのすべてのシステム・コンポーネントを統合し、連携さ せる必要があります。 もっとも弱いリンクが、I/Oスループットを決定します。 DWシステムの場合、I/Oデータ率が高いため、固有の事項を考慮する必要があります。 CPUのパワー – ETL処理、非データベースI/O処理の占有率です。 HBAの数 – IOPSではなく、MB/秒により決定します。 サーバー・メモリ DWは、混在したワークロード – トランザクション + DSSです。しかし、DSSのドレインが大きいので、DSS のサイズになります。 ホストのI/Oスループットを向上させるには、Oracle RACにノードを追加し、ワークロードを分散します。 FCスイッチをオーバーサブスクライブしないでください。 OLTPシステムの場合: このようなSANのストレージ・ポートの分岐率は、通常、サーバーからストレージへのサブシステム・ポートで、 6:1から12:1の範囲にあります。この率は、これらのサブシステム・ポートを越えるさまざまなサーバー・プラッ トフォームやアプリケーションのバランスをとり、使用可能な帯域幅を十分に使用します。同時に、各HBAの最 大スループットを有効にして、任意の時点で、ほぼワイヤー速度のスループットを実現します。また、この率は、 サーバーのHBAが接続されているファイバ・チャネルのスイッチ・ポートが、ほとんどの場合、十分に活用され ていないことを示します。最良の価格性能比のメトリックを達成するには、ストレージ・サブシステム・ポートが フル・ラインレートのパフォーマンスにアクセスでき、ファイバ・チャネルのスイッチ・ファブリックがノンブロッキ ングである限り、サーバーのHBAに接続されたスイッチ・ポートをオーバーサブスクライブするのが一般的で す。 CPU要件は、ユーザーのワークロードに左右されます。 ユーザーの同時実行性、CPU関連タスクの比率 メモリ要件、おもにユーザー・プロセス駆動型のI/O要件は、問合せの組合せに依存します。 CPU対I/O • I/O関連タスクに対する相対的なCPUパワー 論理的にランダムなI/O(スター・スキーマでは主要) • インデックス駆動型の問合せで必要です。例:インデックス検索、インデックス駆動型の結合、イン デックス・スキャン 15 帯域幅制限の理解および 正しいコンポーネントの選択 • データベース - ハードウェアの能力に応じた拡張 I/Oスループットは、CPU、SCSIドライバ、HBAなどのI/Oコンポーネントにより 制限されます • DSS環境では、GHz/CPUごとの75~100MB/秒のアプリケーション計画に対応する ために十分なCPUリソースが使用可能であることを確認します • ホストで最大のI/Oリクエストが定義されていることを確認します - これは1MBです • Oracle ASMデバイスに対して実行されるすべてのデータベースI/Oは、データベース によって開始され、処理されます。つまり、Oracle ASMは関与しません • HBA - タイプに依存(1、2、4Gbit/秒) • 2Gb FC HBA - 最善の速度: • 順次 - 150~180MB/秒 • ランダム・レートは、ブロック・サイズの関数。ブロック・サイズが大きいほど、 ランダム・レートが低くなります • 4GBit FC HBA - ~375MB/秒 データウェアハウスのハードウェアを構成する場合、I/O需要の予測が難しいため、I/O要件の定義は非常に 困難です。 一般的に、I/O要件は、問合せの組合せに左右されます。 現在のCPU(3GHz Xeonまたは2.2GHz Opteron)を前提とした経験則では、I/Oバウンドの問合せは、CPU ごとに約200MB/秒を処理できます。しかし、I/O要件が高い場合にも、I/OおよびCPUバウンドの問合せの比 率に依存します。 また、ランダムI/Oおよび順次I/Oを発行する問合せがさらにあるかどうかを調べることが重要です。ランダム I/Oは、インデックス駆動型の問合せ(たとえば、インデックス検索)やインデックス駆動型の結合(たとえば、ネ ステッド・ループインデックス、ビットマップ索引、インデックス・スキャン)での主流のI/Oです。順次I/Oは、ハッ シュ結合で使用される表スキャンでの主流のI/Oです。 ランダムIOPSレートは、ブロック・サイズおよびブロック・オーバーヘッドごとのコストにより決定されます。最大 の理論的レート(8KBブロック)は約16,000IOPSですが、ストレージ・システムはそれほど速く応答しません (100%のキャッシュ・ヒット・レートが必要)。 NASの場合(NFS環境): 単一のギガビット・イーサネットは、無理のない稼働率30%で約30MB/秒、70%という高稼働率で70MB/秒をサ ポートできます。 SCSIドライバ ポートあたりのI/Oレート(ランダムまたは順次)は、I/Oを操作するOSの機能およびストレージ・システムの 応答する機能により決定されます。 SCSIドライバ(Linux 2.6)からの最大のI/Oリクエストは1MBですが、測定された値または代表的な値は512K です。SCSIレイヤーの制限は512kです。 SCSIドライバの制限は、4kページの128エントリです。メモリの場所が隣り合っている場合、これらは1つのエ ントリと見なされます。したがって、I/Oリクエストは512kを超えることができます。ラージ・ページ(4MB)を使用 する場合、PTEの1回のエントリは、1つの物理セグメントに対して4MBです。IA-64(Itanium) – 16Kページサ イズ、128エントリ * 16K = 2MB。 前のスライドからわかるように、この部分で述べているのは、IOPSおよびMB/秒の要件と一致、またはそれを 上回る部分を探す必要があるということです。 16 帯域幅制限の理解および 正しいコンポーネントの選択 • Oracle RACの使用 - I/Oメトリックがサーバーのスループット (CPU、PCI帯域幅など)を超えた場合、Oracle RACを使用して スケール・アウトします • I/O負荷をRACノード全体に分散します • RACサービスに基づくワークロード管理を定義します PCIバス: PCI帯域幅の説明 – 多くのHBAを接続して、PCIバスに負担をかけないでください。PCIバス上のHBAごとの 割込みレートは、転送レートと同様に重要です。ただし、ホスト側のPCIバスの帯域幅に注意して、PCI機能が 満たされていることを確認してください。PCI-eは、2GB 200Mb/秒を処理できます。 ここで重要な概念は、”レーン”です。たとえば、4Gb FCを使用して、1つのポートHBAで全二重通信を実行す る場合、各方向に400MB/秒の帯域幅が必要です。PCI-Eの用語では、これは2レーンです。各レーンでフル・ スピードの通信が可能です。1つのレーンを使用できますが、250MB/秒に制限されます。IOPSのようなデー タベースの索引検索には問題にならない可能性があります。 ほかにオーバーヘッドがない場合に400MB/秒の転送と16KBのリクエストを使用する場合、1秒につき25,600 (毎秒400MB/16KBのリクエスト)のリクエストがサポートされ、同時に250MB/秒の単一レーンが16,000のリ クエストをサポートします。追加のオーバーヘッドがあるので、これらのレートは実現できませんが、いずれに しても、1レーンまたは2レーンが、ほとんどのサーバー、HBA、およびRAIDシステムによる結果を大幅に上回 ります。 したがって、IOPSの観点から見ると、1つのレーンと4GBのHBAはうまく機能します。デュアル・ポートの場合、 1つまたは2つのレーンは、ほとんどのRAID構成を飽和させます。ディスク・ドライブが最大限で毎秒150のI/O を処理できると仮定すると、フル・スピードで稼動するには多数のディスク・ドライブまたはキャッシュ・ヒットが 必要になります。ほとんどのコントローラには、8Kのコマンド・キューがないので、RAIDコントローラのコマンド・ キューも大幅に上回ることになります。 I/Oバスのパフォーマンスが、最速のホスト処理装置接続機構の速度を超えることはほとんどありません。あ らゆるカードを実行できるほどバスが高速になるというテクノロジーの歴史において重大な時期に到っていま す。これには、いくつかの前提があります。 17 帯域幅制限の理解および 正しいコンポーネントの選択 • ストレージ・アレイには、さまざまな種類とサイズがあります • ハイエンド • モジュラー型アレイ • 低コスト商品 • ストレージ・アレイで確認すべきパフォーマンス値 • 公開されたSPC-1の結果は、典型的なDBワークロードでの システムの動作に関する最良のインジケータです • I/Oメトリックの集計を使用して、ストレージ・アレイのサイズを設定 します • I/Oメトリックとアプリケーション特性をストレージのベンダーに 説明します アレイのアーキテクチャは大きなトピックで、詳細に説明することもできますが、このセクションでは、エンクロー ジャ内の各ディスク・アレイ・パス、およびキャッシュ・メモリに提供される内部帯域幅について説明します。 ディスク・エンクロージャまたはディスクは、FCループに接続されます。モジュラー型ストレージでは、これらの ループをある程度カスタマイズし、パフォーマンスを向上させることができます。ハイエンドのエンタープライズ・ アレイでは、ドライブ・ループ・テクノロジーはすでに特定のスループットのために事前に定義されています。中 程度のパフォーマンスのストレージ・システムの内部帯域幅は4GB/秒前後ですが、高度なスループットには、 8GB/秒から15GB/秒のテクノロジーから選択できます。 キャッシュへの読取り/書込みのスループットも、最大のストレージ・パフォーマンスのために考慮する必要が あります。ハイエンドのアレイの場合、キャッシュへの転送レートは、800MB/秒という高いレートになることが あります。中程度のレートのアレイでは、300~400MB/秒になります。 大きな差別化要因は、CPUの処理速度とオンボードのバス速度であり、I/Oリクエストがどれほど速く(うまく) バックエンドのアダプタとディスクに送られるかを示します。 18 帯域幅制限の理解および 正しいコンポーネントの選択 • ディスク・ドライブ – 必要悪 • ホストからのI/Oリクエストに対応することが唯一の機能 • I/Oスタックでもっとも遅いコンポーネント • 力学的側面をもつ – 検索、回転、データ転送時間 • さまざまな種類がある – SATA、FCなど • 73GB FC 15,000RPM • 146GB FC 15,000RPM • 146GB FC 10,000RPM • 300GB SATA 10,000RPM • 500GB SATA 7,200RPM ディスクのI/Oスループット(IOPS)の決定 1. 10,000RPMを60秒で割る(10,000/60 = 166RPS) 2. 166分の1を小数に変換する(1/166 = 0.0006秒/回転) 3. 回転ごとの秒数に1,000ミリ秒をかける(回転ごとに6MS) 4. 上記の結果を2で割る(6/2 = 3MS)または回転待ち時間 5. シーク時間のために平均3MSを加える(4MS + 3MS = 7MS) 6. 待機時間(内部転送)のために2MSを加える(7MS + 2MS = 9MS) 7. I/Oごとに1,000MSを8MSで割る(1,000/9 = 111IOPS) これは、10,000RPMドライブから得られるIOPSの実効値です。通常は検索オーバーヘッドのために、この値 から10%を差し引きます。 アプリケーションがI/Oを発行するたびに、10,000RPMのディスク上でそのI/Oに対応するために平均9MSが 必要になります。 これは一定の時間であるため、ディスクの読取りおよび書込みに費やす時間が、できる限り効率的に使用さ れることが必要です。 多くの場合、I/Oリクエストの量は、1秒当たりのI/O(IOPS)で測定されます。10,000RPMディスクは、80~ 100(バースト)IOPSをプッシュする能力をもっています。IOPSの効率を測定するには、各I/Oに関して読み取 られたデータまたは書き込まれたデータの量でOIPSの量を割ります。 19 最適なディスク・タイプの選択 • 使用するディスクに関する厳重な規定はありません • コストとパフォーマンスを考慮します • 一般的なガイドライン: • SATAディスク • 順次I/Oに最適 – アーカイブ・ログ、フラッシュバック・ログ、 RMANバックアップ • 階層ストレージ・アーキテクチャの2番目および3番目の層 (ILM、HSM)にも適する • 低コストのストレージ・ソリューションにおける使用 • 大量のIOPSおよび順次スループットが高いアプリケーションに 適した高速FCディスク 20 帯域幅制限の理解および 正しいコンポーネントの選択 ドライブのタイプ RPM 9msでのIOPS (95パーセンタイル) 持続的 スループット FCAL 10,000 80 20~30 MB/秒 FCAL 15,000 110 25~35 MB/秒 SATA 7,200 50 20~30 MB/秒 ディスク帯域幅に関する用語 – IOPSとスループットは、相互排他的です – 25MB/秒と110IOPSが 同時に達成されることはありません ディスク・ベンダーから入手したIOPSとMB/秒には注意が必要です。これらの数値は小規模なI/Oリクエスト (512バイト)に対するものです。 通常、このようなベンダーの数値から(ディスク検索、ポジショニング・オーバーヘッドのため)20~30%を引く ことを前提とする必要があります。 21 帯域幅制限の理解および 正しいコンポーネントの選択 • アプリに必要な物理ディスクの数 • IOPSまたはMB/秒のメトリックを使用して、物理ディスクの数を決定します • ストレージ・アレイI/Oキャッシュ・ヒット率がないものとして計算します • 2つの例 • 600MB/秒が必要な場合: (600MB/秒)/(ディスク当たり25MB/秒) = 24ディスク • 3,000IOPSが必要な場合: (3,000IOPS)/(ディスク当たり110IOPS) = 28ディスク • これは、Rawディスクです。ミラー化またはRAID化されていません 22 ディスクの構成 – ベスト・プラクティス • バックエンドで多数のディスクを使用します • 簡単な操作 – ランダムI/Oを順次I/Oから分離する必要はありません • より多くのディスク・スピンドルを使用する場合、あらゆる種類のI/O ワークロードを使用できることが証明されています • ディスクが複数のバックエンド・ディスク・アダプタにまたがって いることを確認します • もっともハイエンドのエンタープライズ・アレイでは、これは自動的に おこなわれます • ミッドレンジのアレイには、手動構成が必要な場合があります • 2つ以上のHBAまたはイニシエータを使用して、ストレージ・ アレイへの複数のアクセス・パスを実装します • ロード・バランシングおよびフェイルオーバーのためにマルチパス化を 使用します • ディスクが、ミッドレンジ・システム上の複数のバックエンド・ディスク・ループにまたがっていることを確認しま す(エンタープライズでは自動的に実行されます)。 • LUNを多く作りすぎた場合、RAIDグループの帯域幅は限定されているので、追加のIOPSまたはMBは得 られません。 • 複数のHBAは、ディスク・グループのディスクへの複数のアクセス・パスを提供します。マルチパス化ソフト ウェアには、PowerPath、MPxIO、Secure Pathなどがあります。 • ミッドレンジ・システムに対しても、フェイルオーバーの目的で同じことをします(すべてのミッドレンジ・システ ムは、コントローラに基づくLUNまたはRAIDグループを所有します – ストレージ・コントローラでこれを常に 動的に変更するには大きなコストがかかります)。 23 Oracle ASM "要素" • Oracle ASMについて • ボリューム・マネージャとファイル・システムは、Oracleカーネルに組み込まれています • データベース・ファイルにストレージ・プールを提供します • RAWディスク・パフォーマンスをもつファイル・システムです • Oracle ASMの利点 • データベースのエクステントをディスク・グループ内のすべてのディスクに 均等に分散します • I/Oが均等に広く分散されます。その結果、全体のスループットが向上し、 潜在的なホットスポットが最小限に抑えられます • 内在するストレージの複雑さをマスクして、ストレージ管理を簡素化します • I/Oスループットおよび容量を拡大するためにディスク・ストレージを動的に 追加できます Oracle ASMの主要な利点を以下に示します。 o ホットスポットを防止し、パフォーマンスを最大限にするために、I/Oをすべての使用可能な ディスク・ドライブに均等に分散します。 o Oracle ASMは、オーバー・プロビジョニングの必要性を排除し、ストレージ・リソース使用量 を最大化して、データベース統合を容易にします。 o 固有の大規模ファイルをサポートします。 o ストレージ容量の増分を追加または削除したあと、自動的にオンライン再分配を実行しま す。 o 高可用性を提供するため、またはサード・パーティ製のRAID機能を利用するためにデー タの重複するコピーを維持します。 o Oracle Database 10gおよびOracle Real Application Clusters(Oracle RAC)をサポートしま す。 o サード・パーティ製のマルチパス化テクノロジーを利用できます。 o 簡素化のため、またOracle ASMへ簡単に移行するために、Oracle Database 10g Release 2 データベースにはASMファイルと非ASMファイルを含めることができます。新規ファイルを ASMファイルとして作成でき、既存のファイルをOracle ASMに移行することもできます。 o RMANコマンドにより、非ASM管理ファイルをASMディスク・グループに再配置できます。 o Oracle Database 10g Enterprise Managerを使用して、ASMディスクおよびファイル管理アク ティビティを管理できます。 o Oracle ASMは、パフォーマンスまたは可用性を低下させることなく、Oracle Database 10gの コストと複雑さを軽減します。 24 Oracle ASM "要素" • ディスク・グループの構成の手順 • ホストにLUNを示します • Oracle ASMのディスク検出がプロビジョニングされたLUNを"見つける" ように、正しいディスクのアクセス権を確保します • 必要な数のディスクを使用して、ディスク・グループを作成します SQL> create diskgroup DATA external redundancy disks ’/dev/sda1’, ’/dev/sdb1’, /dev/sdc1’, ’/dev/sdd1’; • ASMディスク・グループでデータベース・ファイルを作成します SQL> create tablespace OOW_TBS datafile ’+DATA’ size 200G; 25 ASMディスク・グループのベスト・プラクティス • 2つのディスク・グループを作成します。1つはデータベース領域用、 もう1つはリカバリ領域用です • 多数の類似した種類のディスクを使用して、ディスク・グループを作成します • • 同じサイズの特性 • 同じパフォーマンスの特性 典型的な質問:ASMディスク・グループにはディスクがいくつ必要ですか どれだけのLUNサイズが必要ですか • 1. ディスクの数については回答済みです。それは、I/O要件に左右されます • 2. LUNサイズは、サイト固有のストレージ標準に依存します。LUNサイズは、 LUNの数ほど重要ではありません これらのディスクは、サイズとパフォーマンス特性が類似している必要があります。 DSS環境では、Tempfile(たとえば、TEMP_DG)のために第3のディスク・グループを作成することが賢明な 場合があります。 RAID 10またはRAID 5ストレージ・アレイLUNは、OSに提示するLUNの数を最小限にするために、ASMディ スクとして使用できます。 ; 例としては、EMC MetavolumesまたはHDS Sfvolsがあります。 26 全体の統合 顧客事例 27 顧客の概要 • • 顧客のアプリケーションはDSSシステムです • 現在のサイズは1.1TB • I/Oレートは1.33MB/秒および2247IOPS 顧客は、さらに2つのデータベースを統合し、ビジネス要件に したがって、より多くのユーザーに対応できることを望んでいます • I/O要件は800MB/秒に増加 • データベースは2TBに増加 • さまざまなサービス・ワークロードをサポートするために Oracle RACを実装 平均的なDWシステムでは、GHz/CPU当たり75~100MB/秒を計画する必要があります。 典型的なI/OおよびCPU集約型処理の組合せです。 これは概算であり、適宜調整します。 28 顧客のAWRレポート 1秒ごとの"インスタンス・アクティビティ統計" 物理読取りの合計I/Oリクエスト 物理読取りの合計バイト 物理書込みの合計I/Oリクエスト 物理書込みの合計バイト 1,197.43 67,932,081.00 1,050.86 65,114,880.37 合計: 物理読取りの合計I/Oリクエスト + 物理書込みの合計I/Oリクエスト ~ 2247IOPS 物理読込みの合計バイト + 物理書込みの合計バイト ~ 133MB/秒 29 プロセス・フローの設計 アプリには800MB/秒が必要です 各サーバーが200MB/秒の順次読 取りをサポートする必要があります。 200MB/秒 * 4 = 800MB/秒 各サーバーの順次スループットは、2 2Gb/秒 FC paths =~300MB/秒。4つのサーバーすべ てが維持できる転送量は 4 * 300MB/秒 = 1,200MB/秒 各スイッチは、システムの合計スループット 1,200MB/秒を保証するために、4つの専用パス で600MB/秒をサポートする必要があります。 4ポート*150MB/秒*2スイッチ FCスイッチ1 FCスイッチ2 ストレージ・アレイには2GBのコン トローラがあります。コントローラ が維持できるのは 8 * 150MB/秒 = 1,200MB/秒 ディスク コントローラ1 ディスク コントローラ2 ディスク コントローラ3 ディスク コントローラ4 ディスク コントローラ5 ディスク コントローラ6 ディスク コントローラ7 ディスク コントローラ8 各ディスクが25MB/秒を維持できるとし て、48ディスクを考慮します。 48 * 25MB/秒 = 1,200MB/秒 要求されるI/O需要にかならず対応するために、I/Oパスのすべてのシステム・コンポーネントを統合し連携さ せる必要があります。 もっとも弱いリンクが、I/Oスループットを決定します。 例- 左側にシステムの高度な図が表示されます。これは、4ノードのシステムで各ノードに2つのHBAがあり、ファ イバ・チャネル・スイッチが2つあります。ファイバ・チャネル・スイッチは、それぞれ4つのディスク・アレイに接 続されています。I/Oパスのコンポーネントは、HBA、ケーブル、スイッチおよびディスク・アレイです。パフォー マンスは、HBAの数と速度、スイッチの速度、コントローラの数量と速度、さらにディスクの数と速度に応じて 変わります。これらのコンポーネントのいずれかの構成が十分でない場合、システム・コンポーネントはそのコ ンポーネントによって決定されます。 2GBのHBAを想定すると、ノードは200MB/秒の約8倍、つまり1.6GB/秒を読み取ることができます。また、各 ディスク・アレイに1つのコントローラがあるとすると、8のアレイのすべてが200MB/秒の8倍、つまり1.6GB/秒 を読み取ることができます。したがって、ファイバ・チャネル・スイッチのそれぞれもポート当たり最低2GB/秒を 送信する必要があり、スループットの合計は800MB/秒になります。2つのスイッチは、必要とされる1.6GB/秒 を送信します。 システムのサイズを設定する際には、システムの限界も考慮に入れます。たとえば、ノード当たりのバス・スロッ トの数は限られており、HBAとネットワーク・カードの間で共有する必要があります。 一部の例で、スロットが使い果たされている場合は、デュアル・ポート・カードが存在します。ノード当たりの HBAの数が、ファイバ・チャネル・スイッチの最大数を決定します。スイッチ上のポートの合計数がHBAおよび ディスク・コントローラの数を制限します。 30 顧客事例 – 実装された構成 • Oracle RAC 10g Release 2 – 4サーバー、各サーバーに 8つのCPU、2つのHBAを使用 • EMC Clariion CX3-40 • 4つのDAEトレイがあり、各トレイに15のドライブ - 146GB 15,000rpm FCドライブ • 13の260GB RAID I/O LUN(バックエンドに52のスピンドル) を使用して、DATAディスク・グループに対して13のASMディ スクを作成 CX3-40、SP当たり4GBのメモリ。 4つのDAEトレイ。各トレイに15のドライブ。146KB 15,000rpmのFCドライブ。 ベース(トレイ0)には、EMCアレイのソフトウェアおよびボールトのために確保された最初の5つのドライブが 含まれます。そのDAEエンクロージャ(エンクロージャ0)のドライブ13/14は、ホット・スペアとして構成されてい ます。 エンクロージャ1、2、3はグループ化され、2+2R1/0 LUNを形成します。そのような13のLUN(52のスピンドル) が、13のASMディスクの作成に使用されました。各ASMディスクの容量は260GBです。使用可能な容量の合 計は13 x 260 = 3.3GBです。さらに2つのSATAトレイが、7,200rpmのSATAドライブをもつFRAで使用できる ように構成されました。 31 顧客事例 – 実装された構成 • 新しい本番AWRレポート – ノード1 物理読取りの合計I/Oリクエスト 物理読取りの合計バイト 物理書込みの合計I/Oリクエスト 物理書込みの合計バイト 1,797.23 89,232,081.00 1,550.44 75,227,212.40 合計: 物理読取りの合計I/Oリクエスト + 物理書込みの合計I/Oリクエスト = 3,347IOPS 物理読込みの合計バイト + 物理書込みの合計バイト ~ 165MB/秒 *このレポートは、クラスタの4ノードのすべてに関して集計する必要があります。 4つのノード全体で集計されたMB/秒は、~660MB/秒です。 32 顧客事例 – 実装された構成 • I/Oの動作を確認します Top 5 Timed Events Avg %Total ~~~~~~~~~~~~~~~~~~ wait Call Event Waits Time (s) (ms) Time Wait Class ------------------------------ ------------ ----------- ------ ------ ---------CPU time 173,911 32.2 PX Deq Credit: send blkd 9,462,161 124,532 13 23.1 Other db file scattered read 3,834,332 56,639 15 10.5 User I/O direct path read 3,604,017 32,753 9 6.1 User I/O latch: cache buffers chains 16,494,723 18,563 1 3.4 Concurrenc “PX Deq Credit:send blkd”待機イベントは、アイドル状態の待機イベントです。この待機時間は、プロセスが メッセージを送信しようとする際にフロー制御クレジットがない場合、PQOで発生します。プロセスは、まずメッ セージをデキューし、クレジットを取得する必要があります。受信者がデキューしていないか、前のメッセージ を完全に消費していない、またはその両方であることを示します。 33 構成の検証 • テスト環境で構成を検証します • 可能な場合、代表的なワークロードを投入します • • Oracle Database 11gのOracle Real Application Testingを 使用して、現在のワークロードを再生します SwingbenchまたはOrionを使用して、本番I/Oワーク ロード特性を模倣します 提案された構成でIOPSまたはMBを維持できることを確認します。 ORION(較正ツール)を使用して、提案された構成でIOPSまたはMBを維持できるかどうか検証します。 34 まとめ • アプリケーションのSLAおよびI/O要件の決定 • 各I/Oコンポーネントの帯域幅制限の理解 • スケーラビリティ、可用性、およびスループットのための設計 35 追加情報 search.oracle.com または otn.oracle.com/asm 36 37