ヘッダーをスキップ
Oracle Database VLDBおよびパーティショニング・ガイド
11gリリース1(11.1)
E05787-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

9 VLDBの記憶域管理

データ・ウェアハウス環境の記憶域のパフォーマンスは、多くの場合、I/Oスループット(MB/s)に換算されます。OLTPシステムでは、1秒当たりのI/Oリクエスト数(IOPS)がパフォーマンスの重要な尺度です。

この章では、VLDB環境のみに関してデータベース・ファイルの記憶域管理を説明します。Oracle Databaseソフトウェアなどデータベース以外のファイルについては、管理方法がVLDB以外のデータベースと変わらないためここでは扱いません。このため、VLDB環境の記憶域システムの高可用性、パフォーマンスおよび管理性の側面を中心に説明します。

この章の内容は次のとおりです。


注意:

Oracleでは、RAWデバイスやファイル・システム上のデータベース・ファイルを使用できます。また、RAWデバイスまたは論理ボリューム上での自動ストレージ・マネージャ(ASM)の使用もできます。可能であればASMを使用することが推奨されます。

高い可用性

高可用性は、記憶域の冗長性を実装することで達成できます。これを記憶域の用語ではミラー化技法と呼びます。データベース環境でのミラー化には次の3つの方法があります。

ASMを使用しないソフトウェアベースのミラー化はお薦めしません。次の項では、ハードウェアによるミラー化とASMを使用するミラー化について説明します。


注意:

クラスタ構成では、使用するソフトウェアがクラスタ機能をサポートする必要があります。ASMはOracleデータベース・ファイル用のクラスタ・ファイル・システムです。

ハードウェアベースのミラー化

ほとんどの外部ストレージ・デバイスでは、様々なRAID(Redundant Array of Inexpensive Disks)レベルがサポートされています。VLDB環境で最もよく使用される高可用性ハードウェアRAIDレベルは、RAID 1およびRAID 5です。VLDB環境ではそれほど一般的ではありませんが、他の高可用性RAIDレベルも使用できます。

RAID 1でのミラー化

RAID 1は基本的なミラー化技術です。記憶域に書き込まれるすべての記憶域ブロックは、RAID設定で定義されたように異なる2つの物理デバイスに格納されます。RAID 1ではフォルト・トレランスが提供されます。つまり、1台のデバイスで障害が発生すると、もう1台のミラー化されたデバイスがデータのリクエストに応答できます。RAID 1設定での2つの書込みは記憶域レベルで生成されます。RAID 1が有効に機能するには少なくとも2つの物理ディスクが必要です。

ストレージ・デバイスには、通常、リクエストが届いたときにプライマリとミラーのいずれかを読み取る機能があります。これにより、高可用性対応に設計された他のRAID構成に比べて高いパフォーマンスが得られます。RAID 1は、最も単純なハードウェア高可用性実装ですが、データを格納するために必要な記憶域が2倍になります。多くの場合、RAID 1はRAID 0(ストライプ化)と組み合せてRAID 0+1構成で使用されます。最も単純なRAID 0+1構成では、個々のストライプが2台の物理デバイス間でミラー化されます。

RAID 5でのミラー化

RAID 5には、少なくとも3台のストレージ・デバイスが必要です。通常は4〜6台のデバイスが1つのRAID 5グループで使用されます。RAID 5を使用すると、デバイスに書き込まれるデータ・ブロックごとにパリティが計算されて、別のデバイスに格納されます。読取り時にパリティがチェックされます。パリティ計算は記憶域レイヤーで行われます。RAID 5で高可用性が得られるのは、デバイス障害時に、別のデバイスに格納されているパリティに基づいてデバイスの内容を再構築できるためです。

RAID 5では優れた読取りパフォーマンスも提供されます。書込みは、記憶域レイヤーでのパリティ計算のために遅くなることがあります。RAID 5では、グループ内のデバイス数によって異なりますが、必要な記憶域容量は2倍よりは少なくなります。RAID 5は比較的複雑なため、ストレージ・デバイスによってはRAID 5設定がサポートされないものもあります。

