(57)【特許請求の範囲】
【請求項１】
ネットワークを介して記憶システムに接続された少なくとも２つの装置による、前記記憶システム内の複数の論理ボリュームへのアクセスを管理するデータ管理方法であって、前記記憶システムは前記複数の論理ボリュームに分割された複数の記憶装置を含み、
前記ネットワークを介して前記記憶システムで、前記少なくとも２つの装置の内の一つによって提供される暗号化情報を受信するステップと、
前記記憶システムと前記少なくとも２つの装置の内の一つとの間で、前記暗号化情報を用いて暗号化された期待されたアクセス・キーを転送するステップと、
前記ネットワークを介して前記記憶システムで、前記少なくとも２つの装置の内の１つから、前記複数の論理ボリュームの少なくとも１つにアクセスするために、前記少なくとも２つの装置の内の前記１つを識別するソース識別子と前記複数の論理ボリュームの前記少なくとも１つへのアドレスと要求アクセス・キーとを含む要求を受信するステップと、
前記記憶システムで、前記少なくとも２つの装置の内の前記１つが前記複数の論理ボリュームの内の前記少なくとも１つにアクセスする権限を与えられているかどうかを、前記ソース識別子と前記論理ボリュームの前記少なくとも１つの前記アドレスとに関連づけられた構成データに基づいて判断しかつ前記要求を処理するかどうかを判断するステップと、
前記要求で識別される前記少なくとも２つの装置の内の前記１つが、少なくとも部分的に前記要求アクセス・キーと前記期待されたアクセス・キーとの間の比較に基づいて要求を出した前記少なくとも２つの装置の内の１つと同じであることを検証するステップとを含み、
前記構成データは前記記憶システム内で、前記記憶システムで利用可能な多数の論理ボリュームに対応する複数の行と、前記記憶システムで利用可能な多数のポートに対応する複数の列とを含むアレイに配列された複数のレコードを含む構成テーブルに記憶されており、前記複数のレコードのそれぞれは識別子と、前記複数の論理ボリュームのどれが対応する識別子に識別された装置に利用可能であるかを示す情報と前記少なくとも２つの装置の夫々に対するビットを有するビットマップを含み、前記ビットは前記各装置が前記各レコードに対応するポートにアクセスする権限を与えられたかどうかを表示し、前記要求を処理するかどうかを判断する前記ステップは、
前記要求で提供されたアドレスを用いて前記構成テーブルのレコードにアクセスするステップと、
前記アクセスされたレコードの前記ビットマップを前記ソース識別子と比較して、前記アクセスされたレコードの前記ビットマップのビットが、前記ソース識別子と関連づけられた前記少なくとも２つの装置の前記１つが前記アクセスされたレコードと関連づけられた前記記憶システムの前記論理ボリュームに対してアクセス権を有することを示すかどうかを決定するステップとを含むデータ管理方法。
【請求項２】
少なくとも１つのプロセッサによって実行される時に、ネットワークを介して記憶システムに接続された少なくとも２つの装置による、前記記憶システム内の複数の論理ボリュームへのアクセスを管理するデータ管理方法を実行させるプログラムによって符号化された、コンピュータ可読媒体であって、
前記記憶システムは前記複数の論理ボリュームに分割された複数の記憶装置を含み、前記方法は、
前記ネットワークを介して前記記憶システムで、前記少なくとも２つの装置の内の一つによって提供される暗号化情報を受信するステップと、
前記記憶システムと前記少なくとも２つの装置の内の一つとの間で、前記暗号化情報を用いて暗号化された期待されたアクセス・キーを転送するステップと、
前記ネットワークを介して前記記憶システムで、前記少なくとも２つの装置の内の１つから、前記複数の論理ボリュームの少なくとも１つにアクセスするために、前記少なくとも２つの装置の内の前記１つを識別するソース識別子と前記複数の論理ボリュームの前記少なくとも１つへのアドレスと要求アクセス・キーとを含む要求を受信するステップと、
前記記憶システムで、前記少なくとも２つの装置の内の前記１つが前記複数の論理ボリュームの内の前記少なくとも１つにアクセスする権限を与えられているかどうかを、前記ソース識別子と前記論理ボリュームの前記少なくとも１つの前記アドレスとに関連づけられた構成データに基づいて判断しかつ前記要求を処理するかどうかを判断するステップと、
前記要求で識別される前記少なくとも２つの装置の内の前記１つが、少なくとも部分的に前記要求アクセス・キーと前記期待されたアクセス・キーとの間の比較に基づいて要求を出した前記少なくとも２つの装置の内の１つと同じであることを検証するステップとを含み、
前記構成データは前記記憶システム内で複数のレコードを含む構成テーブルに記憶されており、前記複数のレコードのそれぞれは識別子と、前記複数の論理ボリュームのどれが対応する識別子に識別された装置に利用可能であるかを示す情報とを含み、
前記コンピュータ可読媒体が、前記複数のレコードを記憶する第１のデータ構造を含む、前記記憶システムのメモリであり、
前記第１のデータ構造内の複数のレコードのサブセットのコピーであって前記記憶システムにログインした装置に対応する複数のレコードを含む第２のデータ構造を更に含み、
前記第２のデータ構造は、
前記記憶システムの前記複数の論理ボリュームに対応する複数の列と、前記記憶システムの複数のポートに対応する複数の行とを有するレコードのアレイを更に含み、前記アレイの各レコードは、前記少なくとも２つの装置のそれぞれに対応する少なくとも１つのビットを含み、前記少なくとも１つのビットは前記少なくとも２つの装置の内の各１つが、前記レコードによって表示された複数のポートの内の各１つで、前記複数の論理ボリュームの内の各１つにアクセスすることを許されているかどうかを表示する、コンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
［発明の分野］
本発明は、一般的に情報記憶装置の分野に関し、特に、記憶装置内のデータに対するアクセスを管理する方法および装置に関する。
【０００２】
［関連技術の説明］
コンピュータ・システムは一般的に、１つまたは複数のホスト・プロセッサと、ホスト・プロセッサによってアクセスされるデータを記憶する記憶システムとを含む。記憶システムは、ホスト・プロセッサの記憶容量の需要に供するために、１つまたは複数の記憶装置（たとえば、ディスク・ドライブ）を含むことができる。ディスク・ドライブは、磁気記録媒体や光記憶媒体などの記録媒体の１つまたは複数のディスクを含むことができる。
【０００３】
典型的なコンピュータ・システム構成においては、バスがホスト・プロセッサと記憶システムとの間の相互接続を提供する。バスは、ホスト・プロセッサと記憶システムとの間で伝送されるパケットの形式を記述するスモール・コンポーネント・システム・インターコネクト（ＳＣＳＩ）プロトコルなどのプロトコルに従って動作する。ホスト・コンピュータによってデータが必要とされると、バス上で記憶システムとの間において要求や応答が送受信される。
【０００４】
ネットワーク・コンピュータ・システムの成長に伴って、多数のホストがネットワーク上で共有データ記憶システムに接続されるようになった。ファイバ・チャネルは、かかる構成を形成するのに使用できるネットワークの一例である。ファイバ・チャネルはネットワーク上で多数のイニシエータが多数のターゲットと通信することを可能にするネットワーク標準であり、そこでは、イニシエータおよびターゲットはネットワークに接続された如何なる装置であってもよい。ネットワークを使用すると、多数のホストが単一の記憶システムへのアクセスを共有できる。多数のホストを共有記憶システムに接続するに当たっての１つの問題は、記憶システムでのデータ・アクセスの管理である。多数のホストが共通の記憶システムに対してアクセス権を有するので、各ホストは、他のホスト・プロセッサの所有に帰す場合がある情報に物理的にアクセスできる場合がある。
【０００５】
記憶システムでデータへのアクセスを管理するために、様々な技術が実施されてきた。たとえば、記憶システムのメモリの特定の部分またはゾーンを、ホストの１つまたは複数の専用にすることができる。各ホストは、それが特権を有するメモリの部分のみにアクセスすることを「期待される」。しかし、かかるアプローチはホストそれぞれの個々の動作に影響され易い。その結果、かかるデータ管理方法は、特権を得ていないアクセスからデータを保護するのに十分でない場合がある。
１９７９年１０月の、A.J.Suttonらによる、「Processors Sharing and Partitioning Of Main Storage In The MP System」と題するＩＢＭ技術開示広報（ＴＤＢ）第２２巻、５号は、記憶システムの各プロセッサがそれ独自の一意の記憶スペースとアドレサビリティとを有するように、プロセッサのサブセットと分割記憶領域との間に共有記憶領域を有する共有記憶システムを開示している。特に、複数プロセッサ共有記憶システムにおける記憶構成制御アレイ（ＢＣＡ）は、プロセッサ識別システム（ＰＲＩＤ）を含むプロセッサ識別を含む。ＢＣＡは、要求アドレスにより選択されたＢＣＡの行に対応するアドレス範囲への各プロセッサのアクセス要求でテストされる。ＢＣＡの選択された行のＰＲＩＤフィールドにおける設定に応じて、各プロセッサ要求へアクセスが許可または拒絶される。特に、特定のプロセッサに割り当てられたＰＲＩＤフィールドにおける１ビット設定は、プロセッサがテーブルのその行に対応する記憶アドレスの範囲にアクセスすることを可能にする。選択された行は、基本記憶モジュール（ＢＳＭ）、またはその行を定める絶対記憶アドレス範囲が物理的に設けられるＢＳＭの部分を選択する。要求プロセッサのＰＲＩＤフィールドにおけるビットがゼロであれば、そのプロセッサ要求に対する記憶領域の選択が禁じられる。要約すれば、「Processors Sharing And Partitioning Of Main Storage In The MP System」と題する雑誌記事は、ＰＲＩＤフィールドの設定に応じて、そのプロセッサがＢＣＡの選択された行に対応する記憶アドレスの範囲にアクセスすることを可能にする、記憶構成制御アレイ（ＢＣＡ）を有する複数のプロセッサ共有記憶システムを開示している。
【０００６】
［発明の概要］
本発明によれば、ネットワークを介して記憶システムに接続された少なくとも２つの装置による、前記記憶システムの複数の記憶装置へのアクセスを管理するデータ管理方法であって、ネットワーク上の記憶システムで、前記少なくとも２つの装置の少なくとも１つから、複数の論理ボリュームの少なくとも１つにアクセスするために、前記少なくとも２つの装置の少なくとも１つと、複数のデータ・ボリュームに分割された複数の記憶装置を含む記憶システムとを識別する要求を受信するステップと、前記記憶システムで、前記少なくとも２つの装置の１つが前記少なくとも１つのデータ・ボリュームにアクセスする権限を与えられていることを示す構成データに応じて要求を処理するステップとを含むデータ管理方法が提供される。
【０００７】
更に、本発明によれば、コンピュータ可読媒体は、記憶システムの複数の記憶装置へのアクセスを管理するデータ管理方法を実行する命令を含む第１のデータ構造を含む。
【０００８】
更に、本発明によれば、記憶システムは、複数のデータ・ボリュームに分割された複数の記憶装置と、ネットワークを介して記憶システムに接続された複数の装置のどれが複数のデータ・ボリュームのそれぞれにアクセスする権限を与えられているかを識別する構成データを記憶する構成テーブルと、複数のデータ・ボリュームの少なくとも１つにアクセスする要求をネットワーク上で前記少なくとも２つの装置の少なくとも１つから受信する受信手段と、構成データに応じて、複数のデータ・ボリュームの少なくとも１つにアクセスする要求を少なくとも１つの記憶装置に転送するフィルタとを含む。
【０００９】
［詳細な実施形態の説明］
本発明は、共有リソース（たとえば、共有記憶システム）で、多数の装置（たとえば、ホスト・プロセッサ、ファイル・サーバなど）によるデータへのアクセスを管理するデータ管理方法および装置に関する。一実施形態によれば、共有リソースは、そのリソースにおけるデータの部分のそれぞれと関連づけられた構成データに応じて、その共有リソースにおけるそのデータの部分に対する装置からの要求を選択的に処理する。
【００１０】
一実施形態においては、共有リソースのデータはボリュームに分割される。構成データは、データのどのボリュームがリソースに接続された装置のそれぞれによるアクセスに利用可能であるか（たとえば、ネットワーク上で）を識別する。共有リソースは、要求を発行する装置の同一性（identity）と、アクセスが求められるボリュームと関連づけられた構成データとに応じて処理の要求を選択的に転送するフィルタを含む。フィルタは、装置がアクセスする特権を有しているボリュームに対する要求のみを転送する。装置が特権を有していないボリュームに対する要求は処理されない。
【００１１】
リソースでのフィルタリングの要求は、データ管理の制御が、ネットワーク全体に分散されるのではなく、１つの場所に集中されることを可能にする。記憶システムでデータ管理制御を集中することは、記憶システムへのアクセスを求めるホストがデータの特定の部分のみにアクセスすることを期待する必要性を排除する。
【００１２】
本発明の一実施形態においては、リソースでのデータ管理を支援する要求をフィルタリングすることに加えて、リソースでデータを更に安全にするためにセキュリティ保護を付加することができる。フィルタリングは要求を開始する装置の同一性に反応して行われるので、装置がリソースへのアクセスを得るためにその同一性を偽って表した場合には、データのセキュリティは危うくなる場合がある。また、装置とリソースとの間のデータ転送は、リソースに接続された他の装置（たとえば、ネットワーク上で）によって変造される場合がある。一実施形態においては、要求を発行した装置として表された装置が本当に要求を発行した装置であるかを検証するために、認証方法および装置が提供される。したがって、認証方法は、リソースでデータを得るためにその同一性を不正に表している装置に関連する、セキュリティの問題を克服するために実施することができる。別の実施形態においては、装置と共有リソースとの間で転送される情報が、伝送の間に（故意ではなく、または故意に）変造されていないことを確実にするために、立証方法および装置が提供される。
【００１３】
リソースのデータを管理するデータ管理システムは、これらのフィルタリング技術、認証技術および立証技術の全てを使用できる。本発明のデータ管理方法および装置を採用できる１つの例示的システムは、ネットワーク化されたコンピュータ・システムにあり、そこでは、装置はネットワークに接続されたホスト・プロセッサまたはファイル・サーバであり、共有リソースは記憶システム（たとえば、ディスク装置記憶システム）である。ネットワーク、ホスト・プロセッサまたは共有ディスク装置の使用は本発明の限定ではなく、かかるシステム構成は例示を目的としてのみ以下で説明していることを理解されたい。
【００１４】
一実施形態においては、１つまたは複数のホストをネットワークを使用して１つまたは複数の記憶システムに接続することができ、要求および応答は、ネットワークのプロトコルに従ってネットワーク上で記憶システムとの間で送受信される。また、各ホストおよび各記憶システムは、ホスト・システムまたは記憶システムを対応する１つまたは複数のネットワークに連結する１つまたは複数のポートを含むことができる。上記のように、一実施形態においては、ネットワークの各記憶システムは、記憶システムに対するデータ・アクセスを管理するために、受信した要求をフィルタリングするロジックを含む。
【００１５】
本発明を採用できる１つの例示的ネットワークはファイバ・チャネル・ネットワークであるが、本発明は、ファイバ・チャネル・ネットワークまたは他のあらゆる特定のネットワーク構成の使用に限定されない。ファイバ・チャネル・ネットワーク構成の３つの例を図１Ａ、１Ｂおよび１Ｃに示した。図１Ａはループ構成で配置されたネットワーク１０を示しており、そこでは、ネットワーク内の全ての装置が単一のループ内で共に接続されている。図１Ａにおいては、３個のホスト・プロセッサ１２、１４および１６が、ハブ１８ａによって記憶システム２０に接続されて示されている。内部的には、ハブはループ構成で配置されている。バス１５ａ〜１５ｄ上での装置間の通信は、ループ内で１つの装置から次の装置にデータ・パケットを渡すことにより行われる。図１Ｂはファブリック構成で配置されたネットワーク３０を示しており、そこでは、全ての装置がハブ１８ｂによって共に接続されている。内部的には、ハブはスイッチとして配置されている。ネットワーク３０における対になった装置１２、１４、１６および２０の間における通信は、ハブ１８ｂによって制御される。本発明のデータ管理方法は、図１Ａおよび１Ｂに図示したループ構成またはファブリック構成で配置されたネットワーク、または代替的に他のネットワーク構成またはリソース共有構成において採用できる。たとえば、データ管理の態様は、図１Ｃに図示したネットワークにおいて採用できる。図１Ｃにおいて、記憶システムが２つのポートを含むホスト／記憶システム構成が示されており、それらのそれぞれが記憶システムを異なったネットワークに連結している。図１Ｃにおいて、第１のポート（ポート０）はファブリック・ネットワーク３０に接続されており、第２のポート（ポート１）はループ・ネットワーク１０に接続されている。
【００１６】
上記のように、本発明のデータ管理の態様は、記憶システムに接続されたホスト装置の同一性に応じて、記憶システム２０でデータのボリュームを構成する。ボリュームの異なったホストへの割り当てを管理するのに使用される構成データは、たとえば、ネットワークのシステム管理者によって提供することができる。システム管理者は、ネットワークに接続されたホスト装置と、記憶システムで利用可能なボリュームを追跡する。新たなホスト装置がシステムに入ると、システム管理者は記憶システムのボリュームをホストに割り当てる。ホストに割り当てられたボリュームの数は、要求された数のボリュームに基づいてもよいし、あるいは代替的にホストの過去のデータ要求に基づいてもよい。システム管理者はソフトウエアで実現して、ネットワーク内の装置または記憶システムの１つで実行することができ、ユーザが、ネットワーク内でのボリュームの利用可能性および異なったホストへの割り当てを監視することを可能にするグラフィカル・ユーザ・インターフェース（ＧＵＩ）を含んでも良い。本発明は、システム管理の何れか特定の実施には限定されない。
【００１７】
各装置は一般的に、ネットワークに入ると、ネットワークに接続された他の装置を識別するためにネットワークに問い合わせる。問い合わせに応答する各装置は、その装置に関する１つまたは複数の識別子を返す。たとえば、識別子は、ネーミングの協定を用いてアダプタ・ボードの製造業者によってその装置に割り当てられた世界的な名前（ＷＷＮ）を含むことができる。識別子は、ソース識別子（ＩＤ）を含むこともできる。両者はその装置の一意の識別子であるが、ソース識別子は一般的に、ＷＷＮよりも短い識別子である。ソース識別子は装置（たとえば、ホスト・プロセッサ）、およびネットワークに接続された装置のポートを識別することができる。したがって、特定の装置の多数のポートがネットワークに接続されていれば、識別子は各ポートについて返される。問い合わせ動作が完了すると、装置のそれぞれは、ネットワークに接続された他の装置に関する知識を有している。一旦、各装置がネットワーク内の他の装置の知識を得ると、この情報は装置間でデータを交換するために使用できる。
【００１８】
記憶システム２０との間での要求や応答は、ネットワーク・プロトコルに従ってネットワーク１０および３０上で転送される。ファイバ・チャネルの相互接続は、多数のインタフェース・コマンドのセットを搬送できる。したがって、ファイバ・チャネル・ネットワークを使用して共に接続された装置は、特定のファイバ・チャネル相互接続で使用されているプロトコルの種類に関する知識を連結装置が有していることを条件に、インターネット・プロトコル（ＩＰ）、スモール・コンポーネント・システム・インターコネクト（ＳＣＳＩ）プロトコル、あるいは他の多数のプロトコルの何れかを含む、多数の高レベル・プロトコルの何れかを使用して通信することができる。特定の種類の装置はこれまで、特定のプロトコルを使用して通信するように設計されてきた。たとえば、ホスト・プロセッサ装置はこれまで、ＳＣＳＩプロトコルを用いて記憶システムと通信してきた。したがって、ファイバ・チャネル・ネットワークを使用して接続された装置は、これまで使用されてきたのと同じプロトコルを使用して互いに通信することができる。その結果、装置の既存のインタフェースは、ファイバ・チャネル・ネットワークに接続するために再設計をほとんど必要としない。
【００１９】
あらゆる種類のプロトコルのパケットを、ファイバ・チャネル・ネットワーク上で伝搬できるパケットに変換するために、通常はトンネル技術が使用される。トンネリングを使用すると、第１のプロトコルに従ってフォーマットされた１つのパケットは、ファイバ・チャネル・ネットワーク・プロトコルに従ってフォーマットされた第２のパケットに包み込まれる。したがって、ＳＣＳＩパケットは、ファイバ・チャネル・ネットワークでの送信のために、ホスト・プロセッサまたは記憶システムによってファイバ・チャネル・パケット内に包み込むことができる。ＳＣＳＩプロトコルに従ってフォーマットされ、ファイバ・チャネル・パケットに包み込まれたパケットの例を図２に示した。
【００２０】
図２において、ファイバ・チャネル・パケット５０はヘッダ部５５およびペイロード部６０を含む。ヘッダ部５５はソースＩＤフィールド５２、宛先ＩＤフィールド５３および長さフィールド５４を含む。ソースＩＤフィールド５２はパケット５０の送信を開始したネットワーク内の装置を識別する。宛先ＩＤフィールド５３は、ネットワークにおいてパケットを受信するターゲット装置を識別する。長さフィールド５４は、パケット内のバイト数を識別する。また、ファイバ・チャネル仕様に定められた他のフィールドもヘッダに含めることができるが、明確化のために、これらのフィールドは本明細書においては省略する。
【００２１】
ソースＩＤフィールド５２および宛先ＩＤフィールド５３は、特定のホスト・プロセッサおよび記憶システムを識別するために、図１Ｃの例示的システムにおいて使用されている。ホストが要求パケットを記憶システムに対して発行すると、ソースＩＤはホストを識別し、宛先ＩＤは記憶システムを識別する。本発明の一実施形態によれば、記憶システムは、個々のホストがデータのどのボリュームにアクセスする特権を有しているかを識別する構成データをインデックスするために、パケットのソースＩＤフィールド５２を使用する。
【００２２】
上記のように、記憶システムでホストに関する構成データをインデックスする要求を発行したホストを識別するために、記憶システム２０にアクセスするホストのソースＩＤフィールドを使用することができる。構成データは、ホストによってアクセス可能である記憶システムの部分を識別する。したがって、構成データは、ホストの要求を選択的に処理するために、記憶システムでフィルタ・ロジックによって使用することができる。ここで、ホスト識別子に基づいて要求をフィルタリングする方法および装置を実施するために使用できる、ホストおよび記憶システムの例示的構成要素を、図３乃至５を参照して説明する。
【００２３】
上記のように、本発明の一実施形態においては、記憶システムは受信した要求を構成データに基づいて処理すべきかどうかを判断する。構成データのコピーを記憶システムでメモリに記憶することができる。構成データは、ホストがネットワークに出入りするときに、システム管理者によって定期的に更新することができる。記憶システムは、ネットワーク上で通信するためのロジック、およびネットワークから受信した要求を処理すべきかどうかを判断するための、構成データを記憶するメモリに接続されたフィルタリング・ロジックを含む。上記のデータ管理システムは様々な方法で実施することができ、本発明は何れの特定の実施にも限定されない。しかし、明確化のために、このデータ管理機能を提供できるホスト・プロセッサおよび記憶システムの一実施形態を図３に示した。
【００２４】
図３は、ネットワーク２１を使用して記憶システム２０に接続されたホスト・プロセッサ１２を示している。ネットワーク２１は、たとえば、図１Ａ〜１Ｃに図示した構成の何れかで配置されたファイバ・チャネル・ネットワークとすることができる。ホスト・プロセッサ１２は、ローカル・バス４３によってメモリ４２に接続されたＣＰＵ４０などの、１つまたは複数の中央演算処理ユニットを含む、多重処理ユニットとすることができる。バス４３とネットワーク２１との間には、１つまたは複数のホスト・バス・アダプタ（ＨＢＡ）４５および４５ａが接続されている。
【００２５】
各ホスト・バス・アダプタ（ＨＢＡ）４５および４５ａは、ホスト・プロセッサ１２をネットワークに接続するように動作する。ＨＢＡ４５および４５ａは、ＣＰＵ４０から受け取ったデータを、ネットワークのプロトコルによって指示された形式に翻訳する。また、ＨＢＡ４５および４５ａは、ネットワークからパケット形式で受信したデータを、ＣＰＵ４０によって使用可能な形式のデータに翻訳する。
【００２６】
ホスト・バス・アダプタは、ＨＢＡに常駐するハードウエアと、ＨＢＡまたはメモリ４２に記憶されたドライバ・ソフトウエアとの組み合わせを用いて実施できる。代替的に、ホスト・バス・アダプタは、ハードウエアまたはソフトウエアで完全に実施してもよい。一実施形態においては、ＨＢＡ４５は記憶システム４９に接続されたプロセッサ４１を含んでいる。プロセッサ４１は、ＨＢＡ４５へのまたはＨＢＡ４５からのデータのフローおよびフォーマットを制御する。メモリ４９は、ネットワークとの間で送受信されるときに、データの一時的記憶場所を提供するために使用される。ＨＢＡは、ネットワーク２１上での送信用のパケットを生成し、各パケットは特定のＨＢＡを識別するソースＩＤフィールドを含む。各ホストに多数のＨＢＡを含めることができるので、多数のソースＩＤを同じホストと関連づけることができる。
【００２７】
記憶システム２０は、１つまたは複数のディスク・デバイスを含むことができる記憶装置３８ａ〜３８ｄを含む。記憶装置３８ａ〜３８ｄへのアクセスは、プログラムされたプロセッサまたはカスタム・ハードウエア設計を用いて実施することができるディスク・アダプタ３６ａ〜３６ｄの使用を介して制御される。図３に示した実施形態においては、ディスク・アダプタを各記憶装置３８ａ〜３８ｄ毎に設けてあるが、代替的に、ディスク・アダプタを複数の記憶装置に接続してもよい。また、ディスク・アダプタは、１つのディスク・アダプタの機能を第２のディスク・アダプタに移すことにより、１つのディスク・アダプタの故障からの回復を可能にするために、別のディスク・アダプタ３６ａ〜３６ｄの記憶装置３８ａ〜３８ｄへの二次的接続を含むことができる。
【００２８】
記憶装置３８ａ〜３８ｄはボリューム・セットに分割される。ボリューム・セットの１つまたは複数は、ＨＢＡ４５および４５ａの１つまたは複数あるいはホスト・プロセッサ１２に利用可能にすることができる。一実施形態においては、ＨＢＡによる記憶装置３８ａ〜３８ｄ内のボリュームの参照は、論理ユニット番号（ＬＵＮ）を用いて行われる。ホストによって提供される論理ユニット番号とディスク・デバイスの物理アドレスとの間に、一対一の対応がある必要はない。
【００２９】
構成データベース３２（図３）は、どのＨＢＡがどのボリュームに対するアクセス権を有するかに関する情報を記憶する。上記のように、一実施形態においては、構成データベース内の情報はシステム管理者から受信され、ネットワークの構成が変わるときに定期的に更新される。
【００３０】
構成データベース３２に記憶することができるデータの種類の例は、履歴テーブル６９を含む。履歴テーブルは、記憶システムのポートのそれぞれについて１ブロックに分割されている。履歴テーブルの各ブロックは、ネットワークに入るときにポートに問い合わせたホストのリストを含む。各ホストに関する識別情報は、ホストのＷＷＮ名、ホストのソースＩＤ、またはホストの他の別名を含むことができる。この識別情報は、ホストの識別子をホストに関する構成データと照合するために、ホストが記憶システムにログインするときに使用することができる。
【００３１】
構成データベース３２は、記憶システムでＨＢＡを利用可能なポートにマップするヘッダ部７０を含むこともできる。記憶システム２０のデータの論理ボリュームを異なったＨＢＡに割り当てるために、ボリューム割当部７２を設けることができる。ＬＵＮをディスクの物理アドレスにマップするために、マッピング部７４が設けられている。また、どのＨＢＡがどのＬＵＮにアクセス権を有しているかを制御するために、フィルタ・テーブル７６が設けられている。フィルタ・テーブル７６は、ボリューム割り当てとマッピング情報とを用いて生成され、記憶システムのポートの何れかに接続された各ＨＢＡに関するレコードを含む。フィルタ・テーブル７６の実施例を図４に示した。各レコード７６ａ〜７６ｎは、ＨＢＡと関連づけられたＷＷＮと、このエントリに割り当てられたボリュームが共有されているかどうかを示すフラグと、どの論理ボリュームにＨＢＡがアクセスできるかを識別するＬＵＮマップとを含む。一実施形態においては、ＬＵＮマップは、記憶システムの各ＬＵＮに１ビットが割り当てられたビットマスクの形式である。一実施形態においては、ビットマスクのビットは、ＷＷＮによって示された関連ＨＢＡが対応するＬＵＮにアクセス権を有することを示すようにセットされているが、代替的に、ビットはアクセスを示すようにクリアされてもよい。また、利用可能なＬＵＮが異なった方法で示される代替的実施形態を使用してもよい。
【００３２】
記憶システム２０（図３）は、フィルタ・アダプタ・ユニット３４も含む。フィルタ・アダプタ・ユニット３４は、ネットワークから受信したパケットをデータ・ブロックに翻訳し、ディスク・アダプタ３６ａ〜３６ｄに転送するために制御する。また、フィルタ・アダプタ・ユニット３４は、特権を有するＨＢＡのみがボリュームにアクセスできることを確実にするために、フィルタリング機能を遂行する。このように、ＨＢＡが、それらが割り当てられたボリュームにのみアクセスすることを期待するのではなく、フィルタ・アダプタ・ユニット３４は、特権を得ていない要求を除去することにより、ディスクへのアクセスを制御する。
【００３３】
一実施形態においては、フィルタ・アダプタ・ユニット３４は、メモリ８３に接続されたプロセッサ８０を含む。プロセッサは、記憶システム２０とネットワーク２１との間で、データの送信および翻訳を制御するために使用される。メモリ８３は、一時的フィルタ・テーブル８４を記憶するために使用される。一時的フィルタ・テーブルは、記憶システムの各ポートについて１つずつ、多数のテーブルに分割される。ＨＢＡがそのポートの１つで記憶システム２０との接続を開始する度に、フィルタリング情報は、構成データベース３２のフィルタ・テーブル７６から、一時的フィルタ・テーブル８４の適当なエントリにコピーされる。フィルタリング情報は、ポートにログインしたＨＢＡのソースＩＤと、このエントリに関連づけられたボリュームが共有されているかどうかを示すフラグと、ポートにログインしたＨＢＡに関するＬＵＮマップを含むことができ、ＬＵＮマップは、構成データベースのフィルタ・テーブル７６からコピーされる。
【００３４】
一実施形態においては、一時的フィルタ・テーブル８４の構成データは要求毎にアクセスされる。要求のアドレスはバス／ターゲット／ＬＵＮ形式で提供されており、バス部分は記憶システム２０のファイバ・チャネル・ネットワーク・アドレスを示し、ターゲット部分は記憶システムのポート・アドレスを示し、ＬＵＮは要求のボリューム・アドレスを示す。アドレスは、ＨＢＡと関連づけられたＬＵＮマップを含む一時的フィルタ・テーブル８４のエントリと比較される。宛先のＬＵＮと関連づけられたＬＵＮマップのビットが、ＨＢＡがＬＵＮにアクセス権を有することを示している場合には、要求は処理のためにディスク・アダプタ３６ａ〜３６ｄに転送される。示していなければ、要求は無視される。
【００３５】
一時的フィルタ・テーブル８４のサイズは、記憶システムで提供されたポートの数と、各ポートで支援されたＨＢＡの数と、記憶システムにおけるＬＵＮの数とに関連している。記憶システム２０の例示的構成は４０９６個のＬＵＮにアクセスするために１６個のポートを含むことができ、各ポートは３２個の異なったＨＢＡによるアクセスを支援することができる。したがって、一時的フィルタ・テーブル８４が大きいときに、それが単一の大きいメモリに記憶されたならば、各Ｉ／Ｏ要求のアクセス時間は長くなる場合がある。
【００３６】
一実施形態においては、記憶システム２０の応答時間パフォーマンスを増すために、一時的フィルタ・テーブル８４は、各ＨＢＡに関するアクセス情報の迅速な検索を可能にするように配置されている。図５を参照すると、一時的フィルタ・テーブルの例示的な一構成が示されている。一時的フィルタ・テーブル８４は、レコード４００などのレコードの配列を含むように示されている。図５においてＬＵＮ０からＬＵＮｘと番号を付された記憶システム内の各ＬＵＮに、１列のレコードが提供されており、ここで、ｘ＋１は記憶システム内のＬＵＮの数である。記憶システムの各ポートには一行のレコードが提供されている。各レコードはビットマップ４０２を含む。ビットマップは、各ポートにアクセスできる最大数の装置（ＨＢＡ）に対応する数のビットを含む。図５において、これらのビットはＤ１、Ｄ２．．．Ｄｎとして示されており、ここでｎは何れかのポートに接続できる装置の最大数である。
【００３７】
動作の間に、Ｉ／Ｏ要求が記憶システム２０で受信されると、Ｉ／Ｏ要求のアドレスは一時的フィルタ・テーブル８４のデータと比較される。アドレスは、要求を開始したＨＢＡの識別子と、ホストがアクセスを望む記憶システムの部分へのアドレスを含む。このアドレスは、一般的に、フィールドのバス／ターゲット／ＬＵＮの組み合わせを含む。バス・フィールドはネットワーク上の記憶システム２０のベース・アドレスであり、ターゲットは要求が向けられる記憶システムのポートのソースＩＤであり、ＬＵＮは要求によってアドレス指定された論理ユニットを示している。ターゲット情報（行）およびＬＵＮ情報（列）は、一時的フィルタ・テーブルをインデックスしてレコードの１つを得るために使用される。次に、要求装置（たとえば、図３のＨＢＡ４５）に関するソースＩＤは、バス／ターゲット／ＬＵＮアドレスによって選択されたレコード４００のビットマップ４０２におけるビットの１つを選択して、そのビットがマッピングでセットされているかどうかを識別するために使用される。ビットがマッピングでセットされていれば、要求は処理のためにディスクに転送される。セットされていなければ、要求は捨てられる。
【００３８】
一時的フィルタ・テーブル８４は、図３に示したようにメモリに記憶できるか、あるいは代替的にハードウエアにおいて実施できる。上記の一時的データベースの構成は、ＨＢＡとＬＵＮマッピング情報とにアクセスする一方法を提供しているが、代替的な構成を用いてもよい。本発明はこの実施には限定されない。むしろ、ソース識別子およびリソース・アドレスを用いてデータベースからマッピング・データを取得することを可能にする、あらゆる構成データベース配置を使用することができる。
【００３９】
上記のように、ホスト識別子に基づいてホスト・プロセッサに関するデータのボリュームを保存するデータ管理システムを説明してきた。一実施形態においては、データ管理システムは、各要求を認証して、それが記憶システム２０で受信されたホスト識別子によって示されたホストによって本当に送信されたことを検証することにより、セキュリティ保護を付加するように拡張される。記憶システム２０への接続の認証は、データ・ボリュームを要求するホストが、本当に要求パケットのソースＩＤにおいて示されたホストであることを検証することにより、ホスト・プロセッサのそれぞれに割り当てられたデータ・ボリュームを安全にする。ホスト・プロセッサのソース識別子に単に依存することは、十分な保護策にならない場合がある。いくつかの安全でない環境においては、プロセッサは、他のホストが特権を付与されたデータにアクセスしようとして、偽のソース識別子を発行することができる。そのため、認証は、ホスト・プロセッサがそれ自体が主張している者であり、したがってデータへのアクセスを許容されるべき者であることを検証する。
【００４０】
一実施形態においては、ホストの要求の認証を支援するために、ホスト装置によるトランザクションの開始前に、記憶システムは多数の一意の予期される識別子を各ホスト装置の各ＨＢＡに対して発行する。記憶システムは、予期される識別子のコピーを維持する。ホスト装置と関連づけられたＨＢＡは、一連のトランザクションを開始すると、記憶システムから受信した予期される識別子を記憶システムに転送する。記憶システムは受信した各識別子を予期される識別子と比較する。記憶システムは、ホストと関連づけられた特定のＨＢＡに対して識別子を転送するだけであるので、正しい識別子を受信すれば、記憶システムは要求が表示されたホストから実際に発行されたことを検証できる。一実施形態においては、セキュリティ保護のレベルは各識別子に乱数を使用することにより更に強化される。別の実施形態においては、識別子が記憶システムに送信される前にそれを暗号化するために、ホストと記憶システムだけに知られた暗号鍵が使用される。次に、記憶システムは暗号鍵を使用して識別子を解読できる。識別子を暗号化することは、ネットワークに接続された他の装置が、その識別子を入手することおよび、特権が与えられたデータにアクセスすることを防止する。このように、各トランザクションは発行ホストのみに知られた独自の識別子を有しており、識別子はそのホストのＨＢＡのみに知られた独自のアクセス・キーを使用して暗号化されるので、２段階からなる認証が提供される。
【００４１】
一実施形態においては、識別子情報は、選択されたパケットのフィールドを使用して、ネットワーク上の装置（たとえば、ホストと記憶システム２０）間で伝送される。図２の例示的パケットを再び参照すると、パケット５０のペイロード部１６０には、ＳＣＳＩプロトコルに従って通信するのに使用されるフィールドのいくつかが示されている。これらのフィールドは、ソース・セッションＩＤ１６２と、宛先セッションＩＤ１６４と、データ・フィールド６５とを含む。ＳＣＳＩプロトコルに従って、開始装置とターゲットとの間のトランザクションの順序を追跡するために、ソース・セッションＩＤと宛先セッションＩＤとが使用される。ＳＣＳＩプロトコルは、多数のトランザクションが開始装置とターゲット装置との間で同時に未処理になっていることを許容する。たとえば、ホスト・イニシエータは、ターゲット記憶システム内の異なったボリュームに対して多数のＩ／Ｏ要求を発行することができる。ボリュームのそれぞれのアクセス可能性に応じて、要求に対する応答がホストに返される順序は、発行された要求の順序とは異なる場合がある。セッションＩＤは、ホストで要求を応答と整列するために使用される。各トランザクションについて定められるセッションＩＤは、所与の時間にわたって独特である限り、任意の数字にすることができる。セッションＩＤはあらゆる任意の数字にすることができるので、一実施形態においては、セッションＩＤフィールドは、各トランザクションについて一意の識別子情報を転送するために使用される。
【００４２】
上記の認証方法は、様々な方法で実施することができ、本発明は何れの特定の実施にも限定されない。しかし、例示を目的として、上記の認証機能を提供する構成要素を含むホスト・プロセッサ３１２および記憶システム３２０の実施形態を図６に示した。図６においては、ホスト・バス・アダプタ３４５はデータ構造６０をそのメモリ３４９に記憶している。データ構造６０は、ＨＢＡに接続された各記憶システム３２０毎に、パブリック・キー６１と、プライベート・キー６２と、アクセス・キー６３と、１つまたは複数の乱数のリスト６４とを含む。キーのそれぞれは、当業者に知られた技術を使用してデータを暗号化および解読するのに使用することができるビットのフィールドである。暗号化および解読は、選択された暗号化アルゴリズムと関連づけられた論理演算を用いて、キーのビット値をデータのビット値に適用することにより行われる。アクセス・キーは、ＨＢＡと関連記憶システムとの間で転送される認証データを暗号化および解読するために専用化されたキーである。一実施形態においては、アクセス・キー６４の初期値は、以下で更に詳細に説明するように、パブリック・キー６２およびプライベート・キー６３をそれぞれ使用して得られる。
【００４３】
認証を支援するために、記憶システム３２０は、図３を参照して説明した特徴のそれぞれを含むことができるフィルタ・アダプタ・ユニット３３４、ならびに認証を支援する他の多数の構成要素を含む。フィルタ・アダプタ・ユニット３３４は、記憶システムに接続されたＨＢＡのそれぞれに関する認証工程において用いられる乱数を提供するために使用される、乱数生成器８２を含む。乱数生成器８２には、暗号器／解読器８５およびコンパレータ８７が接続されている。以下で更に詳細に説明する方法を用いて、記憶システム２０への接続を認証するために、一時的フィルタ・テーブル８４と、認証テーブル８６と、乱数生成器８２と、暗号器／解読器８５と、コンパレータ８７とが共に使用される。
【００４４】
上記のように、認証方法には、ネットワーク２１上におけるホスト３１２と記憶システム３２０との間の識別子の転送が関係する。一実施形態においては、識別子は、ホスト３１２と記憶システム３２０とで記憶されたアクセス・キーを使用して暗号化されるが、これは本発明の要件ではない。図７は、アクセス・キーをホスト３１２と記憶システム３２０とに分配する１つの方法を示している。
【００４５】
アクセス・キーを、ネットワークへのエントリに先だって、記憶システムとホスト・プロセッサとに割り当てることを含む、多数の方法で提供することができる。代替的に、アクセス・キーは、図７のデータ・フロー図を参照して説明する方法で、ホスト・プロセッサがネットワークに入った後に取得することができる。図７において、ＨＢＡ３４５（図６）によって行われる動作は図の左側に示されており、記憶システム３２０によって行われる動作は、図の右側に示されており、データ・フローは両側の間に示されている。ステップ１００で、ＨＢＡ３４５（図６）はパブリック・キーとプライベート・キーのペアを生成する。これは、たとえば、ＣＰＵ４０で実行する既知の暗号化ソフトウエアを使用して行うことができる。パブリック・キーおよびプライベート・キーのペアはＨＢＡの専用にされており、ネットワーク２１（図６）に接続された何れの他の装置によってもアクセス可能ではない。パブリック・キー６１によって暗号化されたデータは、プライベート・キー６２を使用してのみ解読でき、一方、プライベート・キー６２によって暗号化されたデータは、パブリック・キー６１を使用してのみ解読できる。
【００４６】
ステップ１０２で、ＨＢＡ３４５はパブリック・キー６１を記憶システム３２０に転送する。ステップ１０１で、記憶システム３２０はループし、このキーを待つ。記憶システム３２０がステップ１０１でパブリック・キーを受け取ると、ステップ１０３に進む。ステップ１０３において、パブリック・キー６１を使用して、記憶システム３２０はＨＢＡ３４５に関するアクセス・キーを暗号化して、この暗号化したアクセス・キー６７をネットワーク２１（図６）上でＨＢＡ３４５に返送して、工程を終了する。ＨＢＡ３４５は、パブリック・キーで暗号化されたあらゆるメッセージを解読するために使用しなければならないプライベート・キー６２を有する、ネットワーク内の唯一の装置であるので、ネットワーク上でトランザクションを監視している他の装置は、記憶システム３２０によって転送された暗号化されたアクセス・キー６７を解読することはできないであろう。ステップ１０５で、ＨＢＡ３４５が暗号化されたキー６７を受け取ったと判断されると、ＨＢＡ３４５で実行中の工程はステップ１０６に進み、ここで、ＨＢＡ３４５はプライベート・キー６２を使用して、暗号化されたアクセス・キーを復号する。また、ステップ１０６で、ＨＢＡ３４５は、記憶システム３２０と後で通信するために、アクセス・キーをパブリック・キー６１およびプライベート・キー６２と共にデータ構造６０内に記憶する。
【００４７】
ホスト・プロセッサは、アクセス・キーを一旦受け取ると、Ｉ／Ｏ要求を記憶システム３２０に発行する工程を開始することができる。ここで、ホスト・プロセッサがＩ／Ｏ要求を発行し、本発明の一実施形態に従って記憶システム３２０によってＩ／Ｏシステムが処理される工程を、図８Ａ、８Ｂおよび図９の流れ図を参照して説明する。
【００４８】
図８Ａには、ＨＢＡ３４５と記憶システム３２０との間で接続を確立するために行うことができる方法の一実施形態を示す流れ図が提供されている。図８Ａにおいて、ＨＢＡ３４５によって行われる動作は、図の左側に示されており、記憶システム３２０によって行われる動作は、図の右側に示されており、データ・フローはその間に示されている。ステップ１１０で、ＨＢＡ３４５は記憶システム３２０へのアクセスの調停（arbitrate）を求める。ステップ１２０で、ＨＢＡ３４５は、調停を獲得すると、制御データ・ブロック１１２を記憶システム３２０に対して発行する。制御データ・ブロック１１２は、ＨＢＡ３４５のソースＩＤを含み、ＨＢＡの記憶システム３２０に対する処理要求を示す。ステップ１２１で、記憶システム３２０においてＨＢＡからの未処理の要求があったと判断すると、方法はステップ１２２に進み、ホストの要求に反応して、記憶システム３２０は一意の識別子１１４をＨＢＡ３４５に転送する。一実施形態においては、識別子は、図２に示したパケット５０のペイロード部６０の宛先セッションＩＤ６４において提供された乱数である。ステップ１２２ａで、記憶システムが乱数をＨＢＡに転送した後に、記憶システム３２０はアクセス・キーを使用して乱数１１４を暗号化して、後の比較のために、暗号化された乱数を記憶する。
【００４９】
ステップ１２３で、ＨＢＡが乱数を記憶システム３２０から受け取ったと判断されると、ステップ１２４で、ＨＢＡはアクセス・キー６３（図７の工程を用いて取得）を使用して、その乱数１１４を暗号化して、暗号化された数１２５として記憶システム３２０に返送する。ステップ１２６で、記憶システム３２０が応答を受け取ったと判断されると、ステップ１２７で、記憶システム３２０は、受け取った乱数１２５を、ステップ１２２で生成された乱数の以前に暗号化され局所的に記憶されたものと比較する。比較状態１２８はＨＢＡに転送される。一致しなければ、ホストは正しいアクセス・キーを有していないこと、および／またはホストは正しい乱数を知らず、ホスト・プロセッサと記憶システムとの間の接続は認証されないことを、記憶システムに対して示す。ＨＢＡは記憶システム３２０でデータにアクセスすることを許可されず、トランザクションは終了する。一致すれば、ホストは正しいアクセス・キーと正しい乱数とを有しており、ＨＢＡと記憶システムとの間の接続が認証される。
【００５０】
ＨＢＡと記憶システムとの間の接続が一旦認証されると、ＨＢＡは処理するためにＩ／Ｏ要求を記憶システム３２０に送ることができる。本発明の一実施形態においては、あらゆるＩ／Ｏトランザクションは異なった識別子（たとえば、乱数）を用いて認証される。ＳＣＳＩプロトコルは、ＨＢＡからの複数のＩ／Ｏ要求があらゆる所与の時点で未処理になっていることを許容するので、ＨＢＡはコマンド・タグ・キューイングという技術を用いて、未処理のＩ／Ｏ要求を追跡する。各Ｉ／Ｏ要求には、ソース・セッションＩＤフィールド６２（図２）を用いて、一意のタグが割り当てられる。記憶システムから応答が返される時、このタグを使用してその応答を要求と整列できるように、このタグは応答のセッションＩＤフィールドに含められる。
【００５１】
ＨＢＡがあらゆる瞬間に未処理にできるＩ／Ｏ要求の最大数は、コマンド・タグ・キューイング・プロトコルに従って決定される。各Ｉ／Ｏ要求は一意の識別子に割り当てられるので、各ＨＢＡは、各未処理の要求に識別子を与えることができることを確実にするために、十分な数の識別子を常に含むべきである。したがって、一実施形態によれば、各装置が記憶システムにログインする時、一意の識別子のリストが装置に転送される。リストの識別子の数は、その装置で未処理にできるＩ／Ｏ要求の最大数に対応するが、本発明はこの数に限定されない。各装置は記憶システムに対して要求を発行する時、識別子の１つがリストから使用される。記憶システムは、要求に応答する度に、リストの最下部に記憶された新しい識別子を返す。識別子は、先入れ先出しでリストから選択される。その結果、コマンド・タグ・キューイング・プロトコルを満足するための一定数の識別子が装置で維持される。
【００５２】
識別子をホストに提供する方法の一実施形態を以下で説明する。一意の識別子または乱数は各Ｉ／Ｏ要求と関連づけられるので、Ｉ／Ｏシーケンスの開始時に、ＨＢＡは、許容可能な未処理Ｉ／Ｏ要求の最大数に等しい数の乱数を要求する。乱数のリストは、リスト６４としてＨＢＡ３４５のデータ構造６０（図６）に記憶され、記憶システム３２０のフィルタ・アダプタ・ユニット３３４（図６）の認証テーブル８６に補足的に記憶される。
【００５３】
ここで図９を簡単に参照すると、認証テーブル８６（図６）に記憶できる要素の例が示されている。記憶システム３２０に接続されたＨＢＡのそれぞれについて、データ構造８９が提供されている。データ構造はパブリック・キー８９ａを含むことができ、これは、最初のアクセス・キー６３を得るためにＨＢＡによって提供されたパブリック・キー６１のコピーである。また、データ構造８９はアクセス・キー８９ｂを含むことができ、これはＨＢＡ３４５に記憶されたアクセス・キー６３のコピーである。一実施形態においては、データ構造のそれぞれは乱数のリストを更に含む。データ構造８９ｃの各エントリにおける乱数は、関連するトランザクションを認証するのに使用される乱数に対応する。トランザクションを認証するために乱数がどのように使用されるかを、図８ｂを参照して更に詳細に説明する。
【００５４】
図８ｂにおいては、ステップ１８４で、ＨＢＡは制御データ・ブロック１８５を記憶システム３２０に発行する。制御データ・ブロック１８５は、ＨＢＡがＩ／Ｏトランザクションを開始しそうであるということ、および接続が認証されたことを記憶システム３２０に通知する制御を含む。ステップ１８６で要求が受け取られたと判断されると、記憶システム３２０は要求を解読して、ステップ１８７で、乱数のリストを含むパケット１８８をＨＢＡ３４５に対して転送する。ステップ１８７ａで、記憶システム３２０は、アクセス・キーを使用して最初の乱数も暗号化して、ＨＢＡからの要求で受け取る暗号化された数字との後の比較のために、暗号化された数字を局所的に記憶する。
【００５５】
ステップ１８９でＨＢＡがパケット１８８を受け取ったと判断されると、ステップ１９０で、ＨＢＡ３４５は未処理のＩ／Ｏ要求があるかどうかを判断するためにチェックする。もしあれば、ステップ１９２で、ＨＢＡ３４５は、データ構造６０のフィールド６３に記憶されたアクセス・キーを使用して、最初の乱数を暗号化する。ＨＢＡ３４５は次に、Ｉ／Ｏ要求パケットのソース・セッションＩＤフィールドに暗号化された乱数を挿入し、Ｉ／Ｏ要求パケット１９４を記憶システム３２０に転送する。
【００５６】
ステップ１９５で、Ｉ／Ｏ要求パケットが受け取られたと記憶システム３２０で判断されると、ステップ１９６で、記憶システム３２０は、Ｉ／Ｏ要求パケット１９４のソース・セッションＩＤフィールドにおいて受け取られた暗号化された乱数を、ステップ１８７で生成された暗号化された乱数と比較する。代替的に、記憶システム２０は、受け取った乱数を単に解読して、それを予期される乱数と比較してもよい。一致すれば、記憶システム３２０はそのＩ／Ｏ要求を処理して、応答パケット１９７をＨＢＡ３４５に返送する。応答パケットはＨＢＡによって要求されたあらゆるデータと、リスト１８８の数字が一旦使い尽くされたときに使用される新たな乱数とを含む。一実施形態においては、この新しい乱数は宛先セッションＩＤフィールドにおいて提供され、一方、以前の暗号化された乱数は追跡目的でソースＩＤフィールドで返されるが、特定のフィールドの使用は本発明の限定ではない。
【００５７】
ステップ１９８で、記憶システム３２０から応答が受け取られたと判断されると、ＨＢＡはパケット１９７のセッションＩＤフィールドから暗号化されていない乱数を検索して、データ構造６０にその乱数を記憶する。この工程は次にステップ１９０に進んで、ここで、ＨＢＡは、アクセス・キーを使用して暗号化された乱数リスト６４からの次の乱数を使用して、次のＩ／Ｏ要求を開始する。
【００５８】
このように、記憶システムでホストを認証するために、一意の識別子が使用される方法を提供する。この方法を乱数を用いて説明してきたが、これは本発明の要件ではないこと、および容易に識別可能なパターンを含まない数字のあらゆるシーケンスを代替的に使用できることを理解されたい。上記のように、２つ以上のＨＢＡを同時に記憶システム３２０に接続できる。したがって、接続されたＨＢＡに識別子が分配されると、それらのシーケンスも、記憶システム３２０に接続された様々なＨＢＡ内で同様に分配され、それによって数字分配をいっそうランダムに、したがってより安全に生じさせる。また、暗号化技術を説明してきたが、転送前に識別子が暗号化されることは本発明の要件ではない。代替的に、各要求について識別子を含まずに、アクセス・キーを使用して要求全体を暗号化する認証技術を使用してもよい。また、各トランザクションについて異なったアクセス・キーを提供することも考えられる。本発明は、これらの認証技術のあらゆる組み合わせを包含することができ、したがって、上記の特定の実施形態には限定されない
【００５９】
上記技術は、イニシエータとターゲットとの間における接続が認証されたことを検証するために使用できる。別の実施形態においては、ターゲットで受信されたデータがイニシエータによって送信されたデータであることを確実にする技術も使用される。したがって、コマンドおよびデータがイニシエータからターゲットへの転送中に改竄されていないことを確実にするために、立証方法を適用することにより更にセキュリティを得ることができる。この立証方法は、ネットワークに接続された他の装置が、イニシエータとターゲットとの間のトランザクションに干渉することを防止するために提供することができる。
【００６０】
本発明の別の態様によれば、ネットワーク上のソースとターゲットとの間におけるデータ転送を立証する方法は、ターゲットとイニシエータの両方で、転送のデジタル署名を維持するステップを含む。デジタル署名はチェックサムの形式である。ターゲットとイニシエータとの間で転送されるデータの各バイトは、チェックサムを形成するためにハッシング関数を用いて、転送の以前のバイトと結合される。ハッシング関数は、たとえば、排他的論理和関数、またはその何らかの派生関数とすることができる。署名に含まれるデータは、イニシエータからターゲットに転送されるデータのみ、ターゲットからイニシエータに転送されるデータのみ、あるいはそれらの組み合わせを含むことができる。
【００６１】
ここで図１０を参照すると、イニシエータとターゲットとの間におけるデータ転送を立証する方法の一実施形態の流れ図が示されている。この流れ図は図８ｂを参照して説明したものに類似しているが、データ転送を立証するステップを含む。ステップ２００では、何らかのＩ／Ｏ要求があるかどうかがイニシエータで判断される。Ｉ／Ｏ要求があれば、ステップ２０２で、イニシエータは、トランザクションに関連づけられた乱数を暗号化して、暗号化された乱数をソース・セッションＩＤに入れて、Ｉ／Ｏ要求２０３をターゲットに転送する。ステップ２０４で、ターゲットが要求を受信したと判断されると、ステップ２０５で、ターゲットは、受信した暗号化された数字を、記憶され暗号化された期待される乱数と比較して、一致するか判断する。一致しなければ、ターゲットは応答しない。一致すれば、ステップ２０６で、ターゲットは新しい暗号化された乱数と応答データとをターゲットに転送する。また、ステップ２０６で、ターゲットは、データ転送のデジタル署名を制作する新たなチェックサムを提供するために、応答データを既存のチェックサムにハッシュする。応答２０７は、ステップ２０８においてイニシエータで受信される。ステップ２０９で、イニシエータも、データ転送のデジタル署名を制作する新たなチェックサムを提供するために、既存のチェックサムに応答データをハッシュする。Ｉ／Ｏ要求を発行しチェックサムを生成する工程は、イニシエータ／ターゲット接続における要求の数だけ継続する。ステップ２００でもう要求がないと判断されると、工程は図１１に示したステップ２１０の立証段階に進む。
【００６２】
ステップ２１０で、イニシエータはアクセス・キーを使用してチェックサムを暗号化して、暗号化したチェックサム２１２をターゲットに対して転送する。ステップ２１４で、ターゲットは暗号化されたチェックサムを受信する。ステップ２１６で、ターゲットはチェックサムを解読して、ステップ２１８で、解読されたチェックサムをターゲットによって生成されたチェックサムと比較する。ターゲットは、チェックサムが一致したかどうかを示す状態パケット２２０をイニシエータに送信する。ステップ２２２で、トランザクションが有効であった（すなわち、データは改竄されていなかった）と判断されれば、イニシエータとターゲットとの間で接続が完了する。状態２２０が、トランザクションは有効でなくデータは改竄されていたことを示せば、イニシエータはターゲットとの接続を再確立して、データのトランザクションを繰り返す。
【００６３】
上記のように、３段階のデータ管理を提供するデータ管理方法および装置を説明してきた。フィルタリングは、各ホストが特権を有するデータのボリュームのみにアクセスすることを確実にするために提供される。セキュリティは、要求の識別子において示されたホストによって本当に発行された各要求を検証する認証方法を用いて組み込むことができる。最後に、正当性の立証は、データが転送中に改竄されていないことを確実にするために提供することができる。本発明のデータ管理方法および装置を使用したシステムは、データ管理のこれらのレベルの１つまたは複数を独立して組み込むことができ、そのため、本発明は、上記の列挙されたデータ管理技術を全て含むシステムには限定されない。かかるデータ管理システムは、ホスト・プロセッサによってアクセスが可能なデータを限定することにより、そのホスト・プロセッサでのユーザによるデータ・アクセスについて向上した制御を提供する。したがって、ホスト・プロセッサのユーザは、そのホスト・プロセッサに割り当てられたデータの全てにアクセスできる場合はあるが（そのユーザと関連づけられた特権に応じて）、ユーザも、ホスト・プロセッサで最高の特権を有するシステム管理者でさえも、ホストでのユーザの特権にかかわらず、記憶システムによってホストに割り当てられていないデータにアクセスすることはできない。
【００６４】
上記の説明は、ホストが記憶システムのデータにアクセスする例示的なシステムに関連しているが、上記の方法は、リソースが多数の装置によって共有されているあらゆるシステムに適用できる。かかるシステムは、ディスク・デバイス、テープ・デバイス、ファイル・サーバなどを含むあらゆる種類の記憶システムを含むが、これらには限定されない。
【００６５】
本発明のいくつかの実施形態を詳細に説明したが、当業者は、様々な変更や改良を容易に想起するであろう。かかる変更や改良は、本発明の主旨および範囲の中に入るものであることを意図する。したがって、前述の説明は、例としてのみ示すものであって、限定を意図したものではない。本発明は、特許請求の範囲およびその均等物に定められるようにのみ限定される
【図面の簡単な説明】
【図１】  図１Ａ、１Ｂ及び１Ｃは、本発明のデータ管理態様を採用できる例示的ネットワーク構成の模式図である。
【図２】  図１Ａ、１Ｂまたは１Ｃのネットワークに接続された装置間で分配できるパケットの一実施形態の図である。
【図３】  図１Ａ、１Ｂまたは１Ｃのネットワークにおいて接続できるホスト・プロセッサおよび、本発明の一実施形態に従ってホスト・プロセッサによって発行された要求をフィルタリングする要素を有するアダプタを含む記憶システムの例示的構成要素を示したブロック図である。
【図４】  図３の記憶システムによる使用のために、フィルタリング情報を記憶するのに使用できる構成データ構造の一実施形態のブロック図である。
【図５】  図３の記憶システムで要求をフィルタリングするのに使用できる、フィルタリング・データの一実施形態のブロック図である。
【図６】  図１Ａ、１Ｂまたは１Ｃのネットワークにおいて接続できるホスト・プロセッサおよび、本発明の一実施形態に従ってホストによるトランザクションを認証するロジックを含む記憶システムの例示的構成要素を示したブロック図である。
【図７】  ホスト・プロセッサの同一性を認証するのに使用できる、図６のホスト・プロセッサと記憶システムとの間で暗号鍵を分配する一方法を示した流れ図である。
【図８】  図８Ａ、８Ｂ及び８Ｃは、本発明の一実施形態に従って、図６のホスト・プロセッサと記憶システムとの間の接続を確立するときに、ホスト・プロセッサの同一性を認証する一方法を示した流れ図である。
【図９】  図６の記憶システムの認証テーブルに含めることができ、本発明の一実施形態に従ってホスト・プロセッサの同一性を認証するのに使用できる例示的構成要素を示した図である。
【図１０】  本発明の一実施形態においてデータ転送を有効にするために、図１Ａ、１Ｂおよび１Ｃのネットワークにおいてイニシエータとターゲットとの間で転送されるデータのチェックサムを行う一方法を示した流れ図である。
【図１１】  本発明の一実施例に従って図１０のチェックサムを用いて、イニシエータとターゲットとの間のデータ転送を有効にする一方法を示した流れ図である。
【図１】
0003779154.tif 000002
0003779154.tif 000003
【図２】
0003779154.tif 000004
【図３】
0003779154.tif 000005
【図４】
0003779154.tif 000006
【図５】
0003779154.tif 000007
【図６】
0003779154.tif 000008
【図７】
0003779154.tif 000009
【図８】
0003779154.tif 000010
0003779154.tif 000011
0003779154.tif 000012
【図９】
0003779154.tif 000013
【図１０】
0003779154.tif 000014
【図１１】
0003779154.tif 000015