この章では、データ・ウェアハウス環境におけるハードウェア問題およびI/O問題について説明します。内容は次のとおりです。
データ・ウェアハウスの設計者および管理者は、I/Oのパフォーマンスを常に考慮する必要があります。データ・ウェアハウスにおける典型的なワークロードとして特にあげられるのは、I/Oの集中です。I/Oの集中は、大量のデータ・ロード、索引の構築、マテリアライズド・ビューの作成、大量のデータに対する問合せなどの操作で発生します。データ・ウェアハウスの基礎となるI/Oシステムは、これらの厳しい要件を満たすように設計する必要があります。
実際、貧弱なI/O構成が、データ・ウェアハウスにおけるパフォーマンス上の問題の主な原因の1つとなっています。別のシステムの管理経験があるデータベース管理者がデータ・ウェアハウスを管理する場合は、以前の環境よりもI/O構成に慎重になる必要があります。
この章では、データ・ウェアハウスのI/O構成に関する次の5つの高度なガイドラインを示します。
データ・ウェアハウスで使用するI/O構成は、特定の記憶域およびサーバーの性能特性によって異なります。したがってこの章の内容は、I/Oシステムの設計およびチューニングのガイドラインとしてのみ利用してください。
参照: I/O構成およびチューニングの追加情報は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。 |
データ・ウェアハウスの記憶域構成は、その記憶域構成が提供可能なI/O帯域幅に基づいて選択する必要があり、必ずしも記憶域全体の容量に基づく必要はありません。容量のみに基づいて記憶域を確保すると、特に合計で500GBに満たないシステムにおいて、十分なパフォーマンスが得られない場合があります。個々のディスク・ドライブの容量は、そのI/Oスループットの向上ペースを上回るペースで大きくなっています。そのため、少数のディスクで大量のデータを格納できる一方、それらのディスクでは多数の少容量ディスクと同じI/Oスループットを提供できなくなっています。
たとえば、200GBのデータ・マートがあるとします。72GBのドライブを使用すれば、たった6台のドライブで完全にミラー化されたデータ・マートを構成できます。しかし、6台のドライブでは、4CPUのサーバーに対する平均的な同時ユーザー数に対応できるだけのI/O帯域幅を提供できない可能性もあります。このように、6台のドライブで十分な記憶領域を用意できるにもかかわらず、このシステムに十分なパフォーマンスを提供するために、より多くのドライブが必要になる場合があります。
システムを構築する前にデータ・ウェアハウスで必要となるI/O帯域幅を見積っても、あまり意味がない可能性があります。しかし一般的に、ハードウェア・ベンダーのサポートの下で、使用するサーバーで利用できるI/O帯域幅を見積り、選択したI/O構成でそのサーバーの性能を十分に引き出せるかどうかを確認することは有効です。I/Oシステムのサイズ設定に関する変数は数多くありますが、基本的な経験則として、データ・ウェアハウス・システムでパフォーマンスを最適化するには、CPUごとに複数のディスク(各CPUに少なくとも2台のディスク)が必要というルールがあります。
データ・ウェアハウスのI/Oシステムを構成する際の原則は、複数のディスクおよびチャネルが各データベース・オブジェクトにアクセスするようにして、I/O帯域幅を最大化することです。これは、Oracle Databaseのデータファイルをストライプ化することで実現できます。ストライプ化された1つのファイルは、複数のディスクに分散して格納されます。ストライプ化は、ソフトウェア(論理ボリューム・マネージャなど)によって、または記憶域ハードウェア内部で管理できます。その目的は、各表領域を多数のディスク(理想的にはすべてのディスク)にわたってストライプ化することにより、可能なかぎり最大のI/O帯域幅であらゆるデータベース・オブジェクトにアクセスできるようにすることです。
多くの場合、データ・ウェアハウスは企業内で最大のデータベース・システムです。そのため、備えているディスクの数は最も多く、1つのディスクに障害が発生した際の影響は最も大きくなります。したがって、データ・ウェアハウスをハードウェア障害から保護するために、ディスクの冗長性を高める必要があります。ディスクのストライプ化と同様に、冗長性もソフトウェアまたはハードウェアによる様々な方法で確保できます。
重要なのは、状況に応じて冗長性とパフォーマンスのバランスを考慮する必要があるということです。たとえば、RAID 5構成の記憶域システムはRAID 0+1構成よりも低コストである可能性がありますが、パフォーマンスでは劣る場合があります。冗長性はあらゆるデータ・ウェアハウスに必要ですが、冗長性に対するアプローチは、個々のデータ・ウェアハウスのパフォーマンスおよびコストの制約によって異なります。
I/Oシステムを検討およびチューニングするうえでは、データベースを作成する前の段階が最も重要です。一度データベース・ファイルを作成してしまうと、それらを再構成するのはより困難になります。ファイルの動的な再構成をサポートしている論理ボリューム・マネージャもありますが、記憶域の構成によっては、I/Oレイアウトを再構成するにはファイルを完全に再構築しなければならない場合もあります。いずれの場合も、再構成には大量のシステム・リソースを割く必要があります。
新しいシステムにデータ・ウェアハウスを構築する際は、すべてのデータベース・データファイルを作成する前にI/O帯域幅をテストして、必要なI/Oレベルを達成できるかどうかを調べる必要があります。ほとんどのオペレーティング・システムでは、サイズの大きいテスト・ファイルの読取り/書込みパフォーマンスを計測する単純なスクリプトで、これを調べることができます。
データ・ウェアハウスの設計者は、データ・ウェアハウスの将来的な拡張を考慮して計画を立てる必要があります。システムの拡張に対応するためのアプローチは数多くありますが、特に考慮する必要があるのは、I/O帯域幅を損うことなくI/Oシステムを拡張できるようにすることです。たとえば、20台のディスクで構成された既存のシステムに4台のディスクを追加し、4台の新しいディスクのみにわたってストライプ化された表領域を追加しても、データベースを拡張できません。より適切な解決策は、24台のディスクすべてにわたってストライプ化された表領域を新たに追加し、20台のディスクにストライプ化された既存の表領域を、24台のディスクすべてにストライプ化されるように徐々に変換していくことです。
ディスクの管理に関する機能として、Oracle Managed Filesと自動ストレージ管理という2つの機能があります。これらの機能を使用しない場合、データベース管理者は、データ・ウェアハウスでは数百から数千にも及ぶデータベース・ファイルを自分で管理する必要があります。Oracle Managed Filesは、ファイルを自動的に作成および管理する機能を提供することによって、データベースの管理を簡略化します。このためデータベース管理者は、データベース・ファイルを個々に管理する必要がありません。自動ストレージ管理は、ファイルのみでなくディスクも管理する追加機能を提供します。自動ストレージ管理では、データベース管理者は少数のディスク・グループを管理します。自動ストレージ管理は、ストライプ化やディスク冗長性の提供などのタスクを行います。この中には、新しいディスクがシステムに追加された場合にデータベース・ファイルのバランスを再調整する機能も含まれます。
参照: 詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。 |