ASMを使用したミラー化

自動ストレージ・マネージャ(ASM)によって、ソフトウェアベースのミラー化機能が提供されます。ASMでは、通常の冗長性(ミラー化)と高い冗長性(トリプル・ミラー化)がサポートされます。また、ASMでは、外部冗長性の使用もサポートされます。この場合、ASMでさらにミラー化が実行されることはありません。ASMの通常の冗長性は、RAID 1ハードウェア・ミラー化と同等です。

ASMによるミラー化では、ミラーはデータベース・サーバーによって作成されます。このため、ASMミラー化を使用すると、ハードウェアベースのミラー化に比べて、書込み時にさらにI/Oスループットが必要になります。構成やハードウェアRAIDコントローラの速度によって異なりますが、ASMによるミラー化またはハードウェアRAIDではデータ・ロードのボトルネックが発生することがあります。

ASMでは、障害グループの定義により冗長性が有効になります。ASMによって障害グループの境界を超えてデータがミラー化されるためです。たとえば、VLDB環境では、1つのディスク配列ごとに1つの障害グループを定義できます。この場合、ASMによって、ミラー化されたデータは必ず別のディスク配列に配置されます。このようにして、1つのディスク配列の1つのディスクの障害を切り抜けるだけではなく、ディスク配列全体のクラッシュやディスク配列のすべてのチャネルの障害も乗り越えることができます。通常、ハードウェアRAID構成ではこのようなフォルト・トレランスはサポートされません。

通常の冗長性を使用するASMでは、データを格納するために必要なディスク領域が2倍になります。高い冗長性では3倍のディスク領域が必要です。


関連項目:

『Oracle Databaseストレージ管理者ガイド』

パフォーマンス

ストレージ・デバイスの最適なスループットを実現するには、複数のディスクをパラレルで作動させる必要があります。これは、ストライプ化という技法を使用して行いますが、このとき、複数のデバイスにある同じサイズのスライス(ストライプ)にデータ・ブロックを格納します。ストライプ化により、優れたパフォーマンスとスループットを得るための記憶域構成が可能になります。

ストレージ・デバイスの最適なパフォーマンスは、シーク・タイムと、ディスク上の連続ブロックへのアクセスのトレードオフで決まります。VLDB環境では、OLTPシステムとデータ・ウェアハウス・システムの両方において、ストライプ・サイズを1MBにすると、最適なパフォーマンスとスループットを実現するための適切なバランスを得られます。データベース環境でのストライプ化には次の3つの方法があります。

ストライプ化技法を組み合せて使用することが可能ですが、ストライプ化によってパフォーマンスを向上させるためには、ストライプを異なるデバイスに物理的に格納することを確認してください。概念の面では、ASMを使用しないソフトウェアベースのストライプ化はハードウェアベースのストライプ化と大変よく似ています。次の項では、ハードウェアベースのストライプ化とASMを使用するストライプ化について説明します。


注意:

クラスタ構成では、使用するソフトウェアがクラスタ機能をサポートする必要があります。ASMはOracleデータベース・ファイル用のクラスタ・ファイル・システムです。

ハードウェアベースのストライプ化

一番外側にあるストレージ・デバイスがストライプ化機能を提供します。記憶域のパフォーマンスを向上するために最もよく使用されるストライプ化技法は、RAID 0およびRAID 5です。

RAID 0でのストライプ化

RAID 0では少なくとも2台のデバイスを実装する必要があります。デバイスに書き込まれるデータ・ブロックは、ストライプ・サイズに分割され、複数のデバイスに交互に格納されます。この技法により、複数デバイスと、デバイスの複数チャネルの使用が可能になります。

RAID 0には、RAIDという名前が付いていますが冗長性はありません。RAID 0構成でデバイスに障害が発生すると、データは損失されます。ミッションクリティカル環境では必ずなんらかの冗長性と組み合せる必要があります。RAID 0を使用するデータベース実装は、多くの場合、RAID 1(基本のミラー化)と組み合せてRAID 0+1構成で使用されます。

RAID 5でのストライプ化

