1. Oracle ASM の利点
Oracle ASMは、Oracle10gから提供されたストレージ領域を仮想化するストレージ管理機能であり、ボリューム管理に相当する機能とファイルシステムに相当する機能を提供します。
Oracle ASMは、複数のハードディスクをグループ単位でまとめた、ASMディスクグループと呼ばれるストレージプールを提供します。これは、仮想的に大きなハードディスクを複数作ることに位置付けられ、ボリューム管理に相当する機能といえます。 このように構成したASMディスクグループには、データベース構成ファイル(Databaseのデータファイル、制御ファイルなど)を配置できます。RAWデバイスを使用した場合とは異なり、物理的なストレージ構成に依存せずにファイルを配置できるため、ファイルシステムのような機能を提供しているといえます。
しかし、ストレージに求められるのはこれらの機能だけではありません。 性能の良さや、破損時のメンテナンスのしやすさ、稼働に影響する事なくメンテナンスを完了できる事が求められます。 その為、Oracle ASMは「ストライピング」「ミラーリング」「リバランシング」といった機能を備えています。では、それらのOracle ASMの機能を詳しくみていきましょう。
ストライピング
Oracle ASMでは性能向上のために、データを全てのディスクに均等に分散配置します。
この機能により、複数のディスクを並列に動作させる事が可能になるため、特定のディスクへのアクセスが集中することを回避できます。ひいては、ディスクの数に比例して、入出力の処理能力を向上させる事ができます。
ミラーリング
Oracle ASMでは、ミラーリングを使用して複数のディスクにデータのコピーを保持でき、ディスク障害によるデータ損失を回避できます。
冗長構成(ミラーの多重度)の設定
Oracle ASMの冗長構成の設定には以下の3つがあります。
• 外部冗長構成(ミラーなし)
• 標準冗長構成(ミラーの二重化)
• 高冗長構成(ミラーの三重化)
例として、標準冗長化の場合を想定して説明します。
Oracle ASMは格納しているファイルを「エクステント」と呼ばれる単位でミラーリングします。 エクステントは「プライマリ・エクステント」と「セカンダリ・エクステント」がペアで存在し、必ず別の Oracle ASMディスクに格納されます。
上記図のように、例えば「1」というデータに対する「プライマリエクステント」及び「セカンダリエクステント」が 存在する場合、プライマリ・エクステントは3つ目のディスク、セカンダリ・エクステントは1つ目のディスクというように Oracle ASMがエクステントの配置を決定します。
障害グループ
Oracle ASMでは、複数のディスクが同時に破損した場合のデータ損失を回避するために、障害グループという概念を用意しています。
Oracle ASMでは、データ損失を回避するためにミラーリングという機能を用意していますが、ミラーリングがあれば必ずデータ損失を回避できるとは限りません。ストレージ装置では、ディスクコントローラなど、障害の影響が多くのディスクに波及する機構が存在します。プライマリ・エクステントとセカンダリ・エクステントを同一のディスクコントローラ配下のディスクに格納した場合、ディスクコントローラが破損するとデータへのアクセスが出来なくなります。
このような状況に備えるためには、同一のディスクコントローラ配下のディスクを障害グループとしてグループ化します。 ASMは、プライマリ・エクステントとセカンダリ・エクステントを必ず別の障害グループに配置しますので、1つの障害グループが破損した場合でも、プライマリ・エクステントとセカンダリ・エクステントの両方が失われる事はなくなります。
なお、障害時に備えたい共通の資源を共有しているにも関わらず、共有するディスクを障害グループとして グループ化しなかった場合、その共通の資源で破損がおきるとディスクが全て失われ、データ損失が発生する可能性があることに注意してください。
リバランシング
ディスクグループにディスクを追加・削除すると、データがその新しいディスクも含めたディスクグループ内のすべてのディスクに均等に分散されるようデータがディスク間で移動し、すべてのファイルが均等に分散されると、全ディスクが同じ割合で均等に埋められます。
このプロセスはリバランスと呼ばれ、リバランスを Oracle ASMが自動で行う事を動的リバランシングといいます。 リバランシングはデータベースやアプリケーションを稼働させたまま行う事も可能です。