2001年にOracle9i DatabaseでReal Application Clustes(Oracle RAC)がリリースされ、2011年で10周年を迎えました。本特集記事では、既にデータベースのスタンダードとして定着しているOracle RACについて、改めて振り返ってみたいと思います。
1. Oracle RACの歴史、そしてアーキテクチャ
Oracle RACは、Oracle9iでリリースされましたが、その前身となるOracle Parallel Server(OPS) から開発が進んでいました。Oracle9iから、キー・テクノロジーであるキャッシュ・フュージョンが導入され、Oracle RACという製品名となりました。
Oracle Database 10gでは、Oracle Clusterwareによるクラスタウェア機能の提供、Automatic Storage Management(ASM)によるストレージ管理機能も提供されるようになりました。これにより、従来必要であった3rd Party ClusterwareやVolume Manager、あるいはrawデバイスの管理が必要なくなり、皆様のシステムにOracle RACが広く利用されるようになったリリースです。
Oracle Database11gでは、Oracle Grid Infrastructureによるサーバー・プール機能によるシステム統合のインフラストラクチャとしてご利用頂けるようになっています。
Oracle RACのアーキテクチャ概要を以下に示します。インターコネクトを利用し、データベースのバッファ・キャッシュをノード間で共有し、ストレージはストレージエリアネットワーク(SAN)を介して共有することにより、データベース・システムの仮想化が行われます。
2. Oracle RAC:データベース・システムを仮想化
このようにデータベース・システムを仮想化することによって、リソースを「プール」化し、必要なアプリケーション(例えば人事システム、販売管理システム、データウエハウス)に対して、必要なリソースを割り当てられるのが、Oracle RACの特徴です。
さらに、Oracle Database 10gから提供されているAutomatic Storage Management(ASM)を用いると、ストレージ・リソースの仮想化を行うことができまる。ASMでストレージ・サブシステムの仮想化を行い、必要なリソースを必要なデータベース・システムに割り当てることにより、データベース/ストレージの両方の観点でシステムの仮想化が行え、柔軟なインフラストレクチャを構築することができます。
3. Oracle Grid Infrastructureによる共通基盤、そしてEngineered Systems
Oracle Database 11g Release 2 から、これまでに紹介したOracle RACとASMがより密に統合化された、Oracle Grid Infrastructureが提供されています。 Oracle Grid Infrastructureを用いることで、Oracle RAC/ASMを用いた共通基盤/クラウド基盤の構成を、安価なハードウェアを用いて構成することができ、データベース・システム統合の敷居を大幅に下げることができるようになりました。
そして、現在オラクルが提唱している、「Engineered Systems」を利用すれば、ハードウェア/ソフトウェアが事前構成されたデータベース・グリッド環境をご利用頂くことができます。システム統合に最適であるOracle Exadata Database Machineや、部門システムで用いることに適したOracle Database Applianceの中核技術として、Oracle RAC, ASMを包含したOracle Grid Infrastructureが用いられているのです。
Oracle RACは10年の歳月を経て、データベース・システムのメインストリームとなり、「Engineered Systems」の中核テクノロジーとして利用されています。 これからも進化し続けるOracle RACの技術について、この機会に学んでみてはいかがでしょうか?
▽オラクルエンジニア通信
【セミナー動画/資料】RACリリース10周年!US Oracleのプロダクトマネージャが語る Oracle Real Application ClustersのこれまでとこれからDBクラスタ: Oracle Real Application Clusters(RAC) - 概要(とは), 資料, マニュアル10周年!Oracle Real Application Clustersのこれまでとこれから https://blogs.oracle.com/oracle4engineer/entry/column_rac10th