RAID 5構成では、ハードウェア固有のストライプ・サイズを使用して、RAIDグループ内の使用可能なデバイスにデータが分散されます。結果として、複数のデバイスとチャネルがデータの読書きに使用されます。複雑なパリティ計算のため、ストレージ・デバイスによってはRAID 5構成がサポートされないこともあります。

ASMを使用するストライプ化

自動ストレージ・マネージャ(ASM)は、ディスク・グループのコンテキスト内で、ASMを認識しているすべてのデバイスに対して常にストライプ化を行います。ディスク・グループは、データファイルを作成するための論理的な記憶域プールです。デフォルトのASMストライプ・サイズは1MBです。これはVLDBに適したストライプ・サイズです。


関連項目:

ASM構成の詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。

ディスク・グループ内ではパフォーマンス特性が同じディスクを使用することをお薦めします。また、データを最適に分散して最適なパフォーマンスとスループットを得るには、ディスク・グループのすべてのディスクを同じサイズにする必要があります。最高のパフォーマンスを実現するために、ディスク・グループはできるだけ多くの物理スピンドルを含むようにしてください。VLDB用のディスク・グループ構成を、VLDB以外のディスク・グループ構成と変える必要はありません。


関連項目:

詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。

ASMは、すでにストライプ化されたストレージ・デバイスで使用できます。そのような構成を使用する場合は、論理デバイスにまたがるディスク・グループを定義してホットスポットを生成しないようにしてください。それらの論理デバイスが、他の使用可能なリソースではなく同一のリソース(ディスク、コントローラ、またはディスクのチャネル)を物理的に使用していることがあるためです。ASMストライプが常にすべての物理デバイスに均等に分散されるように確認します。

ILM

情報ライフサイクル管理環境では、すべてのデバイスに対するストライプ化は、すべてのデータがすべての記憶域プールに分散されるため使用できません。ILM環境では、通常、記憶域プールごとにパフォーマンス特性が異なります。このため、表領域が記憶域プールにまたがらないようにしてください。つまり、同じ表領域のデータファイルを複数の記憶域プールに格納しないでください。

ILM環境の記憶域は、1つの記憶域プールのすべてのデバイスに対するストライプ化を使用するように構成する必要があります。ASMを使用する場合は、記憶域プールごとに別のディスク・グループを作成します。この方法では、表領域のデータファイルが異なるディスク・グループに格納されることはありません。データはオンラインのまま表領域間で移動できます。パーティション表の場合はパーティション移動操作を使用し、表がパーティション化されていないときはDBMS_REDEFINITIONパッケージを使用します。

パーティション配置

使用可能なすべてのデバイスに対してストライプ化し、使用可能なすべてのリソースに負荷を分散する場合、パーティション配置は問題になりません。使用可能なすべてのデバイスにデータファイルをストライプ化できない場合は、使用可能なすべてのリソース(物理ディスク・スピンドル、ディスク・コントローラ、およびディスクのチャネル)の使用状況を最適化するためにパーティション配置を検討します。

I/O集中型の問合せまたはDML操作では、使用可能なすべてのリソースを最適に活用する必要があります。データベース・オブジェクト・パーティションを特定の表領域に格納し、各表領域が異なるハードウェア・リソースのセットを使用する場合、1つのパーティション・データベース・オブジェクトに対する操作ですべてのリソースを使用できるようになります。適切なパーティション化技法を使用して、I/O集中型の操作がすべてのリソースを使用できるようにしてください。

パーティション配置を使用してI/Oリソース使用率を最適化する場合、ワークロードをできるだけ均等に分散するただ1つの方法としては、ハッシュ・パーティション数を2の累乗とした、一意またはほぼ一意の列(または一連の列)に対するハッシュ・パーティション化とハッシュ・サブパーティション化があります。その他のパーティション化およびサブパーティション化の技法でも、アプリケーションによっては同様の効果が得られる場合があります。

ビッグファイル表領域

