(57)【要約】【課題】サーバ及びストレージシステム間に、スモールコンピュータシステムインターフェイス入力／出力(SCSI I/O)リファーラルを介してマルチパス機能を提供する。【解決手段】ストレージクラスタは、少なくとも２つのターゲットデバイスであるストレージ１０６、１０８を含む。例えば、ストレージ１０６において、サーバ１００から、データ要求を含む入力／出力(I/O)を受信したとき、データ要求に含まれるデータがストレージ１０６ではなくストレージ１０８に記憶されている場合、サーバ１０２へSCSI I/Oリファーラルリストを伝送する。リファーラルリストは、ストレージ１０８の第１及び第２ポートをそれぞれ識別するための第１及び第２のポート識別子を含んでいる。これら識別子によってターゲットデバイス１０８の第１及び第２のポートが特定されることにより、データ要求で要求されたデータにアクセスするためのアクセスポートとして使用可能となる。【選択図】図１
2011054152.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信可能に接続されるイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス入力／出力(SCSI I/O)リファーラルを介してマルチパス機能を提供するための方法であって、ストレージクラスタは、少なくとも第１のターゲットデバイス及び第２のターゲットデバイスを備えており、該方法は、
第1のターゲットデバイスにおいて、ネットワークを介してイニシエータから、データの第１部分及びデータの第２部分に対する要求を含んだ入力／出力(I/O)信号を受信するステップと、
データの第２部分ではなくデータの第１部分が第１のターゲットデバイスに記憶され、且つデータの第２部分が第２のターゲットデバイスに記憶されている場合に、イニシエータへデータの第１部分の転送を開始し、イニシエータへSCSI I/Oリファーラルリストを伝送するステップと
を含み、
リファーラルリストが、第２のターゲットデバイスの第１ポートを識別するための第１のSCSI関連ポート識別子と、第２のターゲットデバイスの第２ポートを識別するための第２のSCSI関連ポート識別子とを含み、第１及び第２のポートは、データの第２部分にアクセスするためのアクセスポートとして特定される
ことを特徴とする方法。
【請求項２】
請求項１記載の方法において、
該方法はさらに、第２のターゲットデバイスにおいて、ネットワークを介してイニシエータからリファーラルI/Oを受信するステップを含み、
リファーラルI/Oは、SCSI I/Oリファーラルリストに応答し、該リファーラルI/Oにより、イニシエータの指示通りに第１ポート及び第２ポートのいずれか一方を介して、データの第２部分へのアクセスが要求される
ことを特徴とする方法。
【請求項３】
請求項２記載の方法において、該方法はさらに、イニシエータへのデータの第２部分の転送を開始するステップを含むことを特徴とする方法。
【請求項４】
請求項３記載の方法において、データの第１部分は第１のデータセグメントに位置し、データの第２部分は第２のデータセグメントに位置することを特徴とする方法。
【請求項５】
請求項４記載の方法において、第１のデータセグメント及び第２のデータセグメントは、仮想ボリュームに含まれていることを特徴とする方法。
【請求項６】
請求項５記載の方法において、第１のターゲットデバイス及び第２のターゲットデバイスは、ディスク、ストレージアレイ、テープライブラリ、及びストレージデバイスのいずれかであることを特徴とする方法。
【請求項７】
請求項５記載の方法において、リファーラルリストは、第２のデータセグメントのデータオフセット値によって、第２のセグメントを識別することを特徴とする方法。
【請求項８】
請求項７記載の方法において、リファーラルリストは、第２のデータセグメントのデータ長によって、第２のセグメントを識別することを特徴とする方法。
【請求項９】
請求項８記載の方法において、リファーラルリストは、第１ポート識別子及び第２ポート識別子を、第２のデータセグメント、該第２のデータセグメントのデータオフセット、及び第２のデータセグメントのデータ長と関連付けることを特徴とする方法。
【請求項１０】
ネットワークを介して通信可能に接続されるイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス入力／出力(SCSI I/O)リファーラルを介してマルチパス機能を提供するための方法を実行するための、コンピュータ実行可能命令を有するコンピュータ可読記憶媒体であって、ストレージクラスタは、少なくとも第１のターゲットデバイス及び第２のターゲットデバイスを備えており、該方法は、
第1のターゲットデバイスで、ネットワークを介してイニシエータから、データの第１部分及びデータの第２部分に対する要求を備える入力／出力(I/O)を受信するステップと、
データの第２部分ではなくデータの第１部分が第１のターゲットデバイスに記憶され、且つデータの第２部分が第２のターゲットデバイスに記憶されている場合に、イニシエータへデータの第１部分の転送を開始し、イニシエータへSCSI I/Oリファーラルリストを伝送するステップと
を含み、
リファーラルリストが、第２のターゲットデバイスの第１ポートを識別するための第１のSCSI関連ポート識別子、及び、第２のターゲットデバイスの第２ポートを識別するための第２のSCSI関連ポート識別子を含み、第１ポート及び第２ポートは、データの第２部分にアクセスするためのアクセスポートとして特定される
ことを特徴とするコンピュータ可読記憶媒体。
【請求項１１】
請求項１０記載のコンピュータ可読記憶媒体において、該方法はさらに、第２のターゲットデバイスで、ネットワークを介してイニシエータからリファーラルI/Oを受信するステップを含み、リファーラルI/Oは、SCSI I/Oリファーラルリストに応答し、該リファーラルI/Oにより、イニシエータの指示通りに第１ポート及び第２ポートのいずれか１つを介して、データへのアクセスが要求されることを特徴とするコンピュータ可読記憶媒体。
【請求項１２】
請求項１１記載のコンピュータ可読記憶媒体において、該方法はさらに、イニシエータへのデータの第２部分の転送を開始するステップを含むことを特徴とするコンピュータ可読記憶媒体
【請求項１３】
請求項１２記載のコンピュータ可読記憶媒体において、データの第１部分が第１のデータセグメントに位置し、且つデータの第２部分が第２のデータセグメントに位置することを特徴とする、コンピュータ可読記憶媒体。
【請求項１４】
請求項１３記載のコンピュータ可読記憶媒体において、第１のデータセグメント及び第２のデータセグメントが、仮想ボリュームに含まれていることを特徴とするコンピュータ可読記憶媒体。
【請求項１５】
請求項１４記載のコンピュータ可読記憶媒体において、第１のターゲットデバイス及び第２のターゲットデバイスは、ディスク、ストレージアレイ、テープライブラリ、及びストレージデバイスのいずれかであることを特徴とするコンピュータ可読記憶媒体。
【請求項１６】
請求項１４記載のコンピュータ可読記憶媒体において、リファーラルリストは、第２のデータセグメントのデータオフセット値によって、第２のセグメントを識別することを特徴とするコンピュータ可読記憶媒体。
【請求項１７】
請求項１６記載のコンピュータ可読記憶媒体において、リファーラルリストは、第２のデータセグメントのデータ長によって、第２のセグメントを識別することを特徴とする、コンピュータ可読記憶媒体。
【請求項１８】
請求項１７記載のコンピュータ可読記憶媒体において、リファーラルリストは、第１ポート識別子及び第２ポート識別子を、第２のデータセグメント、該第２のデータセグメントのデータオフセット値、及び第２のデータセグメントのデータ長と関連付けることを特徴とするコンピュータ可読記憶媒体。
【請求項１９】
システムであって、
第1のターゲットデバイスにおいて、イニシエータから、データの第１部分及びデータの第２部分に対する要求を含んだ入力／出力(I/O)信号を受信する手段と、
データの第２部分ではなくデータの第１部分が第１のターゲットデバイスに記憶され、且つデータの第２部分が第２のターゲットデバイスに記憶されている場合に、イニシエータへデータの第１部分の転送を開始する手段と、イニシエータへSCSI I/Oリファーラルリストを伝送する手段と
を備え、
リファーラルリストが、第２のターゲットデバイスの第１ポートを識別するための第１のSCSI関連ポート識別子と、第２のターゲットデバイスの第２ポートを識別するための第２のSCSI関連ポート識別子とを含み、第１及び第２のポートは、データの第２部分にアクセスするためのアクセスポートとして特定される
ことを特徴とするシステム。
【請求項２０】
ネットワークを介して通信可能に接続されるイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス入力／出力(SCSI I/O)リファーラルを介してマルチパス機能を提供するための方法を実行するための、コンピュータ実行可能命令を有するコンピュータ可読記憶媒体であって、ストレージクラスタは、少なくとも第１のターゲットデバイス及び第２のターゲットデバイスを備えており、該方法は、
第１のターゲットデバイスで、ネットワークを介してイニシエータから、データ要求を含んだ入力／出力(I/O)信号を受信するステップと、
データ要求に含まれるデータが第１のターゲットデバイスではなく第２のターゲットデバイスに記憶されている場合に、イニシエータへSCSI I/Oリファーラルリストを伝送するステップであって、リファーラルリストが、第２のターゲットデバイスの第１ポートを識別するための第１のSCSI関連ポート識別子と、第２のターゲットデバイスの第２ポートを識別するための第２のSCSI関連ポート識別子を含み、第１ポート及び第２ポートは、該データにアクセスするためのアクセスポートとして特定される、伝送ステップと、
第２のターゲットデバイスにおいて、ネットワークを介してイニシエータからリファーラルI/Oを受信するステップであって、リファーラルI/OがSCSI I/Oリファーラルリストに応答し、リファーラルI/Oにより、イニシエータの指示通りに第１ポート及び第２ポートのいずれか一方を介して、データへのアクセスが要求される、受信ステップと、
イニシエータにデータの転送を開始するステップと
を含むことを特徴とする、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックストレージプロトコルを介してアクセスされるネットワーク接続された記憶装置（ストレージ）に関し、特に、マルチプルトランスポートプロトコルからネットワークを介しての、イニシエータシステム及びブロックストレージクラスタ間に、スモールコンピュータシステムインターフェイス(SCSI：スカジー)入力／出力リファーラルを用いて、マルチパス機能を実現するためのシステム及び方法に関する。
【背景技術】
【０００２】
ブロックストレージクラスタ及びイニシエータ間の通信を提供するための現在利用可能なシステム及び方法は、必要とされているレベルのパフォーマンスを提供できていない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従って、現在利用可能なソリューションの上記した問題に対処することができる、ブロックストレージクラスタ及びイニシエータ間の通信を提供するためのシステム／方法を提供することが課題となっている。
【課題を解決するための手段】
【０００４】
本発明の一実施形態では、ネットワークを介して通信可能に接続されたイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス(SCSI)入力／出力リファーラルを介してマルチパス機能を実現する方法を提供する。ストレージクラスタは、少なくとも第１のターゲットデバイス及び第２のターゲットデバイスを備えている。該方法は、第１のターゲットデバイスで、イニシエータからネットワークを介して、データの第１部分及びデータの第２部分に対する要求を含んでいる入力／出力(I/O)を受信するステップと、データの第２部分ではなくデータの第１部分が第１のターゲットデバイスに記憶され、且つデータの第２部分が第２のターゲットデバイスに記憶されている場合に、イニシエータへデータの第１部分の転送を開始し、且つイニシエータにSCSI I/Oリファーラルリストを伝送するステップを含む。ここでリファーラルリストは、第２のターゲットデバイスの第１ポートを識別するための第１ポート識別子と、第２のターゲットデバイスの第２ポートを識別するための第２ポート識別子を含み、第１及び第２のポートは、データの第２部分にアクセスするためのアクセスポートとして特定され、第１ポート識別子及び第２ポート識別子はSCSI関連ポート識別子である。
【０００５】
本発明の別の実施形態では、ネットワークを介して通信可能に接続されたイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス(SCSI)入力／出力リファーラルを介してマルチパス機能を提供するための方法を実行するための、コンピュータ実行可能命令を有するコンピュータ可読記憶媒体を提供する。ストレージクラスタは、少なくとも第１のターゲットデバイス及び第２のターゲットデバイスを備えており、該方法は、第１のターゲットデバイスで、イニシエータからネットワークを介して、データの第１部分及びデータの第２部分に対する要求を含んでいる入力／出力(I/O)を受信するステップと、データの第２部分ではなくデータの第１部分が第１のターゲットデバイスに記憶され、且つデータの第２部分が第２のターゲットデバイスに記憶されている場合に、イニシエータに対してデータの第１部分の転送を開始し、イニシエータへSCSI I/Oリファーラルリストを伝送するステップとを含んでいる。リファーラルリストは、第２のターゲットデバイスの第１ポートを識別するための第１ポート識別子と、第２のターゲットデバイスの第２ポートを識別するための第２ポート識別子を含み、第１及び第２のポートは、データの第２部分にアクセスするためのアクセスポートと特定され、第１ポート識別子及び第２ポート識別子はSCSI関連ポート識別子である。
【０００６】
本発明のさらに別の実施形態では、ネットワークを介して通信可能に接続されるイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス(SCSI)入力／出力リファーラルを介してマルチパス機能を提供するための方法を実行するための、コンピュータ実行可能命令を有するコンピュータ可読記憶媒体を提供するが、ストレージクラスタは、少なくとも第１のターゲットデバイス及び第２のターゲットデバイスを備えており、該方法は、第１のターゲットデバイスで、イニシエータからネットワークを介して、データ要求を含んでいる入力／出力(I/O)を受信するステップと、データ要求に含まれているデータが、第１のターゲットデバイスではなく、第２のターゲットデバイスに含まれている場合に、イニシエータにSCSI I/Oリファーラルリストを伝送するステップとを含んでいる。ここでリファーラルリストは、第２のターゲットデバイスの第１ポートを識別するための第１ポート識別子と、第２のターゲットデバイスの第２ポートを識別するための第２ポート識別子を含み、第１及び第２のポートは、該データにアクセスするためのアクセスポートとして特定される。該方法はさらに、第２のターゲットデバイスで、ネットワークを介してイニシエータからリファーラルI/Oを受信するステップであって、リファーラルI/OがSCSI I/Oリファーラルリストに応答して、且つイニシエータの指示通りに第１ポート及び第２ポートのいずれか１つを介してデータにアクセスすることを要求するステップと、イニシエータへのデータの転送を開始するステップとを含む。第１ポート識別子及び第２ポート識別子はSCSI関連ポート識別子である。
【０００７】
前述の一般的な説明及び後述の詳細な説明は、両方とも単なる例示であって、特許請求された発明を必ずしも限定するものではない。本明細書において説明され且つその一部を構成する添付図面は、本発明の実施形態を図示しており、本発明の概要とともに、本発明の原理を説明するためのものである。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態による、ブロックストレージプロトコルを介してアクセス可能なネットワークストレージの装置／システムのブロック図である。
【図２】本発明のシステム／方法の実施形態において又は実施形態によって実現される、リファーラルを用いたSCSIコマンド／応答の遠隔処理コールの概略ブロック図である。
【図３】本発明の一実施形態による、イニシエータ及びクラスタストレージアレイ間の通信のための方法を示すフロー図である。
【図４】本発明の一実施形態による、SCSIリファーラルフォーマットを説明するための図である。
【図５】本発明の別の一実施形態による、仮想ボリュームの一部分へのマルチプルパスを有するネットワークストレージ実現のトポロジーブロック図である。
【図６】本発明のさらに別の一実施形態による、マルチプルパスを有するSCSI入力／出力のリファーラルフォーマットの図である。
【図７】本発明の代替的な一実施形態による、マルチプルパスを有するSCSI入力／出力のリファーラルフォーマットの図である。
【図８】本発明の他の一実施形態による、優先マルチプルパスを有するSCSI入力／出力のリファーラルフォーマットの図である。
【図９】本発明の一実施形態による、ネットワークを介して通信可能に接続されたイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス入力／出力（SCSI I/O）リファーラルを介してマルチパス機能を提供するための方法を示すフロー図である。
【図１０】本発明の代替的な一実施形態による、ネットワークを介して通信可能に接続されたイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス入力／出力（SCSI I/O）リファーラルを介するマルチパス機能を提供するための方法を示すフロー図である。
【図１１】本発明のさらなる一実施形態による、マルチプルトランスポートプロトコルから仮想ボリュームの一部分へのマルチプルパスを有する、ネットワークストレージ実現のトポロジーブロック図である。
【発明を実施するための形態】
【０００９】
以下に本発明の現在好適である実施形態の詳細を、添付図面を参照して説明する。
図１は、本発明の一実施形態による、ブロックストレージプロトコルを介してアクセス可能なネットワークストレージの装置及びシステムを示している。例えば、ブロックストレージプロトコルは、ファイバチャネル、iSCSI、又はシリアル接続(Serial Attached) SCSI（SAS）等のネットワーク化可能媒体トランスポートに実装される、スモールコンピュータシステムインターフェイス(SCSI)プロトコルである。本発明はさらに、SCSI RDMAプロトコル（SRP）等の別のブロックストレージプロトコルで実現される。本発明のシステム／方法は、ブロックストレージクラスタを形成する、多数の協働する離散状態のストレージシステムに対して、共通のコモン論理ブロックアドレス空間をもつデータを分配できるようにするために、ブロックストレージプロトコルを拡張する。
【００１０】
図１に示されている実施形態では、ネットワークストレージ装置／システム／ストレージの基盤構造（インフラストラクチャー）１００は、アプリケーションシステム／サーバ１０２を備えている。アプリケーションシステム１０２は１又は複数のアプリケーション１０４を実行する。アプリケーションシステム１０２で動作するアプリケーション１０４は、ストレージエリアネットワーク（SＡN）１１０を通って／介して／利用して、１又は複数のストレージシステム（１０６、１０８）に記憶されているストレージリソースにアクセスする。アプリケーションは、サーバのオペレイティングシステム１１４のブロックストレージプロトコルスタック（例：スモールコンピュータシステムインターフェイス(SCSI)プロトコルスタック）１１２を用いて（一般性を失うことなしに）、ストレージリソース／ネットワークストレージリソースにアクセスする。サーバ１０２のオペレイティングシステム１１４は、直接サーバハードウエアで動作するか又は仮想環境における仮想マシン内で動作しても、一般性を失うことはない。
【００１１】
本発明のこの実施形態では、サーバ１０２のSCSIプロトコルスタック１１２は、ブロックストレージデバイス／論理ユニット／SCSI論理ユニットとして、アプリケーション１０４に対して、ローカル（例：サーバ上）ストレージリソース及び遠隔（例：ネットワーク上）ストレージリソースを提供する。論理ユニット／SCSI論理ユニットのそれぞれは、一意の論理ブロックアドレス空間を有している。遠隔ストレージリソース／遠隔ストレージデバイス（１０６、１０８）は、サーバ１０２及び／又はストレージシステム（１０６、１０８）の1又は複数のSANアダプタ１１６によってアクセスされ、該アダプタはブロックストレージプロトコルがマッピングされているネットワーク媒体トランスポートプロトコルを実行する。例えば、SCSIプロトコルは種々多様な実装可能なネットワークトランスポート上にマッピングされる。SANアダプタ１１６及びその媒体トランスポートプロトコル層は、物理的又は仮想的なネットワークアダプタであっても、一般性を失うことはない。
【００１２】
本発明の実施形態では、ストレージエリアネットワーク１１０は、ポートレベルのアドレス指定を許可する任意のネットワーク媒体及びトランスポートプロトコル（例：ファイバチャネル、イーサネット、インフィニバンド、及びシリアル接続SCSI（SAS））で実現される。媒体トランスポート層プロトコルは、ネットワークファブリック１１０にわたるエンドポイントのポートからエンドポイントのポートへの、プロトコルパケットのルーティングの全てを処理する。ネットワーク１１０は、一般性を失うことなく、単一のファブリック又は多重の冗長ファブリックとして実現される。ネットワーク１１０は、単一のネットワーク媒体及びトランスポートプロトコルで実装される単一ネットワーク、又は多重のネットワーク媒体及びトランスポートプロトコルの組み合わせで実装される多重ネットワークである。アプリケーションシステム／サーバ１０２上のネットワークポートは、ストレージシステム（１０６、１０８）上のネットワークポートに、物理的に到達できることが好ましい。
【００１３】
本発明のさらなる実施形態では、ストレージシステム（１０６、１０８）は、ネットワーク接続ストレージデバイスである。例えば、ストレージシステム（１０６、１０８）は、自身のローカルデバイスをSAN１１０上で可視状態にできる汎用コンピュータ、専用ストレージアレイ、又はネットワークディスクドライブである。ストレージシステムのストレージリソースは、媒体トランスポートプロトコル層を実行するSANポートを介してアクセスされる。SCSI層は、SANポートをストレージポートとして用いてストレージネットワークと通信する。ストレージシステム１０６及び１０８のそれぞれは、自身の物理的ストレージデバイスにデータ保護又はブロック抽出を適用する、ローカルブロック仮想化層（１１８、１２０）を備えている。例えば、冗長アレイオブインエクスペンシブディスク（RAID）等のデータ保護が、専用ネットワークストレージシステムで用いられる。ストレージシステム１０６及び１０８のそれぞれはさらに、内部ブロックプロトコルスタック(１２２、１２４)を備えており、これは実際に接続された物理ストレージデバイス１２６にアクセスして、それをネットワーク１１０にエクスポートする。
【００１４】
アプリケーションシステム／アプリケーションサーバ１０２で利用可能なストレージの容量は、ストレージシステム(１０６、１０８)の個々にさらにストレージデバイス１２６を追加すること、又は追加的なストレージシステム（１０６、１０８）をストレージエリアネットワークに追加することによって、拡張できる。ストレージシステム（１０６、１０８）の個々に追加的なストレージデバイス１２６が追加された場合、ストレージシステム（１０６、１０８）におけるローカルブロック仮想化層（１１８、１２０）を用いて、多数の物理ディスク（１２６）からより大きな仮想ブロックストレージデバイス（１２８、１３０）が生成される。これによって、単一論理ブロックアドレス空間（１２８、１３０）は維持されるが、しかしながらある時点で、個々のストレージシステム（１０６、１０８）上の物理的接続ポイントの数が使い果たされるので、結果として総容量の拡張には制限が与えられる。ストレージシステムがストレージネットワークに追加された場合、アプリケーションが使用できるストレージ総量は、単一のストレージシステムの物理的な限界を超えて増大できる。しかしながら、多数のストレージシステム（１０６、１０８)によって提供されるストレージは、それらをアプリケーションサーバ（１０２）が使用するためには、共通の論理ブロックアドレス空間に一括される必要がある。
【００１５】
多数のネットワーク接続ストレージシステム（１０６、１０８）上のストレージリソース１２６から単一のネーム空間／共通の論理アドレス空間を生成するために、数多くの技術が利用される。例えば、クラスタファイルシステム又はオブジェクトストレージプロトコル等、異なるストレージプロトコルを用いる技術である。ブロックストレージクラスタ集合体がストレージエリアネットワーク１１０に追加されると、結果としてブロッククラスタ集合体が複数の冗長SANファブリック１１０のそれぞれにおいて、クラスタブロック仮想化デバイスによって提供される。クラスタブロック仮想化デバイスは、ネットワークストレージシステム及びアプリケーションシステムの間に存在する。クラスタブロック仮想化デバイスは、ネットワークストレージシステム／ストレージシステムによってエクスポートされた、ブロックストレージ論理ユニットをインポートし、且つ、仮想ボリュームを生成することによって、追加的な仮想ブロックの層を生成する。次にクラスタブロック仮想化デバイスは、仮想ボリュームを論理ユニットとしてアプリケーションシステムにエクスポートする。アプリケーションシステムは、ストレージシステムによってエクスポートされた論理ユニットを見るすなわちアクセスすることはなく、仮想ボリューム／クラスタ仮想ボリュームを見るのみである。クラスタの物理的構造発見、仮想化マッピング、及びマネジメントはクラスタ仮想化マネージャによって提供される。クラスタ仮想化マネージャは、一対の分離した冗長デバイス上のSANのエッジにおける又はエッジ上の任意の場所に存在する。ブロックストレージクラスタ集合体の機能は、クラスタブロック仮想化デバイス／ブロッククラスタ仮想化デバイスにわたって分配されても、一般性を失うことはない。
【００１６】
あるいは、ブロックストレージクラスタ集合体／ブロッククラスタ集合体は、アプリケーションシステム１０２に追加される（アプリケーションシステム集合体）。例えば、ブロッククラスタ集合体は、アプリケーションシステムのブロックストレージプロトコルスタックに追加された、追加的な抽出層によって提供される。該抽出層をアプリケーションシステムに配置するために、数多くの選択肢が実現されえる。ストレージシステムによってエクスポートされた論理ユニットを、ブロック仮想化層がマスキングすなわち隠し、且つ、ブロック仮想化層の上層のブロックストレージプロトコルスタックに、仮想ブロックを提示する。ブロックストレージクラスタ集合体がストレージエリアネットワークに追加された場合（ネットワーク集合体）と異なり、ブロックストレージクラスタ集合体をアプリケーションシステムに追加する場合は、ストレージシステムによってエクスポートされた論理ユニットは、アプリケーションシステム／サーバにアクセスできる。ブロック仮想化層は、アプリケーションシステム／サーバで動作しているアプリケーションから、該論理ユニットへのアクセスを隠す。ネットワーク集合体と同様に、ブロッククラスタ集合体がアプリケーションシステムに追加される場合は、クラスタ仮想化マネージャ機能が、クラスタ内のストレージリソースを発見し、且つ仮想化マッピングをアプリケーションサーバにわたって分配するために与えられる。このマネジメントアプローチの変形の１つは、各サーバにおいて分離したクラスタ仮想化構造を有するものであり、これによって仮想ボリュームがアプリケーションサーバ間で共有されるのを防ぐことができる。あるいは、仮想ボリュームの共有を提供するためには、クラスタ全体に及ぶ仮想化マネージャが必要となる。
【００１７】
図１に示されている本発明の実施形態では、ブロックストレージクラスタ集合体がストレージシステム（１０６、１０８）（ストレージシステム集合体）に追加されている。ブロッククラスタ集合体は、ストレージシステム（１０６、１０８）の一方又は両方のブロックプロトコルスタック（１２２、１２４）に追加された、クラスタブロック仮想化層１３２によって提供される。クラスタブロック仮想化層１３２は、ローカル及び遠隔ストレージシステム上のデバイス１２６を一括して仮想ボリューム（１２８、１３０）にする。クラスタ内の各ストレージシステム（１０６、１０８）上のストレージデバイス１２６は、１又は複数の別のストレージシステムによって検出可能／可視である（例：ストレージシステム１０６のストレージデバイスは、ストレージシステム１０８にとって可視であり、且つストレージシステム１０８のストレージデバイスは、ストレージシステム１０６にとって可視である）ので、クラスタブロック仮想化層１３２による仮想ボリューム（１２８、１３０）の生成が可能になる。ストレージシステム集合体の多くでは、仮想ボリューム（１２８、１３０）のみが、クラスタブロック仮想化層１３２によってエクスポートされて、ストレージエリアネットワーク１１０を介してアプリケーションシステム１０２に至る。ネットワークストレージのいくつかでは、ストレージシステム（１０６又は１０８）に到達した、１又は複数の異なるストレージシステムからのデータを必要とする入力／出力(I/O)要求が、I/Oの要求を満たすために、正しいストレージシステムに転送される。入出力リダイレクションを実行するために、プロキシI/O及びコマンド転送等、数多くの技術が実現される。上述された別のブロックストレージクラスタ技術と同様に、ストレージシステム集合体においても、個々のクラスタ仮想化マネージャ機能１３４は、ストレージの基盤構造において、少なくとも１つのストレージシステム（１０６、１０８）に存在している必要がある。一般性を失うことなしに、クラスタ仮想化マネージャ機能１３４は、クラスタ内のストレージシステム（１０６、１０８）に分配され、これにより、ストレージ管理機能の低コストでの低侵撃性（invasiveness）が実現される。
【００１８】
ブロックストレージクラスタを生成するための上述の方法及び装置は、多数の有用な特徴を提供する。例えば、ブロックストレージボリュームは、多数のストレージシステム（１０６、１０８）に分散できる。また、アプリケーションシステム１０２は、クラスタ内の任意のストレージシステムからのデータにアクセスできる。さらにまた、仮想ボリューム（１２８、１３０）は、全てのストレージノード／ストレージシステム（１０６、１０８）にわたって、共通のブロックアドレス空間を提供できる。しかしながら、上述の方法／装置（ネットワーク集合体、ストレージシステム集合体、アプリケーションシステム集合体）のそれぞれは、別個の問題点を有している。
【００１９】
ネットワーク１１０（ネットワーク集合体）におけるストレージ集合体の問題点は、ネットワーク１１０において追加的な専用部品が必要になることである。専用部品は、ネットワークファブリック１１０に追加コストが必要となり、且つ、単一ストレージシステムから多重システムストレージクラスタへの移動にかかるコストを高額にしてしまう。さらに、ストレージ集合体デバイスが、全体のコストを最小化するよう生成された場合のネットワークファブリックに含まれていなければ、ネットワークは、集合体デバイス及びクラスタ仮想化マネージャを組み込むために、リケーブル(re-cabled)される必要がある。またさらに、単一ストレージシステムからストレージクラスタへの移動は、ストレージシステムの実（リアル）ボリュームの代わりに仮想ボリュームを使用するために、全てのアプリケーションシステムの再構成を必要とする。
【００２０】
アプリケーションサーバ１０２上のストレージ集合体（アプリケーションシステム集合体）の不利点は、サーバブロックストレージスタック１１２に、追加的な部品を追加する必要があることである。該部品は、システム上で動作しているアプリケーション１０４によるアクセスから、全ての非仮想論理ユニットをマスキングするために必要とされる。クラスタにアクセスする全てのオペレイティングシステム１１４に対してマスキングが完了していない場合は、非仮想論理ユニットに対する無秩序なアクセスによって、データの破損又は損失が発生する。アプリケーションに対してブロックの仮想化を提供するためには、アプリケーションシステムにおけるクラスタブロック仮想化層もまた必要となる。オペレイティングシステムのそれぞれに対して、一意のクラスタブロック仮想化部品が必要とされる。これらの一意のクラスタブロック仮想化部品は、自身の機能を遂行するために、システムのストレージスタックにおける隠しインターフェースを使用せざるを得ないが、これによって、維持及びテストが必要な構成が激増してしまう。また、クラスタ仮想化マネージャがさらに、アプリケーションシステムから切り離された外部システムを必要とする。クラスタ仮想化マネージャがアプリケーションシステム上に位置する場合、クラスタ仮想化マネージャは、アプリケーションのために使用することができるはずのリソースを消費し、またさらに、基盤構造における他の全てのアプリケーションシステムと通信する必要がある。アプリケーションシステムにおいて、クラスタ仮想化マネージャによって維持され、且つクラスタブロック仮想化層によって用いられる、ブロックストレージのマップを分配し更新するためには、ストレージ仮想化マネージャの位置に関係なく、別個のプロトコルが必要となる。
【００２１】
ストレージシステム（１０６、１０８）におけるストレージの集合体（ストレージシステム集合体）は、追加的なネットワーク部品のコストを排除できる。ストレージシステム集合体はさらに、ストレージスタック１１２における部品がアプリケーションシステム１０２に与える影響、及び、アプリケーションシステム１０２で動作しているストレージ仮想化マネージャの影響を排除できる。ストレージシステム集合体は、ブロックストレージクラスタ／ブロックストレージクラスタリングのために必要な部品の全てが、ストレージシステム（１０６、１０８）上に配置されるようにすることができる。ストレージシステム集合体は、入出力要求が誤ったストレージシステムに送付されたとき、要求先の変更をするよう要求する。前述のように、プロキシI/O及びコマンド転送の少なくとも一方は、要求先変更のために用いられるが、しかしながら、両方とも欠点がある。プロキシI/Oが用いられるとき、元々の誤送された要求を受け取ったストレージシステムを介して、ルートデータに対して追加的な記憶を追加し、且つ遅延を生じさせる。プライベートストレージクラスタ相互接続に対するコマンド転送は、追加的なコストをストレージクラスタに追加し、且つクラスタの最大規模を制限してしまう。
【００２２】
本発明は、上述されたブロックストレージクラスタ技術の弱点を、図１に示される装置／システム１００等の、ネットワークストレージの装置／システムで用いるための、SCSIリファーラル技術／方法を提供することによって克服している。本発明の技術／方法は、アプリケーションシステムブロックストレージスタック１１２において非標準部品、又はストレージネットワーク１１０において追加的な専用クラスタデバイスを必要とせずに、ブロックストレージクラスタを作成できるよう構成される。
【００２３】
図３には、本発明の実施形態による、ネットワークストレージの実装を介したデータ転送のための方法（例：イニシエータシステム／イニシエータ及びクラスタストレージアレイ／ブロックストレージクラスタアレイ間の通信のための方法）が示されている。例えば、該方法は、ブロックストレージクラスタをするための技術を、後述される（図２及び図３に図示）ストレージプロトコルコマンド及び応答シーケンス（SCSIコマンド／応答の遠隔処理コールモデル等）を用いて実現する。本発明の現在の実施形態では、方法３００は、クラスタストレージアレイ３０２の複数のストレージシステムに含まれる第１のストレージシステムで、コマンドを受け取るステップを備えている。例えば、ブロックストレージクラスタは、２つ以上のストレージシステム（１０６、１０８）を備えており、それぞれが物理ストレージデバイス１２６と通信可能に接続される又は該デバイスを含んでいる。さらに、コマンドは、ストレージエリアネットワーク１１０を介して、イニシエータ／イニシエータシステム／ホスト／サーバ１０２から第１のストレージシステム１０６（例：ターゲットシステム／ターゲット）に送信される。実施形態では、コマンドは、データに対する要求（例：読み込み要求）等の、I/O要求である。別の実施形態では、ターゲットは、クラスタアレイにおける任意のストレージシステムであり、且つコマンドは、クラスタ／クラスタストレージアレイにおける、任意の予想ターゲットストレージシステム上の任意のポート（例：図２に示される主ポート）を用いて送信される。さらにまた、コマンドはSCSIコマンドであり、イニシエータ／イニシエータシステム１０２はSCSIイニシエータであり、ターゲット（例：第1のストレージシステム１０６）はSCSIターゲットである。
【００２４】
別の実施形態では、コマンドがストレージエリアネットワーク１１０／ネットワークトランスポートを介して送信されるとき、コマンドは確立されたイニシエータ及びターゲットの関係（例：I_Tネクサス）で送信される。SCSIプロトコルでは、イニシエータ及びターゲット間のI_Tネクサスは、イニシエータ上のSCSIポート（例：サーバ／アプリケーションシステム１０２のSCSIポート）及びターゲットのSCSIポート（例：第１のストレージシステム１０６のSCSIポート）間で確立される。多数のポートを有するターゲットは、各ポートに対し、一意のSCSIポート識別子を与える。多数のストレージシステムを有するブロックストレージクラスタ（例：ブロックストレージクラスタのターゲット）は、クラスタ内の全てのストレージシステム上の各ポートに対して、一意のポート識別子を与える。SCSIポート識別子は、SCSIアーキテクチャモデル規格で規定されるような、SCSI関連のポート識別子である。別の実施形態では、SCSIコマンドのそれぞれは、ボリュームの論理ブロックアドレス空間における、データのスターティングアドレス及び長さによって、転送されるべきデータを識別する。
【００２５】
一実施形態では、方法３００はさらに、第１のストレージシステムに記憶されているデータ要求で要求されたデータを、ストレージエリアネットワーク３０４を介してイニシエータシステムに転送するステップを含む。本発明のこの実施形態では、コマンドを受け取るストレージシステム（例：ターゲットストレージシステム）に記憶されている／存在している要求されたデータの任意部分が、イニシエータに移動／転送される。例えばデータは、上述のI_Tネクサスで、一連のSCSIデータ転送ステップにより、ターゲット１０６及びイニシエータ１０２の間で移動される（例：第１のストレージシステム１０６に記憶されたデータが、アプリケーションシステム／イニシエータ１０２に転送される）。本発明のこの実施形態では、特定のSCSIコマンドの要求に従って、データはイニシエータ及びターゲットの間のいずれかの方向又は双方向に流れる。
【００２６】
本発明の別の実施形態では、方法３００はさらに、データ要求により要求されたデータの一部が、第１のストレージシステムによって記憶されていない／に存在していないが、ストレージクラスタ／クラスタストレージアレイ３０６の、複数のストレージシステムに含まれる、第２のストレージシステムに記憶されている／存在している場合に、第１のストレージシステムからのリファーラル応答を、イニシエータシステムに転送するステップを含む。実施形態では、リファーラル応答は、イニシエータに対して、オリジナルのデータ要求で要求されたデータの全てが転送されたわけではないことの指標となり、リファーラル応答は、イニシエータシステムを第２のストレージシステムにダイレクトする（向ける）ための情報を提供し、且つ／又は、リファーラル応答は、イニシエータシステムに対して、クラスタの１又は複数の別のストレージシステム（例：第２のストレージシステム１０８）が、該データの一部／リマインダを記憶することを示す指標となる。例えば、リファーラル応答は、要求されたデータのリマインダ（例：ステップ３０２で受信したオリジナルのデータ要求で要求されたデータのリマインダ）が位置している／記憶されているクラスタの、１又は複数の別のストレージシステム／クラスタノード（例：第２のストレージシステム１０８等）へのリファーラルのリストを含んでいる。
【００２７】
上述のように、リファーラルは、オリジナルのデータ要求を満たすためにイニシエータによってデータが取得される必要のある、追加のクラスタノード／ストレージシステムのそれぞれに対して存在している。本発明のこの実施形態では、リファーラルリスト中の各リファーラルは、自身がイニシエータをリファーするストレージシステム／ノードのそれぞれに対して以下の情報（図４に図示）を含んでいる。すなわち、ポート識別子（例：オリジナルのデータ要求で要求されたデータのリマインダの少なくともいくつかを備える、クラスタノード／ストレージシステム上のポートと関連している）、オフセット（例：その関連するストレージシステム／ストレージノード上の、データの第１のバイトの論理ブロックアドレス）、及び長さ（例：リファーラルに送信されるデータ量）である。ポート識別子は、SCSIアーキテクチャモデル規格によって規定されるSCSI関連ポート識別子の定義に従う。ボリューム、論理ユニット、及びターゲット等の、リファーラルを完成させるために必要な別の情報は、SCSIリファーラルを生成するコマンドのコンテクストから利用可能である。
【００２８】
本発明の実施形態では、方法３００はさらに、第２のストレージシステム３０８で第２のコマンドを受信するステップを含む。例えば、イニシエータ１０２はリファーラルのリストの受信に応答して、データのリマインダの少なくとも一部を記憶しているとリファーラルのリストで特定されている、クラスタ内の別のストレージシステムの１つに、第２のコマンドを送信する（例：ストレージエリアネットワークを介して）。例えば、イニシエータは、第２のコマンド（例：リファーラル応答に基づいたもの）を、リファーラルリストに特定されている（記載されている）ポートであって、第２のシステムと関連しているポートに送信する。他の実施形態では、ブロックストレージプロトコルイニシエータ１０２は、オリジナルの要求で要求されたデータを保持するクラスタ内の全ての別のストレージシステムに対して、リファーラルリストに示されているポート（例：第２のポート）を用いて、個別にコマンドを送信する。
【００２９】
本発明のさらに別の実施形態では、方法３００はさらに、記憶された要求データの一部を、第２のストレージシステムからイニシエータシステムに、ストレージエリアネットワーク３１０を介して転送するステップを含む。例えば、上述のようにイニシエータ１０２は、オリジナルの要求で要求されたデータを保持するクラスタ内の全ての別のストレージシステム（例：ストレージシステム１０８）に対して、リファーラルリストに示されているポート（例：第２のポート）を用いて個別のコマンドを送信し、ストレージシステムは自身のローカルデータを、自身のローカルデータが転送されたことを示すステータスとともに、イニシエータに返送する。リファーラルに基づいて発行されたコマンドに応答する全てのデータ転送が完了すると、ブロックストレージプロトコルは、その呼び出し側（caller）に戻ることによって、オペレーションを完了する。
【００３０】
オリジナルのデータ要求（ステップ３０２での）で要求されたデータの全てが、第１のストレージシステムによって記憶され／転送される本発明の代替的な実施形態では、方法３００はさらに、転送完了応答を、第１のストレージシステムからイニシエータシステムに送信するステップを含んでおり、転送完了応答は、データ要求で要求されたデータの全てが転送されたことを示す。さらなる実施形態では、コマンドに応答する全てのデータが転送された時、あるいはコマンド及びデータ転送のいずれかにおいて、エラー状態が生じる場合は、ターゲットは、コマンドステータスを含むSCSI応答をイニシエータに返送／送信することによって、動作を完了する（方法ステップ３１４）。
【００３１】
本発明をサポートするために、多数の特性を提供することができるストレージアレイクラスタ技術が必要となる。例えば、ブロックストレージプロトコルターゲットは、クラスタ内のストレージシステム（１０６、１０８）の全てにわたって分配される必要がある。さらに、クラスタ内の全てのストレージシステム上の全てのポートは、一意のポート識別子を有する必要がある。ポート識別子は、SCSIアーキテクチャモデル規格で規定された、SCSI関連ポート識別子である必要がある。さらにまた、仮想ボリュームのための論理ブロックアドレス空間は、仮想ボリュームが存在するストレージシステムの全てにわたって共通である必要がある。さらに、全てのストレージシステム（１０６、１０８）上のクラスタブロック仮想化機能（１３４）は、仮想ボリューム（１２８、１３０）内で、クラスタ内のどのストレージシステムが、どのアドレスレンジのデータを保持しているかを決定できるようにする必要がある。
【００３２】
上述のように、本発明の方法は、ストレージシステム（１０６、１０８）上にブロック仮想化を提供するブロックストレージクラスタにおいて実装される。実施形態では、本発明のシステム／方法は、コマンド転送又はプロキシI/Oを用いるのではなく、クラスタブロック仮想化（１３２、１３４）を実装するものであり、クラスタブロック仮想化は、SCSIチェック条件及びSCSIセンスデータにおけるリファーラルのリストを備えるステータス情報とともに自身のローカルデータ転送を完了することによって、データが別のクラスタノードに存在することを示す。
【００３３】
さらなる実施形態では、SCSIイニシエータ１０２は新規のチェック条件を検出し、各リファーラルに新規のSCSIコマンドを発行し、そして全てのリファーラルが完了するとトラッキングするよう構成される。イニシエータ１０２はさらに、多数のイニシエータ-ターゲットネクサスにわたってリファーラルを介して抽出されたデータを蓄積するよう構成される。
【００３４】
本発明のシステム／方法は、現在のブロックストレージクラスタのアプローチよりも利点が多い。まず、クラスタ化をサポートするために、ストレージの基盤構造における追加のハードウェアを必要としない。ホストエージェント及びストレージシステム内に存在するブロック仮想化にはよくあることだが、SAN１１０にハードウェアを追加する必要はない。さらに、イニシエータ１０２にとっては、ターゲット及び論理ユニットの発見に変更はなく、ターゲットはストレージクラスタの全てのノード上で可視であり、且つ、ストレージクラスタのノードは、どの論理ユニットがターゲットで入手可能かを決定するよう構成される。さらにまた、非仮想化ボリュームをイニシエータから隠す必要がなく、且つ仮想化されたボリュームのみが、クラスタ内のストレージシステムからエクスポートされる。さらに、イニシエータは、クラスタ内のデータの分配についての情報を保有する必要がない。本発明のイニシエータ／ホスト１０２は、クラスタ内のどこにデータが存在しているかを決定するよう構成される。データは、クラスタ内の任意のノード上の任意のポートから要求される。リファーラルはイニシエータを、データを保持しているクラスタノードにダイレクトする（向ける）。さらに、ストレージシステム（１０６、１０８）上のデータは、イニシエータに知らせることなく移動されるが、それは、誤ったクラスタノード上のポートを介して、イニシエータがデータにアクセスしようとしても、イニシエータはデータを備えているクラスタノード上のポートに容易にリダイレクトできる（リファーラルによって）からである。またさらに、本発明の方法は、任意数のストレージデバイスに適用されるが、これはSANに追加されたハードウェアの容量に限定されるような、SAN１１０におけるストレージ仮想化とは対照的である。そのうえ、本発明の方法は、クラスタノード上にマルチプルポートを有するストレージクラスタに適用される。データが２以上のパスを介してアクセス可能な場合、リファーラルは、データにアクセスできる単一ポートを備えるのみでよい。標準的なストレージプロトコルにおいて本発明を実装することは、イニシエータシステム上のブロックストレージプロトコルスタックに、固有のソフトウェアをインストールする必要がないという点で有利である。
【００３５】
上述のSCSIのI/Oリファーラルを提供するためのシステム／方法は、イニシエータが、複数のターゲットデバイスに散在する論理ユニット番号（LUN）上のデータにアクセスすることを可能にする。ターゲットデバイスは、ディスク、ストレージアレイ、テープライブラリ、又は任意の別のタイプのストレージデバイスである。本発明のさらなる実施形態では、イニシエータが、２以上のターゲットポートを介して、仮想ボリュームの一部（例：一部とは、データセグメントであって、物理ディスク、仮想ディスク、又はターゲット上で入手できる任意の別のデータのセグメントである）にアクセスできるようなシステム／方法を提供する。例えばこれは、あるデータセグメントに対するアクセスを有するターゲットデバイスが、ストレージエリアネットワーク（SAN）に接続される２以上のポートを有している場合に発生する。このような例で、ターゲットデバイスがイニシエータに対し、データセグメントが利用できる多数のパスのそれぞれについて情報を提供できるような、本発明のシステム／方法が提供される。
【００３６】
図5には、本発明の実施形態による、SCSIのI/Oリファーラルを介してマルチパス機能を提供するよう構成されるシステム（例：トポロジ）が示される。システム５００は、イニシエータ５０２（例：アプリケーションサーバ）を含む。イニシエータ５０２は、ストレージエリアネットワーク５０４を介して、複数のターゲット／ターゲットデバイス／ストレージデバイス（５０６、５０８、５１０、５１２）と通信可能に接続される。本発明の現在の実施形態では、システム５００はさらに、複数のデータセグメント（５１４、５１６、５１８、５２０）を備えており、これらは仮想ボリューム５２２を構成している又はその一部である又はそれに含まれている。イニシエータ５０２は、ターゲットデバイスの１又は複数のポート（図５ではポート０〜ポート７として示される）を介して、仮想ボリューム５２２の一部にアクセスするよう構成される。例えば、イニシエータ５０２は、SCSI I/Oリファーラルの上記の方法を用いて、仮想ボリューム５２２を構成するデータセグメントのそれぞれに対してマルチプルパスを有することができる。
【００３７】
本発明の実施形態では、イニシエータ５０２に対し、データセグメント（５１４、５１６、５１８、５２０）が多数のターゲットポートで入手可能であることを伝ええるために、ターゲットデバイス(５０６、５０８、５１０、５１２)は、異なるポートがリストしてあるが異なるポートを同じデータセグメントに関連付けている／関連付けられていることを示した、多数のSCSI I/Oリファーラルを、返送する。データセグメントは、自身のデータオフセット及びデータ長の値によって、SCSI リファーラルリストにおいて一意に識別されている。例えば、イニシエータ５０２は、ターゲット５０６のポート０及びポート１のいずれかを介して、ターゲットの１つ（例：ターゲット５０６）に接触し又はI/Oを送信して、データセグメント(５１４、５１６、５１８、５２０)にわたって散在しているデータであってマルチプルポートを介してアクセス可能なデータを要求する。例えば、I/O はデータセグメント５１４、データセグメント５１６、データセグメント５１８、及びデータセグメント５２０のそれぞれに記憶されている／にわたって散在しているデータを要求する。これにより、ターゲット５０６は、ローカルに保持されているデータ（例：データセグメント５１４のデータ）に関するデータ転送を開始する。さらに、ターゲット５０６は次に、以下のリファーラルを備えているSCSI I/Oリファーラルリストを返送する。
【００３８】
ポート２識別子：
データセグメント516データオフセット、データセグメント516データ長
ポート３識別子：
データセグメント516データオフセット、データセグメント516データ長
ポート４識別子：
データセグメント518データオフセット、データセグメント518データ長
ポート５識別子：
データセグメント518データオフセット、データセグメント518データ長
ポート６識別子：
データセグメント520データオフセット、データセグメント520データ長
ポート７識別子：
データセグメント520データオフセット、データセグメント520データ長
【００３９】
本発明の実施形態では、I/Oリファーラルリストの受信に応答して、イニシエータ５０２は次に、SCSI I/Oリファーラルリストにおいて識別されているデータセグメントのそれぞれに対して、リファーラルI/Oを発行するよう構成される。例えば、イニシエータ５０２はセグメント５１６、５１８、及び５２０に対し、イニシエータ５０２によって送信されたオリジナルのI/Oで要求されたデータのリマインダを検索するために、I/Oリファーラルを発行する。本発明の実施形態では、イニシエータ５０２は、どのポートを介して各データセグメントにアクセスするべきかを、選択的に決定する。上述した本発明のI/Oリファーラルマルチパスリスト化方法によって、イニシエータ５０２はI/Oリファーラルリストに基づいて同一のデータセグメントにアクセスするための代替可能な経路／マルチプルパスを決定することができる。例えば、イニシエータ５０２は、リファーラルI/Oを介してデータセグメント５１６にアクセスするために、上記のSCSI I/Oリファーラルリストに基づいて、ポート２及びポート３のいずれかを選択する。さらに、所与のリファーラルI/Oが問題に遭遇した場合は、イニシエータ５０２は同一のデータセグメントへのアクセスを、別のポートで再試行するという選択をする。例えば、イニシエータ５０２がポート２を介してリファーラルI/Oを発行して、データセグメント５１６にアクセス／アクセスの要求をしたが、リファーラルI/Oが問題に遭遇した場合、イニシエータは、代わりにポート３を介してリファーラルI/Oを発行することで、リファーラルI/Oを再試行する（例：データセグメントへの所与のパスが好ましくない場合は、イニシエータは代替的なパスへ障害迂回する）。図６は、オリジナルのI/Oがターゲット５１４のポート０に送信され、オリジナルのI/Oのサイズが４００ブロックであり、且つデータセグメント(５１４、５１６、５１８、５２０)のそれぞれが、オリジナルのI/O要求で要求されたデータの１００ブロックを保持している場合に、上記のトポロジにあるターゲットによって提供されるSCSI I/Oリファーラルリスト例を示す。
【００４０】
上述のI/Oリファーラルのマルチパス方法／機能によって、イニシエータは任意時にデータセグメントへの新規の／代替的なパスを利用できる。該機能の使用例は、ラウンドロビンスケジューリング等の、システム５００の負荷バランシングを達成することである。イニシエータの振る舞いに依存して、上述のI/Oリファーラルマルチパス方法／機能は、SCSI I/Oリファーラルリストにおけるリファーラルの順序付けに基づいて、ターゲットが負荷を分配できるようにする。このような順序付けは、ラウンドロビンスケジューリングを介して、負荷分配等によって決定される。
【００４１】
本発明の代替的な実施形態では、SCSI I/Oリファーラルリストは、上述したような必然的なポートグループ化の実現とは異なり、同一のデータセグメントへのマルチプルポートを明示的にグループ化する。明示的なグループ化は、追加構造をSCSI I/Oリファーラルリストに追加することによって達成される。主に図７を参照すると、代替的なSCSI I/Oリファーラルリスト（図６で示されたものに対して）が、本発明のさらなる実施形態による、上述のトポロジにあるターゲットによって提供されている。ポート識別子は、SCSIアーキテクチャモデル規格で規定されたSCSI関連ポート識別子に従っている。データセグメントが常にマルチプルポートを介してアクセス可能である構成では、代替的な方法である明示的なポートグループ化／図７に示される代替的なSCSI I/Oリファーラルリストが効率の向上を促進するが、それは利用可能なポートのそれぞれに対してデータセグメントオフセット及びデータセグメント長を反復／再リスト化する必要性を排除／除去するからである。
【００４２】
本発明のさらなる実施形態では、ターゲットデバイスが主パス及び代替パスを指定できるようにすることが有益であるが、さらに追加的な優先事項を与えることが本発明には包含されている。主に図８を参照すると、代替的なSCSI I/Oリファーラルリスト例が、上記のトポロジにあるターゲットによって提供されており、該リストが本発明のさらなる実施形態による、上述された主パス及び代替パスの指定を実現する。ポート識別子は、SCSIアーキテクチャモデル規格で規定されたSCSI関連ポート識別子に従っている。
【００４３】
図９を参照すると、本発明の実施形態による、ネットワークを介して通信可能に接続されるイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス（SCSI I/O）リファーラルを介して、マルチパス機能を提供するための方法９００が示されている。実施形態では、方法９００は上述したシステム５００を介して実施される。本発明のこの実施形態では、ストレージクラスタは、少なくとも第１のターゲットデバイス及び第２のターゲットデバイスを備えている。例えば、第１及び第２のターゲットデバイスの少なくとも一方は、ディスク、ストレージアレイ、テープライブラリ、及び／又はストレージデバイスである。本発明の実施形態では、方法９００は第１のターゲットデバイスで、ネットワーク９０２を介してイニシエータから入力／出力(I/O)を受信するステップを含む。例えば、I/Oはデータの第１部分及びデータの第２部分に対する要求（例：読み出し要求）を含む。本発明の実施形態では、データの第１部分は第１のデータセグメントに位置しており、データの第２部分は第２のデータセグメントに位置している。さらに、第１のデータセグメント及び第２のデータセグメントは、仮想ボリュームに含まれている。
【００４４】
さらなる実施形態では、方法９００はさらに、データの第２部分ではなくデータの第１部分が、第１のターゲットデバイスに記憶されている場合、且つデータの第２部分が第２のターゲットデバイスに記憶されている場合、イニシエータへデータの第１部分の転送を開始するステップ９０４、及びイニシエータへSCSI I/Oリファーラルリストを送出するステップ９０６を含む。実施形態では、リファーラルリストは、第２のターゲットデバイスの第１ポートを識別するための第１ポート識別子、及び第２のターゲットデバイスの第２ポートを識別するための第２ポート識別子を含む。第１ポート及び第２ポートはリファーラルリストでは、データの第２部分にアクセスするためのアクセスポート（例：イニシエータがデータの第２部分にアクセスするために介する、第２のターゲットデバイスのアクセスポート）と特定される。別の実施形態では、リファーラルリストは、第２のデータセグメントのデータオフセット値及び／又はデータ長によって、第２のデータセグメントを識別する。第１のポート識別子及び第２のポート識別子は、SCSIアーキテクチャモデル規格によって規定される、SCSI関連ポート識別子の定義に従う。
【００４５】
追加的な実施形態では、方法900はさらに、第２のターゲットデバイスで、ネットワーク９０８を介してイニシエータからリファーラルI/Oを受信するステップを含む。例えば、リファーラルI/Oは、SCSI I/Oリファーラルリストに応答する。また、リファーラルI/Oは、イニシエータの指示通りに第１ポート及び第２ポートのいずれか１つを介して、データの第２部分へのアクセスを要求する。
【００４６】
図１０を参照すると、本発明の実施形態による、ネットワークを介して通信可能に接続されるイニシエータ及びストレージクラスタ間に、スモールコンピュータシステムインターフェイス（SCSI I/O）リファーラルを介して、マルチパス機能を提供するための方法１０００が示される。実施形態では、方法１０００は上述したシステム５００により実行される。本発明の実施形態では、ストレージクラスタは、少なくとも第１のターゲットデバイス及び第２のターゲットデバイスを備えている。方法１０００は第１のターゲットデバイスで、ネットワーク１００２を介してイニシエータから入力／出力(I/O)を受信するステップを含む（例：I/Oはデータ要求を含む）。方法１０００はさらに、データ要求に含まれるデータが、第１のターゲットデバイスには記憶されていないが、第２のターゲットデバイスには記憶されている場合に、SCSI I/Oリファーラルリストをイニシエータ１００４へ送信するステップを含む。リファーラルリストは、第２のターゲットデバイスの第１ポートを識別するための、第１ポート識別子及び、第２のターゲットデバイスの第２ポートを識別するための、第2ポート識別子を備え、第1ポート及び第2ポートは、該データにアクセスするためのアクセスポートとして特定される。第１ポート識別子及び第２ポート識別子は、SCSIアーキテクチャモデル規格によって規定される、SCSI関連ポート識別子の定義に従う。方法１０００はさらに、第２のターゲットデバイスで、ネットワーク１００６を介してイニシエータからリファーラルI/Oを受信するステップを含む。リファーラルI/Oは、SCSI I/Oリファーラルリストに応答し、且つ、リファーラルI/Oは、イニシエータの指示通りに、第１ポート又は第２ポートを介して、データへのアクセスを要求する。方法１０００はさらに、イニシエータ１００８へデータの転送を開始するステップも含む。
【００４７】
図１１を参照すると、本発明の実施形態による、SCSI I/Oリファーラルを介してマルチパス機能を提供するよう構成されたシステム（例トポロジ）が示される。システム１１００は、イニシエータ１００２（例：アプリケーションサーバ）を備える。イニシエータ１００２は、ストレージエリアネットワーク（１１０４、１１０６）を介して、複数のターゲット／ターゲットデバイス／ストレージデバイス(１１０８、１１１０)と通信可能に接続するよう構成される。図１１に示されるように、ストレージエリアネットワーク１１０4（ファイバチャネル）及び１１０６（iSCSI）は、異なる媒体トランスポート層プロトコルで実現される。本発明の実施形態ではシステム１１００はさらに、仮想ボリューム１１２２を構成する／の一部である／に含まれる複数のデータセグメント（１１１２、１１１４）を含む。ターゲットデバイス、データセグメント、及び仮想ボリュームは全て、ストレージクラスタ１１１６を構成している。イニシエータ１１０２は、仮想ボリューム１１２２の一部分にアクセスするよう構成され、該部分は、ターゲットデバイスの１又は複数のポート（図１１ではポート１〜ポート４）を介する１又は複数のデータセグメント（１１１２、１１１４）である。例えば、イニシエータ１１０２は、SCSI I/Oリファーラルの上記の方法を用いて、仮想ボリューム１１１２を構成するデータセグメントのそれぞれに対し、マルチプルパスを有することができる。
【００４８】
本発明の実施形態では、イニシエータ１１０２にデータセグメント（１１１２、１１１４）がマルチプルターゲットポートで入手可能であることを伝えるために、ターゲットデバイス(１１０８、１１１０)は、異なるポートがリストしてあるが、異なるポートを同じデータセグメントに関連付けている／関連付けられていることを示しているマルチプルSCSI I/Oリファーラルを返送する。データセグメントは、自身の論理ブロックアドレス（LBA）及びデータ長の値によって、SCSI リファーラルリストで一意に識別されている。例えば、イニシエータ１１０２は、ターゲット１１１０のポート３及びポート４のいずれかを介して、ターゲットの１つ（例：ターゲット１１１０）に接触又はI/Oを送信して、データセグメント(１１１２、１１１４)にわたって散在しており、且つマルチプルポートを介してアクセス可能なデータを要求する。例えば、以下のI/Oは、データセグメント１１１２及びデータセグメント１１１４のそれぞれに記憶されている／に分散されているデータを要求する。
ポート４、LBA0、長さ200
【００４９】
そして、ターゲット１１１０は、ローカルに保持されているデータ（例：データセグメント１１１４のデータ）に関するデータ転送を開始する。さらに、データセグメント１１１２及び１１１４の長さがそれぞれ100ブロックであれば、ターゲット１１１０は次に、１つのエントリを含む以下のリファーラルリストを備えたSCSI I/Oリファーラルリストを返送する。
LBA0、長さ100、ポート１関連ポートID、ポート２関連ポートID
【００５０】
本発明の現在の実施形態では、イニシエータ１１０２は、I/Oリファーラルリストの受信に応答して、次にSCSI I/Oリファーラルリストで特定されているデータセグメントのそれぞれに対して、リファーラルI/Oを発行するよう構成される。例えば、イニシエータ１１０２は、データセグメント１１１２及び１１１４に対し、イニシエータ１１０２によって送出されたオリジナルのI/Oで要求されたデータのリマインダを検索するために、I/Oリファーラルを発行する。本発明の実施形態では、イニシエータ１１０２は、どのポートを介して各データセグメントにアクセスするべきかを、選択的に決定する。上述した本発明のI/Oリファーラルマルチパスリスト方法によって、イニシエータ１１０２は、I/Oリファーラルリストに基づいて、同一のデータセグメントにアクセスするための代替可能な経路／マルチプルパスを決定することができる。例えば、イニシエータ１１０２は、リファーラルI/Oを介してデータセグメント1１１２にアクセスするために、上記のSCSI I/Oリファーラルリストに基づいて、ポート1及びポート2のいずれかを選択する。さらに、所与のリファーラルI/Oが問題に遭遇した場合は、イニシエータ１１０２は同一のデータセグメントへのアクセスを、別のポートで再試行するという選択をする。例えば、イニシエータ１１０２がポート2を介してリファーラルI/Oを発行して、データセグメント１１１２にアクセス／アクセスの要求をしたが、リファーラルI/Oが問題に遭遇した場合、イニシエータは、代わりにポート１を介してリファーラルI/Oを発行することで、リファーラルI/Oをリトライする（例：データセグメントへの所与のパスが好ましくない場合は、イニシエータは代替的なパスへ迂回する）。
【００５１】
上述のI/Oリファーラル方法／機能は、マルチプル媒体トランスポートプロトコルがSCSIリファーラルストレージシステムで共存することを可能にする。該方法／機能は、SCSIリファーラルストレージシステムにおけるポート識別子を一定サイズにできる。さらに、異なる媒体トランスポート層プロトコルのSCSIポートのためのポート識別子は、本方法／機能によって発行されるリファーラル又はリファーラルリストで共存できる。さらにまた、ある媒体トランスポートプロトコルのポートに対して発行されたI/Oは、第２の媒体トランスポートプロトコルのポートにリダイレクトされる。例えば、SASポートに向けられていたI/Oが、ファイバチャネルポートにリダイレクトされる。
【００５２】
本発明による前述された実施形態は、本明細書の教示に従ってプログラムされた従来の汎用デジタルコンピュータを用いて、簡便に実現できることは、コンピュータ技術の当業者には明らかであろう。適切なソフトウェアコーディングが、本開示の教示に基づいて熟練のプログラマによって容易に準備されることも、ソフトウェア技術の当業者には明らかであろう。
【００５３】
本発明は、ソフトウェアパッケージの形態で簡便に実現できる。ソフトウェアパッケージは、開示された本発明の機能及びプロセスをコンピュータが実行するようプログラムするために用いられる、記憶されたコンピュータコードを備えたコンピュータ可読ストレージ媒体を採用している、コンピュータプログラム製品である。コンピュータ可読記憶媒体は、任意のタイプの従来型フロッピディスク、光ディスク、CD-ROM、磁気ディスク、ハードディスクドライブ、光磁気ディスク、ROM、RAM、EPROM、EEPROM、磁気又は光カード、あるいは電子指示を記憶するための任意の別の適宜の媒体であるが、それに限定するものではない。
【００５４】
前述で開示された方法におけるステップの具体的な順序又は階層は、アプローチ例である。必要に応じて、該方法におけるステップの具体的な順序又は階層を、本発明の範囲内において再変更が可能である。添付の方法クレームは、見本的な順序でさまざまなステップの要素を提示したものであり、提示された具体的な順序又は階層に限定するものではない。
本発明及びそれに付随する多数の利点は、前述の記載によって理解されるべきである。また、本発明の技術思想及び範囲を逸脱しない限りは、又はマテリアルアドバンテージの全てを犠牲にすることなしに、これに関する部品の形態、構造、及び配置において、多くの変更が可能である。前述された形式は、本発明の実施形態にすぎないので、このような変更に関しては、以下に記載の特許請求の範囲に包含されるものである。
【図１】
2011054152.tif 000003
【図２】
2011054152.tif 000004
【図３】
2011054152.tif 000005
【図４】
2011054152.tif 000006
【図５】
2011054152.tif 000007
【図６】
2011054152.tif 000008
【図７】
2011054152.tif 000009
【図８】
2011054152.tif 000010
【図９】
2011054152.tif 000011
【図１０】
2011054152.tif 000012
【図１１】
2011054152.tif 000013
【外国語明細書】
2011054152000001.pdf