こんにちは、マーケティング担当のオイカワです。
当社は、SAP、JP1、HULFTといったミッションクリティカルなシステムの障害対策ソリューションを提供しております。2020年は、Azure上でのOracle Databaseの冗長構成に関する問合せが昨対比3倍以上になりました。
Oracle Standard Editionのユーザーが利用しているReal Application Clusters(以下、RAC。)という機能が19cより廃止されたことが大きな契機となっているのですが、そもそも公開情報が少ないこと(特に日本語のサイト)が問合せ増加の要因ではないかと考えています。
本記事は、Oracle RACがAzure上で利用できるのか、利用できない場合の代替策はあるのかについて、Oracle社、Microsoft社の公式ホームページ、及びサポートサイトにおける公式見解などの情報をもとにまとめてみました。クラウド移行を検討中のOracle Databaseのお客様が、Azureへの移行を選択肢に加える際の検討の一助になれば幸いです。
なお、当社製品に関する箇所以外の内容は、当社で保証いたしかねますので、詳細につきましては、各社へご確認いただきますようお願いいたします。
Oracle RACとは
RACとは、2台以上のサーバーが連携(クラスター化)して、1台のサーバーであるかのように動作させるOracle Databaseが提供する機能です。
何が嬉しいのかというと、クラスタ化されたサーバーの1つに故障が起きた場合でも、残りのサーバーで処理を続行しますので、データベースとしての利用が継続できるということです。これにより、サービスを極力止めない、障害に強い仕組みを構築することができます。
Oracle RACの仕組み
出典:https://www.atmarkit.co.jp/ait/articles/0904/13/news115.html
ちなみにOracle RACで構成されたサーバーは、全て稼働系となり処理が負荷分散されます。よって、クラスター化するサーバーを増やすことで処理能力も高めていくことができます。
Oracle Databaseには、Enterprise Edition(以下EE)とStandard Edition(以下SE)という、大きく分けて2つのエディションが存在します。もともと上位バージョンであるEEの有償オプションであったRACが、2003年の10gというバージョンから、SEに無償提供されたことで、Oracleユーザーに大きく広まりました。いわゆる、SE RAC(エスイーラック)と呼ばれるものです。
Oracle Databaseのクラウドでの利用
2020年も引き続き、基幹システムのクラウドへの移行が進んでおり、Oracle Databaseもクラウドへ移行され始めています。
ただし、Oracleは、利用可能なクラウド環境を限っています。Oracle自身が提供するOracle Cloudはもちろんですが、それ以外だと、AWSのAmazon EC2やRDS、Microsoft Azureでの利用を認めています。
これら以外のクラウドでもOracle Databaseを構築できるものがありますが、Oracle専用インスタンスであったり、ベアメタル型での提供に限っていたりと、インスタンスが利用する物理的なCPUが特定・限定されることが条件となっているようです。
ほか。
Azure上でのOracle RACのサポート可否
Oracle DatabaseをAzureで構築できることがわかったところで、本題である、RACの利用について説明します。
結論から申し上げると、Azure上でのRACはOracle社のサポートがうけられません。(「… The first thing to note is that none of the above RAC solutions for Azure are supported by Oracle.」Microsoft Tech Communityの記事より)
オンプレ環境でOracle RACを使い、Oracle社にサポートしてもらっていたユーザーからすると、「RACを構成できない」と言っても過言ではありません。
ただ、RACを使いサードパーティにサポートしてもらう、又はRAC相当の可用性をAzure上で確保する事は可能です。以下3つの選択肢をご紹介していきます。
- Azure VMware Solution by CloudSimple上でRACを構築する
- FlashGrid社のAzure 仮想マシンイメージを使ってRACを構築する
- RACを使わずにHAクラスタソフトを使って冗長化する
1つずつ説明いたします。
RAC及びRAC相当の3つの選択肢
1)Azure VMware Solution by CloudSimple上でRACを構築する
Azure上でVMware環境を利用できる、CloudSimpleというソリューションがあります。このベアメタルモデルではRACがデプロイできます。
ただ、OSとソフトは個々の仮想マシンのみにマウントし、データディスクは自動ストレージ管理 (ASM) ディスク グループとして構成されている必要があるなど、経験者でないとなかなか大変です。(Microsoftのドキュメントページに記載されております。)
また、これはOracle社がサポートするのではなく、Microsoftが窓口になりつつVMware社がサポートする形となります。オンプレ環境の時に、直接Oracleのサポートを受ける安心感とはやや異なるのではないでしょうか。
出典:https://docs.microsoft.com/ja-jp/azure/vmware-cloudsimple/oracle-real-application-clusters
2)FlashGrid社のAzure 仮想マシンイメージを使ってRACを構築する
FlashGridという米国の会社がAzure上でOracle RACを使うためのマシンイメージを提供しています。AzureMarketplaceから購入でき、東日本・西日本リージョンにもデプロイできます。
出展:Azure MarketplaceのFlashGrid Cloud Cluster for Oracle RAC
VM、ストレージの作成から、Grid Infrastructureのインストール・構成、Oracle Databaseのインストール・パッチ適用、ASMディスクグループの作成までをデプロイできるようになっており、1つ目のCloudSimpleでの作業と比べるとだいぶ省力化できそうです。またこちらも、Oracle社がサポートするのではなく、FlashGrid社がサポートしています。
同社のホームページ上からは米国での事例は多そうですが、日本国内の事例を見つけることはできませんでした。
3)RACを使わずにHAクラスタソフトを使って冗長化する
Oracle Databaseをサードパーティ製のHAクラスタソフトウェアである、サイオステクノロジーの「LifeKeeper/DataKeeper」を使って冗長化します。稼働系ノードと待機系ノードを用意し、稼働系への障害時に自動的に待機系へ切り替える仕組みです。ノード間のデータの共有は、ブロックレベルのリアルタイム同期をDataKeeperで行います。Azure上では共有ストレージが使えませんが、論理的な共有ストレージとしてLifeKeeperに認識させることで実現します。
RACと異なり、負荷分散の機能はないものの、仮想マシンと仮想ディスクを可用性ゾーンを分けて配置できるなど、RAC同等の可用性の向上が見込まれます。
なお、HAクラスターソフトはサイオステクノロジーがサポートしますが、Oracle Database部分についてはRACを使わないため、Oracle社のサポートが受けられます。これも他の選択肢とは異なるユーザーメリットと考えます。また、国内ユーザーの導入実績も多い点は大きな安心材料と言えるのではないでしょうか。
加えて、DataKeeperによる論理的な共有ストレージは、Windows Server標準のWSFC(Windows Server Failover Clustering)と組み合わせて使うこともできます。Oracle RACとは関係ないですが、Azure上で共有ディスクを代替する唯一のソリューションとしてMicrosoft社に認められています。
まとめ
Azure上でOracle RACを利用しようとする場合、Oracle社からのサポートは受けられません。VMware社やFlashGrid社のソリューションを使いRACを構築するか、サイオステクノロジーのRACを使わない高可用性ソリューションを使うかが、本記事執筆時点の選択肢と考えます。
国内実績もあり、シンプルにAzure上で可用性を高められるサイオステクノロジーのソリューションを検討してみてはいかがでしょうか。
まずはAzure上での当社ソリューションを紹介した資料や事例集をご覧頂き、実現したいことができそうかご確認いただけると幸いです。
関連記事(人気順)