Oracle Databaseではビッグファイル表領域を作成できます。ビッグファイル表領域は、サイズが最大128TBの1つのデータファイルまたは一時ファイルで構成されます。ビッグファイル表領域を使用すると、データベースのデータファイル数を大幅に削減できます。Oracle Database 11gでは、1つのデータファイルに対してRMANのバックアップとリストアをパラレルで実行できます。


関連項目:

『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』

結果として、ビッグファイル表領域の使用にデメリットはありません。データファイルや一時ファイルの数を大幅に削減するために、ビッグファイル表領域の使用を選択できます。

ファイルの割当てはシリアル・プロセスで行われます。表および自動拡張可能データファイルの自動割当てを使用すると、ビッグファイル表領域を使用するかどうかにかかわらず、ファイルの拡張に時間がかかるため大きなデータのロードが影響を受けることがあります。ただし、データファイルを事前に割り当てて、複数データファイルを使用する場合は、複数のプロセスを生成してデータファイルを同時に追加することができます。

スケーラビリティと管理性

VLDBのきわめて重要な特性はサイズが大きいことです。記憶域のスケーラビリティと管理性は、VLDB環境の重要な要素です。サイズが大きいために次の課題があります。

これらの課題に対応する記憶域構成を選択する必要があります。記憶域の追加や削除を計画的に行うか状況に応じて行うかにかかわらず、システムはパフォーマンスと高可用性の観点で最適な状態を保つ必要があります。

S.A.M.E.(Stripe and Mirror Everything)

S.A.M.E.(Stripe and Mirror Everything)方式は、長い間オラクル社によって推奨されている、高可用性、パフォーマンスおよび管理性を最適化する方法です。構成をさらに単純化するために、S.A.M.E.方式では、OLTPシステムとデータ・ウェアハウス・システムの両方での適切な開始値として1MBの固定ストライプ・サイズが推奨されます。ASMではS.A.M.E.方式が実装され、さらに自動化も行われます。

S.A.M.E.と管理性

最大のパフォーマンスを実現するため、S.A.M.E.方式では、できるだけ多くの物理デバイスに対するストライプ化が提案されます。これはASMなしでも達成できます。ただし、デバイスの追加または削除などにより記憶域構成が変わると、デバイス上のデータベース・ファイルのレイアウトも変える必要があります。ASMではこのタスクがバックグラウンドで自動的に実行されます。ASM以外の環境のほとんどでは再ストライプ化が主要な作業であり、多くの場合は手動の処理が必要です。

ILM環境では、すべての記憶域プールにS.A.M.E.方式を適用します。

VLDB固有のASM設定

VLDB用の自動ストレージ・マネージャの構成は、VLDB以外でのASMの構成と同じです。ASMインスタンスへのメモリー割当てなど特定のパラメータ値では、値を高くする必要があります。


関連項目:

詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。

Oracle Database 11gでは、ASMの変数割当て単位が導入されています。大きな変数割当て単位は、大きな順次I/Oを使用する環境で利点があります。一般的にVLDB、特に大規模データ・ウェアハウスは、大きな割当て単位を活用するのに適した環境です。割当て単位は、1MB〜64MBの範囲で2の累乗に設定できます(1、2、4、8、16、32および64)。大きな表をスキャンする問合せが多数ワークロードに含まれている場合は、大きなASM割当て単位を使用する必要があります。非常に大規模なデータ・ウェアハウス・システムでは64を使用してください。また、大きな割当て単位を使用すると、ASMのメモリー要件が減少し、ASMの起動時間が短縮されます。


関連項目:

ASMの設定および構成方法の詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。

Database Controlを使用したデータベース記憶域の監視

Database ControlによってI/Oパフォーマンスの概要が提供されます。これらのページは、記憶域構成のパフォーマンスとスループットを監視するために役立ちます。I/Oパフォーマンスのページは、Database Controlの「パフォーマンス」ページからアクセスできます。メイン・ページに、I/Oパフォーマンスを決める次の3つの要素が表示されます。

メイン・パフォーマンス・ページの「I/O」タブを使用すると、次のようなI/O概要の内訳を表示できます。

I/Oパフォーマンス表示をドリルダウンすると、専用I/Oパフォーマンス・ページですべてのメトリックの概要を確認できます。