|
| 主流の採用段階に入ったOracle RAC |
| Oracle Real Application Clusters(RAC)は、テクノロジ、管理容易性、実装の成熟と改善を8年以上にわたって重ね、既に主流の採用段階に入っており、顧客に大きな利点をもたらしている。本リサーチノートでは、Oracle RACがいつ、どのような側面で最も効果を発揮するかについて解説する。 |
| 要約 Oracleは、RACテクノロジを過去8年にわたって大幅に改善し、同製品の管理容易性を高めてきた。その結果、Oracle RACは既に主流の採用段階に入っており、実際に製品を運用している顧客数は1万5,000社以上に達している。 |
主要な所見
|
推奨事項
|
| 分析 Oracle RAC は、ディスクへの並行アクセスの共有化により、複数のサーバ・ノードにわたってDBMSインスタンスを共有するデータベース共有環境である。ガートナーでは、2003年11月に、Oracle Database 9i (9i) RACの早期採用企業における利用や実装に関する分析を行った。RACはその時点でも信頼性の高いシステムであり、スケーラビリティや可用性の向上も実現していた。しかしその一方、RACは複雑であり、十分な効果を得るには、熟練したデータベース管理者 (DBA) の確保が不可欠であった。この複雑さが、当時におけるRACの採用拡大を妨げる要因の1つであったといえる。 RACは何度かのリリースを繰り返し、5年間で急速な発展を遂げた。Oracleは、RACの運用管理の容易性を大幅に向上させ、実装や管理に必要となるスキル・レベルを引き下げている。ガートナーは、RAC の導入によるビジネス価値や、その長所と短所を把握するために、十数社のRACユーザー (ほとんどはOracle Database 10gR2 RACを導入) にインタビューを行った。その結果、全体として、RACの導入に要する追加のソフトウェア・コストを十分に正当化できる大きな効果が得られていることが明らかになった。 ただし、RACはあらゆるアプリケーションに適しているわけではない。そこで、本リサーチノートでは、RACを利用すべき場合とそうでない場合についてのガイダンスに加えて、RACの利点や、強みと課題に関する分析を提示する。 2003 年末の時点で、RACを本稼働させているOracle の顧客は約1,000 社であった。現在、その数は1 万5,000社以上に達しており、RACは主流の採用段階に入っている。Oracle では、主にDellとの代理店契約を通じて、中間市場への浸透も果たしている。こうした点から、Oracle がOracleDatabase 10g (10g) の管理容易性の向上に注力したことで、複雑さという阻害要因は軽減されたといえる。RACは、Oracle がサポートしているすべてのプラットフォーム上で稼働するが、特によく利用されているのはLinux プラットフォームである。RACの実装の約30%は、Linux 上に導入されている (そして、その割合は現在も高まりつつある)。 RACに関するOracleの主な販売方針は、OS (Red Hat LinuxのOracleによるディストリビューションであるOracle Enterprise Linux) を含めて、完全に統合されたソフトウェア・スタックを販売することである。RACのライセンス価格はシングル・インスタンスのDBMSよりも50%高額であるが( http://www.oracle.com/corporate/pricing/technology-price-list.pdf )、RACの利点に加えてハードウェア・コストの削減を考慮すれば、十分妥当な価格設定であるといえる。 |
| 2003年以降のRACの改善項目 ■ グリッドの発展 9iでは「独立した」RACインスタンスが使用可能であったが、10gでは、そうした個別のRACインスタンスを互いに結び付けた1つのグリッドが形成されるようになった。Oracleでは、「サービス」と呼ばれる概念により、すべてのノードを任意のサービスに割り当て可能にするとともに、予備を含むキャパシティをデータベース間で共有できるようにしている。Oracle は現在、サービスをRACデータベースとして定義しているが、同社には、データベース層だけでなく、アプリケーション・アーキテクチャのあらゆる階層をサービスという概念に取り込もうという構想がある。 ■ すべてのプラットフォームでOracle Clusterwareをサポート 9i では、Oracle Clusterware を利用できるプラットフォームがWindows とLinux に限られていた。10gでは、このテクノロジのサポートを他のプラットフォームにも拡大している。Oracleは、2003年にTruCluster のソフトウェア資産を買収し、それを基盤としてOracle Clusterware を実装している。このため、RACではなく、フェールオーバー機能を備えたシングル・インスタンスのデータベースを必要とする顧客も、サードパーティ製のクラスタリング・ソフトウェアを使用する必要はなくなっている。ただし、Unixプラットフォームでは、現在も必要に応じてサードパーティ製クラスタリング・ソフトウェアの実装が可能である。一方、RACをWindows やLinux で使用する場合、Oracleがサポートするクラスタリング・ソフトウェアは自社製品のみである。 ■ Automatic Storage Management 10gでは、シングル・インスタンスのデータベースとRACのクラスタ化データベースに対応するグリッド・ボリューム・マネージャを提供する無償オプションとしてAutomatic Storage Management(ASM) が追加された (RAC では、自身のアーキテクチャに基づいてASMを利用し、クラスタ・ボリュームを管理する)。ストレージ管理者がASMに対して論理ユニット番号 (LUN)、つまり論理ストレージの割り当てを指定すると、データベース・ストレージ用の共有ストレージ・プールが作成される。ASMには、ストライピング機能やミラーリング (2重化および3重化) 機能がある。また、DBAの指定に応じて、ダウンタイムなしでプールからデータベースにストレージを追加することも可能である。 ASM を利用すると、ストレージ・スペースの割り当てやパフォーマンス・チューニング ( パフォーマンスを最適化するためにデータをどこに配置すべきかの決定) がソフトウェアによって自動的に行われるため、DBAがストレージ管理に費やす時間が短縮される。また、サードパーティ製のファイル・システムやボリューム・マネージャの必要性が低下するため、ASMを導入しているユーザーは、ソフトウェアや保守に伴うコスト全体を削減できる。ASMは、ストレージ・エリア・ネットワーク (SAN) やネットワーク接続ストレージ (NAS) にも対応している。Oracleは、これまでサーバへのハードウェア投資を軽減することでRAC導入の合理性を高めてきたのと同様に、RACとASMを正当化する要素として、低コストな共有ストレージの利用を提唱している。 ■ 管理容易性 Oracleは、10gの管理容易性を高めることでDBAの労働時間を短縮している。ただし、10gでは、DBAの労働時間が9i RACよりも25~50%短縮されたものの、シングル・インスタンスのシステムと同様にクラスタを管理できる水準には達していなかった。そのため、Oracle は、複数のデータベースを単一ビューから管理する機能を10gに追加している。これにより、1つのクラスタ全体、1つのデータベース、特定のインスタンスに対して、単一のコンソールからコマンドを実行できる。 Oracleは、10gにタスクの自動化機能を組み込み、ワークフロー・エンジンによるタスクの実行とロールバックを可能にしている。同社が「グリッド・コントロール」と呼ぶこの機能は、Oracle Enterprise Manager によって実現されている。そのほかにも、インストール時間の短縮やセルフチューニング機能の拡充 (ストレージ・パフォーマンスや共有メモリの自動チューニングなど)、根本原因分析に役立つプロアクティブな診断機能の追加といった改良が行われている。Oracle Database 11g (11g) では、Automatic Database Diagnostic Monitor (ADDM) がRACクラスタに対して実行されるようになり、複雑さや、RACの管理に求められるスキル要件が緩和されている。 ■ 計画ダウンタイム 10g RAC では、アプリケーションを停止することなく、グリッドに対してローリング方式によるパッチやOS/ハードウェアのアップグレードを実行できるが、ローリング・アップグレードはサポートされていない。11g では、ASM のローリング・アップグレードおよびパッチのサポートが追加された。Oracle では、DBMSのローリング・パッチをサポートしているとはいえ、パッチの性質によっては、適用するためにダウンタイムを設けなければならない可能性が常に付きまとう。 RACでは、クラスタ・ノードで障害が発生したときに更新トランザクションを透過的にフェールオーバーする機能がサポートされていない。データベースのクラッシュを切り抜けるように作成されていないアプリケーションでは、再起動と再ログオンが必要になる可能性がある。データベース・サーバの障害をアプリケーション側で認識して対処するには、稼働中の他のノードに接続し直し、失われたトランザクションを再実行するというロジックを開発者が記述しなければならない。そのため、独立系ソフトウェア・ベンダー (ISV) のアプリケーションでは、RACがサポートされていない場合もある。 |
| RAC導入の目的と利点 RACを利用すると、クラスタ内のサーバやデータベース・インスタンスで障害が発生したときに60秒未満でフェールオーバーを実行できることから、2003年当時の早期採用企業は、主に可用性の向上のためにRACを導入していた。可用性の向上が期待できる点は現在も変わりないが、現在のほとんどのユーザーは、スケーラビリティと柔軟性の向上を目的としてRACを導入している。RACでは、スケールアウト・アーキテクチャによってスケーラビリティを向上させており、(対称型マルチプロセシング [SMP] システムによる垂直スケーリングに対して) 低コストなハードウェアによる水平スケーリングが可能であり、(将来のニーズを見越してハードウェアを購入しなければならないシステムとは対照的に)ビジネス・ニーズの高まりに応じた柔軟な投資を行うことができる。 10g のグリッドには多数のクラスタ・ノードを取り込めるため、任意のデータベース・インスタンスを任意のノード上で実行することで柔軟性の向上を実現できる。例えば、計画ダウンタイムのために特定のノードを停止させる必要がある場合は、データベースへの要求をクラスタ内の他のノードに分散させて処理できる。あるノードで実行されているインスタンスを別のインスタンスに切り換えることも可能である。また、特定のアプリケーションによる負荷が増大し、キャパシティを増やす必要がある場合には、DBAがグリッド内の新たなノードでデータベースを起動することによってキャパシティを追加することも可能である。 Oracleの顧客は、具体的な利点として以下を挙げている。
|
課題
|
教訓
|
| ガートナーの結論 Oracleが10g RACの管理容易性を大幅に向上させた結果、同製品は既に主流の採用段階に入っている。IT部門が、データベースの水平スケーラビリティに加えて、以下のような目標を実現しようとする場合には、RACの評価を行うべきである。
ただし、IT部門では、クラスタリングによって運用環境の複雑さが高まることを理解するとともに、RACを安易に導入することは避けるべきである。Oracle 10g および11gで管理容易性が大幅に向上しているとはいえ、RACで成果を挙げるためには、ユーザーを本格的なトレーニングや研修に参加させる必要がある。 推奨リサーチ
(監訳:堀内秀明) |
| このページのトップに戻る |
|