(57)【要約】【課題】簡便にドライブの増設を図ることができ、かつ、性能の向上した記憶装置を提供することである。【解決手段】ネットワーク型記録装置１００は、制御装置１０２と、複数のノードコンピュータ１０４ａ、１０４ｂ、１０４ｃとを含んでいる。また、内部ネットワーク１０６は、制御装置１０２と、複数のノードコンピュータ１０４ａ、１０４ｂ、１０４ｃを互いに接続する。制御装置１０２は、外部のユーザ１０８と外部ネットワーク１１０を介して接続されており、ユーザ１０８からの要求に従って、データをノードコンピュータ１０４（ａ〜ｃ）にＲＡＩＤの原理を利用して分散して書き込み、また読み出しを行う。ネットワークで接続した複数台のノードコンピュータ１０４を用いてＲＡＩＤを構成したので、ノードコンピュータの増設や管理が容易となるネットワーク型記憶装置１００が得られる。【選択図】　　　図１
2004139379.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードコンピュータと、
制御装置と、
前記複数のノードコンピュータと前記制御装置とを接続するネットワークと、を備えた記憶装置において、
前記制御装置は、
データの書き込み要求を受信する外部インターフェースと、
前記データの書き込み要求に係る書き込みデータが、前記ノードコンピュータ中の記憶手段のどの位置に書き込むべきかを検査する検査手段と、
前記データの書き込み要求に係る書き込みデータを、前記検査手段の検査結果に基づき、１又は２以上の前記複数のノードコンピュータに前記ネットワークを介して送信する内部インターフェースと、
を含み、
前記ノードコンピュータは、
前記ネットワークを介して送信されてきた前記書き込みデータを受信するネットワークインターフェースと、
前記ネットワークインターフェースが受信した前記書き込みデータを記憶手段に書き込む制御手段と、
前記書き込みデータを格納する前記記憶手段と、
を含むことを特徴とするネットワーク型記憶装置。
【請求項２】
請求項１記載のネットワーク型記憶装置において、
前記制御装置は、
前記書き込みデータに基づき、パリティデータを生成するパリティ調整手段、を含み、前記内部インターフェースは、前記生成したパリティデータを、所定のノードコンピュータに送信することを特徴とするネットワーク型記憶装置。
【請求項３】
請求項１又は２記載のネットワーク型記憶装置において、
前記記憶手段は、ハードディスクであることを特徴とするネットワーク型記憶装置。
【請求項４】
請求項１又は２記載のネットワーク型記憶装置において、
前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、
前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とするネットワーク型記憶装置。
【請求項５】
複数のノードコンピュータと、ネットワークで接続され、ネットワーク型記憶装置を構成する制御装置において、
データの書き込み要求を受信する外部インターフェースと、
前記データの書き込み要求に係る書き込みデータが、前記ノードコンピュータ中の記憶手段のどの位置に書き込むべきかを検査する検査手段と、
前記データの書き込み要求に係る書き込みデータを、前記検査手段の検査結果に基づき、１又は２以上の前記複数のノードコンピュータに前記ネットワークを介して送信する内部インターフェースと、
を含むことを特徴とする制御装置。
【請求項６】
請求項５記載の制御装置において、
前記書き込みデータに基づき、新たなパリティデータを生成するパリティ調整手段、
を含み、前記内部インターフェースは、前記生成したパリティデータを、所定のノードコンピュータに送信することを特徴とする制御装置。
【請求項７】
請求項５又は６記載の制御装置において、
前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、
前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とする制御装置。
【請求項８】
複数のノードコンピュータと、ネットワークで接続され、ネットワーク型記憶装置を構成する制御装置としてコンピュータを動作させるプログラムにおいて、
前記コンピュータに、
書き込みデータを受信する受信手順と、
前記データの書き込み要求に係る書き込みデータが、前記ノードコンピュータ中の記憶手段のどの位置に書き込むべきかを検査する検査手順と、
前記書き込みデータを、前記検査手順の検査結果に基づき、１又は２以上の前記複数のノードコンピュータに前記ネットワークを介して送信する送信手順と、
を実行させることを特徴とするプログラム。
【請求項９】
請求項８記載のプログラムにおいて、前記コンピュータに、前記書き込みデータに基づき、新たなパリティデータを生成するパリティ調整手順、
を実行させ、
前記送信手順においては、前記コンピュータに、前記生成したパリティデータを、所定のノードコンピュータに送信させることを特徴とするプログラム。
【請求項１０】
請求項８又は９記載のプログラムにおいて、
前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、
前記送信手順においては、前記コンピュータは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースを用いて送信を実行することを特徴とするプログラム。
【請求項１１】
複数のノードコンピュータと、
制御装置と、
前記複数のノードコンピュータと前記制御装置とを接続するネットワークと、を備えた記憶装置において、
前記制御装置は、
データの読み出し要求を受信する外部インターフェースと、
前記読み出し要求に係るデータが、前記ノードコンピュータ中の記憶手段のどの位置に格納されているか検査する検査手段と、
前記検査手段が検査し、前記読み出し要求に係るデータが格納されていると判断した位置に関して、前記ノードコンピュータに対して前記ネットワークを介してデータの読み出し指示を送信し、さらに、前記ネットワークを介して前記ノードコンピュータから送信されてきた所定のデータを受信する内部インターフェースと、
を含み、前記外部インターフェースは、前記内部インターフェースが受信した前記データの読み出し要求に係るデータを出力し、
前記ノードコンピュータは、
前記ネットワークを介して送信されてきた前記データの読み出し指示を受信するネットワークインターフェースと、
前記ネットワークインターフェースが受信した前記データの読み出し指示に基づき、記憶手段から所定のデータを読み出す制御手段と、
前記制御手段がデータを読み出す前記記憶手段と、
を含み、前記ネットワークインターフェースは、前記制御手段が前記記憶手段から読み出したデータを、前記ネットワークを介して前記制御装置に送信することを特徴とするネットワーク型記憶装置。
【請求項１２】
請求項１１記載のネットワーク型記憶装置において、
前記制御装置は、
前記内部インターフェースが、前記所定のデータの受信に失敗した場合、そのデータを送信するノードコンピュータ以外の他のノードコンピュータ群の記憶手段から読み出したデータに基づき、前記受信に失敗したデータを復元する復元手段、
を含み、前記外部インターフェースは、前記復元したデータを出力することを特徴とするネットワーク型記憶装置。
【請求項１３】
請求項１２記載のネットワーク型記憶装置において、
前記復元手段は、前記内部インターフェースがいずれかのノードコンピュータからのデータの受信に失敗した場合、その失敗したノードコンピュータを報知することを特徴とするネットワーク型記憶装置。
【請求項１４】
請求項１１、１２又は１４記載のネットワーク型記憶装置において、
前記復元手段は、前記内部インターフェースが前記複数のノードコンピュータから受信したデータが互いに一致していなかった場合に、多数決により前記読み出し要求に係るデータを決定し、出力することを特徴とするネットワーク型記憶装置。
【請求項１５】
請求項１１、１２、１３又は１４記載のネットワーク型記憶装置において、
前記記憶手段は、ハードディスクであることを特徴とするネットワーク型記憶装置。
【請求項１６】
請求項１１、１２、１３又は１４記載のネットワーク型記憶装置において、
前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、
前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とするネットワーク型記憶装置。
【請求項１７】
複数のノードコンピュータと、ネットワークを介して接続され、ネットワーク型記憶装置を構成する制御装置において、
データの読み出し要求を受信する外部インターフェースと、
前記読み出し要求に係るデータが、前記ノードコンピュータ中の記憶手段のどの位置に格納されているか検査する検査手段と、
前記検査手段が検査し、前記読み出し要求に係るデータが格納されていると判断した位置に関して、前記ノードコンピュータに対して前記ネットワークを介してデータの読み出し指示を送信し、さらに、前記ネットワークを介して前記ノードコンピュータから送信されてきた所定のデータを受信する内部インターフェースと、
を含み、前記外部インターフェースは、前記内部インターフェースが受信した前記データの読み出し要求に係るデータを出力することを特徴とする制御装置。
【請求項１８】
請求項１７記載の制御装置において、
前記内部インターフェースが、前記所定のデータの受信に失敗した場合、そのデータを送信するノードコンピュータ以外の他のノードコンピュータ群の記憶手段から読み出したデータに基づき、前記受信に失敗したデータを復元する復元手段、
を含み、前記外部インターフェースは、前記復元したデータを出力することを特徴とする制御装置。
【請求項１９】
請求項１８記載の制御装置において、
前記復元手段は、前記内部インターフェースがいずれかのノードコンピュータからのデータの受信に失敗した場合、その失敗したノードコンピュータを報知することを特徴とする制御装置。
【請求項２０】
請求項１７、１８又は１９記載の制御装置において、
前記復元手段は、前記内部インターフェースが前記複数のノードコンピュータから受信したデータが互いに一致していなかった場合に、多数決により前記読み出し要求に係るデータを決定し、出力することを特徴とする制御装置。
【請求項２１】
請求項１７、１８、１９又は２０記載の制御装置において、
前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、
前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とする制御装置。
【請求項２２】
複数のノードコンピュータと、ネットワークを介して接続され、ネットワーク型記憶装置を構成する制御装置として、コンピュータを動作させるプログラムにおいて、前記コンピュータに、
データの読み出し要求を受信する受信手順と、
前記読み出し要求に係るデータが、前記ノードコンピュータ中の記憶手段のどの位置に格納されているか検査する検査手順と、
前記検査手順において、前記読み出し要求に係るデータが格納されていると判断した位置に関して、前記ノードコンピュータに対して前記ネットワークを介してデータの読み出し指示を送信する送信手順と、
さらに、前記ネットワークを介して前記ノードコンピュータから送信されてきた所定のデータを受信するデータ受信手順と、
前記データ受信手順で受信した前記データを出力するデータ出力手順と、
を実行させることを特徴とするプログラム。
【請求項２３】
請求項２２記載のプログラムにおいて、前記コンピュータに、
前記データ受信手順において、前記所定のデータの受信に失敗した場合、そのデータを送信するノードコンピュータ以外の他のノードコンピュータ群の記憶手段から読み出したデータに基づき、前記受信に失敗したデータを復元する復元手順、
を実行させ、前記データ出力手順においては、前記コンピュータは前記復元したデータを出力することを特徴とするプログラム。
【請求項２４】
請求項２３記載のプログラムにおいて、
前記復元手順において、前記コンピュータに、前記データ受信手順でいずれかのノードコンピュータからのデータの受信に失敗した場合、その失敗したノードコンピュータを報知することを実行させることを特徴とするプログラム。
【請求項２５】
請求項２２、２３又は２４記載のプログラムにおいて、
前記復元手順において、前記コンピュータに、前記データ受信手順で前記複数のノードコンピュータから受信したデータが互いに一致していなかった場合に、多数決により前記読み出し要求に係るデータを決定し、出力することを実行させることを特徴とするプログラム。
【請求項２６】
請求項２２、２３、２４又は２５記載のプログラムにおいて、
前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、
前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データをネットワークを介して複数のノードコンピュータに記録するネットワーク型記憶装置に関する。
【０００２】
【従来の技術】
ネットワークに接続されたコンピュータ間で、ハードディスクに記録されているファイルを共有するための技術は広く知られている。そのような技術の一つに、いわゆるＮＦＳ（Ｎｅｔｗｏｒｋ　Ｆｉｌｅ　Ｓｙｓｔｅｍ）と呼ばれる技術がある。このＮＦＳは、ＵＮＩＸ（登録商標）等における技術として知られている。
【０００３】
このＮＦＳ等を用いれば、たとえば、ソフト開発等で、複数の人員と機器を用いて同時に作業を進める場合等に、ある人が所定の共有ファイルを更新すれば、その更新の結果は、他のユーザにも及ぶのである。その理由は、単一の共有ファイルが複数人で共有されているからである。このような構成の下では、いずれか一人が所定の（共有）ファイルを更新した場合に、その（共有）ファイルにアクセスする全員がその更新内容を享受できるのである。
【０００４】
このような共有ファイルは、複数の人間からアクセスされるので、その性能が全体の作業効率に大きな影響を与える。したがって、共有ファイルは性能の高いハードディスク上に格納しておくことが望ましい。
【０００５】
一方、共有ファイルは、複数人からアクセスされるので、その破損は、全体の作業を停止させてしまい、破損の影響が非常に大きくなる傾向にある。したがって、共有ファイルはなるべく信頼性の高いハードディスクに格納しておくことが望ましい。
【０００６】
ハードディスクの高速化と、高い信頼性を実現するために種々の技術が知られている。いわゆるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ　Ａｒｒａｙ　ｏｆ　Ｉｎｄｅｐｅｎｄｅｎｔ　Ｄｉｓｋｓ）も、そのような技術の一つである。
【０００７】
たとえば、ＲＡＩＤ０は、複数のハードディスクドライブドライブにデータを分散して書き込む技術であり、ストライピングと呼ばれる場合もある。ハードディスクドライブが並列動作するためデータの読み書きが高速化するという特徴を有する。
【０００８】
また、ＲＡＩＤ１は、複数のハードディスクドライブに同一のデータを書き込む技術であり、ミラーリングと呼ばれる場合もある。同一のデータを書き込んでいるので、いずれかのハードディスクが破損しても、破損していないハードディスクを用いて処理を続行でき、高い信頼性を達成することができる。複数のハードディスクとして、２台のハードディスクを組み合わせる場合が多いが、より多くの台数のハードディスクを組み合わせることもある。この場合は、多数決論理により、複数のハードディスクが保持する値のうち、最も多くのハードディスクに保持されている値を最終的な正しい値として採用する手法が利用される。
【０００９】
このＲＡＩＤ０とＲＡＩＤ１とを組み合わせたＲＡＩＤ０＋１の技術も知られている。
【００１０】
また、ＲＡＩＤ５はＲＡＩＤ０と同様に、複数のハードディスクドライブにデータを分散して書き込む技術である。ただし、ＲＡＩＤ０とは異なり、データのパリティも書き込むので、一台のハードディスクが故障したときにもデータの修復は可能となる技術である。
【００１１】
なお、従来のＲＡＩＤ装置をネットワークから監視する技術が下記特許文献１に記載されている。また、従来の典型的なＲＡＩＤシステムに関する記述が下記特許文献２にある。
【００１２】
【特許文献１】
特開２００１−３２５１６５号公報
【特許文献２】
特開２０００−２２２８７１号公報
【発明が解決しようとする課題】
しかしながら、従来のＲＡＩＤ装置はハードディスクドライブの増設の作業が繁雑であり、記憶領域を増やすことが困難となる傾向にあった。
【００１３】
また、複数の記憶装置を用いた場合、ユーザは、個々の記憶装置に対してメンテナンス及びセキュリティの管理をしなければならなかった。そのため、ユーザの管理負担が増大する傾向が見られた。
【００１４】
本発明は、係る課題に鑑みなされたものであり、その目的は、簡便にドライブの増設を図ることができ、かつ、性能の向上した記憶装置を提供することである。
【００１５】
【課題を解決するための手段】
Ａ．ネットワーク型記憶装置の発明（データの書き込み動作に関する）
本発明は、上記課題を解決するために、複数のノードコンピュータと、制御装置と、前記複数のノードコンピュータと前記制御装置とを接続するネットワークと、を備えた記憶装置において、前記制御装置は、書き込みデータを受信する外部インターフェースと、　前記データの書き込み要求に係る書き込みデータが、前記ノードコンピュータ中の記憶手段のどの位置に書き込むべきかを検査する検査手段と、前記書き込みデータを、前記検査手順の検査結果に基づき、１又は２以上の前記複数のノードコンピュータに前記ネットワークを介して送信する内部インターフェースと、
を含み、前記ノードコンピュータは、前記ネットワークを介して送信されてきた前記書き込みデータを受信するネットワークインターフェースと、前記ネットワークインターフェースが受信した前記書き込みデータを記憶手段に書き込む制御手段と、前記書き込みデータを格納する前記記憶手段と、を含むことを特徴とするネットワーク型記憶装置である。
【００１６】
このような構成によれば、複数のノードコンピュータと制御装置をネットワークに接続することにより、ユーザからは一台の記憶装置と認識することができる。
【００１７】
また、本発明は、前記制御装置は、前記書き込みデータに基づき、パリティデータを生成するパリティ調整手段、を含み、前記内部インターフェースは、前記生成したパリティデータを、所定のノードコンピュータに送信することを特徴とするネットワーク型記憶装置である。
【００１８】
このような構成によって、パリティを含めてデータを記憶可能な装置が得られる。
【００１９】
また、本発明は、前記記憶手段は、ハードディスクであることを特徴とするネットワーク型記憶装置である。
【００２０】
このような構成によって、ハードディスクの増設が容易な装置が得られる。
【００２１】
また、本発明は、前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とするネットワーク型記憶装置である。
【００２２】
このような構成によって、ＩＥＥＥ８０２のネットワークによってノードコンピュータを接続したネットワーク型記憶装置を実現できる。
【００２３】
Ｂ．制御装置の発明（データの書き込み動作に関する）
また、本発明は、複数のノードコンピュータと、ネットワークで接続され、ネットワーク型記憶装置を構成する制御装置において、書き込みデータを受信する外部インターフェースと、前記データの書き込み要求に係る書き込みデータが、前記ノードコンピュータ中の記憶手段のどの位置に書き込むべきかを検査する検査手段と、前記書き込みデータを、前記検査手段の検査結果に基づき、１又は２以上の前記複数のノードコンピュータに前記ネットワークを介して送信する内部インターフェースと、を含むことを特徴とする制御装置である。
【００２４】
このような構成によれば、複数のノードコンピュータと本発明の制御装置をネットワークに接続することにより、ユーザからは一台の記憶装置と認識することができる。
【００２５】
また、本発明は、前記書き込みデータに基づき、パリティデータを生成するパリティ調整手段、を含み、前記内部インターフェースは、前記生成したパリティデータを、所定のノードコンピュータに送信することを特徴とする制御装置である。
【００２６】
このような構成によって、パリティを含めてデータを記憶可能な装置が得られる。
【００２７】
また、本発明は、前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とする制御装置である。
【００２８】
このような構成によって、ＩＥＥＥ８０２のネットワークによってノードコンピュータを接続したネットワーク型記憶装置を実現できる。
【００２９】
Ｃ．コンピュータを制御装置として動作させるプログラムの発明（データの書き込み動作に関する）
以下の発明は、コンピュータを制御装置として動作させるプログラムの発明であり、その作用は、基本的に上記Ｂ．制御装置の発明と同様である。
【００３０】
本発明は、複数のノードコンピュータと、ネットワークで接続され、ネットワーク型記憶装置を構成する制御装置としてコンピュータを動作させるプログラムにおいて、前記コンピュータに、書き込みデータを受信する受信手順と、前記データの書き込み要求に係る書き込みデータが、前記ノードコンピュータ中の記憶手段のどの位置に書き込むべきかを検査する検査手順と、前記書き込みデータを、前記検査手順の検査結果に基づき、１又は２以上の前記複数のノードコンピュータに前記ネットワークを介して送信する送信手順と、を実行させることを特徴とするプログラムである。
【００３１】
また、本発明は、上記プログラムにおいて、さらに前記コンピュータに、前記書き込みデータに基づき、新たなパリティデータを生成するパリティ調整手順、を実行させ、前記送信手順においては、前記コンピュータに、前記生成したパリティデータを、所定のノードコンピュータに送信させることを特徴とするプログラムである。
【００３２】
また、本発明は、上記プログラムにおいて、前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、前記送信手順においては、前記コンピュータは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースを用いて送信を実行することを特徴とするプログラムである。
【００３３】
Ｄ．ネットワーク型記憶装置の発明（データの読み出し動作に関する）
本発明は、複数のノードコンピュータと、制御装置と、前記複数のノードコンピュータと前記制御装置とを接続するネットワークと、を備えた記憶装置において、前記制御装置は、データの読み出し要求を受信する外部インターフェースと、前記読み出し要求に係るデータが、前記ノードコンピュータ中の記憶手段のどの位置に格納されているか検査する検査手段と、前記検査手段が検査し、前記読み出し要求に係るデータが格納されていると判断した位置に関して、前記ノードコンピュータに対して前記ネットワークを介してデータの読み出し指示を送信し、さらに、前記ネットワークを介して前記ノードコンピュータから送信されてきた所定のデータを受信する内部インターフェースと、を含み、前記外部インターフェースは、前記内部インターフェースが受信した前記データの読み出し要求に係るデータを出力し、前記ノードコンピュータは、前記ネットワークを介して送信されてきた前記データの読み出し指示を受信するネットワークインターフェースと、　前記ネットワークインターフェースが受信した前記データの読み出し指示に基づき、記憶手段から所定のデータを読み出す制御手段と、前記制御手段がデータを読み出す前記記憶手段と、を含み、前記ネットワークインターフェースは、前記制御手段が前記記憶手段から読み出したデータを、前記ネットワークを介して前記制御装置に送信することを特徴とするネットワーク型記憶装置である。
【００３４】
このような構成によれば、複数のノードコンピュータと制御装置をネットワークに接続することにより、ユーザからは一体の記録装置と認識することができる。
【００３５】
また、本発明は、上記ネットワーク型記憶装置において、前記制御装置は、前記内部インターフェースが、前記所定のデータの受信に失敗した場合、そのデータを送信するノードコンピュータ以外の他のノードコンピュータ群の記憶手段から読み出したデータに基づき、前記受信に失敗したデータを復元する復元手段、を含み、前記外部インターフェースは、前記復元したデータを出力することを特徴とするネットワーク型記憶装置である。
【００３６】
このような構成によって、データの信頼性を高めることができる。
【００３７】
また、本発明は、上記ネットワーク型記憶装置において、前記復元手段は、前記内部インターフェースがいずれかのノードコンピュータからのデータの受信に失敗した場合、その失敗したノードコンピュータを報知することを特徴とするネットワーク型記憶装置である。
【００３８】
このような構成によって、どのノードコンピュータに障害が発生したかを知ることができ、メンテナンス性が向上する。
【００３９】
また、本発明は、上記ネットワーク型記憶装置において、前記復元手段は、前記内部インターフェースが前記複数のノードコンピュータから受信したデータが互いに一致していなかった場合に、多数決により前記読み出し要求に係るデータを決定し、出力することを特徴とするネットワーク型記憶装置である。
【００４０】
このような構成によって、障害が発生した場合でも、より正確なデータを得ることができる。
【００４１】
また、本発明は、上記ネットワーク型記憶装置において、前記記憶手段は、ハードディスクであることを特徴とするネットワーク型記憶装置である。
【００４２】
このような構成によって、ハードディスクの増設が容易なネットワーク型記憶装置を提供できる。
【００４３】
また、本発明は、上記ネットワーク型記憶装置において、前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とするネットワーク型記憶装置である。
【００４４】
このような構成によって、ＩＥＥＥ８０２で構成されたネットワーク型記憶装置を構成することができる。
【００４５】
Ｅ．制御装置の発明（データの読み込み動作に関する）
また、本発明は、複数のノードコンピュータと、ネットワークを介して接続され、ネットワーク型記憶装置を構成する制御装置において、データの読み出し要求を受信する外部インターフェースと、前記読み出し要求に係るデータが、前記ノードコンピュータ中の記憶手段のどの位置に格納されているか検査する検査手段と、前記検査手段が検査し、前記読み出し要求に係るデータが格納されていると判断した位置に関して、前記ノードコンピュータに対して前記ネットワークを介してデータの読み出し指示を送信し、さらに、前記ネットワークを介して前記ノードコンピュータから送信されてきた所定のデータを受信する内部インターフェースと、を含み、前記外部インターフェースは、前記内部インターフェースが受信した前記データの読み出し要求に係るデータを出力することを特徴とする制御装置である。
【００４６】
このような構成によって、複数のノードコンピュータと本発明の制御装置をネットワークに接続することにより、ユーザからは一台の記憶装置と認識することができる。
【００４７】
また、本発明は、上記制御装置において、前記内部インターフェースが、前記所定のデータの受信に失敗した場合、そのデータを送信するノードコンピュータ以外の他のノードコンピュータ群の記憶手段から読み出したデータに基づき、前記受信に失敗したデータを復元する復元手段、を含み、前記外部インターフェースは、前記復元したデータを出力することを特徴とする制御装置である。
【００４８】
このような構成によって、よりデータの信頼性を高めることができる。
【００４９】
また、本発明は、上記制御装置において、前記復元手段は、前記内部インターフェースがいずれかのノードコンピュータからのデータの受信に失敗した場合、その失敗したノードコンピュータを報知することを特徴とする制御装置である。
【００５０】
このような構成によれば、複数のノードコンピュータと本発明の制御装置をネットワークに接続することにより、ユーザからは一台の記憶装置と認識することができる。
【００５１】
また、本発明は、上記制御装置において、前記復元手段は、前記内部インターフェースが前記複数のノードコンピュータから受信したデータが互いに一致していなかった場合に、多数決により前記読み出し要求に係るデータを決定し、出力することを特徴とする制御装置である。
【００５２】
このような構成によって、障害が発生した場合でも、より正確なデータを得ることができる。
【００５３】
また、本発明は、上記制御装置において、前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とする制御装置である。
【００５４】
このような構成によって、ＩＥＥＥ８０２で構成されたネットワーク型記憶装置を構成することができる。
【００５５】
Ｆ．コンピュータを制御装置として動作させるプログラムの発明（データの読み込み動作に関する）
以下の発明は、コンピュータを制御装置として動作させるプログラムの発明であり、その作用は、基本的に上記Ｅ．制御装置の発明と同様である。
【００５６】
本発明は、複数のノードコンピュータと、ネットワークを介して接続され、ネットワーク型記憶装置を構成する制御装置として、コンピュータを動作させるプログラムにおいて、前記コンピュータに、データの読み出し要求を受信する受信手順と、前記読み出し要求に係るデータが、前記ノードコンピュータ中の記憶手段のどの位置に格納されているか検査する検査手順と、前記検査手順において、前記読み出し要求に係るデータが格納されていると判断した位置に関して、前記ノードコンピュータに対して前記ネットワークを介してデータの読み出し指示を送信する送信手順と、さらに、前記ネットワークを介して前記ノードコンピュータから送信されてきた所定のデータを受信するデータ受信手順と、前記データ受信手順で受信した前記データを出力するデータ出力手順と、を実行させることを特徴とするプログラムである。
【００５７】
また、本発明は、上記プログラムにおいて、前記コンピュータに、前記データ受信手順において、前記所定のデータの受信に失敗した場合、そのデータを送信するノードコンピュータ以外の他のノードコンピュータ群の記憶手段から読み出したデータに基づき、前記受信に失敗したデータを復元する復元手順、を実行させ、前記データ出力手順においては、前記コンピュータは前記復元したデータを出力することを特徴とするプログラムである。
【００５８】
また、本発明は、上記プログラムにおいて、前記復元手順において、前記コンピュータに、前記データ受信手順でいずれかのノードコンピュータからのデータの受信に失敗した場合、その失敗したノードコンピュータを報知することを実行させることを特徴とするプログラムである。
【００５９】
また、本発明は、上記プログラムにおいて、前記復元手順において、前記コンピュータに、前記データ受信手順で前記複数のノードコンピュータから受信したデータが互いに一致していなかった場合に、多数決により前記読み出し要求に係るデータを決定し、出力することを実行させることを特徴とするプログラムである。
【００６０】
また、本発明は、上記プログラムにおいて、前記ネットワークはＩＥＥＥ８０２で規定されるネットワークであり、前記内部インターフェースは、前記ＩＥＥＥ８０２で規定されるネットワークと接続するインターフェースであることを特徴とするプログラムである。
【００６１】
【発明の実施の形態】
以下、本発明の好適な実施の形態を図面に基づき説明する。
【００６２】
［実施の形態１］
図１には、本発明の好適な実施の形態のネットワーク型記録装置１００の構成を表す説明図が示されている。
【００６３】
この図に示すように、ネットワーク型記録装置１００は、制御装置１０２と、複数のノードコンピュータ１０４ａ、１０４ｂ、１０４ｃとを含んでいる。また、ネットワーク型記録装置１００は、内部ネットワーク１０６を備えている。この内部ネットワーク１０６は、制御装置１０２と、複数のノードコンピュータ１０４ａ、１０４ｂ、１０４ｃを互いに接続する。
【００６４】
制御装置１０２は、外部のユーザ１０８と外部ネットワーク１１０を介して接続されており、ユーザ１０８からの要求に従って、データの読み出し、書き込みの制御を行う。
【００６５】
このように本実施の形態では、内部ネットワーク１０６と、外部ネットワークとは直接には接続していない。制御装置１０２は両方のネットワークに接続している。
【００６６】
本実施の形態におけるネットワーク型記録装置１００は、ユーザ１０８から見ると、ネットワーク上の記録装置であり、ユーザ１０８は、このネットワーク型記録装置１００にデータを書き込み、また、このネットワーク型記録装置１００からデータを読み出すことができる。
【００６７】
１．制御装置の構成
図２には、本実施の形態の制御装置１０２の機能構成を示すブロック図が示されている。この図に示すように、制御装置１０２は、外部インターフェース２００、検査手段２０２、パリティ調整手段２０４、復元手段２０６、内部インターフェース２０８とから構成されている。
【００６８】
外部インターフェース２００は、外部ネットワーク１１０に接続するためのインターフェースである。たとえば、外部ネットワーク１１０がＩＥＥＥ８０２によって規定されるネットワークの場合には、外部インターフェース２００は、このＩＥＥＥ８０２によって規定されるネットワークに接続するためのインターフェースカード等である。
【００６９】
このように、制御装置１０２が外部ネットワーク１１０と接続されているので、外部ネットワークに１１０接続している任意のユーザ１０８がネットワーク型記憶装置１００を利用することができる。
【００７０】
検査手段２０２は、ユーザ１０８からデータの読み出し要求があった場合に、その読み出し要求に係るデータがどのノードコンピュータ１０４中（の記憶手段３０２）にあるかを検査する手段である。
【００７１】
この検査手段２０２は、制御装置１０２内部に外部ネットワーク１１０のユーザ１０８からのデータ書き込み要求により記憶したデータが、
（１）どのノードコンピュータ１０４（ａ〜ｃ）の記憶手段３０２に格納されているか、
（２）記憶手段３０２のどの位置に格納されているか、
に関する情報を記憶している情報データベーステーブルを備えている。そして、検査手段２０２は、データを読み出す際にこの情報データベーステーブルの内容に基づき読み出し要求に係るデータの格納位置を検査する。ここで「位置」とは、後述する記憶手段３０２（図３参照）のいわばアドレスである。たとえば、本実施の形態では、記憶手段３０２がハードディスクである場合を主に説明するが、この場合は、シリンダ、トラック、セクタの如きパラメータで「位置」が特定される。記憶手段３０２は、他の手段で構成されていてもよい。たとえば、半導体記憶装置で記憶手段３０２が構成されている場合には、そのアドレスで「位置」が特定される。要するに、「位置」とは、上記（１）（２）に関する情報である。
【００７２】
上記情報データベーステーブルは、所定の記憶手段に格納する。コンピュータ内部の半導体記録装置や磁気ディスク装置であるハードディスクで構成することが望ましい。もちろん、他の光ディスク（ＣＤ、ＣＤ−Ｒ、ＤＶＤ、ＤＶＤ−ＲＷ等）で構成してもかまわない。
【００７３】
パリティ調整手段２０４は、ユーザ１０８からデータの書き込み要求があった場合に、その書き込み要求に係る新しいデータに基づいて、パリティデータを生成する手段である。
【００７４】
本実施の形態において特徴的なことは、ユーザ１０８からのデータの書き込み要求があった場合に、そのデータを複数のノードコンピュータ１０４（ａ〜ｃ）で分散して記録していることである。すなわち、ＲＡＩＤの原理を内部ネットワークで接続された複数のノードコンピュータ１０４（ａ〜ｃ）で実現しようとするものである。
【００７５】
特に、本実施の形態では、ＲＡＩＤ５を実現している例を説明する。ＲＡＩＤ５においては、記録するデータに付随してパリティデータも記録する。本実施の形態において、このパリティデータを生成するのがパリティ調整手段２０４である。新しいデータが格納されると、その新しいデータを用いてパリティデータを再計算する必要があるが、この再計算処理を実行しているのが、パリティ調整手段２０４である。
【００７６】
なお、このパリティの計算手法は種々のものが知られている。本実施の形態で説明する手法以外の計算手法を、パリティ調整手段２０４が採用することももちろん好ましい。
【００７７】
復元手段２０６は、ノードコンピュータ１０４（ａ〜ｃ）から読み出したデータにエラーが発生した場合にそのデータの復元等を行う手段である。この手段によって、データを復元でき、データの信頼性を高めることができる。
【００７８】
データの復元手法は現在世の中で知られている種々の手法を採用することができる。たとえば、本実施の形態のようにＲＡＩＤ５を採用している場合には、パリティデータを用いて、読み出さなかったデータを復元することが好ましい。また、いわゆるミラーリングを行う場合には、一方のデータが読み出さなかった場合でも、他方のデータをそのまま利用して処理を続行するのである。また、３個以上のハードディスクドライブを用いて、それらに同一のデータを書き込み、読み出す際に多数決で正しいデータを決定する手法が知られているが、そのような多数決決定方式を採用することも好ましい。
【００７９】
内部インターフェース２０８は、内部ネットワーク１０６に接続するインターフェースである。この内部ネットワーク１０６はたとえば、ＩＥＥＥ８０２で規定されるネットワークである。内部ネットワーク１０６がＩＥＥＥ８０２で規定されるネットワークの場合には、この内部インターフェース１０６はＩＥＥＥ８０２で規定されるネットワークのネットワークカード等で構成する。
【００８０】
制御装置１０２は、コンピュータで構成されている。制御装置１０２に含まれる検査手段２０２、パリティ調整手段２０４、復元手段２０６は、これらの手段の動作をコンピュータに実行させるプログラムから構成される。コンピュータとしては、従来の一般的なコンピュータと同様のものが利用される。
【００８１】
２．ノードコンピュータの構成
本実施の形態においては、上記制御装置１０２が書き込み要求に係るデータを各ノードコンピュータ１０４（ａ〜ｃ）に送信し、ノードコンピュータ１０４（ａ〜ｃ）がこのデータを格納する。より詳細に言えば、データは、ノードコンピュータ１０４（ａ〜ｃ）中のハードディスクに格納されるのである。ノードコンピュータ１０４（ａ〜ｃ）は、従来の一般的なコンピュータと同様のものである。本実施の形態におけるノードコンピュータ１０４（ａ〜ｃ）はたとえば、ＮＦＳの技術を用いてネットワークを介したデータの読み書きを行えるコンピュータで構成されている。このようなコンピュータは従来から知られているので、本実施の形態でもそのようなコンピュータをノードコンピュータ１０４（ａ〜ｃ）として用いればよい。
【００８２】
ノードコンピュータ１０４（ａ〜ｃ）の構成ブロック図が図３に示されている。この図に示すように、ノードコンピュータ１０４は、内部ネットワーク１０６に接続するネットワークインターフェース３００と、記憶手段３０２と、記憶手段３０２へのデータの読み書きを制御する制御手段３０４と、を備えている。
【００８３】
ネットワークインターフェース３００は、内部ネットワーク１０６に接続するネットワークカード等から構成される。たとえば、ＩＥＥＥ８０２で規定されるネットワークに接続するネットワークカード等で構成することが好ましい。
【００８４】
記憶手段３０２は、データを記憶する各種手段が利用可能であり、典型的にはハードディスクが好ましい。本実施の形態では、記憶手段３０２がハードディスクである例を主に説明する。もちろん、この記憶手段３０２はＭＯディスクや各種半導体記憶装置等を利用することも好ましい。
【００８５】
制御手段３０４は、ネットワークインターフェース３００を通じて、制御装置１０２から送信されてきた指示に従い、所定のデータの読み出し・書き込みを制御する。この制御手段３０４は、ノードコンピュータ１０４をこのような制御手段３０４として動作させるプログラムで構成されることが好ましい。また、このような動作をするプログラムは、従来からＮＦＳ等で用いられているので、容易に構成することが可能である。
【００８６】
ノードコンピュータ１０４（ａ〜ｃ）を内部ネットワーク１０６に接続することによって、制御装置１０２は、複数のノードコンピュータ１０４（ａ〜ｃ）に対してＲＡＩＤを構成させることができる。従来のＲＡＩＤシステムのように、ＳＣＳＩ等で接続する構成においては、アドレスの数に制限があり、ハードディスクの増設が困難な場合も多かった。これに対して、本実施の形態では、ＩＥＥＥ８０２で規定されるネットワーク等の内部ネットワーク１０６で複数のノードコンピュータ１０４を接続しているので、ＳＣＳＩ等に比べて、使用可能なアドレスが格段に多いので、アドレスによる制限が少ないという特徴を有する。その結果、接続するノードコンピュータ１０４を容易に増設することができ、ＲＡＩＤを構成するハードディスクの台数を容易に増加させることができる。
【００８７】
３．本実施の形態によるＲＡＩＤの構成
本実施の形態では、複数のノードコンピュータ１０４ａ、１０４ｂ、１０４ｃ（中の記憶手段３０２）によって、全体としてＲＡＩＤ５を構築する例を説明する。このようなＲＡＩＤ５の構成の様子が図４に示されている。
【００８８】
具体的には、外部ネットワーク１１０を介してユーザ１０８が仮想ハードディスク４００中のデータＤ１の位置に書き込みを要求をした場合、制御装置１０２によって、書き込むデータＤ１は、ノードコンピュータ１０４ａの記憶手段３０２に格納される（図４参照）。
【００８９】
次に、ユーザ１０８が仮想ハードディスク４００中のデータＤ２の位置に書き込みを要求をした場合、制御装置１０２によって、書き込むデータＤ２は、ノードコンピュータ１０４ｂの記憶手段３０２に格納される（図４参照）。
【００９０】
なお、データＤ１とデータＤ２とのパリティデータＰ１は、ノードコンピュータ１０４ｃの記憶手段３０２に格納される。このパリティデータの格納は、パリティ調整手段２０４が実行する。
【００９１】
以下、同様に、データＤ２とデータＤ３とのパリティデータがＰ２となり、データＤ５とデータＤ６とのパリティデータがＰ３となる。このような様子が図４に示されている。このようなＲＡＩＤ５の動作の結果、３台のノードコンピュータ１０４ａ、１０４ｂ、１０４ｃ中の記憶手段３０２を、ユーザ１０８からは、仮想的に１台のハードディスク４００であるかのように扱うことが可能である。
【００９２】
図４には、３台のノードコンピュータ１０４ａ、１０４ｂ、１０４ｃ中の記憶手段３０２と、仮想ハードディスク４００との関係が示されている。ユーザ１０８は、あくまでもこの仮想ハードディスク４００に対してデータを読み書きをするのである。ここで、検査手段２０２は、ユーザ１０８側から見た仮想ハードディスク上の「位置」と、３台のノードコンピュータ１０４ａ、１０４ｂ、１０４ｃ中の記憶手段３０２上の「位置」とを相互に変換する役割を果たしているのである。
【００９３】
４．全体動作
以下、図１に示したネットワーク型記憶装置１００の詳細な動作を説明する。上述したように、本実施の形態の動作は、コンピュータプログラムによって規定されているものである。このプログラムを実行することにより以下に示すような動作が実行される。
【００９４】
ここで、ユーザ１０８の端末のＩＰアドレスをＩＰ１、制御装置のＩＰアドレスをＩＰ２、ノードコンピュータ１０４ａのＩＰアドレスをＩＰ３、ノードコンピュータ１０４ｂのＩＰアドレスをＩＰ４、ノードコンピュータ１０４ｃのＩＰアドレスをＩＰ５とする。そして、外部ネットワーク１１０はいわゆるインターネットであり、内部ネットワーク１０６はＩＥＥＥ８０２で規定されるネットワークであるものとして説明を行う。
【００９５】
４．１　データの書き込み動作
まず、ユーザ１０８からデータの書き込み要求があった場合について説明する。書き込み要求の場合の動作を表すフローチャートが図５に示されている。
【００９６】
ステップＳ５−１においては、外部ネットワーク１１０を介してユーザは、データ「Ｄ」の書き込み要求を制御装置１０２に対して送信する。具体的には、この要求は、データＡ及びその書き込む位置を内容として含んだパケットである。ここで、「位置」とは、図４における仮想ハードディスク４００上の「位置」である。ユーザ１０８からは仮想ハードディスク４００に対してデータの書き込み・読み出しを行っているかのように見えるからである。
【００９７】
ユーザ１０８が送信するパケットには、制御装置１０２のアドレスである宛先ＩＰ２、ユーザのアドレスである送信元ＩＰ１というアドレスを含むＩＰヘッダが付加される。そして、このパケットの中身には、書き込み要求に係る「Ｄ」というデータが含まれているのである。この様子が図６に示されている。なお、図６中のパケットには示されていないが、このパケットには、ユーザ１０８からのデータの書き込み指示が含まれている。また、図６中のパケットにおいて、ＳＲＣとはソースアドレス、すなわち、発信元のアドレスを表す。また、図６中のパケットにおいて、ＤＴＮとはディスティネーションアドレス、すなわち、宛先のアドレスを表す。
【００９８】
次に、ステップＳ５−２においては、制御装置１０２は、ユーザ１０８が送信したパケットを受信する。これは、ユーザ１０８からの書き込み要求の受信を意味する。この受信は、外部インターフェース２００が実行する。
【００９９】
ステップＳ５−３においては、検査手段２０２が、送信されてきたデータ「Ｄ」を書き込む位置を検査する。既に説明したように、ユーザは、データＤを書き込み位置を仮想ハードディスク４００上の位置で表してくる。したがって、検査手段２０２は、この位置を、ノードコンピュータ１０４（ａ〜ｃ）中の記憶手段３０２上の位置に変換するのである。
【０１００】
ステップＳ５−４においては、内部インターフェース２０８が、検査手段２０２が求めた位置に基づき、データ「Ｄ」をノードコンピュータ１０４に送信する。たとえば、図４に示されているように、データ「Ｄ１」を書き込む場合には、ノードコンピュータ１０４ａにデータを送信する。また同様に、データ「Ｄ５」を書き込む場合には、ノードコンピュータ１０４ｃにデータを送信する。これらの分散原理は従来のＲＡＩＤと同様である。
【０１０１】
なお、本実施の形態では、データのノードコンピュータへの送信に、ＮＡＴ（Ｎｅｔｗｏｒｋ　Ａｄｄｒｅｓｓ　Ｔｒａｎｓｌａｔｉｏｎ）に類似の原理を利用している。
【０１０２】
ユーザ１０８から制御装置１０２に送信されてきたデータ「Ｄ」を含むパケットの宛先アドレスはＩＰ２（制御装置のアドレス）であり、発信元アドレスはＩＰ１（ユーザ１０８のアドレス）であることは既に説明した。
【０１０３】
本実施の形態では、内部インターフェース２０８が、このパケットのアドレスを変換することによって、所望のノードコンピュータ１０４に対してこのパケットを送信する。
【０１０４】
たとえば、ノードコンピュータ送信するデータが「Ｄ２」である場合には、ユーザ１０８が送信してきた上記パケットの宛先アドレスはＩＰ２からＩＰ４に、変換される。この変換後のパケットの様子が図６に示されている。
【０１０５】
ステップＳ５−５においては、ノードコンピュータ１０４ｂが、制御装置１０２が送信してきたパケットを受信し、このパケット中に含まれる書き込みデータＤを記憶手段３０２に格納する。この格納動作は、制御手段３０４が実行する。
【０１０６】
ステップＳ５−６においては、パリティ調整手段２０４が、パリティデータの生成を行う。たとえば、データ「Ｄ２」が新たにノードコンピュータ１０４ｂ中の記憶手段３０に格納される場合は、その新しいデータ「Ｄ２」の値に基づき、パリティデータ「Ｐ１」を再計算する必要がある。これを実行するのがパリティ調整手段２０４である。
【０１０７】
このステップＳ５−６においては、パリティ調整手段は、ノードコンピュータ１０４ａからデータ「Ｄ１」を読み出し、この「Ｄ１」と新たに書き込んだ「Ｄ２」とに基づき、これらのパリティデータ「Ｐ１」を求める。パリティは、データ「Ｄ１」、データ「Ｄ２」の排他的論理和から生成される。ハードディスクのドライブ数が増えた場合も、排他的論理和の対象となるデータが増えるだけであり、同様の演算でパリティデータが計算される。
【０１０８】
そして、ステップＳ５−７においては、この「Ｐ１」を、ノードコンピュータ１０４ｃに送信する。送信動作は内部インターフェース２０８によって実行される。
【０１０９】
ステップＳ５−８においては、パリティデータ「Ｐ１」をノードコンピュータ１０４ｃの記憶手段３０２に書き込むのである。このようにしてパリティデータは常に正しい値に保持される。
【０１１０】
本実施の形態において特徴的なことは、複数のノードコンピュータと制御装置とは、ＩＥＥＥ８０２で規定されるネットワークにより接続されている点にある。すなわち、ＩＥＥＥ８０２で規定されるネットワークを用いることにより、複数のノードコンピュータ１０４を接続することができる。また、ユーザ１０８側から見た場合は、複数のノードコンピュータ１０４と制御装置１０２が、ＩＥＥＥ８０２で規定されるネットワークにより接続されていため、ユーザ１０８は、制御装置１０２に対して要求をすればよい。その結果、ユーザ１０８は複数のノードコンピュータ１０４を意識することなく、ネットワーク型記憶装置１００を全体として一台の記憶装置として認識することが可能となり、メンテナンス、セキュリティの管理が容易となる。
【０１１１】
このように、本実施の形態では、３台のハードディスクドライブを用いてＲＡＩＤ５を構築した例を説明したが、他の方式、たとえばＲＡＩＤ０＋１を採用する構成も好ましいことは言うまでもない。
【０１１２】
４．２　データの読み出し動作
次に、ユーザから読み出し要求があった場合について説明する。データの読み出し要求があった場合の動作を表すフローチャートが図７に示されている。
【０１１３】
まず、ステップＳ７−１において、ユーザ１０８は、外部ネットワーク１１０を介して、データＤ３の読み出し要求パケットを制御装置１０２に対して送信する。このパケットには、制御装置１０２のアドレスであるＩＰ２と、ユーザ１０８のアドレスである送信元のアドレスＩＰ１を含むＩＰヘッダが付加されている。
【０１１４】
ステップＳ７−２において、制御装置１０２は、書き込み要求のパケットを受信する。
【０１１５】
ステップＳ７−３においては、検査手段２０２が、送信されてきた読み出し要求に係る位置を検査する。既に説明したように、ユーザは、データＤの読み出し位置を仮想ハードディスク４００上の位置で表してくる。したがって、検査手段２０２は、この位置を、ノードコンピュータ１０４（ａ〜ｃ）中の記憶手段３０２上の位置に変換するのである。
【０１１６】
ステップＳ７−４においては、内部インターフェース２０８が、検査手段２０２が求めた位置に基づき、ノードコンピュータ１０４にデータの読み出しを指示する。たとえば、図４に示されているように、データ「Ｄ１」を読み出す場合には、ノードコンピュータ１０４ａに読み出しを指示するパケットを送信する。また同様に、データ「Ｄ５」を読み出す場合には、ノードコンピュータ１０４ｃに読み出しを指示するパケットを送信する。この様子は図４で説明したとおりである。
【０１１７】
なお、本実施の形態では、読み出し指示のパケットをノードコンピュータ１０４へ送信するのに、データの書き込みの際と同様にＮＡＴ（Ｎｅｔｗｏｒｋ　Ａｄｄｒｅｓｓ　Ｔｒａｎｓｌａｔｉｏｎ）に類似の原理を利用している。
【０１１８】
ユーザ１０８から制御装置１０２に送信されてきたデータ「Ｄ３」を読み出す指示を含むパケットの宛先アドレスはＩＰ２（制御装置のアドレス）であり、発信元アドレスはＩＰ１（ユーザ１０８のアドレス）であることは既に説明してきたとおりである。このパケットの様子が図９に示されている。
【０１１９】
本実施の形態では、内部インターフェース２０８が、このパケットのアドレスを変換することによって、所望のノードコンピュータ１０４に対してこの読み出しの指示であるパケットを送信するのである。
【０１２０】
たとえば、読み出すデータが「Ｄ３」である場合（図４のＤ３参照）には、ユーザ１０８が送信してきた上記パケットの宛先アドレスはＩＰ２からＩＰ４に、変換される。データ「Ｄ３」が格納されているノードコンピュータ１０４ｂのアドレスはＩＰ４だからである。このようなアドレス変換の様子が図９に示されている。
【０１２１】
ステップＳ７−５においては、ノードコンピュータ１０４ｂが、制御装置０２が送信してきたパケットを受信し、このパケット中に含まれる読み出しの指示に基づき、データＤ３を記憶手段３０２から読み出す。この読み出し動作は、制御手段３０４が実行する。
【０１２２】
ステップＳ７−６においては、読み出したデータが、ノードコンピュータ１０４ｂから、制御装置１０２に送信される。この際、パケットの送信元アドレスはノードコンピュータ１０４ｂのアドレスであるＩＰ４である。そして、宛先アドレスは、ノードコンピュータ１０４ｂに送信されてきたパケットの発信元、すなわち、ＩＰ１である。このようなパケットの様子が図９に示されている。宛先のアドレスがＩＰ１であっても、制御装置１０２がこのパケットを受信し、ユーザ１０８に送信するように構成することは容易である。これは従来のルーターと類似する動作であり、要するに制御装置１０２はアドレスＩＰ１のパケットを、外部ネットワーク１１０向けにルーティングしているのである。このルーティングの結果、ユーザ１０８は最終的にデータを取得することができる。
【０１２３】
ステップＳ７−７において、制御装置１０２において、送信されてきた読み出したデータの受信が成功した場合には、ステップＳ７−８に処理が移行する。一方、何らかの理由により、受信が失敗した場合は、ステップＳ８−１に処理が移行する。
【０１２４】
ステップＳ７−８においては、制御装置１０２の外部インターフェース２００が、ノードコンピュータ１０４ｂから送られてきたデータをユーザ１０８方向に送信する。この際、ノードコンピュータ１０４ｂから送られてきたパケットは、そのままユーザに送られるのではなく、アドレスが変換されてから送信される。すなわち、発信元アドレスがノードコンピュータ１０４ｂの「ＩＰ４」から、制御装置１０２のＩＰ２に変換されるのである。つまりノードコンピュータ１０４ｂのアドレスを自己のアドレスと変換しているのである。このようなアドレス変換によって、ユーザ１０８から見ると、制御装置１０２に対して要求を出し、その要求の結果も制御装置１０２から返信されてきたように見え、内部のノードコンピュータ１０４の構成等を一切知る必要がなく、簡便にデータの読み出しを行える。このアドレス変換の様子が図９に示されている。
【０１２５】
なお、上記ステップＳ７−７において、受信が失敗した場合には、図８のステップＳ８−１、Ｓ８−２において、パリティ調整手段２０４が、データの復元を試みる。
【０１２６】
すなわち、ステップＳ８−１においては、読み込みに失敗したノードコンピュータ１０４ｂ以外のノードコンピュータ１０４ａ、１０４ｂから所定のデータを読み出す。
【０１２７】
そして、ステップＳ８−２においては、上記読み出したデータに基づき、ユーザが読み出そうとしたデータの復元を試みる。たとえば、ノードコンピュータ１０４ａからパリティデータである「Ｐ２」を読み出し、ノードコンピュータ１０４ｃからデータ「Ｄ４」を読み出し、これらのＥＸ−ＯＲを演算できれば、データ「Ｄ３」を復元できる可能性がある。
【０１２８】
パリティデータの取り扱いは、種々の方法が知られているので、本実施の形態で説明した手法以外の、従来から知られている種々の手法でデータを復元することも好ましい。
【０１２９】
また、この場合、故障が発生したノードコンピュータ１０４の存在を利用者に知らせるために何らかの報知動作を、復元手段２０６が実行することももちろん好ましい。そのような報知動作は従来からよく知られているので、従来から知られているそのような技術を採用すればよい。たとえば、ディスプレイ上に、障害報告のメッセージが表示されるように構成することも好ましい。このメッセージにおいてノードコンピュータ１０４を特定するように構成することが好ましい。
【０１３０】
［実施の形態２］　変形例
（１）ミラーリングその１
上記実施の形態１では、ＲＡＩＤ５を例にして動作を説明したが、他のＲＡＩＤの方式を適用することももちろん好ましい。たとえば、ミラーリング（ＲＡＩＤ１）を採用することも好適である。このミラーリングの場合は、２台のノードコンピュータ１０４ａ、１０４ｂを準備し、この２台に同一のデータを書き込む。読み出し時に一方のノードコンピュータ１０４ａ（又は１０４ｂ）が故障しても、残りのノードコンピュータ１０４ｂ（又は１０４ａ）からデータを読み出すことにより、処理を続行することができるものである。
【０１３１】
この場合、故障が発生したノードコンピュータ１０４の存在を利用者に知らせるために何らかの報知動作を採用することももちろん好ましい。この報知動作は、上記実施の形態１で述べた如き態様で行うことが好ましい。
【０１３２】
なお、２台以上のノードコンピュータによるミラーリングも考えられるが、この場合は、多数決により正しいデータを決定する手法も知られている。
【０１３３】
（２）ミラーリングその２
上記実施の形態１では、３台のノードコンピュータ１０４ａ、１０４ｂ、１０４ｃを用いる例を説明した。ここで、６台のノードコンピュータ１０４を用いて、２台ずつ全く同様の動作を実行させることも好ましい。２台ずつ「組」にするのであるから、動作上は、実施の形態１の３台の動作と全く同様である。
【０１３４】
この場合、組となった２台が同一の動作を行うので、いずれか一方に障害が生じても処理動作を続行することができる。
【０１３５】
２台が同一の動作を行う場合、制御装置１０２はどちらの結果を採用すべきか問題となるかもしれない。この場合、いずれか早く結果を返した方を採用し、他方は無視すればよい。このような動作原理は、本願出願人が特願２００２−１８５２１６号の負荷分散装置で既に提案している。同号特許出願で提案した原理を本発明においても採用すればよい。
【０１３６】
（３）データリンクアドレスの使用
実施の形態１では、ユーザ１０８からの要求のパケットを、いわばアドレス変換の技術を用いて、ノードコンピュータ１０４に送信していた。しかし、アドレス変換を用いずにデータリンクアドレスの一種であるＭＡＣアドレスを用いて送信先のノードコンピュータ１０４を指定することも好ましい。いわゆるＩＥＥＥ８０２で規定されるネットワークでは、このＭＡＣアドレスで送信元や送信先が指定されるので、より上位のアドレスの変換を行わずにＭＡＣアドレスでノードコンピュータ１０４を指定してパケットを送信することも好ましい。
【０１３７】
このようにＭＡＣアドレスを用いて、ユーザ１０８からの要求をノードコンピュータ１０４に分配する動作原理は、本願発明者らによって既に特許出願がなされている。その特許出願の番号は特願２００２−２８２３９４号（２００２年９月２７日出願）である。
【０１３８】
データリンクアドレスを用いた動作を以下説明する。
【０１３９】
図１０には、データリンクアドレスを用いてノードコンピュータにユーザからの要求を送信するネットワーク型記憶装置１２００の模式図が示されており、図１１には、このようなネットワーク型記憶装置１２００の動作を表すフローチャートが示されている。
【０１４０】
まず、図１１のステップＳ１１−１において、ユーザ１１００が制御装置１２０２に対してデータの読み出し又はデータの書き込み要求を送信する。この要求は、図１０において模式的に示されているように、ＩＰアドレスで表されたソースアドレス（ＳＲＣ）が、ユーザ１１００のＩＰアドレス「ＩＰｃ」である。また、ＩＰアドレスで表されたディスティネーションアドレス（ＤＴＮ）は制御装置１２０２のインターネット１０８上のＩＰアドレス「ＩＰｂｌ」である。この制御装置１２０２は、上記制御装置１０２と同様の働きをするものである。しかし、この制御装置１２０２は、要求をノードコンピュータ１１０４に送信する際にいわゆるアドレス変換を行わず、ＭＡＣアドレスを用いている点で、上記制御装置１０２と異なる。
【０１４１】
なお、上記ソースアドレスは、「発信元アドレス」と呼ばれる場合もある。また、上記ディスティネーションアドレスは、「宛先アドレス」と呼ばれる場合もある。
【０１４２】
次に、ステップＳ１１−２においては、制御装置１２０２に送信されたデータの読み出し要求（又は書き込み要求）が、検査手段２０２における検査の対象となり、データを読み出し（又は書き込む）ノードコンピュータ１１０４を特定する。たとえば、この読み出し（又は書き込み）割り当てがノードコンピュータ１１０４ｂになされたとして以下説明を続ける。
【０１４３】
内部インターフェース２０８は、検査手段２０２がノードコンピュータ１１０４ｂを選択したことを知る。そして、ノードコンピュータ１１０４ｂのＩＰアドレスＩＰ２を知る。
【０１４４】
ステップＳ１１−３においては、内部インターフェース２０８が、ＩＰアドレス「ＩＰ２」をそれに対応するＭＡＣアドレス、すなわち「ＭＡＣ２」に変換し、このＭＡＣ２宛に上記ユーザ１１００からの要求を内部ネットワーク１１０６上で送信するのである。たとえば、この変換のために、内部インターフェース２０８は、その内部に変換テーブルを有することも好ましい。このテーブルには、たとえば、ＩＰ１−ＭＡＣ１、ＩＰ２−ＭＡＣ２、ＩＰ３−ＭＡＣ３、ＩＰ４−ＭＡＣ４、と言う内容が記述されていることが好ましい。
【０１４５】
この変形例において特徴的なことは、ユーザ１１００からの要求をノードコンピュータ１０４に送信するに当たって、ＩＰアドレスではなく、ＭＡＣアドレスそのものを用いていることと、要求中のＩＰアドレスを何ら変換していないことである。すなわち、制御装置１２０２からノードコンピュータ１０４ｂに送信される要求中のＩＰアドレスは、ユーザ１１００から送信されてきたときと同様である。具体的に言えば、図１０中で模式的に表しているように、ＩＰアドレスで表したソースアドレスは「ＩＰｃ」であり、ＩＰアドレスで表したディスティネーションアドレスは、「ＩＰｂｌ」である。
【０１４６】
図１０に示されているように、この変形例においては、ノードコンピュータ１１０４ａ〜１１０４ｄには全て「ＩＰｂｌ」という仮想ＩＰアドレスも付与されている。したがって、この仮想ＩＰアドレスの存在によって、各ノードコンピュータ、ＩＰアドレスの点からも不整合は何ら生じていない。
【０１４７】
本実施の形態においては、このように要求の中のＩＰアドレスを何ら変換していないので、制御装置１２０２の負担は制御装置２０２に比べて大幅に減少している。具体的には要求を含むパケット中のアドレス変換を行っていないからである。
【０１４８】
次に、ステップＳ１１−４においては、送られてきた要求のパケットに対してノードコンピュータ１１０４ｂが所定の処理を実行する。この処理自体は上で述べた例と全く同様である。ノードコンピュータ１１０４は、上で述べたノードコンピュータ１０４と基本的には同様のものである。異なる点は、それぞれに付されているＩＰアドレスＩＰ１、ＩＰ２、ＩＰ３、ＩＰ４の他に、仮想ＩＰアドレス「ＩＰｂｌ」が付されている点である。
【０１４９】
要求が、データの書き込みの場合は、ノードコンピュータ１１０４ｂが記憶手段３０２中の所定の位置にデータを書き込むことによって処理自体は終了する。一方、要求がデータの読み出しの場合には、ノードコンピュータ１１０４ｂは記憶手段３０２中の所定の位置からデータを読み出し、その結果を送信先に返信する。この動作は上で述べた例と基本的には同様のものである。具体的に言えば、ノードコンピュータ１１０４ｂに送信されてきた要求の発信元へ、処理の結果を返信するのであるから、処理結果の宛先、つまりディスティネーションアドレスはＩＰアドレスで表せば「ＩＰｃ」である。
【０１５０】
そしてノードコンピュータ１１０４ｂに送信されてきた要求の宛先（ＩＰアドレス「ＩＰｂｌ」）が、処理結果の発信元になるべきである。すなわち、処理結果の発信元（ソースアドレス）はＩＰアドレスで表せば「ＩＰｂｌ」となる。ノードコンピュータ１１０４ｂには既に説明したようにＩＰアドレス「ＩＰｂｌ」も付されているので、処理結果の発信元（ソースアドレス）が「ＩＰｂｌ」であることに何ら不整合ではない。なお、この様子が図１０上で模式的に表されている。
【０１５１】
次に、ステップＳ１１−５においては、ノードコンピュータ１１０４ｂが送信した読み出し結果を制御装置１２０２が受信する。具体的には内部インターフェースが受信する。この受信した読み出し結果のパケットは、外部インターフェース２００が、そのままユーザ１１００に送信する。この際、ＩＰアドレスの変換等は一切しない。図１０に示すように、ＩＰアドレスで表したソースアドレスは「ＩＰｂｌ」のままであり、ＩＰアドレスで表したディスティネーションアドレスも「ＩＰｃ」のままである。すなわち、この制御装置１２０２は従来の通常のルーティングを行っているだけである。ＩＰアドレスのルーティングの基本動作を非常に大雑把に言えば、自分の（又は自分のドメインに含まれる）ＩＰアドレスであれば自分が受取り、その他は、他のネットに転送するというものである。
【０１５２】
制御装置は受け取ったパケットのアドレスが自分以外の「ＩＰｃ」という値であったので、単純にこのパケットをインターネット１１０８側に転送するのである。この結果、ユーザ１１００は、データの読み出し結果を取得する。
【０１５３】
以上のような処理の結果、ユーザ１１００は、要求を、ＩＰアドレス「ＩＰｂｌ」宛に送信し、特にデータの読み出し要求の場合には、同じくＩＰアドレス「ＩＰｂｌ」からそのデータの読み出し結果を受信している。
【０１５４】
すなわち、ユーザ１１００から見ると、あたかも１台の制御装置１２０２によってデータの書き込み・読み出し処理が行われているかのように見えるのである。
【０１５５】
以上述べたように、本実施の形態によれば、以下の効果が得られる。
【０１５６】
（ａ）制御装置１２０２は、ＩＰアドレスの変換を一切行っていないので、その負担を減らすことができる。その結果、同じコンピュータを使用しながら、実質的には上記制御装置１０２に比べてその処理能力増大させることが可能となる。
【０１５７】
（ｂ）上述した実施の形態１では、アドレス変換によってユーザからのデータの読み出し要求や書き込み要求を対応するノードコンピュータに転送したいたので、その後その割り当てを覚えておく必要がある。しかし、本変形例ではＩＰアドレスの変換を何ら行っていないので、そのような処理が必要なく、制御装置１２０２の負荷が減り、その結果、実質的に実施の形態１の制御装置１０２の処理能力を増大させることができる。
【０１５８】
なお、これまで述べたように、制御装置１２０２は、コンピュータにより実現されている。この制御装置１２０２の各動作は、コンピュータをこのように動作させるプログラムによって規定されている。
【０１５９】
（４）データリンクアドレスの使用その２
上の変形例（３）では、ステップＳ１１−２において、検査手段２０２がノードコンピュータ１０４を特定するのにＩＰアドレスを用いたが、直接ＭＡＣアドレスを用いて特定することも好ましい。このようにＭＡＣアドレスを用いて特定することにより、割り当ての動作をＩＰアドレスのレベルより下位のレベル、すなわちＩＥＥＥ８０２シリーズによるネットワーク上におけるルーティング動作とすることができるので、制御装置１２０２の負荷をより一層低減させることができる。
【０１６０】
この場合は、ステップＳ１１−３においては、検査手段２０２が特定したＭＡＣアドレスをそのまま用いて内部インターフェース２０８が要求をノードコンピュータ１１０４に送信できるので、送信先を容易に特定することができ、さらにネットワーク型記憶装置１２００の性能を向上させることができる。
【０１６１】
【発明の効果】
以上述べたように、本発明によれば、複数のノードコンピュータと制御装置をネットワークに接続することにより、ユーザからは一台の記憶装置として認識することができる。
【０１６２】
また、本発明によれば、複数のノードコンピュータと制御装置をネットワークに接続することによって、記憶手段を含むノードコンピュータを容易に増やすことができ、記憶容量に大きな柔軟性を持たせることが可能である。
【図面の簡単な説明】
【図１】本実施の形態の制御装置やノードコンピュータが利用されている様子を表す模式図である。
【図２】本実施の形態の制御装置の機能構成ブロック図である。
【図３】本実施の形態のノードコンピュータの機能構成ブロック図である。
【図４】従来のＲＡＩＤ装置と本発明のネットワーク型記憶装置との比較図である。
【図５】ユーザがデータの書き込み要求を出した場合の動作を表すフローチャートである。
【図６】ユーザがデータの書き込み要求を出した場合のパケットの様子を表す説明図である。
【図７】ユーザがデータの読み出し要求を出した場合の動作を表すフローチャートである。
【図８】ユーザがデータの読み出し要求を出した場合の動作を表すフローチャートである。
【図９】ユーザがデータの読み出し要求を出した場合のパケットの様子を表す説明図である。
【図１０】変形例のパケットの様子を表す説明図である。
【図１１】変形例の動作を表すフローチャートである。
【符号の説明】
１００　ネットワーク型記録装置
１０２　制御装置
１０４ａ、１０４ｂ、１０４ｃ　ノードコンピュータ
１０６　内部ネットワーク
１０８　ユーザ
１１０　外部ネットワーク
２００　外部インターフェース
２０２　検査手段
２０４　パリティ調整手段
２０６　復元手段
２０８　内部インターフェース
１１００　ユーザ
１１０４ａ、１１０４ｂ、１１０４ｃ、１１０４ｄ　ノードコンピュータ
１１０６　内部ネットワーク
１１０８　インターネット
１２００　ネットワーク型記録装置
１２０２　制御装置
【図１】
2004139379.tif 000003
【図２】
2004139379.tif 000004
【図３】
2004139379.tif 000005
【図４】
2004139379.tif 000006
【図５】
2004139379.tif 000007
【図６】
2004139379.tif 000008
【図７】
2004139379.tif 000009
【図８】
2004139379.tif 000010
【図９】
2004139379.tif 000011
【図１０】
2004139379.tif 000012
【図１１】
2004139379.tif 000013