Oracle RACとは?ClusterwareとASMによるクラスタ構成の基本を徹底解説

イントロ

今回は Oracle RAC の仕組みを解説します。複雑に感じられるかもしれませんが、根本を理解することで 設計の最適化 や 障害対応の迅速化 に役立ちます。本記事を通じて、ぜひ理解を深めてください。

Oracle RACとは

Oracle RAC(ラック)とは Oracle Real Application Clusters の略で、複数のサーバで1つのデータベースを構成するクラスタ技術です。2000年頃まではActive/Standby方式が主流で、DBサーバが故障すると待機系のサーバに切り替える方式が一般的でした。現在では、Oracle RACを適用した全ノードActive構成がミッションクリティカルシステムを中心に採用されています。本記事では理解しやすいよう、2台構成のサンプル図を用いて説明します。

構成要素説明
Oracle Grid InfrastructureOracle RACを導入するための主要ソフトウェアです。11g Release 2 以降は、Oracle ClusterwareとOracle ASMが統合され、Oracle Grid Infrastructure として提供されています。
Oracle ClusterwareOracle RACのデータベースやアプリケーションに対して、高可用性とスケーラビリティを実現する基盤となるミドルウェアです。
Oracle ASMASMとはAutomatic Storage Managementの略で、Oracle Databaseファイルのためのボリュームマネージャ兼ファイルシステムです。ストレージ管理を効率化し、パフォーマンスを最適化します。
Shared Storage (共有ストレージ)データベースファイルを配置する共有ストレージで、すべてのインスタンスからアクセス可能です。
FC Switch (Fiber Channel Switch)サーバと共有ストレージを接続するためのスイッチです。光ファイバーを用いることが一般的で、高速なネットワーク通信を実現します。
L2SW (L2 Switch)Oracle RACではインスタンス間で内部通信(インターコネクト)が発生します。このネットワークを構築するためにL2スイッチを用いてサーバ間を接続するのが一般的です。

Oracle RAC導入の目的

Oracle RACを導入する目的は、可用性と拡張性の向上です。以下でそれぞれの概要を説明します。

可用性の向上

Oracle RACを導入すると、インスタンス故障時の影響を最小限に抑えられます。複数のサーバがすべてActive状態で稼働しているため、1つのインスタンスが故障しても、他のサーバで処理を継続できます。
従来のHA構成(Active/Standby)では、故障時にStandbyインスタンスへのフェイルオーバー中は処理が止まっていましたが、Oracle RACでは処理が途切れない点が大きな違いです。
下図は故障時のイメージです。Database Server#1が故障しても、Server#2やServer#3で処理が継続されます。

拡張性の向上

Oracle RACを導入すると、スケールアウトによる拡張性が向上します。従来のHA構成では、CPUやメモリを増やすスケールアップしか選択肢がなく、場合によってはサーバのリプレースが必要でした。
一方、Oracle RACでは新規サーバを追加するだけで、既存サーバに大きな変更を加えずにリソースを拡張できます
下図はスケールアウトのイメージです。Database Server#1~#3に変更を加えることなく、Database Server#4を追加できます。

Oracle Clusterwareの機能

Oracle Clusterwareは、Oracle RACにおける高可用性とスケーラビリティを実現するミドルウェアです。クラスター構成を管理するためのさまざまな機能を備えています。
Clusterwareが管理するリソースには、データベース、インスタンス、サービス、リスナー、VIP、アプリケーションプロセスなどがあり、これらをCRS(Cluster Ready Service)リソースと呼びます。
Oracle Clusterwareは、OCR(Oracle Cluster Registry)に格納された構成情報に基づき、CRSリソースを管理しています。

Oracle ASMの機能

Oracle ASMは、複数の物理ディスクを束ねて仮想的なストレージプールを作成する仮想化技術です。この技術を利用することで、性能と可用性の向上が可能となり、ディスクの追加や削除も容易に行えます。
ASMを利用するには、データベース・インスタンスとは別にASMインスタンスを起動する必要があります。ASMインスタンスでは、ディスクグループのメタデータ(ディスク、ファイル名、データ・エクステントの位置など)を管理し、データの保存場所を示すエクステントマップをデータベース・インスタンスのSGAに渡す役割を持ちます。
仮想的なストレージプールはASMディスクグループと呼ばれます。下図に各レイヤで意識される物理・論理ディスクの関係を示します。

性能向上

Oracle ASMを適用してストライピング処理を行うと、ストレージやディスクを並列に使用できるため、Disk I/O性能が向上します。近年、CPU性能の向上に伴い、システムのボトルネックがストレージのDisk I/Oになるケースが増えているため、本技術の積極的な適用が推奨されます。

※注意:ASMによるストライピングと、ストレージのRAID0によるストライピングは異なります。ASMストライピングはASMファイル(データファイル)単位で均等に分散しますが、RAID0ではASMファイルまで認識して分散させることはできません。そのため、RAID0のみでは読み書きの偏り(Hot spot)が発生する可能性があります。

可用性向上

Oracle ASMを使ってミラーリング処理を行うと、データを二重化または三重化して格納でき、可用性を高められます。データは「障害グループ」という単位で異なるディスクに冗長化されるため、ディスク障害が発生してもデータファイルを継続して使用できます。また、ディスクグループ単位でミラーリングの有無を設定できるのが特徴です。

ディスク追加・削除

Oracle ASMを適用すると、ディスク追加や削除時にリバランス処理(データ再配置処理)を実行できます。この機能により、サービスを停止せずに、故障時のデータ配置の最適化やディスク追加によるボリューム拡張が可能です。

まとめ

本記事では、Oracle RAC の仕組みと導入のメリット、そして関連する主要コンポーネントについて解説しました。

  • Oracle RACとは:複数サーバで1つのデータベースを構成するクラスタ技術で、全ノードActive構成により可用性と拡張性が向上します。
  • 導入の目的:インスタンス故障時でも処理が途切れない 可用性の向上 と、新しいサーバを追加することで容易にリソースを拡張できる スケーラビリティの向上
  • Oracle Clusterware:データベースやアプリケーション、サービス、VIPなどのリソースを管理し、高可用性とスケーラビリティを実現するミドルウェア。
  • Oracle ASM:複数の物理ディスクをまとめて仮想的なストレージプール(ディスクグループ)を作成し、ストライピングで 性能向上、ミラーリングで 可用性向上、ディスク追加・削除時の 柔軟なリバランス を可能にする技術。

Oracle RAC とその関連技術を正しく理解することで、設計や運用の最適化が可能になり、障害発生時の迅速な対応やシステム性能の最大化につながります。これらの基礎を押さえることで、ミッションクリティカルなシステムでも安心して Oracle RAC を活用できるでしょう。

他のOracle関連の記事も公開していますので、そちらも参考にしてみてください。
Oracle GoldenGate入門|データレプリケーションの基礎をわかりやすく解説
Oracle RACの仕組みを理解しよう ~キャッシュフュージョンによるブロック転送~

参考文献

実践!!高可用性システム構築~RAC基本編~
oracle.com/technetwork/jp/ondemand/db-technique/d-4-rac11gr2-1448379-ja.pdf

RACを超えた!!OracleDatabase11gRelease2のOracleGridInfrastructureをを理解する
https://www.oracle.com/jp/a/tech/docs/technical-resources/20100225-ord-gridinfrastructure-det.pdf

データベースを革新する「RAC」─論理層の仮想化が拡張性や可用性をどう高めるか | IT Leaders

だから安心!「Oracle ASM」の内部動作を理解しよう | Oracle 日本

コメント