(57)【要約】物理共用ストレージノードなしで、ポリシングプロトコル（３１１、３２１）およびミラーエンジン（３１７、３２７）を使って仮想ストレージエリアネットワーク（３４０）を提供するためのデータミラーリング。ミラーエンジン（３１７、３２７）はネットワーク（３０１）内の各サーバコンピュータ（３１０、３２０）にあり、各サーバが書込み処理を受け取って実行するときに各サーバ（３１０、３２０）の大容量記憶装置（３１９、３２９）間でデータをミラーリングし、その結果、各大容量記憶装置が同じ記憶データを含むことになる。ポリシングプロトコル（３１１、３２１）は、一度に１台のサーバ（３１０、３２０）だけにしかデータファイルへの書込みを許さないことによって、データ破壊を防止する。１台のサーバ（３１０、３２０）が故障しネットワークデータへのアクセスを提供できない場合は、すべてのサーバからすべてのネットワークデータにアクセス可能なので、他方のまたは他のサーバがすべての読取り要求を処理することができる。従来のストレージエリアネットワークと異なり、物理共用ストレージノードはなく、したがって、仮想ストレージエリアネットワーク（３４０）を取得し稼動させるコストは比較的小さい。
2004535012.tif 000002
【特許請求の範囲】
【請求項１】
第１の大容量記憶装置を備える第１のサーバおよび第２の大容量記憶装置を備える第２のサーバを含むネットワークにおいて、仮想ストレージエリアネットワークを構築するように前記第１の大容量記憶装置に記憶されたデータを前記第２の大容量記憶装置にミラーリングする方法であって、
前記第１のサーバで書込み要求を受け取る工程と、
前記第１の大容量記憶装置にデータを書き込むために前記第１のサーバで前記書込み要求を実行する工程と、
前記第１のサーバのミラーエンジンを使って、前記書込み要求のコピーを前記第２のサーバに送る工程と、
前記第２の大容量記憶装置に前記データを書き込むために前記第２のサーバで前記書込み要求の前記コピーを実行し、それによって前記データを前記第２の大容量記憶装置にミラーリングする工程とを含み、前記データが、前記第１のサーバおよび前記第２のサーバから見て、事実上、ストレージエリアネットワークの共用ストレージノードに記憶されているように見える
ことを特徴とするデータミラーリング方法。
【請求項２】
前記書込み要求のコピーを送る前記工程は、前記第１のサーバと前記第２のサーバとの間の専用リンクを使って前記書込み要求の前記コピーを送る工程を含むことを特徴とする請求項１に記載のデータミラーリング方法。
【請求項３】
前記書込み要求のコピーを送る前記工程は、前記ネットワークのインフラストラクチャを使って前記書込み要求の前記コピーを送る工程を含み、前記インフラストラクチャは、前記ネットワークがワークステーションとサーバとの間で使用されデータを送ることを特徴とする請求項１に記載のデータミラーリング方法。
【請求項４】
前記第１の大容量記憶装置にある前記データへのアクセスが不能になるような故障が発生する工程と、
前記第２の大容量記憶装置にミラーリングされた前記データにアクセスすることによって、前記第１の大容量記憶装置に書き込まれたデータに対する読取り要求を実行する工程と
をさらに含むことを特徴とする請求項１に記載のデータミラーリング方法。
【請求項５】
前記故障は前記第１のサーバがオフラインになることを含むことを特徴とする請求項４に記載のデータミラーリング方法。
【請求項６】
前記故障は、前記第１の大容量記憶装置の故障を含むことを特徴とする請求項４に記載のデータミラーリング方法。
【請求項７】
前記第１のサーバで前記書込み要求を実行する前記工程の前に、ポリシングプロトコルを使って前記第１のサーバが書込みアクセス権を有しているかどうか判定する工程をさらに含むことを特徴とする請求項１に記載のデータミラーリング方法。
【請求項８】
前記第１のサーバで前記書込み要求を実行する前記工程は、前記第１のサーバで入出力ドライバを使って前記書込み要求の実行を開始する工程を含み、前記入出力ドライバから見て、前記書込み要求は、事実上、ストレージエリアネットワークの共用ストレージノードに記憶されているように見えることを特徴とする請求項３に記載のデータミラーリング方法。
【請求項９】
第１の大容量記憶装置を備える第１のサーバおよび第２の大容量記憶装置を備える第２のサーバを含むネットワークにおいて、仮想ストレージエリアネットワークを介して前記第１のサーバおよび前記第２のサーバから前記データにアクセス可能にするように、前記第１の大容量記憶装置に記憶されたデータを前記第２の大容量記憶装置にミラーリングする方法であって、
前記第１のサーバおよび前記第２のサーバから見て、仮想共用ストレージノードを含むように見える仮想ストレージエリアネットワークを構築する工程であって、前記仮想共用ストレージノードが、前記第１の大容量記憶装置、前記第２の大容量記憶装置、前記第１の大容量記憶装置と前記第２の大容量記憶装置との間のデータミラーリング手段、および前記第１のサーバと前記第２のサーバとの間の通信手段を物理的に含む工程と、
前記仮想共用ストレージノードにデータを書き込むよう指定する書込み要求を受け取る工程と、
前記第１の大容量記憶装置に前記データを書き込む工程であって、前記第１の大容量記憶装置にある前記データが前記第１のサーバからアクセス可能な工程と、
前記第２の大容量記憶装置に前記データをミラーリングできるように、前記第２のサーバに前記書込み要求のコピーを送る工程であって、前記第２の大容量記憶装置にある前記データが前記第２のサーバからアクセス可能な工程と
を含むことを特徴とするデータミラーリング方法。
【請求項１０】
前記データミラーリング手段は、前記第１のサーバに関連する第１のミラーエンジンおよび前記第２のサーバに関連する第２のミラーエンジンを含むことを特徴とする請求項９に記載のデータミラーリング方法。
【請求項１１】
前記書込み要求のコピーを送る前記工程は、前記第１のミラーエンジンを使って前記書込み要求の前記コピーの前記第２のミラーエンジンへの送信を開始する工程を含むことを特徴とする請求項９に記載のデータミラーリング方法。
【請求項１２】
前記通信手段は、前記第１のサーバと前記第２のサーバとの間でデータを送るための専用リンクを含むことを特徴とする請求項９に記載のデータミラーリング方法。
【請求項１３】
前記通信手段は前記ネットワークのインフラストラクチャを含み、前記インフラストラクチャは、前記ネットワークがワークステーションとサーバとの間でデータを送るためにも使用されることを特徴とする請求項９に記載のデータミラーリング方法。
【請求項１４】
前記第２の大容量記憶装置にあるデータへのアクセスが不能になるような故障が発生する工程と、
他のデータに対する読取り要求を実行する工程であって、前記他のデータを前記仮想共用ストレージノードに書き込むよう指定する書込み要求を前記第２のサーバが受け取ったことに応答して前記他のデータが前記仮想共用ストレージノードに記憶されており、前記仮想共用ストレージノードにある前記データにアクセスすることによって前記読取り要求が実行される工程と
をさらに含むことを特徴とする請求項９に記載のデータミラーリング方法。
【請求項１５】
前記仮想共用ストレージノードにある前記データにアクセスすることによって前記読取り要求を実行する工程は、前記第１の大容量記憶装置にある前記データにアクセスする工程を含むことを特徴とする請求項１４に記載のデータミラーリング方法。
【請求項１６】
第２の大容量記憶装置を備える第２のサーバをも含むネットワークに含まれ、第１の大容量記憶装置を備える第１のサーバにおいて、仮想ストレージエリアネットワークを構築するように前記第１の大容量記憶装置に記憶されたデータを前記第２の大容量記憶装置にミラーリングする方法であって、
前記第１のサーバで書込み要求を受け取る工程と、
前記第１のサーバに関連するポリシングプロトコルモジュールを使って、前記第２のサーバが、現在、それがあるとデータ破壊を招くことがある前記第１の大容量記憶装置の一部または前記第２の大容量記憶装置の一部に対する書込みアクセス優先権を有していないと判定する工程と、
前記第１の大容量記憶装置の一部にデータを書き込むように前記第１のサーバで前記書込み要求を実行する工程と、
前記第１のサーバのミラーエンジンを使って、前記第２の大容量記憶装置に前記データを書き込めるように前記第２のサーバに前記書込み要求のコピーを送り、それによって、前記第１のサーバと前記第２のサーバの両方が前記データにアクセスできるようにする工程とを含み、前記データが、前記第１のサーバおよび前記第２のサーバから見て、ストレージエリアネットワークの共用ストレージノードに記憶されているように見える
ことを特徴とするデータミラーリング方法。
【請求項１７】
前記ポリシングプロトコルモジュールを使う工程は、前記第２のサーバが現在、書込みアクセス優先権を有していないと判定するように、前記第１のサーバが前記第２のサーバとやりとりする工程を含むことを特徴とする請求項１６に記載のデータミラーリング方法。
【請求項１８】
前記やりとりする工程は、前記ネットワークのインフラストラクチャを介してやりとりすることによって実施され、前記インフラストラクチャは、前記ネットワークによって使用されワークステーションとサーバとの間でデータを送ることを特徴とする請求項１７に記載のデータミラーリング方法。
【請求項１９】
前記第２の大容量記憶装置にあるデータへのアクセスが不能になるような故障が発生する工程と、
他のデータに対する読取り要求を実行する工程であって、前記他のデータを記憶するよう指定する別の書込み要求を前記第２のサーバが受け取ったことに応答して前記他のデータが前記第１の大容量記憶装置にミラーリングされており、前記第１の大容量記憶装置にある前記データにアクセスすることによって前記読取り要求が実行される工程と
をさらに含むことを特徴とする請求項１６に記載のデータミラーリング方法。
【請求項２０】
第１のサーバおよび第２のサーバが物理的に異なる大容量記憶装置にある同じデータにアクセスすることを可能にする仮想ストレージエリアネットワークであって、
ネットワーククライアントから書込み要求および読取り要求を受け取ることができ、
第１の大容量記憶装置、および
第１のミラーエンジン
を備える第１のサーバと、
ネットワーククライアントから書込み要求および読取り要求を受け取ることができ、
第２の大容量記憶装置、および
第２のミラーエンジン
を備える第２のサーバと、
前記第１の大容量記憶装置にも書き込まれる第１のデータを前記第１のミラーエンジンが前記第２の大容量記憶装置にミラーリングできるようにし、さらに、前記第２の大容量記憶装置にも書き込まれる第２のデータを前記第２のミラーエンジンが前記第１の大容量記憶装置にミラーリングできるようにし、それによって、前記第１のサーバおよび前記第２のサーバが物理的に異なる大容量記憶装置にある同じデータにアクセスできるようにする前記第１のミラーエンジンと前記第２のミラーエンジンとの間の通信手段と
を含むことを特徴とする仮想ストレージエリアネットワーク。
【請求項２１】
前記通信手段は、前記第１のミラーエンジンと前記第２のミラーエンジンとの間の専用リンクを含むことを特徴とする請求項２０に記載の仮想ストレージエリアネットワーク。
【請求項２２】
前記通信手段は、前記ネットワークのインフラストラクチャに含まれ、前記インフラストラクチャは、前記ネットワークによって使用されワークステーションとサーバとの間でデータを送ることを特徴とする請求項２０に記載の仮想ストレージエリアネットワーク。
【請求項２３】
ネットワーククライアントから書込み要求および読取り要求を受け取ることができ、
第３の大容量記憶装置と、
前記第３の大容量記憶装置に書き込まれるデータを前記第１の大容量記憶装置および前記第２の大容量記憶装置にミラーリングすることができる、第３のミラーエンジンと
を含む第３のサーバをさらに含むことを特徴とする請求項２０に記載の仮想ストレージエリアネットワーク。
【請求項２４】
前記第３のサーバと前記第１のサーバとの間の通信手段、ならびに前記第３のサーバと前記第２のサーバとの間の通信手段をさらに含むことを特徴とする請求項２３に記載の仮想ストレージエリアネットワーク。
【請求項２５】
前記第１のサーバおよび前記第２のサーバは、ポリシングプロトコルを実行して、サーバが、書込み要求を受け取った時に、前記第１の大容量記憶装置および前記第２の大容量記憶装置にデータを書き込むための書込みアクセス優先権を有しているかどうか判定することを特徴とする請求項２０に記載の仮想ストレージエリアネットワーク。
【請求項２６】
前記ポリシングプロトコルは、書込み要求が、前記第１の大容量記憶装置および前記第２の大容量記憶装置の特定の部分に対する未実行の可能性がある他のどの書込み要求より高い優先度を有している場合に限り、その書込み要求に応答して、前記第１のサーバおよび前記第２のサーバが、前記第１の大容量記憶装置および前記第２の大容量記憶装置の特定の部分にデータを書き込めるようにすることを特徴とする請求項２５に記載の仮想ストレージエリアネットワーク。
【請求項２７】
前記第１のサーバは第１のポリシングプロトコルモジュールをさらに含み、
前記第２のサーバは第２のポリシングプロトコルモジュールをさらに含み、前記第１のポリシングプロトコルモジュールと前記第２のポリシングプロトコルモジュールを併用して前記ポリシングプロトコルを実行することを特徴とする請求項２５に記載の仮想ストレージエリアネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークサーバコンピュータシステムに関し、詳細には、複数のサーバコンピュータが同じネットワークデータにアクセスする、仮想ストレージエリアネットワークを提供するシステムにおけるコンピュータ故障からの回復に使用される方法の改善に関する。
【背景技術】
【０００２】
ネットワークサーバコンピュータシステムには、通常は、２台以上のサーバによってサポートされる複数のパーソナルコンピュータまたはユーザワークステーションがある。これらのコンピュータシステムの連続稼動を実現するには、そのコンピュータシステムが、そのネットワークサーバコンピュータシステム内でしばしば発生する障害および故障を克服する方法を提供する必要がある。これは、一般に、一次サーバコンピュータまたはディスクドライブに障害または故障が発生した場合に引き継ぐために、バックアップサーバコンピュータまたはディスクドライブが直ちに使用可能なように、冗長コンピュータおよび大容量記憶装置を設けることによってなされる。
【０００３】
耐障害コンピュータシステムを実装する技法は、文献に記載されている（例えば、Major他、特許文献１）。具体的には、Majorは、コンピュータまたはファイルサーバの１つの大容量記憶装置のどちらかの故障から回復することができる冗長なネットワークファイルサーバシステムを提供している。このファイルサーバオペレーティングシステムは、そのネットワークファイルサーバ中の各コンピュータシステム上で稼動し、各コンピュータシステムは協働してこの冗長なネットワークファイルサーバを実現する。この技法は、ユタ州プロボのノベル社（Ｎｏｖｅｌｌ、Ｐｒｏｖｏ、ＵＴ）により、同社のＳＦＴ−ＩＩＩ耐障害ファイルサーバ製品の実装に使用されている。
【０００４】
ごく最近、「ストレージエリアネットワーク」として知られる耐障害ネットワークが開発された。ストレージエリアネットワーク（「ＳＡＮ」）は、ネットワークデータを記憶しこれにアクセスするために、１つのエンタープライズネットワークの複数のサーバを共通または共用のストレージノードに接続する。サーバの１台が故障した場合は、その他のサーバが、通常ならば故障したサーバによって提供されたはずのネットワークサービスを実施することができる。
【０００５】
図１に従来のストレージエリアネットワークを含むネットワークシステムの典型的なアーキテクチャを示す。図１には、ネットワーク１０１のネットワークサービスを提供する３台のサーバコンピュータ１１０、１２０、１３０が示されている。図１には３台のサーバを示してあるが、ネットワーク１０１は、２台のサーバだけしか含まないことも、図１に示す台数より多くのサーバを含むこともできる。このサーバコンピュータの可変台数は、提供されるネットワークの個々の必要性に応じて変わる。例えば、大規模組織では数台のサーバコンピュータの使用を必要とすることがあり、同様に、より小規模な組織では、単に２台のサーバコンピュータだけしか必要としないことがある。
【０００６】
この構成において、ユーザワークステーション（またはパーソナルコンピュータ）１０２はネットワーク１０１に接続されており、サーバコンピュータ１１０、１２０、１３０にアクセスすることができる。各ユーザワークステーションは、一般に、特定のサーバコンピュータに関連付けられるが、ストレージエリアネットワークを含むネットワークシステムでは、必要に応じて、どのサーバも、実質的に、どのワークステーション用のどんなネットワークサービスでも提供することができる。ユーザワークステーション１０２の所のユーザは、読取り、書込みなどの処理を求める要求を発行し、それらの要求が関連するサーバコンピュータ１１０、１２０、または１３０に送られ、次いで、そのサーバコンピュータが入出力ドライバ１１３、１２３、１３３を使って要求された処理を実施する。サーバ１１０、１２０、１３０は、共用ストレージノード１４０のディスク１４２に記憶されているネットワークデータに対するデータ処理を実施する。各サーバ１１０、１２０、１３０は、以下で述べるポリシングプロトコルに従って、共用ストレージノード１４０に記憶されている任意のネットワークデータにアクセスすることができる。図１のストレージエリアネットワークは、物理通信インフラストラクチャ、およびサーバコンピュータ１１０、１２０、１３０が共用ストレージノード１４０と共に動作できるようにするプロトコルを含む。
【０００７】
各サーバコンピュータは、それ以外のサーバコンピュータのポリシングプロトコルモジュールと協働して１つのポリシングプロトコルを実施するポリシングプロトコルモジュール１１１、１２１、１３１に相当するソフトウェアを含む。ポリシングプロトコルは、要求された処理の実施を制御することによってデータ破壊を防止する。例えば、モジュール１１１、１２１、１３１によって実施されるポリシングプロトコルは、サーバが読取り処理要求に応じることはいつでも許可するが、書込み処理要求を処理することは一度に１台のサーバコンピュータだけにしか許可しないようにすることができる。
【０００８】
ＳＡＮの１つの利点は、すべてのサーバコンピュータが、共用ストレージノードを介してすべてのネットワークデータにアクセスできることである。１台のサーバに故障が発生した場合、各ワークステーションは故障したサーバを迂回し他のサーバに処理要求を発行することができる。この共用ストレージノードは、異なるサーバに関連付けられた複数のストレージノード間でデータをミラーリングする必要をなくする。しかし、ストレージエリアネットワークには少なくとも２つの重大な不都合点があり、それらが、このネットワークが市場に全面的に受け入れられることを阻んできたのであり、このシステムを多くの顧客に適さないものにしている。
【０００９】
第１に、ＳＡＮは、専用のハードウェア、すなわち共用ストレージノードを必要とする。ストレージエリアネットワークの多くの潜在的ユーザにとって、共用ストレージノードを購入し維持するコストは法外に高い。実際、ＳＡＮの多くのユーザは、多数のサーバを備える比較的大規模なネットワークをもつ大企業などである。２台か３台のサーバだけしか必要としない企業にとっては、ストレージエリアネットワークを実装することが費用効果が高いとは考えられない。
【００１０】
第２に、ＳＡＮは、ネットワークサーバの故障に対する耐性はあるが、他のハードウェア故障に応答し、あるいはこれを防止するのにはあまり適さない。例えば、ストレージエリアネットワークでは単一の共用ストレージノードを使用するため、その共用ストレージノードに関連するどんな故障や問題でも、そのＳＡＮをオフラインにする可能性があり、また場合によっては、その共用ストレージノードに記憶されていたデータを失わせる可能性もある。したがって、基本的なＳＡＮ構成は高度のデータ完全性を提供せず、データ喪失のリスクを許容できない組織での使用には耐え得ない。
【００１１】
【特許文献１】
米国特許第５，１５７，６６３号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、物理共用ストレージノードを使用せずに仮想ストレージエリアネットワークを提供するコンピュータネットワークに関する。
【課題を解決するための手段】
【００１３】
本発明によれば、このネットワークは、それぞれが、ネットワークデータを記憶するために各自のディスクを備える２台以上のサーバを含む。以下の考察では、２台のサーバを備えるネットワークを考える。ただし、２台のサーバに関して述べる原理は、２台を上回るサーバを備えるネットワークに敷衍することができる。
【００１４】
ネットワーク内のユーザワークステーションが一方のサーバに書込み処理要求を発行すると、その要求を受け取ったサーバはそれ自体のディスクにおいてその書込み処理を実行し、ミラーエンジンおよび専用リンクを使ってその書込み処理要求を他方のサーバに送る。そのミラーリングされた書込み処理要求を受け取ると、他方のサーバは、それ自体のディスクにおいてその書込み処理を実行する。このようにして、一方のサーバのディスクに書き込まれたデータが別のサーバのディスクにも書き込まれ、それによって、そのネットワークデータが両方のディスクにミラーリングされ記憶される。
【００１５】
両方のサーバのディスクに同じネットワークデータが存在するので、任意のユーザワークステーションからの読取り処理要求にどちらのサーバでも応じることができる。各サーバにあるポリシングプロトコルモジュールは、協働してポリシングプロトコルを実施し、このプロトコルが、各サーバがそのネットワークデータにアクセスするためのタイミングおよび優先度を調整する。例えば、このポリシングプロトコルは、一度に１台のサーバだけしかそのネットワークデータの個々の部分への書込み要求を処理できないと指定し、それによってデータが破壊されるのを防止することができる。
【００１６】
データがネットワーク内にある各サーバのディスクにミラーリングされ記憶されるので、そのネットワークは、一方のサーバの故障に容易に耐えることができる。例えば、第１のサーバに故障が発生した場合、他方のサーバはそれ自体のディスクに記憶されたすべてのネットワークデータにアクセスすることができ、それ自体のディスクを使ってすべての処理要求を処理することができる。ネットワーク内の各サーバのディスクに同じネットワークデータが記憶されているので、そのデータは、サーバから見ると、１台の共用ストレージノードに記憶されているように見える。したがって、本発明は、各サーバがすべてのネットワークデータに直ちにアクセスできるという点で実際のストレージエリアネットワークが故障に対応する方式に類似したやり方で処理要求およびネットワークサーバの故障に対応する、仮想ストレージエリアネットワークを提供する。
【００１７】
本発明の仮想ストレージエリアネットワークおよび仮想共用ストレージノードには、従来のストレージエリアネットワークと比べて著しい利点がある。例えば、本発明のネットワークは物理共用ストレージノードを必要としない。したがって、従来のストレージエリアネットワークに関連するコストの多くが不要になる。本発明によりこのネットワークの稼動コストが低減されるので、わずか２台のサーバしか含まないネットワークを所持する企業にもこのネットワークを適合させることができる。
【００１８】
さらに、１台の物理共用ストレージノードを使用するのとは異なり、複数のサーバのディスクに同じネットワークデータをミラーリングし記憶することによって、本発明のネットワークでは、従来のストレージエリアネットワークよりもディスク故障に対して著しく大きな耐性が得られる。例えば、本発明に従って動作するネットワークの一方のサーバのディスクが故障した場合、ネットワーク内の他方のサーバのディスクにはすべてのネットワークデータが記憶されていたはずである。それとは対照的に、従来のストレージエリアネットワークの物理共用ストレージノードが故障した場合、そのノードに記憶されたデータは失われる可能性があり、あるいは、最低限でも、そのデータが一時的にアクセス不能になるはずである。
【００１９】
本発明のその他の特徴および利点については、以下の詳細な説明で述べる。その一部はこの説明を読めば自明であり、あるいは本発明を実施することによって知ることができる。これらの本発明の特徴および利点は、添付の特許請求の範囲で具体的に指摘される手段およびそれらの組み合わせによって実現し得ることができる。本発明の上記その他の特徴は、以下の詳細な説明および添付の特許請求の範囲を読めばより完全に明らかになり、あるいは以下で述べるように本発明を実施することによって知ることができる。
【００２０】
どのようにすれば本発明の上記その他の利点および特徴を得られるか説明するために、上記で簡単に述べた本発明のより詳細な説明を、添付の図面に示す本発明の具体的な実施形態に関して以下で示す。これらの図面は、本発明の典型的な実施形態を示すものにすぎず、したがって、本発明の範囲を限定するものと見なすべきでないという理解の下に、添付の図面を使用して、以下で、本発明をより具体的かつ詳細に述べ説明する。
【発明を実施するための最良の形態】
【００２１】
本発明は、複数のサーバのディスク上にネットワークデータをミラーリングして記憶し、それら複数のサーバが、物理共用ストレージノードをもたずに、仮想ストレージエリアネットワークを提供するネットワークに関する。このネットワーク内の複数のサーバのそれぞれは、ネットワークデータを記憶するディスクと、そのサーバとネットワーク内の他のサーバとの通信を可能にするミラーエンジンとを備える。このサーバは、書込み処理要求を受け取ると、その書込み処理をそれ自体のディスクで実行すると共に、ミラーエンジンおよび専用リンク、あるいは他の通信手段を使って、その書込み処理要求をネットワーク内の他のサーバに送る。他のサーバは、その書込み処理要求を受け取り、それらの対応するサーバのディスクでその書込み処理を実行する。このようにして、複数のサーバのそれぞれのディスクに同じネットワークデータが記憶される。これらのサーバの１台またはいずれかのサーバに関連するディスクが故障した場合は、ネットワーク内に残っている他方のまたは他のサーバが、それらのサーバに対応するディスクに記憶されたネットワークデータを使って、ネットワーク内の任意のユーザワークステーションのためにネットワークサービスを提供することができる。
【００２２】
Ａ．例示的稼働環境
本発明の実施形態は、以下でより詳細に論じるように、様々なコンピュータハードウェアを含む、専用または汎用コンピュータを含むことができる。また、本発明の範囲内に含まれる実施形態は、コンピュータ実行可能命令またはデータ構造を搬送または記憶するコンピュータ可読媒体を含むこともできる。そうしたコンピュータ可読媒体は、汎用または専用コンピュータからアクセスできる使用可能などんな媒体でもよい。例を挙げると、それだけには限らないが、そうしたコンピュータ可読媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ他の光ディスク記憶装置、磁気ディスク記憶装置他の磁気記憶装置、あるいは、コンピュータ実行可能命令またはデータ構造の形で所望のプログラムコード手段を搬送または記憶するのに使用でき、かつ汎用または専用コンピュータからアクセスできる他の任意の媒体を含むことができる。ネットワークまたは別の通信接続（有線、無線、または有線または無線の組み合わせのいずれか）を介してコンピュータに情報が転送または提供されるとき、そのコンピュータは適切に、その接続を１つのコンピュータ可読媒体と見なす。したがって、そうしたどんな接続も、適切に、コンピュータ可読媒体と呼ばれる。コンピュータ可読媒体の範囲内には上記のものの組合せも当然含まれる。コンピュータ実行可能命令には、例えば、汎用コンピュータ、専用コンピュータまたは専用処理装置に特定の機能または機能群を実施させる命令およびデータが含まれる。
【００２３】
図２および以下の考察は、本発明を実装するのに適したコンピュータ環境の簡潔な、一般的記述を提供するためのものである。必須ではないが、以下では本発明を、ネットワーク環境においてコンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的状況で説明する。一般に、プログラムモジュールには、個々のタスクを実施し、あるいは個々の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。コンピュータ実行可能命令、関連データ構造、およびプログラムモジュールが、本明細書で開示する方法のステップを実行するプログラムコード手段の例である。そうした実行可能命令または関連データ構造の特定のシーケンスが、それらのステップに記述される機能の実装に対応する各動作の例である。
【００２４】
本発明が、パーソナルコンピュータ、ハンドヘルド機器、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含めて、多様なコンピュータシステム構成を有するネットワークコンピュータ環境で実施できることを、当分野の技術者は理解するであろう。また、本発明は、通信ネットワークを介して（有線リンク、無線リンク、または有線または無線リンクの組み合わせのいずれかによって）リンクされた、ローカルおよびリモートの処理装置によってタスクが実施される、分散コンピュータ環境でも実施することができる。分散コンピュータ環境では、プログラムモジュールはローカル記憶装置とリモート記憶装置の両方に位置することができる。
【００２５】
図２を参照すると、本発明を実装するための例示的システムは従来型のコンピュータ２０の形での汎用コンピュータ装置を含み、この装置は処理装置２１、システムメモリ２２、およびシステムメモリ２２を含む様々なシステムコンポーネントを処理装置２１に結合するシステムバス２３を含む。システムバス２３は、メモリバスまたはメモリ制御装置、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のいずれでもよい。システムメモリは読取専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。起動時などにコンピュータ２０内の要素間の情報転送を支援する基本ルーチンを含む、基本入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４に記憶することができる。
【００２６】
また、コンピュータ２０は、磁気ハードディスク３９の読取りおよび書込みのための磁気ハードディスクドライブ２７、取り外し可能磁気ディスク２９の読取りおよび書込みのための磁気ディスクドライブ２８、ＣＤ−ＲＯＭまたは他の光媒体など取り外し可能光ディスク３１の読取りおよび書込みのための光ディスクドライブ３０も含む。前述の構造のいずれも、本明細書で述べる仮想ストレージエリアネットワークの構築に使用できる記憶装置や記憶ボリュームの例である。磁気ハードディスクドライブ２７、磁気ディスクドライブ２８、光ディスクドライブ３０は、それぞれ、ハードディスクドライブインタフェース３２、磁気ディスクドライブインタフェース３３、光ドライブインタフェース３４によって、システムバス２３に接続される。これらのドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ２０のための、コンピュータ実行可能命令、データ構造、プログラムモジュールおよびその他のデータの不揮発性記憶を提供する。本明細書で述べる例示的環境は、磁気ハードディスク３９、取り外し可能磁気ディスク２９および取り外し可能光ディスク３１を用いるが、磁気カセット、フラッシュメモリカード、ＤＶＤ、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭなどを含めて、他のタイプのデータ記憶用コンピュータ可読媒体を使用することもできる。
【００２７】
オペレーティング・システム３５、１つまたは複数のアプリケーションプログラム３６、その他のプログラムモジュール３７、およびプログラムデータ３８を含めて、１つまたは複数のプログラムモジュールを含むプログラムコード手段は、ハードディスク３９、磁気ディスク２９、光ディスク３１、ＲＯＭ２４またはＲＡＭ２５に記憶させることができる。ユーザは、キーボード４０、ポインティング装置４２、またはマイクロフォン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなど他の入力装置（図示せず）を介して、コンピュータ２０にコマンドおよび情報を入力することができる。上記およびその他の入力装置は、しばしば、システムバス２３に結合されたシリアルポートインタフェース４６を介して処理装置２１に接続される。あるいは、これらの入力装置は、パラレルポート、ゲームポート、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）など他のインタフェースによって接続することもできる。また、システムバス２３には、ビデオアダプタ４８などのインタフェースを介して、モニタ４７または他の表示装置も接続される。モニタの他に、パーソナルコンピュータは、一般に、スピーカやプリンタなど、他の周辺出力装置（図示せず）も含む。
【００２８】
コンピュータ２０は、リモートコンピュータ４９ａ、４９ｂなどの１台または複数のリモートコンピュータへの論理接続を使って、ネットワーク環境で動作することができる。リモートコンピュータ４９ａ、４９ｂは、それぞれ、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の通常のネットワークノードとすることができ、一般に、コンピュータ２０に関連する前述の各要素の多くまたは全部を含むことができるが、図２には記憶装置５０ａ、５０ｂとそれらに関連するアプリケーションプログラム３６ａ、３６ｂのみを示してある。図２に示す論理接続には、それだけに限らないが例として本明細書に示す、ローカルエリアネットワーク（ＬＡＮ）５１および広域ネットワーク（ＷＡＮ）５２が含まれる。こうしたネットワーク環境は、事業所単位または企業単位のコンピュータネットワーク、イントラネットおよびインターネットではよく見られるものである。
【００２９】
ＬＡＮネットワーク環境で使用されるとき、コンピュータ２０はネットワークインタフェースまたはアダプタ５３を介してローカルネットワーク５１に接続される。ＷＡＮネットワーク環境で使用されるとき、コンピュータ２０は、モデム５４、無線リンク、またはインターネットなど広域ネットワーク５２を介して通信を確立する他の手段を含むことができる。モデム５４は、内蔵または外付けとすることができ、シリアルポートインタフェース４６を介してシステムバス２３に接続される。ネットワーク環境では、コンピュータ２０に関連して示すプログラムモジュール、またはその一部は、リモート記憶装置に記憶させることができる。図示のネットワーク接続は例示的なものであり、広域ネットワーク５２を介して通信を確立する他の手段も使用できることが理解されよう。
【００３０】
Ｂ．仮想ストレージエリアネットワーク
図３に、本発明の仮想ストレージエリアネットワークの代表的構成を示す。図３の例では、例示のために、２台のサーバコンピュータ３１０、３２０がネットワーク３０１のためのネットワークサービスを提供するものとする。しかし、本発明のネットワークのアーキテクチャは、３台以上のサーバを備えるネットワークに容易に拡大することができる。その例については以下で図５を参照して論じる。また、ネットワーク３０１は、任意の台数のユーザワークステーション３０２を含み、それらはパーソナルコンピュータや、サーバ３１０、３２０からネットワークサービスを受け取る他のどんなコンピュータ装置とすることもできる。
【００３１】
各サーバ３１０、３２０は、ポリシングプロトコルモジュール３１１、３２１、および入出力装置ドライバ３１３、３２３を含む。サーバＡ３１０およびサーバＢ３２０は、仮想共用ストレージノード３４０を構築するように協力して動作する。仮想共用ストレージノード３４０は、図１の共用ストレージノード１４０などのような物理共用ストレージノードではない。それとは異なり、仮想共用ストレージノード３４０は、以下で図４を参照してより詳細に述べる様々なハードウェアおよびソフトウェアコンポーネントを含み、それらのコンポーネントは、入出力ドライバ３１３、３２３から見ると、実際の共用ストレージノードに関連付けられているように見える機能を提供する。したがって、この意味で、ネットワーク３０１は仮想共用ストレージノード３４０を含み、サーバ３１０、３２０から仮想共用ストレージノード３４０にアクセスできるようにするネットワーク３０１の部分は仮想ストレージエリアネットワークを表す。
【００３２】
また、仮想共用ストレージノード３４０と指定された図３の領域の外にある、ハードウェアおよびソフトウェアを含むネットワーク３０１のネットワーク構成は、既存のネットワークの対応するコンポーネントと類似のまたは実質的に同一のものとすることができ、図１に示すネットワーク１０１など従来の実際のストレージエリアネットワークの対応するコンポーネントと類似のまたは実質的に同一のものとすることもできる。本発明に従って動作するネットワークの一利点は、現在、従来のストレージエリアネットワークと共に使用するために存在する、既存のポリシングプロトコルソフトウェアおよび他のソフトウェアと共存できることである。
【００３３】
図４を参照すると、仮想共用ストレージノード３４０の物理コンポーネントは、図１の従来のストレージエリアネットワークの実際の共用ストレージノード１４０のコンポーネントと大きく異なることがわかる。例えば、図４のネットワーク３０１は物理共用ストレージノードを含まず、これにより、ストレージエリアネットワークを取得し稼動させることに伴う費用の多くが不要になる。その代わり、サーバ３１０はそれそれ自体のディスク３１９を備え、サーバ３２０もそれそれ自体のディスク３２９を備える。したがって、サーバ３１０、３２０は、それぞれがそれ自体のディスクを備える、普通のまたは従来のネットワークサーバとすることができる。言い換えると、サーバ３１０、３２０のハードウェアは、実際のストレージエリアネットワーク以外のエンタープライズネットワークで現在使用されている大多数のサーバのハードウェアと類似のまたは実質的に同一のものとすることができる。本明細書で使用する際、「ディスク」および「大容量記憶装置」は、本明細書に述べる方法を実施するための、どんなデータ記憶装置または構造も含むものであると広義に解釈すべきである。
【００３４】
このようなサーバ３１０、３２０が仮想ストレージエリアネットワーク機能を提供できるようにするコンポーネントには、ミラーエンジン３１７、３２７、および専用リンク３１５が含まれる。ミラーエンジン３１７、３２７が、大容量記憶装置間または異なるサーバのディスク間でデータをミラーリングする手段の例である。また、データミラーリング手段に相当する他の構造を本発明と共に使って本明細書で述べる機能を実施することもできる。さらに、前述のように、仮想共用ストレージノード３４０と指定された図４の領域の外にある、サーバ３１０、３２０で動作するポリシングプロトコルモジュール３１１、３２１および他のソフトウェアは、実際のストレージエリアネットワークのポリシングプロトコルおよび他の諸機能を動作させるのに従来使用されてきた既存のソフトウェアと類似のまたは同一のものとすることができる。
【００３５】
図６および図７に、ミラーエンジン３１７、３２７および専用リンク３１５を使って、どのようにディスク３１９、３２９上にデータをミラーリングし、それによってサーバ３１０、３２０がそれぞれすべてのネットワークデータにアクセスできるようにするかを示す。図６に示すように、ユーザワークステーション３０２ａのユーザは、データブロックＡ３５０をネットワーク３０１に関連するディスクに書き込むことを求める書込み処理要求をこのユーザワークステーションに発行させる。図６に示すように、この書込み処理要求はネットワーク３０１を介してサーバＡ３１０に送られる。ネットワーク３０１のどのサーバ（例えば、サーバＡ３１０やサーバＢ３２０）も、任意のユーザワークステーションからのすべての処理要求を処理することができるので、この処理を行うために個々のサーバ３１０や３２０をどのように選択するかは本発明にとって決定的なものではない。サーバ３１０、３２０間の負荷を均衡化するために、所望の任意の負荷均衡化アルゴリズムを実施することができる。あるいは、デフォルト設定で、個々のサーバを個々のユーザワークステーションに割り当てることもできる。
【００３６】
この例では、サーバＡ３１０がこの書込み処理要求を受け取りその要求を入出力ドライバ３１３に渡す。次いで、入出力ドライバ３１３は、その書込み処理要求を、入出力ドライバ３１３から見て、仮想共用ストレージノードであると見なされるもの（すなわち、図４の仮想共用ストレージノード３４０）に送る。
【００３７】
ポリシングプロトコルモジュール３１１は、サーバＢ３２０のポリシングプロトコルモジュール３２１と共に、サーバＡ３１０が、現在、ディスク３１９、３２９への書込みアクセス権を有しているかどうか判定するように動作する。ポリシングプロトコルモジュール３１１、３１２の１つの主要な目的は、一度に１台のサーバだけしかディスク３１９、３２９の個々のセクタまたはデータブロックに書込みアクセスできないようにすることである。各サーバ３１０、３２０は、一般に、すべてのネットワークデータにアクセスできるため、このポリシングプロトコルを実装せずに、どのサーバもこれらのディスクにいつでも書込みアクセスできるようにすると、データ破壊をもたらす可能性がある。入出力ドライバ３１３、３２３およびポリシングプロトコルモジュール３１１、３２１から見ると、サーバＡ３１０およびサーバＢ３２０は仮想共用ストレージノードを使用しているように見えるので、本発明と共に使用されるポリシングプロトコルは、実際のストレージエリアネットワークと共に従来使用されてきたポリシングプロトコルと類似のまたは同一のものとすることができる。言い換えると、以前述べたように、サーバＡ３１０上およびサーバＢ３２０上で動作するソフトウェアの多くは、実際のストレージエリアネットワークと共に使用される対応するソフトウェアと類似のまたは同一のものとすることができる。
【００３８】
本発明と共に従来のポリシングプロトコルを使用することができるので、当分野の技術者にはこのポリシングプロトコルの性質が理解されよう。一般に、ポリシングプロトコルは、従来のストレージエリアネットワークと共に使用するのであれ、あるいは本発明の仮想ストレージエリアネットワークと共に使用するのであれ、入出力要求を受け取ったサーバが、現在、そのネットワーク内のその他のサーバに対するアクセス優先権を有しているかどうか判定する。例えば、サーバＡ３１０が書込み処理要求を受け取るとした場合、サーバＡ３１０およびサーバＢ３２０は、ネットワーク３０１のネットワークインフラストラクチャを介して相互にやりとりし、ポリシングプロトコルモジュール３１１、３２１を使って、その書込み処理を受け取るディスクのセクタまたは他の部分への書込みアクセス優先権をどちらのサーバが有するか判定する。本発明と共に多様なポリシングプロトコルを使用することができるが、多くのポリシングプロトコルは、複数のサーバ間に分配され、それら複数のサーバが相互にやりとりするときに実行されるという共通の特徴を有する。
【００３９】
次に図６に戻ると、入出力ドライバは書込み処理要求を、その入出力ドライバが仮想共用ストレージノードであると見なすものに送る。ただし、物理的には、この書込み処理要求を受け取るのはミラーエンジン３１７である。この書込み処理要求は、ミラーエンジン３１７からディスク３１９に送られ、そこで処理されて、データＡ３５０がディスクの個々のセクタまたは他の領域に書き込まれる。データＡをディスク３２９にミラーリングするため、ミラーエンジン３１７は、サーバＢ３２０の対応するミラーエンジン３２７にもこの書込み処理要求を送る。この書込み処理要求は専用リンク３１５または別の通信手段によって送られる。別の通信手段には、任意の無線または有線通信手段の１つまたはその組み合わせを含むことができる。専用リンク３１５が使用される場合、この物理的専用リンクは、ネットワーク３０１と従来のネットワークとの間の１つの物理的相違点を表す。本発明の他の実施形態では、専用リンク３１５を使用せずに、ミラーエンジン３１７および３２７を使ってデータをミラーリングすることができる。例えば、通常は、ユーザワークステーション３０２とサーバ３１０、３２０との間でのデータ送信に使用されるネットワーク３０１のネットワークインフラストラクチャを使って、ミラーリングされた書込み処理要求をあるサーバから別のサーバに送ることもできる。専用リンク３１５、ネットワーク３０１のネットワークインフラストラクチャおよび他の通信手段が、サーバと大容量記憶装置または各サーバのディスクとの間の通信手段の例である。
【００４０】
いずれにしても、ミラーエンジン３２７は、ミラーリングされた書込み処理要求を受け取り、それをディスク３２９に送り、そこでその要求が処理されて、データＡ３５０がディスク３２９に書き込まれる。このようにして、ユーザワークステーション３０２ａが書込み処理要求を発行した後、この書込み処理要求に関連したデータはディスク３１９およびディスク３２９に書き込まれて、両方のディスクが同じネットワークデータのミラーリングされたコピーを含むことになる。また、ユーザワークステーション３０２ａ〜ｎの１台が、ファイルまたはディスク３１９からデータを削除させる書込み処理要求を発行するときにも、類似のプロセスが実施されることに留意されたい。言い換えると、ディスク３１９からデータが削除される場合、その同じデータがディスク３２９からも削除されて、両ディスクに同じネットワークデータがミラーリングされ記憶される。
【００４１】
図７に、ディスク３１９、３２９間でミラーリングされるデータの別の例を示す。この事例では、ユーザワークステーション３０２ｎは、データＢ３５２をディスク３２９に書き込むよう求める書込み処理要求を送る。この書込み処理要求はサーバＢ３２０に送られ、そこで入出力ドライバ３２３およびポリシングプロトコルモジュール３２１によって、上記で図６のデータＡ３５０の書込み処理要求に関して述べたものと同様の方式で処理される。図７では、ミラーエンジン３２７はこの書込み処理要求をディスク３２９に送り、そこでこの要求が処理され、データＢがディスク３２９に書き込まれる。さらに、ミラーエンジン３２７は、専用リンク３１５またはネットワーク３０１に関連する別の通信手段によって、この書込み処理要求をサーバＡ３１０の対応するミラーエンジン３１７に送る。次いで、ミラーエンジン３１７は、この書込み処理要求をディスク３１９に送り、そこでその要求が処理されて、データＢ３５２がディスク３１９に書き込まれる。したがって、図６および図７には、ネットワーク３０１内の任意のサーバ３１０、３２０が、書込み処理要求に関連するデータをそのネットワーク内のサーバのディスク３１９、３２９のそれぞれにどのようにして記憶させミラーリングさせることができるかが示されている。
【００４２】
図８に、書込み処理要求を処理し、それに関連するデータをネットワーク内の各ディスクにミラーリングする方法を要約する。ステップ７１０で、ユーザワークステーションは書込み処理要求を発行する。ステップ７２０で、この要求はネットワークを介して特定のサーバに送られる。ステップ７３０で、この特定のサーバがポリシングプロトコルを実行して、そのサーバが、現在、ネットワーク内のディスクへの書込みアクセス権を有するかどうか判定する。判断ブロック７３２により、そのサーバが書込みアクセス権をもたない場合、この処理要求はステップ７５１で拒まれステップ７５３で打ち切られる。あるいは、判断ブロック７３２により、そのサーバが書込みアクセス権をもたない場合、そのサーバに書込みアクセスが許可される時までその処理を待ち行列に入れておくこともできる。
【００４３】
判断ブロック７３２により、そのサーバが書込みアクセス権を有する場合、ステップ７４１でこの処理要求を受け入れる。次いで、ステップ７４３で、ミラーエンジンがこの書込み処理要求をコピーし、それをネットワーク内の１台または複数の他のサーバに送る。ステップ７４９で、この書込み処理要求を受信した特定のサーバは、それ自体のディスクでこの書込み処理を実行する。ステップ７４９と同時に、あるいはその直前または直後に、ステップ７５０が実行され、そこでこの書込み処理要求のミラーリングされたコピーを受け取ったネットワーク内の他方のまたは他のサーバが、ミラーリングされた書込み処理要求を処理して、同じネットワークデータが他方のまたは他のサーバに関連するディスクにも記憶されるようにする。ステップ７４３、７４９、７５０を実施する順序は、本発明にとって決定的なものではない。
【００４４】
図７を参照して、ネットワーク３０１がどのようにサーバまたはディスクの故障に対応しそれに耐えることができるかを示す。この例では、データＡ３５０およびデータＢ３５２が、前述のようにディスク３１９と３２９の両方にミラーリング済みであるものとする。サーバＡ３１０がオフラインになる前に、サーバＡは、サーバＡが各ワークステーションに図４の３４０に示す仮想共用ストレージノードへのアクセスを提供して、この仮想共用ストレージノードのディスクのサービスを必要とするどのワークステーションも、サーバＡ３１０を介してそれらのサービスを受けられるようにできることを知らせる。通常の動作では、サーバＡ３１０は、ディスク３１９を使ってこの仮想共用ストレージノードへのアクセスを提供する。この例では、サーバＡ３１０は動作可能のままであるが、これに関連するディスク３１９はオフラインになり何らかの事情で使用不能になるものとする。サーバＡ３１０は、ワークステーションに対して、サーバＡが、ディスク３１９を含むこの仮想共用ストレージノードへのアクセスを提供できると知らせ続ける。というのは、サーバＡ３１０から見れば、仮想共用ストレージノードおよびそこに記憶されたデータは、依然として使用可能であるからである。
【００４５】
ディスク３１９の故障後、ワークステーション３０２ａ〜ｄは、サーバＡ３１０を介して仮想共用ストレージノードによって処理される読取り処理要求を発行し続けることができる。この例では、ワークステーション３０２ａがデータＡ３５０向けの読取り処理要求を発行するものと想定する。サーバＡ３１０が読取り処理要求を受け取ると、入出力ドライバ３１３がこの読取り処理要求を受け取って、それを、図４に示すように仮想共用ストレージノード３４０内にあるミラーエンジン３１７に送る。
【００４６】
この時点において、この読取り処理要求は、サーバＡ３１０から見て、共用ストレージノードであると見なされる記憶装置に、通常のやり方で送られている。しかし、前述のように、ディスク３１９はアクセス不能であり、この読取り処理要求を処理することができない。したがって、この読取り処理要求は、専用リンク３１５を使ってサーバＢ３２０に送られる。次いで、この読取り処理要求を使って、データＡ３５０を含めてネットワークデータの完全なコピーを有する、ディスク３２９にアクセスする。したがって、ネットワーク３０１は、ミラーエンジン３１７、３２７を使って、サーバＡ３１０が受け取る読取り処理要求を転送することによって、ディスク３１９がアクセス不能であることにシームレスに対応することができる。ネットワーク３０１の動作は、ディスク３１９の故障にもかかわらず中断なしで続行する。さらに、サーバＡ３１０は、ディスク３１９の故障後、この仮想共用ストレージノードを使って同様の方式で、書込み処理要求など他のネットワーク処理要求に応じることができる。
【００４７】
ディスク故障に対応する前述の方法では、ディスク故障時に部分的に完了した可能性があるネットワークアクティビティを混乱させることなく、ネットワークアクティビティを続行させることができる。このようにしてディスク故障に対応するには、サーバＡ３１０の動作可能な入出力ドライバ３１３とミラーエンジン３１７が必要である。
【００４８】
これらのサーバＡ３１０の機能コンポーネントが動作不能になった場合、一実施形態によれば、ネットワーク３０１には、ネットワークデータへのアクセスを提供し続ける第２の方法がある。このシナリオでは、ユーザワークステーション３０２ａが、通常はサーバＡ３１０が処理するはずの読取り処理要求を発行するとした場合、サーバＢ３２０がこの読取り処理要求を処理することができる。というのは、サーバＢ３２０は、それ自体のディスク３２９上ですべてのネットワークデータにアクセスできるからである。例示のために、ユーザワークステーション３０２によって発行されたこの読取り処理要求はデータＡ３５０向けのものであるとする。サーバＡ３１０はオフラインなので、サーバＢ３２０がこの読取り処理要求を処理する。サーバＢ３２０は、ディスク３２９に記憶されたネットワークデータのミラーリングされたコピーを使ってこの読取り処理要求を処理し、それによってユーザワークステーションにデータＡ３５０への読取りアクセスを提供する。ネットワークのサーバの１台が故障し、あるいはそれ以外の理由でオフラインになった場合、従来のストレージエリアネットワークにおいてもすべてのサーバにすべてのネットワークデータへの読取りアクセスを提供させることができることに留意されたい。しかし、従来のストレージエリアネットワークとは異なり、本発明のネットワークは、物理共用ストレージノードを使用せずに任意のサーバを介してすべてのネットワークデータへのアクセスを提供する。
【００４９】
前述の、本発明のネットワークがディスクまたはサーバの故障後に稼動を続行できる機能の例は、従来のストレージエリアネットワークでは不可能な大きな利点を提供する。一般に、従来のストレージエリアネットワークには１台のコンポーネントしかなく、それが故障するとそのデータへのアクセスが不能になることがある。例えば、典型的な従来型のストレージエリアネットワークはＳＡＮ接続カードまたはディスクドライバを含み、それが動作可能でなければ共用ストレージノードへのアクセスを提供することができない。
【００５０】
また、従来のストレージエリアネットワークの共用ストレージノードのディスクが物理的に故障すると、そのデータへのアクセスが失われることがある。実際、図１の共用ストレージノード１４０が物理的に損傷した場合、あるいはそのノードに記憶されたデータが物理的に失われた場合、この従来型ストレージエリアネットワークでは、共用ストレージノード１４０の故障に伴う稼動停止時間に加えて、ネットワークデータに永久的で回復不能な損失を被る可能性もある。この可能性をなくすために、従来型ストレージエリアネットワークの管理者は、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙｓ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）を購入しそれを共用ストレージノードに維持することができるが、これはシステムのコストと複雑さを増大させる。前述のように、本発明は、ＲＡＩＤを必要とせずに、仮想共用ストレージノードにおけるディスクの耐障害機能を可能にする。
【００５１】
図３、４、６、７において、２台のサーバについて示した本発明の方法は、２台を上回るサーバを有するネットワークに拡大することができる。例えば図５には、本発明による、サーバＡ５２０、サーバＢ５２０、サーバＣ５３０の３台のサーバを備えるネットワークを示してある。図５のネットワーク５０１の動作は、図６および図７を参照して前述したネットワーク３０１の動作と同様である。例えば、サーバＡがユーザワークステーション５０２から書込み処理要求を受け取ると、この書込み処理要求は入出力ドライバ５１３によって処理される。ポリシングプロトコルモジュール５１１およびサーバＡ５１０は、サーバＢ５２０のポリシングプロトコルモジュール５２１およびサーバＣ５３０のポリシングプロトコルモジュール５３１と協力して動作する。
【００５２】
サーバＡ５１０のミラーエンジン５１７は、専用リンク５１５または他の通信リンクを介して、サーバＢ５２０のミラーエンジン５２７にこの書込み処理要求のコピーを送る。また、ミラーエンジン５１７は、専用リンク５５５または他の通信リンクを介して、サーバＣ５３０のミラーエンジン５３７にもこの書込み処理要求のコピーを送る。この場合も、他の任意の通信リンクを使用してネットワーク内のその他のサーバの様々なミラーエンジンに書込み処理要求のコピーを送れることに留意されたい。例えば、ネットワーク５０１のネットワークインフラストラクチャを使ってそうした書込み処理要求を送ることもできる。あるいは、専用リンク５１５、ミラーエンジン５２７、専用リンク５２５を順次介して書込み処理要求を送ることによって、ミラーエンジン５１７からミラーエンジン５３７に書込み処理要求を送ることもできる。重要なことは、ミラーエンジン５１７、５２７、５３７が相互にやりとりできることである。前述のように、ディスク５１９、５２９、５３９の１つに書き込まれたデータは、すべてのディスクに記憶される。サーバ５１０、５２０、５３０の１台が故障した場合、残りのサーバは、どのユーザワークステーションからのどのネットワークデータを求めるどんな要求も処理することができる。
【００５３】
本発明は、本発明の要旨やその本質的特徴から逸脱することなく、他の特定の形態で実施することができる。前述の実施形態は、あらゆる点において、例示のためのものにすぎず限定的なものではないと見なすべきである。したがって、本発明の範囲は、前述の説明によってではなく、添付の特許請求の範囲によって示される。この特許請求の範囲と等価の意味および範囲内に包まれるすべての変更は、この特許請求の範囲内に包含されるべきものである。
【図面の簡単な説明】
【００５４】
【図１】物理共用ストレージノードを備える従来のストレージエリアネットワークを含むネットワークシステムを示す図である。
【図２】本発明に適した稼働環境を提供するシステムの一例を示す図である。
【図３】仮想共用ストレージノードを示す、本発明による耐障害ネットワークを例示する概略図である。
【図４】図３の仮想共用ストレージノードの機能を提供するハードウェアその他のコンポーネントを示す、図３の耐障害ネットワークを例示する概略図である。
【図５】３台のサーバを備える、本発明によるネットワークを示す概略図である。
【図６】２台のサーバに関連付けられたディスク間でネットワークデータをミラーリングし、それによってサーバのそれぞれにそのネットワークデータへのアクセスを提供する方法を示す図である。
【図７】２台のサーバに関連付けられたディスク間でネットワークデータをミラーリングし、それによってサーバのそれぞれにそのネットワークデータへのアクセスを提供する方法を示す図である。
【図８】２台のサーバに関連付けられたディスク間でネットワークデータをミラーリングし、それによってサーバのそれぞれにそのネットワークデータへのアクセスを提供する方法を示す流れ図である。
【図１】
2004535012.tif 000003
【図２】
2004535012.tif 000004
【図３】
2004535012.tif 000005
【図４】
2004535012.tif 000006
【図５】
2004535012.tif 000007
【図６】
2004535012.tif 000008
【図７】
2004535012.tif 000009
【図８】
2004535012.tif 000010
【国際公開パンフレット】
2004535012.tif 000011
2004535012.tif 000012
2004535012.tif 000013
2004535012.tif 000014
2004535012.tif 000015
2004535012.tif 000016
2004535012.tif 000017
2004535012.tif 000018
2004535012.tif 000019
2004535012.tif 000020
2004535012.tif 000021
2004535012.tif 000022
2004535012.tif 000023
2004535012.tif 000024
2004535012.tif 000025
2004535012.tif 000026
2004535012.tif 000027
2004535012.tif 000028
2004535012.tif 000029
2004535012.tif 000030
2004535012.tif 000031
2004535012.tif 000032
2004535012.tif 000033
2004535012.tif 000034
2004535012.tif 000035
2004535012.tif 000036
2004535012.tif 000037
2004535012.tif 000038
2004535012.tif 000039
2004535012.tif 000040
2004535012.tif 000041
【国際公開パンフレット（コレクトバージョン）】
2004535012.tif 000042
【国際調査報告】
2004535012.tif 000043