(57)【特許請求の範囲】
【請求項１】
ストレージエリアネットワークにおいてデータブロックを取り出す方法であって、
ストレージデバイスへの複数のパスのうちの第１のパスを選択することと、
前記第１のパスに沿って前記ストレージデバイスから第１の数のシーケンシャルデータブロックを取り出すことと、
前記ストレージデバイスから後続のシーケンシャルデータブロックを取り出すための、前記複数のパスのうちの第２のパスを選択することと
を含み、
前記第１のパスを選択することは、
各パスについて、このパスに沿って取り出される最初のブロックの値と、予め定められた範囲の値のうち、１ブロック当たりの平均ターンアラウンドタイムまたは平均サービス時間を最小にする値を示すブロックしきい値とに基づいてサービス提供可能なシーケンシャルブロックの各範囲を求めることと、
前記サービス提供可能なシーケンシャルブロックの各範囲内に要求されるブロックを有するパスを選択することと
を含む
方法。
【請求項２】
前記複数のパスが、前記複数のパスの各範囲内に、前記要求されるブロックを有しないときに、前記シーケンシャルデータブロックを取り出すための適切なパスを選択すること
を含む請求項１に記載の方法。
【請求項３】
前記方法は、前記複数のパスのうちの少なくともいくつかのパスの各平均ターンアラウンドタイムを監視することを含み、
前記適切なパスを選択することは、最小平均ターンアラウンドタイムを有するパスを選択することを含む
請求項２に記載の方法。
【請求項４】
前記第２のパスに沿って前記ストレージデバイスから第２の数のシーケンシャルデータブロックを取り出すことと、
後続のシーケンシャルデータブロックを取り出すための、前記ストレージデバイスへの前記複数のパスのうちの第３のパスを選択することと
を含む請求項１に記載の方法。
【請求項５】
前記第１の数は、前記第２の数と実質的に等しい
請求項４に記載の方法。
【請求項６】
前記第１のパスを選択することおよび前記第２のパスを選択することのうちの少なくとも一方は、最小平均ターンアラウンドタイムを有するパスを選択することを含む
請求項１に記載の方法。
【請求項７】
ストレージエリアネットワークにおいてデータブロックを取り出すシステムであって、
ストレージデバイスへの複数のパスのうちの第１のパスを選択し、
前記第１のパスに沿って前記ストレージデバイスから第１の数のシーケンシャルデータブロックを取り出し、
前記ストレージデバイスから後続のシーケンシャルデータブロックを取り出すための、前記複数のパスのうちの第２のパスを選択するように
構成され、
前記第１のパスを選択することは、
各パスについて、このパスに沿って取り出される最初のブロックの値と、予め定められた範囲の値のうち、１ブロック当たりの平均ターンアラウンドタイムまたは平均サービス時間を最小にする値を示すブロックしきい値とに基づいてサービス提供可能なシーケンシャルブロックの各範囲を求め、
前記サービス提供可能なシーケンシャルブロックの各範囲内に、要求されるブロックを有するパスを選択することによって前記第１のパスを選択するように
構成される
システム。
【請求項８】
前記複数のパスが、前記複数のパスの各範囲内に、前記要求されるブロックを有しないときに、前記シーケンシャルデータブロックを取り出すための適切なパスを選択するように構成される
請求項７に記載のシステム。
【請求項９】
前記システムは、前記複数のパスのうちの少なくともいくつかパスの各平均ターンアラウンドタイムを監視するように構成され、
前記適切なパスを選択することは、最小平均ターンアラウンドタイムを有する前記パスを選択することを含む
請求項８に記載のシステム。
【請求項１０】
前記第２のパスに沿って前記ストレージデバイスから第２の数のシーケンシャルデータブロックを取り出し、
後続のシーケンシャルデータブロックを取り出すための、前記ストレージデバイスへの前記複数のパスのうちの第３のパスを選択するように
構成される請求項７に記載のシステム。
【請求項１１】
前記第１の数は、前記第２の数と実質的に等しい
請求項１０に記載のシステム。
【請求項１２】
前記第１のパスを選択することおよび前記第２のパスを選択することのうちの少なくとも一方は、最小平均ターンアラウンドタイムを有するパスを選択することを含む
請求項７に記載のシステム。
【請求項１３】
請求項１に記載の方法および請求項７に記載のシステムのうちの一方を実施するように構成される
コンピュータプログラム。
【請求項１４】
請求項１３に記載のコンピュータプログラムを記憶する
コンピュータ可読ストレージ。
【請求項１５】
請求項１に記載の方法および請求項７に記載のシステムのうちの一方を実施するように構成される
データ処理システム。
【請求項１６】
請求項１３に記載のコンピュータプログラムが内部にロードされている
データ処理システム。
【請求項１７】
ストレージエリアネットワークにおいてデータブロックを取り出す方法であって、
ストレージデバイスへの複数のパスのうちの第１のパスを選択することと、
前記複数のパスそれぞれについて、このパスに沿って取り出される最初のブロックの値と、予め定められた範囲の値のうち、１ブロック当たりの平均ターンアラウンドタイムまたは平均サービス時間を最小にする値を示すブロックしきい値とに基づいてサービス提供可能なシーケンシャルブロックの各範囲を求めることと、
前記サービス提供可能なシーケンシャルブロックの各範囲内に、要求されるブロックを有するパスを選択し、前記複数のパスが、前記複数のパスの各範囲内に、前記要求されるブロックを有しないときに、前記シーケンシャルデータブロックを取り出すための適切なパスを選択することであって、前記適切なパスは、最小平均ターンアラウンドタイムを有するパスであることと、
前記選択されたパスに沿って前記ストレージデバイスから第１の数のシーケンシャルデータブロックを取り出すことと、
前記ストレージデバイスから後続のシーケンシャルデータブロックを取り出すための、前記複数のパスのうちの第２のパスを選択することと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、データ処理の方法及びシステムに関する。
【背景技術】
【０００２】
エンタープライズＳＡＮ（ストレージエリアネットワーク）環境では、シーケンシャルＩ／Ｏ（入出力）が、一定のアプリケーションによって頻繁に実施される。
シーケンシャルＩ／Ｏは、大きなファイルの読み出し及び書き込みに特有のものであり、通常、或るブロックを、その隣のブロックの直後に処理することを伴う。
このタイプのＩ／Ｏでは、ディスクドライブヘッドが新しいロケーションへ移動しなければならないことに関連したペナルティがほとんどない。
【０００３】
データ処理システム上で実行される（たとえば）アプリケーションは、ストレージデバイスに記憶されているファイルから読み出しを行うことを望む場合がある。
通常、データは、ストレージデバイスにブロックで記憶され、ファイルは、１つ又は複数のブロックに存在することができる。
データクエリが、データ処理システムのアプリケーションによりストレージデバイスに対して行われると、適切なブロックが、物理ディスクから取り出され、ストレージデバイスのキャッシュに記憶される。
ここから、ブロックは、物理媒体（たとえば、ファイバチャネル物理媒体）を介してＩＯバッファ（又はパケット）としてアプリケーションに引き渡される。
【０００４】
ストレージエリアネットワークでは、スイッチ型ファブリックを通ってデータ処理システムからストレージデバイスへ複数のパスが存在し得る。
【０００５】
ストレージデバイスは、複数の論理ユニット（ＬＵＮ）を有することができる。
ＬＵＮ、すなわち論理ユニット番号（論理ユニット、すなわちＬＵとも称される）は、ストレージエレメントの実際の部分又は仮想的な部分に対応する。
たとえば、ＬＵＮは、ディスクドライブアレイの１つ又は複数のディスクに対応することができる。
【０００６】
ストレージデバイスは、近時にアクセスされたデータを記憶するキャッシュを含むことができる。
ストレージデバイスは、データプリフェッチを用いることもできる。
データプリフェッチでは、ストレージデバイスは、要求されたデータよりも多くのデータをＬＵＮからフェッチし、それらのデータをキャッシュに記憶する。
シーケンシャル要求（具体的には、読み出し）が検出されると、まだ要求されていないがシーケンスに沿って先にあるデータブロックが、ＬＵＮからキャッシュにコピーされる。
ストレージデバイスが、これらのプリフェッチされたデータブロックの要求を受け取ると、キャッシュへのアクセスは、通常、物理ストレージへのアクセスよりも高速であるため、これらのブロックは、要求側データ処理システムへより迅速に提供される。
【０００７】
異なるストレージアレイによって用いられるキャッシュポリシーは同じではない。
たとえば、ポートを通過するＩ／Ｏのキャッシュを用いるアレイもあれば、コントローラを通過するＩ／Ｏのキャッシュを用いるアレイもあり、又は、アレイの任意の特定のコンポーネント（たとえば、ＬＵＮ）への／からのＩ／Ｏのキャッシュを用いるアレイもある。
【０００８】
上記の状況のもとでは、Ｉ／Ｏを、同じキャッシュを共有するコンポーネントへルーティングすることは、キャッシュ無効化につながるおそれがあり、したがって、データプリフェッチ機能の有効な使用にならないおそれがある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来技術の問題のうちの１つ又は複数を少なくとも軽減することが、本発明の実施の形態の目的である。
【課題を解決するための手段】
【００１０】
本発明の一形態は、ストレージエリアネットワークにおいてデータブロックを取り出す方法であって、ストレージデバイスへの複数のパスのうちの第１のパスを選択することと、前記第１のパスに沿って前記ストレージデバイスから第１の数のシーケンシャルデータブロックを取り出すことと、前記ストレージデバイスから後続のシーケンシャルデータブロックを取り出すための、前記複数のパスのうちの第２のパスを選択することとを含む方法である。
【００１１】
次に、添付図面を参照して、本発明の実施形態を単に例として説明する。
【発明を実施するための最良の形態】
【００１２】
有効なプリフェッチのためには、シーケンシャル要求は、ストレージデバイスの他のストレージコンポーネントと同じキャッシュを共有するストレージデバイス上のストレージコンポーネント（たとえば、ＬＵＮ等）に到着すべきである。
しかしながら、シーケンシャルブロック要求が複数のコンポーネントに及ぶ場合、コンポーネント間でキャッシュを共有していないと、その結果、キャッシュ無効化が生じ、したがって、ストレージアレイのプリフェッチ機能の使用が有効なものでなくなる。
さらに、このことは、アレイが、そのキャッシュを無効にし、新しいコンポーネントのキャッシュを使用してプリフェッチしなければならないことから、アレイの性能に悪影響を与える。
また、プリフェッチ機能を有効に利用するためにストレージデバイスからの単一のパスを介してすべてのブロックを取り出すことは、ストレージエリアネットワーク（ＳＡＮ）のそのパスの輻輳及び／又はＳＡＮ内のすべてのパスの非効率的な使用につながるおそれがある。
【００１３】
本発明の実施形態は、単一のパスを介して第１の複数のシーケンシャルデータブロック要求にサービス提供し、次いで、次のパスに移って別の複数のシーケンシャルデータブロック要求にサービス提供し、次いで、別のパスに移る等を行うことによって、従来技術の問題のうちの１つ又は複数を少なくとも軽減する。
このように、データブロックの数群のシーケンシャル要求（すなわち、シーケンシャルデータブロックの要求）は、ストレージデバイスに到着し、ストレージデバイスによってシーケンシャル要求として検出される。
したがって、ストレージデバイスのプリフェッチ機能が使用される。
さらに、単一のデータバッファに対応するすべての要求が、ＳＡＮ内の単一のパスを使用してサービス提供されるとは限らないため、パスの輻輳が回避される。
その代わり、複数のパスが使用され、したがって、ＳＡＮの複数のパスが、単一のパスを使用するよりも効率的に使用され、且つ／又は、輻輳が緩和若しくは回避される。
【００１４】
図１は、ストレージエリアネットワーク１００の一例を示している。
ＳＡＮ１００は、ストレージデバイス１０２を含む。
ＳＡＮ１００は、他のストレージデバイス（図示せず）を含むこともできる。
ストレージデバイス１０２は、物理ストレージ１０４とキャッシュ１０６とを備える。
物理ストレージ１０４に記憶されているデータは、複数の固定サイズのブロック１０８に配列される。
物理ストレージ１０４のサイズ及びブロック１０８のサイズに応じて、任意の数のブロック１０８が存在し得る。
【００１５】
物理ストレージ１０４は、単一の物理ストレージデバイス又は複数の物理ストレージデバイスを備えることができる。
物理ストレージデバイスの例には、ハードディスク、光ストレージデバイス、テープストレージデバイス等が含まれる。
複数の物理ストレージデバイスを収容する物理ストレージ１０４の例には、ＲＡＩＤ（独立ドライブ冗長アレイ）アレイ、ＪＢＯＤ等が含まれる。
【００１６】
ＬＵＮ、すなわち論理ユニット番号（論理ユニット、ＬＵとも称される）は、物理ストレージデバイスの実際の一部又は仮想的な一部に対応する。
たとえば、ＬＵＮは、ディスクドライブアレイの１つの物理ディスクに対応する場合もあるし、複数の物理ディスクに対応する場合もある。
通常、ＳＡＮ内のストレージデバイス１０２のＬＵＮは、アプリケーションがデータを記憶し且つ／又はデータにアクセスするための一意のストレージエレメントとして現れる。
【００１７】
ＳＡＮは、スイッチ型ファブリック１１０も含む。
このスイッチ型ファブリックは、たとえば、１つ又は複数のネットワークスイッチ及びルータ並びにそれらの間の相互接続といったネットワーキングコンポーネントを含む。
スイッチ型ファブリック１１０は、正しく動作することができない１つ又は複数のネットワーキングコンポーネントの影響を回避することを試みる冗長性を提供するために、複数のネットワーキングコンポーネント及び相互接続を含むことができる。
たとえば、ストレージデバイスへのパスが利用不能となるように、ネットワーキングコンポーネントが故障した場合、１つ又は複数の他のネットワーキングコンポーネントを通る、そのストレージデバイスへの別のパスを利用可能とすることができる。
ＳＡＮ内のネットワーキングコンポーネントは、通常、ファイバチャネル（ＦＣ）スイッチ等のファイバチャネルデバイスを備える。
ただし、追加の又は代替的な他の任意の適切なネットワーキング技術（たとえば、イーサネット（登録商標））を使用してもよい。
【００１８】
データ処理システム１２０（ホストとしても既知である）を、ＳＡＮ１００のスイッチ型ファブリック１１０に接続することができる。
ホスト１２０は、ホスト１２０がスイッチ型ファブリック１１０に接続することを可能にするデバイス１２２を備える。
デバイス１２２は、たとえば、ファイバチャネルネットワークに接続するための１つ若しくは複数のホストバスアダプタ（ＨＢＡ）、又は、スイッチ型ファブリック１１０に接続するための他の任意の適切な１つ若しくは複数のデバイスを備えることができる。
【００１９】
ホスト１２０は、メモリ１２４（ＲＡＭ等）を含む。
ホスト１２０上で実行されるアプリケーション１２６は、メモリ１２４内に存在することができる。
メモリ１２４は、アプリケーション１２６及び／又は他のアプリケーション（図示せず）によって使用されるデータブロックを記憶する１つ又は複数のＩ／Ｏバッファ１２８も含むことができる。
【００２０】
アプリケーションが、読み出し及び／又は書き込みのためのファイルを開くと、アプリケーションが、そのファイルに対応するデータブロックのデータにアクセスすることができるように、そのファイルを収容するデータブロックをメモリ１２４に移動しなければならない。
たとえば、ファイルが記憶されるストレージデバイス（ＬＵＮ）、開始ブロック番号（すなわち、ファイルがＬＵＮに記憶される最初のデータブロック）、及びブロックの数（すなわち、ファイルが記憶されるシーケンシャルブロックの数）を示すＩ／Ｏバッファが、メモリ１２４内に作成される。
したがって、示された数のシーケンシャルブロックをストレージデバイス１０２からメモリ１２４内のＩ／Ｏバッファにコピーしなければならない。
【００２１】
シーケンシャルＩ／Ｏは、１つ又は複数のデータブロックをそれぞれ収容するための複数のＩ／Ｏバッファを作成するのに使用することができる。
これらの複数のＩ／Ｏバッファは、集合的に、アプリケーション１２６によって要求されたファイルを収容するすべてのデータブロックに対応する。
本発明の代替的な実施形態では、アプリケーション１２６によるファイルからの読み出し要求及び／又はファイルへの書き込み要求は、単一のＩ／Ｏバッファではなくこのような複数のＩ／Ｏバッファを作成することができる。
本発明のさらに代替的な実施形態では、１つのＩ／Ｏバッファのみが作成される。
いずれの場合も、ストレージデバイス１０２がシーケンシャルデータブロックの取り出しを検出するように、数群のシーケンシャルデータブロックが、スイッチ型ファブリック１１０を通り各パスに沿ってストレージデバイス１０２から取り出される。
しかしながら、これらの群自体は、たとえシーケンシャルであっても、ストレージデバイス１０２からシーケンシャルに（順番に）取り出される場合もあるし、そうでない場合もある。
【００２２】
図２は、本発明の実施形態によるデータブロックを取り出す方法２００を示している。    
データブロックは、ホスト１２０によって取り出されて、アプリケーション１２６による使用のためにメモリ１２４内の１つ又は複数のＩ／Ｏバッファ１２８に記憶される。
この方法は、ステップ２０２で開始する。ステップ２０２において、一定の数のデータブロックを取り出すために、スイッチ型ファブリック１１０を通るホスト１２０からストレージデバイス１０２へのパスが選択される。
この方法２００は、次に、ステップ２０４に進む。
ステップ２０４において、一定の数のシーケンシャルデータブロックが、選択されたパスに沿ってストレージデバイス１０２から順番に（たとえば、昇順のブロック番号又は降順のブロック番号の順番に）取り出されて、１つ又は複数のＩ／Ｏバッファ１２８内に記憶される。
この方法は、次に、ステップ２０６で終了する。
【００２３】
たとえば、アプリケーション１２６によって要求されたファイルを収容するデータブロックの取り出し及び記憶のために複数のＩ／Ｏバッファが作成される本発明の実施形態では、この方法２００は、Ｉ／Ｏバッファごとに、たとえば並列に且つ／又はシーケンシャルに且つ／又は任意の順番に実行することができる。
この方法２００のステップ２０４において、たとえば、取り出されてＩ／Ｏバッファに記憶される予定のデータブロックのすべてが、取り出されて、そのＩ／Ｏバッファに記憶される。
【００２４】
図３は、ＳＡＮ内で遂行されるＩ／Ｏオペレーションの（図２に示す方法２００のステップ２０２に対応する）パスを選択する方法３００の一例を示している。
この方法３００は、ステップ３０２で開始する。
ステップ３０２において、パスが初期化されているか否かが判断される。
パスが初期化されていない場合、この方法はステップ３０４に進む。
ステップ３０４において、「ブロックしきい値」の値が初期化される。
この値は、固定値、又はユーザ（たとえば、システム管理者）によって指定された値等、事前に設定された値に初期化することができる。
次に、ステップ３０６において、パスが選択される。
図３に示すように、パスを選択する一例は、次のように、最小平均ターンアラウンドタイムを有するパスを選択することを含む。
本発明の実施形態は、各パスの平均ターンアラウンドタイムの記録を維持する。
ホスト１２０上で実行されるマルチパスソフトウェアは、パスを定期的にポーリングして、その接続ステータスをチェックすることができる。
すなわち、ストレージデバイス等のパスの終点に応答するように命令する通信をその終点へ送信し、このようにして、パスの接続ステータスをチェックする。
パスのポーリングと受信された応答との間の平均ポーリングターンアラウンドタイムである第１の値をパスごとに維持することができる。
また、（コントローラが複数のストレージデバイス／ＬＵＮを制御する場合）コントローラに至るパスの平均コントローラターンアラウンドタイムの記録も維持することができ、このようにして、コントローラの負荷の概観（view of the load）が維持される。
別のパスを選択する他の方法も、これに加えて又はこれに代えて使用してもよい。
【００２５】
ＳＡＮ１００を監視し、ストレージデバイスへの特定されたパスのリストを維持するホスト１２０のマルチパスソフトウェア（図示せず）が、パスを特定することができる。
マルチパスソフトウェアは、パスを特定して管理し、ＳＡＮ内の負荷バランシングを達成するために、ブロックが、（本明細書で後に特定されるステップに基づいて）一定のパスに沿って取り出されることを指示することができる。
本発明の実施形態では、たとえば、本発明の実施形態による方法を実施するようにマルチパスソフトウェアを変更することもできるし、本発明の実施形態による方法を実行するようにマルチパスソフトウェアを命令又は制御することもできる。
【００２６】
パスがステップ３０６で選択されると、選択されたパスのパス範囲が、ステップ３０８で求められる。パス範囲は、パスのサービス提供可能な範囲、すなわち、そのパスに沿って通信することができるブロックである。
【００２７】
パスのサービス提供可能な範囲を求めるために、以下の公式が使用される。
サービス提供可能な範囲＝サービス提供された最後のブロック±ブロックしきい値
ここで、
サービス提供可能な範囲＝パスによってサービス提供することができるブロック番号の範囲；
サービス提供された最後のブロック＝そのパスに沿ってホスト１２０により取り出された最後のブロック番号；及び
ブロックしきい値＝ステップ３０４によって初期化された、パスによりサービス提供することができるブロックの所定のしきい値番号
である。
【００２８】
或るパスが、ブロックにサービス提供しなかった場合、サービス提供された最後のブロックの値は、選択されたパスに沿って送信されることになる最初のブロックのブロック番号で初期化され、そのパスによってサービス提供されたブロック数は、０に初期化される。    
ステップ３０８において、サービス提供可能な範囲が選択されたパスについて求められると、この方法３００は、ステップ３１０で終了する。
【００２９】
ステップ３０２において、パスが初期化されていると判断された場合、すなわち、ブロックのサービス提供可能な範囲が初期化されていると判断された場合、この方法３００は、ステップ３０２からステップ３１２に進む。
ステップ３１２において、適切な範囲を有するパスを見つける検索が行われる。
適切な範囲を有するパスは、ＳＡＮ内で遂行されるＩ／Ｏの最初のブロックを含むサービス提供可能なブロック範囲を有するパスである。
また、適切なパスは、ブロックしきい値よりも小さい、サービス提供されたブロック数を有するブロックしきい値を有するパスでもある。
【００３０】
この方法は、ステップ３１４に進む。
ステップ３１４において、適切な範囲及びサービス提供されたブロック数を有するパスがあるか否かが判断される。
このようなパスがある場合、そのパスがステップ３１６で選択され、この方法３００は、ステップ３１０で終了する。
利用可能な適切なパスがない場合、この方法は、その代わりに、ステップ３１４からステップ３０６に進む。
ステップ３０６において、代替的なパスが上述したように選択される。
選択されたパス（この方法３００のステップ３０６又はステップ３１６のいずれかで選択される）が、その後使用されて、図２の方法２００のステップ２０４のＩ／Ｏオペレーションでブロックが取り出される。
【００３１】
したがって、パスは、ＳＡＮ内のＩ／Ｏオペレーションで一群のシーケンシャルブロック（Ｉ／Ｏバッファのそれらのブロック等）にサービス提供し、パスは、別のＩ／Ｏオペレーションで別の一群のブロックにサービス提供する場合もあるし、提供しない場合もある。
パスが、許容ブロック数（ブロックしきい値）よりも多くのブロックにサービス提供した場合、そのパスは、もはや、Ｉ／Ｏオペレーションでブロックにサービス提供するために選択されず、別のパスが、次の一群のブロック用に選ばれる。
これによって、少なくともいくつかのシーケンシャルブロックがストレージデバイスから順番に取り出されることを確実にし、したがって、シーケンシャルブロックが取り出されていることをストレージデバイスが確認することを確実にする。
ストレージデバイスは、次に、シーケンスのさらに先の（まだ取り出し又は要求をされていない）ブロックをプリフェッチし、これらのブロックをストレージデバイスのキャッシュにロードすることによって、自身のプリフェッチ機能を有効に使用することができる。
取り出された後続のブロックが、シーケンスに沿ったさらに先のブロックであるという可能性があり、これらのブロックは、キャッシュにすでに存在するため、迅速に供給することができる。
【００３２】
一群のシーケンシャルデータブロックが、Ｉ／Ｏオペレーションでパスに沿ってストレージデバイスから取り出されると、「サービス提供された最後のブロック」属性が、そのパスに沿って取り出される最後のブロックのブロック番号について更新される。
「サービス提供されたブロック数」も、そのパスに沿って取り出されたその一群のブロック数を追加することによって更新される。
このようにサービス提供されたブロック数が、ブロックしきい値よりも大きくなる場合、そのパスによってそれ以上ブロックにサービス提供することはできず、ブロック（すなわち、他のＩ／Ｏオペレーションで取り出されるブロック）のその後の取り出しのために別のパスを選択しなければならない。
【００３３】
適切な範囲及びサービス提供されたブロック数を有するパスが見つからない場合、この方法３００のステップ３０６において、別のパスが選ばれる。
このように、利用不能であると事前にマーキングされた（すなわち、ブロックしきい値よりも多くのブロックにサービス提供したか又は適切でない範囲を有する）ブロックを再び選択することができ、それらのサービス提供可能なブロック範囲及びサービス提供されたブロック数を再初期化することができる。
【００３４】
ユーザ（たとえば、システム管理者）が、ブロックしきい値の値を設定することができる。
代替的に、ユーザは、ブロックしきい値の値の範囲を指定してもよい。
或る範囲が指定された場合、本発明の実施形態は、所定の期間にわたってその範囲の値のそれぞれについて、１ブロック当たりの平均ターンアラウンドタイム又は平均サービス時間（取り出し時間）を監視することができ、次いで、１ブロック当たりの最小の平均ターンアラウンドタイム又は平均サービス時間を与えるブロックしきい値の値を選択することができる。
これは、ユーザが範囲を指定することなく、たとえば、適切な範囲を自動的に選択することによって、又は、適切な開始点を選択して、平均サービス時間を最小にするようにブロックしきい値の値を増減することによっても行うことができる。
任意の方法を使用して、任意の適切なブロックしきい値の値を選択することができる。ブロックしきい値は、設定されると、固定にしておくこともできるし、動的に変化させることもできる（たとえば、これは、ブロックしきい値の複数の値の平均サービス時間を監視すること、及び、最小平均サービス時間に対応するブロックしきい値の値を定期的に選ぶことを含むことができる）。
これに加えて又はこれに代えて、ブロックしきい値の値は、必要に応じてユーザが変更することもできるし、ユーザは、適切な値の新しい範囲を指定することもできる。
【００３５】
上記の説明では、数個のデータブロックが操作されて取り出される。
しかしながら、ストレージデバイス及び／又はホストの観点からすれば、データブロックは、単一のデータブロックから構成される場合がある。
一方、代替的に、データブロックは、たとえば、複数のデータブロック、１つのデータブロックの一部、又は複数のデータブロックの数部分から構成される場合もある。
【００３６】
図４は、ストレージエリアネットワーク（ＳＡＮ）と通信するホストとするのに適し得る、データ処理システム４００の一例を示している。
システム４００は、データプロセッサ４０２と、通信デバイス４０４と、メモリ４０６（ＲＡＭ等）とを備える。
通信デバイス４０４は、システム４００がＳＡＮと通信することを可能にする。たとえば、通信デバイス４０４は、ホストバスアダプタ（ＨＢＡ）又はネットワークインターフェースカード（ＮＩＣ）を備えることができる。
【００３７】
データ処理システムはまた、永久ストレージデバイス４０８（ハードディスク等）、表示デバイス４１０、及びヒューマンインターフェースデバイス４１２（マウス及び／又はキーボード等）のうちの１つ又は複数を備えることができる。
【００３８】
本発明の実施形態は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組合せの形で実現することができることが理解されよう。
このようないずれのソフトウェアも、たとえば、消去可能であろうとなかろうと、再書き込み可能であろうとなかろうと、ＲＯＭのようなストレージデバイス等の揮発性ストレージ又は不揮発性ストレージの形で記憶することもできるし、たとえば、ＲＡＭ、メモリチップ、デバイス、集積回路等のメモリの形で記憶することもできるし、たとえば、ＣＤ、ＤＶＤ、磁気ディスク、又は磁気テープ等の光可読媒体又は磁気可読媒体に記憶することもできる。
これらのストレージデバイス及びストレージ媒体は、実行されると、本発明の実施形態を実施する１つ又は複数のプログラムを記憶するのに適した機械可読ストレージの実施形態であることが理解されよう。
したがって、実施形態は、先行するいずれかの請求項に記載のシステム又は方法を実施するためのコードを含むプログラムと、このようなプログラムを記憶する機械可読ストレージとを提供する。
さらに、本発明の実施形態は、有線接続又は無線接続で運ばれる通信信号等のあらゆる媒体を介して電子的に搬送することもでき、実施形態は、それらも適切に包含する。
【００３９】
本明細書（あらゆる添付の特許請求の範囲、要約書、及び図面を含む）で開示される機能のすべて、並びに／又は、そのように開示されるあらゆる方法若しくはプロセスのステップのすべては、このような機能及び／又はステップのうちの少なくともいくつかが相互に矛盾する組合せを除いて、任意の組合せで組合せることができる。
【００４０】
本明細書（あらゆる添付の特許請求の範囲、要約書、及び図面を含む）で開示される各機能は、明示的に別段の定めをした場合を除き、同じ目的、等価な目的、又は類似の目的を果たす代替的な機能と取り替えることができる。
したがって、明示的に別段の定めをした場合を除き、開示される各特徴は、一般的な一連の等価な機能又は類似の機能の一例にすぎない。
【００４１】
本発明は、上記のいずれの実施形態の詳細にも制限されるものではない。
本発明は、本明細書（あらゆる添付の特許請求の範囲、要約書、及び図面を含む）で開示される機能のうちの任意の新規な１つ若しくは任意の新規な組合せ、又は、そのように開示される任意の方法若しくはプロセスのステップのうちの任意の新規な１つ若しくは任意の新規な組合せにまで及ぶ。
特許請求の範囲は、単に上記実施形態だけを包含するように解釈されるべきではなく、特許請求の範囲の範囲内に含まれるあらゆる実施形態も包含するように解釈されるべきである。
【図面の簡単な説明】
【００４２】
【図１】ストレージエリアネットワークの一例を示す図である。
【図２】本発明の実施形態によるデータブロックを取り出す方法の一例を示す図である。
【図３】パスを選択する一例を示す図である。
【図４】本発明の実施形態での使用に適したデータ処理システムの一例を示す図である。
【符号の説明】
【００４３】
１００・・・ストレージエリアネットワーク
１０２・・・ストレージデバイス
１０４・・・物理ストレージ
１０６・・・キャッシュ
１０８・・・ブロック
１１０・・・スイッチ型ファブリック
１２０・・・ホスト
１２２・・・ＨＢＡ
１２４・・・メモリ
１２６・・・アプリケーション
１２８・・・Ｉ／Ｏバッファ
４００・・・データ処理システム
４０２・・・データプロセッサ
４０４・・・通信デバイス
４０６・・・メモリ
４０８・・・永久ストレージデバイス
４１０・・・表示デバイス
４１２・・・ヒューマンインターフェースデバイス
【図１】
0005055252.tif 000002
【図２】
0005055252.tif 000003
【図３】
0005055252.tif 000004
【図４】
0005055252.tif 000005