JP2004206239A - Raid装置 - Google Patents
Raid装置 Download PDFInfo
- Publication number
- JP2004206239A JP2004206239A JP2002372117A JP2002372117A JP2004206239A JP 2004206239 A JP2004206239 A JP 2004206239A JP 2002372117 A JP2002372117 A JP 2002372117A JP 2002372117 A JP2002372117 A JP 2002372117A JP 2004206239 A JP2004206239 A JP 2004206239A
- Authority
- JP
- Japan
- Prior art keywords
- raid
- cache memory
- raid controller
- controller
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】この発明の課題は、二重化RAIDコントローラを備えたRAID装置において、両系ともにハードウェア異常により停止してしまった場合でも、最新キャッシュのデータを喪失せずに、復旧することができるRAID装置を提供することにある。
【解決手段】RAIDコントローラ1の構成管理部5には、二重化した両系のうち、どちらの系により新しいキャッシュデータが存在するかを示す情報を保持するようにし、両系のRAIDコントローラ1がともに停止すると、これを検出した監視制御部6が、両系のRAIDコントローラ1の電源オフ、オン処理を実行し、RAIDコントローラ1を再起動させる。この再起動により一時的に発生していたハードウェア異常を復旧させるとともに、再起動時に、構成管理部5に保持している情報を参照することで、適切なキャッシュメモリを選択し、キャッシュデータのディスクへの書き戻し処理を行う。
【選択図】 図1
【解決手段】RAIDコントローラ1の構成管理部5には、二重化した両系のうち、どちらの系により新しいキャッシュデータが存在するかを示す情報を保持するようにし、両系のRAIDコントローラ1がともに停止すると、これを検出した監視制御部6が、両系のRAIDコントローラ1の電源オフ、オン処理を実行し、RAIDコントローラ1を再起動させる。この再起動により一時的に発生していたハードウェア異常を復旧させるとともに、再起動時に、構成管理部5に保持している情報を参照することで、適切なキャッシュメモリを選択し、キャッシュデータのディスクへの書き戻し処理を行う。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、キャッシュメモリを搭載したRAIDコントローラが二重化されたRAID装置に関し、ハードウェア異常により二重化されたRAIDコントローラの両系がシステムダウンした場合でも、キャッシュメモリ上のデータを喪失することなく、システム復旧を行う手段を備えたRAID装置を実現するものである。
【0002】
【従来の技術】
RAID装置においては、データのリード、ライトの性能を向上させるため、ホストからのライトのデータを一旦キャッシュメモリに書き込み、後にキャッシュ制御によりデータをディスクに書き戻すように構成し、リードの場合もキャッシュにヒットしている場合は、キャッシュからデータをホストに返すようにし、極力ディスクへのアクセスを減らすようにしている。
【0003】
このため、キャッシュメモリ上にライトされたデータは、ディスクに書き戻されるまでにタイムラグがあり、この間は、ディスク上のデータはホストから送信されたデータより古いデータとなっている時間がある。
【0004】
このような、状態の時に、キャッシュメモリを搭載しているRAIDコントローラにハードウェア異常が発生し、RAIDコントローラシステムが停止してしまった場合、キャッシュ上の最新データが失われてしまうという問題があった。
【0005】
従来は、このような問題の発生を防ぐため、図9に示すように、0系、1系といった、RAIDコントローラ50を二重化したRAID装置が使用されている。(例えば、特許文献1を参照。)
【0006】
二重化された各RAIDコントローラ50には、それぞれにキャッシュメモリ52を搭載しており、また、コントローラ間通信部51により相互に通信を行えるようになっている。
【0007】
このような二重化されたRAIDコントローラを備えたRAID装置においては、以下のような制御を行うことで、キャッシュメモリ上のデータの保護を行えるようにしている。
【0008】
図9の(a)に示すように、0系、1系の両系のRAIDコントローラ50が相互にコントローラ間通信部51により通信し、各系のキャッシュメモリ52に書き込まれたデータの同期をとることで、両系のキャッシュメモリ52上のデータを、常に同じ最新のデータを保持するように制御する。
【0009】
これにより、図9の(b)に示すように、片系でハードウェア異常が発生し、例えば、0系のRAIDコントローラ50が停止した場合でも、1系のRAIDコントローラ50に搭載されたキャッシュメモリ52には最新のデータが格納されているので、これを使用して、データを喪失することなく、運用を継続できるようになっている。
【0010】
しかし、このような二重化したRAIDコントローラを備えたRAID装置においても、図9の(c)に示すように、0系と1系の両系ともにハードウェア異常が発生し、両系のRAIDコントローラが停止してしまった場合には、キャッシュメモリ上の最新データはディスクに書き出されることなく、失われてしまっていた。
【0011】
このようなRAIDコントローラシステムを停止しなければならないハードウェア異常の中には、完全に装置内のデバイスが破壊され復旧不可能な場合もあるが、そのような深刻なハードウェア異常が発生するのは極めて稀であり、多くの場合、高負荷による一時的なハードウェア異常の発生、例えば、一時的なCPU異常や一時的なバス異常等の軽度のハードウェア異常である。
【0012】
このような軽度の一時的なハードウェア異常の場合、RAIDコントローラシステムの電源をオフ、オンし、再起動し直すことで復旧できる場合も多くあった。
【0013】
従来のRAIDコントローラを二重化したRAID装置においては、これらの軽度のハードウェア異常であっても、両系のRAIDコントローラで同時にハードウェア異常が発生すれば、キャッシュメモリ上に格納された最新のデータを救う方法はなく、重要なユーザーデータの喪失という事態を回避することができなかった。
【0014】
【特許文献1】
特開平11−312058号公報
【発明が解決しようとする課題】
前記のごとく、従来の技術では次のような問題点がある。
【0015】
RAID装置においては、性能の向上のため、ホストからのライトデータを一時的にキャッシュメモリ上に格納し、ホストからの要求がキャッシュにヒットしている間はキャッシュメモリ上でリード・ライト処理を行い、極力ディスクへのアクセスを減らす構成としており、キャッシュメモリ上にのみ最新のデータが存在している。
【0016】
このような状態の時に、キャッシュメモリを搭載したRAIDコントローラにハードウェア異常が発生し、RAIDコントローラシステムが停止してしまうと、キャッシュメモリ上の最新データがディスクに書き出されることなく、喪失してしまうという問題があった。
【0017】
このような問題を防ぐため、キャッシュメモリを含めたRAIDコントローラを二重化したRAID装置があるが、このようなRAID装置においても、二重化した両系のRAIDコントローラが両方ともハードウェア異常の発生により停止してしまった場合には、最後まで動作していた側のキャッシュメモリに格納された最新データは、ディスクに書き出されることなく失われるという問題があった。
【0018】
また、このようなハードウェア異常の多くは、高負荷による一時的なものであり、完全にハードウェア破壊に至っている場合は極めて稀で、そのほとんどは、システムの再起動により復旧できるものであったが、このような軽度のハードウェア異常でもキャッシュメモリに格納された最新データを復旧させる方法がなく、喪失してしまっていた。
【0019】
この発明の課題は、キャッシュメモリを含めて二重化したRAIDコントローラを備えたRAID装置において、二重化した両系のRAIDコントローラに両系ともにハードウェア異常が発生し、両系のRAIDコントローラシステムが停止してしまった場合でも、キャッシュメモリ上の最新データを喪失せずに、復旧することができるRAID装置を提供することにある。
【0020】
【課題を解決するための手段】
前記の問題点を解決するために、この発明では次に示す手段を取った。
【0021】
RAID装置には、ホストからのデータのリード/ライト処理を実行制御するRAIDコントローラを二重化して備え、各RAIDコントローラには別々のキャッシュメモリを搭載するよう構成する。
【0022】
二重化されたRAIDコントローラは、ホストからのアクセス時にRAIDコントローラ同士で相互に通信を行い、キャッシュメモリ上に格納するデータの同期をとることで、常にキャッシュメモリ上のデータは、両系ともに同じ最新のデータが格納されるように制御する。
【0023】
両系のRAIDコントローラには、それぞれの系のRAIDコントローラに搭載されたキャッシュメモリに格納されたデータが、最新の状態であるかどうかを示す情報を構成管理部に持つように構成する。
【0024】
RAIDコントローラに搭載されたキャッシュメモリには、RAIDコントローラに搭載されたCPUや各種のチップデバイス等とは別系統で電源が供給され、RAIDコントローラの再起動時も通電されるように構成する。
【0025】
RAIDコントローラの片系にハードウェア異常が発生し、RAIDコントローラシステムが停止したことをもう片系のRAIDコントローラが検出すると、正常動作中のRAIDコントローラの構成管理部で管理しているキャッシュメモリの状態を示す情報を更新し、正常動作中のRAIDコントローラ上のキャッシュメモリにのみ最新のデータが更新されていることを示す情報を構成管理で保持するように制御する。これにより、停止した側の系のRAIDコントローラに搭載されているキャッシュメモリの内容が古い情報であることを判別できるようにしている。
【0026】
RAID装置には、RAIDコントローラとは独立して動作し、RAIDコントローラにハードウェア異常が発生し、RAIDコントローラシステムが停止したことを検出する監視制御部を備えるよう構成する。
【0027】
この監視制御部により、正常動作中であったもう片系のRAIDコントローラにもハードウェア異常が発生し、両系のRAIDコントローラシステムが停止したことを検出した場合、監視制御部は一旦両系のRAIDコントローラシステムの電源を切断し、その後両系のRAIDコントローラシステムを再起動する。
【0028】
このとき、RAIDコントローラに搭載されたキャッシュメモリは、CPU等とは別系統の電源により、RAIDコントローラシステムの電源切断中も常に電源が供給された状態になっているので、キャッシュメモリ上の最新データは失われない。
【0029】
RAID装置の復旧を制御する、システム復旧制御部で、両系のRAIDコントローラシステムが立ち上がって来るとき、各RAIDコントローラの構成管理部の情報を参照し、どちらのキャッシュメモリ上に最新のデータが格納されているかを判断し、最新の方のキャッシュメモリ上のデータをディスクに書き戻すように制御する。
【0030】
【発明の実施の形態】
この発明は、次に示す実施の形態を取った。
【0031】
キャッシュメモリを含めて二重化されたRAIDコントローラを備え、両系のRAIDコントローラがホストからのデータの受信時にRAIDコントローラ間で相互に通信し、キャッシュメモリに格納されるデータの同期をとるようにすることで、常に両系のRAIDコントローラ上のキャッシュメモリに同じ最新のデータが格納されるように構成する。
【0032】
これにより、一方のRAIDコントローラにのみハードウェア異常が発生し、RAIDコントローラシステムが停止した場合には、もう一方のRAIDコントローラにより、その系の持つキャッシュメモリ上の最新データを使用して、データを喪失することなく運用を継続することができる。
【0033】
両系のRAIDコントローラには、それぞれのRAIDコントローラに搭載されたキャッシュメモリが最新のデータを保持しているかどうかを示す情報を構成管理部の不揮発性の記憶装置内に持つように構成する。
【0034】
これにより、両系のRAIDコントローラにおいてハードウェア異常が発生し、両系のRAIDコントローラシステムが停止したとき、RAID装置の復旧時に、どちらのRAIDコントローラに最新データが格納されているかを判断することができ、誤って古いデータを保持しているキャッシュメモリのデータをディスクに書き戻し、異常発生時の最新のデータを喪失してしまうということを防ぐことができる。
【0035】
RAID装置には、RAIDコントローラとは独立して動作し、RAIDコントローラの動作状態を監視し、RAIDコントローラがハードウェア異常により停止した場合、これを検出する監視制御部を備えるよう構成する。
【0036】
この監視制御部により両系のRAIDコントローラともにハードウェア異常により停止したことを検出すると、両系のRAIDコントローラへの電源の供給を一旦切断し、その後再度両系のRAIDコントローラの電源を投入し、再起動させるよう制御する。
【0037】
これにより、高負荷などの要因により、一時的に発生していたハードウェア異常をリセットし、システムの復旧を試みることができる。
【0038】
RAIDコントローラに搭載されているキャッシュメモリは、RAIDコントローラに搭載されているCPUや各種チップデバイス等とは独立して電源が供給されるように構成し、RAIDコントローラの再起動時も常に通電された状態にする。
【0039】
これにより、RAIDコントローラのシステム復旧の際に、RAIDコントローラのハードウェア異常を復旧させるため、CPUや各種チップデバイスの電源を切断し、一旦RAIDコントローラ上のハードウェアの初期化を行うとき、キャッシュメモリも初期化されてしまうことを防ぐことができる。
【0040】
RAIDコントローラには、システム復旧時に、構成管理部の情報を参照し、システムの復旧に使用すべき、最新のデータが格納されたキャッシュメモリを選択し、そのキャッシュメモリ中のダーティデータをディスクに書き戻す処理を制御実行する、システム復旧制御部を持つように構成する。
【0041】
これにより、一方のRAIDコントローラにハードウェア異常が発生し、片系だけで一定期間運用し、その後にもう一方のRAIDコントローラにもハードウェア異常が発生し、最終的に両系のRAIDコントローラシステムが停止した場合のように、RAID装置の復旧時に両系のRAIDコントローラに搭載されたキャッシュメモリの内容が、相違するものとなっている場合でも、最後まで更新され、最新のデータを保持しているキャッシュメモリを適切に選択し、最新のデータを喪失することなくRAID装置の復旧を行うことができる。
【0042】
【実施例】
この発明による代表的な実施例を説明する。なお、以下において、同じ箇所は同一の符号を付してあり、詳細な説明を省略することがある。
【0043】
図1に示すように、本RAID装置は、ホストからのコマンド/データの送受信、ディスクへのリード/ライト等を実行制御するRAIDコントローラ1を二重化している。
【0044】
二重化された各RAIDコントローラ1には、それぞれキャッシュメモリ3が搭載されており、ホストからのリード/ライトはこのキャッシュメモリ3でデータをキャッシュし、キャッシュにヒットしている間は、キャッシュから応答を返すことで、ディスク装置へのアクセスを減らし、性能を向上するように構成している。
【0045】
二重化された両系のRAIDコントローラ1は、相互に通信する経路を有しており、この通信経路を通してコントローラ間通信部4によりデータの送受信が可能となっている。
【0046】
ホストからのデータのリード/ライトの要求はホストIO制御部2で受信され、ライト処理のように受信したデータがキャッシュメモリ3を更新するものである場合には、キャッシュメモリ上に格納するデータをコントローラ間通信部4により相互に通信することで同期をとり、常に両系ともに同じ最新のデータがキャッシュメモリ3に格納されるように制御している。
【0047】
新たなデータをキャッシュメモリに格納するため、キャッシュ制御により、キャッシュから外すべきと判断されたダーティデータは、ディスク制御部8によりディスク装置へ書き出すことで、恒久的な情報として保持されることとなる。
【0048】
以上のようなキャッシュメモリを使用した運用中に、例えば、0系のRAIDコントローラ1にハードウェア異常が発生し、RAIDコントローラ1がシステム停止した場合には、もう片系である1系のRAIDコントローラ1に搭載されたキャッシュメモリ3には、最新のデータが格納されているので、1系のRAIDコントローラ1により、データを喪失することなく運用を継続することができる。
【0049】
このようにキャッシュメモリを含めて二重化されたRAIDコントローラを備えることで、片系にハードウェア異常などが発生し、一方のRAIDコントローラがシステム停止した場合でも、もう片系のRAIDコントローラにより、最新データを喪失することなく運用を継続できるようになっている。
【0050】
図2の(a)に示すように、両系正常に運用中は、ホストからのライト要求によりキャッシュメモリ3が更新される場合は、両系ともにデータの同期をとってキャッシュメモリ3を更新するが、片系にハードウェア異常が発生し、図2の(b)に示すように、片系のみで運用している場合は、運用を継続している側の0系のRAIDコントローラ1に搭載されたキャッシュメモリ3は更新されていくが、1系のRAIDコントローラ1は停止しているので、そのRAIDコントローラ1に搭載されているキャッシュメモリ3の内容は更新されず、古い内容のデータのままとなっている。
【0051】
このように、片系運用を行い、キャッシュメモリの内容が両系で不一致となった後に、運用継続していた側のRAIDコントローラにもハードウェア異常などが発生し、RAIDコントローラシステムが停止した場合、RAID装置の復旧に際し、どちらの系のRAIDコントローラに搭載されたキャッシュメモリの内容が最新のデータを保持しているか判別する必要がある。
【0052】
そのため、構成管理部5には、RAID装置復旧時にどちらのRAIDコントローラに搭載されたキャッシュメモリの内容を使用して復旧すべきかを示す情報を管理している。なお、この構成管理部で管理する情報は、不揮発性のメモリに書き込まれるよう構成されており、システムの電源停止等によってもその内容は失われないようになっている。
【0053】
この情報は、以下のように管理される。
【0054】
図3の(a)に示すように、構成管理部5には運用状態を示す情報を保持している。この情報は、RAID装置の起動時に両系のRAIDコントローラ1が立ち上がったことを相互にコントローラ間通信部4を通して通信すること等により確認することで、両系が正常運用状態であることを認識し、運用状態情報を状態2とし、二重化されたRAIDコントローラが両系とも正常に運用中は、常に状態2としておく。
【0055】
ここで、図3の(b)に示すように、一方のRAIDコントローラ1でハードウェア異常が発生した場合、例えば、図3の(b)のように、1系のRAIDコントローラ1にハードウェア異常が発生し、1系のRAIDコントローラシステムが停止すると、0系のRAIDコントローラ1は、コントローラ間通信部4による他系への通信が正常に動作しないことを検出することなどにより、1系のRAIDコントローラ1が停止していることを認識する。自系のみの片系運用中であることを認識した0系のRAIDコントローラ1は、構成管理部5で保持している運用状態情報を状態1に変更する。
【0056】
これにより、停止した側のRAIDコントローラの運用状態情報は、状態2となっており、運用継続中のRAIDコントローラの運用状態情報は、状態1となる。
【0057】
その後に図3の(c)に示すように、運用を継続していたRAIDコントローラ1にもハードウェア異常が発生し、RAIDコントローラシステムが停止すると、RAID装置の復旧時には、構成管理部5で保持している、この運用状態情報が状態1となっている側のRAIDコントローラ1上に搭載されたキャッシュメモリ3の内容をディスクに書き出せばよいと判断できる。
【0058】
また、図4の(a)に示すように、両系が正常動作中に、図4の(b)に示すように、同時に両系のRAIDコントローラ1でハードウェア異常が発生し、停止した場合は、構成管理部5で管理している運用状態情報の変更を行う処理がどちらのRAIDコントローラ1でも行われないため、両系のRAIDコントローラ1とも運用状態情報が状態2のままで停止することとなるが、この場合は、どちらかのRAIDコントローラ1に搭載されたキャッシュメモリ3の内容のみが更新されるということがないので、両系のRAIDコントローラ1に搭載されたキャッシュメモリ3は同じ内容のデータを保持していることとなる。よって、このように同時にハードウェア異常等でRAIDコントローラシステムが停止した場合は、どちらのキャッシュメモリ3の内容をディスクに書き戻してもよいと判断できる。
【0059】
以上のことから、RAID装置の復旧にあたっては、構成管理部5に格納された運用状態情報を参照し、状態1を保持しているRAIDコントローラ1があれば、そちら側のキャッシュメモリ3を使用し、どちらも状態2であれば、どちら側のキャッシュメモリ3を使用しても良いと判断できるわけである。
【0060】
上記の判断は、RAID装置の復旧時に、両系ともに再起動された場合には適用できるが、ハードウェア異常が一時的なものではなく、どちらかのRAIDコントローラ1が再起動に失敗した場合には適用できない。
【0061】
図5の(a)に示すように、両系が停止した時点で、構成管理部5で管理している運用状態情報が0系は状態1で、1系は状態2だった場合は、図5の(b)に示すように、0系のみ再起動された場合は、その運用状態が1であることから、0系のキャッシュメモリ3には最新のデータが格納されていることが分かるので、0系のキャッシュメモリ3を使用してシステムの復旧を行う。
【0062】
しかし、図5の(c)に示すように、1系のみ再起動された場合は、その運用状態が2であり、0系の運用状態を知ることができないので、1系のキャッシュメモリ3に最新のデータが格納されているかどうか判断できない。
【0063】
このような場合に、1系のキャッシュメモリ3の内容をディスクに書き込んでしまうとディスク上のデータの整合性がとれなくなるおそれがあるので、キャッシュ上のデータの復元は実行しない。
【0064】
以上のような、構成管理部5で保持している運用状態情報と、両系のRAIDコントローラの再起動状態により、RAID装置の復旧時に、どちら側の系のキャッシュメモリを使用して復旧を行うかを判別し、適切にキャッシュデータの復元処理を行えるようにしている。
【0065】
RAID装置には、図6に示すように、RAIDコントローラ1とは独立して動作し、RAIDコントローラ1の動作状態を監視している監視制御部6を備えている。この監視制御部6は、RAIDコントローラ1が停止しても、独立して動作するように構成されており、また、必要に応じてRAIDコントローラ1の電源9のオン・オフを制御できるようになっている。
【0066】
両系のRAIDコントローラ1がハードウェア異常などにより停止した場合、監視制御部6がこれを検出すると、監視制御部6は、所定の時間経過後に、両系のRAIDコントローラ1の電源を切断し、その後、両系のRAIDコントローラ1の電源を再投入する。
【0067】
このような電源の切断、再投入により、RAIDコントローラに搭載されている各種のデバイスは初期化され、一時的に発生していたハードウェア異常から復旧させることができる。
【0068】
図7の(a)に示すように、RAIDコントローラ1に搭載された電源9は、CPU等とは別系統でキャッシュメモリ3に電源を供給するように構成しており、図7の(b)に示すように、システム復旧のため、CPU等の電源を切断した場合も、キャッシュメモリ3への電源の供給は切断されないようにし、キャッシュメモリの内容が、監視制御部6によるRAIDコントローラ1の電源制御によって失われないようになっている。
【0069】
このような監視制御部6による両系のRAIDコントローラ1の電源オフ・オン処理によりRAID装置の再起動を行うのであるが、この再起動は、通常の起動とは異なり、キャッシュメモリ3内のデータのディスクへの書き戻し処理を行う必要があるので、通常の起動であるか、復旧モードの起動であるかを判別する必要がある。
【0070】
この判別は、図8の(a)に示すように、監視制御部6が両系のRAIDコントローラ1が停止したことを検出することで、次回起動は復旧モードでの起動であることを覚えておき、図8の(b)に示すように、システム復旧のための両系のRAIDコントローラ1の再起動時に、RAIDコントローラ1に復旧モードでの起動であることを通知することで行われる。
【0071】
この起動モードの通知を受けたRAIDコントローラは、システムの起動時にこの情報を参照し、それが復旧モードである場合には、起動シーケンスの途中でシステム復旧制御部7に制御を移行し、以下のようなシステム復旧処理を実行する。
【0072】
システム復旧制御部7では、構成管理部5で管理されている運用状態情報と、再起動により両系のRAIDコントローラがハードウェア異常から復帰できたかどうかにより、以下のようなキャッシュメモリの書き戻し制御処理を実行する。
【0073】
復旧モードでの再起動により、両系のハードウェア異常が解消され、両系のRAIDコントローラともに再起動が成功した場合には、両系の構成管理部5に保持している運用状態情報を参照し、いずれか一方の状態情報が1の場合には、その系のキャッシュメモリ3に最新データが格納されていると判断できるので、その系のキャッシュメモリ3に格納されているデータのうち、まだディスクに反映していないダーティデータを、ディスク制御部8によりディスク装置に書き戻す処理を実行する。
【0074】
どちらの状態情報も2である場合には、両系のキャッシュメモリ3には、同じ最新のデータが格納されていると判断できるので、いずれか一方のキャッシュメモリ3を選択し、そのキャッシュメモリ中のまだディスクへ反映していないダーティデータを、ディスク制御部8によりディスク装置に書き戻す処理を実行する。
【0075】
復旧モードでの再起動により、いずれか一方のRAIDコントローラが再起動に失敗し、片系のみのRAIDコントローラだけが再起動に成功した場合には、起動に成功した側のRAIDコントローラの構成管理部5に保持している運用状態情報を参照する。この運用状態情報が、状態1の場合には、起動に成功した側の系のキャッシュメモリ3に最新データが格納されていると判断できるので、その系のキャッシュメモリ3に格納されているデータのうち、まだディスク装置に反映していないダーティデータを、ディスク制御部8によりディスク装置に書き戻す処理を実行する。
【0076】
運用状態情報が、状態2の場合には、起動に失敗した側のRAIDコントローラの運用状態情報が参照できない限り、起動に成功した側の系のキャッシュメモリ3に最新データが格納されているか判断ができないため、このような状態となった場合には、キャッシュメモリに格納された情報のディスク装置への書き戻し処理は行わないようにする。
【0077】
このように一方の系のRAIDコントローラが起動に失敗すると、キャッシュメモリ上のデータの復旧処理が行えない場合があるので、RAIDコントローラの復旧モードでの起動に際しては、RAIDコントローラシステムとして完全に機能できる状態ではなくても、問題のあるハードウェアを縮退等して、他系から構成管理部5で保持している運用状態が参照できる状態まで起動できるようにしてもよい。
【0078】
以上のような制御をシステム復旧制御部にて実行することにより、軽度の一時的なハードウェア異常により、二重化された両系のRAIDコントローラが、両系ともに停止してしまった場合でも、キャッシュメモリに格納された最新のデータを喪失することなくRAID装置の復旧処理が行えるようにしている。
【0079】
【発明の効果】
この発明により、以下に示すような効果が期待できる。
【0080】
RAID装置においては、性能の向上のため、ホストからのデータのリード/ライトをキャッシュメモリでキャッシュすることにより、ディスク装置へのアクセスを極力減らすよう構成されている。
【0081】
このようなキャッシュメモリを備えたRAID装置において、ハードウェア異常によりRAIDコントローラが停止してしまうと、キャッシュメモリに格納されていた最新のデータを喪失してしまうという問題があった。
【0082】
キャッシュメモリを含めて二重化したRAIDコントローラを備えることで、片系のみにハードウェア異常が発生しても、データを喪失することなく、運用を継続できるRAID装置が使用されるようになったが、このようなRAID装置においても、両系でハードウェア異常が発生し、両系ともにRAIDコントローラが停止した場合には、キャッシュメモリに格納された最新のデータを喪失してしまうという問題があった。
【0083】
本発明を利用することにより、キャッシュメモリを含めて二重化したRAIDコントローラを備えるRAID装置において、両系でハードウェア異常が発生し、両系ともにRAIDコントローラが停止した場合でも、キャッシュメモリに格納された最新データを喪失することなく、RAID装置を復旧することができる機能を備えた、RAID装置を提供することができるようになる。
【図面の簡単な説明】
【図1】本発明の全体構成図である。
【図2】片系運用によるキャッシュデータの不一致発生の説明図である。
【図3】構成管理部での運用状態情報管理処理の説明図である。
【図4】両系同時にハードウェア異常で停止した場合の状態情報説明図である。
【図5】RAIDコントローラがシステム再起動に失敗した場合の説明図である。
【図6】監視制御部の構成説明図である。
【図7】キャッシュメモリへの電源供給についての説明図である。
【図8】システム起動時のモード判別処理の説明図である。
【図9】従来技術の二重化RAIDコントローラの処理説明図である。
【符号の説明】
1:RAIDコントローラ
2:ホストIO制御部
3:キャッシュメモリ
4:コントローラ間通信部
5:構成管理部
6:監視制御部
7:システム復旧制御部
8:ディスク制御部
9:電源
【発明の属する技術分野】
この発明は、キャッシュメモリを搭載したRAIDコントローラが二重化されたRAID装置に関し、ハードウェア異常により二重化されたRAIDコントローラの両系がシステムダウンした場合でも、キャッシュメモリ上のデータを喪失することなく、システム復旧を行う手段を備えたRAID装置を実現するものである。
【0002】
【従来の技術】
RAID装置においては、データのリード、ライトの性能を向上させるため、ホストからのライトのデータを一旦キャッシュメモリに書き込み、後にキャッシュ制御によりデータをディスクに書き戻すように構成し、リードの場合もキャッシュにヒットしている場合は、キャッシュからデータをホストに返すようにし、極力ディスクへのアクセスを減らすようにしている。
【0003】
このため、キャッシュメモリ上にライトされたデータは、ディスクに書き戻されるまでにタイムラグがあり、この間は、ディスク上のデータはホストから送信されたデータより古いデータとなっている時間がある。
【0004】
このような、状態の時に、キャッシュメモリを搭載しているRAIDコントローラにハードウェア異常が発生し、RAIDコントローラシステムが停止してしまった場合、キャッシュ上の最新データが失われてしまうという問題があった。
【0005】
従来は、このような問題の発生を防ぐため、図9に示すように、0系、1系といった、RAIDコントローラ50を二重化したRAID装置が使用されている。(例えば、特許文献1を参照。)
【0006】
二重化された各RAIDコントローラ50には、それぞれにキャッシュメモリ52を搭載しており、また、コントローラ間通信部51により相互に通信を行えるようになっている。
【0007】
このような二重化されたRAIDコントローラを備えたRAID装置においては、以下のような制御を行うことで、キャッシュメモリ上のデータの保護を行えるようにしている。
【0008】
図9の(a)に示すように、0系、1系の両系のRAIDコントローラ50が相互にコントローラ間通信部51により通信し、各系のキャッシュメモリ52に書き込まれたデータの同期をとることで、両系のキャッシュメモリ52上のデータを、常に同じ最新のデータを保持するように制御する。
【0009】
これにより、図9の(b)に示すように、片系でハードウェア異常が発生し、例えば、0系のRAIDコントローラ50が停止した場合でも、1系のRAIDコントローラ50に搭載されたキャッシュメモリ52には最新のデータが格納されているので、これを使用して、データを喪失することなく、運用を継続できるようになっている。
【0010】
しかし、このような二重化したRAIDコントローラを備えたRAID装置においても、図9の(c)に示すように、0系と1系の両系ともにハードウェア異常が発生し、両系のRAIDコントローラが停止してしまった場合には、キャッシュメモリ上の最新データはディスクに書き出されることなく、失われてしまっていた。
【0011】
このようなRAIDコントローラシステムを停止しなければならないハードウェア異常の中には、完全に装置内のデバイスが破壊され復旧不可能な場合もあるが、そのような深刻なハードウェア異常が発生するのは極めて稀であり、多くの場合、高負荷による一時的なハードウェア異常の発生、例えば、一時的なCPU異常や一時的なバス異常等の軽度のハードウェア異常である。
【0012】
このような軽度の一時的なハードウェア異常の場合、RAIDコントローラシステムの電源をオフ、オンし、再起動し直すことで復旧できる場合も多くあった。
【0013】
従来のRAIDコントローラを二重化したRAID装置においては、これらの軽度のハードウェア異常であっても、両系のRAIDコントローラで同時にハードウェア異常が発生すれば、キャッシュメモリ上に格納された最新のデータを救う方法はなく、重要なユーザーデータの喪失という事態を回避することができなかった。
【0014】
【特許文献1】
特開平11−312058号公報
【発明が解決しようとする課題】
前記のごとく、従来の技術では次のような問題点がある。
【0015】
RAID装置においては、性能の向上のため、ホストからのライトデータを一時的にキャッシュメモリ上に格納し、ホストからの要求がキャッシュにヒットしている間はキャッシュメモリ上でリード・ライト処理を行い、極力ディスクへのアクセスを減らす構成としており、キャッシュメモリ上にのみ最新のデータが存在している。
【0016】
このような状態の時に、キャッシュメモリを搭載したRAIDコントローラにハードウェア異常が発生し、RAIDコントローラシステムが停止してしまうと、キャッシュメモリ上の最新データがディスクに書き出されることなく、喪失してしまうという問題があった。
【0017】
このような問題を防ぐため、キャッシュメモリを含めたRAIDコントローラを二重化したRAID装置があるが、このようなRAID装置においても、二重化した両系のRAIDコントローラが両方ともハードウェア異常の発生により停止してしまった場合には、最後まで動作していた側のキャッシュメモリに格納された最新データは、ディスクに書き出されることなく失われるという問題があった。
【0018】
また、このようなハードウェア異常の多くは、高負荷による一時的なものであり、完全にハードウェア破壊に至っている場合は極めて稀で、そのほとんどは、システムの再起動により復旧できるものであったが、このような軽度のハードウェア異常でもキャッシュメモリに格納された最新データを復旧させる方法がなく、喪失してしまっていた。
【0019】
この発明の課題は、キャッシュメモリを含めて二重化したRAIDコントローラを備えたRAID装置において、二重化した両系のRAIDコントローラに両系ともにハードウェア異常が発生し、両系のRAIDコントローラシステムが停止してしまった場合でも、キャッシュメモリ上の最新データを喪失せずに、復旧することができるRAID装置を提供することにある。
【0020】
【課題を解決するための手段】
前記の問題点を解決するために、この発明では次に示す手段を取った。
【0021】
RAID装置には、ホストからのデータのリード/ライト処理を実行制御するRAIDコントローラを二重化して備え、各RAIDコントローラには別々のキャッシュメモリを搭載するよう構成する。
【0022】
二重化されたRAIDコントローラは、ホストからのアクセス時にRAIDコントローラ同士で相互に通信を行い、キャッシュメモリ上に格納するデータの同期をとることで、常にキャッシュメモリ上のデータは、両系ともに同じ最新のデータが格納されるように制御する。
【0023】
両系のRAIDコントローラには、それぞれの系のRAIDコントローラに搭載されたキャッシュメモリに格納されたデータが、最新の状態であるかどうかを示す情報を構成管理部に持つように構成する。
【0024】
RAIDコントローラに搭載されたキャッシュメモリには、RAIDコントローラに搭載されたCPUや各種のチップデバイス等とは別系統で電源が供給され、RAIDコントローラの再起動時も通電されるように構成する。
【0025】
RAIDコントローラの片系にハードウェア異常が発生し、RAIDコントローラシステムが停止したことをもう片系のRAIDコントローラが検出すると、正常動作中のRAIDコントローラの構成管理部で管理しているキャッシュメモリの状態を示す情報を更新し、正常動作中のRAIDコントローラ上のキャッシュメモリにのみ最新のデータが更新されていることを示す情報を構成管理で保持するように制御する。これにより、停止した側の系のRAIDコントローラに搭載されているキャッシュメモリの内容が古い情報であることを判別できるようにしている。
【0026】
RAID装置には、RAIDコントローラとは独立して動作し、RAIDコントローラにハードウェア異常が発生し、RAIDコントローラシステムが停止したことを検出する監視制御部を備えるよう構成する。
【0027】
この監視制御部により、正常動作中であったもう片系のRAIDコントローラにもハードウェア異常が発生し、両系のRAIDコントローラシステムが停止したことを検出した場合、監視制御部は一旦両系のRAIDコントローラシステムの電源を切断し、その後両系のRAIDコントローラシステムを再起動する。
【0028】
このとき、RAIDコントローラに搭載されたキャッシュメモリは、CPU等とは別系統の電源により、RAIDコントローラシステムの電源切断中も常に電源が供給された状態になっているので、キャッシュメモリ上の最新データは失われない。
【0029】
RAID装置の復旧を制御する、システム復旧制御部で、両系のRAIDコントローラシステムが立ち上がって来るとき、各RAIDコントローラの構成管理部の情報を参照し、どちらのキャッシュメモリ上に最新のデータが格納されているかを判断し、最新の方のキャッシュメモリ上のデータをディスクに書き戻すように制御する。
【0030】
【発明の実施の形態】
この発明は、次に示す実施の形態を取った。
【0031】
キャッシュメモリを含めて二重化されたRAIDコントローラを備え、両系のRAIDコントローラがホストからのデータの受信時にRAIDコントローラ間で相互に通信し、キャッシュメモリに格納されるデータの同期をとるようにすることで、常に両系のRAIDコントローラ上のキャッシュメモリに同じ最新のデータが格納されるように構成する。
【0032】
これにより、一方のRAIDコントローラにのみハードウェア異常が発生し、RAIDコントローラシステムが停止した場合には、もう一方のRAIDコントローラにより、その系の持つキャッシュメモリ上の最新データを使用して、データを喪失することなく運用を継続することができる。
【0033】
両系のRAIDコントローラには、それぞれのRAIDコントローラに搭載されたキャッシュメモリが最新のデータを保持しているかどうかを示す情報を構成管理部の不揮発性の記憶装置内に持つように構成する。
【0034】
これにより、両系のRAIDコントローラにおいてハードウェア異常が発生し、両系のRAIDコントローラシステムが停止したとき、RAID装置の復旧時に、どちらのRAIDコントローラに最新データが格納されているかを判断することができ、誤って古いデータを保持しているキャッシュメモリのデータをディスクに書き戻し、異常発生時の最新のデータを喪失してしまうということを防ぐことができる。
【0035】
RAID装置には、RAIDコントローラとは独立して動作し、RAIDコントローラの動作状態を監視し、RAIDコントローラがハードウェア異常により停止した場合、これを検出する監視制御部を備えるよう構成する。
【0036】
この監視制御部により両系のRAIDコントローラともにハードウェア異常により停止したことを検出すると、両系のRAIDコントローラへの電源の供給を一旦切断し、その後再度両系のRAIDコントローラの電源を投入し、再起動させるよう制御する。
【0037】
これにより、高負荷などの要因により、一時的に発生していたハードウェア異常をリセットし、システムの復旧を試みることができる。
【0038】
RAIDコントローラに搭載されているキャッシュメモリは、RAIDコントローラに搭載されているCPUや各種チップデバイス等とは独立して電源が供給されるように構成し、RAIDコントローラの再起動時も常に通電された状態にする。
【0039】
これにより、RAIDコントローラのシステム復旧の際に、RAIDコントローラのハードウェア異常を復旧させるため、CPUや各種チップデバイスの電源を切断し、一旦RAIDコントローラ上のハードウェアの初期化を行うとき、キャッシュメモリも初期化されてしまうことを防ぐことができる。
【0040】
RAIDコントローラには、システム復旧時に、構成管理部の情報を参照し、システムの復旧に使用すべき、最新のデータが格納されたキャッシュメモリを選択し、そのキャッシュメモリ中のダーティデータをディスクに書き戻す処理を制御実行する、システム復旧制御部を持つように構成する。
【0041】
これにより、一方のRAIDコントローラにハードウェア異常が発生し、片系だけで一定期間運用し、その後にもう一方のRAIDコントローラにもハードウェア異常が発生し、最終的に両系のRAIDコントローラシステムが停止した場合のように、RAID装置の復旧時に両系のRAIDコントローラに搭載されたキャッシュメモリの内容が、相違するものとなっている場合でも、最後まで更新され、最新のデータを保持しているキャッシュメモリを適切に選択し、最新のデータを喪失することなくRAID装置の復旧を行うことができる。
【0042】
【実施例】
この発明による代表的な実施例を説明する。なお、以下において、同じ箇所は同一の符号を付してあり、詳細な説明を省略することがある。
【0043】
図1に示すように、本RAID装置は、ホストからのコマンド/データの送受信、ディスクへのリード/ライト等を実行制御するRAIDコントローラ1を二重化している。
【0044】
二重化された各RAIDコントローラ1には、それぞれキャッシュメモリ3が搭載されており、ホストからのリード/ライトはこのキャッシュメモリ3でデータをキャッシュし、キャッシュにヒットしている間は、キャッシュから応答を返すことで、ディスク装置へのアクセスを減らし、性能を向上するように構成している。
【0045】
二重化された両系のRAIDコントローラ1は、相互に通信する経路を有しており、この通信経路を通してコントローラ間通信部4によりデータの送受信が可能となっている。
【0046】
ホストからのデータのリード/ライトの要求はホストIO制御部2で受信され、ライト処理のように受信したデータがキャッシュメモリ3を更新するものである場合には、キャッシュメモリ上に格納するデータをコントローラ間通信部4により相互に通信することで同期をとり、常に両系ともに同じ最新のデータがキャッシュメモリ3に格納されるように制御している。
【0047】
新たなデータをキャッシュメモリに格納するため、キャッシュ制御により、キャッシュから外すべきと判断されたダーティデータは、ディスク制御部8によりディスク装置へ書き出すことで、恒久的な情報として保持されることとなる。
【0048】
以上のようなキャッシュメモリを使用した運用中に、例えば、0系のRAIDコントローラ1にハードウェア異常が発生し、RAIDコントローラ1がシステム停止した場合には、もう片系である1系のRAIDコントローラ1に搭載されたキャッシュメモリ3には、最新のデータが格納されているので、1系のRAIDコントローラ1により、データを喪失することなく運用を継続することができる。
【0049】
このようにキャッシュメモリを含めて二重化されたRAIDコントローラを備えることで、片系にハードウェア異常などが発生し、一方のRAIDコントローラがシステム停止した場合でも、もう片系のRAIDコントローラにより、最新データを喪失することなく運用を継続できるようになっている。
【0050】
図2の(a)に示すように、両系正常に運用中は、ホストからのライト要求によりキャッシュメモリ3が更新される場合は、両系ともにデータの同期をとってキャッシュメモリ3を更新するが、片系にハードウェア異常が発生し、図2の(b)に示すように、片系のみで運用している場合は、運用を継続している側の0系のRAIDコントローラ1に搭載されたキャッシュメモリ3は更新されていくが、1系のRAIDコントローラ1は停止しているので、そのRAIDコントローラ1に搭載されているキャッシュメモリ3の内容は更新されず、古い内容のデータのままとなっている。
【0051】
このように、片系運用を行い、キャッシュメモリの内容が両系で不一致となった後に、運用継続していた側のRAIDコントローラにもハードウェア異常などが発生し、RAIDコントローラシステムが停止した場合、RAID装置の復旧に際し、どちらの系のRAIDコントローラに搭載されたキャッシュメモリの内容が最新のデータを保持しているか判別する必要がある。
【0052】
そのため、構成管理部5には、RAID装置復旧時にどちらのRAIDコントローラに搭載されたキャッシュメモリの内容を使用して復旧すべきかを示す情報を管理している。なお、この構成管理部で管理する情報は、不揮発性のメモリに書き込まれるよう構成されており、システムの電源停止等によってもその内容は失われないようになっている。
【0053】
この情報は、以下のように管理される。
【0054】
図3の(a)に示すように、構成管理部5には運用状態を示す情報を保持している。この情報は、RAID装置の起動時に両系のRAIDコントローラ1が立ち上がったことを相互にコントローラ間通信部4を通して通信すること等により確認することで、両系が正常運用状態であることを認識し、運用状態情報を状態2とし、二重化されたRAIDコントローラが両系とも正常に運用中は、常に状態2としておく。
【0055】
ここで、図3の(b)に示すように、一方のRAIDコントローラ1でハードウェア異常が発生した場合、例えば、図3の(b)のように、1系のRAIDコントローラ1にハードウェア異常が発生し、1系のRAIDコントローラシステムが停止すると、0系のRAIDコントローラ1は、コントローラ間通信部4による他系への通信が正常に動作しないことを検出することなどにより、1系のRAIDコントローラ1が停止していることを認識する。自系のみの片系運用中であることを認識した0系のRAIDコントローラ1は、構成管理部5で保持している運用状態情報を状態1に変更する。
【0056】
これにより、停止した側のRAIDコントローラの運用状態情報は、状態2となっており、運用継続中のRAIDコントローラの運用状態情報は、状態1となる。
【0057】
その後に図3の(c)に示すように、運用を継続していたRAIDコントローラ1にもハードウェア異常が発生し、RAIDコントローラシステムが停止すると、RAID装置の復旧時には、構成管理部5で保持している、この運用状態情報が状態1となっている側のRAIDコントローラ1上に搭載されたキャッシュメモリ3の内容をディスクに書き出せばよいと判断できる。
【0058】
また、図4の(a)に示すように、両系が正常動作中に、図4の(b)に示すように、同時に両系のRAIDコントローラ1でハードウェア異常が発生し、停止した場合は、構成管理部5で管理している運用状態情報の変更を行う処理がどちらのRAIDコントローラ1でも行われないため、両系のRAIDコントローラ1とも運用状態情報が状態2のままで停止することとなるが、この場合は、どちらかのRAIDコントローラ1に搭載されたキャッシュメモリ3の内容のみが更新されるということがないので、両系のRAIDコントローラ1に搭載されたキャッシュメモリ3は同じ内容のデータを保持していることとなる。よって、このように同時にハードウェア異常等でRAIDコントローラシステムが停止した場合は、どちらのキャッシュメモリ3の内容をディスクに書き戻してもよいと判断できる。
【0059】
以上のことから、RAID装置の復旧にあたっては、構成管理部5に格納された運用状態情報を参照し、状態1を保持しているRAIDコントローラ1があれば、そちら側のキャッシュメモリ3を使用し、どちらも状態2であれば、どちら側のキャッシュメモリ3を使用しても良いと判断できるわけである。
【0060】
上記の判断は、RAID装置の復旧時に、両系ともに再起動された場合には適用できるが、ハードウェア異常が一時的なものではなく、どちらかのRAIDコントローラ1が再起動に失敗した場合には適用できない。
【0061】
図5の(a)に示すように、両系が停止した時点で、構成管理部5で管理している運用状態情報が0系は状態1で、1系は状態2だった場合は、図5の(b)に示すように、0系のみ再起動された場合は、その運用状態が1であることから、0系のキャッシュメモリ3には最新のデータが格納されていることが分かるので、0系のキャッシュメモリ3を使用してシステムの復旧を行う。
【0062】
しかし、図5の(c)に示すように、1系のみ再起動された場合は、その運用状態が2であり、0系の運用状態を知ることができないので、1系のキャッシュメモリ3に最新のデータが格納されているかどうか判断できない。
【0063】
このような場合に、1系のキャッシュメモリ3の内容をディスクに書き込んでしまうとディスク上のデータの整合性がとれなくなるおそれがあるので、キャッシュ上のデータの復元は実行しない。
【0064】
以上のような、構成管理部5で保持している運用状態情報と、両系のRAIDコントローラの再起動状態により、RAID装置の復旧時に、どちら側の系のキャッシュメモリを使用して復旧を行うかを判別し、適切にキャッシュデータの復元処理を行えるようにしている。
【0065】
RAID装置には、図6に示すように、RAIDコントローラ1とは独立して動作し、RAIDコントローラ1の動作状態を監視している監視制御部6を備えている。この監視制御部6は、RAIDコントローラ1が停止しても、独立して動作するように構成されており、また、必要に応じてRAIDコントローラ1の電源9のオン・オフを制御できるようになっている。
【0066】
両系のRAIDコントローラ1がハードウェア異常などにより停止した場合、監視制御部6がこれを検出すると、監視制御部6は、所定の時間経過後に、両系のRAIDコントローラ1の電源を切断し、その後、両系のRAIDコントローラ1の電源を再投入する。
【0067】
このような電源の切断、再投入により、RAIDコントローラに搭載されている各種のデバイスは初期化され、一時的に発生していたハードウェア異常から復旧させることができる。
【0068】
図7の(a)に示すように、RAIDコントローラ1に搭載された電源9は、CPU等とは別系統でキャッシュメモリ3に電源を供給するように構成しており、図7の(b)に示すように、システム復旧のため、CPU等の電源を切断した場合も、キャッシュメモリ3への電源の供給は切断されないようにし、キャッシュメモリの内容が、監視制御部6によるRAIDコントローラ1の電源制御によって失われないようになっている。
【0069】
このような監視制御部6による両系のRAIDコントローラ1の電源オフ・オン処理によりRAID装置の再起動を行うのであるが、この再起動は、通常の起動とは異なり、キャッシュメモリ3内のデータのディスクへの書き戻し処理を行う必要があるので、通常の起動であるか、復旧モードの起動であるかを判別する必要がある。
【0070】
この判別は、図8の(a)に示すように、監視制御部6が両系のRAIDコントローラ1が停止したことを検出することで、次回起動は復旧モードでの起動であることを覚えておき、図8の(b)に示すように、システム復旧のための両系のRAIDコントローラ1の再起動時に、RAIDコントローラ1に復旧モードでの起動であることを通知することで行われる。
【0071】
この起動モードの通知を受けたRAIDコントローラは、システムの起動時にこの情報を参照し、それが復旧モードである場合には、起動シーケンスの途中でシステム復旧制御部7に制御を移行し、以下のようなシステム復旧処理を実行する。
【0072】
システム復旧制御部7では、構成管理部5で管理されている運用状態情報と、再起動により両系のRAIDコントローラがハードウェア異常から復帰できたかどうかにより、以下のようなキャッシュメモリの書き戻し制御処理を実行する。
【0073】
復旧モードでの再起動により、両系のハードウェア異常が解消され、両系のRAIDコントローラともに再起動が成功した場合には、両系の構成管理部5に保持している運用状態情報を参照し、いずれか一方の状態情報が1の場合には、その系のキャッシュメモリ3に最新データが格納されていると判断できるので、その系のキャッシュメモリ3に格納されているデータのうち、まだディスクに反映していないダーティデータを、ディスク制御部8によりディスク装置に書き戻す処理を実行する。
【0074】
どちらの状態情報も2である場合には、両系のキャッシュメモリ3には、同じ最新のデータが格納されていると判断できるので、いずれか一方のキャッシュメモリ3を選択し、そのキャッシュメモリ中のまだディスクへ反映していないダーティデータを、ディスク制御部8によりディスク装置に書き戻す処理を実行する。
【0075】
復旧モードでの再起動により、いずれか一方のRAIDコントローラが再起動に失敗し、片系のみのRAIDコントローラだけが再起動に成功した場合には、起動に成功した側のRAIDコントローラの構成管理部5に保持している運用状態情報を参照する。この運用状態情報が、状態1の場合には、起動に成功した側の系のキャッシュメモリ3に最新データが格納されていると判断できるので、その系のキャッシュメモリ3に格納されているデータのうち、まだディスク装置に反映していないダーティデータを、ディスク制御部8によりディスク装置に書き戻す処理を実行する。
【0076】
運用状態情報が、状態2の場合には、起動に失敗した側のRAIDコントローラの運用状態情報が参照できない限り、起動に成功した側の系のキャッシュメモリ3に最新データが格納されているか判断ができないため、このような状態となった場合には、キャッシュメモリに格納された情報のディスク装置への書き戻し処理は行わないようにする。
【0077】
このように一方の系のRAIDコントローラが起動に失敗すると、キャッシュメモリ上のデータの復旧処理が行えない場合があるので、RAIDコントローラの復旧モードでの起動に際しては、RAIDコントローラシステムとして完全に機能できる状態ではなくても、問題のあるハードウェアを縮退等して、他系から構成管理部5で保持している運用状態が参照できる状態まで起動できるようにしてもよい。
【0078】
以上のような制御をシステム復旧制御部にて実行することにより、軽度の一時的なハードウェア異常により、二重化された両系のRAIDコントローラが、両系ともに停止してしまった場合でも、キャッシュメモリに格納された最新のデータを喪失することなくRAID装置の復旧処理が行えるようにしている。
【0079】
【発明の効果】
この発明により、以下に示すような効果が期待できる。
【0080】
RAID装置においては、性能の向上のため、ホストからのデータのリード/ライトをキャッシュメモリでキャッシュすることにより、ディスク装置へのアクセスを極力減らすよう構成されている。
【0081】
このようなキャッシュメモリを備えたRAID装置において、ハードウェア異常によりRAIDコントローラが停止してしまうと、キャッシュメモリに格納されていた最新のデータを喪失してしまうという問題があった。
【0082】
キャッシュメモリを含めて二重化したRAIDコントローラを備えることで、片系のみにハードウェア異常が発生しても、データを喪失することなく、運用を継続できるRAID装置が使用されるようになったが、このようなRAID装置においても、両系でハードウェア異常が発生し、両系ともにRAIDコントローラが停止した場合には、キャッシュメモリに格納された最新のデータを喪失してしまうという問題があった。
【0083】
本発明を利用することにより、キャッシュメモリを含めて二重化したRAIDコントローラを備えるRAID装置において、両系でハードウェア異常が発生し、両系ともにRAIDコントローラが停止した場合でも、キャッシュメモリに格納された最新データを喪失することなく、RAID装置を復旧することができる機能を備えた、RAID装置を提供することができるようになる。
【図面の簡単な説明】
【図1】本発明の全体構成図である。
【図2】片系運用によるキャッシュデータの不一致発生の説明図である。
【図3】構成管理部での運用状態情報管理処理の説明図である。
【図4】両系同時にハードウェア異常で停止した場合の状態情報説明図である。
【図5】RAIDコントローラがシステム再起動に失敗した場合の説明図である。
【図6】監視制御部の構成説明図である。
【図7】キャッシュメモリへの電源供給についての説明図である。
【図8】システム起動時のモード判別処理の説明図である。
【図9】従来技術の二重化RAIDコントローラの処理説明図である。
【符号の説明】
1:RAIDコントローラ
2:ホストIO制御部
3:キャッシュメモリ
4:コントローラ間通信部
5:構成管理部
6:監視制御部
7:システム復旧制御部
8:ディスク制御部
9:電源
Claims (2)
- 個々にキャッシュメモリを搭載したRAIDコントローラを二重化したRAID装置において、
RAIDコントローラに搭載されたCPU等とは別系統でキャッシュメモリへの電源供給を行う電源供給手段と、
両系停止時に、二重化されたRAIDコントローラのうち、どちらのRAIDコントローラに搭載されたキャッシュメモリに最新データが格納されているかを示す情報を管理し、不揮発性の記憶装置に保持する手段と、
RAIDコントローラとは独立して動作し、RAIDコントローラの動作状態を監視する監視手段と、
両系のRAIDコントローラが停止した場合、所定の要件を満たすときは、前記どちらのRAIDコントローラに搭載されたキャッシュメモリに最新データが格納されているかを示す情報を参照し、最新データが格納されている側のキャッシュメモリを選択してシステム復旧を行う、システム復旧処理制御手段と、
を備えることを特徴とするRAID装置。 - 個々にキャッシュメモリを搭載したRAIDコントローラを二重化したRAID装置において、
前記監視手段により、両系のRAIDコントローラが停止したことを検出した場合、両系のRAIDコントローラを再起動させ、
前記システム復旧処理制御手段により、最新のデータを格納したキャッシュメモリから、最新データをディスク装置へ書き戻すことでシステム復旧を行う、
ことを特徴とする請求項1記載のRAID装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002372117A JP2004206239A (ja) | 2002-12-24 | 2002-12-24 | Raid装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002372117A JP2004206239A (ja) | 2002-12-24 | 2002-12-24 | Raid装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004206239A true JP2004206239A (ja) | 2004-07-22 |
Family
ID=32810811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002372117A Pending JP2004206239A (ja) | 2002-12-24 | 2002-12-24 | Raid装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004206239A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006134149A (ja) * | 2004-11-08 | 2006-05-25 | Fujitsu Ltd | ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム |
JP2008040612A (ja) * | 2006-08-02 | 2008-02-21 | Fujitsu Ltd | 担当lun制御を用いたraid制御を行うディスクコントローラおよび診断制御方法 |
US8762648B2 (en) | 2010-08-30 | 2014-06-24 | Fujitsu Limited | Storage system, control apparatus and control method therefor |
US8943358B2 (en) | 2011-08-17 | 2015-01-27 | Fujitsu Limited | Storage system, apparatus, and method for failure recovery during unsuccessful rebuild process |
JP2016212506A (ja) * | 2015-04-30 | 2016-12-15 | 富士通株式会社 | 情報処理システム、制御装置および制御プログラム |
JP2017091323A (ja) * | 2015-11-12 | 2017-05-25 | 京セラドキュメントソリューションズ株式会社 | 通信装置及び画像形成装置 |
-
2002
- 2002-12-24 JP JP2002372117A patent/JP2004206239A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006134149A (ja) * | 2004-11-08 | 2006-05-25 | Fujitsu Ltd | ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム |
KR100697761B1 (ko) | 2004-11-08 | 2007-03-21 | 후지쯔 가부시끼가이샤 | 디스크 어레이 장치와 그 데이터의 리커버리 방법 및 데이터 리커버리 프로그램을 기록한 기록 매체 |
JP4491330B2 (ja) * | 2004-11-08 | 2010-06-30 | 富士通株式会社 | ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム |
JP2008040612A (ja) * | 2006-08-02 | 2008-02-21 | Fujitsu Ltd | 担当lun制御を用いたraid制御を行うディスクコントローラおよび診断制御方法 |
US8762648B2 (en) | 2010-08-30 | 2014-06-24 | Fujitsu Limited | Storage system, control apparatus and control method therefor |
US8943358B2 (en) | 2011-08-17 | 2015-01-27 | Fujitsu Limited | Storage system, apparatus, and method for failure recovery during unsuccessful rebuild process |
JP2016212506A (ja) * | 2015-04-30 | 2016-12-15 | 富士通株式会社 | 情報処理システム、制御装置および制御プログラム |
JP2017091323A (ja) * | 2015-11-12 | 2017-05-25 | 京セラドキュメントソリューションズ株式会社 | 通信装置及び画像形成装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1705574A2 (en) | Non-volatile backup for data cache | |
JP4430846B2 (ja) | 遠隔ミラーリングシステム、装置及び方法 | |
US5623625A (en) | Computer network server backup with posted write cache disk controllers | |
JP3992427B2 (ja) | ファイルシステム | |
EP0889409B1 (en) | Mirrored write-back cache module warmswap | |
JP2003508847A (ja) | ミラーリング・デバイス群に格納されているデータの一貫性を維持する方法および装置 | |
US8341390B2 (en) | Computer system and method for backing up BIOS settings | |
JP2004021989A (ja) | データをバックアップする方法 | |
JP2001166993A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
US20150074219A1 (en) | High availability networking using transactional memory | |
US7000142B2 (en) | Mirrored extensions to a multiple disk storage system | |
WO2012001780A1 (ja) | システム制御装置、情報処理システム及び情報処理システムのデータ退避及び復元方法 | |
US10078558B2 (en) | Database system control method and database system | |
JP2010186285A (ja) | ミラーリング制御装置、ストレージ装置、ミラーリング制御方法 | |
US7055055B1 (en) | Write cache flushing method for reducing data corruption | |
JP2004206239A (ja) | Raid装置 | |
US20090150459A1 (en) | Highly available multiple storage system consistency heartbeat function | |
JP4489500B2 (ja) | バックアップ方法、バックアップシステム、ディスク制御装置、及びバックアッププログラム | |
EP1090348B1 (en) | Method and apparatus for dealing with data corruption and shared disks in the context of saving, using and recovering data | |
JP2002099390A (ja) | ディスク制御装置 | |
JP2006260141A (ja) | 記憶システムの制御方法、記憶システム、記憶制御装置、記憶システムの制御プログラム、情報処理システム | |
JP2004054616A (ja) | ファームウェア自動修復機能を有する情報処理装置 | |
JP2009025967A (ja) | 二重化ファームウェアのバックアップ方式、方法、及び、オペレーティングシステム | |
JP2004295563A (ja) | データの整合性を保つための高信頼化されたデータ管理方法 | |
JPH10240620A (ja) | コンピュータシステムおよび同システムにおけるチェックポイントイメージ保存方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050616 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080311 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081118 |