(57)【特許請求の範囲】
【請求項１】
データをネットワークで接続された複数のストレージ装置に分散して記憶するストレージシステムにおけるストレージ装置を管理するストレージ管理装置において、
該ストレージ装置を、該ストレージ装置への書き込みを行うデータを割り当てられた異なるストレージ管理装置が備える記憶手段に記憶させる複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段によって、該ストレージ装置と該他のストレージ管理装置が備える記憶手段との割り当てを受けていたストレージ管理装置の障害に応じて、該割当手段によって、該割り当てを受けていたストレージ管理装置に割り当てていた該ストレージ装置と該他のストレージ管理装置が備える記憶手段とを該ストレージ管理装置に切り替えて割り当てた場合に、該ストレージ管理装置に切り替えて割り当てられた該ストレージ装置への該ストレージ管理装置による書き込みを行うデータを該他のストレージ管理装置が備える記憶手段に記憶させるバックアップ手段と、
該ストレージ管理装置に切り替えて割り当てられたストレ一ジ装置への書き込みが完了していないデータが該他のストレージ管理装置が備える記憶手段に記憶されている場合に、該書き込みが完了していないデータの該ストレージ管理装置に切り替えて割り当てられた該ストレージ装置への書き込み処埋を引き継ぐ引継手段とを有することを特徴とするストレージ管理装置。
【請求項２】
該ストレージ装置および該記憶手段は、該割り当て手段を有するストレージシステム制御装置によって割り当てられることを特徴とする請求項１記載のストレージ管理装置。
【請求項３】
該バックアップ手段は、該ストレージ管理装置によって該ストレージ装置への書き込みを行うデータの該ストレージ装置に対する書き込みが完了した後に、該ストレージ装置に書き込んだデータを消去することを特徴とする請求項２記載のストレージ管理装置。
【請求項４】
該引継手段は、該ストレージ装置および該記憶手段が割り当てられた際に、該記憶手段に記憶されているが該ストレージ装置に書き込まれていないデータが存在する場合には、該書き込まれていないデータを該記憶手段から読み出して該ストレージ装置に書き込むことを特徴とする請求項２記載のストレージ管理装置。
【請求項５】
該ストレージ装置に前記データを書き込む際に、書き込みが完了していない該データを記憶する内部記憶手段を備え、
該バックアップ手段は、さらに、該書き込みが完了する前に該内部記憶手段に記憶させ、
該引継手段は、該記憶手段が割り当てられた際に、該内部記憶手段に記憶されているが該ストレージ装置に書き込まれていないデータが存在する場合には、該書き込まれていないデータを該内部記憶手段から読み出して該ストレージ装置に書き込むことを特徴とする請求項２記載のストレージ管理装置。
【請求項６】
データを複数のストレージ装置に分散して記憶するストレージシステムを制御するストレージシステム制御装置において、
該ストレージ装置を管理するとともに該ストレージ装置に対する該データの書き込みの際には、該書き込みが完了する前に予め割り当てられた記憶手段に該データを記憶させることが可能なストレージ管理装置を管理することによって該ストレージシステムを制御し、
該ストレージ管理装置の障害を検出する障害検出手段と、
該ストレージ装置を、該ストレージ装置への書き込みを行うデータを割り当てられた他のストレージ管理装置が備える記憶手段に記憶させる複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、
該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段と、を有し、
該割当手段は、該障害検出手段によって該ストレージ管理装置の障害が検出された場合、該障害検出手段によって障害が検出された該ストレージ管理装置に割り当てられていた該ストレージ装置および該記憶手段を、他のストレージ管理装置に割り当てることを特徴とするストレージシステム制御装置。
【請求項７】
コンピュータに、データをネットワークで接続された複数のストレージ装置に分散して記憶するストレージシステムにおけるストレージ装置の管理処理を実行させるストレージ管理プログラムにおいて、
該コンピュータを、
該ストレージ装置を、該ストレージ装置への書き込みを行うデータを割り当てられた異なるストレージ管理装置が備える記憶手段に記憶させる複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段によって、該ストレージ装置と該他のストレージ管理装置が備える記憶手段との割り当てを受けていたストレージ管理装置の障害に応じて、該割当手段によって、該割り当てを受けていたストレージ管理装置に割り当てていた該ストレージ装置と該他のストレージ管理装置が備える記憶手段とを該ストレージ管理装置に切り替えて割り当てた場合に、該ストレージ管理装置に切り替えて割り当てられた該ストレージ装置への該ストレージ管理装置による書き込みを行うデータを該他のストレージ管理装置が備える記憶手段に記憶させるバックアップ手段、
該ストレージ管理装置に切り替えて割り当てられたストレ一ジ装置への書き込みが完了していないデータが該他のストレージ管理装置が備える記憶手段に記憶されている場合に、該書き込みが完了していないデータの該ストレージ管理装置に切り替えて割り当てられた該ストレージ装置への書き込み処埋を引き継ぐ引継手段、
として機能させることを特徴とするストレージ管理プログラム。
【請求項８】
ストレージ装置に対するデータの書き込み制御を行う第１のストレージ管理装置と第２のストレージ管理装置と他のストレージ管理装置とを含む複数のストレージ管理装置を備えたデータ記憶システムにおいて、
該ストレージ装置を該複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、
該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段を備え、
該第１のストレージ管理装置は、該割当手段によって、該ストレージ装置と、該第２のストレージ管理装置が備える記憶手段との割り当てを受けた場合に、該第１のストレージ管理装置によって該ストレージ装置への書き込みを行うデータを、割り当てられた該第２のストレージ管理装置が備える記憶手段に記憶させるバックアップ手段を備え、
該他のストレージ管理装置は、
該割当手段が該第１のストレージ管理装置の障害に応じて該第１のストレージ管理装置に割り当てていた該ストレージ装置と該第２のストレージ管理装置が備える記憶手段とを該他のストレージ管理装置に切り替えて割り当てた場合に、該他のストレージ管理装置に切り替えて割り当てられた該ストレージ装置への該他のストレージ管理装置による書き込みを行うデータを該第２のストレージ管理装置が備える記憶手段に記憶させるバックアップ手段と、
該他のストレージ管理装置に切り替えて割り当てられたストレ一ジ装置への書き込みが完了していないデータが該第２のストレージ管理装置が備える記憶手段に記憶されている場合に、該書き込みが完了していないデータの該他のストレージ管理装置に切り替えて割り当てられた該ストレージ装置への書き込み処埋を引き継ぐ引継手段とを備えることを特徴とするデータ記憶システム。
【請求項９】
ストレージ装置に対するデータの書き込み制御を行う第１のストレージ管理装置と第２のストレージ管理装置と他のストレージ管理装置とを含む複数のストレージ管理装置を備えたデータ記憶システムにおけるデータ記憶方法において、
該第１のストレージ管理装置は、該ストレージ装置を、該ストレージ装置への書き込みを行うデータを割り当てられた異なるストレージ管理装置が備える記憶手段に記憶させる該複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段によって、該ストレージ装置と、該第２のストレージ管理装置が備える記憶手段との割り当てを受けた場合に、該第１のストレージ管理装置によって該ストレージ装置への書き込みを行うデータを、割り当てられた該第２のストレージ管理装置が備える記憶手段に記憶させ、
該他のストレージ管理装置は、
該割当手段が該第１のストレージ管理装置の障害に応じて該第１のストレージ管理装置に割り当てていた該ストレージ装置と該第２のストレージ管理装置が備える記憶手段とを該他のストレージ管理装置に切り替えて割り当てた場合に、該他のストレージ管理装置に切り替えて割り当てられた該ストレージ装置への該他のストレージ管理装置による書き込みを行うデータを該第２のストレージ管理装置が備える記憶手段に記憶させ、
該他のストレージ管理装置に切り替えて割り当てられたストレージ装置への書き込みが完了していないデータが該第２のストレージ管理装置が備える記憶手段に記憶されている場合に、該書き込みが完了していないデータの該他のストレージ管理装置に切り替えて割り当てられた該ストレージ装置への書き込み処理を引き継ぐことを特徴とするデータ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法に関し、特にストレージ装置を管理するストレージ管理装置、複数のストレージ装置に分散してデータを記憶するストレージシステムを制御するストレージシステム制御装置、ストレージ装置を管理するストレージ管理プログラム、データ記憶システムおよびデータ記憶方法に関する。
【背景技術】
【０００２】
現在、コンピュータを用いたデータ処理が広く行われるようになり、データを蓄積・利用するためのストレージ技術が一層重要となっている。この点、データアクセスの高速化およびデータ保管に対する高信頼化を実現するストレージ技術として、従来はＲＡＩＤ（Redundant Arrays of Independent Disks）が一般的に利用されてきた。ＲＡＩＤでは、データを必要に応じて分割・複製して、複数のディスク装置に分散して配置する。これにより、複数のディスク装置間で負荷が分散されることによる高速化、データが冗長化されることによる高信頼化が実現されている。
【０００３】
そして近年では、更に高速化・高信頼化を図るため、ＲＡＩＤの考え方を応用した分散ストレージシステムが構築されるようになっている。分散ストレージシステムは、複数のストレージノードと、ストレージノード間を接続するネットワークを備えている。各ストレージノードは、内部に備えた、または外部に設けられて対応付けられたディスク装置を管理しているとともに、ネットワーク通信機能を備えている。分散ストレージシステムは、この複数のストレージノードにデータを分散して記憶することで、システム全体として一層の高速化・高信頼化を実現している。
【０００４】
ここで、分散ストレージシステムにおいてデータが冗長化されている場合、すなわち、同一内容のデータが複数のストレージノードに配置されている場合に、実際に個々のストレージノードに障害が発生した場合について考える。
【０００５】
このような障害発生時のシステム復旧に関して、論理ディスクを複数の二重化したセグメントで構成して複数のストレージノードに分散し、ストレージノードが故障したときは、二重化したセグメントのうちのデータが破壊されていない方を、他方のストレージノードにコピーして二重化状態を回復する分散ストレージシステムが知られている（例えば、特許文献１参照）。このような分散ストレージシステムによれば、複数のセグメントを複数のストレージノードに分散するので、障害後の二重化の回復を複数のセグメントごとに並行して実行するため、迅速な復旧が図れる。
【０００６】
また、複数のストレージノードによって相互接続網を構成し、複数のストレージノードに分散した記憶領域を、あるストレージ装置が結合して１つの記憶領域としてホストコンピュータにアクセスさせるストレージシステム、および当該ストレージシステムについて、媒体障害への耐性の向上のために、ディスクキャッシュを二重化することが知られている（例えば、特許文献２参照）。このようなストレージシステムによれば、各ストレージノードがネットワークによって接続されているので、各ストレージノードは他のストレージノードのディスクにアクセスすることができる。
【０００７】
また、複数のストレージノードを有し、キャッシュメモリの使用量を均等化するために、使用されるストレージノードを選択する制御部を有するストレージシステムについて、ディスク装置に対する未反映データの消失を防止するために制御部のディスクキャッシュを二重化することが知られている（例えば、特許文献３参照）。
【０００８】
また、ディスク制御装置が独立した複数系統のキャッシュメモリを備え、それぞれの系統のキャッシュメモリに、更新されたディスクのバックアップデータと、未更新データと、この未更新データのバックアップデータとを格納して、キャッシュメモリ内の未更新のデータを復元する技術が知られている（例えば、特許文献４参照）。
【特許文献１】特開２００５−４６８１号公報
【特許文献２】特開２００５−１６５７０２号公報
【特許文献３】特開２００５−２７５５２５号公報
【特許文献４】特開平１０−１９８６０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に記載されているようなマルチノードストレージのストレージノードは、ストレージ装置（ディスク）とそのストレージ装置を制御する制御部とが一体となっている。このようなストレージノードは、例えばディスクとしてＲＡＩＤシステムなどのディスクアレイ装置を用い、制御サーバとしてＰＣサーバなどのコンピュータを用いて、さらに、ディスクアレイ装置とＰＣサーバとをＳＣＳＩ（Small Computer System Interface）接続などで固定的に接続して構成するのが一般的である。
【００１０】
このような構成では、制御サーバが故障した場合には、ストレージ装置が正常であっても、クライアントからストレージ装置のデータにアクセスが不可能になる。これにより、例えば、特許文献１で開示されている方法などによって、予めデータの二重化を行っておき、制御部の故障時にはリカバリを行えるように対処しておかなければならない。
【００１１】
しかし、この二重化によって、マルチノードストレージのコストが上がってしまうという問題が生じる。また、リカバリによって、リカバリ中のシステムの性能低下がもたらされるという問題が生じる。
【００１２】
近年、ＲＡＩＤなどのディスクアレイ技術は、ＲＡＩＤ６などの高信頼化技術が普及したことにより、二重化をしなくても単体で十分な信頼性を持つようになっている。これにより、ディスクアレイを用いたストレージ装置とＰＣサーバを、ＳＣＳＩ接続などで固定的に接続せずに、ファイバ・チャネルやｉＳＣＳＩ（Internet Small Computer System Interface）などを用いたストレージ・エリア・ネットワークによって、ＰＣサーバに接続すれば、ＰＣサーバの故障時に、他のストレージノードの制御部であるＰＣサーバなどに、ストレージ装置を接続することによって、ストレージ装置のデータに対するアクセスを継続できるので、二重化やリカバリを行わなくても信頼性を確保することが可能である。
【００１３】
しかし、ストレージ装置に未だ書き込まれていないＰＣサーバのメモリ上に一時的に格納されたデータは、ストレージ装置の引き継ぎで他のＰＣサーバに引き継ぐことができない。ここで、すべての書き込みをストレージ装置ＲＡＩＤに同期的に書き込めばすべてのデータを引き継ぐこと自体は可能である。しかしながら、同期的な書き込みは、ストレージ装置に対するデータの書き込みが完了するまで、データの書き込みを要求したクライアントに書き込みの完了が通知されないので、レスポンスタイムの大幅な低下をもたらす。
【００１４】
また、特許文献２に記載のストレージシステムでは、ストレージノードを構成する制御部が故障した場合、そのストレージノードを構成するディスクに対しては、他のストレージノードがアクセスすることができない。このため、ストレージノードのうちのディスクを制御する制御部のみが故障した場合であっても、そのストレージノードのディスクに記憶されているデータにアクセス不能になってしまうという問題がある。また、この特許文献２には、ディスクキャッシュを二重化する旨が記載されているが、ストレージノード内に備えるディスクキャッシュを二重化しているのみであり、ストレージノードが故障した場合には、そのストレージノードのディスクキャッシュ中のすべてのデータが失われてしまうという問題がある。
【００１５】
また、特許文献３に記載のストレージシステムは、外部ディスクをストレージ制御部に接続することが可能である。しかし、制御部が故障した場合には、何ら対処がされておらず、外部ディスクにアクセス不能となってしまうという問題がある。また、このストレージシステムでは、特許文献２と同様、ディスクキャッシュを二重化する旨が記載されているが、制御部内に備えるディスクキャッシュを二重化しているのみであり、制御部が故障した場合には、そのディスクキャッシュ中のすべてのデータが失われてしまうという問題がある。
【００１６】
また、特許文献４に記載の技術では、特許文献２，３と同様、単一装置内において、キャッシュメモリを二重化するのみであるため、装置自体が故障した場合には、そのキャッシュメモリ中のすべてのデータが失われてしまうという問題がある。
【００１７】
本発明はこのような点に鑑みてなされたものであり、データを複数のストレージノードに分散して配置するストレージシステムにおいて、ストレージノードの故障時にストレージ装置に書き込まれていないデータが失われることを防止するストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
このデータをネットワークで接続された複数のストレージ装置に分散して記憶するストレージシステムにおけるストレージ装置を管理するストレージ管理装置は、該ストレージ装置を、該ストレージ装置への書き込みを行うデータを割り当てられた異なるストレージ管理装置が備える記憶手段に記憶させる複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段によって、該ストレージ装置と該他のストレージ管理装置が備える記憶手段との割り当てを受けていたストレージ管理装置の障害に応じて、該割当手段によって、該割り当てを受けていたストレージ管理装置に割り当てていた該ストレージ装置と該他のストレージ管理装置が備える記憶手段とを該ストレージ管理装置に切り替えて割り当てた場合に、該ストレージ管理装置に切り替えて割り当てられた該ストレージ装置への該ストレージ管理装置による書き込みを行うデータを該他のストレージ管理装置が備える記憶手段に記憶させるバックアップ手段と、該ストレージ管理装置に切り替えて割り当てられたストレ一ジ装置への書き込みが完了していないデータが該他のストレージ管理装置が備える記憶手段に記憶されている場合に、該書き込みが完了していないデータの該ストレージ管理装置に切り替えて割り当てられた該ストレージ装置への書き込み処埋を引き継ぐ引継手段とを有する。
【００１９】
このようなストレージ管理装置によれば、バックアップ手段により、割り当てを受けていたストレージ管理装置の障害に応じて、割当手段によって割り当てを受けていたストレージ管理装置に割り当てていたストレージ装置と他のストレージ管理装置が備える記憶手段とをストレージ管理装置に切り替えて割り当てた場合に、ストレージ管理装置に切り替えて割り当てられたストレージ装置へのストレージ管理装置による書き込みを行うデータが他のストレージ管理装置が備える記憶手段に記憶される。また、引継手段により、ストレージ管理装置に切り替えて割り当てられたストレ一ジ装置への書き込みが完了していないデータが他のストレージ管理装置が備える記憶手段に記憶されている場合に、書き込みが完了していないデータのストレージ管理装置に切り替えて割り当てられたストレージ装置への書き込み処埋が引き継がれる。
【００２０】
また、データを複数のストレージ装置に分散して記憶するストレージシステムを制御するストレージシステム制御装置は、該ストレージ装置を管理するとともに該ストレージ装置に対する該データの書き込みの際には、該書き込みが完了する前に予め割り当てられた記憶手段に該データを記憶させることが可能なストレージ管理装置を管理することによって該ストレージシステムを制御し、該ストレージ管理装置の障害を検出する障害検出手段と、該ストレージ装置を、該ストレージ装置への書き込みを行うデータを割り当てられた他のストレージ管理装置が備える記憶手段に記憶させる複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段と、を有し、該割当手段は、該障害検出手段によって該ストレージ管理装置の障害が検出された場合、該障害検出手段によって障害が検出された該ストレージ管理装置に割り当てられていた該ストレージ装置および該記憶手段を、他のストレージ管理装置に割り当てる。
【００２１】
このようなストレージシステム制御装置によれば、障害検出手段により、ストレージ管理装置の障害が検出される。また、割当手段により、ストレージ装置が、ストレージ装置への書き込みを行うデータを割り当てられた他のストレージ管理装置が備える記憶手段に記憶させる複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てられるとともに、いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段が、いずれかのストレージ管理装置に割り当てられる。さらに、この割当手段により、障害検出手段によってストレージ管理装置の障害が検出された場合、障害検出手段によって障害が検出されたストレージ管理装置に割り当てられていたストレージ装置および記憶手段が、他のストレージ管理装置に割り当てられる。
【００２２】
また、コンピュータに、データをネットワークで接続された複数のストレージ装置に分散して記憶するストレージシステムにおけるストレージ装置の管理処理を実行させるストレージ管理プログラムは、該コンピュータを、該ストレージ装置を、該ストレージ装置への書き込みを行うデータを割り当てられた異なるストレージ管理装置が備える記憶手段に記憶させる複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段によって、該ストレージ装置と該他のストレージ管理装置が備える記憶手段との割り当てを受けていたストレージ管理装置の障害に応じて、該割当手段によって、該割り当てを受けていたストレージ管理装置に割り当てていた該ストレージ装置と該他のストレージ管理装置が備える記憶手段とを該ストレージ管理装置に切り替えて割り当てた場合に、該ストレージ管理装置に切り替えて割り当てられた該ストレージ装置への該ストレージ管理装置による書き込みを行うデータを該他のストレージ管理装置が備える記憶手段に記憶させるバックアップ手段、該ストレージ管理装置に切り替えて割り当てられたストレ一ジ装置への書き込みが完了していないデータが該他のストレージ管理装置が備える記憶手段に記憶されている場合に、該書き込みが完了していないデータの該ストレージ管理装置に切り替えて割り当てられた該ストレージ装置への書き込み処埋を引き継ぐ引継手段として機能させる。
【００２３】
このようなストレージ管理プログラムを実行するコンピュータによれば、バックアップ手段により、割り当てを受けていたストレージ管理装置の障害に応じて、割当手段によって割り当てを受けていたストレージ管理装置に割り当てていたストレージ装置と他のストレージ管理装置が備える記憶手段とをストレージ管理装置に切り替えて割り当てた場合に、ストレージ管理装置に切り替えて割り当てられたストレージ装置へのストレージ管理装置による書き込みを行うデータが他のストレージ管理装置が備える記憶手段に記憶される。また、引継手段により、ストレージ管理装置に切り替えて割り当てられたストレ一ジ装置への書き込みが完了していないデータが他のストレージ管理装置が備える記憶手段に記憶されている場合に、書き込みが完了していないデータのストレージ管理装置に切り替えて割り当てられたストレージ装置への書き込み処埋が引き継がれる。
【００２４】
また、ストレージ装置に対するデータの書き込み制御を行う第１のストレージ管理装置と第２のストレージ管理装置と他のストレージ管理装置とを含む複数のストレージ管理装置を備えたデータ記憶システムは、該ストレージ装置を該複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段を備え、該第１のストレージ管理装置は、該割当手段によって、該ストレージ装置と、該第２のストレージ管理装置が備える記憶手段との割り当てを受けた場合に、該第１のストレージ管理装置によって該ストレージ装置への書き込みを行うデータを、割り当てられた該第２のストレージ管理装置が備える記憶手段に記憶させるバックアップ手段を備え、該他のストレージ管理装置は、該割当手段が該第１のストレージ管理装置の障害に応じて該第１のストレージ管理装置に割り当てていた該ストレージ装置と該第２のストレージ管理装置が備える記憶手段とを該他のストレージ管理装置に切り替えて割り当てた場合に、該他のストレージ管理装置に切り替えて割り当てられた該ストレージ装置への該他のストレージ管理装置による書き込みを行うデータを該第２のストレージ管理装置が備える記憶手段に記憶させるバックアップ手段と、該他のストレージ管理装置に切り替えて割り当てられたストレ一ジ装置への書き込みが完了していないデータが該第２のストレージ管理装置が備える記憶手段に記憶されている場合に、該書き込みが完了していないデータの該他のストレージ管理装置に切り替えて割り当てられた該ストレージ装置への書き込み処埋を引き継ぐ引継手段とを備える。
【００２５】
このようなデータ記憶システムによれば、割当手段により、ストレージ装置が複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てられるとともに、いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段が、いずれかのストレージ管理装置に割り当てられる。また、第１の管理装置が有するバックアップ手段により、割当手段によって、ストレージ装置と、第２のストレージ管理装置が備える記憶手段との割り当てを受けた場合に、第１のストレージ管理装置によってストレージ装置への書き込みを行うデータが、割り当てられた第２のストレージ管理装置が備える記憶手段に記憶される。また、他の管理装置が有するバックアップ手段により、割当手段が第１のストレージ管理装置の障害に応じて第１のストレージ管理装置に割り当てていたストレージ装置と第２のストレージ管理装置が備える記憶手段とを他のストレージ管理装置に切り替えて割り当てた場合に、他のストレージ管理装置に切り替えて割り当てられたストレージ装置への他のストレージ管理装置による書き込みを行うデータが第２のストレージ管理装置が備える記憶手段に記憶される。また、他の管理装置が有する引継手段により、他のストレージ管理装置に切り替えて割り当てられたストレ一ジ装置への書き込みが完了していないデータが第２のストレージ管理装置が備える記憶手段に記憶されている場合に、書き込みが完了していないデータの他のストレージ管理装置に切り替えて割り当てられたストレージ装置への書き込み処埋が引き継がれる。
また、ストレージ装置に対するデータの書き込み制御を行う第１のストレージ管理装置と第２のストレージ管理装置と他のストレージ管理装置とを含む複数のストレージ管理装置を備えたデータ記憶システムにおけるデータ記憶方法では、該第１のストレージ管理装置は、該ストレージ装置を、該ストレージ装置への書き込みを行うデータを割り当てられた異なるストレージ管理装置が備える記憶手段に記憶させる該複数のストレージ管理装置のうちのいずれかのストレージ管理装置に割り当てるとともに、該いずれかのストレージ管理装置とは異なるストレージ管理装置が備える記憶手段を、該いずれかのストレージ管理装置に割り当てる割当手段によって、該ストレージ装置と、該第２のストレージ管理装置が備える記憶手段との割り当てを受けた場合に、該第１のストレージ管理装置によって該ストレージ装置への書き込みを行うデータを、割り当てられた該第２のストレージ管理装置が備える記憶手段に記憶させ、該他のストレージ管理装置は、該割当手段が該第１のストレージ管理装置の障害に応じて該第１のストレージ管理装置に割り当てていた該ストレージ装置と該第２のストレージ管理装置が備える記憶手段とを該他のストレージ管理装置に切り替えて割り当てた場合に、該他のストレージ管理装置に切り替えて割り当てられた該ストレージ装置への該他のストレージ管理装置による書き込みを行うデータを該第２のストレージ管理装置が備える記憶手段に記憶させ、該他のストレージ管理装置に切り替えて割り当てられたストレージ装置への書き込みが完了していないデータが該第２のストレージ管理装置が備える記憶手段に記憶されている場合に、該書き込みが完了していないデータの該他のストレージ管理装置に切り替えて割り当てられた該ストレージ装置への書き込み処理を引き継ぐ。
このようなデータ記憶方法によれば、第１の管理装置により、ストレージ装置と、第２のストレージ管理装置が備える記憶手段との割り当てを受けた場合に、第１のストレージ管理装置によってストレージ装置への書き込みを行うデータを、割り当てられた第２のストレージ管理装置が備える記憶手段に記憶される。また、他の管理装置により、割当手段が第１のストレージ管理装置の障害に応じて第１のストレージ管理装置に割り当てていたストレージ装置と第２のストレージ管理装置が備える記憶手段とを他のストレージ管理装置に切り替えて割り当てた場合に、他のストレージ管理装置に切り替えて割り当てられたストレージ装置への他のストレージ管理装置による書き込みを行うデータが第２のストレージ管理装置が備える記憶手段に記憶され、他のストレージ管理装置に切り替えて割り当てられたストレージ装置への書き込みが完了していないデータが第２のストレージ管理装置が備える記憶手段に記憶されている場合に、書き込みが完了していないデータの他のストレージ管理装置に切り替えて割り当てられたストレージ装置への書き込み処理が引き継がれる。
【発明の効果】
【００２６】
開示のストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法によれば、ストレージ管理装置の故障時において、ストレージ装置に書き込まれていないデータは、一時記憶手段のバックアップによって、新たに割り当てられた他の正常なストレージ管理装置に引き継ぐことができる。また、それ以外の故障したストレージ管理装置によって既にストレージ装置に書き込まれたデータは、ストレージ装置および一時記憶手段の新たな割り当てによって、他の正常なストレージノードに引き継ぐことができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態について、図面を参照して説明する。
図１は、本実施の形態の概要を示す図である。図１に示すストレージシステムは、データをネットワークで接続された複数のストレージ装置に分散して記憶するストレージシステムである。このストレージシステムは、ストレージ管理装置１、ストレージ装置２、一時記憶手段３、および端末装置４から構成される。
【００２８】
ストレージ管理装置１は、ストレージ装置２、および一時記憶手段３を管理する装置である。ストレージ管理装置１は、管理手段１０を有している。さらに、管理手段１０は、割り当てられたストレージ装置２、および割り当てられた一時記憶手段３を管理するために、バックアップ手段１０ａ、および引継手段１０ｂを有している。
【００２９】
バックアップ手段１０ａは、例えば、端末装置４の要求に基づくストレージ装置２に対するデータの書き込みの際には、ストレージ装置２に対して端末装置４から送信されたデータの書き込みが完了する前に、ストレージ装置２に書き込むデータを、予め割り当てられた一時記憶手段３にも記憶させる。ここで、一時記憶手段３は、一時的に保存してバックアップするための記憶手段であり、例えばキャッシュメモリなどの記憶装置を用いることができる。
【００３０】
また、ストレージ管理装置１に対するストレージ装置２および一時記憶手段３の割り当ては、管理者が適切に割り当てる手動割り当て、およびストレージ管理装置１自身や他の装置などが負荷のバランスなどに基づくポリシなどに従って割り当てる自動割り当てのいずれによって行ってもよい。
【００３１】
引継手段１０ｂは、ストレージ装置２および一時記憶手段３が、このストレージ管理装置１に対して新たに割り当てられた際に、一時記憶手段３に記憶されているがストレージ装置２に書き込まれていないデータが存在する場合には、そのデータをストレージ装置２に書き込む。ここで、引継手段１０ｂおよびストレージ管理装置１がこれを実現する方法には、種々の方法が考えられる。その一例として、ストレージ管理装置１が、端末装置４から受信したデータのストレージ装置に対する書き込みの完了後に、バックアップ手段１０ａによって記憶された一時記憶手段３におけるそのデータを消去する。これにより、一時記憶手段３には、割り当てによって対応付けられたストレージ装置２に書き込み中のデータが記憶されるが、反映されたデータは消去されるので、結果として、未反映のデータのみが記憶されていることになる。そして、ストレージ装置２および一時記憶手段３が新たに割り当てられた際には、引継手段１０ｂが一時記憶手段３に記憶されているデータをストレージ装置２に書き込むことによって実現してもよい。また、これに限らず、割り当てによって対応付けられたストレージ装置２および一時記憶手段３に記憶されているデータの状況を格納するテーブルを用意して、新たな割り当ての際にそのテーブルを確認して、一時記憶手段３にのみ記憶され（または更新され）ているデータをストレージ装置２に反映させることによって実現してもよく、その他の方法によって実現してもよい。
【００３２】
このようなストレージ管理装置１によれば、バックアップ手段１０ａにより、例えば、端末装置４の要求に基づくストレージ装置２に対するデータの書き込みの際には、ストレージ装置２に対して端末装置４から送信されたデータの書き込みが完了する前に、ストレージ装置２に書き込むデータが、予め割り当てられた一時記憶手段３にも記憶される。また、引継手段１０ｂにより、ストレージ装置２および一時記憶手段３がこのストレージ管理装置１に対して新たに割り当てられた際に、一時記憶手段３に記憶されているがストレージ装置２に書き込まれていないデータが存在する場合には、そのデータがストレージ装置２に書き込まれる。
【００３３】
これによって、ストレージ管理装置の故障時において、ストレージ装置２に書き込まれていないデータは、一時記憶手段３のバックアップによって、新たに割り当てられた正常なストレージ管理装置１に引き継ぐことができる。また、それ以外の故障したストレージ管理装置によって既にストレージ装置２に書き込まれたデータは、ストレージ装置２および一時記憶手段３の新たな割り当てによって、正常なストレージ管理装置１に引き継ぐことができる。
【００３４】
以下、本実施の形態について図面を参照して詳細に説明する。
図２は、本実施の形態のシステム構成を示す図である。図２に示すストレージシステムは、データをネットワークで接続された複数のストレージ装置で分散して記憶するストレージシステムである。
【００３５】
本実施の形態に係るストレージシステムでは、複数（例えば、４個）のストレージノード１００ａ，１００ｂ，１００ｃ，１００ｄ、複数（例えば、４個）のストレージ装置２００ａ，２００ｂ，２００ｃ，２００ｄ、少なくとも１個（例えば、２個）のコントロールノード５００ａ，５００ｂ、および少なくとも１個（例えば、１個）の管理ノード３００が、ネットワーク３０を通じて相互に接続されている。また、少なくとも１個（例えば、３個）端末装置４００ａ，４００ｂ，４００ｃが、ネットワーク４０を通じてネットワーク３０と相互に接続されている。
【００３６】
ストレージノード１００ａ〜１００ｄには、ネットワーク３０を通じて、それぞれストレージ装置２００ａ〜２００ｄが接続されている。ストレージノード１００ａ〜１００ｄは、割り当てられたストレージ装置２００ａ〜２００ｄに格納されたデータを管理し、管理しているデータをネットワーク３０，４０を通じて端末装置４００ａ〜４００ｃに提供するコンピュータであり、ストレージ管理装置として機能する。
【００３７】
また、ストレージノード１００ａ〜１００ｄは、端末装置４００ａ〜４００ｃに対して、それぞれのストレージノード１００ａ〜１００ｃが管理するストレージ装置２００ａ〜２００ｄに格納されているデータを利用した情報処理のサービスを提供する。すなわち、ストレージノード１００ａ〜１００ｄは、ネットワーク３０，４０を通じて、端末装置４００ａ〜４００ｃからの要求に応答して所定のプログラムを実行し、端末装置４００ａ〜４００ｃが要求するデータの読み書きおよびデータの送受信を行う。
【００３８】
さらにストレージノード１００ａ〜１００ｄは、詳しくは後述するが、それぞれ図示しないキャッシュメモリを有している。このキャッシュメモリは、ストレージノード１００ａ〜１００ｄのうちのそのストレージノード以外のストレージノードのいずれかに対して割り当てられるとともに、その割り当てられたストレージノードから送信された、同じくそのストレージノードに対して割り当てられたストレージ装置２００ａ〜２００ｄのいずれかに書き込まれるデータを記憶する一時記憶手段として機能する。
【００３９】
また、ストレージノード１００ａ〜１００ｄは、端末装置４００ａ〜４００ｃのデータの読み出し要求をネットワーク３０，４０を通じて受信すると、ストレージ装置２００ａ〜２００ｄのうち割り当てられたストレージ装置から要求されたデータを読み込んで、読み出し要求を行った端末装置に応答する。次に、ストレージノード１００ａ〜１００ｄは、端末装置４００ａ〜４００ｃの書き込み要求を、ネットワーク３０，４０を通じて受信して、ストレージ装置２００ａ〜２００ｄに書き込みを行った後、データを送信した端末装置に応答する。次に、ストレージノード１００ａ〜１００ｄは、ネットワーク３０を通じて接続されたストレージ装置２００ａ〜２００ｄおよびキャッシュメモリにアクセスする。
【００４０】
なお、ストレージノード１００ａ〜１００ｄは、ミラーリングを行って、同一内容のデータを少なくとも２つのストレージノードによって、それぞれ異なる系統のストレージ装置を管理することで、データに冗長性を持たせてもよい。
【００４１】
ストレージ装置２００ａ〜２００ｄは、ＲＡＩＤを用いて、内蔵する複数のハードディスク装置（ＨＤＤ）から構成されたディスクアレイ装置である。ストレージ装置２００ａには、ＨＤＤ２０１ａ〜２０４ａが実装されている。ストレージ装置２００ｂには、ＨＤＤ２０１ｂ〜２０４ｂが実装されている。ストレージ装置２００ｃには、ＨＤＤ２０１ｃ〜２０４ｃが実装されている。ストレージ装置２００ｄには、ＨＤＤ２０１ｄ〜２０４ｄが実装されている。本実施の形態では、ストレージ装置２００ａ〜２００ｄは、ＲＡＩＤ５のディスク管理サービスを提供する。これらのストレージ装置２００ａ〜２００ｄには、コントロールノード５００ａ，５００ｂによって割り当てられたストレージノード１００ａのみが、ネットワーク３０，４０を通じて排他的にアクセスすることができる。
【００４２】
なお、ストレージ装置２００ａ〜２００ｄは、ＲＡＩＤ５に限らず、他のＲＡＩＤを用いて構成してもよく、ＲＡＩＤ以外の技術を用いてディスクアレイを構成してもよい。さらに、ストレージ装置２００ａ〜２００ｄは、ディスクアレイを用いずにハードディスク単体で構成してもよく、その他の記憶装置を用いてもよい。
【００４３】
コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄ、およびストレージ装置２００ａ〜２００ｄを管理するコンピュータである。具体的には、コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄからデータの管理に関する情報を取得し、必要に応じて情報を更新する。
【００４４】
また、コントロールノード５００ａ，５００ｂは、信頼性を高めるために二重化されており、一方（例えば、コントロールノード５００ａ）が現用系であって通常時に稼動し、他方（例えば、コントロールノード５００ｂ）が予備系であって通常時は待機している。待機系のコントロールノード５００ｂは、現用系のコントロールノード５００ａに故障があった場合などに、コントロールノード５００ａに替わって稼動する。
【００４５】
また、コントロールノード５００ａ，５００ｂは、ストレージシステムの起動時に、ストレージ装置２００ａ〜２００ｄおよびキャッシュメモリを、各ストレージノード１００ａ〜１００ｄに割り当てる。
【００４６】
また、コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄの故障、およびキャッシュメモリの故障を検出することができる。コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄの故障を検出すると、故障したストレージノードに割り当てられていたストレージ装置およびキャッシュメモリを、他のストレージノードに新たに割り当てる。
【００４７】
また、コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄにストレージ装置２００ａ〜２００ｄおよびキャッシュメモリの割り当ての構成を接続状態テーブルの形式で保持している。コントロールノード５００ａ，５００ｂは、起動時に割り当てを行った場合や、故障を検出して新たに割り当てを行うなどにより割り当ての変更を行った場合には、接続状態テーブルを更新して、最新の割り当ての構成を記録する。
【００４８】
管理ノード３００は、ストレージシステムの管理者が操作するコンピュータである。ストレージシステムの管理者は、管理ノード３００を操作して、ストレージノード１００ａ〜１００ｄ、およびコントロールノード５００ａ，５００ｂにアクセスし、運用に必要な各種設定を行うことができる。
【００４９】
端末装置４００ａ〜４００ｃは、ストレージシステムのユーザが操作するコンピュータである。ストレージシステムのユーザは、端末装置４００ａ〜４００ｃを操作して、ストレージノード１００ａ〜１００ｄにアクセスし、ストレージ装置２００ａ〜２００ｄに記憶されているデータの読み書きを行う。
【００５０】
次に、ストレージノード１００ａ〜１００ｄ、コントロールノード５００ａ，５００ｂ、端末装置４００ａ〜４００ｃおよび管理ノード３００のハードウェア構成について説明する。
【００５１】
図３は、ストレージノードのハードウェア構成を示す図である。ストレージノード１００ａは、ＣＰＵ（Central Processing Unit）１０１ａによって装置全体が制御されている。ＣＰＵ１０１ａには、バス１０７ａを通じてＲＡＭ（Random Access Memory）１０２ａ、ＨＤＤ１０３ａ、グラフィック処理装置１０４ａ、入力インタフェース１０５ａおよび通信インタフェース１０６ａが接続されている。
【００５２】
ＲＡＭ１０２ａには、ＣＰＵ１０１ａに実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２ａには、ＣＰＵ１０１ａによる処理に必要な各種データが格納される。また、ストレージノード１００ａが有するＲＡＭ１０２ａの一部は、ストレージ装置２００ａ〜２００ｄに書き込まれるデータを一時的に保存するキャッシュメモリ１０２１ａとして構成されている。このキャッシュメモリ１０２１ａは、一時記憶手段として機能する。なお、本実施の形態では、キャッシュメモリ１０２１ａは、ＲＡＭ１０２ａの一部として設けられるが、これに限らず、キャッシュメモリ１０２１ａをＲＡＭ１０２ａとは別個に設けてもよい。
【００５３】
ＨＤＤ１０３ａには、ＯＳやアプリケーションのプログラムが格納される。グラフィック処理装置１０４ａには、モニタ１１ａが接続されている。グラフィック処理装置１０４ａは、ＣＰＵ１０１ａからの命令に従って、画像をモニタ１１ａの画面に表示させる。入力インタフェース１０５ａには、キーボード１２ａとマウス１３ａとが接続されている。入力インタフェース１０５ａは、キーボード１２ａやマウス１３ａから送られてくる信号を、バス１０７ａを通じてＣＰＵ１０１ａに送信する。
【００５４】
通信インタフェース１０６ａは、ネットワーク３０に接続されている。通信インタフェース１０６ａは、ネットワーク３０を通じて、コントロールノード５００ａ，５００ｂなどの他のコンピュータとの間でデータの送受信を行う。また、ストレージノード１００ｄには、通常、通信インタフェース１０６ａを通じて、ネットワーク３０で接続されたストレージ装置２００ａ〜２００ｄのうちのストレージノード１００ａに割り当てられたストレージ装置が接続されている。通信インタフェース１０６ａは、ストレージ装置２００ａ〜２００ｄに内蔵されたＲＡＩＤコントローラ（図示省略）と通信し、ストレージ装置２００ａ〜２００ｄに対するデータの入出力を行う。ストレージ装置２００ａ内のＲＡＩＤコントローラは、ＲＡＩＤ０〜ＲＡＩＤ５の機能を有する。
【００５５】
なお、ストレージノード１００ｂ〜１００ｄ、コントロールノード５００ａ，５００ｂ、および端末装置４００ａ〜４００ｃも、ストレージノード１００ａと同様のハードウェア構成によって表現できる。ただし、端末装置４００ａ〜４００ｃの通信インタフェースは、ネットワーク４０と接続される。
【００５６】
次に、ストレージノード１００ａ〜１００ｄのモジュール構成について説明する。
図４は、ストレージノードの機能を示すブロック図である。なお、図４ではストレージノード１００ａのモジュール構成を示しているが、ストレージノード１００ｂ〜１００ｄもストレージノード１００ａと同様のモジュール構成によって実現できる。
【００５７】
本実施の形態のストレージシステムは、データをネットワークで接続された複数のストレージ装置に分散して記憶するストレージシステムである。本実施の形態のストレージシステムでは、他のストレージノード１００ｂ〜１００ｄもストレージノード１００ａと同一の機能を有する。また、ストレージシステムでは、これらのストレージノード１００ａ〜１００ｄおよびコントロールノード５００ａ，５００ｂが、以下に示すように連携して動作する。ここでは、このストレージシステムの構成要素のうち、図４に示すように、ストレージノード１００ａ，１００ｂ、ストレージ装置２００ａ、端末装置４００ａ、およびコントロールノード５００ａを抽出して説明する。
【００５８】
ここでは、説明の便宜のため、ネットワーク３０およびネットワーク４０を１つのネットワークとして図示している。また、ストレージシステムの各要素は、ネットワーク３０およびネットワーク４０を通じて、必要に応じて接続されている。
【００５９】
ストレージノード１００ａは、ストレージ装置２００ａ、および後述するキャッシュメモリ１０２１ｂを管理する装置である。ストレージノード１００ａは、管理部１００ａを有している。さらに、管理部１００ａは、割り当てられたストレージ装置２００ａおよびキャッシュメモリ１０２１ｂを管理するために、バックアップ部１１１ａ、および引継部１１２ａを有している。また、ストレージノード１００ａは、ＲＡＭ１０２ａを有している。ストレージノード１００ａは、このＲＡＭ１０２ａに、ストレージ装置２００ａにデータを書き込むデータを記憶させる。
【００６０】
バックアップ部１１１ａは、例えば、端末装置４００ａの要求に基づくストレージ装置２００ａに対するデータの書き込みの際には、ストレージ装置２００ａに対して端末装置４００ａから送信されたデータの書き込みが完了する前に、ストレージ装置２００ａに書き込む際に、書き込みが完了していない未書き込みデータを、予め割り当てられたキャッシュメモリ１０２１ｂに記憶させる。これにより、ストレージノード１００ａの故障が発生しても、ストレージ装置２００ａに書き込まれるべきデータが、ストレージノード１００ａの外部に設けられているキャッシュメモリ１０２１ｂに記憶されているので、このキャッシュメモリ１０２１ｂに記憶されているデータを用いて、ストレージ装置２００ａに対してデータの書き込みを行うことができる。この結果、ストレージノード１００ａの故障によるデータの喪失を防止できる。
【００６１】
ここで、キャッシュメモリ１０２１ｂは、一時的に保存してバックアップするための記憶手段であり、例えばキャッシュメモリなどの記憶装置を用いることができる。その後、バックアップ部１１１ａは、キャッシュメモリ１０２１ｂから読み出したデータのストレージ装置２００ａに対する書き込みが完了した後に、キャッシュメモリ１０２１ｂからそのデータを消去する。これにより、ストレージ装置２００ａへの書き込みが完了したデータは、キャッシュメモリ１０２１ｂから消去される一方、ストレージ装置２００ａへの書き込みが完了していないデータは、キャッシュメモリ１０２１ｂに残存し続けることになる。この結果、ストレージノード１００ａが故障した場合に、ストレージ装置２００ａへの書き込みが完了していないデータの有無の判別および特定を、容易に行うことができる。
【００６２】
バックアップ部１１１ａは、さらに、書き込みが完了する前にストレージノード１００ａが有するＲＡＭ１０２ａにも、ストレージ装置２００ａに書き込むデータを記憶させる。これにより、キャッシュメモリ１０２１ｂおよびキャッシュメモリ１０２１ｂを有するストレージノード１００ｂの故障が発生しても、ストレージ装置２００ａに書き込まれるべきデータがＲＡＭ１０２ａにも記憶されているので、このＲＡＭ１０２ａに記憶されているデータを用いて、ストレージ装置２００ａに対してデータの書き込みを行うことができる。この結果、キャッシュメモリ１０２１ｂの故障によるデータの喪失を防止できる。
【００６３】
また、バックアップ部１１１ａは、データのストレージ装置２００ａに対する書き込みが完了した後に、ＲＡＭ１０２ａに書き込んだデータを消去する。これにより、ストレージ装置２００ａへの書き込みが完了したデータは、消去される一方、ストレージ装置２００ａへの書き込みが完了していないデータは、ＲＡＭ１０２ａに残存し続けることになる。この結果、キャッシュメモリ１０２１ｂが故障した場合などに、ストレージ装置２００ａへの書き込みが完了していないデータの有無の判別および特定を、容易に行うことができる。
【００６４】
バックアップ部１１１ａは、さらに、データのキャッシュメモリ１０２１ｂに対する書き込みが完了した後であって、かつ、そのデータのストレージ装置２００ａに対する書き込みが完了する前に、その書き込みが完了したことを通知する書き込み完了応答を、ネットワーク３０，４０を通じて端末装置４００ａに送信する。
【００６５】
引継部１１２ａは、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂが、このストレージノード１００ａに対して、コントロールノード５００ａによって新たに割り当てられた際に、キャッシュメモリ１０２１ｂに記憶されているがストレージ装置２００ａに書き込まれていないデータが存在する場合には、そのデータをキャッシュメモリ１０２１ｂから読み出して、ストレージ装置２００ａに書き込む。
【００６６】
また、引継部１１２ａは、キャッシュメモリ１０２１ｂがコントロールノード５００ａによって新たに割り当てられた際に、ＲＡＭ１０２ａに記憶されているがストレージ装置２００ａに書き込まれていないデータが存在する場合には、そのデータをＲＡＭ１０２ａから読み出してそのストレージ装置２００ａに書き込む。このとき、引継部１１２ａは、バックアップ部１１１ａによりＲＡＭ１０２ａに書き込まれたデータが残存している場合には、未書き込みデータが存在すると判断して、そのデータをストレージ装置２００ａに書き込む。
【００６７】
ストレージノード１００ｂは、ストレージノード１００ａと同様に構成されており、同一の機能を有するが、ここではストレージノード１００ａの動作の説明に必要な機能のみを抽出して記載する。ストレージノード１００ｂは、図３において前述したストレージノード１００ａと同様に、揮発性のメモリであるＲＡＭ１０２ｂを有する。また、このＲＡＭ１０２ｂの一部は、ストレージ装置２００ａなどに書き込まれるデータを一時的に保存するキャッシュメモリ１０２１ｂとして構成されている。
【００６８】
ストレージ装置２００ａは、前述したように、内蔵するＨＤＤ２０１ａ〜２０４ａから構成されており、ＲＡＩＤ５のディスク管理サービスを提供するディスクアレイ装置である。ストレージ装置２００ａには、コントロールノード５００ａによって割り当てられたストレージノード１００ａのみが、ネットワーク３０，４０を通じて排他的にアクセスすることができる。
【００６９】
コントロールノード５００ａは、ストレージノード１００ａ，１００ｂ、およびストレージ装置２００ａを管理するコンピュータである。コントロールノード５００ａは、ストレージ装置２００ａを管理するストレージノード１００ａを管理することによってそのストレージシステムを制御する。前述したように、本実施の形態では、コントロールノード５００ａ，５００ｂとしてコントロールノードが二重化されている。ここでは、コントロールノード５００ａが現用系として稼動しているものとし、予備系として待機しているコントロールノード５００ｂは省略する。
【００７０】
コントロールノード５００ａは、ストレージノード１００ａの故障を検出する故障検出部５０１ａと、ストレージノード１００ａにストレージ装置２００ａおよびキャッシュメモリ１０２１ｂを割り当てる割当部５０２ａと、を有している。
【００７１】
ここでは、コントロールノード５００ａは、ストレージシステムの起動時に、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂに対して、ストレージノード１００ａを排他的に割り当てたものとする。すなわち、ストレージノード１００ａ以外のストレージノードは、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂに対してアクセスすることができないように割り当てられているものとする。
【００７２】
故障検出部５０１ａは、ストレージシステムを構成する各ストレージノード１００ａ〜１００ｄの故障を検出することができる。故障検出部５０１ａは、ストレージノード１００ａ〜１００ｄに対して、定期的にハートビートを送信しており、このハートビートの応答の断絶によって、ストレージシステムを構成する各ストレージノード１００ａ〜１００ｄの故障を検出することができる。
【００７３】
また、故障検出部５０１ａは、ストレージシステムを構成する各キャッシュメモリ１０２１ａ〜１０２１ｄの故障を検出することができる。各ストレージノード１００ａ〜１００ｄは、割り当てられているキャッシュメモリ１０２１ａ〜１０２１ｄに対して書き込みができない場合など、割り当てられているキャッシュメモリ１０２１ａ〜１０２１ｄの故障を検出した場合には、コントロールノード５００ａに対して、そのキャッシュメモリの故障を通知する。故障検出部５０１ａは、このキャッシュメモリの故障の通知を検出することによって、キャッシュメモリ１０２１ａ〜１０２１ｄの故障を検出する。
【００７４】
具体的には、コントロールノード５００ａの故障検出部５０１ａは、各ストレージノードと通信することによって、各キャッシュメモリに対する書き込み処理の可否を定期的に監視している。故障検出部５０１ａは、この各ストレージノードのキャッシュメモリに対する書き込み処理の可否を通信によって収集する。そして、故障検出部５０１ａは、例えば、「所定回数以上連続して特定のキャッシュメモリに対する書き込み処理が不可であった場合には、そのキャッシュメモリは故障している」などの判定条件に該当するか否かを判定することにより、各キャッシュメモリ１０２１ａ〜１０２１ｄの故障を検出することができる。
【００７５】
割当部５０２ａは、詳しくは後述するが、故障検出部５０１ａによってストレージノードの故障が検出された場合、故障検出部５０１ａによって故障が検出されたストレージノード１００ａに割り当てられていたストレージ装置２００ａおよびキャッシュメモリ１０２１ｂを、他のストレージノード１００ａに割り当てる。ここで、割当部５０２ａは、故障が検出されたストレージノード１００ａに割り当てられていたストレージ装置２００ａおよびキャッシュメモリ１０２１ａの両方を他のキャッシュメモリに割り当てるが、これに限らず、割当部５０２ａは、ストレージ装置２００ａおよびキャッシュメモリ１０２１ａのうち一方のみを他のストレージノードに割り当ててもよい。
【００７６】
また、割当部５０２ａは、ストレージノード１００ａに対して新たにキャッシュメモリを割り当てる際、そのストレージノード１００ａに、そのストレージノード１００ａ以外のストレージノード１００ａが備えるキャッシュメモリ１０２１ｂを割り当てる。これにより、キャッシュメモリ１０２１ｂは自身が設けられているストレージノード１００ｂ以外のストレージノード（ここでは、ストレージノード１００ａ）に割り当てられる。このため、例えば、ストレージノード１００ａが故障した場合に、ストレージノード１００ａが割り当てられているストレージ装置２００ａに書き込むべきであったデータが、失われることなくストレージノード１００ｂが有するキャッシュメモリ１００ｂに残ることにより耐障害性が強まるので、ストレージシステムの信頼性が向上する。
【００７７】
他のストレージノード１００ａが故障した場合、その故障したストレージノード１００ａに割り当てられていたストレージ装置２００ａおよびキャッシュメモリ１０２１ｂが、ストレージノード１００ａの故障を検出したコントロールノード５００ａによって、他のストレージノードに割り当てられる。
【００７８】
割当部５０２ａは、さらに、故障検出部５０１ａによってキャッシュメモリ１０２１ｂの故障が検出された場合、故障検出部５０１ａによって故障が検出されたキャッシュメモリ１０２１ｂが割り当てられていたストレージノード１００ａに対して、他のキャッシュメモリ１０２１ｂを割り当てる。
【００７９】
なお、本実施の形態では、ストレージノード１００ａに対するストレージ装置２００ａおよびキャッシュメモリ１０２１ｂの割り当ては、コントロールノード５００ａ（またはコントロールノード５００ｂ）が行うが、これに限らず、ストレージノード１００ａ自身や他の装置などが負荷のバランスなどに基づくポリシなどに従って割り当てる自動割り当て、および管理者が適切に割り当てる手動割り当ていずれによって行ってもよい。
【００８０】
ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂは、ストレージノード１００ａを管理することによってストレージシステムを制御するコントロールノード５００ａによって割り当てられる。
【００８１】
端末装置４００ａは、ストレージシステムのユーザが操作するコンピュータである。ストレージシステムのユーザは、端末装置４００ａを操作して、ストレージノード１００ａにアクセスする。これに基づいて、ストレージノード１００ａは、ユーザの要求に応じて、ストレージ装置２００ａに記憶されているデータの読み書きを行う。
【００８２】
次に、この図４に従って、ストレージノード１００ａの動作を説明する。まず、ストレージ装置２００ａに対する書き込み時の動作を説明する。ここでは、ストレージシステムの起動時に、コントロールノード５００ａによって、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂが、ストレージノード１００ａに割り当てられたものとする。
【００８３】
ストレージシステムのユーザによって端末装置４００ａが操作され、ストレージノード１００ａに対してデータの書き込みが要求されると、ストレージノード１００ａによって、ユーザの要求に応じて、ストレージ装置２００ａにデータの書き込みが行われる。
【００８４】
このとき、ストレージノード１００ａが有するバックアップ部１１１ａは、ストレージ装置２００ａに書き込むデータを、ＲＡＭ１０２ａに記憶させる。次に、バックアップ部１１１ａは、このＲＡＭ１０２ａに記憶されているデータを、コントロールノード５００ａによって割り当てられているキャッシュメモリ１０２１ｂおよびストレージ装置２００ａに対して、書き込みを開始する。ここで、ストレージ装置２００ａに対してキャッシュメモリ１０２１ｂの方がデータの書き込みに要する時間が短いため、キャッシュメモリ１０２１ｂに対するデータの書き込みが先に完了する。
【００８５】
次に、バックアップ部１１１ａは、ストレージ装置２００ａに対するデータの書き込みが正常に行われて、データの書き込みが完了した場合には、ＲＡＭ１０２ａおよびキャッシュメモリ１０２１ｂに書き込んだ上記のデータを消去する。一方、バックアップ部１１１ａは、ストレージ装置２００ａに対するデータの書き込みにおいて異常が発生し、データの書き込みが完了してない場合には、ＲＡＭ１０２ａおよびキャッシュメモリ１０２１ｂに書き込んだ上記のデータを消去しない。これにより、ストレージノード１００ａ、キャッシュメモリ１０２１ｂ、ストレージ装置２００ａにおいて故障が発生した場合に、データの喪失を防止することができる。すなわち、バックアップ部１１１ａによってキャッシュメモリ１０２１ｂに書き込まれたデータは、ストレージ装置２００ａへの書き込みが正常に行われた場合、書き込み完了後にバックアップ部１１１ａによりキャッシュメモリ１０２１ｂから消去される。
【００８６】
これによって、ストレージ装置２００ａに書き込みが完了したデータがキャッシュメモリ１０２１ｂから消去されることから、キャッシュメモリ１０２１ｂに記憶されているデータは、ストレージ装置２００ａに未だ書き込まれていないものであることになる。すなわち、キャッシュメモリ１０２１ｂには、ユーザから書き込み要求に基づいてストレージ装置２００ａに書き込まれるべきデータであって、ストレージ装置２００ａに未だ書き込まれていない未書き込みデータのみが存在することになる。そして、他のストレージノードもストレージノード１００ａと同一の機能を有している。このため、コントロールノード５００ａが、他のストレージノードに対してストレージ装置２００ａおよびキャッシュメモリ１０２１ｂを割り当てることで、他のストレージノードによってキャッシュメモリ１０２１ｂに残存している未書き込みデータが、ストレージ装置２００ａに書き込まれる。
【００８７】
例えば、キャッシュメモリ１０２１ｂが割り当てられていたストレージノード（図示省略）が故障した場合のストレージノード１００ａの引継部１１２ａについて説明する。故障したストレージノードのバックアップ部（図示省略）によってキャッシュメモリ１０２１ｂにデータが書き込まれた後であって、ストレージ装置２００ａへのデータの書き込みが完了する前に、ストレージノードが故障した場合には、データの書き込みが完了していないので、未書き込みデータがキャッシュメモリ１０２１ｂから消去されず残存することになる。次に、コントロールノード５００ａによって、ストレージノード１００ａに対してストレージ装置２００ａおよびキャッシュメモリ１０２１ｂが、新たに割り当てられる。次に、この残存している未書き込みデータは、ストレージノード１００ａの引継部１１２ａによってキャッシュメモリ１０２１ｂから読み出されて、ストレージ装置２００ａに書き込まれる。
【００８８】
このようにして、故障したストレージノードによりストレージ装置２００ａに書き込まれるべきデータであって、ストレージノードの故障によりストレージ装置２００ａに書き込まれていない未書き込みデータは、キャッシュメモリ１０２１ｂに残存している限り、その存在の有無が判別できるとともに、および未書き込みデータそのものを特定することができる。そして、この未書き込みデータは、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂが新たに割り当てられることによりストレージノード１００ａを引き継いだストレージノード１００ｂの引継部（図示省略）によって、ストレージ装置２００ａに書き込まれる。
【００８９】
ここで、引継部１１２ａおよびストレージノード１００ａがこれを実現する方法には、種々の方法が考えられる。その一例として、上記のように、ストレージノード１００ａが、端末装置４００ａから受信したデータのストレージ装置に対する書き込みの完了後に、バックアップ部１１１ａによって記憶されたキャッシュメモリ１０２１ｂにおけるそのデータを消去する。これにより、キャッシュメモリ１０２１ｂには、割り当てによって対応付けられたストレージ装置２００ａに書き込み中のデータが記憶されるが、反映されたデータは消去されるので、結果として、未反映のデータのみが記憶されていることになる。そして、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂが新たに割り当てられた際には、引継部１１２ａがキャッシュメモリ１０２１ｂに記憶されているデータをストレージ装置２００ａに書き込むことによって実現してもよい。
【００９０】
また、これに限らず、割り当てによって対応付けられたストレージ装置２００ａおよびキャッシュメモリ１０２１ｂに記憶されているデータの状況を格納するテーブルを用意して、新たな割り当ての際にそのテーブルを確認して、キャッシュメモリ１０２１ｂにのみ記憶され（または更新され）ているデータをストレージ装置２００ａに反映させることによって実現してもよく、その他の方法によって実現してもよい。
【００９１】
次に、本実施の形態のコントロールノード５００ａ，５００ｂで用いられる接続状態テーブルについて説明する。
図５は、接続状態テーブルのデータ構造を示す図である。図５に示す接続状態テーブル５１０は、現用系であるコントロールノード５００ａおよび待機系であるコントロールノード５００ｂによって作成および管理されている。接続状態テーブル５１０は、ストレージシステムにおけるストレージノード、ストレージ装置およびキャッシュメモリの接続情報を格納するテーブルである。
【００９２】
接続状態テーブル５１０には、ストレージシステムに配置されている各ストレージノードの名称を示す項目である“ストレージノード名”、ストレージシステムに配置されている各ストレージ装置の名称を示す項目である“ストレージ名”、ストレージシステムが備えているキャッシュメモリの名称を示す項目である“キャッシュデバイス名”が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、ストレージノードに対して割り当てられているストレージ装置およびキャッシュメモリを示す接続状態情報を構成する。
【００９３】
接続状態テーブル５１０に格納される接続状態情報は、現用系であるコントロールノード５００ａによって、起動時および故障などによる割り当ての変更時に適宜更新される。また、待機系であるコントロールノード５００ｂにも、同様のテーブルが格納され、適宜更新される。
【００９４】
例えば、図５における接続状態テーブル５１０の一番上の行に示すように、ストレージノード名が“ＳＮ−Ａ”、ストレージ名が“ＤＩＳＫ―Ａ”、キャッシュデバイス名が“ＣＡＣＨＥ−Ａ”という情報が格納される。
【００９５】
これは、ＳＮ−Ａという名称のストレージノードに対して、ＤＩＳＫ−Ａという名称のストレージ装置およびＣＡＣＨＥ−Ａという名称のキャッシュメモリが割り当てられていることを示している。
【００９６】
これはすなわち、「ストレージ装置“ＤＩＳＫ−Ａ”およびキャッシュメモリ“ＣＡＣＨＥ−Ａ”について、ストレージノード“ＳＮ−Ａ”が管理すること」および「ストレージ装置“ＤＩＳＫ−Ａ”に書き込まれるデータは、キャッシュメモリ“ＣＡＣＨＥ−Ａ”にも書き込まれること」を示している。
【００９７】
次に、ストレージ装置およびキャッシュメモリの割り当ての際におけるストレージシステムの動作を説明する。図６は、ストレージシステムの起動時の割り当て状態の一例を示す図である。図７は、ストレージノードの故障時における割り当て状態の一例を示す図である。図８は、キャッシュメモリの故障時における割り当て状態の一例を示す図である。まず、図６に従ってストレージシステムの起動時における割り当てが行われたストレージシステムの状態について説明する。
【００９８】
図６に示すように、ストレージノード１００ａ，１００ｂ、ストレージ装置２００ａ，２００ｂ、端末装置４００ａ、コントロールノード５００ａ、キャッシュメモリ１０２１ｐ，１０２１ｑ、およびネットワーク３０，４０を抽出して説明する。
【００９９】
ここでは、説明の便宜のため、ネットワーク３０およびネットワーク４０を１つのネットワークとして図示している。また、各装置は、ネットワーク３０およびネットワーク４０を通じて、必要に応じて接続されている。また、キャッシュメモリ１０２１ｐ，１０２１ｑは、ストレージノード１００ａ，１００ｂ以外の図示しないストレージノードが有するキャッシュメモリであるものとする。
【０１００】
図６では、ストレージノード１００ａには、ストレージシステムの起動時に、コントロールノード５００ａによって、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｐが割り当てられている。これにより、ストレージノード１００ａは、ストレージ装置２００ａを管理するとともに、ストレージ装置２００ａに対してデータが書き込まれる際には、キャッシュメモリ１０２１ｐをバックアップに用いる。
【０１０１】
例えば、端末装置４００ａを用いてユーザからストレージ装置２００ａへのデータの書き込み要求があった場合には、ストレージノード１００ａは端末装置４００ａから送信されたデータを受信すると、受信したデータをキャッシュメモリ１０２１ｐに一旦書き込んでバックアップする。次に、ストレージノード１００ａは、上記のデータをストレージ装置２００ａに書き込む。ストレージ装置２００ａへの書き込みが正常に行われて完了した場合には、ストレージノード１００ａは、キャッシュメモリ１０２１ｐに書き込んだ上記のデータを消去する。このようにして、ストレージノード１００ａは、キャッシュメモリ１０２１ｐを用いてバックアップを行いながらストレージ装置２００ａにデータを書き込む。
【０１０２】
また、ストレージノード１００ｂには、ストレージシステムの起動時に、コントロールノード５００ａによって、ストレージ装置２００ｂおよびキャッシュメモリ１０２１ｑが割り当てられている。ストレージノード１００ｂは、端末装置４００ａを用いたユーザによるデータの書き込み要求があった場合には、ストレージノード１００ａと同様に動作して、キャッシュメモリ１０２１ｑを用いてバックアップを行いながらストレージ装置２００ｂにデータを書き込む。
【０１０３】
ここで、本実施の形態では、ストレージノードは、ストレージ装置およびキャッシュメモリに対して排他的に割り当てられる。すなわち、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｐが割り当てられている図６のストレージノード１００ａは、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｐに対して排他的にアクセスすることができる。他のストレージノードは、ストレージ装置２００ａおよび／またはキャッシュメモリ１０２１ｐに割り当てられない限り、アクセスすることはできない。
【０１０４】
また、以上に示したストレージシステムの割り当ての状態は、コントロールノード５００ａによって、図５に示した接続状態テーブルに格納されている接続状態情報として管理される。
【０１０５】
次に、図７に従ってストレージノードの故障時における割り当てが行われたストレージシステムの状態について説明する。
図７に示すように、ストレージノード１００ａ〜１００ｃ、ストレージ装置２００ａ，２００ｂ、端末装置４００ａ、コントロールノード５００ａ、キャッシュメモリ１０２１ｐ，１０２１ｑ、およびネットワーク３０，４０を抽出して説明する。
【０１０６】
ここでは、図６と同様に、説明の便宜のため、ネットワーク３０およびネットワーク４０を１つのネットワークとして図示している。また、各装置は、ネットワーク３０およびネットワーク４０を通じて、必要に応じて接続されている。また、キャッシュメモリ１０２１ｐ，１０２１ｑは、ストレージノード１００ａ〜１００ｃ以外の図示しないストレージノードが有するキャッシュメモリであるものとする。
【０１０７】
図７では、図６と同様に、ストレージノード１００ｂには、コントロールノード５００ａによって、ストレージ装置２００ｂおよびキャッシュメモリ１０２１ｑが割り当てられている。その一方、ストレージノード１００ａは故障している。このストレージノード１００ａの故障を検出したコントロールノード５００ａによって、故障したストレージノード１００ａに割り当てられていたストレージ装置２００ａおよびキャッシュメモリ１０２１ｐが、新たにストレージノード１００ｃに割り当てられている。これにより、ストレージノード１００ａは、ストレージ装置２００ａを管理するとともに、ストレージ装置２００ａに対してデータが書き込まれる際には、キャッシュメモリ１０２１ｐをバックアップに用いる。
【０１０８】
例えば、端末装置４００ａを用いたユーザからストレージ装置２００ａへのデータの書き込み要求があった場合には、新たに割り当てられたストレージノード１００ｃが、端末装置４００ａから送信されたデータを受信し、受信したデータをキャッシュメモリ１０２１ｐに一旦書き込んでバックアップする。次に、ストレージノード１００ｃは、上記のデータをストレージ装置２００ａに書き込む。ストレージ装置２００ａへの書き込みが正常に行われて完了した場合には、ストレージノード１００ｃは、キャッシュメモリ１０２１ｐに書き込んだ上記のデータを消去する。このようにして、ストレージノード１００ａにの替わりに割り当てられたストレージノード１００ｃは、キャッシュメモリ１０２１ｐを用いてバックアップを行いながらストレージ装置２００ａにデータを書き込む。
【０１０９】
次に、図８に従ってキャッシュメモリの故障時における割り当てが行われたストレージシステムの状態について説明する。
図８に示すように、ストレージノード１００ａ，１００ｂ、ストレージ装置２００ａ，２００ｂ、端末装置４００ａ、コントロールノード５００ａ、キャッシュメモリ１０２１ｐ〜１０２１ｒ、およびネットワーク３０，４０を抽出して説明する。
【０１１０】
ここでは、図６と同様に、説明の便宜のため、ネットワーク３０およびネットワーク４０を１つのネットワークとして図示している。また、各装置は、ネットワーク３０およびネットワーク４０を通じて、必要に応じて接続されている。また、キャッシュメモリ１０２１ｐ〜１０２１ｒは、ストレージノード１００ａ，１００ｂ以外の図示しないストレージノードが有するキャッシュメモリであるものとする。
【０１１１】
図８では、図６と同様に、ストレージノード１００ａには、コントロールノード５００ａによって、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｐが割り当てられている。その一方、キャッシュメモリ１０２１ｑが故障している。このキャッシュメモリ１０２１ｑの故障を検出したコントロールノード５００ａによって、故障したキャッシュメモリ１０２１ｑが割り当てられていたストレージノード１００ｂに対して、新たにキャッシュメモリ１０２１ｒが割り当てられている。これにより、ストレージノード１００ｂは、ストレージ装置２００ｂを管理するとともに、ストレージ装置２００ｂに対してデータが書き込まれる際には、キャッシュメモリ１０２１ｒをバックアップに用いる。
【０１１２】
例えば、端末装置４００ａを用いたユーザからストレージ装置２００ｂへのデータの書き込み要求があった場合には、ストレージノード１００ｂは、端末装置４００ａから送信されたデータを受信し、受信したデータを新たに割り当てられたキャッシュメモリ１０２１ｒに一旦書き込んでバックアップする。次に、ストレージノード１００ｂは、上記のデータをストレージ装置２００ｂに書き込む。ストレージ装置２００ｂへの書き込みが正常に行われて完了した場合には、ストレージノード１００ｂは、キャッシュメモリ１０２１ｒに書き込んだ上記のデータを消去する。このようにして、ストレージノード１００ｂは、キャッシュメモリ１０２１ｑの替わりに割り当てられたキャッシュメモリ１０２１ｒを用いてバックアップを行いながらストレージ装置２００ｂにデータを書き込む。
【０１１３】
なお、本実施の形態では、各キャッシュメモリは、それぞれのストレージノード内のＲＡＭの一部として設けられるが、これに限らず、キャッシュメモリをストレージノードとは別個に、例えば、キャッシュ専用サーバやキャッシュ専用ストレージ装置などにより独立のキャッシュデバイスとしてネットワーク上に設けてもよい。
【０１１４】
これらの故障の発生による割り当ての状態の変更も、図６において前述したように、コントロールノード５００ａによって、図５に示した接続状態テーブルに格納されて管理されている接続状態情報の更新に反映される。
【０１１５】
次に、割り当てが行われた際の接続状態情報の更新について説明する。図９は、ストレージノードの故障時における接続状態テーブルの更新を示す図である。図１０は、キャッシュメモリの故障時における接続状態テーブルの更新を示す図である。
【０１１６】
まず、図９に従って、ストレージノードの故障発生に基づく割り当てによる接続状態テーブルの更新を説明する。図９（Ａ）は、ストレージノード“ＳＮ−Ａ”の故障発生前の接続状態テーブルを示す図である。図９（Ｂ）は、ストレージノード“ＳＮ−Ａ”の故障発生に基づく割り当てが反映された更新後の接続状態テーブルを示す図である。
【０１１７】
上記のように、接続状態テーブルは、ストレージシステムの割り当ての状態を管理するために、コントロールノード５００ａ，５００ｂに格納されている。
ここでは、ストレージノード“ＳＮ−Ａ”が故障し、ストレージノード“ＳＮ−Ａ”に割り当てられていたストレージ装置“ＤＩＳＫ−Ａ”およびキャッシュメモリ“ＣＡＣＨＥ−Ａ”が、ストレージノード“ＳＮ−Ｃ”に割り当てられた場合について説明する。なお、本図のストレージノード“ＳＮ−Ａ”は、図７のストレージノード１００ａに相当する。同様に、ストレージ装置“ＤＩＳＫ−Ａ”は、図７のストレージ装置２００ａに相当する。キャッシュメモリ“ＣＡＣＨＥ−Ａ”は、図７のキャッシュメモリ１０２１ａに相当する。
【０１１８】
図９（Ａ）に示す接続状態テーブル５２０の一番上の列に示されている接続状態情報では、ストレージノード“ＳＮ−Ａ”、ストレージ装置“ＤＩＳＫ−Ａ”、およびキャッシュメモリ“ＣＡＣＨＥ−Ａ”が関連付けられている。これは、ストレージノード“ＳＮ−Ａ”に対して、ストレージ装置“ＤＩＳＫ−Ａ”およびキャッシュメモリ“ＣＡＣＨＥ−Ａ”が割り当てられていることを示している。
【０１１９】
次に、図９（Ｂ）に示す接続状態テーブル５３０の一番上の列に示されている接続状態情報では、ストレージノード“ＳＮ−Ｃ”、ストレージ装置“ＤＩＳＫ−Ａ”、およびキャッシュメモリ“ＣＡＣＨＥ−Ａ”が関連付けられている。これは、ストレージノード“ＳＮ−Ｃ”に対して、ストレージ装置“ＤＩＳＫ−Ａ”およびキャッシュメモリ“ＣＡＣＨＥ−Ａ”が割り当てられていることを示している。
【０１２０】
すなわち、図９では、コントロールノード５００ａ，５００ｂによって、故障したストレージノード“ＳＮ−Ａ”の替わりに、ストレージノード“ＳＮ−Ｃ”に対してストレージ装置“ＤＩＳＫ−Ａ”およびキャッシュメモリ“ＣＡＣＨＥ−Ａ”が割り当てられたため、これに基づいて接続状態テーブルが、図９（Ａ）に示す接続状態テーブル５２０から図９（Ｂ）に示す接続状態テーブル５３０のように更新される。
【０１２１】
次に、図１０に従って、キャッシュメモリの故障発生に基づく割り当てによる接続状態テーブルの更新を説明する。図１０（Ａ）は、キャッシュメモリ“ＣＡＣＨＥ−Ａ”の故障発生前の接続状態テーブルを示す図である。図１０（Ａ）は、キャッシュメモリ“ＣＡＣＨＥ−Ａ”の故障発生に基づく割り当てが反映された更新後の接続状態テーブルを示す図である。
【０１２２】
ここでは、ストレージノード“ＳＮ−Ａ”に割り当てられていたキャッシュメモリ“ＣＡＣＨＥ−Ａ”が故障し、ストレージノード“ＳＮ−Ａ”に対して、キャッシュメモリ“ＣＡＣＨＥ−Ａ”の替わりに、キャッシュメモリ“ＣＡＣＨＥ−Ｃ”が割り当てられた場合について説明する。なお、本図のストレージノード“ＳＮ−Ａ”は、図８のストレージノード１００ａに相当する。同様に、ストレージ装置“ＤＩＳＫ−Ａ”は、図８のストレージ装置２００ａに相当する。キャッシュメモリ“ＣＡＣＨＥ−Ａ”は、図８のキャッシュメモリ１０２１ａに相当する。
【０１２３】
図１０（Ａ）に示す接続状態テーブル５４０の一番上の列に示されている接続状態情報では、図９（Ａ）と同様、ストレージノード“ＳＮ−Ａ”、ストレージ装置“ＤＩＳＫ−Ａ”、およびキャッシュメモリ“ＣＡＣＨＥ−Ａ”が関連付けられており、ストレージノード“ＳＮ−Ａ”に対して、ストレージ装置“ＤＩＳＫ−Ａ”およびキャッシュメモリ“ＣＡＣＨＥ−Ａ”が割り当てられていることが示されている。
【０１２４】
次に、図１０（Ｂ）に示す接続状態テーブル５５０の一番上の列に示されている接続状態情報では、ストレージノード“ＳＮ−Ａ”、ストレージ装置“ＤＩＳＫ−Ａ”、およびキャッシュメモリ“ＣＡＣＨＥ−Ｂ”が関連付けられている。これは、ストレージノード“ＳＮ−Ａ”に対して、ストレージ装置“ＤＩＳＫ−Ａ”およびキャッシュメモリ“ＣＡＣＨＥ−Ｂ”が割り当てられていることを示している。
【０１２５】
すなわち、図１０では、コントロールノード５００ａ，５００ｂによって、故障したキャッシュメモリ“ＣＡＣＨＥ−Ａ”の替わりに、ストレージノード“ＳＮ−Ａ”に対してキャッシュメモリ“ＣＡＣＨＥ−Ｂ”が割り当てられたため、これに基づいて接続状態テーブルが、図１０（Ａ）に示す接続状態テーブル５４０から図１０（Ｂ）に示す接続状態テーブル５５０のように更新される。
【０１２６】
次に、本実施の形態のストレージシステムにおける処理の手順について説明する。まず、本実施の形態のストレージシステムの起動時に実行される起動時割当処理について説明する。図１１は、ストレージシステムの起動時における割り当ての処理の手順を示すシーケンス図である。
【０１２７】
本実施の形態のストレージシステムの起動時には、コントロールノードにより、ポーリングで各ストレージノードに対してストレージ装置およびキャッシュメモリの割り当てが行われる。この割り当てにより、コントロールノードは管理しているストレージノードに対して排他的にストレージ装置およびキャッシュメモリを接続する。
【０１２８】
図１１では、稼動しているコントロールノード（例えば、コントロールノード５００ａ）によって、ストレージノード（例えば、ストレージノード１００ａ）に対してストレージ装置（例えば、ストレージ装置２００ａ）およびキャッシュメモリ（例えば、キャッシュメモリ１０２１ｂ）が割り当てられる場合について説明する。なお、ここでは、キャッシュメモリ１０２１ｂは、ストレージノード１００ｂが有するＲＡＭ１０２ｂの内部に設けられているものとする。
【０１２９】
［ステップＳ１１０］コントロールノード５００ａは、ストレージノード１００ａに対して、ネットワーク３０を通じて、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂの割り当てを通知するとともに接続を求める接続要求を行う。
【０１３０】
［ステップＳ１２１］ストレージノード１００ａは、コントロールノード５００ａから送信された接続要求を受信すると、ストレージノード１００ａ自身に割り当てられたストレージ装置に対するアクセスの受付を停止する処理を行う。これにより、ストレージノード１００ａに割り当てられているストレージ装置があったとしても、そのストレージ装置に格納されているデータへの、端末装置４００ａ〜４００ｃなどによるアクセス（データの読み書き）は一時的に停止される。アクセスの停止が解除されてアクセスが再開されるまでの間に、端末装置４００ａ〜４００ｃによってストレージ装置２００ａに格納されているデータにアクセスが試みられた場合は、アクセスを試みた端末装置に対してエラー応答が送信される。
【０１３１】
［ステップＳ１２２］ストレージノード１００ａは、ストレージ装置２００ａに対して書き込まれるべきデータであってストレージ装置２００ａに書き込まれていない未書き込みデータが、キャッシュメモリ１０２１ｂに存在すれば、この未書き込みデータを読み込む処理を行う。
【０１３２】
［ステップＳ１３３］キャッシュメモリ１０２１ｂに書き込まれている、ストレージ装置２００ａに書き込まれるべき未書き込みデータが、キャッシュメモリ１０２１ｂからストレージノード１００ａに対してストレージノード１００ａに送信される処理が行われる。なお、この処理は、キャッシュメモリ１０２１ｂを有しているストレージノード１００ｂによって実行される。
【０１３３】
［ステップＳ１２４］ストレージノード１００ａは、ステップＳ１３３で読み出した未書き込みデータを、コントロールノード５００ａによって割り当てられたストレージ装置２００ａに書き込むためにストレージ装置２００ａに送信する。
【０１３４】
［ステップＳ１４５］ストレージ装置２００ａは、割り当てられたストレージノード１００ａから送信された未書き込みデータを、内部に有するＨＤＤに格納する。次に、ストレージ装置２００ａは、データの格納が完了した際に、ストレージノード１００ａに対して書き込み完了応答を送信する。
【０１３５】
［ステップＳ１２６］ストレージノード１００ａは、ステップＳ１２４によってストレージ装置２００ａに書き込んだ未書き込みデータを、キャッシュメモリ１０２１ｂから消去する。
【０１３６】
［ステップＳ１３７］キャッシュメモリ１０２１ｂに書き込まれている未書き込みデータの消去が完了すると、ストレージノード１００ａに対してデータ消去完了応答が送信される。なお、この処理は、ステップＳ１３３と同様、キャッシュメモリ１０２１ｂを有しているストレージノード１００ｂによって実行される。
【０１３７】
［ステップＳ１２８］ストレージノード１００ａは、ステップＳ１３７のデータ消去完了応答を受信すると、割り当てられたストレージ装置２００ａに対するアクセスの受付を再開する処理を行う。これにより、ストレージ装置２００ａに対する端末装置４００ａ〜４００ｃなどによるアクセスが再開される。この結果、端末装置４００ａ〜４００ｃによってストレージ装置２００ａに格納されているデータにアクセスが可能になる。
【０１３８】
［ステップＳ１２９］ストレージノード１００ａは、コントロールノード５００ａに対して接続完了応答を送信する。
以上のようにして、本実施の形態のストレージシステムのコントロールノード５００ａは、ストレージシステムの起動時において、ストレージノード１００ａにストレージ装置２００ａおよびキャッシュメモリ１０２１ｂを割り当てる。また、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂを割り当てられたストレージノード１００ａは、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂが割り当てられた際に、キャッシュメモリ１０２１ｂに記憶されているがストレージ装置２００ａに書き込まれていない未書き込みデータが存在する場合には、その未書き込みデータをキャッシュメモリ１０２１ｂから読み出してストレージ装置２００ａに書き込む。
【０１３９】
なお、本実施の形態では、ストレージノード１００ａは、キャッシュメモリ１０２１ｂに書き込まれている未書き込みデータを、キャッシュメモリ１０２１ｂから読み出してストレージ装置２００ａに書き込むが、これに限らず、例えば、キャッシュメモリ１０２１ｂの未書き込みデータと同一のデータをストレージノード１００ａの有するＲＡＭ１０２ａやその他の記憶装置に格納しておき、その記憶装置から読み出してストレージ装置２００ａに書き込んでもよい。
【０１４０】
次に、本実施の形態のストレージシステムにおいて、通常時におけるデータの書き込み時に実行される通常時書き込み処理について説明する。図１２は、ストレージシステムの通常時における書き込みの処理の手順を示すシーケンス図である。
【０１４１】
本実施の形態のストレージシステムにおいて、端末装置（例えば、端末装置４００ａ）からネットワーク３０，４０を通じて送信されたデータのストレージ装置（例えば、ストレージ装置２００ａ）に対する書き込み時の処理は、通常、以下に説明する手順によって実行される。なお、ここでは、ストレージノード１００ａに対して、ストレージ装置２００ａとともにキャッシュメモリ１０２１ｂが割り当てられているものとする。
【０１４２】
［ステップＳ２５０］端末装置４００ａは、ストレージ装置２００ａに書き込むデータを、ネットワーク３０，４０を通じてストレージノード１００ａに対して送信する。
［ステップＳ２２１］ストレージノード１００ａは、端末装置４００ａから送信された、ストレージ装置２００ａに書き込まれるデータを受信すると、受信したデータをキャッシュメモリ１０２１ｂに書き込む。
【０１４３】
［ステップＳ２３２］端末装置４００ａから送信されたデータのキャッシュメモリ１０２１ｂに対する書き込みが完了すると、ストレージノード１００ａに対して、書き込み完了応答が送信される。なお、この処理は、キャッシュメモリ１０２１ｂを有しているストレージノード１００ｂによって実行される。
【０１４４】
［ステップＳ２２３］ストレージノード１００ａは、ステップＳ２３２の書き込み完了応答を受信すると、端末装置４００ａに対して、書き込み完了応答を送信する。
［ステップＳ２２４］ストレージノード１００ａは、端末装置４００ａから送信されたデータをストレージ装置２００ａに書き込むためにストレージ装置２００ａに送信する。
【０１４５】
［ステップＳ２４５］ストレージ装置２００ａは、端末装置４００ａから送信されたデータを内部に有するＨＤＤに格納する。データの格納が完了した際に、ストレージノード１００ａに対して書き込み完了応答を送信する。
【０１４６】
［ステップＳ２２６］ストレージノード１００ａは、ステップＳ２２４によってストレージ装置２００ａに書き込んだ、書き込み済みデータを、キャッシュメモリ１０２１ｂから消去する。
【０１４７】
［ステップＳ２３７］キャッシュメモリ１０２１ｂに書き込まれている書き込み済みデータの消去が完了すると、ストレージノード１００ａに対して、データ消去完了応答が送信される。なお、この処理は、ステップＳ２３２と同様、キャッシュメモリ１０２１ｂを有しているストレージノード１００ｂによって実行される。
【０１４８】
以上のようにして、本実施の形態のストレージノード１００ａは、端末装置４００ａから送信されたデータをストレージ装置２００ａに対して書き込む際に、ストレージ装置２００ａへの書き込みが完了する前に予め割り当てられたキャッシュメモリ１０２１ｂにそのデータを記憶させてバックアップする。
【０１４９】
また、ストレージノード１００ａは、ストレージ装置２００ａに書き込むデータをキャッシュメモリ１０２１ｂに対する書き込みが終了した段階で端末装置４００ａに対して書き込み完了応答を送信する。これにより、端末装置４００ａから送信されたデータは、ストレージ装置２００ａに対して書き込みが完了する前に、端末装置４００ａ側においては書き込みの処理から開放される。すなわち、通常時は、端末装置４００ａから送信されたデータのストレージ装置２００ａに対する書き込みは、非同期的に処理される。この結果、通常時の端末装置４００ａからのデータの書き込みは、キュッシュメモリ１０２１ｂに一時的に記憶された後、ストレージ装置２００ａへの書き込みを待たずに端末装置４００ａに応答されるので、バックアップを取っているにもかかわらず高速に応答できる。
【０１５０】
次に、本実施の形態のストレージシステムにおいて、キャッシュメモリに空きがない場合におけるデータの書き込み時に実行される同期書き込み処理について説明する。図１３は、キャッシュメモリに空きがない場合における書き込みの処理の手順を示すシーケンス図である。
【０１５１】
本実施の形態のストレージシステムにおいて、端末装置（例えば、端末装置４００ａ）からネットワーク３０，４０を通じて送信されたデータのストレージ装置（例えば、ストレージ装置２００ａ）に対する書き込み時に、キャッシュメモリ（例えば、キャッシュメモリ１０２１ｂ）の空き容量が不足するなどにより、キャッシュメモリにデータを書き込むことが不可能である場合、データの書き込み時の処理は、以下に説明する手順によって実行される。なお、図１２と同様、ここではストレージ装置２００ａは、ストレージノード１００ａに割り当てられているものとする。さらに、ストレージノード１００ａに対して、ストレージ装置２００ａとともにキャッシュメモリ１０２１ｂが割り当てられているものとする。
【０１５２】
［ステップＳ３５０］端末装置４００ａは、ストレージ装置２００ａに書き込むデータを、ネットワーク３０，４０を通じてストレージノード１００ａに対して送信する。
［ステップＳ３２１］ストレージノード１００ａは、端末装置４００ａから送信された、ストレージ装置２００ａに書き込まれるデータを受信すると、受信したデータをキャッシュメモリ１０２１ｂに書き込む。
【０１５３】
［ステップＳ３３２］端末装置４００ａから送信されたデータのキャッシュメモリ１０２１ｂに対する書き込みが不可能であるとき、ストレージノード１００ａに対して、データの書き込みが不可能であることを通知する書き込み不可応答が行われる。なお、この処理は、キャッシュメモリ１０２１ｂを有しているストレージノード１００ｂによって実行される。
【０１５４】
［ステップＳ３２３］ストレージノード１００ａは、書き込み不可応答を受信すると、端末装置４００ａから送信されたデータをストレージ装置２００ａに書き込むためにストレージ装置２００ａに送信する。
【０１５５】
［ステップＳ３４４］ストレージ装置２００ａは、端末装置４００ａから送信されたデータを内部に有するＨＤＤに格納する。データの格納が完了した際に、ストレージノード１００ａに対して書き込み完了応答を行う。
【０１５６】
［ステップＳ３２５］ストレージノード１００ａは、ステップＳ３４４の書き込み完了応答を受信すると、端末装置４００ａに対して、書き込み完了応答を行う。
［ステップＳ３２６］ストレージノード１００ａは、ステップＳ３２１によってキャッシュメモリ１０２１ｂに書き込んだデータがあれば、そのデータをキャッシュメモリ１０２１ｂから消去する。
【０１５７】
［ステップＳ３３７］ステップＳ３２６においてキャッシュメモリ１０２１ｂのデータが消去された場合には、そのデータの消去が完了すると、ストレージノード１００ａに対して、データ消去完了応答が行われる。なお、この処理は、ステップＳ３３２と同様、キャッシュメモリ１０２１ｂを有しているストレージノード１００ｂによって実行される。
【０１５８】
以上のようにして、本実施の形態のストレージノード１００ａは、端末装置４００ａから送信されたデータをストレージ装置２００ａに対して書き込む際に、容量不足などによりキャッシュメモリ１０２１ｂに対してデータの書き込みが不可能である場合には、キャッシュメモリ１０２１ｂに対してデータを書き込まずに、直接ストレージ装置２００ａにデータを書き込む。すなわち、ストレージノード１００ａは、キャッシュメモリ１０２１ｂにデータのバックアップが不可能である場合には、同期的にストレージ装置２００ａにデータを書き込む。
【０１５９】
次に、本実施の形態のストレージシステムにおいて、ストレージノードが故障した場合における割り当ての処理である、ストレージノード故障時割当処理について説明する。図１４は、ストレージノードの故障時における割り当ての処理の手順を示すシーケンス図である。
【０１６０】
本実施の形態のストレージノードの故障時には、コントロールノードによりストレージノードの故障が検出されると、代替のストレージノードに対して、故障したストレージノードに割り当てられていたストレージ装置およびキャッシュメモリの割り当てが行われる。すなわち、コントロールノードは、正常なストレージノードに対してストレージ装置およびキャッシュメモリを割り当てる。これに従い、ストレージノードは、ストレージ装置およびキャッシュメモリを排他的に接続する。
【０１６１】
図１４では、稼動しているコントロールノード（例えば、コントロールノード５００ａ）によって、故障したストレージノード（例えば、ストレージノード１００ｃ）に代替して、他の図示しないストレージ装置および図示しないキャッシュメモリが割り当てられているストレージノード（例えば、ストレージノード１００ａ）に対して、故障したストレージノード１００ｃに割り当てられていたストレージ装置（例えば、ストレージ装置２００ａ）およびキャッシュメモリ（例えば、キャッシュメモリ１０２１ｂ）が割り当てられる場合について説明する。なお、ここでは、キャッシュメモリ１０２１ｂは、ストレージノード１００ｂが有するＲＡＭ１０２ｂの内部に設けられているものとする。また、故障したストレージノード１００ｃに代替するストレージノード１００ａは、既にストレージシステムにおいて稼動しており、他のストレージ装置およびキャッシュメモリに割り当てられているものとする。
【０１６２】
ここで、ストレージノード故障時割当処理における、ステップＳ４１１（接続要求）からステップＳ４６２（接続完了応答）までの処理については、図１１の起動時割当処理と同一の手順であるため、ステップＳ４１１およびステップＳ４６２の間の処理の詳細について図示および説明を省略する。
【０１６３】
［ステップＳ４１０］コントロールノード５００ａは、ストレージノード１００ｃの故障を検出する。ここで、コントロールノード５００ａは、定期的にハートビートを送信しており、このハートビートの断絶によって、ストレージシステムを構成する各ストレージノードの故障を検出することができる。
【０１６４】
［ステップＳ４１１］コントロールノード５００ａは、ステップＳ４１０においてストレージノード１００ｃの故障を検出すると、故障したストレージノード１００ｃの代替となるストレージノード１００ａに対して、ネットワーク３０を通じて、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂの割り当てを通知するとともに接続を求める接続要求を行う。これにより、前述した図１１に示す起動時割当処理が実行される。
【０１６５】
［ステップＳ４６２］ストレージノード１００ａは、割り当てられたストレージ装置２００ａおよびキャッシュメモリ１０２１ｂの接続が完了すると、コントロールノード５００ａに対して接続完了応答を送信する。
【０１６６】
なお、本実施の形態では、前述したように、故障したストレージノード１００ｃに代替するストレージノード１００ａは、他のストレージ装置およびキャッシュメモリに割り当てられている。すなわち、既に他のストレージ装置およびキャッシュメモリに割り当てられているストレージノード１００ａに対して、さらにストレージ装置２００ａおよびキャッシュメモリ１０２１ｂを割り当てられる。しかし、これに限らず、ストレージシステム内に待機系のストレージノードを配置しておき、現用系のストレージノードの故障時には、待機系のストレージノードに対して、故障したストレージノードに割り当てられていたストレージ装置およびキャッシュメモリを割り当ててもよい。
【０１６７】
また、故障したストレージノード１００ｃに代替するストレージノード１００ａとして、ストレージシステムを構成するストレージノードのうち、負荷が最も少ないストレージノードを、コントロールノード５００ａが自動的に選択するようにしてもよい。この場合、ストレージノードの負荷の評価の尺度として、例えば、データの読み書きの頻度を用いてもよい。このデータの読み書きの頻度は、例えば、直近の一定時間当りのアクセス回数、または読み書きされたデータ量を用いてもよい。また、ストレージノードの負荷の評価の尺度として、割り当てられているストレージ装置の容量の大きさを用いてもよい。
【０１６８】
以上のようにして、本実施の形態のストレージシステムのコントロールノード５００ａは、ストレージノード１００ｃの故障時において、ストレージノード１００ｃの故障を検出すると、新たにストレージノード１００ａに対してストレージ装置２００ａおよびキャッシュメモリ１０２１ｂを割り当てる。また、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂを割り当てられたストレージノード１００ａは、ストレージ装置２００ａおよびキャッシュメモリ１０２１ｂが割り当てられた際に、キャッシュメモリ１０２１ｂに記憶されているがストレージ装置２００ａに書き込まれていない未書き込みデータが存在する場合には、その未書き込みデータをキャッシュメモリ１０２１ｂから読み出してストレージ装置２００ａに書き込む（図１１参照）。
【０１６９】
次に、本実施の形態のストレージシステムにおいて、キャッシュメモリが故障した場合における割り当ての処理である、キャッシュメモリ故障時割当処理について説明する。図１５は、キャッシュメモリの故障時における割り当ての処理の手順を示すシーケンス図である。
【０１７０】
本実施の形態のストレージシステムでは、キャッシュメモリの故障時において、コントロールノードによりキャッシュメモリの故障が検出されると、故障したキャッシュメモリが割り当てられていたストレージノードに対して、そのストレージノードに割り当てられていたストレージ装置とともに、代替のキャッシュメモリの割り当てが行われる。すなわち、コントロールノードは、故障したキャッシュメモリが割り当てられていたストレージノードに対して排他的にストレージ装置および正常なキャッシュメモリを割り当てる。これに従い、ストレージノードは、割り当てられた正常なキャッシュメモリと接続する。
【０１７１】
図１５では、稼動しているコントロールノード（例えば、コントロールノード５００ａ）によって、故障したキャッシュメモリ（例えば、キャッシュメモリ１０２１ｃ）に代替して、故障したキャッシュメモリが割り当てられていたストレージノード（例えば、ストレージノード１００ａ）に対し、既に割り当てられているストレージ装置（例えば、ストレージ装置２００ａ）に加えて正常なキャッシュメモリ（例えば、キャッシュメモリ１０２１ｂ）が割り当てられる場合について説明する。なお、ここでは、キャッシュメモリ１０２１ｂは、ストレージノード１００ｂが有するＲＡＭ１０２ｂの内部に設けられているものとする。同様に、キャッシュメモリ１０２１ｃは、ストレージノード１００ｃが有するＲＡＭ１０２ｃの内部に設けられているものとする。また、キャッシュメモリ１０２１ｂは、既にストレージシステムにおいて稼動しており、他の図示しないストレージ装置とともに、他の図示しないストレージノードに割り当てられているものとする。
【０１７２】
ここで、このキャッシュメモリ故障時割当処理における、ステップＳ５１１（通常→同期モード切替指示）からステップＳ５２２（通常→同期モード切替応答）までの処理（故障したキャッシュメモリ１０２１ｃの割り当ての解除）については、詳しくは図１５の通常→同期モード切替処理において後述する。また、同様に、ステップＳ５１３（同期→通常モード切替指示）からステップＳ５２４（通常→同期モード切替応答）までの処理（正常なキャッシュメモリ１０２１ｂの新たな割り当て）については、詳しくは図１６の同期→通常モード切替処理において後述する。
【０１７３】
［ステップＳ５１０］コントロールノード５００ａは、キャッシュメモリ１０２１ｃの故障を検出する。ここで、コントロールノード５００ａは、各ストレージノードと通信することによって、各キャッシュメモリに対する書き込み処理の可否を定期的に監視している。コントロールノード５００ａは、この各ストレージノードのキャッシュメモリに対する書き込み処理の可否を通信によって収集する。そして、コントロールノード５００ａは、例えば、「所定回数以上連続して特定のキャッシュメモリに対する書き込み処理が不可であった場合には、そのキャッシュメモリは故障している」などの判定条件に該当するか否かを判定することにより、ストレージシステムを構成する各キャッシュメモリの故障を検出することができる。
【０１７４】
［ステップＳ５１１］コントロールノード５００ａは、ステップＳ５１０においてキャッシュメモリ１０２１ｃの故障を検出すると、一旦、キャッシュメモリを用いずにデータの書き込みを行う同期モードに切り替えるために、故障したキャッシュメモリ１０２１ｃが割り当てられていたストレージノード１００ａに対して、通常→同期モード切替指示を送信する。この通常モードから同期モードへの切り替えは、図１６に示す通常→同期モード切替処理において後述する。
【０１７５】
［ステップＳ５２２］ストレージノード１００ａは、通常→同期モード切替処理（図１６参照）が完了すると、コントロールノード５００ａに対して通常→同期モード切替応答を送信する。
【０１７６】
［ステップＳ５１３］コントロールノード５００ａは、ステップＳ５２２の通常→同期モード切替応答を受信すると、正常なキャッシュメモリ１０２１ｂをバックアップに用いてデータの書き込みを行う通常モードに切り替えるために、故障したキャッシュメモリ１０２１ｃが割り当てられていたストレージノード１００ａに対して、同期→通常モード切替指示を送信する。この同期モードから通常モードへの切り替えは、図１８に示す同期→通常モード切替処理において後述する。
【０１７７】
［ステップＳ５２４］ストレージノード１００ａは、同期→通常モード切替処理（図１８参照）が完了すると、コントロールノード５００ａに対して同期→通常モード切替応答を送信する。
【０１７８】
なお、本実施の形態では、前述したように、キャッシュメモリ１０２１ｂは、既にストレージシステムにおいて稼動しており、他の図示しないストレージ装置とともに、他の図示しないストレージノードに割り当てられているものとする。すなわち、既に他のストレージノードに割り当てられているキャッシュメモリ１０２１ｂが、さらにストレージノード１００ａにも割り当てられる。しかし、これに限らず、ストレージシステム内に待機系のキャッシュメモリを配置しておき、現用系のキャッシュメモリの故障時には、待機系のキャッシュメモリを、故障したキャッシュメモリが割り当てられていたストレージノードに割り当ててもよい。
【０１７９】
また、故障したキャッシュメモリ１０２１ｃに代替するキャッシュメモリ１０２１ａとして、ストレージシステムを構成するキャッシュメモリのうち、負荷が最も少ないキャッシュメモリを、コントロールノード５００ａが自動的に選択するようにしてもよい。この場合、キャッシュメモリの負荷の評価の尺度として、例えば、キャッシュメモリに対するデータの読み書きの頻度を用いてもよい。このデータの読み書きの頻度は、例えば、直近の一定時間当りのアクセス回数、または読み書きされたデータ量を用いてもよい。また、ストレージノードの負荷の評価の尺度として、一定時間におけるキャッシュメモリの空き容量の平均値を用いてもよい。
【０１８０】
以上のようにして、本実施の形態のストレージシステムのコントロールノード５００ａは、キャッシュメモリ１０２１ｃの故障を検出すると、故障したキャッシュメモリ１０２１ｃが割り当てられていたストレージノード１００ａに対して、通常→同期モード切替指示を送信する。次に、通常→同期モード切替指示を受信したストレージノード１００ａは、一旦、ストレージ装置２００ａへのデータの書き込み時にキャッシュメモリを必要とする通常モードから、キャッシュメモリを用いない同期モードに切り替える通常→同期モード切替処理（図１６参照）を行って、故障したキャッシュメモリ１０２１ｃを使用せずにデータの書き込みを処理可能にする。
【０１８１】
次に、コントロールノード５００ａは、ストレージノード１００ａに対して、新たにキャッシュメモリ１０２１ｂを割り当てるとともに、同期→通常モード切替指示を送信する。次に、ストレージノード１００ａは、キャッシュメモリ１０２１ｂを割り当てられるとともに、同期→通常モード切替指示を受信すると、通常→同期モード切替処理が完了すると、同期モードから新たに割り当てられたキャッシュメモリ１０２１ｂを用いる通常モードに切り替える同期→通常モード切替処理（図１８参照）を行って、新たに割り当てられたキャッシュメモリ１０２１ｂでバックアップされたデータの書き込みを処理可能にする。
【０１８２】
次に、本実施の形態のストレージシステムにおいて、ストレージ装置へのデータの書き込み時にキャッシュメモリを必要とする通常モードから、ストレージ装置へのデータの書き込み時にキャッシュメモリを用いない同期モードに切り替える処理である、通常→同期モード切替処理について説明する。図１６は、通常モードから同期モードに切り替える処理の手順を示すシーケンス図である。
【０１８３】
本実施の形態のストレージシステムでは、キャッシュメモリの故障時にコントロールノードによりキャッシュメモリの故障が検出されると、ストレージノードから故障したキャッシュメモリを切り離して、一旦、データのストレージ装置への書き込みにキャッシュメモリを必要としない同期モードに切り替えるために、コントロールノードから故障したキャッシュメモリが割り当てられていたストレージノードに対して、通常→同期モード切替指示が送信される。この通常→同期モード切替指示を受信したストレージノードは、故障したキャッシュメモリを用いずにストレージ装置に対してデータの書き込み処理を行う。
【０１８４】
図１６では、稼動しているコントロールノード（例えば、コントロールノード５００ａ）によって、故障したキャッシュメモリ（例えば、キャッシュメモリ１０２１ｃ）が割り当てられていたストレージノード（例えば、ストレージノード１００ａ）に対して、故障したキャッシュメモリ１０２１ｃの割り当てが解除されるとともに、キャッシュメモリを用いずにストレージ装置２００ａにデータの書き込みを行う同期モードに切り替わる場合について説明する。
【０１８５】
なお、ここでは、キャッシュメモリ１０２１ｂは、ストレージノード１００ｂが有するＲＡＭ１０２ｂの内部に設けられているものとする。同様に、キャッシュメモリ１０２１ｃは、ストレージノード１００ｃが有するＲＡＭ１０２ｃの内部に設けられているものとする。また、キャッシュメモリ１０２１ｂは、既にストレージシステムにおいて稼動しており、他の図示しないストレージ装置とともに、他の図示しないストレージノードに割り当てられているものとする。また、キャッシュメモリ１０２１ｃは、故障するまで、ストレージ装置２００ａと対応付けられてストレージノード１００ａに割り当てられており、ストレージ装置２００ａに書き込まれるデータは、ストレージ装置２００ａへの書き込みが完了するまでは、キャッシュメモリ１０２１ｃに書き込まれてバックアップされていたものとする。
【０１８６】
［ステップＳ６１０］コントロールノード５００ａは、図１５のステップＳ５１０においてキャッシュメモリ１０２１ｃの故障を検出すると、図１５のステップＳ５１１においても示したが、一旦、キャッシュメモリを用いずにデータの書き込みを行う同期モードに切り替えるために、故障したキャッシュメモリ１０２１ｃが割り当てられていたストレージノード１００ａに対して、通常→同期モード切替指示を送信する。
【０１８７】
［ステップＳ６２１］ストレージノード１００ａは、コントロールノード５００ａから送信された通常→同期モード切替指示を受信すると、故障したキャッシュメモリ１０２１ｃとともにストレージノード１００ａに割り当てられていたストレージ装置２００ａに対するアクセスの受付を停止する処理を行う。これにより、キャッシュメモリ１０２１ｃに対応付けられているとともにストレージノード１００ａに割り当てられているストレージ装置２００ａに格納されているデータへの、端末装置４００ａ〜４００ｃなどによるアクセス（データの読み書き）が、一時的に停止される。アクセスの停止が解除されてアクセスが再開されるまでの間に、端末装置４００ａ〜４００ｃによってストレージ装置２００ａに格納されているデータにアクセスが試みられた場合は、アクセスを試みた端末装置に対してエラー応答が送信される。
【０１８８】
［ステップＳ６２２］ストレージノード１００ａは、ストレージ装置２００ａに書き込まれるべき書き込みデータを、ストレージノード１００ａが有するＲＡＭ１０２ａに格納していれば、その書き込みデータのすべてを、キャッシュメモリに書き込むことなく、ストレージ装置２００ａに直接書き込むためにストレージ装置２００ａに送信する。
【０１８９】
［ステップＳ６４３］ストレージ装置２００ａは、ステップＳ６２２でストレージノード１００ａから送信された書き込みデータを、内部に有するＨＤＤに格納する。次に、ストレージ装置２００ａは、データの格納が完了した際に、ストレージノード１００ａに対して全受信データ書き込み完了応答を送信する。
【０１９０】
［ステップＳ６２４］
ストレージノード１００ａは、ステップＳ６４３の全受信データ書き込み完了応答を受信すると、ストレージ装置２００ａに対するアクセスの受付を再開する処理を行う。これにより、ストレージ装置２００ａに対する端末装置４００ａ〜４００ｃなどによるアクセスが再開される。この結果、端末装置４００ａ〜４００ｃによってストレージ装置２００ａに格納されているデータにアクセスが可能になる。この時点以降は、端末装置４００ａ〜４００ｃから送信されたストレージ２００ａへの書き込みデータは、同期モードによって書き込まれる。また、ステップＳ６２２において書き込みデータが存在しなかった場合にも、同様にアクセスの受付を再開する処理を行う。
【０１９１】
［ステップＳ６２５］ストレージノード１００ａは、キャッシュメモリ１０２１ｃにデータが残存していれば、そのデータを消去するキャッシュ消去が行われる。故障の状態等によりキャッシュメモリ１０２１ｃにアクセスできない場合、またはキャッシュメモリ１０２１ｃのデータを消去できない場合には、データの消去は行われない。
【０１９２】
［ステップＳ６３６］キャッシュメモリ１０２１ｃに残存していたデータの消去が完了すると、ストレージノード１００ａに対してキャッシュ消去完了応答が送信される。なお、この処理は、キャッシュメモリ１０２１ｃを有しているストレージノード１００ｃによって実行される。
【０１９３】
［ステップＳ６２７］ストレージノード１００ａは、以上に示した通常モードから同期モードへの切り替えの処理が完了すると、コントロールノード５００ａに対して通常→同期モード切替応答を送信する。
【０１９４】
以上のようにして、本実施の形態のストレージシステムのストレージノード１００ａは、ストレージ装置２００ａへのデータの書き込みにキャッシュメモリを必要とする通常モードからキャッシュメモリを用いない同期モードに切り替える通常→同期モード切替処理により、一旦、同期モードに切り替わる。この結果、故障したキャッシュメモリ１０２１ｃを用いず、図１７に後述する同期書き込み処理によって、ストレージ装置２００ａに対して同期的に直接書き込みを行う。
【０１９５】
次に、本実施の形態のストレージシステムにおいて、端末装置から送信されたデータをストレージノードがキャッシュメモリにバックアップせずに直接ストレージ装置に書き込む処理である、同期書き込み処理について説明する。図１７は、ストレージノードによる同期書き込みの処理の手順を示すシーケンス図である。
【０１９６】
本実施の形態のストレージシステムでは、キャッシュメモリの故障時には、ストレージノードがデータのストレージ装置への書き込みにキャッシュメモリを必要としない同期モードに切り替わる。この同期モードにおいて、ストレージノードは、端末装置から送信されたデータをキャッシュメモリを用いずに直接ストレージ装置に対して書き込む。
【０１９７】
この図１７に示す端末装置（例えば、端末装置４００ａ）からネットワーク３０，４０を通じて送信されたデータを直接ストレージ装置（例えば、ストレージ装置２００ａ）に書き込む時の処理は、以下に説明する手順によって実行される。なお、ここでは、ストレージノード１００ａに対して、ストレージ装置２００ａとともにキャッシュメモリ１０２１ｂが割り当てられているものとする。
【０１９８】
［ステップＳ７５０］端末装置４００ａは、ストレージ装置２００ａに書き込むデータを、ネットワーク３０，４０を通じてストレージノード１００ａに対して送信する。
［ステップＳ７２１］ストレージノード１００ａは、端末装置４００ａから送信された、ストレージ装置２００ａに書き込まれるデータを受信すると、受信したデータを直接ストレージ装置２００ａに書き込むためにストレージ装置２００ａに送信する。
【０１９９】
［ステップＳ７４２］ストレージ装置２００ａは、端末装置４００ａから送信されたデータを、内部に有するＨＤＤに格納する。次に、ストレージ装置２００ａは、データの格納が完了した際に、ストレージノード１００ａに対して、書き込み完了応答を送信する。
【０２００】
［ステップＳ７２３］ストレージノード１００ａは、ステップＳ７４２の書き込み完了応答を受信すると、端末装置４００ａに対して、書き込み完了応答を送信する。
以上のようにして、本実施の形態のストレージノード１００ａは、同期モードにおいて端末装置４００ａから送信されたデータをストレージ装置２００ａに対して書き込む際は、キャッシュメモリを用いず直接ストレージ装置２００ａにデータを書き込む。
【０２０１】
また、ストレージノード１００ａは、端末装置４００ａから送信されたデータをストレージ装置２００ａに対する書き込みが終了した段階で端末装置４００ａに対して書き込み完了応答を送信する。これにより、端末装置４００ａから送信されたデータは、ストレージ装置２００ａに対して書き込みが完了した後に、端末装置４００ａ側においては書き込みの処理から開放される。すなわち、同期モードにおいては、端末装置４００ａから送信されたデータのストレージ装置２００ａに対する書き込みは、同期的に処理される。
【０２０２】
次に、本実施の形態のストレージシステムにおいて、ストレージ装置へのデータの書き込み時にバックアップがされない同期モードから、ストレージ装置へのデータの書き込み時にキャッシュメモリによってデータの書き込みがバックアップされる通常モードに切り替える処理である、同期→通常モード切替処理について説明する。図１８は、同期モードから通常モードに切り替える処理の手順を示すシーケンス図である。
【０２０３】
本実施の形態のストレージシステムでは、キャッシュメモリの故障時にコントロールノードによりキャッシュメモリの故障が検出されると、一旦、データのストレージ装置への書き込みにキャッシュメモリを必要としない同期モードに切り替わり、ストレージノードは故障したキャッシュメモリを用いずにストレージ装置に対してデータの書き込み処理を行う。その後、故障したキャッシュメモリが割り当てられていたストレージノードには、コントロールノードによって故障したキャッシュメモリとは異なる正常なキャッシュメモリが新たに割り当てられる。次に、再び、データのストレージ装置へのデータの書き込みがキャッシュメモリによってバックアップされる通常モードに切り替えるために、コントロールノードから新たなキャッシュメモリが割り当てられたストレージノードに対して、同期→通常モード切替指示が送信される。この同期→通常モード切替指示を受信したストレージノードは、新たに割り当てられた正常なキャッシュメモリによってバックアップされた状態で、ストレージ装置に対してデータの書き込み処理を行う。
【０２０４】
図１８では、稼動しているコントロールノード（例えば、コントロールノード５００ａ）によって、故障したキャッシュメモリ（例えば、キャッシュメモリ１０２１ｃ）が割り当てられていたストレージノード（例えば、ストレージノード１００ａ）に対して、故障したキャッシュメモリ１０２１ｃに代替する正常なキャッシュメモリ（例えば、キャッシュメモリ１０２１ｂ）が割り当てられた場合において、新たに割り当てられたキャッシュメモリ１０２１ｂを用いてストレージ装置２００ａにデータの書き込みを行う通常モードに切り替わる場合について説明する。
【０２０５】
なお、ここでは、キャッシュメモリ１０２１ｂは、ストレージノード１００ｂが有するＲＡＭ１０２ｂの内部に設けられているものとする。同様に、キャッシュメモリ１０２１ｃは、ストレージノード１００ｃが有するＲＡＭ１０２ｃの内部に設けられているものとする。また、キャッシュメモリ１０２１ｂは、既にストレージシステムにおいて稼動しており、他の図示しないストレージ装置とともに、他の図示しないストレージノードに割り当てられているものとする。また、キャッシュメモリ１０２１ｃは、故障するまで、ストレージ装置２００ａと対応付けられてストレージノード１００ａに割り当てられており、ストレージ装置２００ａに書き込まれるデータは、ストレージ装置２００ａへの書き込みが完了するまでは、キャッシュメモリ１０２１ｃに書き込まれてバックアップされていたものとする。
【０２０６】
［ステップＳ８１０］コントロールノード５００ａは、図１５のステップＳ５２２における通常→同期モード切替応答を受信すると、図１５のステップＳ５１３においても示したが、再び、正常なキャッシュメモリ１０２１ｂをバックアップに用いてデータの書き込みを行う通常モードに切り替えるために、故障したキャッシュメモリ１０２１ｃが割り当てられていたストレージノード１００ａに対して、同期→通常モード切替指示を送信する。
【０２０７】
［ステップＳ８２１］ストレージノード１００ａは、コントロールノード５００ａから送信された同期→通常モード切替指示を受信すると、同期モードで書き込みが行われているストレージ装置２００ａに対するアクセスの受付を停止する処理を行う。これにより、通常モードであるストレージ装置２００ａに格納されているデータへの、端末装置４００ａ〜４００ｃなどによるアクセス（データの読み書き）が、一時的に停止される。アクセスの停止が解除されてアクセスが再開されるまでの間に、端末装置４００ａ〜４００ｃによってストレージ装置２００ａに格納されているデータにアクセスが試みられた場合は、アクセスを試みた端末装置に対してエラー応答が送信される。
【０２０８】
［ステップＳ８２２］ストレージノード１００ａは、ストレージ装置２００ａに書き込まれるべき書き込みデータをストレージノード１００ａが有するＲＡＭ１０２ａに格納していれば、その書き込みデータのすべてを、キャッシュメモリに書き込むことなく、ストレージ装置２００ａに直接書き込むために、ストレージ装置２００ａに送信する。
【０２０９】
［ステップＳ８４３］ストレージ装置２００ａは、ステップＳ８２２でストレージノード１００ａから送信された書き込みデータを、内部に有するＨＤＤに格納する。次に、ストレージ装置２００ａは、データの格納が完了した際に、ストレージノード１００ａに対して全受信データ書き込み完了応答を送信する。
【０２１０】
［ステップＳ８２４］
ストレージノード１００ａは、ステップＳ８４３の全受信データ書き込み完了応答を受信すると、ストレージ装置２００ａに対するアクセスの受付を再開する処理を行う。これにより、ストレージ装置２００ａに対する端末装置４００ａ〜４００ｃなどによるアクセスが再開される。この結果、端末装置４００ａ〜４００ｃによってストレージ装置２００ａに格納されているデータにアクセスが可能になる。この時点以降は、端末装置４００ａ〜４００ｃから送信されたストレージ装置２００ａへの書き込みデータは、通常モードによって書き込まれる。また、ステップＳ８２２において書き込みデータが存在しなかった場合にも、同様にアクセスの受付を再開する処理を行う。
【０２１１】
［ステップＳ８２５］ストレージノード１００ａは、以上に示した同期モードから通常モードへの切り替えの処理が完了すると、コントロールノード５００ａに対して同期→通常モード切替応答を送信する。
【０２１２】
このように、コントロールノード５００ａは、キャッシュメモリ１０２１ｃの故障を検出した際には、ストレージノード１００ａに対して同期モードに切り替える旨の指示である通常→同期モード切替指示を送信する一方、ストレージノード１００ａの同期モードへの切り替えが完了した旨を通知する通常→同期モード切替応答を受信した際には、ストレージノード１００ａに対して新たに正常なキャッシュメモリ１０２１ｂを割り当てるとともにストレージノード１００ａに対して通常モードに切り替える旨の指示である同期→通常モード切替指示を送信する。
【０２１３】
また、これに応じてストレージノード１００ａは、ストレージ装置２００ａに対するデータの書き込みの際に、コントロールノード５００ａから送信された同期→通常モード切替指示を受信するとこれに基づいて、キャッシュメモリ１０２１ｂに当該データを記憶させる通常モードに切り替えるとともに、コントロールノード５００ａから送信された通常→同期モード切替指示を受信するとこれに基づいて、いずれのキャッシュメモリにもデータを記憶させることなくストレージ装置２００ａに対してデータを書き込む同期モードとに切り替える。
【０２１４】
以上のようにして、本実施の形態のストレージシステムのストレージノード１００ａは、ストレージ装置２００ａへのデータの書き込みにキャッシュメモリによるバックアップがされない同期モードからキャッシュメモリによるバックアップがある通常モードに切り替える同期→通常モード切替処理により、再び、通常モードに切り替わる。この結果、図１２に示す通常時書き込み処理によって、新たに割り当てられたキャッシュメモリ１０２１ｂによるバックアップがされた状態で、かつ、非同期的に書き込みを行う。
【０２１５】
次に、本実施の形態のストレージシステムの具体的な構成例を示す。図１９は、本実施の形態のストレージシステムの構成例を示す図である。図１９に示すストレージシステムの構成例は、ストレージ装置に書き込まれるデータを一時的に記憶するキャッシュメモリがストレージノードに備えられているとともに、ストレージ装置がディスクアレイ装置によって構成されている。
【０２１６】
図１９に示す本実施の形態の構成例におけるストレージシステムでは、複数（例えば、４個）のストレージノード１００ａ，１００ｂ，１００ｃ，１００ｄ、複数（例えば、４個）のストレージ装置２００ａ，２００ｂ，２００ｃ，２００ｄ、少なくとも１個（例えば、２個）のコントロールノード５００ａ，５００ｂ、および少なくとも１個（例えば、１個）の端末装置４００ａが、ＩＰスイッチ７００ａ，７００ｂを通じて、ネットワーク５０によって相互に接続されている。
【０２１７】
ストレージノード１００ａ〜１００ｄ、コントロールノード５００ａ，５００ｂ、端末装置４００ａは、コンピュータによって構成されており、ＩＰ（Internet Protocol）を用いて構成されたネットワーク５０によって相互に接続されている。
【０２１８】
ストレージノード１００ａ〜１００ｄ、コントロールノード５００ａ，５００ｂ、端末装置４００ａ、およびストレージ装置２００ａ〜２００ｄは、それぞれ図示しないネットワークインタフェースを２個ずつ有しており、この２個のネットワークインタフェースが、それぞれＩＰスイッチ７００ａ，７００ｂと接続することにより、パスが二重化されている。
【０２１９】
また、ストレージノード１００ａ〜１００ｄには、ネットワーク５０を通じて、ｉＳＣＳＩ（Internet Small Computer System Interface）により、それぞれストレージ装置２００ａ〜２００ｄが接続されている。ストレージノード１００ａ〜１００ｄは、コントロールノード５００ａ，５００ｂによって割り当てられたストレージ装置２００ａ〜２００ｄの論理ユニットに格納されたデータを管理し、管理しているデータをネットワーク５０を通じて端末装置４００ａに提供する。
【０２２０】
また、ストレージノード１００ａ〜１００ｄは、端末装置４００ａに対して、それぞれのストレージノード１００ａ〜１００ｃが管理するストレージ装置２００ａ〜２００ｄに格納されているデータを利用した情報処理のサービスを提供する。すなわち、ストレージノード１００ａ〜１００ｄは、ネットワーク５０を通じて、端末装置４００ａからの要求に応答して所定のプログラムを実行し、端末装置４００ａが要求するデータの読み書きおよびデータの送受信を行う。
【０２２１】
すなわち、ストレージノード１００ａ〜１００ｄは、端末装置４００ａのデータの読み出し要求を、ネットワーク５０を通じて受信すると、ストレージ装置２００ａ〜２００ｄのうち割り当てられているストレージ装置から、要求されたデータを読み込んで、読み出し要求を行った端末装置４００ａに応答する。また、ストレージノード１００ａ〜１００ｂは、端末装置４００ａの書き込み要求を、ネットワーク５０を通じて受信すると、割り当てられているストレージ装置２００ａ〜２００ｄにデータの書き込みを行う。次に、データの書き込みが完了すると、ストレージノード１００ａ〜１００ｄは、端末装置４００ａに書き込みが完了した旨を応答する。
【０２２２】
また、ストレージノード１００ａ〜１００ｄは、それぞれキャッシュメモリ１０２１ａ〜１０２１ｂを有している。また、ストレージノード１００ａ〜１００ｄは、端末装置４００ａから送信されたデータを、それぞれ有するキャッシュメモリ１０２１ａ〜１０２１ｄに対して書き込み、読み込み、および消去できるキャッシュサーバ（図示省略）を実装している。
【０２２３】
このキャッシュサーバにより、ストレージノード１００ａ〜１００ｂは、有するキャッシュメモリが割り当てられている、そのストレージノード以外のストレージノード１００ａ〜１００ｄとの間で、データの送受信を行うとともに、受信したデータを、そのストレージノードが有するキャッシュメモリに書き込み、そのストレージノードが有するキャッシュメモリから読み出したデータを送信する。
【０２２４】
このキャッシュメモリ１０２１ａ〜１０２１ｄは、コントロールノード５００ａ，５００ｂによってストレージノード１００ａ〜１００ｂに割り当てられる。このときキャッシュメモリ１０２１ａ〜１０２１ｂは、そのキャッシュメモリを有するストレージノード以外のストレージノードに対して割り当てられる。
【０２２５】
例えば、キャッシュメモリ１０２１ａは、キャッシュメモリ１０２１ａを有しているストレージノード１００ａに割り当てられることはなく、ストレージノード１００ａ以外のストレージノード１００ｂ〜１００ｄに割り当てられる。また、ストレージノード１００ａには、キャッシュメモリ１０２１ａ以外のキャッシュメモリ、すなわちストレージノード１００ａ以外のストレージノード１００ｂ〜１００ｄが有するキャッシュメモリ１０２１ｂ〜１０２１ｄが割り当てられる。
【０２２６】
また、キャッシュメモリ１０２１ａ〜１０２１ｂは、その割り当てられたストレージノードから送信され、ストレージ装置２００ａ〜２００ｄに書き込まれるデータを記憶してバックアップを行う。
【０２２７】
これにより、例えば、ストレージノード１００ａに対してストレージ装置２００ａおよびキャッシュメモリ１０２１ｂが割り当てられている場合において、ストレージノード１００ａが故障したときにも、既に端末装置４００ａからストレージノード１００ａに送信されているがストレージ装置２００ａに対する書き込みが未だ完了していないデータが、キャッシュメモリ１０２１ｂに対する書き込みが完了していれば、そのデータが失われないことになる。
【０２２８】
このため、キャッシュメモリを、データの書き込み処理を実行するストレージノードに有する場合に比較して、そのストレージノードが故障したときのデータの喪失を防止することができる。
【０２２９】
コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄ、およびストレージ装置２００ａ〜２００ｄを管理するコンピュータである。本実施の形態のコントロールノード５００ａ，５００ｂは、各論理ユニットをストレージノード１００ａ〜１００ｄに割り当てる。さらに、コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄに他のストレージノード１００ａ〜１００ｄが有するキャッシュメモリ１０２１ａ〜１０２１ｄを割り当てる。
【０２３０】
また、コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄからデータの管理に関する情報を取得し、必要に応じて情報を更新する。
具体的には、例えば、コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄに対するストレージ装置２００ａ〜２００ｄおよびキャッシュメモリ１０２１ａ〜１０２１ｄの割り当ての構成を接続状態テーブルの形式で保持している。コントロールノード５００ａ，５００ｂは、起動時に割り当てを行った場合や、故障を検出して再割り当てなどにより割り当ての変更を行った場合には、接続状態テーブルを更新して、最新の割り当ての構成を記録する。
【０２３１】
コントロールノード５００ａ，５００ｂは、信頼性を高めるために、二重化されているとともに、互いに接続されており、相互監視ネットワークを使用して互いの生存確認を行うことによって、故障などの互いの異常を検出可能に構成されている。コントロールノード５００ａ，５００ｂは、一方（例えば、コントロールノード５００ａ）が現用系であって通常時に稼動し、他方（例えば、コントロールノード５００ｂ）が予備系であって通常時は待機している。この待機系のコントロールノード５００ｂは、現用系のコントロールノード５００ａに故障があった場合などに、現用系であるコントロールノード５００ａの処理を受け継いで、コントロールノード５００ａに替わって稼動する。
【０２３２】
コントロールノード５００ａ，５００ｂは、ストレージシステムの起動時に、ストレージ装置２００ａ〜２００ｄおよびキャッシュメモリ１０２１ａ〜１０２１ｄを、各ストレージノード１００ａ〜１００ｄに割り当てる。
【０２３３】
また、コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄの故障、およびキャッシュメモリの故障を検出することができる。コントロールノード５００ａ，５００ｂは、ストレージノード１００ａ〜１００ｄの故障を検出すると、故障したストレージノードに割り当てられていたストレージ装置およびキャッシュメモリを他のストレージノードに新たに割り当てる。
【０２３４】
ストレージ装置２００ａ〜２００ｄは、ＲＡＩＤ５を用いて複数のＨＤＤから構成されたディスクアレイ装置であって、それぞれ論理ユニット（ＬＵ）を有している。ストレージ装置２００ａ〜２００ｄの論理ユニットが割り当てられているストレージノードは、その論理ユニットに対して排他的にアクセスすることができる。
【０２３５】
これらのストレージ装置２００ａ〜２００ｄには、コントロールノード５００ａ，５００ｂによって割り当てられたストレージノード１００ａのみが、ネットワーク５０を通じて排他的にアクセスすることができる。
【０２３６】
なお、ストレージ装置２００ａ〜２００ｄは、ＲＡＩＤ５に限らず、他のＲＡＩＤを用いて構成してもよく、ＲＡＩＤ以外の技術を用いてディスクアレイを構成してもよい。さらに、ストレージ装置２００ａ〜２００ｄは、ディスクアレイを用いずにハードディスク単体で構成してもよく、その他の記憶装置を用いてもよい。
【０２３７】
端末装置４００ａは、ストレージシステムのユーザが操作するコンピュータである。ストレージシステムのユーザは、端末装置４００ａを操作して、ストレージノード１００ａ〜１００ｄにアクセスし、ストレージ装置２００ａ〜２００ｄに記憶されているデータの読み書きを行う。
【０２３８】
次に、このストレージシステムの構成例における通常時およびストレージノードの故障時における割り当ての様子について説明する。図２０は、本実施の形態のストレージシステムの構成例における通常時の割り当ての様子を示す図である。図２１は、本実施の形態のストレージシステムの構成例におけるストレージノードの故障時の割り当ての様子を示す図である。
【０２３９】
図２０および図２１に示すように、ストレージノード１００ａ〜１００ｄは、それぞれキャッシュメモリ１０２１ａ〜１０２１ｄを用いたキャッシュサーバを備えている。また、ストレージ装置２００ａは、論理ユニット２１１ａ，２１１ｂ，２１１ｃ，２１１ｄ（図中のＡ−１〜Ａ−４）を有している。同様に、ストレージ装置２００ｂは、論理ユニット２１１ｂ〜２１４ｂ（図中のＢ−１〜Ｂ４）を有しており、ストレージ装置２００ｃは、論理ユニット２１１ｃ〜２１４ｃ（図中のＣ−１〜Ｃ−４）を有している。
【０２４０】
図２０では、ストレージノード１００ａが、ストレージノード１００ｂのキャッシュサーバが有するキャッシュメモリ１０２１ｂならびにストレージ装置２００ａの論理ユニット２１１ａおよびストレージ装置２００ｂの論理ユニット２１２ｂと接続されている。また、ストレージノード１００ｃが、ストレージノード１００ｄのキャッシュサーバが有するキャッシュメモリ１０２１ｄならびにストレージ装置２００ｂの論理ユニット２１４ｂおよびストレージ装置２００ｂの論理ユニット２１４ｂと接続されている。
【０２４１】
次に、図２１に示すように、ストレージノード１００ａが故障した場合、例えば、現用系であるコントロールノード５００ａによって、ストレージノード１００ａに割り当てられていたキャッシュメモリ１０２１ｂならびにストレージ装置２００ａの論理ユニット２１１ａおよびストレージ装置２００ｂの論理ユニット２１４ｂを、ストレージノード１００ｃに割り当てる。これにより、例えば、端末装置４００ａが、ストレージ装置２００ｂの論理ユニット２１４ｂに記憶されているデータに対してアクセスするときは、ストレージノード１００ｃがストレージノード１００ａの処理を引き継いで、ストレージ装置２００ｂに対してデータの読み書きの処理を行う。論理ユニット２１１ａについても同様である。
【０２４２】
次に、このストレージシステムの構成例におけるストレージノードの故障前および故障後の接続状態の変化について、接続状態テーブルを用いて説明する。図２２は、本実施の形態のストレージシステムの構成例における通常時およびストレージノードの故障時の接続状態テーブルを示す図である。
【０２４３】
図２２（Ａ）に示す接続状態テーブル５６０、および図２２（Ｂ）に示す接続状態テーブル５７０は、ストレージシステムにおけるストレージノード、ストレージ装置およびキャッシュメモリの接続状態を示す接続状態情報を格納するテーブルであり、現用系であるコントロールノード５００ａおよび待機系であるコントロールノード５００ｂによって作成および管理されている。接続状態テーブル５６０，５７０に格納される接続状態情報は、現用系であるコントロールノード５００ａによって、起動時および故障などによる割り当ての変更時に適宜更新される。また、待機系であるコントロールノード５００ｂにも、同様のテーブルが格納され、適宜更新される。ここで、図２２において、ＳＮ−Ａ〜ＳＮ−Ｃは、それぞれストレージノード１００ａ〜１００ｃを示している。また、ＬＵ−Ａ−１は、論理ユニット２１１ａを示す。同様に、ＬＵ−Ｂ−２は、論理ユニット２１２ｂを示し、ＬＵ−Ｂ−４は、論理ユニット２１４ｂを示し、さらにＬＵ−Ｃ１は、論理ユニット２１１ｃを示している。
【０２４４】
ここで、接続状態テーブル５６０，５７０には、ストレージシステムに配置されている各ストレージノードの名称を示す項目である“ストレージノード名”、ストレージシステムに配置されているストレージ装置が有する各論理ユニットの名称を示す項目である“ストレージ名”、ストレージシステムが備えているキャッシュメモリの名称を示す項目である“キャッシュデバイス名”が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、ストレージノードに対して割り当てられている論理ユニットおよびキャッシュメモリを示す接続状態情報を構成する。
【０２４５】
図２２（Ａ）における接続状態テーブル５６０の一番上の行は、ストレージノード１００ａ（ストレージノード名“ＳＮ−Ａ”）に対して、論理ユニット２１１ａ（論理ユニット名“ＬＵ−Ａ−１”）およびキャッシュメモリ１０２１ｂ（キャッシュデバイス名“ＣＡＣＨＥ−Ｂ”）が割り当てられていることを示している。同様に、接続状態テーブルの上から二番目の行は、ストレージノード１００ａ（ストレージノード名“ＳＮ−Ａ”）に対して、論理ユニット２１２ｂ（論理ユニット名“ＬＵ−Ｂ−２”）およびキャッシュメモリ１０２１ｂ（キャッシュデバイス名“ＣＡＣＨＥ−Ｂ”）が割り当てられていることを示している。
【０２４６】
また、図２２（Ｂ）における接続状態テーブル５７０の一番上の行は、ストレージノード１００ｃ（ストレージノード名“ＳＮ−Ｃ”）に対して、論理ユニット２１１ａ（論理ユニット名“ＬＵ−Ａ−１”）およびキャッシュメモリ１０２１ｂ（キャッシュデバイス名“ＣＡＣＨＥ−Ｂ”）が割り当てられていることを示している。同様に、図２２（Ｂ）に図示した中における上から二番目の行は、ストレージノード１００ｃ（ストレージノード名“ＳＮ−Ｃ”）に対して、論理ユニット２１２ｂ（論理ユニット名“ＬＵ−Ｂ−２”）およびキャッシュメモリ１０２１ｂ（キャッシュデバイス名“ＣＡＣＨＥ−Ｂ”）が割り当てられていることを示している。
【０２４７】
この図２２（Ａ），（Ｂ）に示すように、ストレージノード１００ａの故障前には、論理ユニット２１１ａ，２１２ｂおよびキャッシュメモリ１０２１ｂがストレージノード１００ａに割り当てられていたことが、接続状態テーブル５６０に対して、図２２（Ａ）に示すように設定される。そして、ストレージノード１００ａの故障後には、ストレージノード１００ｃに割り当てられたことが、接続状態テーブル５７０に対して、図２２（Ｂ）に示すように反映される。
【０２４８】
このようなストレージシステムを用いることで、ストレージノード１００ａ〜１００ｄの故障時において、ストレージ装置２００ａ〜２００ｄに書き込まれていないデータは、キャッシュメモリ１０２１ａ〜１０２１ｂのバックアップによって、他の正常なストレージノードに引き継がれて、ストレージ装置２００ａ〜２００ｄに書き込まれるので、データの喪失を防止することができる。また、それ以外の故障したストレージノードにより既にストレージ装置２００ａ〜２００ｄに書き込まれたデータは、故障を検出したコントロールノード５００ａ，５００ｂによるストレージ装置２００ａ〜２００ｄおよびキャッシュメモリ１０２１ａ〜１０２１ｄの新たな割り当てによって、他の正常なストレージノードに引き継がれるので、ストレージシステムの稼動を維持することができる。
【０２４９】
また、通常時のキャッシュメモリ１０２１ａ〜１０２１ｂによるバックアップでは、ストレージノードに非同期的に書き込むことによって、通常時の端末装置４００ａからのデータの書き込みは、キュッシュメモリ１０２１ｂに一時的に記憶された後、ストレージ装置２００ａへの書き込みを待たずに端末装置４００ａに応答されるので、バックアップを取っているにもかかわらず端末装置４００ａ〜４００ｃに対して迅速に応答できる。
【０２５０】
なお、本実施の形態のストレージノード１００ａ〜１００ｄは、ストレージ装置２００ａ〜２００ｄに対する書き込みデータのバックアップ、ならびに新たに割り当てられたストレージ装置およびキャッシュメモリの管理を引き継ぐとともに、自らストレージ装置２００ａ〜２００ｄへの、データの通常の書き込み処理を行う。しかし、これに限らず、ストレージ装置への、データの通常の書き込み処理は他の装置が行い、ストレージノード１００ａ〜１００ｄは、ストレージ装置２００ａ〜２００ｄに対する通常の書き込み処理を行わずに、データの書き込みのバックアップ、ならびに新たに割り当てられたストレージ装置およびキャッシュメモリの管理の引き継ぎのみを行ってもよい。
【０２５１】
＜本実施の形態の変形例＞
次に、本実施の形態の変形例について図面を参照して説明する。上記の実施の形態との相違点について、特に図１９に示した構成例との相違点を中心に説明し、同様の事項については同一の符号を用いるとともに説明を省略する。本実施の形態の変形例のストレージシステムは、ストレージ装置を二種類用意し、使い分けている点が異なる。すなわち、データを格納するためのメインストレージ装置と、メインストレージ装置に対するデータの書き込みをバックアップするキャッシュデバイスとして、キャッシュメモリに替えてバックアップストレージ装置とを用いている。また、メインストレージ装置およびバックアップストレージ装置を、ファイバ・チャネル（ＦＣ：Fibre Channel）を用いて接続してストレージ・エリア・ネットワーク（ＳＡＮ：Storage Area Network）が構成されている点で異なる。図２３は、本実施の形態の変形例におけるストレージシステムの構成例を示す図である。
【０２５２】
図２３に示す本実施の形態の変形例におけるストレージシステムは、複数（例えば、４個）のストレージノード２１００ａ，２１００ｂ，２１００ｃ，２１００ｄ、少なくとも１個（例えば、２個）のコントロールノード５００ａ，５００ｂ、および少なくとも１個（例えば、１個）の端末装置４００ａが、ＩＰスイッチ２７００ａ，２７００ｂを通じて、ネットワーク６０によって相互に接続されている。
【０２５３】
また、複数（例えば、４個）のメインストレージ装置２２００ａ，２２００ｂ，２２００ｃ，２２００ｄ、および複数（例えば、４個）のバックアップストレージ装置２６００ａ，２６００ｂ，２６００ｃ，２６００ｄが、ＦＣスイッチ２８００ａ，２８００ｂを通じて、ファイバ・チャネルによって相互に接続され、ＳＡＮ７０が構成されている。ストレージノード２１００ａは、ＳＡＮ７０のＦＣスイッチ２８００ａ，２８００ｂに接続されている。なお、図２３のストレージノード２１００ｂ〜２１００ｄについては、図には結線は省略して図示していないが、ストレージノード２１００ａと同様に、それぞれがＳＡＮ７０のＦＣスイッチ２８００ａ，２８００ｂに接続されている。
【０２５４】
ストレージノード２１００ａ〜２１００ｄ、コントロールノード５００ａ，５００ｂ、端末装置４００ａは、コンピュータによって構成されており、ＩＰ（Internet Protocol）を用いて構成されたネットワーク６０によって相互に接続されている。
【０２５５】
ストレージノード２１００ａ〜２１００ｄ、コントロールノード５００ａ，５００ｂ、および端末装置４００ａは、それぞれ図示しないネットワークインタフェースを２個ずつ有しており、この２個のネットワークインタフェースが、それぞれＩＰスイッチ２７００ａ，２７００ｂと接続することにより、パスが二重化されている。
【０２５６】
また、ストレージノード２１００ａ〜２１００ｄは、それぞれ図示しないＨＢＡ（ホスト・バス・アダプタ）を２個ずつ有しており、この２個のＨＢＡが、それぞれＦＣスイッチ２８００ａ，２８００ｂと接続することにより、ストレージノード２１００ａ〜２１００ｄと、ＳＡＮ６０との接続が二重化されている。
【０２５７】
ＨＢＡは、ストレージノード２１００ａ〜２１００ｄに対してＳＡＮ７０を接続するためのインタフェースコントローラであり、本実施の形態では、ファイバ・チャネルを介して、メインストレージ装置２２００ａ〜２２００ｄ、バックアップストレージ装置２６００ａ〜２６００ｄなどから構成されるＳＡＮ７０とストレージノード２１００ａ〜２１００ｄとが接続される。
【０２５８】
これらによって、ストレージノード２１００ａ〜２１００ｄは、ＳＡＮ７０を構成するメインストレージ装置２２００ａ〜２２００ｄ、およびバックアップストレージ装置２６００ａ〜２６００ｄとデータの読み書きを行うことができる。具体的には、ストレージノード２１００ａ〜２１００ｄは、コントロールノード５００ａ，５００ｂによって割り当てられたメインストレージ装置２２００ａ〜２２００ｄの論理ユニットに格納されたデータを管理し、管理しているデータを、ネットワーク６０を通じて端末装置４００ａに提供する。
【０２５９】
また、ストレージノード２１００ａ〜２１００ｄは、端末装置４００ａに対して、それぞれのストレージノード２１００ａ〜２１００ｃが管理するメインストレージ装置２２００ａ〜２２００ｄに格納されているデータを利用した情報処理のサービスを提供する。すなわち、ストレージノード２１００ａ〜２１００ｄは、ネットワーク６０を通じて、端末装置４００ａからの要求に応答して所定のプログラムを実行し、端末装置４００ａが要求するデータの読み書きおよびデータの送受信を行う。
【０２６０】
すなわち、ストレージノード２１００ａ〜２１００ｄは、端末装置４００ａのデータの読み出し要求を、ネットワーク６０を通じて受信すると、そのストレージノードが有するＨＢＡ、およびＦＣスイッチ２８００ａ，２８００ｂを通じて、メインストレージ装置２２００ａ〜２２００ｄのうち割り当てられているストレージ装置から、要求されたデータを読み込んで、読み出し要求を行った端末装置４００ａに応答する。また、ストレージノード２１００ａ〜２１００ｂは、端末装置４００ａの書き込み要求を、ネットワーク６０を通じて受信すると、ファイバ・チャネルおよびＦＣスイッチ２８００ａ，２８００ｂを通じて、割り当てられているメインストレージ装置２２００ａ〜２２００ｄにデータの書き込みを行う。次に、データの書き込みが完了すると、ストレージノード１００ａ〜１００ｄは、端末装置４００ａに書き込みが完了した旨を応答する。
【０２６１】
コントロールノード５００ａ，５００ｂは、ストレージノード２１００ａ〜２１００ｄ、メインストレージ装置２２００ａ〜２２００ｄ、およびバックアップストレージ装置２６００ａ〜２６００ｄを管理するコンピュータである。本実施の形態のコントロールノード５００ａ，５００ｂは、メインストレージ装置２２００ａ〜２２００ｄの各論理ユニットをストレージノード１００ａ〜１００ｄに割り当てる。さらに、コントロールノード５００ａ，５００ｂは、メインストレージ装置２２００ａ〜２２００ｄに対するデータの書き込み時においてデータを一時的に記憶してバックアップさせるために、バックアップストレージ装置２６００ａ〜２６００ｄの各論理ユニットをストレージノード１００ａ〜１００ｄに割り当てる。
【０２６２】
また、コントロールノード５００ａ，５００ｂは、ストレージノード２１００ａ〜２１００ｄからデータの管理に関する情報を取得し、必要に応じて情報を更新する。
具体的には、例えば、コントロールノード５００ａ，５００ｂは、ストレージノード２１００ａ〜２１００ｄに対するメインストレージ装置２２００ａ〜２２００ｄおよびバックアップストレージ装置２６００ａ〜２６００ｄの割り当ての構成を接続状態テーブルの形式で保持している。コントロールノード５００ａ，５００ｂは、起動時に割り当てを行った場合や、故障を検出して再割り当てなどにより割り当ての変更を行った場合には、接続状態テーブルを更新して、最新の割り当ての構成を記録する。
【０２６３】
コントロールノード５００ａ，５００ｂは、信頼性を高めるために、二重化されているとともに、互いに接続されており、相互監視ネットワークを使用して互いの生存確認を行うことによって、故障などの互いの異常を検出可能に構成されている。コントロールノード５００ａ，５００ｂは、一方（例えば、コントロールノード５００ａ）が現用系であって通常時に稼動し、他方（例えば、コントロールノード５００ｂ）が予備系であって通常時は待機している。この待機系のコントロールノード５００ｂは、現用系のコントロールノード５００ａに故障があった場合などに、現用系であるコントロールノード５００ａの処理を受け継いで、コントロールノード５００ａに替わって稼動する。
【０２６４】
コントロールノード５００ａ，５００ｂは、ストレージシステムの起動時に、メインストレージ装置２２００ａ〜２２００ｄおよびバックアップストレージ装置２６００ａ〜２６００ｄを、各ストレージノード１００ａ〜１００ｄに割り当てる。
【０２６５】
また、コントロールノード５００ａ，５００ｂは、ストレージノード２１００ａ〜２１００ｄの故障、およびバックアップストレージ装置２６００ａ〜２６００ｄの故障を検出することができる。コントロールノード５００ａ，５００ｂは、ストレージノード２１００ａ〜２１００ｄの故障を検出すると、故障したストレージノードに割り当てられていたストレージ装置および高速ストレージ装置を、他のストレージノードに新たに割り当てる。
【０２６６】
端末装置４００ａは、ストレージシステムのユーザが操作するコンピュータである。ストレージシステムのユーザは、端末装置４００ａを操作して、ストレージノード１００ａ〜１００ｄにアクセスし、ストレージ装置２００ａ〜２００ｄに記憶されているデータの読み書きを行う。
【０２６７】
ＳＡＮ７０は、メインストレージ装置２２００ａ〜２２００、バックアップストレージ装置２６００ａ〜２６００ｄなどの記憶装置同士の間をファイバ・チャネルなどの大容量通信路で結んだ、データの高速アクセスが可能なネットワークである。ＳＡＮ７０では、ＳＡＮ７０にアクセスするコンピュータに処理負荷をほとんど与えることなくデータの転送を実行できるので、ＳＡＮ７０を通信路に用いたサーバ連携を行うことにより、大量のデータの転送を、効率よく行わせることができる。
【０２６８】
メインストレージ装置２２００ａ〜２２００ｄは、ＲＡＩＤ５を用いて、内蔵する複数のＨＤＤによって構成されたディスクアレイ装置である。また、メインストレージ装置２２００ａ〜２２００ｄは、それぞれ論理ユニット（ＬＵ）を有している。メインストレージ装置２２００ａ〜２２００ｄは、ＳＡＮ７０を構成するとともに、ｉＳＣＳＩによって、ストレージノード２１００ａ〜２１００ｄと接続されている。メインストレージ装置２２００ａ〜２２００ｄの論理ユニット、およびバックアップストレージ装置２６００ａ〜２６００ｄを割り当てられているストレージノードは、それらの論理ユニットに対して排他的にアクセスすることができる。
【０２６９】
また、メインストレージ装置２２００ａ〜２２００ｄには、ＳＡＴＡ（Serial ATA）などによる大容量ＨＤＤを用いることが好ましい。これらのメインストレージ装置２２００ａ〜２２００ｄには、コントロールノード５００ａ，５００ｂによって割り当てられたストレージノード２１００ａのみが排他的にアクセスすることができる。
【０２７０】
本実施の形態では、メインストレージ装置２２００ａ〜２２００ｄは、ＲＡＩＤ５のディスク管理サービスを提供する。なお、メインストレージ装置２２００ａ〜２２００ｄは、ＲＡＩＤ５に限らず、他のＲＡＩＤを用いて構成してもよく、ＲＡＩＤ以外の技術を用いてディスクアレイを構成してもよい。さらに、メインストレージ装置２２００ａ〜２２００ｄは、ディスクアレイを用いずにハードディスク単体で構成してもよく、その他の記憶装置を用いてもよい。
【０２７１】
メインストレージ装置２２００ａ〜２２００ｄは、ファイバ・チャネルと接続するファイバ・チャネル・インタフェースを２個有しており、この２個のファイバ・チャネル・インタフェースのそれぞれが、各ＦＣスイッチ２８００ａ，２８００ｂと接続されている。
【０２７２】
バックアップストレージ装置２６００ａ〜２６００ｄは、ファイバ・チャネルによって複数のディスク装置が相互に接続されて構成されているＲＡＩＤ５のディスクアレイ装置であって、それぞれが論理ユニット（ＬＵ）を有している。また、バックアップストレージ装置２６００ａ〜２６００ｄには、半導体ディスクやＳＡＳ（Serial Attached SCSI）などの高速なディスクドライブを使用することが好ましい。これにより、高速なディスクアレイ装置を構成することができ、ストレージシステムのデータのバックアップストレージ装置２６００ａ〜２６００ｄによるバックアップ時やリカバリ時の動作速度が向上する。
【０２７３】
バックアップストレージ装置２６００ａ〜２６００ｄは、ファイバ・チャネルと接続するファイバ・チャネル・インタフェースを２個有しており、この２個のファイバ・チャネル・インタフェースのそれぞれが、各ＦＣスイッチ２８００ａ，２８００ｂと接続されている。
【０２７４】
このバックアップストレージ装置２６００ａ〜２６００ｄは、コントロールノード５００ａ，５００ｂによってストレージノード２１００ａ〜２１００ｂに割り当てられる。また、バックアップストレージ装置２６００ａ〜２６００ｄは、その割り当てられたストレージノードから送信され、メインストレージ装置２２００ａ〜２２００ｄに書き込まれるデータを記憶してバックアップを行う。
【０２７５】
これにより、例えば、ストレージノード２１００ａに対してメインストレージ装置２２００ａおよびバックアップストレージ装置２６００ａが割り当てられている場合において、ストレージノード２１００ａが故障したときにも、既に端末装置４００ａからストレージノード２１００ａに送信されているがメインストレージ装置２２００ａに対する書き込みが未だ完了していないデータが、バックアップストレージ装置２６００ａに対する書き込みが完了していれば、そのデータが失われないことになる。
【０２７６】
このため、データのストレージ装置への書き込み時に、データを一時的にバックアップするためのキャッシュメモリを、データの書き込み処理を実行するストレージノードに有する場合に比較して、そのストレージノードが故障したときのデータの喪失を防止することができる。
【０２７７】
なお、本実施の形態の変形例における、バックアップストレージ装置２６００ａ〜２６００ｄは、ＲＡＩＤ５に限らず、他のＲＡＩＤを用いて構成してもよく、ＲＡＩＤ以外の技術を用いてディスクアレイを構成してもよい。さらに、バックアップストレージ装置２６００ａ〜２６００ｄは、ディスクアレイを用いずにハードディスク単体で構成してもよく、その他の記憶装置を用いてもよい。
【０２７８】
また、本実施の形態の変形例におけるバックアップストレージ装置２６００ａ〜２６００ｄに替えて、キャッシュメモリなどのその他のキャッシュデバイスを用いてもよい。このとき、本実施の形態のキャッシュメモリ１０２１ａ〜１０２１ｄのように、ストレージノード１００ａ〜１００ｄが有するように構成してもよい。
【０２７９】
また、本実施の形態の変形例では、メインストレージ装置２２００ａ〜２２００ｄおよびバックアップストレージ装置２６００ａ〜２６００ｄによってＳＡＮ７０を構成したが、これに限らず、メインストレージ装置２２００ａ〜２２００ｄおよびバックアップストレージ装置２６００ａ〜２６００ｄを、本実施の形態のように、ＳＡＮを用いずＩＰによるネットワークでストレージノード２１００ａ〜２１００ｄと接続してもよい。さらに、メインストレージ装置２２００ａ〜２２００ｄおよびバックアップストレージ装置２６００ａ〜２６００ｄについて、メインストレージ装置２２００ａ〜２２００ｄからなるＳＡＮ、およびバックアップストレージ装置２６００ａ〜２６００ｄからなるＳＡＮのように、それぞれ個別にＳＡＮを構成してもよく、メインストレージ装置２２００ａ〜２２００ｄからなるＳＡＮ、またはバックアップストレージ装置２６００ａ〜２６００ｄからなるＳＡＮのうち、いずれか一方のみをＳＡＮとして構成してもよい。
【０２８０】
このような構成のストレージシステムを用いることによっても、上記の実施の形態と同等の作用および効果を実現することができる。
以上、本発明のストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法を、図示の実施の形態に基づいて説明したが、上記については単に本発明の原理を示すものである。本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、さらに、多数の変形、変更が当業者にとって可能であり、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされ、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や行程が付加されてもよい。また、本発明は前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０２８１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージノード１００ａ〜１００ｄ、管理ノード３００、端末装置４００ａ〜４００ｃ、およびコントロールノード５００ａ，５００ｂが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０２８２】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc - Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto - Optical disk）などがある。
【０２８３】
上記プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータに格納しておき、ネットワークを通じて、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２８４】
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム若しくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２８５】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  データをネットワークで接続された複数のストレージ装置に分散して記憶するストレージシステムにおけるストレージ装置を管理するストレージ管理装置において、
割り当てられた前記ストレージ装置と、割り当てられた一時記憶手段とを管理する管理手段を有し、
前記管理手段は、
前記ストレージ装置に対する前記データの書き込みの際には、当該書き込みが完了する前に予め割り当てられた前記一時記憶手段に当該データを記憶させるバックアップ手段と、
前記ストレージ装置および前記一時記憶手段が割り当てられた際に、前記一時記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを当該ストレージ装置に書き込む引継手段とを有することを特徴とするストレージ管理装置。
【０２８６】
（付記２）  前記ストレージ装置および前記一時記憶手段は、前記ストレージ管理装置を管理することによって前記ストレージシステムを制御するストレージシステム制御装置によって割り当てられ、
前記引継手段は、前記ストレージシステム制御装置によって前記ストレージ装置および前記一時記憶手段が割り当てられた際に、前記一時記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを当該ストレージ装置に書き込むことを特徴とする付記１記載のストレージ管理装置。
【０２８７】
（付記３）  前記バックアップ手段は、前記データの前記ストレージ装置に対する書き込みが完了した後に、前記一時記憶手段に書き込んだ当該データを消去することを特徴とする付記２記載のストレージ管理装置。
【０２８８】
（付記４）  前記引継手段は、前記ストレージ装置および前記一時記憶手段が割り当てられた際に、前記一時記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを当該一時記憶手段から読み出して当該ストレージ装置に書き込むことを特徴とする付記２記載のストレージ管理装置。
【０２８９】
（付記５）  前記ストレージ装置に前記データを書き込む際に、書き込みが完了していない前記データを記憶する内部記憶手段を備え、
前記バックアップ手段は、さらに、前記書き込みが完了する前に前記内部記憶手段に記憶させ、
前記引継手段は、前記一時記憶手段が割り当てられた際に、前記内部記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを前記内部記憶手段から読み出して当該ストレージ装置に書き込むことを特徴とする付記２記載のストレージ管理装置。
【０２９０】
（付記６）  前記バックアップ手段は、前記データの前記ストレージ装置に対する書き込みが完了した後に、前記内部記憶手段に書き込んだ当該データを消去することを特徴とする付記５記載のストレージ管理装置。
【０２９１】
（付記７）  前記バックアップ手段は、さらに、前記データの前記一時記憶手段に対する書き込みが完了した後であって、かつ、前記データの前記ストレージ装置に対する書き込みが完了する前に、前記ストレージ装置に対する書き込みが完了したことを通知する書き込み完了通知を出力することを特徴とする付記２記載のストレージ管理装置。
【０２９２】
（付記８）  前記バックアップ手段は、前記ストレージシステム制御装置の指示に基づいて、前記ストレージ装置に対する前記データの書き込みの際に、当該書き込みが完了する前に、割り当てられた前記一時記憶手段に当該データを記憶させる通常モードと、前記一時記憶手段に前記データを記憶させることなく前記ストレージ装置に対して前記データを書き込む同期モードとに切り替え可能であることを特徴とする付記２記載のストレージ管理装置。
【０２９３】
（付記９）  前記一時記憶手段を、内部に有することを特徴とする付記２記載のストレージ管理装置。
（付記１０）  前記一時記憶手段は、当該一時記憶手段を備えている前記ストレージ管理装置以外の前記ストレージ管理装置に割り当てられることを特徴とする付記９記載のストレージ管理装置。
【０２９４】
（付記１１）  前記一時記憶手段は、キャッシュメモリであることを特徴とする付記９記載のストレージ管理装置。
（付記１２）  データを複数のストレージ装置に分散して記憶するストレージシステムを制御するストレージシステム制御装置において、
前記ストレージ装置を管理するとともに前記ストレージ装置に対する前記データの書き込みの際には、当該書き込みが完了する前に予め割り当てられた一時記憶手段に当該データを記憶させることが可能なストレージ管理装置を管理することによって当該ストレージシステムを制御し、
前記ストレージ管理装置の故障を検出する故障検出手段と、
前記ストレージ管理装置に前記ストレージ装置および前記一時記憶手段を割り当てる割当手段と、を有し、
前記割当手段は、前記故障検出手段によって前記ストレージ管理装置の故障が検出された場合、前記故障検出手段によって故障が検出された前記ストレージ管理装置に割り当てられていた前記ストレージ装置および前記一時記憶手段を、他の前記ストレージ管理装置に割り当てることを特徴とするストレージシステム制御装置。
【０２９５】
（付記１３）  前記故障検出手段は、さらに、前記一時記憶手段の故障を検出し、
前記割当手段は、さらに、前記故障検出手段によって前記一時記憶手段の故障が検出された場合、前記故障検出手段によって故障が検出された前記一時記憶手段が割り当てられていた前記ストレージ管理装置に他の前記一時記憶手段を割り当てることを特徴とする付記１２記載のストレージシステム制御装置。
【０２９６】
（付記１４）  前記一時記憶手段は、前記ストレージ管理装置の内部に設けられ、
前記割当手段は、前記一時記憶手段を有する前記ストレージ管理装置に対して前記ストレージ管理装置に設けられた前記一時記憶手段を割り当てる際、当該ストレージ管理装置に、当該ストレージ管理装置以外の前記ストレージ管理装置が備える前記一時記憶手段を割り当てることを特徴とする付記１２記載のストレージシステム制御装置。
【０２９７】
（付記１５）  コンピュータに、データをネットワークで接続された複数のストレージ装置に分散して記憶するストレージシステムにおけるストレージ装置の管理処理を実行させるストレージ管理プログラムにおいて、
前記コンピュータを、
割り当てられた前記ストレージ装置と、割り当てられた一時記憶手段とを管理する管理手段として機能させ、
前記管理手段は、
前記ストレージ装置に対する前記データの書き込みの際には、当該書き込みが完了する前に予め割り当てられた前記一時記憶手段に当該データを記憶させるバックアップ手段、
前記ストレージ装置および前記一時記憶手段が割り当てられた際に、前記一時記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを当該ストレージ装置に書き込む引継手段、
として機能させることを特徴とするストレージ管理プログラム。
【０２９８】
（付記１６）  前記引継手段は、前記ストレージ管理装置を管理することによって前記ストレージシステムを制御するストレージシステム制御装置によって前記ストレージ装置および前記一時記憶手段が割り当てられた際に、前記一時記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを当該ストレージ装置に書き込むことを特徴とする付記１５記載のストレージ管理プログラム。
【０２９９】
（付記１７）  前記バックアップ手段は、前記データの前記ストレージ装置に対する書き込みが完了した後に、前記一時記憶手段に書き込んだ当該データを消去することを特徴とする付記１６記載のストレージ管理プログラム。
【０３００】
（付記１８）  前記引継手段は、前記ストレージ装置および前記一時記憶手段が割り当てられた際に、前記一時記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを当該一時記憶手段から読み出して当該ストレージ装置に書き込むことを特徴とする付記１６記載のストレージ管理プログラム。
【０３０１】
（付記１９）  前記バックアップ手段は、さらに、ストレージ管理装置に備えられた前記書き込みが完了する前に前記ストレージ装置に前記データを書き込む際に書き込みが完了していない前記データを記憶する内部記憶手段に記憶させ、
前記引継手段は、前記一時記憶手段が割り当てられた際に、前記内部記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを前記内部記憶手段から読み出して当該ストレージ装置に書き込むことを特徴とする付記１６記載のストレージ管理プログラム。
【０３０２】
（付記２０）  前記バックアップ手段は、前記データの前記ストレージ装置に対する書き込みが完了した後に、前記内部記憶手段に書き込んだ当該データを消去することを特徴とする付記１９記載のストレージ管理プログラム。
【０３０３】
（付記２１）  前記バックアップ手段は、さらに、前記データの前記一時記憶手段に対する書き込みが完了した後であって、かつ、前記データの前記ストレージ装置に対する書き込みが完了する前に、前記ストレージ装置に対する書き込みが完了したことを通知する書き込み完了通知を出力することを特徴とする付記１９記載のストレージ管理プログラム。
【０３０４】
（付記２２）  データをネットワークで接続された複数のストレージ装置に分散して記憶するストレージシステムにおいて、
割り当てられた前記ストレージ装置と、割り当てられた一時記憶手段とを管理する管理手段を有するストレージ管理装置と、
前記ストレージ管理装置を管理することによって当該ストレージシステムを制御するストレージシステム制御装置とを有し、
前記ストレージシステム制御装置は、前記ストレージ管理装置に前記ストレージ装置および前記一時記憶手段を割り当てる割当手段を有し、
前記管理手段は、
前記ストレージ装置に対する前記データの書き込みの際には、当該書き込みが完了する前に予め割り当てられた前記一時記憶手段に当該データを記憶させるバックアップ手段と、
前記ストレージ装置および前記一時記憶手段が割り当てられた際に、前記一時記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを当該ストレージ装置に書き込む引継手段とを有することを特徴とするストレージシステム。
【０３０５】
（付記２３）  前記ストレージ制御手段は、さらに、前記ストレージ管理装置の故障を検出する故障検出手段を有し、
前記割当手段は、前記故障検出手段によって前記ストレージ管理装置の故障が検出された場合、前記故障検出手段によって故障が検出された前記ストレージ管理装置に割り当てられていた前記ストレージ装置および前記一時記憶手段を、他の前記ストレージ管理装置に割り当て、
前記引継手段は、前記ストレージシステム制御装置によって前記ストレージ装置および前記一時記憶手段が割り当てられた際に、前記一時記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを当該ストレージ装置に書き込むことを特徴とする付記２２記載のストレージシステム。
【０３０６】
（付記２４）  前記故障検出手段は、さらに、前記一時記憶手段の故障を検出し、
前記割当手段は、さらに、前記故障検出手段によって前記一時記憶手段の故障が検出された場合、前記故障検出手段によって故障が検出された前記一時記憶手段が割り当てられていた前記ストレージ管理装置に新たに正常な他の前記一時記憶手段を割り当てることを特徴とする付記２３記載のストレージシステム。
【０３０７】
（付記２５）  前記バックアップ手段は、前記ストレージシステム制御装置の指示に基づいて、前記ストレージ装置に対する前記データの書き込みの際に、当該書き込みが完了する前に、割り当てられた前記一時記憶手段に当該データを記憶させる通常モードと、前記一時記憶手段に前記データを記憶させることなく前記ストレージ装置に対して前記データを書き込む同期モードとに切り替え可能であり、
前記故障検出手段は、さらに、前記一時記憶手段の故障を検出した際には前記バックアップ手段に対して前記同期モードに切り替えるように指示する一方、前記バックアップ手段の前記同期モードへの切り替えが完了した際には前記バックアップ手段に対して新たに正常な前記一時記憶手段を割り当てるとともに前記バックアップ手段に対して前記通常モードに切り替えるように指示することを特徴とする付記２４記載のストレージシステム。
【０３０８】
（付記２６）  前記引継手段は、前記一時記憶手段から読み出した前記データの前記ストレージ装置に対する書き込みが完了した後に、前記一時記憶手段から当該データを消去することを特徴とする付記２３記載のストレージシステム。
【０３０９】
（付記２７）  前記引継手段は、前記ストレージ装置および前記一時記憶手段が割り当てられた際に、前記一時記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを当該一時記憶手段から読み出して当該ストレージ装置に書き込むことを特徴とする付記２３記載のストレージシステム。
【０３１０】
（付記２８）  前記ストレージ管理装置は、前記ストレージ装置に前記データを書き込む際に、書き込みが完了していない前記データを記憶する内部記憶手段を備え、
前記バックアップ手段は、さらに、前記書き込みが完了する前に前記内部記憶手段に記憶させ、
前記引継手段は、前記一時記憶手段が割り当てられた際に、前記内部記憶手段に記憶されているが前記ストレージ装置に書き込まれていないデータが存在する場合には、当該データを前記内部記憶手段から読み出して当該ストレージ装置に書き込むことを特徴とする付記２４記載のストレージシステム。
【０３１１】
（付記２９）  前記バックアップ手段は、前記データの前記ストレージ装置に対する書き込みが完了した後に、前記内部記憶手段に書き込んだ当該データを消去することを特徴とする付記２８記載のストレージシステム。
【０３１２】
（付記３０）  前記バックアップ手段は、さらに、前記データの前記一時記憶手段に対する書き込みが完了した後であって、かつ、前記データの前記ストレージ装置に対する書き込みが完了する前に、前記ストレージ装置に対する書き込みが完了したことを通知する書き込み完了通知を出力することを特徴とする付記２４記載のストレージシステム。
【０３１３】
（付記３１）  前記ストレージ装置は、ディスクアレイ装置であることを特徴とする付記２４記載のストレージシステム。
（付記３２）  前記ストレージ管理装置は、前記一時記憶手段を内部に有することを特徴とする付記２４記載のストレージシステム。
【０３１４】
（付記３３）  前記割当手段は、前記一時記憶手段を有する前記ストレージ管理装置に対して前記ストレージ管理装置に設けられた前記一時記憶手段を割り当てる際、当該ストレージ管理装置に、当該ストレージ管理装置以外の前記ストレージ管理装置が備える前記一時記憶手段を割り当てることを特徴とする付記３２記載のストレージシステム。
【０３１５】
（付記３４）  前記一時記憶手段は、キャッシュメモリであることを特徴とする付記２４記載のストレージシステム。
（付記３５）  前記一時記憶手段は、割り当てられるストレージ装置より高速で読み書き可能なストレージ装置であることを特徴とする付記２４記載のストレージシステム。
【図面の簡単な説明】
【０３１６】
【図１】本実施の形態の概要を示す図である。
【図２】本実施の形態のシステム構成を示す図である。
【図３】ストレージノードのハードウェア構成を示す図である。
【図４】ストレージノードの機能を示すブロック図である。
【図５】接続状態テーブルのデータ構造を示す図である。
【図６】ストレージシステムの起動時の割り当て状態の一例を示す図である。
【図７】ストレージノードの故障時における割り当て状態の一例を示す図である。
【図８】キャッシュメモリの故障時における割り当て状態の一例を示す図である。
【図９】ストレージノードの故障時における接続状態テーブルの更新を示す図である。
【図１０】キャッシュメモリの故障時における接続状態テーブルの更新を示す図である。
【図１１】ストレージシステムの起動時における割り当ての処理の手順を示すシーケンス図である。
【図１２】通常時における書き込みの処理の手順を示すシーケンス図である。
【図１３】キャッシュメモリに空きがない場合における書き込みの処理の手順を示すシーケンス図である。
【図１４】ストレージノードの故障時における割り当ての処理の手順を示すシーケンス図である。
【図１５】キャッシュメモリの故障時における割り当ての処理の手順を示すシーケンス図である。
【図１６】通常モードから同期モードに切り替える処理の手順を示すシーケンス図である。
【図１７】ストレージノードによる同期書き込みの処理の手順を示すシーケンス図である。
【図１８】同期モードから通常モードに切り替える処理の手順を示すシーケンス図である。
【図１９】本実施の形態のストレージシステムの構成例を示す図である。
【図２０】本実施の形態のストレージシステムの構成例における通常時の割り当ての様子を示す図である。
【図２１】本実施の形態のストレージシステムの構成例におけるストレージノードの故障時の割り当ての様子を示す図である。
【図２２】本実施の形態のストレージシステムの構成例における通常時およびストレージノードの故障時の接続状態テーブルを示す図である。
【図２３】本実施の形態の変形例におけるストレージシステムの構成例を示す図である。
【符号の説明】
【０３１７】
１  ストレージ管理装置
２  ストレージ装置
３  一時記憶手段
４  端末装置
１０  管理手段
１０ａ  バックアップ手段
１０ｂ  引継手段
【図１】
0004480756.tif 000002
【図２】
0004480756.tif 000003
【図３】
0004480756.tif 000004
【図４】
0004480756.tif 000005
【図５】
0004480756.tif 000006
【図６】
0004480756.tif 000007
【図７】
0004480756.tif 000008
【図８】
0004480756.tif 000009
【図９】
0004480756.tif 000010
【図１０】
0004480756.tif 000011
【図１１】
0004480756.tif 000012
【図１２】
0004480756.tif 000013
【図１３】
0004480756.tif 000014
【図１４】
0004480756.tif 000015
【図１５】
0004480756.tif 000016
【図１６】
0004480756.tif 000017
【図１７】
0004480756.tif 000018
【図１８】
0004480756.tif 000019
【図１９】
0004480756.tif 000020
【図２０】
0004480756.tif 000021
【図２１】
0004480756.tif 000022
【図２２】
0004480756.tif 000023
【図２３】
0004480756.tif 000024