(57)【要約】ストレージエリアネットワークのネットワークデバイス上でストレージ仮想化を実現する方法および装置を提供する。１つ以上の仮想エンクロージャポートを持ち、１つ以上の仮想ストレージユニットを表現するよう構成される仮想エンクロージャが作られる。仮想ストレージユニットのそれぞれは、ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する。仮想エンクロージャの仮想エンクロージャポートのそれぞれは、ストレージエリアネットワーク内のネットワークデバイスのポートと関連付けられる。それからアドレスまたは識別子が仮想エンクロージャポートのそれぞれに関連付けられる。
2006505831.tif 000002
【特許請求の範囲】
【請求項１】
ストレージエリアネットワーク内でストレージ仮想化を実現する方法であって、
仮想エンクロージャを作ることであって、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想エンクロージャを作ること、
前記仮想エンクロージャの前記仮想エンクロージャポートのそれぞれを前記ストレージエリアネットワーク内のネットワークデバイスのポートに関連付けること、および
アドレスまたは識別子を前記仮想エンクロージャポートのそれぞれにアサインすること
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記仮想エンクロージャの前記仮想エンクロージャポートのそれぞれを前記ストレージエリアネットワーク内のネットワークデバイスのポートと関連付けることは、
前記ストレージエリアネットワーク内のネットワークデバイスのポートに、前記関連付けられた仮想エンクロージャポートにアサインされた前記アドレスまたは識別子に宛てられたメッセージを扱うよう命令すること
を含む方法。
【請求項３】
請求項１に記載の方法であって、前記仮想エンクロージャの前記仮想エンクロージャポートのそれぞれを前記ストレージエリアネットワーク内のネットワークデバイスのポートに関連付けることは、
仮想ＳＡＮ内のネットワークデバイスのポートに、前記関連付けられた仮想エンクロージャポートにアサインされた前記アドレスまたは識別子に宛てられたメッセージを扱うよう命令すること
を含む方法。
【請求項４】
請求項１に記載の方法であって、
ノードワールドワイドネームを前記仮想エンクロージャに関連付けること
をさらに含む方法。
【請求項５】
請求項４に記載の方法であって、
前記仮想エンクロージャポートのそれぞれにポートワールドワイドネームをアサインすることによって、前記ポートワールドワイドネームが、前記ストレージエリアネットワーク内のネットワークデバイスの関連付けられたポートに関連付けられるようにすること
をさらに含む方法。
【請求項６】
請求項１に記載の方法であって、前記ストレージエリアネットワーク内の前記ネットワークデバイスの前記ポートは、ファイバチャネルデバイスのポートである方法。
【請求項７】
請求項１に記載の方法であって、アドレスまたは識別子を前記仮想エンクロージャポートのそれぞれにアサインすることは、
ＦＣＩＤを前記仮想エンクロージャポートのそれぞれにアサインすること
を含む方法。
【請求項８】
請求項１に記載の方法であって、
前記仮想エンクロージャの仮想エンクロージャポートの個数を選択すること
をさらに含む方法。
【請求項９】
請求項８に記載の方法であって、前記仮想エンクロージャの仮想エンクロージャポートの前記個数は、前記ストレージエリアネットワーク内のそれぞれのネットワークデバイスのポートの個数よりも大きい方法。
【請求項１０】
請求項１に記載の方法であって、前記仮想エンクロージャの前記仮想エンクロージャポートのそれぞれを前記ストレージエリアネットワーク内のネットワークデバイスのポートに関連付けることは、
前記仮想エンクロージャポートを、前記ストレージエリアネットワーク内の１つ以上のネットワークデバイスのポートと関連付けること
を含む方法。
【請求項１１】
請求項１に記載の方法であって、前記仮想エンクロージャの前記仮想エンクロージャポートのそれぞれを前記ストレージエリアネットワーク内のネットワークデバイスのポートに関連付けることは、
前記ストレージエリアネットワーク内のネットワークデバイスのポートを、前記仮想エンクロージャポートのうちの１つ以上にバインドすること
を含む方法。
【請求項１２】
請求項１１に記載の方法であって、
前記ストレージエリアネットワーク内の１つ以上のネットワークデバイスの１つ以上の追加のポートに、前記仮想エンクロージャポートのうちの１つに向けられたメッセージをトラップするよう命令すること
をさらに含む方法。
【請求項１３】
請求項１に記載の方法であって、前記１つ以上の仮想ストレージユニットは、それぞれＶＬＵＮまたは前記ストレージエリアネットワーク上のストレージの他の仮想表現を備える方法。
【請求項１４】
請求項１に記載の方法であって、
１つ以上の仮想ストレージユニットを前記仮想エンクロージャにアサインすること
をさらに含む方法。
【請求項１５】
請求項１４に記載の方法であって、前記１つ以上の仮想ストレージユニットは、それぞれＶＬＵＮまたは前記ストレージエリアネットワーク上のストレージの他の仮想表現を備える方法。
【請求項１６】
ストレージエリアネットワーク内でストレージ仮想化を実現するコンピュータで読み取り可能な命令をその上に記憶するコンピュータで読み取り可能な媒体であって、
仮想エンクロージャを作る命令であって、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想エンクロージャを作る命令、
前記仮想エンクロージャの前記仮想エンクロージャポートのそれぞれを前記ストレージエリアネットワーク内のネットワークデバイスのポートに関連付ける命令、および
アドレスまたは識別子を前記仮想エンクロージャポートのそれぞれにアサインする命令
を含むコンピュータで読み取り可能な媒体。
【請求項１７】
ストレージエリアネットワーク内でストレージ仮想化を実現する装置であって、
仮想エンクロージャを作る手段であって、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想エンクロージャを作る手段、
前記仮想エンクロージャの前記仮想エンクロージャポートのそれぞれを前記ストレージエリアネットワーク内のネットワークデバイスのポートに関連付ける手段、および
アドレスまたは識別子を前記仮想エンクロージャポートのそれぞれにアサインする手段
を備える装置。
【請求項１８】
ストレージエリアネットワーク内でストレージ仮想化を実現するよう構成されたネットワークデバイスであって、
プロセッサ、および
メモリを備え、前記プロセッサおよび前記メモリのうちの少なくとも１つは、
仮想エンクロージャを作ることであって、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想エンクロージャを作ること、
前記仮想エンクロージャの前記仮想エンクロージャポートのそれぞれを前記ストレージエリアネットワーク内のネットワークデバイスのポートに関連付けること、および
アドレスまたは識別子を前記仮想エンクロージャポートのそれぞれにアサインすること
を行うよう構成されるネットワークデバイス。
【請求項１９】
ストレージエリアネットワーク内でＬＵＮマッピングを実行する方法であって、
１つ以上のエントリを持つＬＵＮマッピングテーブルにアクセスすることであって、前記エントリのそれぞれは、前記ストレージエリアネットワーク内のイニシエータ、仮想エンクロージャの１つ以上の仮想エンクロージャポートの１つ以上のセットを特定し、特定された論理ユニットを１つ以上の仮想ストレージユニットに関連付け、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表し、前記仮想エンクロージャは、前記１つ以上の仮想ストレージユニットのセットを表すように構成され、前記仮想エンクロージャポートのそれぞれは、前記ストレージエリアネットワーク内のネットワークデバイスのポートに関連付けられる、ＬＵＮマッピングテーブルにアクセスすること、および
前記特定された論理ユニットについてのリクエストが前記イニシエータから前記関連付けられた仮想エンクロージャポートのうちの１つを介して受け取られるとき、前記ＬＵＮマッピングテーブル中の前記エントリのうちの１つを特定し、前記エントリ中で特定された前記１つ以上の仮想ストレージユニットを用いて前記リクエストをサービスすること
を含む方法。
【請求項２０】
ストレージエリアネットワーク内でＬＵＮマッピングを実行するコンピュータで読み取り可能な命令をその上に記憶するコンピュータで読み取り可能な媒体であって、
１つ以上のエントリを持つＬＵＮマッピングテーブルにアクセスする命令であって、前記エントリのそれぞれは、前記ストレージエリアネットワーク内のイニシエータ、仮想エンクロージャの１つ以上の仮想エンクロージャポートの１つ以上のセットを特定し、特定された論理ユニットを１つ以上の仮想ストレージユニットに関連付け、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表し、前記仮想エンクロージャは、前記１つ以上の仮想ストレージユニットのセットを表すように構成され、前記仮想エンクロージャポートのそれぞれは、前記ストレージエリアネットワーク内のネットワークデバイスのポートに関連付けられる、ＬＵＮマッピングテーブルにアクセスする命令、および
前記特定された論理ユニットについてのリクエストが前記イニシエータから前記関連付けられた仮想エンクロージャポートのうちの１つを介して受け取られるとき、前記ＬＵＮマッピングテーブル中の前記エントリのうちの１つを特定し、前記エントリ中で特定された前記１つ以上の仮想ストレージユニットを用いて前記リクエストをサービスする命令
を含むコンピュータで読み取り可能な媒体。
【請求項２１】
ストレージエリアネットワーク内でストレージ仮想化を実現する方法であって、
仮想化メッセージを前記ストレージエリアネットワーク内のネットワークデバイスのポートに送ることであって、前記仮想化メッセージは、前記ポートに、仮想エンクロージャの仮想エンクロージャポートに宛てられたメッセージを扱うように命令し、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想化メッセージを送ること、および
前記仮想化メッセージに応答して、前記ネットワークデバイスの前記ポートから仮想化レスポンスを受け取ること
を含む方法。
【請求項２２】
請求項２１に記載の方法であって、前記仮想エンクロージャポートは、ＮＷＷＮおよびＰＷＷＮによって特定される方法。
【請求項２３】
請求項２１に記載の方法であって、前記仮想化レスポンスは、前記ポートが前記仮想エンクロージャの前記仮想エンクロージャポートに宛てられたメッセージを扱うように構成されることを示す方法。
【請求項２４】
請求項２１に記載の方法であって、前記仮想化メッセージは、前記ポートが前記仮想エンクロージャポートにアサインされたアドレスまたは識別子を得るべきであることを示す方法。
【請求項２５】
請求項２４に記載の方法であって、前記仮想化メッセージは、バインドメッセージまたはトラップメッセージである方法。
【請求項２６】
請求項２４に記載の方法であって、前記仮想化レスポンスは、前記仮想エンクロージャポートにアサインされた前記アドレスまたは識別子を備える方法。
【請求項２７】
請求項２１に記載の方法であって、前記仮想化メッセージは、前記ポートが、前記仮想エンクロージャポートにアサインされたアドレスまたは識別子をＤＮＳサーバから得るべきであることを示す方法。
【請求項２８】
請求項２４に記載の方法であって、
前記仮想エンクロージャポートにアサインされた前記アドレスまたは識別子を受け取ること
をさらに含む方法。
【請求項２９】
請求項２４に記載の方法であって、前記アドレスまたは識別子はＦＣＩＤである方法。
【請求項３０】
請求項２１に記載の方法であって、前記仮想化メッセージは、前記ポートが、前記仮想エンクロージャポートにアサインされたアドレスまたは識別子に宛てられたメッセージを扱うべきであることを示す方法。
【請求項３１】
請求項３０に記載の方法であって、前記アドレスまたは識別子はＦＣＩＤである方法。
【請求項３２】
ストレージエリアネットワーク内でストレージ仮想化を実現するコンピュータで読み取り可能な命令をその上に記憶するコンピュータで読み取り可能な媒体であって、
仮想化メッセージを前記ストレージエリアネットワーク内のネットワークデバイスのポートに送る命令であって、前記仮想化メッセージは、前記ポートに、仮想エンクロージャの仮想エンクロージャポートに宛てられたメッセージを扱うように命令し、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想化メッセージを送る命令、および
前記仮想化メッセージに応答して、前記ネットワークデバイスの前記ポートから仮想化レスポンスを受け取る命令
を含むコンピュータで読み取り可能な媒体。
【請求項３３】
ストレージエリアネットワーク内でストレージ仮想化を実現するよう構成された装置であって、
仮想化メッセージを前記ストレージエリアネットワーク内のネットワークデバイスのポートに送る手段であって、前記仮想化メッセージは、前記ポートに、仮想エンクロージャの仮想エンクロージャポートに宛てられたメッセージを扱うように命令し、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想化メッセージを送る手段、および
前記仮想化メッセージに応答して、前記ネットワークデバイスの前記ポートから仮想化レスポンスを受け取る手段
を備える装置。
【請求項３４】
ストレージエリアネットワーク内でストレージ仮想化を実現するよう構成された装置であって、
プロセッサ、および
メモリを備え、前記プロセッサおよび前記メモリのうちの少なくとも１つは、
仮想化メッセージを前記ストレージエリアネットワーク内のネットワークデバイスのポートに送ることであって、前記仮想化メッセージは、前記ポートに、仮想エンクロージャの仮想エンクロージャポートに宛てられたメッセージを扱うように命令し、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想化メッセージを送ること、および
前記仮想化メッセージに応答して、前記ネットワークデバイスの前記ポートから仮想化レスポンスを受け取ること
を行うよう構成される装置。
【請求項３５】
ストレージエリアネットワーク内でストレージ仮想化を実現する方法であって、
前記ストレージエリアネットワーク内のネットワークデバイスのポートにおいて仮想化メッセージを受け取ることであって、前記仮想化メッセージは、前記ポートが、仮想エンクロージャの仮想エンクロージャポートに宛てられたメッセージを扱うように命令し、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想化メッセージを受け取ること、および
前記仮想化メッセージに応答して前記ネットワークデバイスの前記ポートから仮想化レスポンスを送ること
を含む方法。
【請求項３６】
請求項３５に記載の方法であって、前記仮想化メッセージは、前記ポートが、前記仮想エンクロージャポートにアサインされたアドレスまたは識別子を得るべきであることを示し、
前記仮想エンクロージャポートにアサインされた前記アドレスまたは識別子を得ること
をさらに含む方法。
【請求項３７】
請求項３６に記載の方法であって、
前記アドレスまたは識別子を記憶すること
をさらに含む方法。
【請求項３８】
請求項３５に記載の方法であって、前記仮想化メッセージは、前記ポートが、前記仮想エンクロージャポートにアサインされたアドレスまたは識別子をＤＮＳサーバから得るべきであることを示し、
前記仮想エンクロージャポートにアサインされた前記アドレスまたは識別子を得ること
をさらに含む方法。
【請求項３９】
請求項３６に記載の方法であって、
前記仮想エンクロージャポートにアサインされた前記アドレスまたは識別子を送ること
をさらに含む方法。
【請求項４０】
請求項３６に記載の方法であって、前記アドレスまたは識別子はＦＣＩＤである方法。
【請求項４１】
請求項３５に記載の方法であって、前記仮想化メッセージは、前記ポートが、前記仮想エンクロージャポートにアサインされたアドレスまたは識別子に宛てられたメッセージを扱うべきであることを示す方法。
【請求項４２】
請求項４１に記載の方法であって、前記アドレスまたは識別子はＦＣＩＤである方法。
【請求項４３】
請求項４１に記載の方法であって、
前記仮想エンクロージャポートにアサインされた前記アドレスまたは識別子に宛てられたメッセージを扱うこと
をさらに含む方法。
【請求項４４】
請求項３５に記載の方法であって、
前記仮想エンクロージャの前記仮想エンクロージャポートに宛てられたメッセージを扱うこと
をさらに含む方法。
【請求項４５】
請求項３６に記載の方法であって、
前記仮想エンクロージャポートにアサインされた前記アドレスまたは識別子に宛てられたメッセージを扱うこと
をさらに含む方法。
【請求項４６】
請求項３５に記載の方法であって、
前記仮想エンクロージャポートのうちの１つにアサインされたアドレスまたは識別子によってサポートされる前記仮想ストレージユニットのうちの１つ以上のものの同一性をリクエストするレポートメッセージを受け取ること、
前記仮想ストレージユニットの１つ以上のものを特定するリプライメッセージを送ること
をさらに含む方法。
【請求項４７】
請求項４６に記載の方法であって、前記アドレスまたは識別子はＦＣＩＤである方法。
【請求項４８】
請求項４６に記載の方法であって、前記仮想ストレージユニットの１つ以上のものは、ＶＬＵＮまたは前記ストレージエリアネットワーク上のストレージの他の仮想表現を備える方法。
【請求項４９】
請求項４６に記載の方法であって、前記リプライメッセージ中で特定された前記仮想ストレージユニットの前記１つ以上のものは、前記レポートメッセージを送るイニシエータに見える仮想ストレージユニットである方法。
【請求項５０】
ストレージエリアネットワーク内でストレージ仮想化を実現するコンピュータで読み取り可能な命令をその上に記憶するコンピュータで読み取り可能な媒体であって、
前記ストレージエリアネットワーク内のネットワークデバイスのポートにおいて仮想化メッセージを受け取る命令であって、前記仮想化メッセージは、前記ポートが、仮想エンクロージャの仮想エンクロージャポートに宛てられたメッセージを扱うように命令し、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想化メッセージを受け取る命令、および
前記仮想化メッセージに応答して前記ネットワークデバイスの前記ポートから仮想化レスポンスを送る命令
を含むコンピュータで読み取り可能な媒体。
【請求項５１】
ストレージエリアネットワーク内でストレージ仮想化を実現するよう構成されたネットワークデバイスであって、
前記ストレージエリアネットワーク内のネットワークデバイスのポートにおいて仮想化メッセージを受け取る手段であって、前記仮想化メッセージは、前記ポートが、仮想エンクロージャの仮想エンクロージャポートに宛てられたメッセージを扱うように命令し、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想化メッセージを受け取る手段、および
前記仮想化メッセージに応答して前記ネットワークデバイスの前記ポートから仮想化レスポンスを送る手段
を備えるネットワークデバイス。
【請求項５２】
ストレージエリアネットワーク内でストレージ仮想化を実現するよう構成されるネットワークデバイスであって、
プロセッサ、および
メモリを備え、前記プロセッサおよび前記メモリのうちの少なくとも１つは、
前記ストレージエリアネットワーク内のネットワークデバイスのポートにおいて仮想化メッセージを受け取ることであって、前記仮想化メッセージは、前記ポートが、仮想エンクロージャの仮想エンクロージャポートに宛てられたメッセージを扱うように命令し、前記仮想エンクロージャは、１つ以上の仮想エンクロージャポートを有し、１つ以上の仮想ストレージユニットを表現するよう構成され、前記仮想ストレージユニットのそれぞれは、前記ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する、仮想化メッセージを受け取ること、および
前記仮想化メッセージに応答して前記ネットワークデバイスの前記ポートから仮想化レスポンスを送ること
を行うよう構成されるネットワークデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク技術に関する。より具体的には、本発明はストレージエリアネットワーク内での記憶の仮想化をサポートする方法および装置に関する。
【背景技術】
【０００２】
近年、ストレージデバイスの容量は、記憶の要求ほど速く増加してきていない。したがって与えられたサーバまたは他のホストは、複数の物理的に別個の記憶ノード（典型的にはディスク群）にアクセスしなければならない。この記憶限界を解決するために、ストレージエリアネットワーク（ＳＡＮ）が開発された。一般にストレージエリアネットワークは、異なるデータストレージデバイスおよび関連付けられたデータホストをより大きなユーザのネットワークの代わりに相互接続する高速で特別の目的を持つネットワークである。しかし、ＳＡＮは、ネットワーク内のさまざまなネットワークデバイスおよび／またはエンティティによって用いられるようストレージデバイスが構成されることを可能にするが、データ記憶の要求はしばしば静的というよりは動的である。
【０００３】
図１Ａは、例示的な従来のストレージエリアネットワークを示す。より具体的には、ストレージエリアネットワーク１０２内において、ホスト群（例えばサーバ群またはワークステーション群）１０４、１０６、１０８のセットを、ストレージデバイス群（例えばディスク群）のプールに結合することが可能である。ＳＣＳＩ用語においては、ホストは「イニシエータ」として見ることができ、ストレージデバイスは「ターゲット」と見ることができる。ストレージプールは例えばストレージアレイまたはディスクアレイ１１０、１１２、１１４のセットを通してインプリメントされえる。それぞれのディスクアレイ１１０、１１２、１１４はさらにディスク群のセットに対応する。この例では第１ディスクアレイ１１０はディスク１１６、１１８に対応し、第２ディスクアレイ１１２はディスク１２０に対応し、かつ第３ディスクアレイ１１４はディスク１２２、１２４に対応する。全てのホスト１０４〜１０８が全てのディスク１１６〜１２４にアクセスできるようにする代わりに、ストレージ（例えばディスク）をホスト１０４〜１０８のそれぞれにディスクアレイ１１０、１１２、１１４を介して動的にかつ見えないようアロケートできるようにするのが望ましい。言い換えれば、物理的メモリ（例えば物理的ディスク）は、仮想メモリ（例えば仮想ディスク）の概念でアロケートされえる。これにより異種のイニシエータが、ストレージの動的かつトランスペアレントなアロケートを可能にするように、分散された異種のターゲットのセット（ストレージプール）に接続できるようになる。
【０００４】
仮想メモリの概念は、物理的メモリ内の物理アドレスおよび仮想メモリ内の仮想アドレスの間の変換を通して物理的メモリが仮想化されるようにするために伝統的に用いられてきた。最近、「仮想化」の概念がさまざまなメカニズムを通してストレージエリアネットワーク内でインプリメントされてきている。仮想化は、ストレージネットワーク上の物理的ストレージおよび仮想ストレージを相互変換する。ホスト（イニシエータ）は仮想ディスクをターゲットとして見る。仮想ディスクは、規定された、しかしいくらか柔軟性のあるやりかたで利用可能な物理ストレージを表す。仮想化は、そのストレージのある種の物理的構成／アロケーションによって制約を受けない利用可能な物理ストレージの表現と共にホストを提供する。
【０００５】
ある初期の技術である、独立ディスクの冗長アレイ（ＲＡＩＤ）は、仮想化のある限定された特徴を提供する。さまざまなＲＡＩＤのサブタイプがインプリメントされてきている。ＲＡＩＤ１において仮想ディスクは、同じデータを記憶し（またはそうでなければ同じデータの修復をサポートする）、それによってストレージエリアネットワーク内で冗長性がサポートされるようにする２つの物理ディスク１１６、１１８に対応しえる。ＲＡＩＤ０において単一の仮想ディスクは、複数の物理ディスクにわたってストライピングされる。仮想化の他のタイプには連結、スペアリングなどがある。仮想化のいくつかの局面は、ストレージエリアネットワーク内のさまざまな場所の仮想化機能をインプリメントすることを通して近年、達成されてきた。３つの位置がある程度受け入れられるレベルに達した。すなわちホスト（例えば１０４〜１０８）における仮想化、ディスクアレイまたはストレージアレイ（例えば１１０〜１１４）における仮想化、およびホストおよびストレージプールから分離しているストレージアプライアンス１２６における仮想化である。残念ながらこれらのインプリメンテーションのそれぞれは望ましくないパフォーマンス上の制限を有する。
【０００６】
ストレージアレイの仮想化は、今日用いられるストレージ仮想化のソリューションの中で最もよくあるもののうちのひとつである。このアプローチを通して、仮想ボリュームが特定のストレージサブシステム（例えばディスクアレイ）のストレージスペース上に作られる。ストレージサブシステムレベルにおいて仮想ボリュームを作ることは、ホスト独立性を提供するが、これはストレージプールの仮想化がホストからは見えないからである。さらにストレージシステムレベルにおける仮想化は、メモリアクセスの最適化を可能にし、よって高いパフォーマンスを得る。しかしこのような仮想化スキームは典型的には、同種のストレージ環境についてだけ統一された管理構造を可能にし、その場合にも限られた柔軟性しか得られない。さらに仮想化はストレージサブシステムレベルにおいて実行されるので、ストレージサブシステムレベルで課せられる物理的な仮想の制限がストレージエリアネットワーク内の全てのホストに課せられる。さらにそれぞれのストレージサブシステム（つまりディスクアレイ）は独立に管理される。よってストレージレベルにおける仮想化が複数のストレージサブシステム（例えばディスクアレイ）にまたがって仮想ボリュームを可能にするのはまれであり、よってストレージベースのアプローチのスケーラビリティに制限が加わる。
【０００７】
仮想化がそれぞれのホスト上でインプリメントされるとき、複数の記憶サブシステム（例えばディスクアレイ）をスパンすることが可能である。ホストベースのアプローチは、さらなる優位性があり、すなわち、あるホスト上の制限がストレージエリアネットワーク内の他のホストの動作に影響を与えないことがある。しかしホストレベルにおける仮想化は、仮想化機能をインプリメントするそれぞれのホスト（例えばサーバ）上を走るソフトウェアレイヤの存在を必要とする。したがってこのソフトウェアを走らせることは、このソフトウェアを走らせるホストのパフォーマンスに影響を与える。この方法の他の主要な困難は、これがさまざまなホストに利用可能な記憶を予めパーティショニングすることを前提とすることである。このようなパーティショニングはホストレベルでサポートされ、それぞれのホストの仮想化機能はストレージエリアネットワーク内の他のホストとは独立して実行されるため、ホスト群にわたってストレージアクセスを協調させることは困難である。ホストベースのアプローチはしたがって、セキュリティについての適切なレベルを提供できない。このセキュリティ上の制限のため、リードおよびライト操作中のメモリの「ロック」を必要とするＲＡＩＤのようなさまざまな冗長スキームをインプリメントすることが難しい。さらにミラーリングが実行されるとき、ホストはデータを複数回レプリケートしなければならず、その入力ー出力およびＣＰＵ負荷を増し、ＳＡＮ上のトラフィックを増す。
【０００８】
ホストおよびストレージ間に配置されたストレージエリアネットワークアプライアンス内の仮想化は、ホストベースおよびストレージベースのアプローチの困難を一部、解決する。ストレージアプライアンスは、物理ストレージを仮想ボリュームにマッピングおよびアロケートすることを大局的に管理する。典型的にはストレージアプライアンスは、物理から仮想への現在のマッピングを提供するセントラルテーブルを管理する。よって、ストレージアプライアンスベースのアプローチは、仮想ボリュームがストレージエリアネットワーク上のホストおよびストレージサブシステムの両方から独立してインプリメントされることを可能にし、それによってより高いレベルのセキュリティを提供する。さらにこのアプローチは、複数のストレージサブシステムに渡っての仮想化をサポートする。このアーキテクチャの多くのインプリメンテーションの主な欠点は、それぞれのホストのそれぞれの入力／出力（Ｉ／Ｏ）がストレージエリアネットワークアプライアンスを通して送られなければならず、大きなパフォーマンス低下およびストレージエリアネットワークのボトルネックを引き起こすことである。これは、ＲＡＩＤのような冗長性スキームをサポートするシステムにおいては特に不利であるが、それはデータが複数のディスクに渡ってミラーリングされなければならないからである。他のストレージアプライアンスベースのアプローチにおいて、アプライアンスは、全てのホストがテーブルの現在のバージョンを受け取ることを確認する。よってホストがアプライアンスからテーブルを受け取ることを可能にするためには、アプライアンスからホストへのソフトウェアシムが必要とされ、システムの複雑さを増す。さらにソフトウェアレイヤがホスト上にインプリメントされるので、ホストベースのアプローチの欠点の多くがやはり存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述を鑑み、さまざまなストレージデバイスまたはその部分が論理的かつ動的に、ネットワーク内のさまざまなデバイスおよび／またはエンティティに割り当てられことが望ましい。さらにもしそのようなメカニズムが、従来の仮想化アプローチの欠点なしに、ＳＡＮ内でのストレージの仮想化をサポートするようインプリメントされえるなら有益である。
【課題を解決するための手段】
【００１０】
ストレージエリアネットワーク内でストレージの仮想化を実現する方法および装置が開示される。これは、ホストおよびストレージデバイスの間のデータパスに配置されえる１つ以上のネットワークデバイスを用いることによって達成される。その結果、ストレージデバイスもホストも追加のソフトウェアまたはハードウェアを必要とすることなく、ストレージ仮想化がサポートできる。よって本発明は、それぞれのホストが仮想化機能性をインプリメントするための追加ソフトウェアによって負荷が課せられるホストベースのアプローチよりも優れている。さらに本発明は、複数のネットワークデバイスが同時にさまざまなストレージデバイスの仮想化を管理することを可能にする。重要なことに、スイッチベースの仮想化は、ポートごとにインプリメントされえる。スイッチ上の任意の個数のポートがそれ自身のトラフィックの仮想化を管理できる。これは、ネットワークの仮想化能力が、ポートの個数に応じて拡大縮小することを可能にする。ネットワークシステムにはどれでも多くの個数のポートが存在するので、仮想化のための充分な帯域幅がほとんど常に存在することになる。したがってストレージの仮想化は、従来の仮想化スキームに存在した欠点の多くを伴うことなく達成されえる。
【００１１】
本発明のある局面によれば、１つ以上の仮想エンクロージャポートを持ち、１つ以上の仮想ストレージユニットを表現するよう構成される仮想エンクロージャが作られる。言い換えれば、仮想エンクロージャは、仮想エンクロージャポートを介してアクセスされえる選択された仮想ストレージユニットを「囲む」よう働く。仮想ストレージユニットのそれぞれは、ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表現する。さらに仮想エンクロージャの仮想エンクロージャポートのそれぞれは、ストレージエリアネットワーク内のネットワークデバイスのポートと関連付けられる。アドレスまたは識別子はそれから仮想エンクロージャポートのそれぞれにアサインされる。例えば、アドレスまたは識別子は、ファイバチャネル識別子（ＦＣＩＤ）でありえる。よって、仮想エンクロージャポート（またはそのアサインされたアドレス／識別子）に向けられたメッセージ（例えばパケットまたはフレーム）は、仮想エンクロージャポートに関連付けられたポートによって扱われえる。
【００１２】
本発明のさまざまな実施形態によれば、仮想エンクロージャは、ファイバチャネルネットワーク内でインプリメントされる。よってノードワールドワイドネーム（ＮＷＷＮ）は仮想エンクロージャに関連付けられる。加えて、ポートワールドワイドネーム（ＰＷＷＮ）は、それぞれの仮想エンクロージャポートに関連付けられる。
【００１３】
本発明の他の局面によれば、ストレージエリアネットワーク内のネットワークデバイスのポートは、仮想エンクロージャポートの代わりにメッセージを扱うよう命令される。これは２つのやり方で達成されえる。第一に、ポートは、それ自身を仮想エンクロージャポートに「バインド」するよう命令されえる。言い換えれば、ポートは、仮想エンクロージャポートとして振るまい、仮想エンクロージャポートに向けられポートによって受け取られる全てのメッセージはそのポートによって扱われる。第二に、ポートは、「トラッピングポート」として働くよう命令されえる。より具体的には、仮想エンクロージャポートにバインドされるポートに加えて、１つ以上の追加のポートが、仮想エンクロージャポートに向けられた、それらが受け取るメッセージを扱いえる。トラッピングポートは、好ましくは、ホストに直接接続されるポートであり、したがってリクエストに関連付けられたレスポンスと共に、それによって受け取られたリクエストを管理できる。単一の仮想エンクロージャポートの代わりに複数のポート間でバインドしたり、トラップしたりすることは、好ましくは、仮想エンクロージャサーバのような中央位置において調整される。
【００１４】
さまざまなネットワークデバイスが開示された仮想化プロセスを実行するように構成または適合されえる。これらネットワークデバイスは以下に限定されないが、サーバ（例えばホスト）、ルータ、およびスイッチを含む。さらに上述の仮想化プロセスの機能性は、ハードウェアと共にソフトウェアでもインプリメントされえる。
【００１５】
本発明の他の局面は、上述の方法および手法を全体として、または一部としてインプリメントするプログラム命令がその上に提供される機械で読み取り可能な媒体を含むコンピュータプログラム製造物に関する。本発明の方法の任意のものは、全体としてまたは一部として、そのような機械で読み取り可能な媒体上に提供されえるプログラム命令として表現されえる。さらに本発明は、ここで説明されるように生成および／または使用されるデータのさまざまな組み合わせおよび構成に関する。例えば、ここに説明され適切な媒体上に提供されたフォーマットを持つパケットおよびフレームは本発明の一部をなす。
【００１６】
本発明のこれらおよび他の特徴は、以下に本発明の詳細な説明において以下の図面と併せてより詳細に記載される。
【発明を実施するための最良の形態】
【００１７】
以下の説明において多くの具体的な詳細が述べられるが、これは本発明を完全に理解するためである。しかし本発明はこれら特定の詳細の一部または全部なしに実施されえることは当業者には明らかだろう。あるいは既知のプロセスステップは、本発明の趣旨を不必要にぼかさないために詳細には説明されていない。
【００１８】
本発明のさまざまな実施形態によれば、ストレージエリアネットワーク内のストレージの仮想化は、１つ以上の仮想エンクロージャポート（virtual enclosure ports）を有する仮想エンクロージャ（virtual enclosure）を作ることを通じてインプリメントされえる。仮想エンクロージャは、部分的には１つ以上のネットワークデバイスによってインプリメントされ、これらはここで仮想化スイッチと呼ばれる。より具体的には、仮想化スイッチ、より具体的には仮想化スイッチ内の仮想化ポートは、１つ以上の仮想エンクロージャポートの代わりにパケットまたはフレームのようなメッセージを扱いえる。よって本発明の実施形態は、以下に詳述されるように、仮想エンクロージャポートに向けられたパケットまたはフレームに応用されえる。便宜上、以下の議論では、フレームについて本発明の実施形態を説明する。スイッチはフレームに対して働き、ＳＡＮについての情報を使うことによってスイッチング判定を行う。
【００１９】
仮想化スイッチによって送受信されるフレームは、イーサネットまたはファイバチャネルのような標準プロトコルのために定義されるフレームフォーマットを持つことに注意されたい。したがってこのようなフレームを生成するために従来から用いられてきたソフトウェアおよびハードウェアは、本発明について採用されえる。追加のハードウェアおよび／またはソフトウェアは、本発明によって標準プロトコルに準拠するフレームを変更および／または生成するために用いられる。当業者であれば、後述のように仮想化を可能にするために必要なハードウェアおよびソフトウェアをどのように開発するかを理解するだろう。
【００２０】
明らかに、適切なネットワークデバイスは、仮想化の機能性を実行するために適切なソフトウェアおよび／またはハードウェアと共に構成されなければならない。もちろんストレージエリアネットワーク内の全てのネットワークデバイスが仮想化の機能性を持つように構成される必要はない。むしろ選択されたスイッチおよび／またはポートが仮想化の機能性を持つように、またはそのために適合されえる。同様にさまざまな実施形態において、このような仮想化の機能性は、さまざまなモードの選択を通じてイネーブルされたりディセーブルされたりする。さらにネットワークデバイスの選択されたポートを、連続的に、または仮想化イネーブル状態のときだけ仮想化を実行できる仮想化可能なポートとして構成するのが望ましいかもしれない。
【００２１】
ストレージエリアネットワークにおいて使用される標準プロトコル（すなわちデータをフレーム化するプロトコル）は、必ずしもそうである必要はないが典型的には、そのネットワークによって運ばれる「トラフィックのタイプ」と同義である。後述のように、トラフィックのタイプは、ある種のカプセル化フォーマットにおいて定義される。トラフィックのタイプの例は典型的には、イーサネット、ファイバチャネル、およびインフィニバンドのようなレイヤ２または対応するレイヤフォーマットである。
【００２２】
上述のように、ストレージエリアネットワーク（ＳＡＮ）は、ユーザのより大きなネットワークの代わりに異なるデータストレージデバイスを関連するネットワークホスト（例えばデータサーバまたはエンドユーザマシン）と相互接続する高速特定目的のネットワークである。ＳＡＮはシステムの物理的構成によって定義される。言い換えれば、ＳＡＮ内のこれらデバイスは物理的に相互接続されなければならない。
【００２３】
図１Ｂに示されるようなストレージエリアネットワーク１３１内で、さまざまなストレージデバイス１３２、１３４、１３６、１３８、１４０、および１４２がインプリメントされえ、これらは同種（例えば同一のデバイスタイプ、サイズ、またはコンフィギュレーション）でも、異種（例えば異なるデバイスタイプ、サイズ、またはコンフィギュレーション）でもよい。データは、ホスト１４４および１４６によって送られるコマンドに応答してストレージデバイス１３２〜１４２のさまざまな部分からリードされ、かつさまざまな部分にライトされえる。ストレージデバイス群およびホスト群の間の通信は、ストレージデバイス群およびホスト群を１つ以上のスイッチ、ルータ、またはスイッチング機能を実行するよう構成された他のネットワークノードを介して結合することによって達成される。この例ではスイッチ１４８、１５０、および１５２はインタースイッチリンク１５４および１５６を介して互いに通信する。
【００２４】
上述のように、本発明はストレージネットワーク内の「仮想化」に関する。従来の方法とは異なり、本発明の仮想化は、仮想エンクロージャの形成およびインプリメンテーションを通じて実現される。これは部分的には、仮想エンクロージャをインプリメントするためのスイッチまたはストレージエリアネットワークの他の「内部」ネットワークノードの使用を通じて達成される。さらに本発明の仮想化は典型的には、ポート単位でインプリメントされる。言い換えれば、マルチポート仮想化スイッチは、そのポート群のうちの１つ以上のポート上で別個にインプリメントされる仮想化を有することになる。個々のポートは、その個々のポートによって扱われるパケットまたはフレームのための仮想化機能性を扱う専用ロジックを有する。これによりポートの個数と共に拡大・縮小する仮想化処理が可能になり、ホストベースまたはストレージベースの仮想化スキームで提供できるよりもずっと大きな帯域幅を仮想化のために提供できる。このような従来技術のアプローチにおいて、ホスト群およびネットワークファブリック間の、またはストレージノード群およびネットワークファブリック間の相互接続の個数は制限される（少なくとも、ネットワークファブリック内のポートの個数と比較すれば）。
【００２５】
本発明の具体的な好ましい実施形態において、仮想化ロジックは、与えられたスイッチの個々のポート群において別々にインプリメントされる（スイッチの全てのポートについて集中処理がなされるのではなく）。これによりポート毎に、仮想化処理キャパシティをそのスイッチの正確な要求に密接に適応させることができる。もし中央プロセッサが全体のスイッチ（多くのポートを運用する）について使用されるなら、このプロセッサは全てのポートにおいて最大トラフィックを扱うように設計／選択されなければならない。多くのアプリケーションでは、これは非常に高い処理要求および非常に大きく／高価なプロセッサを意味する。もし中央プロセッサが小さすぎるなら、スイッチは時としてネットワークのスイッチング／仮想化の要求に応えられなくなるだろう。
【００２６】
仮想化は多くの形態を取りえる。一般に仮想化は、ストレージネットワーク上の物理的ストレージおよび仮想ストレージを相互に関連付けるロジックまたはプロシージャとして定義されえる。ホスト群は、そのストレージ内に潜在する物理的構成またはアロケーションによって制約を受けない利用可能な物理的ストレージの表現を見る。仮想化によって超えられる物理的制約の一例は、構成する物理ストレージブロックのサイズおよび位置を含む。例えば小型コンピュータシステムインタフェース（ＳＣＳＩ）規格によって規定される論理ユニットは、正確な物理サイズ（例えば３６ＧＢおよび７２ＧＢ）で与えられる。仮想化は、物理的論理ユニットの定義されたサイズよりもより小さい、またはより大きい仮想論理ユニットでのストレージを表現しえる。さらに仮想化は、時には異なるベンダーからのデバイス群において提供される、２つ以上の異なる物理的論理ユニットからの領域群からなる仮想論理ユニットを提供しえる。好ましくは仮想化動作は、少なくともいくつかのネットワークエンティティ（例えばホスト）にはトランスペアレントである。
【００２７】
ある一般的な方法では、ストレージエリアネットワーク上の仮想化は、典型的なコンピュータシステム上の仮想メモリに似ている。しかしネットワーク上の仮想化は、ずっと複雑でずっと柔軟である。この複雑さは、多くの別々に相互接続されたネットワークノードが存在するという事実から直接来る。仮想化はこれらのノード群にわたってなされなければならない。これらノード群は、ホスト、ストレージサブシステム、およびスイッチ（またはルータのようなこれらに相当するネットワークトラフィック制御デバイス）を含む。しばしばこれらホストおよび／またはストレージサブシステムは異種であり、異なるベンダーによって提供される。これらベンダーは、明確に異なるプロトコル群（標準プロトコルまたは所有権が主張されるプロトコル）を使用しえる。よって多くの場合、仮想化は、異種イニシエータ（例えばホストまたはサーバ）を分散されたターゲット群（ストレージサブシステム）の異種のセットに接続する機能を提供し、ストレージの動的かつトランスペアレントなアロケーションを可能にする。
【００２８】
ネットワークに特定の仮想化動作の例には以下のものが含まれる。すなわち、ＲＡＩＤ０からＲＡＩＤ５、物理的メモリの２つ以上の別個の論理ユニットからのメモリ連結（concatenation of memory）、スペアリング（故障した物理メディアの自動置き換え）、物理メモリのリモートミラーリング、ロギング情報（例えばエラーおよび／または統計）、複数の物理的メモリシステム群の間のロードバランシング、ストライピング（例えばＲＡＩＤ０）、物理メモリにアクセスするためのアクセス制御アルゴリズムのようなセキュリティ対策、仮想メモリブロックのリサイズ、任意のＬＵＮがブートデバイスとして機能することを可能にするための論理ユニット（ＬＵＮ）マッピング、物理メモリのバックアップ（ポイント・イン・タイム・コピーイング）などが含まれる。これらは仮想化機能の例に過ぎない。本発明は、これらの全てのセット、または任意の特定のサブセットに限定されない。
【００２９】
ここでの議論の一部では、本発明の仮想化スイッチの機能は、ＳＣＳＩプロトコルについて記載される。これは、商用の多くのストレージエリアネットワークがストレージサイトにアクセスするためにＳＣＳＩプロトコルを走らせるからである。しばしばストレージエリアネットワークはファイバチャネル（FC-PH (ANSI X3.230-1994, ファイバチャネル−物理的および信号インタフェース）を低レベルプロトコルとして使用し、ファイバチャネルの上にＩＰおよびＳＣＳＩを走らせる。本発明はこれらプロトコルの任意のものに限定されないことに注意されたい。例えばファイバチャネルは、イーサネット、インフィニバンドなどで置き換えられてもよい。さらに高レベルプロトコルはＳＣＳＩを含まなくてもよい。例えばこれにはＦＣ上のＳＣＳＩ、ｉＳＣＳＩ（ＩＰ上のＳＣＳＩ）、パラレルＳＣＳＩ（パラレルケーブル上のＳＣＳＩ）、シリアルＳＣＳＩ（シリアルケーブル上のＳＣＳＩ）およびＳＣＳＩのあらゆる変化形が含まれる。
【００３０】
ＳＣＳＩはストレージエリアネットワークで非常に広く用いられるので、ここで用いられる用語の多くはＳＣＳＩ用語である。ＳＣＳＩ用語（例えば「イニシエータ」および「ターゲット」）を使用するからといって、ここで記載されたプロシージャまたは装置がＳＣＳＩを使用しなければならないことを意味しない。さらに先に進む前に、この説明で用いられるいくつかのＳＣＳＩ用語を説明するのも意味があるだろう。まず、「イニシエータ」とは、他のデバイスによって実行されるべき操作をリクエストするデバイス（ふつうホストシステム）である。典型的にはこの明細書のコンテキストでは、ホストイニシエータは、仮想または物理メモリのある領域上でリードまたはライト操作が実行されることをリクエストする。次に「ターゲット」は、イニシエータによってリクエストされた操作を実行するデバイスである。例えば、ターゲット物理メモリディスクは、始めにホストイニシエータによってリクエストされたようにデータを得るか、または書き込む。ホストイニシエータは、仮想アドレスを持つ「仮想」ターゲットからリードまたはそれにライトするためのインストラクションを提供しえるが、本発明の仮想化スイッチはまず、ターゲットにインストラクションを出す前に、これらインストラクションを物理ターゲットアドレスに変換しなければならない。
【００３１】
ターゲットは物理的または仮想「論理ユニット」に分割されえる。これらはターゲットを通じてアドレス可能な特定のデバイスである。例えば物理ストレージサブシステムは、多くの別個の論理ユニット内で組織化されえる。本明細書においてホスト群は、仮想メモリを別個の仮想論理ユニットとして見る。ここでは時には論理ユニットは「ＬＵＮ」と呼ばれる。ＳＣＳＩ規格ではＬＵＮは論理ユニットナンバを指す。しかし通常の語法では、ＬＵＮは論理ユニットそのものをも指す。
【００３２】
仮想化の中心になるのは「仮想化モデル」の概念である。これは、ストレージサブシステム上に提供される物理ストレージ（ディスクアレイのような）が、ホスト、またはネットワーク上の他のイニシエータによって見られる仮想ストレージに関連付けられる方法である。この関係は多くの形態をとりえ、さまざまな用語によって特徴付けられえるが、上述のようにＳＣＳＩベースの用語が用いられる。よって、ストレージエリアネットワークの物理的側面は、物理的ＬＵＮとして説明される。逆にホストサイドは、１つ以上の仮想ＬＵＮを見るが、これらは物理的ＬＵＮの仮想表現である。物理的ＬＵＮを仮想ＬＵＮにマッピングすることは、論理的に１つか２つか、またはそれ以上のレベル群にわたって起こりえる。結局、物理ＬＵＮアドレス群および仮想ＬＵＮアドレス群の間で相互変換するために本発明のスイッチによって用いられえるマッピング機能が存在することになる。
【００３３】
図２は、本発明のさまざまな実施形態によるストレージエリアネットワーク内でインプリメントされえる仮想化モジュールの例を示すブロック図である。示されるようにストレージエリアネットワークの物理的ストレージは、物理ディスク２０２として示される１つ以上の物理ＬＵＮからなる。それぞれの物理ＬＵＮは、個別にかつ直接にアクセス可能な１つ以上の連続したブロックに記憶されるデータを含むことができるデバイスである。例えば物理ＬＵＮ内のメモリのそれぞれのブロックはブロック２０４として表現されえ、これはディスクユニット（ＤＵｎｉｔ）として呼ばれえる。
【００３４】
マッピング機能２０６を通じて、物理ＬＵＮ２０２に関連付けられた物理ＬＵＮアドレスを仮想ＬＵＮアドレスに変換することができ、その逆もできる。より具体的には上述のように、この仮想化は、したがってマッピング機能は、１つ以上のレベルにわたって実現されえる。例えば示されるように、第１仮想化レベルにおいて、１つ以上の仮想化ＬＵＮ２０８はそれぞれ１つ以上の物理ＬＵＮ２０２、またはその部分を表現する。単一の仮想ＬＵＮ２０８を全体として構成する物理ＬＵＮ２０２は、連続である必要はない。同様に、仮想ＬＵＮ２０８にマッピングされる物理ＬＵＮ２０２は、単一のターゲット内に配置される必要はない。よって仮想化を通じて、仮想ＬＵＮ２０８は、物理的に異なるターゲット群内に位置する物理メモリを表現するように構成されえ、これらターゲット群は異なるベンダーからのものでありえ、よって異なるプロトコルおよびトラフィックのタイプをサポートしえる。
【００３５】
仮想化モデルは単一のレベルでインプリメントされえるが、任意の個数のレベルを持つ階層構造も本発明のさまざまな実施形態によってサポートされえる。例えば示されるように、図２の仮想化モデル内の第２仮想化レベルは、高レベルＶＬＵＮ、すなわちボリューム２１０として呼ばれる。典型的にはイニシエータデバイスは、データにアクセスするときは、ＶＬＵＮ２１０だけしか「見る」ことはない。本発明のさまざまな実施形態によれば、複数のＶＬＵＮは、仮想エンクロージャ内に「囲まれ」ることによって、この仮想エンクロージャがイニシエータによって「見られ」える。言い換えれば、仮想エンクロージャによって囲まれたＶＬＵＮ群は、イニシエータによっては見えない。
【００３６】
この例では、ＶＬＵＮ２１０は、仮想ＬＵＮ２０８の「論理」ＲＡＩＤアレイとしてインプリメントされる。さらにこのような仮想化レベルは、ストライピングおよび／またはミラーリングなどの使用を通じてさらにインプリメントされえる。さらに、マッピング機能２０６をサポートするためには仮想化レベルの個数を特定することは不必要であることに注意されたい。むしろ、例えば再帰的マッピング機能を通じて任意の個数の仮想化レベルがサポートされえる。例えばノードのさまざまなレベルは、ツリーデータ構造、リンクされたリスト、またはトラバースされえる他の適切なデータ構造内で構築され維持されえる。
【００３７】
したがってそれぞれのイニシエータは、階層仮想化モデルの任意のレベルに位置するノードを介して物理ＬＵＮにアクセスしえる。与えられたストレージエリアネットワーク内でインプリメントされた階層モデルの、与えられた仮想化レベル内のノードは、許容された（allowed）イニシエータ群（不図示）のセットには見ることができ、かつアクセス可能である。しかし本発明のさまざまな実施形態によれば、これらノードは、仮想エンクロージャ内に囲まれる（enclosed）ので、許容されたイニシエータ群のセットにはもはや見られえない。特定の仮想化レベル（例えばＶＬＵＮ）内のノードは、それらに対して操作（例えばリード、ライト）が行われる前に作られることが必要である。これは例えば、特定のイニシエータのマスタブートレコードを通して達成されえる。加えて、さまざまなイニシエータが、特定の仮想化レベル内の特定のノード（例えばＶＬＵＮ）についてのリードおよび／またはライト特権をアサインされえる。このようにして、特定の仮想化レベル内のノードは、選択されたイニシエータによってアクセスされえる。
【００３８】
上述のように、ストレージエリアネットワーク内のさまざまなスイッチは、仮想化機能性をサポートする仮想化スイッチでありえる。図３Ａは、本発明のさまざまな実施形態がインプリメントされえる例示的な仮想化スイッチを示すブロック図である。示されるようにデータまたはメッセージはインテリジェントな仮想化ポートによって双方向コネクタ３０２を介して受け取られる。加えて、仮想化ポートは以下に詳述されるように、仮想エンクロージャポートの代わりにメッセージを扱うよう構成される。入力ポートに関連して、メディアアクセスコントロール（ＭＡＣ）ブロック３０４が設けられ、これはイーサネットまたはファイバチャネルのようなさまざまなプロトコルのフレームが受信されることを可能にする。加えて、仮想化インターセプトスイッチ３０６は、受信フレーム内で特定されたアドレスが、ストレージエリアネットワークの１つ以上の物理ストレージユニット上の１つ以上の物理ストレージ位置を表す仮想ストレージユニットの仮想ストレージ位置のアクセスに関するかどうかを決定する。例えば仮想ストレージユニットは、仮想エンクロージャ内に囲まれる（enclosed）仮想ストレージユニット（例えばＶＬＵＮ）でありえる。
【００３９】
仮想化インターセプトスイッチ３０６が、受信フレーム内で特定されたアドレスが物理ストレージ位置ではなく仮想ストレージ位置のアクセスに関すると決定するとき、このフレームは、上述のようなマッピング機能を実行できる仮想化プロセッサ３０８によって処理される。より具体的には仮想化プロセッサ３０８は、１つ以上の物理ストレージ位置および仮想ストレージ位置の間の仮想物理マッピングを得る。このようにして、仮想化プロセッサ３０８は、物理または仮想アドレスを適宜、ルックアップしえる。例えば、物理アドレスから仮想アドレスへのマッピング、あるいは仮想アドレスから１つ以上の物理アドレスへのマッピングを実行することが必要かもしれない。
【００４０】
いったん仮想−物理マッピングが得られると、それから仮想化プロセッサ３０８はその得られたマッピングを用いて新しいフレームを生成するか、または既存のフレームを変更するかすることによって、そのフレームがイニシエータまたは仮想−物理マッピングによって特定されたターゲットに送られるようにする。このマッピング機能はまた、ミラーリングされた書き込みの場合のように、そのフレームが複数回レプリケートされる必要があることを特定しえる。より具体的には、送信元アドレスおよび／または宛先アドレスが適宜、変更される。例えば、ターゲットからのデータについては、仮想化プロセッサは、もともと物理ＬＵＮアドレスだった送信元アドレスを、対応する仮想ＬＵＮおよびアドレスと置き換える。宛先アドレスにおいて、ポートはそれ自身のアドレスをイニシエータのそれと置き換える。イニシエータからのデータについては、ポートは送信元アドレスをイニシエータのアドレスからポート自身のアドレスへ変更する。ポートはまた、宛先アドレスを仮想ＬＵＮ／アドレスから対応する物理ＬＵＮ／アドレスへ変更する。それから新しいまたは変更されたフレームは、フレームがその意図された宛先に送られるように、仮想化インターセプトスイッチ３０６に与えられる。
【００４１】
仮想化プロセッサ３０８は、仮想−物理マッピングを得て適用する一方で、そのフレームまたは関連付けられたデータは一時メモリ位置（例えばバッファ）３１０内に記憶されえる。加えて、送信または受信されているデータを、所望のリードまたはライト操作が正常に完了したことが確認できるまで、記憶することが必要または望ましいかもしれない。一例として、複数のフレームで別個に送信されなければならない大量のデータを仮想ＬＵＮにライトするのが望ましいかもしれない。したがってそのデータが受信された確認が受け取られるまで、一時的にそのデータをバッファリングすることが望ましいかもしれない。他の例では、複数のフレームで別個に受信されなければならない大量のデータを仮想ＬＵＮからリードすることが望ましいかもしれない。さらにこのデータは、データがリードコマンドのイニシエータに送信されなければならない順序とは関係ない順序で受信されえる。この場合、そのデータは、データが送信前に再順序付けされるように、イニシエータにデータを送信する前にバッファリングするのが有利でありえる。同様に、イニシエータ（またはターゲット）に送られたデータの完全性をベリファイすることが必要になる場合には、データをバッファリングするのが望ましいかもしれない。
【００４２】
それからこの新しいまたは改変されたフレームは、転送エンジン３１２によって受信され、このエンジンが、送信元アドレスおよび宛先アドレスのようなフレームのさまざまなフィールドからの情報を得る。それから転送エンジン３１２は、転送テーブル３１４にアクセスすることによって、送信元アドレスが特定された宛先アドレスへのアクセスを有するかを決定する。より具体的には、転送テーブル３１４は、仮想ＬＵＮアドレスと共に物理ＬＵＮアドレスを含みえる。転送エンジン３１２はまた、それを介してフレームを送るスイッチの適切なポートを決定し、そのフレームのための適切なルーティングタグを生成する。
【００４３】
いったんフレームが送信のために適切にフォーマットされると、送信の前にそのフレームはバッファキューイングブロック３１６によって受け取られる。受け取られたままフレームを送信するよりも、バッファまたはキュー３１８においてフレームを一時的に記憶するのが望ましいかもしれない。例えば、サービス品質に基づいてパケットを、それぞれ異なる優先度レベルに対応するキュー群のセットのうちの１つの中に一時的に記憶するのが望ましいかもしれない。それからフレームは、スイッチファブリック３２０を介して適切なポートへ送信される。示されるように発信ポートはそれ自身、フレームがそれを介して送信されえるＭＡＣブロック３２２および双方向コネクタ３２４を有する。
【００４４】
上述のように、ストレージエリアネットワーク内の全てのスイッチが仮想化スイッチである必要はない。言い換えれば、スイッチは、どのポートも「インテリジェント」で仮想化機能性をインプリメントしない標準的なスイッチでありえる。図３Ｂは、本発明のさまざまな実施形態がインプリメントされえる例示的な標準的なスイッチを示すブロック図である。示されるように標準ポート３２６はＭＡＣブロック３０４を有する。しかし図３Ａに示されたような仮想化インターセプトスイッチおよび仮想化プロセッサはインプリメントされていない。受信ポートにおいて受け取られるフレームは、単に転送エンジン３１２およびその関連付けられた転送テーブル３１４によって処理される。送信の前に、フレームはバッファまたはキュー３１８内でキューイング３１６されえる。それからフレームは、スイッチファブリック３２０を介して発信ポートへ転送される。示されるように発信ポートはまた、関連付けられたＭＡＣブロック３２２および双方向コネクタ３２４を有する。もちろんそれぞれのポートは、さまざまなプロトコルをサポートしえる。例えば発信ポートは、ｉＳＣＳＩポート（すなわちイーサネット上のＩＰ上でＳＣＳＩをサポートするポート）でありえ、これはまたパラレルＳＣＳＩおよびシリアルＳＣＳＩと共に仮想化をサポートする。
【００４５】
図３Ａおよび３Ｂを参照して上述のネットワークデバイスはスイッチとして説明されているが、これらネットワークデバイス群は単に例示的である。すなわちルータのような他のネットワークデバイスが、ストレージエリアネットワーク内での送信のための上述のような機能性を持つパケットまたはフレームを受信、処理、変更および／または生成するためにインプリメントされえる。さらに上述のネットワークデバイスは単に例示的であり、したがって他のタイプのネットワークデバイスも開示された仮想化機能性を実行するためにインプリメントされえる。
【００４６】
典型的にはＳＣＳＩターゲットは、ＳＣＳＩイニシエータ（例えばホスト）によって直接にアクセス可能である。言い換えれば、ＰＬＵＮのようなＳＣＳＩターゲットは、これらＳＣＳＩターゲットにアクセスしているホストにとって見える（visible）。同様に、ＶＬＵＮがインプリメントされるときでさえ、ＶＬＵＮはＳＣＳＩイニシエータにとっては見ることができ、かつアクセス可能である。よってそれぞれのホストは典型的には、それにとって利用可能なこれらＶＬＵＮを特定しなければならない。より具体的には、ホストは典型的にはどのＳＣＳＩターゲットポートがそれにとって利用可能かを決定する。それからホストは、これらＳＣＳＩターゲットポートのそれぞれに、これらＳＣＳＩターゲットポートを介してどのＶＬＵＮが利用可能であるかを尋ねえる。
【００４７】
ファイバチャネルネットワーク内では、全てのファイバチャネルデバイスは、ワールドワイドネーム（ＷＷＮ）を有する。より具体的にはノードＷＷＮ（ＮＷＷＮ）は、特定のポートに接続されるノードのＷＷＮである。言い換えれば、ＮＷＷＮは、そのスイッチポートに接続されるシステム、ストレージデバイス、またはサブシステムのＷＷＮである。ノードＷＷＮに加えて、ポートＷＷＮ（ＰＷＷＮ）は、特定のポートについての与えられた名前として働く。特定のスイッチポートについてのファイバチャネルネットワークＩＤ（ＦＣＩＤ）は、ポートの物理位置を特定するために用いられる。それぞれのファイバチャネルデバイスは複数のポートを持ちえ、そのそれぞれがＮＷＷＮおよびＰＷＷＮによってユニークに特定される。
【００４８】
残念ながら、ファイバチャネルＷＷＮ命名法の従来の応用例にはいくつかの欠点がある。例えば、ＮＷＷＮおよびＰＷＷＮは、ファイバチャネルデバイスのそれぞれのポートについてアロケートされなければならない。しかしそれぞれのポートのＮＷＷＮおよびＰＷＷＮがホストのようなイニシエータに見られることができるようにするのは望ましくないかもしれない。さらに、利用可能なポートの数は、特定のストレージデバイス、サブシステム、またはスイッチ内のポートの数に限られる。同様に、ストレージデバイス、サブシステム、またはスイッチは、特定のストレージ仮想化スキームで必要とされるよりも多くの個数のポートを持ちえる。しかし仮想化ポートはインプリメントするのが高価であり、したがってこれらインテリジェントなポートを「浪費」するのは望ましくない。よって、本発明によれば、仮想化ポートは、必要に応じて利用されえる。言い換えれば、ポートは、これらポートを仮想エンクロージャポートにバインド（binding）することによって、またはこれらポートをトラッピングポートとしてインプリメントすることによって、１つ以上の仮想エンクロージャをインプリメントするために選択されえる。その結果、作るのに最も高価なこれらポートは、その最大限のキャパシティまで利用されえる。
【００４９】
本発明のある実施形態において、ファイバチャネルネットワークのようなネットワークにおける仮想化は、ストレージサブシステム内のアクセス可能なポートの個数を制限することなくインプリメントされる。さらにＳＡＮ内のポートは、特定のストレージ仮想化スキームについて必要に応じて選択されアロケートされえる。本発明のさまざまな実施形態は以下に詳述される。
【００５０】
本発明がどのようにファイバチャネルネットワークにおいて応用されえるかを理解するためには、ファイバチャネルネットワークにおけるＷＷＮ命名法の従来の応用例を示すのが役立つ。図４は、それぞれのＳＣＳＩターゲットポートについてノードワールドワイドネーム（ＮＷＷＮ）およびポートワールドワイドネーム（ＰＷＷＮ）をインプリメントする従来の方法を示すトランザクションフロー図である。示されるように、ホスト４０２、スイッチ４０４、ドメインネームシステム（ＤＮＳ）サーバ４０６およびＳＣＳＩターゲットポート４０８の間の相互作用は、対応するラベルの付けられた垂直な線によって表される。示されるようにホスト４０２のようなファイバチャネルノードがファブリックスイッチ４０４に論理接続を確立するためには、ファイバチャネルノードはファブリックログイン（ＦＬＯＧＩ）４１０を実行する。固定されたメディアアクセスコントロール（ＭＡＣ）アドレスを用いる多くのＬＡＮ技術とは異なり、ファイバチャネルは、ログインのあいだ動的にアサインされるＦＣＩＤと呼ばれるアドレス識別子を用いる。よってスイッチ４０４は、ＦＣＩＤをホスト４０２に４１２において与える。いったんホストがホストＦＣＩＤをアサインされると、ホストは４１４において、ＤＮＳサーバ４０６のＤＮＳクエリーをＳＣＳＩレポートコマンドを介して実行しえ、このクエリーはホストに利用可能な、したがってホストに見えるＳＣＳＩターゲットをリクエストする。より具体的にはＤＮＳクエリーは、ホストＦＣＩＤに見えるこれらＳＣＳＩターゲットを決定する。ＳＣＳＩターゲットポートのＦＣＩＤはそれから、ＤＮＳサーバ４０６によってホスト４０２に４１６において与えられる。
【００５１】
いったんホストがそれに利用可能なこれらＳＣＳＩターゲットポートのＦＣＩＤを持つと、ホストは４１８において、ファイバチャネルプロセスログインコマンドを利用可能なＳＣＳＩターゲットポート（ＦＣＩＤによって特定される）のうちの１つに送る。このプロセスログインは、ファイバチャネルをＳＣＳＩに「マッピング」するマッピングレイヤを実現する。いったん完了すると、ＳＣＳＩターゲットポート４０８は、ファイバチャネルアクセプトメッセージを４２０において送る。ファイバチャネルはＳＣＳＩにマッピングされるので、ホストはＳＣＳＩコマンドをＳＣＳＩターゲットに送ることができる。
【００５２】
ホスト４０２がＳＣＳＩコマンドをＳＣＳＩターゲットポート４０８に送れるようになったので、ホストはＳＣＳＩプロセスログインコマンドをＳＣＳＩターゲットポート４０８に送ることによって、ＳＣＳＩプロセスログインを４２２において実行する。それからＳＣＳＩターゲットポート４０８は、ＳＣＳＩアクセプトコマンド４２４を送る。したがってホストおよびＳＣＳＩターゲット間のＳＣＳＩプロトコルを介した通信が確立される。例えばホストは、それに利用可能なこれらＬＵＮにリードおよびライトを行うのと同様に、どのＬＵＮがそれに利用可能であるかを決定しえる。
【００５３】
ホスト４０２は、どのＳＣＳＩターゲットポートが自分に利用可能であるかを知っており、これらポートのそれぞれと通信できるので、ホストは４２６において、ＳＣＳＩレポートＬＵＮコマンドをＳＣＳＩターゲットポート４０８に送ることによって、ホストＦＣＩＤに見えるこれらＬＵＮを決定できる。ＳＣＳＩターゲットポート４０８は、どのＬＵＮがホストＦＣＩＤに見えるかを決定し、ＬＵＮ（例えばＰＬＵＮおよびＶＬＵＮ）のリストを４２８において送る。ホスト４０２はそれから４３０において、ＳＣＳＩリードおよびライトコマンドを特定のＰＬＵＮまたはＶＬＵＮにＳＣＳＩターゲットポート４０８を介して送る。
【００５４】
本発明のさまざまな実施形態において、ストレージ仮想化は、ストレージエリアネットワーク内で「仮想エンクロージャ」を作ることを通じて実現される。図５は、本発明のある実施形態による例示的仮想エンクロージャのブロック図である。仮想エンクロージャ５０２は、１つ以上の仮想ストレージユニットを「囲む」、つまり表現するよう構成される仮想エンティティである。例えば１つ以上の仮想ストレージユニットはそれぞれ、ＶＬＵＮまたはＳＡＮ上のストレージの他の仮想表現を備えうる。上述のようにそれぞれの仮想ストレージユニットは、ストレージエリアネットワークの１つ以上の物理ストレージユニット５０４上の１つ以上の物理ストレージ位置を表す。仮想エンクロージャの作成を通じて、上述のようなさまざまな仮想化ポートが、特定のストレージエリアネットワーク内での仮想化をサポートするために必要に応じてインプリメントされえる。より具体的には、仮想エンクロージャは、１つ以上の「仮想エンクロージャポート」を持ち、これらのそれぞれがストレージエリアネットワーク内のネットワークデバイスのポート（例えば仮想化ポート）と関連付けられる。例えば、ネットワークデバイスのポートは、その仮想エンクロージャポートに宛てられたメッセージを扱うために、静的または動的に命令されえる。アドレスまたは識別子はまた、仮想エンクロージャポートのそれぞれにアサインされる。よって、仮想エンクロージャポートに宛てられたメッセージ（例えばパケットまたはフレーム）は、このアドレスまたは識別子によって特定されえ、それにより特定の仮想エンクロージャポートの代わりにポートがメッセージをインターセプトし扱うことができる。例えば、ＦＣＩＤは、ファイバチャネルネットワーク内で用いるために、またはＳＡＮのようなネットワーク内のさまざまなファイバチャネルデバイスと共に用いるために、仮想エンクロージャポートのそれぞれにアサインされえる。このようにして仮想エンクロージャは、１つ以上の仮想ストレージユニットを表現するために作られる。
【００５５】
ＳＡＮ内において、異なる仮想ＳＡＮ（ＶＳＡＮ）を作ることが可能である。単一のストレージエリアネットワーク内で仮想ストレージエリアネットワーク（ＶＳＡＮ）を実現する１つの方法は、２００１年１２月２６日出願の「Methods and Apparatus for Encapsulating a Frame for Transmission in a Storage Area Network」と題されたEdsallらによる米国特許出願第  号、弁護士整理番号ＡＮＤＩＰ００１を参照してさらに説明され、これは全ての目的のためにここで参照によって援用される。言い換えれば、異なるＶＳＡＮ間で物理ストレージユニットを分配するのが望ましい、または必要でありえる。したがって仮想エンクロージャポートが仮想化ポートにバインドされるとき、これらの選択された仮想化ポートは複数のＶＳＡＮ間で分配されえる。
【００５６】
それぞれの仮想エンクロージャは、任意の個数の仮想エンクロージャポートを持ちえる。言い換えれば、仮想エンクロージャポートの個数は選択可能であるようにするのが望ましいかもしれない。例えば仮想エンクロージャ定義を作り、管理するシステムアドミニストレータは、仮想エンクロージャポートの適切な個数を選択しえる。仮想エンクロージャ内の仮想エンクロージャポートの個数は、ストレージエリアネットワーク内の特定のネットワークデバイス内のポートの個数によって制限されないことに注意されたい。より具体的には、それぞれの仮想エンクロージャポートはストレージエリアネットワーク内のネットワークデバイスのポートと関連付けられる。言い換えれば、単一の仮想エンクロージャの仮想エンクロージャポートは、単一のネットワークデバイスというよりは、ストレージエリアネットワーク内の複数の異なるネットワークデバイスのポート（例えば仮想ポート）と同時に関連付けられえる。加えて、仮想化ポートのようなネットワークデバイスの単一のポートは、複数の仮想エンクロージャポートに同時に関連付けられえる、つまりバインドされえる。したがって仮想ストレージユニットの仮想化のために利用可能なポートの個数は、事実上、無制限である。
【００５７】
上述のように、アドレスまたは識別子は、仮想エンクロージャポートのそれぞれにアサインされる。理論的にはこのアドレスまたは識別子は、後に仮想エンクロージャポートと関連付けられるストレージエリアネットワークのポートに以前にアサインされたアドレスまたは識別子でありえる。しかし単一の仮想化ポートは、複数の仮想エンクロージャポートにバインドされえるので、そのポート（例えば仮想化ポート）に以前にアサインされたアドレスまたは識別子は、仮想エンクロージャポートをユニークには特定しない。よって、アドレスまたは識別子は、仮想エンクロージャポートをユニークに特定するために仮想エンクロージャポートにアサインされる。このとき、アドレスまたは識別子は、仮想エンクロージャポートに関連付けられる仮想化ポートに与えられる。ある実施形態によれば、仮想エンクロージャがファイバチャネルネットワークにおいて用いられ、したがってそれぞれのファイバチャネルデバイスがＮＷＷＮを持つ。この命名法は、仮想エンクロージャがインプリメントされるようにするために、本発明のさまざまな実施形態によって利用される。よってＮＷＷＮおよびＰＷＷＮの両方は共に、仮想エンクロージャポートをユニークに特定するためのアドレスまたは識別子として用いられえる。より具体的には、ＮＷＷＮは、仮想エンクロージャと関連付けられる。加えてＰＷＷＮは、それぞれの仮想エンクロージャポートにアサインされる。ＦＣＩＤのようなアドレスまたは識別子が仮想エンクロージャポートにアサインされるまで、ＮＷＷＮおよびＰＷＷＮは共に仮想エンクロージャポートを特定する。
【００５８】
いったん仮想エンクロージャが作られると、１つ以上の仮想ストレージユニットが仮想エンクロージャにアサインされえる。上述のように仮想ストレージユニットのそれぞれは、ＶＬＵＮまたはストレージエリアネットワーク上のストレージの他の仮想表現でありえる。このようにして仮想エンクロージャは、これら仮想ストレージユニットを「囲み」、それによりこれらの仮想ストレージユニットに仮想エンクロージャを介してアクセスすることをホストに要求する。このようにＶＬＵＮはホストからは「隠され」える。言い換えれば、ＰＷＷＮにアクセスすることによって、ホストは、特定のデバイスまたはＶＬＵＮというよりは、単に仮想エンクロージャにアクセスできるだけである。より具体的にはＶＬＵＮは、仮想エンクロージャポートのセットの後ろにある論理ユニットのように見える。よってＶＬＵＮを作るのに用いられるＰＬＵＮは、ホストからは隠される。
【００５９】
上述のように、ストレージエリアネットワークは、標準スイッチと共に仮想化機能性をインプリメントするよう構成された仮想化スイッチで実現されえる。それぞれの仮想化スイッチは、１つ以上の標準ポートと共に、１つ以上の「インテリジェントな」仮想化ポートを含みえる。図６は、本発明のさまざまな実施形態によって仮想エンクロージャポートをさまざまな仮想化ポートにバインドすることを通じて仮想エンクロージャがインプリメントされる例示的システムを示す図である。示されるように仮想エンクロージャ６０２は、２つの仮想ストレージユニットＶＬＵＮ１  ６０４およびＶＬＵＮ２  ６０６を「囲む」。この例では、仮想エンクロージャ６０２は、ＶＥ１  ６０８、ＶＥ２  ６１０、およびＶＥ３  ６１２の３つの仮想エンクロージャポートを有する。加えて、ストレージエリアネットワーク内の４つのネットワークデバイスが示される。より具体的には、４つの仮想化スイッチ６１４、６１６、６１８、および６２０が示される。仮想化スイッチのそれぞれは、図３Ａを参照して上述されたような１つ以上の仮想化ポートを有する。しかし、図示を簡潔にするため、それぞれの仮想化スイッチは、それぞれｖ１、ｖ２、ｖ３、およびｖ４とラベルが付けられた単一の仮想化ポートを有するように示される。それぞれの仮想化ポートは、関連付けられたＰＷＷＮ（不図示）を有する。スイッチ群の間の通信は、２つのスイッチ群（または２つのポート群）の間のインタースイッチリンク（不図示）によって達成されえる。
【００６０】
それぞれの仮想エンクロージャポートは、ユニークに特定される。より具体的には、ファイバチャネルネットワーク内で、仮想エンクロージャ６０２は、ＮＷＷＮ６２１によって特定される。加えて、いったんそれぞれの仮想エンクロージャポートが仮想化ポートと関連付けられると、仮想エンクロージャポートＶＥ１  ６０８、ＶＥ２  ６１０、およびＶＥ３  ６１２は、それぞれＰＷＷＮ１  ６２２、ＰＷＷＮ２  ６２４、およびＰＷＷＮ３  ６２６とラベルが付けられたそのＦＣＩＤと共に、さらにＰＷＷＮによって特定される。より具体的には、仮想エンクロージャポートは、ＦＣＩＤが仮想エンクロージャポートにアサインされるまではＮＷＷＮおよびＰＷＷＮによって特定されえる。ＦＣＩＤは図８を参照して後で詳述される。示されるようにアサインされるＦＣＩＤもまた、対応する仮想エンクロージャポートに関連付けられた仮想化スイッチを特定する。これはファイバチャネルにおいては、スイッチは「ドメイン」として見られるからである。よってそのスイッチ内の任意のポートのＦＣＩＤの第１バイトは、ドメインＩＤと同じである。例えば、第１仮想エンクロージャポートＶＥ１  ６０８にアサインされたＦＣＩＤの第１バイトは、スイッチ５０として示される仮想化スイッチ６１６を特定する。同様に、第２仮想エンクロージャポートＶＥ２  ６１０にアサインされたＦＣＩＤの第１バイトは、スイッチ５５として示される仮想化スイッチ６１４を特定し、一方、第３仮想エンクロージャポートＶＥ３  ６１２にアサインされたＦＣＩＤの第１バイトは、スイッチ４５として示される仮想化スイッチ６１８を特定する。
【００６１】
仮想エンクロージャ６０２のような仮想エンクロージャの生成は、仮想エンクロージャサーバ６２７のようなネットワークデバイスによって実行されえる。仮想エンクロージャ６０２は、例えば、システムアドミニストレータによって作成されえる。いったん作成されると、ＶＬＵＮ６０４および６０６のようなさまざまなＶＬＵＮが仮想エンクロージャ６０２にアサインされえる。このような割り当ては、後で必要に応じて追加のＶＬＵＮを含むように、仮想エンクロージャからＶＬＵＮを取り除くように、またはそうでなければＶＬＵＮの仮想エンクロージャ６０２への割り当てを変更するように変更されえる。仮想エンクロージャの作成、変更および保持に加えて、仮想エンクロージャサーバ６２７はまた、仮想化スイッチの仮想化ポートに、それらの対応する仮想エンクロージャポートとの関連付けを知らせえる。このようにして仮想化ポートは、これら対応する仮想エンクロージャポートに向けられたパケット（またはフレーム）をインターセプトし、かつ扱う責任を知らされえる。
【００６２】
いったん仮想エンクロージャが作成されると、１つ以上のホスト６２８、６３０は、ストレージエリアネットワーク内のデータに仮想エンクロージャ６０２を介してアクセスしえる。より具体的には、ホスト６２８、６３０は、ここでＶＬＵＮ１  ６０４およびＶＬＵＮ２  ６０６として示される仮想ストレージユニットに対応する物理ストレージユニットと呼ばれるさまざまな物理ストレージデバイスにアクセスしえる。例えばホストは、パケット、フレームまたはメッセージを仮想エンクロージャによって囲まれた（かつ仮想エンクロージャポートを介してホストに利用可能な）ＶＬＵＮ内の仮想アドレスに送ることによって、ストレージエリアネットワーク内のさまざまなＰＬＵＮ６３２、６３４、６３６、６３８からデータを読み、またはそれらにデータを書き込みえる。
【００６３】
上述のように、仮想エンクロージャは、さまざまなネットワーク環境において用いられるように生成されえる。図７は、本発明のさまざまな実施形態によって仮想エンクロージャを生成する方法を示すプロセスフロー図である。この例では、仮想エンクロージャはファイバチャネルネットワークにおいて用いられるようになっている。よってブロック７００２において示されるように、ＮＷＷＮは仮想エンクロージャと関連付けられる。加えて、仮想エンクロージャの仮想エンクロージャポートの個数がブロック７０４において選択される。これら仮想エンクロージャポートのそれぞれは、それらがブロック７０６において仮想化ポートにバインドされ、ブロック７０８においてＦＣＩＤがアサインされるまで、ＰＷＷＮによって特定されえる。いったん仮想エンクロージャが生成されると、１つ以上のＶＬＵＮがブロック７１０において仮想エンクロージャにアサインされる。よってホストがブロック７１２においてＳＡＮにログインするとき、ホストは、ＳＣＳＩリードおよびライトコマンドを送ることによって、物理ストレージユニットに仮想エンクロージャを介してアクセスしえる。
【００６４】
ファイバチャネルネットワーク内では、それぞれのＳＣＳＩターゲットデバイスがＮＷＷＮをアサインされる。さらにそれぞれのＳＣＳＩターゲットポートはＰＷＷＮをアサインされる。加えて、ファイバチャネル識別子（ＦＣＩＤ）は、それぞれのＳＣＳＩターゲットポートの物理位置を特定し、したがってＰＷＷＮと関連付けられる。図８は、本発明のさまざまな実施形態によって仮想エンクロージャポートに関連付けられえる従来のＦＣＩＤを示す図である。ＦＣＩＤは、３バイトアドレス識別子であり、これは仮想化スイッチのようなスイッチ８０２、ネットワーク内でのエリア８０４、および仮想化ポートのようなスイッチ８０２のポート８０６を特定する。
【００６５】
上述のように、仮想エンクロージャを作成するために、それぞれの仮想エンクロージャポートは仮想化ポートに「バインド」される。本発明のさまざまな実施形態によれば、仮想エンクロージャポートを仮想化ポートにバインドすることの調整は、別個のネットワークデバイスによって実行される。例えばこのネットワークデバイスは、仮想エンクロージャを生成する責任を負う仮想エンクロージャサーバでありえる。言い換えれば、仮想エンクロージャサーバは、仮想化ポートが仮想エンクロージャポートに「バインドされ」、したがってその仮想エンクロージャポートに宛てられる（その仮想化ポートによって受け取られる）全てのメッセージを扱わなければならないと仮想化ポートに命令する。
【００６６】
単一の仮想化ポートを仮想エンクロージャポートにバインドすることに加えて、追加のポートが、仮想エンクロージャポートに宛てられたメッセージを「トラップ」できるようにすることが望ましいかもしれない。例えば、仮想エンクロージャポートに宛てられたメッセージを受け取る仮想化ポートは、仮想エンクロージャポートに「バインドされた」仮想化ポートよりもホストに近く、したがって適時に効率的なサービスを提供するのにより適しているかもしれない。加えて、全てのメッセージを仮想エンクロージャポートにバインドされた単一の仮想化ポートに転送するのは望ましくないかもしれず、これは限られた個数のポートを過負荷にさせて非効率なサービスを生むかもしれないからである。したがって本発明のさまざまな実施形態によれば、仮想エンクロージャサーバは、さまざまな仮想化ポートが、１つ以上の仮想エンクロージャポートに宛てられたメッセージを「トラップする」ように命令する。このようにして、ＳＡＮ内の追加仮想化ポートがメッセージを扱う力が増強される。したがって仮想化ポートは、仮想化ポートが仮想エンクロージャポートにバインドされていなくても仮想エンクロージャをサービスしえる。
【００６７】
「トラッピング」仮想化ポートは、好ましくは内部ノードではなくＳＡＮ内の「外部」ノードである。言い換えれば、仮想化ポートは、１つ以上の他のポート（例えば標準または仮想化ポート）を介して間接的にではなく、ホストに直接に接続されるべきである。この直接接続は特に重要であるが、それは、同じリターンパスが保証されないので、内部ノードはホストからメッセージまたはリクエストを受け取りえるが、内部ノードはホストに向けられたターゲットからのメッセージは受け取れないからである。その結果、仮想化ポートは、この「通信ループ」を完了することができず、したがってホストリクエストがサービスされたかどうかを知りえない。
【００６８】
本発明のさまざまな実施形態によって仮想化ポートの仮想エンクロージャバインドおよびトラッピングの機能性を調整する１つの方法は、図９に示される。仮想エンクロージャサーバにおいて実行されるステップは垂直な線９０２によって表現され、仮想化ポート１〜３において実行されるステップは垂直な線９０４、９０６、および９０８によってそれぞれ表現される。ＤＮＳサーバおよび関連するスイッチは、垂直な線９１２および９１０によってそれぞれ表現される。ＤＮＳサーバ９１２はしばしばスイッチ９１０に含まれる。仮想エンクロージャサーバ９０２は、ＳＡＮ内でストレージの仮想化を可能にするためにさまざまな仮想化メッセージをＳＡＮ内のさまざまなポートに送りえる。例えば上述のように、仮想化メッセージは、バインドメッセージまたはトラップメッセージでありえ、これは仮想エンクロージャポートのＰＷＷＮを特定する。バインドメッセージおよびトラップメッセージの間の主要な差異は、バインドメッセージが、ＦＣＩＤが動的に仮想エンクロージャポートにアサインされるべきことを示す一方で、トラップメッセージは、以前に他の仮想エンクロージャポートにアサインされたＦＣＩＤが得られるべきあり、それによりそのＦＣＩＤに宛てられたメッセージが受信ポートによってトラップされえることを示す点である。９１４において示されるように、仮想エンクロージャサーバは、第１仮想化ポート、仮想化ポート１  ９０４に、仮想化ポート１  ９０４によって受け取られる第１仮想エンクロージャポートＶＥＰ１に宛てられた全てのメッセージを扱うよう命令するバインドメッセージ９１４を送る。ＶＥＰ１のようなそれぞれの仮想エンクロージャポートは、そのＰＷＷＮによってユニークに特定されえる。バインドまたはトラップメッセージのような仮想化メッセージは、さらに、受信仮想化ポートが仮想エンクロージャポートにアサインされたアドレスまたは識別子を得るべきであることを示しえる。例えば、仮想化メッセージは、そのアドレスまたは識別子が、特定されるかもしれず特定されないかもしれないＤＮＳサーバから得られるべきであることを示しえる。
【００６９】
いったんバインドメッセージが受信されると、仮想化ポート１  ９０４は、ＦＬＯＧＩメッセージをスイッチ９１０に９１６において送り、スイッチ９１０と接続を確立する。上述のようにＦＣＩＤは、ログインのあいだ動的にアサインされる。よってスイッチ９１０は、ＦＣＩＤ、ＦＣＩＤ１を第１仮想化ポートＶＥＰ１にアサインし、これは９１８においてＤＮＳサーバ９１２に与えられ、それからこのサーバは仮想エンクロージャポート１、ＶＥＰ１をＦＣＩＤ  ＦＣＩＤ１に関連付ける。スイッチ９１０はそれから、ＦＣＩＤ１がＤＮＳサーバ９１２によって第１仮想エンクロージャポート、ＶＥＰ１に関連付けられたことを示すアクセプトメッセージを９２０において送る。加えて、示されるように、このアクセプトメッセージは、仮想化ポート９０４にアサインされたＦＣＩＤを与える。仮想化ポートは、仮想化ポートがバインドされた、または仮想化ポートがメッセージをトラップする責任を持つこれら仮想エンクロージャポートを管理する。この仮想エンクロージャポート情報を保持するために、それから仮想化ポートはＦＣＩＤ、ＦＣＩＤ１を図１０を参照して後述するような仮想化ポートテーブルに記憶しえる。またＤＮＳレジストリが９２２において実行され、ＶＥＰ１がＳＣＳＩプロトコルを理解することをＤＮＳサーバ９１２に知らせる。それからＤＮＳサーバはアクセプトメッセージを９２４において送る。それから仮想エンクロージャの仮想エンクロージャポートに宛てられたメッセージを扱えるように仮想化ポートがいまやコンフィギャされていることを示す仮想化レスポンスが仮想化ポートから９２６において仮想エンクロージャサーバに送られる。この例では、仮想化レスポンスは、仮想化ポートがいまや仮想エンクロージャポートにバインドされていることを示す。加えて、仮想エンクロージャポートＶＥＰ１にアサインされたＦＣＩＤはまた、仮想エンクロージャサーバに与えられ、それにより仮想エンクロージャサーバはそのＦＣＩＤを仮想エンクロージャポートにアサインしえる。より具体的にはＦＣＩＤは、仮想化レスポンス内で与えられえる。このようにして仮想エンクロージャサーバは、それに利用可能なＳＣＳＩターゲットポートのＦＣＩＤを得る。
【００７０】
仮想エンクロージャポートをＳＡＮ内の仮想化ポートにバインドすることに加えて、仮想エンクロージャサーバ９０２はまた、上述のようにＳＡＮ内の追加の仮想化ポートによってトラッピングを確立しえる。例えば９２８において示されるように、仮想化ポート２  ９０６が、特定の仮想エンクロージャポートにアサインされたアドレスまたは識別子に宛てられたメッセージを扱うべきであることを示すトラップメッセージが送られる。仮想エンクロージャサーバ９０２は、仮想エンクロージャポートＶＥＰ１にアサインされたＦＣＩＤを得ているので、これはトラップメッセージ内で与えられえる。あるいはＦＣＩＤは、この例で説明されるようにＤＮＳサーバから得ることができる。この例では、仮想化ポート９０６は、それによって受け取られる特定の仮想エンクロージャポート（例えばＶＥＰ１）に宛てられたメッセージを扱うように指示される。言い換えれば、仮想化ポート９０６は、仮想エンクロージャポートにアサインされたアドレスまたは識別子に宛てられたメッセージを扱うように指示される。同様に、仮想化ポートが第１仮想エンクロージャポートに宛てられたメッセージを扱うべきであることを示す第２トラップメッセージが９３０において仮想化ポート３  ９０８に送られる。
【００７１】
仮想化ポート２  ９０６が９２８においてトラップメッセージを受け取るとき、仮想化ポートは、ＧＥＴ＿ＦＣＩＤメッセージを９３２においてＤＮＳサーバ９１２に送り、第１仮想エンクロージャポート、ＶＥＰ１にアサインされたアドレスまたは識別子を得る。いったんそれが９３４においてアドレスまたは識別子を受け取ると、それはそのアドレスまたは識別子を９３６において記憶する。より具体的には、それは図１０を参照して後述されるテーブルをアップデートする。それから仮想化ポートは、仮想化メッセージに応答して、仮想化レスポンスを９３８においてホストに送る。例えば、仮想化レスポンスは、仮想化ポートが仮想エンクロージャポートに宛てられたメッセージを扱うようにコンフィギャされるのに成功した（または成功しなかった）ことを示しえる。仮想化ポートはいまや９４０において、それによって受け取られる仮想エンクロージャポートに宛てられたメッセージをトラップしえる。
【００７２】
同様に仮想化ポート３  ９０８がトラップメッセージを９３０において受け取るとき、仮想化ポートはＧＥＴ＿ＦＣＩＤメッセージを９４２においてＤＮＳサーバ９１２に送り、第１仮想エンクロージャポート、ＶＥＰ１にアサインされたアドレスまたは識別子を得る。いったんそれが９４４においてアドレスまたは識別子を受け取ると、それはそのアドレスまたは識別子を９４６において記憶する。仮想化ポートは、仮想化ポートがトラッピングポートとしてコンフィギャされるのに成功した（または成功しなかった）ことを示す仮想化レスポンスを９４８において送り、９５０において仮想化ポートに向けられたメッセージをトラップし始める。
【００７３】
上述のように仮想化ポートのようなＳＡＮ内のポートは、複数の仮想エンクロージャポートの代わりにメッセージを扱うようにコンフィギャされえる。より具体的には、単一の仮想化ポートが、複数の仮想エンクロージャポートのためのトラッピングポートとしてコンフィギャされるのと共に、複数の仮想エンクロージャポートにバインドされえる。図１０は、本発明のさまざまな実施形態によって仮想化ポートによって扱われるべきＦＣＩＤを示す仮想化ポートによって保持されえる例示的なテーブルを示す図である。示されるように仮想化ポートテーブル１０００は、ポートがバインドされる、またはポートがメッセージをトラップするようにコンフィギャされるこれら仮想エンクロージャポート１００２を管理するために仮想化ポートによって保持されえる。それぞれの仮想エンクロージャポート１００２について、それは関連するＦＣＩＤを保持する。このようにして仮想化ポートは、それが責任を持つＦＣＩＤを特定しえる。パケットが仮想化ポートが責任を持たないＦＣＩＤに向けられるとき、ポートは単にそのパケットを転送する。
【００７４】
いったん１つ以上の仮想化ポートが仮想エンクロージャポート（例えばトラッピングまたはバインドポート）の代わりにパケットを扱うようにコンフィギャされると、それらはホストのようなイニシエータについてのＳＣＳＩターゲットとして働きえる。図１１は、ホストおよび１つ以上の仮想化ポート（例えば１つ以上の仮想エンクロージャポート、トラッピングポートにバインドされた）の間の通信を確立し、それによりホストが１つ以上のＬＵＮにアクセスできるようにする、本発明のそれぞれの実施形態によるある方法を示すトランザクションフロー図である。示されるように、ホスト１１０２、スイッチ１１０４、ドメインネームシステム（ＤＮＳ）サーバ１１０６および仮想化ポート１１０８は、対応するラベルが付けられた垂直の線によって表現される。示されるように、ホスト１１０２のようなファイバチャネルノードがファブリックスイッチ１１０４と論理接続を確立するためには、ホストはファブリックログイン（ＦＬＯＧＩ）１１１０を実行する。上述のように、ファイバチャネルは、ログインのあいだ動的にアサインされるＦＣＩＤと呼ばれるアドレス識別子を用いる。よってスイッチ１１０４はＦＣＩＤをホスト１１０２に１１１２において与える。いったんホストがホストＦＣＩＤをアサインされると、ホストはブロック１１１４においてＤＮＳサーバ１１０６のＤＮＳクエリーをＳＣＳＩレポートコマンドを介して実行しえ、このコマンドは、ホストに利用可能な、よってホストに見えるＳＣＳＩターゲットをリクエストする。より具体的にはＤＮＳクエリーは、ホストＦＣＩＤに見えるＳＣＳＩターゲットを決定する。潜在的なターゲットポートのような１つ以上の仮想エンクロージャポートのＦＣＩＤはそれからＤＮＳサーバ１１０６によってホスト１１０２に１１１６において与えられる。
【００７５】
いったんホストがそれに利用可能なＳＣＳＩターゲットポートのＦＣＩＤを持つと、ホストは、ファイバチャネルプロセスログインコマンドを、１つ以上の利用可能な仮想エンクロージャＳＣＳＩターゲットポート（そのＦＣＩＤによって特定される）に１１１８において送る。上述のように、パケットは仮想エンクロージャポートにアサインされたＦＣＩＤに宛てられているが、その仮想エンクロージャポートにバインドされた仮想化ポート、またはその仮想エンクロージャポートの代わりにトラッピングしている仮想化ポートがが実際にはこれらパケットを扱いえる。このプロセスログインは、ファイバチャネルをＳＣＳＩに「マッピングする」マッピングレイヤを実現する。いったん完了すると、ＳＣＳＩ仮想エンクロージャターゲットポート１１０８は、ファイバチャネルアクセプトメッセージを１１２０において送る。ファイバチャネルがＳＣＳＩにマッピングされるので、ホストはＳＣＳＩコマンドをＳＣＳＩターゲット仮想エンクロージャポート（群）に送ることができる。
【００７６】
いまやホスト１１０２がＳＣＳＩコマンドを仮想エンクロージャポート（群）１１０８に送ることができるので、ホストは、ＳＣＳＩプロセスログインコマンドをＳＣＳＩターゲット仮想エンクロージャポート１１０８に送ることによって、ＳＣＳＩプロセスログインを１１２２において実行する。ＳＣＳＩ仮想エンクロージャポート１１０８はそれから、ＳＣＳＩアクセプトコマンド１１２４を送る。したがってホストおよびＳＣＳＩターゲット仮想エンクロージャポート間のＳＣＳＩプロトコルを介した通信が確立される。例えば、ホストは、それに利用可能なＬＵＮにリードおよびライトを行うのと共に、どのＬＵＮがそれに利用可能であるかを決定しえる。
【００７７】
ホスト１１０２は、どのＳＣＳＩターゲット（および仮想エンクロージャポート）が自分に利用可能であり、これらのポートのそれぞれと通信できるかを知っているので、ホストは、ＳＣＳＩレポートＬＵＮコマンドをＳＣＳＩターゲット仮想エンクロージャポート１１０８に送ることによって、ホストＦＣＩＤに見えるＬＵＮを１１２６において決定できる。例えばこれらＬＵＮは単に仮想エンクロージャ内のＶＬＵＮでありえ、またはこれらＶＬＵＮのサブセットでありえる。より具体的にはこのレポートメッセージは、仮想エンクロージャポートにアサインされたＦＣＩＤに送られえる。受信するＳＣＳＩターゲット仮想エンクロージャポート１１０８は、どのＬＵＮがホストＦＣＩＤに見えるかを１１２８において決定し、１つ以上の利用可能なＬＵＮ（例えばＰＬＵＮまたはＶＬＵＮ）を示すリプライメッセージを１１３０において送る。受信する仮想エンクロージャポートは実際に、仮想エンクロージャポートにバインドされるか、またはその代わりにトラッピングする仮想化ポートでありえることに注意されたい。よってこれら仮想化ポートはまた、ＬＵＮマッピングを１１２８において実行する責任を負う。ＬＵＮマッピングのある方法は、図１２を参照して以下に詳述される。ホスト１１０２はそれから、ＳＣＳＩリードおよびライトコマンドを特定のＶＬＵＮに１１３２において仮想エンクロージャポート１１０８を介して送りえる。
【００７８】
トラップおよびバインドメッセージのような仮想化メッセージは、任意の通信プロトコルにおいてインプリメントされえる。インプリメントされるプロトコルは、好ましくはＴＣＰソケットまたはＴＣＰ／ＩＰの上で走るダイナミックインスタンシエーションプロトコル（ＤＩＰ）のような高信頼性通信プロトコルである。
【００７９】
図１２は、ＬＵＮマッピングを実行するために図１１のステップ１１２８において用いられえる例示的なＬＵＮマッピングテーブルを示す図である。示されるようにＬＵＮマッピングテーブル１２００は、それぞれのイニシエータ（例えばホスト）１２０２について、仮想エンクロージャの１つ以上の仮想エンクロージャポート１２０６（例えばＦＣＩＤ）を介して見られる仮想エンクロージャのＶＬＵＮ１２０４を特定するのに用いられえる。例えば、ＬＵＮ０のような特定された論理ユニット１２０８は、ブートディスクを表現するのに用いられえる。それぞれのホストについて異なるブートディスクを提供することが望ましいかもしれないので、特定された論理ユニット１２０８は、特定された仮想エンクロージャポート１２０６を介してホスト１２０２に利用可能にされた１つ以上のＶＬＵＮ１２０４と関連付けられる。特定のホスト１２０２に利用可能な仮想エンクロージャポート１２０６が特定されえ、あるいは、全ての仮想エンクロージャポートがそのホストに利用可能であることを示すのにワイルドカードが用いられえる。よって特定された論理ユニット１２０８についてのリクエストが、仮想エンクロージャポートのうちの１つを介してホストから受け取られるとき、その特定された論理ユニット１２０８に関連付けられたＶＬＵＮがそのリクエストをサービスするために用いられる。
【００８０】
図１３は、図１２のＬＵＮマッピングテーブルに対応する仮想エンクロージャを表す。示されるように仮想エンクロージャ１３０２は、４つのＶＬＵＮ、Ａ  １３０４、Ｂ  １３０６、Ｃ  １３０８、およびＤ１３１０を表す。仮想エンクロージャ１３０２は、２つの仮想エンクロージャポートＶＥＰ１  １３１２およびＶＥＰ２  １３１４を持つ。図１２に示されるように、ホストＨ１はＬＵＮ０を任意の仮想エンクロージャポート上でＶＬＵＮ  Ａとして見、ホストＨ２はＬＵＮ０を任意の仮想エンクロージャポート上でＶＬＵＮ  Ｂとして見、ホストＨ３はＬＵＮ０を任意の仮想エンクロージャポート上でＶＬＵＮ  Ｃとして見、ホストＨ４はＬＵＮ０を仮想エンクロージャポート０上でだけＶＬＵＮ  Ｄとして見、ホストＨ５はＬＵＮ０を仮想エンクロージャポート１上でだけＶＬＵＮ  Ｃとして見る。このようにして、ＶＬＵＮのアイデンティティはホストには見えない。したがって、本発明は、ストレージ仮想化の追加されたレベルを提供する。
【００８１】
ＬＵＮマッピングテーブルは、好ましくは仮想エンクロージャサーバのような中央位置において維持される。しかしある実施形態によれば、ＬＵＮマッピングテーブルはまた、ストレージエリアネットワーク内の適切なネットワークデバイス（例えば仮想化ポート）に周期的に分配されてもよい。例えばＬＵＮマッピングテーブルは、ホストログインにおいて仮想エンクロージャポートに分配されえる。言い換えれば、仮想化ポートは、仮想エンクロージャサーバを介してログインしたホストに対応するＬＵＮマップを提供される。
【００８２】
本発明の例示的な実施形態および応用例がここで示され説明されてきたが、多くの改変例および変更例が可能であり、それらは本発明の概念、範囲、および精神の中に留まり、これら改変物も本願明細書を吟味すれば当業者には明らかだろう。例えば本発明はフレームに応用されるとして説明されている。しかし本発明はそのような実現例に限定されず、むしろパケットにも同様に適用されえることに注意されたい。さらに本発明は、それがインプリメントされるコンテキストおよびシステムにかかわらず適用可能である。よって広く言えば、複数のポートによってバインドしたりトラップしたりすることの調整は、上述のように仮想エンクロージャサーバを用いて実行される必要はなく、代替手法によって実行されえる。
【００８３】
加えて、例示的なスイッチが説明されてきたが、上述の実施形態は、さまざまな媒体と共に、さまざまなネットワークデバイス（例えばサーバ）においてインプリメントされえる。例えば、上述の本発明をインプリメントするための命令およびデータは、ディスクドライブ、ハードドライブ、フロッピーディスク、サーバコンピュータ、または遠隔でネットワーク構成されたコンピュータ上に記憶されえる。したがって本発明は、例示的であって限定的ではないと解釈されるべきであり、本発明はここに与えられた詳細に限定されるべきではなく、むしろ添付の特許請求の範囲および等価物の範囲内で改変されえる。
【図面の簡単な説明】
【００８４】
【図１Ａ】従来技術の仮想化機能性のさまざまな実施形態を実現できる例示的な従来のストレージエリアネットワークを示すブロック図である。
【図１Ｂ】本発明のさまざまな実施形態が実現されえる例示的なストレージエリアネットワークを示すブロック図である。
【図２】本発明のさまざまな実施形態が実現されえる仮想化モデルを示すブロック図である。
【図３Ａ】本発明のさまざまな実施形態が実現されえる例示的仮想化スイッチを示すブロック図である。
【図３Ｂ】本発明のさまざまな実施形態が実現されえる例示的標準スイッチを示すブロック図である。
【図４】それぞれのＳＣＳＩターゲットポートについてノードワールドワイドネーム（ＮＷＷＮ）およびポートワールドワイドネーム（ＰＷＷＮ）を実現する従来の方法を示すトランザクションフロー図である。
【図５】本発明のある実施形態による例示的仮想エンクロージャを示すブロック図である。
【図６】本発明のさまざまな実施形態によるさまざまな仮想化ポートに仮想エンクロージャポートをバインドすることを通して仮想エンクロージャが実現される例示的システムを示すブロック図である。
【図７】本発明のさまざまな実施形態による仮想エンクロージャを作る方法を示すプロセスフロー図である。
【図８】本発明のさまざまな実施形態による仮想エンクロージャポートに関連付けられえる従来のファイバチャネル識別子（ＦＣＩＤ）を示す図である。
【図９】本発明のさまざまな実施形態による仮想エンクロージャの仮想化ポートのバインドおよびトラップ機能性を調整するある方法を示すトランザクションフロー図である。
【図１０】本発明のさまざまな実施形態による仮想化ポートによって扱われるべきＦＣＩＤを示す仮想化ポートによって保持されえる例示的テーブルを示す図である。
【図１１】本発明のさまざまな実施形態による、ホストおよび１つ以上の仮想化ポート（例えば仮想エンクロージャポート、トラッピングポート）の間の通信を確立し、それによりホストが１つ以上のＬＵＮにアクセスできるようにする、ある方法を示すトランザクションフロー図である。
【図１２】ＬＵＮマッピングを実行するために図１１のステップ１１２８において用いられえる例示的ＬＵＮマッピングテーブルを示す図である。
【図１３】図１２のＬＵＮマッピングテーブルに対応する仮想エンクロージャを表す図である。
【図１Ａ】
2006505831.tif 000003
【図１Ｂ】
2006505831.tif 000004
【図２】
2006505831.tif 000005
【図３Ａ】
2006505831.tif 000006
【図３Ｂ】
2006505831.tif 000007
【図４】
2006505831.tif 000008
【図５】
2006505831.tif 000009
【図６】
2006505831.tif 000010
【図７】
2006505831.tif 000011
【図８】
2006505831.tif 000012
【図９】
2006505831.tif 000013
【図１０】
2006505831.tif 000014
【図１１】
2006505831.tif 000015
【図１２】
2006505831.tif 000016
【図１３】
2006505831.tif 000017
【国際調査報告】
2006505831.tif 000018
2006505831.tif 000019