(57)【要約】【課題】この発明の課題は、二重化ＲＡＩＤコントローラを備えたＲＡＩＤ装置において、両系ともにハードウェア異常により停止してしまった場合でも、最新キャッシュのデータを喪失せずに、復旧することができるＲＡＩＤ装置を提供することにある。【解決手段】ＲＡＩＤコントローラ１の構成管理部５には、二重化した両系のうち、どちらの系により新しいキャッシュデータが存在するかを示す情報を保持するようにし、両系のＲＡＩＤコントローラ１がともに停止すると、これを検出した監視制御部６が、両系のＲＡＩＤコントローラ１の電源オフ、オン処理を実行し、ＲＡＩＤコントローラ１を再起動させる。この再起動により一時的に発生していたハードウェア異常を復旧させるとともに、再起動時に、構成管理部５に保持している情報を参照することで、適切なキャッシュメモリを選択し、キャッシュデータのディスクへの書き戻し処理を行う。【選択図】            図１
2004206239.tif 000002
【特許請求の範囲】
【請求項１】
個々にキャッシュメモリを搭載したＲＡＩＤコントローラを二重化したＲＡＩＤ装置において、
ＲＡＩＤコントローラに搭載されたＣＰＵ等とは別系統でキャッシュメモリへの電源供給を行う電源供給手段と、
両系停止時に、二重化されたＲＡＩＤコントローラのうち、どちらのＲＡＩＤコントローラに搭載されたキャッシュメモリに最新データが格納されているかを示す情報を管理し、不揮発性の記憶装置に保持する手段と、
ＲＡＩＤコントローラとは独立して動作し、ＲＡＩＤコントローラの動作状態を監視する監視手段と、
両系のＲＡＩＤコントローラが停止した場合、所定の要件を満たすときは、前記どちらのＲＡＩＤコントローラに搭載されたキャッシュメモリに最新データが格納されているかを示す情報を参照し、最新データが格納されている側のキャッシュメモリを選択してシステム復旧を行う、システム復旧処理制御手段と、
を備えることを特徴とするＲＡＩＤ装置。
【請求項２】
個々にキャッシュメモリを搭載したＲＡＩＤコントローラを二重化したＲＡＩＤ装置において、
前記監視手段により、両系のＲＡＩＤコントローラが停止したことを検出した場合、両系のＲＡＩＤコントローラを再起動させ、
前記システム復旧処理制御手段により、最新のデータを格納したキャッシュメモリから、最新データをディスク装置へ書き戻すことでシステム復旧を行う、
ことを特徴とする請求項１記載のＲＡＩＤ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、キャッシュメモリを搭載したＲＡＩＤコントローラが二重化されたＲＡＩＤ装置に関し、ハードウェア異常により二重化されたＲＡＩＤコントローラの両系がシステムダウンした場合でも、キャッシュメモリ上のデータを喪失することなく、システム復旧を行う手段を備えたＲＡＩＤ装置を実現するものである。
【０００２】
【従来の技術】
ＲＡＩＤ装置においては、データのリード、ライトの性能を向上させるため、ホストからのライトのデータを一旦キャッシュメモリに書き込み、後にキャッシュ制御によりデータをディスクに書き戻すように構成し、リードの場合もキャッシュにヒットしている場合は、キャッシュからデータをホストに返すようにし、極力ディスクへのアクセスを減らすようにしている。
【０００３】
このため、キャッシュメモリ上にライトされたデータは、ディスクに書き戻されるまでにタイムラグがあり、この間は、ディスク上のデータはホストから送信されたデータより古いデータとなっている時間がある。
【０００４】
このような、状態の時に、キャッシュメモリを搭載しているＲＡＩＤコントローラにハードウェア異常が発生し、ＲＡＩＤコントローラシステムが停止してしまった場合、キャッシュ上の最新データが失われてしまうという問題があった。
【０００５】
従来は、このような問題の発生を防ぐため、図９に示すように、０系、１系といった、ＲＡＩＤコントローラ５０を二重化したＲＡＩＤ装置が使用されている。（例えば、特許文献１を参照。）
【０００６】
二重化された各ＲＡＩＤコントローラ５０には、それぞれにキャッシュメモリ５２を搭載しており、また、コントローラ間通信部５１により相互に通信を行えるようになっている。
【０００７】
このような二重化されたＲＡＩＤコントローラを備えたＲＡＩＤ装置においては、以下のような制御を行うことで、キャッシュメモリ上のデータの保護を行えるようにしている。
【０００８】
図９の（ａ）に示すように、０系、１系の両系のＲＡＩＤコントローラ５０が相互にコントローラ間通信部５１により通信し、各系のキャッシュメモリ５２に書き込まれたデータの同期をとることで、両系のキャッシュメモリ５２上のデータを、常に同じ最新のデータを保持するように制御する。
【０００９】
これにより、図９の（ｂ）に示すように、片系でハードウェア異常が発生し、例えば、０系のＲＡＩＤコントローラ５０が停止した場合でも、１系のＲＡＩＤコントローラ５０に搭載されたキャッシュメモリ５２には最新のデータが格納されているので、これを使用して、データを喪失することなく、運用を継続できるようになっている。
【００１０】
しかし、このような二重化したＲＡＩＤコントローラを備えたＲＡＩＤ装置においても、図９の（ｃ）に示すように、０系と１系の両系ともにハードウェア異常が発生し、両系のＲＡＩＤコントローラが停止してしまった場合には、キャッシュメモリ上の最新データはディスクに書き出されることなく、失われてしまっていた。
【００１１】
このようなＲＡＩＤコントローラシステムを停止しなければならないハードウェア異常の中には、完全に装置内のデバイスが破壊され復旧不可能な場合もあるが、そのような深刻なハードウェア異常が発生するのは極めて稀であり、多くの場合、高負荷による一時的なハードウェア異常の発生、例えば、一時的なＣＰＵ異常や一時的なバス異常等の軽度のハードウェア異常である。
【００１２】
このような軽度の一時的なハードウェア異常の場合、ＲＡＩＤコントローラシステムの電源をオフ、オンし、再起動し直すことで復旧できる場合も多くあった。
【００１３】
従来のＲＡＩＤコントローラを二重化したＲＡＩＤ装置においては、これらの軽度のハードウェア異常であっても、両系のＲＡＩＤコントローラで同時にハードウェア異常が発生すれば、キャッシュメモリ上に格納された最新のデータを救う方法はなく、重要なユーザーデータの喪失という事態を回避することができなかった。
【００１４】
【特許文献１】
特開平１１−３１２０５８号公報
【発明が解決しようとする課題】
前記のごとく、従来の技術では次のような問題点がある。
【００１５】
ＲＡＩＤ装置においては、性能の向上のため、ホストからのライトデータを一時的にキャッシュメモリ上に格納し、ホストからの要求がキャッシュにヒットしている間はキャッシュメモリ上でリード・ライト処理を行い、極力ディスクへのアクセスを減らす構成としており、キャッシュメモリ上にのみ最新のデータが存在している。
【００１６】
このような状態の時に、キャッシュメモリを搭載したＲＡＩＤコントローラにハードウェア異常が発生し、ＲＡＩＤコントローラシステムが停止してしまうと、キャッシュメモリ上の最新データがディスクに書き出されることなく、喪失してしまうという問題があった。
【００１７】
このような問題を防ぐため、キャッシュメモリを含めたＲＡＩＤコントローラを二重化したＲＡＩＤ装置があるが、このようなＲＡＩＤ装置においても、二重化した両系のＲＡＩＤコントローラが両方ともハードウェア異常の発生により停止してしまった場合には、最後まで動作していた側のキャッシュメモリに格納された最新データは、ディスクに書き出されることなく失われるという問題があった。
【００１８】
また、このようなハードウェア異常の多くは、高負荷による一時的なものであり、完全にハードウェア破壊に至っている場合は極めて稀で、そのほとんどは、システムの再起動により復旧できるものであったが、このような軽度のハードウェア異常でもキャッシュメモリに格納された最新データを復旧させる方法がなく、喪失してしまっていた。
【００１９】
この発明の課題は、キャッシュメモリを含めて二重化したＲＡＩＤコントローラを備えたＲＡＩＤ装置において、二重化した両系のＲＡＩＤコントローラに両系ともにハードウェア異常が発生し、両系のＲＡＩＤコントローラシステムが停止してしまった場合でも、キャッシュメモリ上の最新データを喪失せずに、復旧することができるＲＡＩＤ装置を提供することにある。
【００２０】
【課題を解決するための手段】
前記の問題点を解決するために、この発明では次に示す手段を取った。
【００２１】
ＲＡＩＤ装置には、ホストからのデータのリード／ライト処理を実行制御するＲＡＩＤコントローラを二重化して備え、各ＲＡＩＤコントローラには別々のキャッシュメモリを搭載するよう構成する。
【００２２】
二重化されたＲＡＩＤコントローラは、ホストからのアクセス時にＲＡＩＤコントローラ同士で相互に通信を行い、キャッシュメモリ上に格納するデータの同期をとることで、常にキャッシュメモリ上のデータは、両系ともに同じ最新のデータが格納されるように制御する。
【００２３】
両系のＲＡＩＤコントローラには、それぞれの系のＲＡＩＤコントローラに搭載されたキャッシュメモリに格納されたデータが、最新の状態であるかどうかを示す情報を構成管理部に持つように構成する。
【００２４】
ＲＡＩＤコントローラに搭載されたキャッシュメモリには、ＲＡＩＤコントローラに搭載されたＣＰＵや各種のチップデバイス等とは別系統で電源が供給され、ＲＡＩＤコントローラの再起動時も通電されるように構成する。
【００２５】
ＲＡＩＤコントローラの片系にハードウェア異常が発生し、ＲＡＩＤコントローラシステムが停止したことをもう片系のＲＡＩＤコントローラが検出すると、正常動作中のＲＡＩＤコントローラの構成管理部で管理しているキャッシュメモリの状態を示す情報を更新し、正常動作中のＲＡＩＤコントローラ上のキャッシュメモリにのみ最新のデータが更新されていることを示す情報を構成管理で保持するように制御する。これにより、停止した側の系のＲＡＩＤコントローラに搭載されているキャッシュメモリの内容が古い情報であることを判別できるようにしている。
【００２６】
ＲＡＩＤ装置には、ＲＡＩＤコントローラとは独立して動作し、ＲＡＩＤコントローラにハードウェア異常が発生し、ＲＡＩＤコントローラシステムが停止したことを検出する監視制御部を備えるよう構成する。
【００２７】
この監視制御部により、正常動作中であったもう片系のＲＡＩＤコントローラにもハードウェア異常が発生し、両系のＲＡＩＤコントローラシステムが停止したことを検出した場合、監視制御部は一旦両系のＲＡＩＤコントローラシステムの電源を切断し、その後両系のＲＡＩＤコントローラシステムを再起動する。
【００２８】
このとき、ＲＡＩＤコントローラに搭載されたキャッシュメモリは、ＣＰＵ等とは別系統の電源により、ＲＡＩＤコントローラシステムの電源切断中も常に電源が供給された状態になっているので、キャッシュメモリ上の最新データは失われない。
【００２９】
ＲＡＩＤ装置の復旧を制御する、システム復旧制御部で、両系のＲＡＩＤコントローラシステムが立ち上がって来るとき、各ＲＡＩＤコントローラの構成管理部の情報を参照し、どちらのキャッシュメモリ上に最新のデータが格納されているかを判断し、最新の方のキャッシュメモリ上のデータをディスクに書き戻すように制御する。
【００３０】
【発明の実施の形態】
この発明は、次に示す実施の形態を取った。
【００３１】
キャッシュメモリを含めて二重化されたＲＡＩＤコントローラを備え、両系のＲＡＩＤコントローラがホストからのデータの受信時にＲＡＩＤコントローラ間で相互に通信し、キャッシュメモリに格納されるデータの同期をとるようにすることで、常に両系のＲＡＩＤコントローラ上のキャッシュメモリに同じ最新のデータが格納されるように構成する。
【００３２】
これにより、一方のＲＡＩＤコントローラにのみハードウェア異常が発生し、ＲＡＩＤコントローラシステムが停止した場合には、もう一方のＲＡＩＤコントローラにより、その系の持つキャッシュメモリ上の最新データを使用して、データを喪失することなく運用を継続することができる。
【００３３】
両系のＲＡＩＤコントローラには、それぞれのＲＡＩＤコントローラに搭載されたキャッシュメモリが最新のデータを保持しているかどうかを示す情報を構成管理部の不揮発性の記憶装置内に持つように構成する。
【００３４】
これにより、両系のＲＡＩＤコントローラにおいてハードウェア異常が発生し、両系のＲＡＩＤコントローラシステムが停止したとき、ＲＡＩＤ装置の復旧時に、どちらのＲＡＩＤコントローラに最新データが格納されているかを判断することができ、誤って古いデータを保持しているキャッシュメモリのデータをディスクに書き戻し、異常発生時の最新のデータを喪失してしまうということを防ぐことができる。
【００３５】
ＲＡＩＤ装置には、ＲＡＩＤコントローラとは独立して動作し、ＲＡＩＤコントローラの動作状態を監視し、ＲＡＩＤコントローラがハードウェア異常により停止した場合、これを検出する監視制御部を備えるよう構成する。
【００３６】
この監視制御部により両系のＲＡＩＤコントローラともにハードウェア異常により停止したことを検出すると、両系のＲＡＩＤコントローラへの電源の供給を一旦切断し、その後再度両系のＲＡＩＤコントローラの電源を投入し、再起動させるよう制御する。
【００３７】
これにより、高負荷などの要因により、一時的に発生していたハードウェア異常をリセットし、システムの復旧を試みることができる。
【００３８】
ＲＡＩＤコントローラに搭載されているキャッシュメモリは、ＲＡＩＤコントローラに搭載されているＣＰＵや各種チップデバイス等とは独立して電源が供給されるように構成し、ＲＡＩＤコントローラの再起動時も常に通電された状態にする。
【００３９】
これにより、ＲＡＩＤコントローラのシステム復旧の際に、ＲＡＩＤコントローラのハードウェア異常を復旧させるため、ＣＰＵや各種チップデバイスの電源を切断し、一旦ＲＡＩＤコントローラ上のハードウェアの初期化を行うとき、キャッシュメモリも初期化されてしまうことを防ぐことができる。
【００４０】
ＲＡＩＤコントローラには、システム復旧時に、構成管理部の情報を参照し、システムの復旧に使用すべき、最新のデータが格納されたキャッシュメモリを選択し、そのキャッシュメモリ中のダーティデータをディスクに書き戻す処理を制御実行する、システム復旧制御部を持つように構成する。
【００４１】
これにより、一方のＲＡＩＤコントローラにハードウェア異常が発生し、片系だけで一定期間運用し、その後にもう一方のＲＡＩＤコントローラにもハードウェア異常が発生し、最終的に両系のＲＡＩＤコントローラシステムが停止した場合のように、ＲＡＩＤ装置の復旧時に両系のＲＡＩＤコントローラに搭載されたキャッシュメモリの内容が、相違するものとなっている場合でも、最後まで更新され、最新のデータを保持しているキャッシュメモリを適切に選択し、最新のデータを喪失することなくＲＡＩＤ装置の復旧を行うことができる。
【００４２】
【実施例】
この発明による代表的な実施例を説明する。なお、以下において、同じ箇所は同一の符号を付してあり、詳細な説明を省略することがある。
【００４３】
図１に示すように、本ＲＡＩＤ装置は、ホストからのコマンド／データの送受信、ディスクへのリード／ライト等を実行制御するＲＡＩＤコントローラ１を二重化している。
【００４４】
二重化された各ＲＡＩＤコントローラ１には、それぞれキャッシュメモリ３が搭載されており、ホストからのリード／ライトはこのキャッシュメモリ３でデータをキャッシュし、キャッシュにヒットしている間は、キャッシュから応答を返すことで、ディスク装置へのアクセスを減らし、性能を向上するように構成している。
【００４５】
二重化された両系のＲＡＩＤコントローラ１は、相互に通信する経路を有しており、この通信経路を通してコントローラ間通信部４によりデータの送受信が可能となっている。
【００４６】
ホストからのデータのリード／ライトの要求はホストＩＯ制御部２で受信され、ライト処理のように受信したデータがキャッシュメモリ３を更新するものである場合には、キャッシュメモリ上に格納するデータをコントローラ間通信部４により相互に通信することで同期をとり、常に両系ともに同じ最新のデータがキャッシュメモリ３に格納されるように制御している。
【００４７】
新たなデータをキャッシュメモリに格納するため、キャッシュ制御により、キャッシュから外すべきと判断されたダーティデータは、ディスク制御部８によりディスク装置へ書き出すことで、恒久的な情報として保持されることとなる。
【００４８】
以上のようなキャッシュメモリを使用した運用中に、例えば、０系のＲＡＩＤコントローラ１にハードウェア異常が発生し、ＲＡＩＤコントローラ１がシステム停止した場合には、もう片系である１系のＲＡＩＤコントローラ１に搭載されたキャッシュメモリ３には、最新のデータが格納されているので、１系のＲＡＩＤコントローラ１により、データを喪失することなく運用を継続することができる。
【００４９】
このようにキャッシュメモリを含めて二重化されたＲＡＩＤコントローラを備えることで、片系にハードウェア異常などが発生し、一方のＲＡＩＤコントローラがシステム停止した場合でも、もう片系のＲＡＩＤコントローラにより、最新データを喪失することなく運用を継続できるようになっている。
【００５０】
図２の（ａ）に示すように、両系正常に運用中は、ホストからのライト要求によりキャッシュメモリ３が更新される場合は、両系ともにデータの同期をとってキャッシュメモリ３を更新するが、片系にハードウェア異常が発生し、図２の（ｂ）に示すように、片系のみで運用している場合は、運用を継続している側の０系のＲＡＩＤコントローラ１に搭載されたキャッシュメモリ３は更新されていくが、１系のＲＡＩＤコントローラ１は停止しているので、そのＲＡＩＤコントローラ１に搭載されているキャッシュメモリ３の内容は更新されず、古い内容のデータのままとなっている。
【００５１】
このように、片系運用を行い、キャッシュメモリの内容が両系で不一致となった後に、運用継続していた側のＲＡＩＤコントローラにもハードウェア異常などが発生し、ＲＡＩＤコントローラシステムが停止した場合、ＲＡＩＤ装置の復旧に際し、どちらの系のＲＡＩＤコントローラに搭載されたキャッシュメモリの内容が最新のデータを保持しているか判別する必要がある。
【００５２】
そのため、構成管理部５には、ＲＡＩＤ装置復旧時にどちらのＲＡＩＤコントローラに搭載されたキャッシュメモリの内容を使用して復旧すべきかを示す情報を管理している。なお、この構成管理部で管理する情報は、不揮発性のメモリに書き込まれるよう構成されており、システムの電源停止等によってもその内容は失われないようになっている。
【００５３】
この情報は、以下のように管理される。
【００５４】
図３の（ａ）に示すように、構成管理部５には運用状態を示す情報を保持している。この情報は、ＲＡＩＤ装置の起動時に両系のＲＡＩＤコントローラ１が立ち上がったことを相互にコントローラ間通信部４を通して通信すること等により確認することで、両系が正常運用状態であることを認識し、運用状態情報を状態２とし、二重化されたＲＡＩＤコントローラが両系とも正常に運用中は、常に状態２としておく。
【００５５】
ここで、図３の（ｂ）に示すように、一方のＲＡＩＤコントローラ１でハードウェア異常が発生した場合、例えば、図３の（ｂ）のように、１系のＲＡＩＤコントローラ１にハードウェア異常が発生し、１系のＲＡＩＤコントローラシステムが停止すると、０系のＲＡＩＤコントローラ１は、コントローラ間通信部４による他系への通信が正常に動作しないことを検出することなどにより、１系のＲＡＩＤコントローラ１が停止していることを認識する。自系のみの片系運用中であることを認識した０系のＲＡＩＤコントローラ１は、構成管理部５で保持している運用状態情報を状態１に変更する。
【００５６】
これにより、停止した側のＲＡＩＤコントローラの運用状態情報は、状態２となっており、運用継続中のＲＡＩＤコントローラの運用状態情報は、状態１となる。
【００５７】
その後に図３の（ｃ）に示すように、運用を継続していたＲＡＩＤコントローラ１にもハードウェア異常が発生し、ＲＡＩＤコントローラシステムが停止すると、ＲＡＩＤ装置の復旧時には、構成管理部５で保持している、この運用状態情報が状態１となっている側のＲＡＩＤコントローラ１上に搭載されたキャッシュメモリ３の内容をディスクに書き出せばよいと判断できる。
【００５８】
また、図４の（ａ）に示すように、両系が正常動作中に、図４の（ｂ）に示すように、同時に両系のＲＡＩＤコントローラ１でハードウェア異常が発生し、停止した場合は、構成管理部５で管理している運用状態情報の変更を行う処理がどちらのＲＡＩＤコントローラ１でも行われないため、両系のＲＡＩＤコントローラ１とも運用状態情報が状態２のままで停止することとなるが、この場合は、どちらかのＲＡＩＤコントローラ１に搭載されたキャッシュメモリ３の内容のみが更新されるということがないので、両系のＲＡＩＤコントローラ１に搭載されたキャッシュメモリ３は同じ内容のデータを保持していることとなる。よって、このように同時にハードウェア異常等でＲＡＩＤコントローラシステムが停止した場合は、どちらのキャッシュメモリ３の内容をディスクに書き戻してもよいと判断できる。
【００５９】
以上のことから、ＲＡＩＤ装置の復旧にあたっては、構成管理部５に格納された運用状態情報を参照し、状態１を保持しているＲＡＩＤコントローラ１があれば、そちら側のキャッシュメモリ３を使用し、どちらも状態２であれば、どちら側のキャッシュメモリ３を使用しても良いと判断できるわけである。
【００６０】
上記の判断は、ＲＡＩＤ装置の復旧時に、両系ともに再起動された場合には適用できるが、ハードウェア異常が一時的なものではなく、どちらかのＲＡＩＤコントローラ１が再起動に失敗した場合には適用できない。
【００６１】
図５の（ａ）に示すように、両系が停止した時点で、構成管理部５で管理している運用状態情報が０系は状態１で、１系は状態２だった場合は、図５の（ｂ）に示すように、０系のみ再起動された場合は、その運用状態が１であることから、０系のキャッシュメモリ３には最新のデータが格納されていることが分かるので、０系のキャッシュメモリ３を使用してシステムの復旧を行う。
【００６２】
しかし、図５の（ｃ）に示すように、１系のみ再起動された場合は、その運用状態が２であり、０系の運用状態を知ることができないので、１系のキャッシュメモリ３に最新のデータが格納されているかどうか判断できない。
【００６３】
このような場合に、１系のキャッシュメモリ３の内容をディスクに書き込んでしまうとディスク上のデータの整合性がとれなくなるおそれがあるので、キャッシュ上のデータの復元は実行しない。
【００６４】
以上のような、構成管理部５で保持している運用状態情報と、両系のＲＡＩＤコントローラの再起動状態により、ＲＡＩＤ装置の復旧時に、どちら側の系のキャッシュメモリを使用して復旧を行うかを判別し、適切にキャッシュデータの復元処理を行えるようにしている。
【００６５】
ＲＡＩＤ装置には、図６に示すように、ＲＡＩＤコントローラ１とは独立して動作し、ＲＡＩＤコントローラ１の動作状態を監視している監視制御部６を備えている。この監視制御部６は、ＲＡＩＤコントローラ１が停止しても、独立して動作するように構成されており、また、必要に応じてＲＡＩＤコントローラ１の電源９のオン・オフを制御できるようになっている。
【００６６】
両系のＲＡＩＤコントローラ１がハードウェア異常などにより停止した場合、監視制御部６がこれを検出すると、監視制御部６は、所定の時間経過後に、両系のＲＡＩＤコントローラ１の電源を切断し、その後、両系のＲＡＩＤコントローラ１の電源を再投入する。
【００６７】
このような電源の切断、再投入により、ＲＡＩＤコントローラに搭載されている各種のデバイスは初期化され、一時的に発生していたハードウェア異常から復旧させることができる。
【００６８】
図７の（ａ）に示すように、ＲＡＩＤコントローラ１に搭載された電源９は、ＣＰＵ等とは別系統でキャッシュメモリ３に電源を供給するように構成しており、図７の（ｂ）に示すように、システム復旧のため、ＣＰＵ等の電源を切断した場合も、キャッシュメモリ３への電源の供給は切断されないようにし、キャッシュメモリの内容が、監視制御部６によるＲＡＩＤコントローラ１の電源制御によって失われないようになっている。
【００６９】
このような監視制御部６による両系のＲＡＩＤコントローラ１の電源オフ・オン処理によりＲＡＩＤ装置の再起動を行うのであるが、この再起動は、通常の起動とは異なり、キャッシュメモリ３内のデータのディスクへの書き戻し処理を行う必要があるので、通常の起動であるか、復旧モードの起動であるかを判別する必要がある。
【００７０】
この判別は、図８の（ａ）に示すように、監視制御部６が両系のＲＡＩＤコントローラ１が停止したことを検出することで、次回起動は復旧モードでの起動であることを覚えておき、図８の（ｂ）に示すように、システム復旧のための両系のＲＡＩＤコントローラ１の再起動時に、ＲＡＩＤコントローラ１に復旧モードでの起動であることを通知することで行われる。
【００７１】
この起動モードの通知を受けたＲＡＩＤコントローラは、システムの起動時にこの情報を参照し、それが復旧モードである場合には、起動シーケンスの途中でシステム復旧制御部７に制御を移行し、以下のようなシステム復旧処理を実行する。
【００７２】
システム復旧制御部７では、構成管理部５で管理されている運用状態情報と、再起動により両系のＲＡＩＤコントローラがハードウェア異常から復帰できたかどうかにより、以下のようなキャッシュメモリの書き戻し制御処理を実行する。
【００７３】
復旧モードでの再起動により、両系のハードウェア異常が解消され、両系のＲＡＩＤコントローラともに再起動が成功した場合には、両系の構成管理部５に保持している運用状態情報を参照し、いずれか一方の状態情報が１の場合には、その系のキャッシュメモリ３に最新データが格納されていると判断できるので、その系のキャッシュメモリ３に格納されているデータのうち、まだディスクに反映していないダーティデータを、ディスク制御部８によりディスク装置に書き戻す処理を実行する。
【００７４】
どちらの状態情報も２である場合には、両系のキャッシュメモリ３には、同じ最新のデータが格納されていると判断できるので、いずれか一方のキャッシュメモリ３を選択し、そのキャッシュメモリ中のまだディスクへ反映していないダーティデータを、ディスク制御部８によりディスク装置に書き戻す処理を実行する。
【００７５】
復旧モードでの再起動により、いずれか一方のＲＡＩＤコントローラが再起動に失敗し、片系のみのＲＡＩＤコントローラだけが再起動に成功した場合には、起動に成功した側のＲＡＩＤコントローラの構成管理部５に保持している運用状態情報を参照する。この運用状態情報が、状態１の場合には、起動に成功した側の系のキャッシュメモリ３に最新データが格納されていると判断できるので、その系のキャッシュメモリ３に格納されているデータのうち、まだディスク装置に反映していないダーティデータを、ディスク制御部８によりディスク装置に書き戻す処理を実行する。
【００７６】
運用状態情報が、状態２の場合には、起動に失敗した側のＲＡＩＤコントローラの運用状態情報が参照できない限り、起動に成功した側の系のキャッシュメモリ３に最新データが格納されているか判断ができないため、このような状態となった場合には、キャッシュメモリに格納された情報のディスク装置への書き戻し処理は行わないようにする。
【００７７】
このように一方の系のＲＡＩＤコントローラが起動に失敗すると、キャッシュメモリ上のデータの復旧処理が行えない場合があるので、ＲＡＩＤコントローラの復旧モードでの起動に際しては、ＲＡＩＤコントローラシステムとして完全に機能できる状態ではなくても、問題のあるハードウェアを縮退等して、他系から構成管理部５で保持している運用状態が参照できる状態まで起動できるようにしてもよい。
【００７８】
以上のような制御をシステム復旧制御部にて実行することにより、軽度の一時的なハードウェア異常により、二重化された両系のＲＡＩＤコントローラが、両系ともに停止してしまった場合でも、キャッシュメモリに格納された最新のデータを喪失することなくＲＡＩＤ装置の復旧処理が行えるようにしている。
【００７９】
【発明の効果】
この発明により、以下に示すような効果が期待できる。
【００８０】
ＲＡＩＤ装置においては、性能の向上のため、ホストからのデータのリード／ライトをキャッシュメモリでキャッシュすることにより、ディスク装置へのアクセスを極力減らすよう構成されている。
【００８１】
このようなキャッシュメモリを備えたＲＡＩＤ装置において、ハードウェア異常によりＲＡＩＤコントローラが停止してしまうと、キャッシュメモリに格納されていた最新のデータを喪失してしまうという問題があった。
【００８２】
キャッシュメモリを含めて二重化したＲＡＩＤコントローラを備えることで、片系のみにハードウェア異常が発生しても、データを喪失することなく、運用を継続できるＲＡＩＤ装置が使用されるようになったが、このようなＲＡＩＤ装置においても、両系でハードウェア異常が発生し、両系ともにＲＡＩＤコントローラが停止した場合には、キャッシュメモリに格納された最新のデータを喪失してしまうという問題があった。
【００８３】
本発明を利用することにより、キャッシュメモリを含めて二重化したＲＡＩＤコントローラを備えるＲＡＩＤ装置において、両系でハードウェア異常が発生し、両系ともにＲＡＩＤコントローラが停止した場合でも、キャッシュメモリに格納された最新データを喪失することなく、ＲＡＩＤ装置を復旧することができる機能を備えた、ＲＡＩＤ装置を提供することができるようになる。
【図面の簡単な説明】
【図１】本発明の全体構成図である。
【図２】片系運用によるキャッシュデータの不一致発生の説明図である。
【図３】構成管理部での運用状態情報管理処理の説明図である。
【図４】両系同時にハードウェア異常で停止した場合の状態情報説明図である。
【図５】ＲＡＩＤコントローラがシステム再起動に失敗した場合の説明図である。
【図６】監視制御部の構成説明図である。
【図７】キャッシュメモリへの電源供給についての説明図である。
【図８】システム起動時のモード判別処理の説明図である。
【図９】従来技術の二重化ＲＡＩＤコントローラの処理説明図である。
【符号の説明】
１：ＲＡＩＤコントローラ
２：ホストＩＯ制御部
３：キャッシュメモリ
４：コントローラ間通信部
５：構成管理部
６：監視制御部
７：システム復旧制御部
８：ディスク制御部
９：電源
【図１】
2004206239.tif 000003
【図２】
2004206239.tif 000004
【図３】
2004206239.tif 000005
【図４】
2004206239.tif 000006
【図５】
2004206239.tif 000007
【図６】
2004206239.tif 000008
【図７】
2004206239.tif 000009
【図８】
2004206239.tif 000010
【図９】
2004206239.tif 000011