検証!RACの耐障害性と拡張性

2008年7月14日(月)
加藤 昇平

障害動作について

ここでは、障害時の動作とそのダウンタイムについて説明します。

1つ目が「インスタンス障害」です。インスタンス障害は、DBインスタンスを構成するSGA(System Global Area)、SMON(System MONiter)、DBWn、LGWRなどのバックグラウンドプロセスに障害が発生して、インスタンスが異常終了する障害です。

障害の発生したDBインスタンスが異常終了すると、Oracle Clusterwareによって障害が検知され、生存インスタンスによってインスタンスリカバリー処理が実施されます。DBインスタンスおよびASMインスタンスは、インスタンスモニターによって常時生死確認が行われています。

インスタンスモニターは障害を検出すると、Oracle Clusterwareにその状態を伝え、障害を起こしたインスタンスの再起動処理や、サービスのフェールオーバー処理、インスタンスリカバリー処理が開始されます。疑似障害を発生させる場合は、バッググラウンドプロセス(LGWRやLMSプロセスなど)を強制停止させてインスタンスを停止します。

2つ目が「ノード障害」です。ノード障害は、電源やCPUなどのハードウエア障害やOS障害などの理由でサーバーが処理を継続できない状態です。ノード障害が発生すると、Oracle Clusterwareによる一定期間のハートビート処理によって障害を検知します。そして生存ノード上で、Oracle Clusterwareの再構成とインスタンスリカバリー処理、障害ノードのVIPのフェールオーバが実施されます。ノード障害の場合、図2の流れでリカバリー処理が実施されます。

切り替え処理による障害回復

3つ目が「インターコネクト障害」です。インターコネクト障害(1重)は、インターコネクトを構成するNIC、LANケーブル、ネットワークスイッチに障害が発生して、1経路が遮断する障害です。SolarisのIPMPやLinux/Windowsのチーミングによって冗長化すると、インターコネクト障害(1重)が発生しても即座にスタンバイの経路に切り替わります。このため、Oracle Clusterwareやインスタンスに対する影響なく処理も続けることができます。

4つ目が「サービスネットワーク障害」です。サービスネットワーク障害(1重)は、サービスネットワークを構成するNIC、LANケーブル、ネットワークスイッチに障害が発生して、1経路が遮断する障害です。インターコネクトと同様、IPMPやチーミングなどのOS機能によってRACに影響なく処理を続けることができます。

5つ目が「ストレージ障害」です。ストレージ障害(1重)は、DBサーバーとストレージを結ぶ経路を構成するホストバスアダプター(NAS構成の場合はネットワークカード)、ファイバー(NAS構成の場合はLANケーブル)、スイッチに障害が発生して、1経路が遮断する障害、あるいはストレージ自身の冗長化された構成部分(例:コントローラなど)の障害になります。パス障害については、マルチパスドライバーによる切り替え機能、コントローラ障害については、製品の持つフェールオーバ機能によって、これもRACに影響なく処理を続けることができます。

それぞれの障害に対する動作フェーズは図2のようになります。

伊藤忠テクノソリューションズ株式会社
ITエンジニアリング室 ミドルウェア推進部 DB技術課所属。2000年に伊藤忠テクノソリューションズ(CTC)入社。入社後はSybase、Oracleなど各種データベース製品のプリセールスや技術検証を担当し、大規模プロジェクトを経験。2008年にOracle Master Platinum Oracle Database 10gを取得。2008年から現職。http://www.ctc-g.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています