(57)【要約】【課題】イニシエータがｉＳＣＳＩ通信により、ストレージの複数のＬＵを調査する場合、イニシエータのＴＣＰの遅延ＡＣＫの影響を受け、調査時間が増大する。【解決手段】ホスト計算機１０６ａまたは記憶システム１０１ａをイニシエータとし、記憶システム１０１ａまたは記憶システム１０１ｂをターゲットとして、イニシエータがターゲットのＬＵを調査するに際して、イニシエータは、遅延ＡＣＫが複数と判定した場合に、ターゲットに対して、遅延ＡＣＫ数またはその倍数の調査コマンド３０２ａとして、ＳＣＳＩ  Ｉｎｑｕｉｒｙ  ＬＵＮ＃ａ、＃ｂを同時に発行し、ターゲットから調査コマンドに応答した調査結果３０３ａとして、ＳＣＳＩ  Ｄａｔａ−Ｉｎを受けたときに、ターゲットに受領応答３０４ａを即座に送信するので、イニシエータのＴＣＰの遅延ＡＣＫが複数の場合、遅延ＡＣＫ数のＬＵに調査コマンドを同時に発行することで、その応答が遅延ＡＣＫの影響を受けない。【選択図】図３
2008046748.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰネットワークを介してホスト計算機に接続され、データを格納する記憶部を有する記憶システムにおいて、前記ＩＰネットワークに接続された他の記憶システムとｉＳＣＳＩプロトコルにより通信を行うとともに、前記他の記憶システムの論理ユニットを調査するための論理ユニット調査プログラムを基に前記他の記憶システムをターゲットとして処理する通信制御部を備え、前記通信制御部は、イニシエータとして、前記ターゲットから調査対象の論理ユニットに関する情報を取得し、取得した情報を基に、前記ターゲットに対する応答を遅らせる遅延ＡＣＫが複数個設定されていると判定した場合に、前記ターゲットに対して、前記設定された遅延ＡＣＫ数またはその倍数の調査コマンドを同時に発行し、前記ターゲットから前記調査コマンドに応答した調査結果を受けたときに、前記ターゲットに受領応答を送信してなることを特徴とする記憶システム。
【請求項２】
前記通信制御部は、前記調査コマンドを複数の論理ユニットに対応付けて同時に発行してなることを特徴とする請求項１に記載の記憶システム。
【請求項３】
前記通信制御部は、前記調査コマンドが複数種類ある場合に、前記調査コマンドの種類の範囲内で、各種類の調査コマンドを前記複数の論理ユニットに対応付けて同時に発行する処理を繰返してなることを特徴とする請求項１に記載の記憶システム。
【請求項４】
前記通信制御部は、前記調査コマンドが複数種類ある場合に、前記調査コマンドの種類の範囲内で、各種類の調査コマンドを前記複数の論理ユニットに対応付けて同時に発行する処理を繰返し、その後、前記各種類の調査コマンドを前記複数の論理ユニットとは別の複数の論理ユニットに対応付けて同時に発行する処理を繰返し、全ての論理ユニットに関する調査を実行してなることを特徴とする請求項１記載の記憶システム。
【請求項５】
前記通信制御部は、前記調査コマンドが複数種類ある場合に、第１の種類の調査コマンドを前記複数の論理ユニットに対応付けて同時に発行する処理を繰返し、調査対象の全ての論理ユニットに関する調査を実行した後に、第２の種類の調査コマンドを前記複数の論理ユニットに対応付けて同時に発行する処理を繰返し、調査対象の全ての論理ユニットに関する調査を実行することを前記調査コマンドの種類の範囲内で繰り返してなることを特徴とする請求項１記載の記憶システム。
【請求項６】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記論理ユニット毎にすべての調査項目に関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信してなることを特徴とする請求項１に記載の記憶システム。
【請求項７】
前記通信制御部は、前記ターゲットから取得した情報を基に遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、調査項目毎に遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信してなることを特徴とする請求項１に記載の記憶システム。
【請求項８】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、調査項目毎に前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信してなることを特徴とする請求項１に記載の記憶システム。
【請求項９】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、前記調査項目とは別の調査項目と合わせて、前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記別の調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信してなることを特徴とする請求項１に記載の記憶システム。
【請求項１０】
前記通信制御部は、前記ターゲットにログインした後に前記ターゲットに対する調査コマンドを発行してなることを特徴とする請求項１に記載の記憶システム。
【請求項１１】
前記通信制御部は、指示入力に応じて前記調査コマンドの同時発行数を増減してなることを特徴とする請求項１に記載の記憶システム。
【請求項１２】
前記通信制御部は、前記ターゲットまでのネットワーク数に応じて前記調査コマンドの同時発行数を増減してなることを特徴とする請求項１に記載の記憶システム。
【請求項１３】
データを格納する記憶部を有する複数の記憶システム間でＩＰネットワークを介して、ｉＳＣＳＩプロトコルにより通信を行うとともに、一方の記憶システムが他方の記憶システムの論理ユニットを調査する記憶システムの論理ユニット調査方法において、前記一方のホスト計算機は、イニシエータとして、前記他方の記憶システムから調査対象の論理ユニットに関する情報を取得し、取得した情報を基にターゲットに対する応答を遅らせる遅延ＡＣＫが複数個設定されていると判定した場合に、前記ターゲットとなる前記他の記憶システムに対して、前記設定された遅延ＡＣＫ数またはその倍数の調査コマンドを同時に発行し、前記ターゲットから前記調査コマンドに応答した調査結果を受けたときに、前記ターゲットに受領応答を送信することを特徴とする記憶システムの論理ユニット調査方法。
【請求項１４】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記論理ユニット毎にすべての調査項目に関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信することを特徴とする請求項１３に記載の記憶システムの論理ユニット調査方法。
【請求項１５】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、調査項目毎に前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信することを特徴とする請求項１３に記載の記憶システムの論理ユニット調査方法。
【請求項１６】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、調査項目毎に前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信することを特徴とする請求項１３に記載の記憶システムの論理ユニット調査方法。
【請求項１７】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、前記調査項目とは別の調査項目と合わせて、前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記別の調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信することを特徴とする請求項１３に記載の記憶システムの論理ユニット調査方法。
【請求項１８】
データを格納する記憶部を有する記憶システムとＩＰネットワークにより接続され、前記記憶システムとｉＳＣＳＩプロトコルにより通信を行うホスト計算機において、前記記憶システムの論理ユニットを調査するための論理ユニット調査プログラムを基に前記記憶システムをターゲットとして処理する通信制御部を備え、前記通信制御部は、イニシエータとして、前記ターゲットから調査対象の論理ユニットに関する情報を取得し、取得した情報を基に、前記ターゲットに対する応答を遅らせる遅延ＡＣＫが複数個設定されていると判定した場合に、前記ターゲットに対して、前記設定された遅延ＡＣＫ数またはその倍数の調査コマンドを同時に発行し、前記ターゲットから前記調査コマンドに応答した調査結果を受けたときに、前記ターゲットに受領応答を送信してなることを特徴とするホスト計算機。
【請求項１９】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記論理ユニット毎にすべての調査項目に関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信してなることを特徴とする請求項１８に記載のホスト計算機。
【請求項２０】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、調査項目毎に前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信してなることを特徴とする請求項１８に記載のホスト計算機。
【請求項２１】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、調査項目毎に前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信してなることを特徴とする請求項１８に記載のホスト計算機。
【請求項２２】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、前記調査項目とは別の調査項目と合わせて、前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記別の調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信してなることを特徴とする請求項１８に記載のホスト計算機。
【請求項２３】
前記通信制御部は、前記ターゲットにログインした後に前記ターゲットに対する調査コマンドを発行してなることを特徴とする請求項１８に記載の記憶システム。
【請求項２４】
前記通信制御部は、指示入力に応じて前記調査コマンドの同時発行数を増減してなることを特徴とする請求項１８に記載の記憶システム。
【請求項２５】
前記通信制御部は、前記ターゲットまでのネットワーク数に応じて前記調査コマンドの同時発行数を増減してなることを特徴とする請求項１８に記載の記憶システム。
【請求項２６】
データを格納する記憶部を有する記憶システムとＩＰネットワークにより接続され、前記記憶システムとｉＳＣＳＩプロトコルにより通信を行うホスト計算機が、前記記憶システムの論理ユニットを調査するホスト計算機の論理ユニット調査方法において、前記ホスト計算機は、イニシエータとして、前記記憶システムから調査対象の論理ユニットに関する情報を取得し、取得した情報を基に、ターゲットに対する応答を遅らせる遅延ＡＣＫが複数個設定されていると判定した場合に、前記ターゲットとなる前記記憶システムに対して、前記設定された遅延ＡＣＫ数またはその倍数の調査コマンドを同時に発行し、前記ターゲットから前記調査コマンドに応答した調査結果を受けたときに、前記ターゲットに受領応答を送信することを特徴とするホスト計算機の論理ユニット調査方法。
【請求項２７】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記論理ユニット毎にすべての調査項目に関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信することを特徴とする請求項２６に記載のホスト計算機の論理ユニット調査方法。
【請求項２８】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、調査項目毎に前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信することを特徴とする請求項２６に記載のホスト計算機の論理ユニット調査方法。
【請求項２９】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、調査項目毎に前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信することを特徴とする請求項２６に記載のホスト計算機の論理ユニット調査方法。
【請求項３０】
前記通信制御部は、前記ターゲットから取得した情報を基に前記遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、前記調査項目とは別の調査項目と合わせて、前記遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記別の調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信することを特徴とする請求項２６に記載のホスト計算機の論理ユニット調査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続可能な複数の入出力ポートを備えた記憶システムと、ネットワークを介して記憶システムに接続されたホスト計算機との間、または記憶システム同士の間の通信が、特にｉＳＣＳＩプロトコルを用いた通信の場合、記憶システム内の複数の論理ユニットに対する調査をホスト計算機または記憶システムが行う際の時間を短縮させる技術に関する。
【背景技術】
【０００２】
ｉＳＣＳＩ（internet SCSI）は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）ネットワーク上でＳＣＳＩ（Small Computer System Interface）通信を行うためのプロトコルである。
【０００３】
ｉＳＣＳＩでは、ｉＳＣＳＩ  ＰＤＵ（Protocol Data Unit）という単位でコマンドやデータを送受信する。ＰＤＵは、通信プロトコルで扱うことの出来るデータの単位であって、例えばＴＣＰ／ＩＰではパケット、イーサネット（登録商標）ではフレームに相当する。ｉＳＣＳＩにおいて、例えばリードコマンドはＲｅａｄ  Ｃｏｍｍａｎｄ  ＰＤＵ、リードコマンドに対するデータはＤａｔａ−Ｉｎ  ＰＤＵと呼ばれる。なお、ｉＳＣＳＩ  ＰＤＵは、ネットワーク上ではＴＣＰ／ＩＰパケットに包まれた形で送受信される。即ち、Ｒｅａｄ  Ｃｏｍｍａｎｄ  ＰＤＵやＤａｔａ−Ｉｎ  ＰＤＵ等は、実際はＴＣＰ／ＩＰパケットとして送受信される。
【０００４】
また、ｉＳＣＳＩでは、リードやライトコマンドの他に、ターゲットの論理ユニット（ＬＵ：Logical Unit）を調査するコマンドであるＩｎｑｕｉｒｙ  ＰＤＵをイニシエータが発行し、ターゲットはそのコマンドの応答としてＤａｔａ−Ｉｎ  ＰＤＵを返す。ｉＳＣＳＩ通信により、調査用のＳＣＳＩコマンドの発行後、応答を待ってから次の調査用ＳＣＳＩコマンドを発行していく場合、ターゲットからの調査結果のＤａｔａ−Ｉｎ  ＰＤＵが１つのＴＣＰ／ＩＰパケットに収まることが多い。
【０００５】
ところで、ＴＣＰでは、主にネットワーク負荷の軽減を目的として、受信したパケットに対する受領応答（ＡＣＫ）を敢えて遅らせることが出来る遅延確認応答（以下、「遅延ＡＣＫ」と呼ぶ）という応答が規定されている。この遅延ＡＣＫでは、受領応答は、０．５秒以内、もしくは２パケット受領するまで遅延させる、と規定している（非特許文献１の４．２．５節）。上記のように、調査結果のＤａｔａ−Ｉｎ  ＰＤＵは１つのＴＣＰ／ＩＰパケットに収まるため、遅延ＡＣＫに従って、計算機は最大０．５秒後に受領応答を記憶システムへ送信する。そして、その間、計算機、記憶システム間では通信が発生しないため、遅延ＡＣＫは多数のＬＵがある記憶システムに対してＩｎｑｕｉｒｙコマンドを発行していく場合、コマンド応答時間を増大させ、調査時間を増大させるという問題があった。
【０００６】
例えば、図２に示すように、ホスト計算機１０６または記憶システム１０１をイニシエータとし、記憶システム１０１をターゲットとして、イニシエータがターゲットの論理ユニットを調査するに際して、イニシエータは、ターゲットに対して調査コマンド２０２ａとして、ＳＣＳＩ  Ｉｎｑｕｉｒｙ  ＬＵＮ＃ａを発行し、ターゲットから調査コマンドに応答した調査結果２０３ａとして、ＳＣＳＩ  Ｄａｔａ−Ｉｎを受けたときに、遅延ＡＣＫに従って、２セグメント待ちに相当する最大０．５秒後に受領応答（ＡＣＫ）２０５ａをターゲットに送信し、さらに、ターゲットから遅延ＡＣＫに応答したＳＣＳＩ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ２０６ａを受けたときに、遅延ＡＣＫに従って、２セグメント待ちに相当する最大０．５秒後に受領応答（ＡＣＫ）２０７ａをターゲットに送信する処理を繰り返すため、遅延ＡＣＫの影響を受けてコマンド応答時間、すなわち、調査時間が増大することになる。
【０００７】
この問題を解決するためには、遅延ＡＣＫを無効にする方法が考えられるが、現在では遅延ＡＣＫは、多くの機器、オペレーティングシステムに実装されているため、不用意に遅延ＡＣＫを無効にすると他の機器、オペレーティングシステム上のアプリケーションに悪影響を及ぼすという問題がある。そこで、この遅延ＡＣＫの影響を回避する方法として、例えば特許文献１に記載の技術が提案されている。
【非特許文献１】ＲＦＣ１１２２
【特許文献１】特開２００５−１７４０９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１では、遅延ＡＣＫを有する周辺装置へ必要なコマンドを送信した後に、「何らかのコマンド」を周辺装置へ送信することで遅延ＡＣＫを回避することが示されている。具体的には、周辺装置へ送信したコマンド数を計測し、そのコマンド数が所定数に達したときに「何らかのコマンド」を送信する。
【０００９】
しかし、周辺装置間の接続環境次第で、「何らかのコマンド」が遅延ＡＣＫの影響によって遅延した受領応答の到着後に周辺装置へ到着する場合があり、この場合、遅延ＡＣＫの影響を完全に受けるという課題が生じる。例えば、ＴＣＰ／ＩＰはベストエフォート型の通信が前提であるため、上述した課題は容易に起こりうる。また、「何らかのコマンド」自体も余計なデータとして接続回線上を流れることになる。すなわち、イニシエータがｉＳＣＳＩ通信により、ストレージの複数のＬＵを調査する場合、イニシエータのＴＣＰの遅延ＡＣＫの影響を受け、調査時間が増大する。
【００１０】
そこで、本発明の課題は、イニシエータがターゲットの論理ユニットを調査する場合、イニシエータのＴＣＰの遅延ＡＣＫの影響を受けて調査時間が増大するのを抑制することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、ホスト計算機または記憶システムの一実施形態として、次のような構成を採用する。データを格納する記憶部を有する記憶システムとＩＰネットワークを介して接続され、記憶システムとｉＳＣＳＩプロトコルにより通信を行うホスト計算機において、記憶システムの論理ユニットを調査するための論理ユニット調査プログラムを基に記憶システムをターゲットとして処理する通信制御部として、記憶システムとのインタフェースを備えるポート制御部と、記憶システムとホスト計算機内部との間でデータ転送を制御するデータ転送制御部と、前記ポート制御部や前記ホストデータ転送制御部を制御するプロセッサと、前記プロセッサが実行するためのプログラムやテーブルなどを格納するためのメモリで構成することができる。
【００１２】
ＩＰネットワークを介してホスト計算機に接続され、データを格納する記憶部を有する記憶システムにおいて、ＩＰネットワークに接続された他の記憶システムとｉＳＣＳＩプロトコルにより通信を行うとともに、他の記憶システムの論理ユニットを調査するための論理ユニット調査プログラムを基に他の記憶システムをターゲットとして処理する通信制御部として、ホスト計算機または別の記憶システムとのインタフェースを備える１つ以上のＩＦ制御部と、ディスクとのインタフェースを備える１つ以上のディスクＩＦ制御部と、ホスト計算機との送受信データやディスクに格納されたデータを一時的に格納する領域や記憶システム内の制御情報を格納する領域を持つメモリと、データを格納するディスクを備えたもので構成することができる。前記ＩＦ制御部とディスクＩＦ制御部は直接または前記メモリを介して接続され、前記ＩＦ制御部は、ホスト計算機と記憶システム内部との間、または別の記憶システムと本記憶システム内部との間でデータ転送を制御するデータ転送制御部と、前記ＩＦを制御するプロセッサと、前記プロセッサが実行するためのプログラムやテーブルなどを格納するためのメモリで構成する。
【００１３】
前記ホスト計算機または前記記憶システムの通信制御部としては、イニシエータとして、ターゲットから調査対象の論理ユニットに関する情報を取得し、取得した情報を基に遅延ＡＣＫが複数個設定されていると判定した場合に、ターゲットに対して、設定された遅延ＡＣＫ数またはその倍数の調査コマンドを同時に発行し、ターゲットから調査コマンドに応答した調査結果を受けたときに、ターゲットに受領応答を送信してなる機能を有するもので構成することができる。
【００１４】
ホスト計算機または記憶システムがイニシエータとして、ターゲットの論理ユニットを調査するに際して、ターゲットから調査対象の論理ユニットに関する情報を取得し、取得した情報を基に遅延ＡＣＫが複数個設定されていると判定した場合に、ターゲットに対して、設定された遅延ＡＣＫ数またはその倍数の調査コマンドを同時に発行し、ターゲットから調査コマンドに応答した調査結果を受けたときに、ターゲットに受領応答を送信するようにしたため、ターゲットに受領応答を即座に送信することができ、イニシエータのＴＣＰの遅延ＡＣＫの影響を受けて調査時間が増大するのを抑制することができる。
【００１５】
また、前記通信制御部としては、前記ターゲットから取得した情報を基に遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記論理ユニット毎にすべての調査項目に関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信するもので構成したり、前記ターゲットから取得した情報を基に遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、調査項目毎に遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信する構成することもできる。
【００１６】
さらに、前記通信制御部としては、前記ターゲットから取得した情報を基に遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、調査項目毎に遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信するもので構成したり、前記ターゲットから取得した情報を基に遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、前記調査項目とは別の調査項目と合わせて、遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、前記別の調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、前記ターゲットに対して受領応答を送信するもので構成したりすることもできる。
【発明の効果】
【００１７】
本発明によれば、ターゲットに対するＬＵ調査時に、遅延ＡＣＫの影響をできるだけ回避し、調査時間の増大を防ぐことができる。
【発明を実施するための最良の形態】
【００１８】
以下に、本発明の実施形態について図面を用いて説明する。
（実施形態１）
本発明の第１の実施形態について、以下に説明する。図１は、記憶システムの構成の一例を示す図である。記憶システム１０１ａは、ＳＡＮ（Storage Area Network）１０５ａを介してホスト計算機１０６ａと接続するとともに、ＳＡＮ（Storage Area Network）１０５ｂを介して記憶システム１０１ｂと接続する。一般的に、ＳＡＮ１０５はスイッチ等で構成するネットワーク（図示せず）であり、ファイバチャネルやイーサネット（登録商標）等で接続する。
【００１９】
記憶システム１０１ａは、インタフェース（以下、ＩＦと呼ぶ）制御部１０２ａ、１０２ｂ、…、ディスクＩＦ制御部１０３ａ、１０３ｂ、…、メモリ１０４、管理ＩＦ制御部１０５、管理端末１１１で構成する。なお、記憶システム１０１ｂは、記憶システム１０１ａと同一のもので構成されているので、説明を省略する。
【００２０】
ＩＦ制御部１０２ａは、通信制御部として、ホスト計算機１０６とのインタフェースを備え、ポート制御部１０２ａ１、データ転送処理部１０２ａ２、プロセッサ１０２ａ３、メモリ１０２ａ４で構成する。ディスクＩＦ制御部１０３ａは、ＩＦ制御部１０２ａと同等な内部構成（図示せず）を持ち、ホスト計算機１０６ａと送受信するデータを格納する複数のディスク１０７ａ、１０７ｂ、…と接続する。
【００２１】
メモリ１０４は、ホスト計算機１０６ａと送受信するデータの一次格納領域であるキャッシュメモリ（図示せず）と記憶システム１０１ａ内の制御情報や構成情報を格納する共有メモリ（図示せず）領域を持つ。管理ＩＦ制御部１０５は、ＩＦ制御部１０２ａと同等な内部構成（図示せず）を持ち、管理端末１１１を接続する。
【００２２】
管理端末１１１は、ホスト計算機１０６ａと同等な内部構成（図示せず）を持ち、記憶システム１０１ａを管理するプログラムを実行し、メモリ１０４内に前記制御情報や構成情報を格納する制御を有する。ＩＦ制御部１０２ａのメモリ１０２ａ４には、ターゲット用のプログラム１０７として、オペレーティングシステム（ＯＳ）１０７ａ、データ送受信制御１０７ｂ、ＴＣＰ／ＩＰ制御１０７ｃ、ｉＳＣＳＩターゲット制御１０７ｄ、ＳＣＳＩ制御１０７ｅ、ＳＣＳＩアプリケーション１０７ｆなどを格納する。
【００２３】
ＩＦ制御部１０２ａは、ホスト計算機１０６ａを相手として、ターゲットとして動作する。ホスト計算機１０６ａは、記憶システム１０１ａとのインタフェースを備え、ポート制御部１０６ａ１、データ転送制御部１０６ａ２、プロセッサ１０６ａ３、メモリ１０６ａ４などで通信制御部を構成する。
【００２４】
ホスト計算機１０６ａのメモリ１０６ａ４、または記憶システム１０１ａのＩＦ制御部１０２ｂ内のメモリ１０２ｂ４には、イニシエータ用プログラム１０８として、オペレーティングシステム（ＯＳ）１０８ａ、データ送受信制御１０８ｂ、ＴＣＰ／ＩＰ制御１０８ｃ、ｉＳＣＳＩイニシエータ制御１０８ｄ、ＳＣＳＩ制御１０８ｅ、ＳＣＳＩアプリケーション１０８ｆ、などを格納する。さらに、ＳＣＳＩアプリケーション１０８ｆの１つして、ＬＵ調査プログラム１０８ｇを格納し、ＬＵ調査プログラム１０９が取り扱うＬＵ調査テーブル１１０を格納する。この場合、ホスト計算機１０６ａは、記憶システム１０１ａを相手（ターゲット）としてイニシエータとして動作し、記憶システム１０１ａのＩＦ制御部１０２ｂは、記憶システム１０１ｂをターゲットとして、イニシエータとして動作する。
【００２５】
図３は、ホスト計算機１０６ａまたは記憶システム１０１ａをイニシエータとし、記憶システム１０１ａまたは記憶システム１０１ｂをターゲットとして、イニシエータがターゲットの論理ユニットを調査するときのコマンド発行とその応答との関係を示す。
【００２６】
図４は、イニシエータが、ＬＵ調査プログラム１０９を用いて、記憶システム１０１ａ、１０１ｂにあるＬＵの番号を調査するためのＲｅｐｏｒｔ  ＬＵＮｓコマンド４０１と、その応答であるＲｅｐｏｒｔ  ＬＵＮｓ  Ｒｅｓｐｏｎｓｅ４０２のメッセージフォーマットを示す。これらのフォーマットと以下で示す複数のＳＣＳＩコマンドは、アメリカ規格協会ＡＮＳＩ（American National Standard Instituteが定めるフォーマットであり、そのまま使用する。
【００２７】
図５は、イニシエータが、ＬＵ調査プログラム１０９と用いて、ターゲットに存在するＬＵのリストを取得するためのＬＵリスト取得プログラム５００の処理を示すフローチャートである。まず、イニシエータが、Ｒｅｐｏｒｔ  ＬＵＮｓコマンド４０１を発行し（ステップ５０１）、その応答Ｒｅｐｏｒｔ  ＬＵＮｓ  Ｒｅｓｐｏｎｓｅ４０２を待つ（ステップ５０２）。応答がない場合のエラー処理は本処理と、以下での同様の処理で省略する。ステップ５０２で応答がある場合、イニシエータは、Ｒｅｐｏｒｔ  ＬＵＮｓ  Ｒｅｓｐｏｎｓｅ４０２内のＬＵリストを取得し（ステップ５０３）、ＬＵ数を変数Ｎに格納し（ステップ５０４）、ＬＵリストを配列Ｌに格納する（ステップ５０５）。ステップ５０３の吹き出し５０３ｂは、ＬＵリストが０、１、２、５、６の５つである例を示し、ステップ５０４の吹き出し５０４ｂはＬＵ数が５である例を示し、ステップ５０５の吹き出し５０５ｂは配列Ｌの例を示す。以下の説明においても、吹き出しを示すことがあるが説明は省略するが、吹き出し内は、一例としてのその時点での変数の値等を示す。
【００２８】
図６と図７は、イニシエータが、ＬＵ調査プログラム１０９を使用して、指定したＬＵに対して調査を行うためのＩｎｑｕｉｒｙコマンド６０１と、その応答であるＳｔａｎｄａｒｄ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ７０１のメッセージフォーマットを示す。Ｉｎｑｕｉｒｙコマンド６０１は、ＬＵの識別子であるＬＵＮ（LU Number）を指定する必要があるため、そのＬＵＮフィールド６０２がある。また、ＥＶＰＤ（Enable Virtual Product Data）フィールド６０３が０の場合に、Ｓｔａｎｄａｒｄ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ７０１にて応答がある。ＥＶＰＤフィールド６０３を１とする場合には、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に値を指定することで、その値に対応する情報を取得することができる。
【００２９】
Ｓｔａｎｄａｒｄ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ７０１には、ベンダ識別子フィールド７０２、製品識別子フィールド７０３、製品レビジョンフィールド７０４などがあり、それぞれに値が格納された応答となる。Ｉｎｑｕｉｒｙコマンド６０１にて、イニシエータが、ＥＶＰＤフィールド６０３に１を指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８３を指定した場合は、その応答に、ターゲットによりデバイス識別子が格納され、イニシエータが、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８０を指定した場合は、その応答には、ターゲットにより、ユニットシリアル番号が格納されるが、その応答フォーマットの説明は省略する。
【００３０】
図８は、イニシエータが、ＬＵ調査プログラム１０９を使用して、指定したＬＵに対して容量の調査を行うためのＲｅａｄ  Ｃａｐａｃｉｔｙコマンド８０１と、その応答であるＲｅａｄ  Ｃａｐａｃｉｔｙ  Ｒｅｓｐｏｎｓｅ８０２のメッセージフォーマット示す。Ｒｅａｄ  Ｃａｐａｃｉｔｙコマンド８０１は、ＬＵの識別子であるＬＵＮを指定する必要があるため、そのＬＵＮフィールド８０２がある。
【００３１】
図９は、イニシエータが、ＬＵ調査プログラム１０９を使用して、指定した１つのＬＵに対して、ベンダ識別子、製品識別子、製品レビジョン、容量を調査する処理を示すフローチャートである。イニシエータは、指定したＬＵに関する番号を変数ｚに代入し（ステップ９０１）、ＬＵＮフィールド６０２にｚを指定し、ＥＶＰＤフィールド６０３を０に指定したＩｎｑｕｉｒｙコマンドを発行し（ステップ９０２）、その応答Ｓｔａｎｄａｒｄ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅを待つ（ステップ９０３）。
【００３２】
次に、イニシエータは、ＬＵＮフィールド８０２にｚを指定したＲｅａｄ  Ｃａｐａｃｉｔｙコマンドを発行し（ステップ９０４）、その応答Ｒｅａｄ  Ｃａｐａｃｉｔｙ  Ｒｅｓｐｏｎｓｅを待つ（ステップ９０５）。なお、ステップの一部は、後述の説明に使用するため、破線で囲み、ステップ９０６、ステップ９０７としている。ＥＶＰＤフィールド６０３を１に指定したＩｎｑｕｉｒｙコマンドを発行する処理９１０は、ステップ９０５に実行するが、詳細は図１０に示す。
【００３３】
図１０は、イニシエータが、ＬＵ調査プログラム１０９を使用して、指定した１つのＬＵに対して、デバイス識別子、ユニットシリアル番号を調査する処理を示すフローチャートである。イニシエータは、ＥＶＰＤフィールド６０３に１を指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ００を指定したＩｎｑｕｉｒｙコマンドを発行し（ステップ１００１）、その応答を待つ（ステップ１００２）。ステップ１００２における応答には、指定したＬＵＮが持つＰａｇｅ  Ｃｏｄｅのリストが格納される。イニシエータは、Ｐａｇｅ  Ｃｏｄｅのリストにデバイス識別子ページあり、すなわち０ｘ８３がリストされているかを判断し（ステップ１００３）、ありと判断した場合は、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８３を指定したＩｎｑｕｉｒｙコマンドを発行し（ステップ１００４）、その応答を待つ（ステップ１００５）。次に、イニシエータは、Ｐａｇｅ  Ｃｏｄｅのリストにユニットシリアル番号ページあり、すなわち０ｘ８０がリストされているかを判断し（ステップ１００６）、ありと判断した場合は、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８０を指定したＩｎｑｕｉｒｙコマンドを発行し（ステップ１００７）、その応答を待つ（ステップ１００８）。
【００３４】
図１１は、イニシエータが、ＬＵ調査プログラム１０９を用いて調査した結果を格納するＬＵ調査テーブルの一例を示す。ＬＵ調査テーブル１１０は、ＬＵ番号（ＬＵＮ）１１０２、ベンダ識別子１１０２、製品識別子１１０３、製品レビジョン１１０４、容量１１０５、デバイス識別子１１０６、ユニットシリアル番号１１０７等で構成される。ＬＵ番号１１０１は、図５のステップ５０３により取得できる。ベンダ識別子１１０２、製品識別子１１０３、製品レビジョン１１０４は、図９のステップ９０６により取得できる。容量１１０５は、図９のステップ９０７により取得できる。デバイス識別子１１０６は、図１０のステップ１００４と１００５により取得できる。ユニットシリアル番号１１０７は、図１０のステップ１００７と１００８により取得できる。ＬＵ調査テーブル１１０は、ＬＵ調査プログラム１０９が内部的に持つが、ホスト計算機１０６ａや管理端末１１１の画面上に表示させる場合にも、図１１に示すようなテーブル構成を示し、テーブル内の値は、ＬＵ調査プログラム１０９の動作状態、例えば、調査未、調査中、調査成功、調査失敗、などと共に示すこともできる（図示せず）。
【００３５】
図１２は、イニシエータが、ＬＵ調査プログラム１０９を用いて、従来の技術と同様に調査する処理を示すフローチャートである。まず、イニシエータは、図５で示したＬＵリスト取得を行い、配列Ｌに格納する（ステップ５００）。この場合、イニシエータは、一時的な変数ｘを０として（ステップ１２０１）、配列Ｌ［ｘ］が示すＬＵ番号で、図９で示した処理で調査する（ステップ９００）。この後、イニシエータは、変数ｘに対して、ＬＵの数Ｎまで１ずつインクリメントしながら（ステップ１２０２）、図９で示した処理を繰り返し（ステップ９００）、調査した結果を、図１１で示したＬＵ調査テーブル１１０に格納する。なお、ステップの一部は、後述の説明に使用するため、破線で囲み、ステップ１２０４としている。
【００３６】
図１３は、イニシエータが、ＬＵ調査プログラム１０９を用いて、本発明の第１の実施手段により調査する処理を示すフローチャートである。まず、イニシエータは、図５で示したＬＵリスト取得を行い、配列Ｌに格納する（ステップ５００）。次に、イニシエータは、ＬＵ調査プログラム１０９が実行されるホスト計算機１０６のＴＣＰ／ＩＰ制御１０７ｃ、またはＩＦ制御部１０２のＴＣＰ／ＩＰ制御１０８ｃの遅延ＡＣＫ数が１である場合は（ステップ１３０１）、従来技術と同様に、図１２のステップ１２０４で処理する。一方、イニシエータは、ステップ１３０１で、遅延ＡＣＫ数が２である場合は、一時的な変数ｘを０として（ステップ１３０２）、配列Ｌ［ｘ］とＬ［ｘ＋１］が示す２つのＬＵ番号で、ＥＶＰＤフィールド６０３を０に指定したＩｎｑｕｉｒｙコマンドを２つ発行し（ステップ１３０３）、その応答を２つ待つ（ステップ１３０４）。
【００３７】
同じく、イニシエータは、配列Ｌ［ｘ］とＬ［ｘ＋１］が示す２つのＬＵ番号で、Ｒｅａｄ  Ｃａｐａｃｉｔｙコマンドを２つ発行し（ステップ１３０５）、その応答を２つ待つ（ステップ１３０６）。この場合、イニシエータは、変数ｘに関して、ＬＵの数Ｎを２で除算した商を２で乗算した値を越えない（ステップ１３０８）間は、２ずつインクリメントしながら（ステップ１３０７）、ステップ１３０３から１３０６の処理を繰り返す。この過程で、イニシエータは、ステップ１３０８で、不等式が成立しない場合は、さらにＬＵの数Ｎを２で除算した余りが１である場合のみ（ステップ１３０９）、図９で示した処理を行う（ステップ９００）。なお、ステップの一部は、後述の説明に使用するため、破線で囲み、ステップ１３１０としている。ステップ１３１０におけるコマンドの同時発行は２としているが、これは遅延ＡＣＫ数と同じにした例であるが、コマンドの同時発行は遅延ＡＣＫ数の倍数であってもよい。
【００３８】
また、ＬＵ調査プログラム１０９の処理により、管理端末１１１からこのコマンドの同時発行の数を指定させてもよい。さらに、ステップ１３１０のＩｎｑｕｉｒｙコマンドを同時発行の後、Ｒｅａｄ  Ｃａｐａｃｉｔｙコマンドを同時発行という処理は、ＩｎｑｕｉｒｙコマンドとＲｅａｄ  Ｃａｐａｃｉｔｙコマンドを同時発行という組合せにしても問題ない。第１の実施形態におけるＬＵ調査プログラム１０９の処理は、ＩｎｑｕｉｒｙとＲｅａｄ  Ｃａｐａｃｉｔｙコマンドによる調査を、選択したＬＵに対してすべての調査が終了後に、次に選択したＬＵに対してすべての調査を行うという処理である。
【００３９】
図１４は、図１３で示した処理により、ＬＵ調査テーブル１１０の各項目を調査していく順序をイメージ化したものである。イニシエータは、矢印１４０１、矢印１４０２、矢印１４０３の順序で、ベンダ識別子１１０２から容量１１０５までの４つの項目を調査していく。矢印１４０１と矢印１４０２は、図１３でステップ１３１０の調査の処理を示し、矢印１４０３は、図１３でステップ９００の調査の処理を示す。
【００４０】
本実施形態においては、図３に示すように、ホスト計算機１０６ａまたは記憶システム１０１ａをイニシエータとし、記憶システム１０１ａまたは記憶システム１０１ｂをターゲットとして、イニシエータがターゲットの論理ユニットを調査するに際して、ターゲットから調査対象の論理ユニットに関する情報３０１ａを取得し、取得した情報３０１ａを基に遅延ＡＣＫが複数個設定されていると判定した場合に、ターゲットに対して、設定された遅延ＡＣＫ数またはその倍数の調査コマンド３０２ａとして、ＳＣＳＩ  Ｉｎｑｕｉｒｙ  ＬＵＮ＃ａ、＃ｂを同時に発行し、ターゲットから調査コマンドに応答した調査結果３０３ａとして、ＳＣＳＩ  Ｄａｔａ−Ｉｎを受けたときに、ターゲットに受領応答３０４ａを送信するようにしたため、ターゲットに受領応答３０４ａを即座に送信することができ、イニシエータのＴＣＰの遅延ＡＣＫの影響を受けて調査時間が増大するのを抑制することができる。
【００４１】
本実施形態によれば、イニシエータは、ターゲットから取得した情報を基に遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、論理ユニット毎にすべての調査項目に関する調査結果を受けたことを条件に、ターゲットに対して受領応答を送信するようにしたため、ターゲットに対する論理ユニットの調査時に、遅延ＡＣＫの影響をできるだけ回避し、調査時間の増大を防ぐことができる。
【００４２】
（実施形態２）
本発明の第２の実施形態について、以下に説明する。第１の実施形態と異なるのは、イニシエータが、ＬＵ調査プログラム１０９を用いて、Ｉｎｑｕｉｒｙコマンドによる調査の終了後に、Ｒｅａｄ  Ｃａｐａｃｉｔｙコマンドによる調査を行っている点である。これは、イニシエータが調査項目毎にすべてのＬＵを調査するという処理である。
【００４３】
図１５は、イニシエータが、ＬＵ調査プログラム１０９を用いて、本発明の第２の実施手段により調査する処理を示すフローチャートである。まず、イニシエータは、図５で示したＬＵリスト取得を行い、配列Ｌに格納する（ステップ５００）。次に、イニシエータは、ＬＵ調査プログラム１０９が実行されるホスト計算機１０６のＴＣＰ／ＩＰ制御１０７ｃ、またはＩＦ制御部１０２のＴＣＰ／ＩＰ制御１０８ｃの遅延ＡＣＫ数が１である場合は（ステップ１５０１）、従来技術と同様に、図１２のステップ１２０４で処理する。一方、イニシエータは、ステップ１５０１で、遅延ＡＣＫ数が２である場合は、一時的な変数ｘを０として（ステップ１５０２）、配列Ｌ［ｘ］とＬ［ｘ＋１］が示す２つのＬＵ番号で、ＥＶＰＤフィールド６０３を０に指定したＩｎｑｕｉｒｙコマンドを２つ発行し（ステップ１５０４）、その応答を２つ待つ（ステップ１５０４）。
【００４４】
このとき、イニシエータは、変数ｘに関して、ＬＵの数Ｎを２で除算した商を２で乗算した値を越えない（ステップ１５０６）間は、２ずつインクリメントしながら（ステップ１５０５）、ステップ１５０３と１５０４の処理を繰り返し、ステップ１５０６で、不等式が成立しない場合は、さらにＬＵの数Ｎを２で除算した余りが１である場合のみ（ステップ１５０７）、図９で示した処理を行う（ステップ９０６）。次に、イニシエータは、一時的な変数ｘを０として（ステップ１５０８）、配列Ｌ［ｘ］とＬ［ｘ＋１］が示す２つのＬＵ番号で、Ｒｅａｄ  Ｃａｐａｃｉｔｙコマンドを２つ発行し（ステップ１５０９）、その応答を２つ待つ（ステップ１５１０）。このとき、イニシエータは、変数ｘに関して、ＬＵの数Ｎを２で除算した商を２で乗算した値を越えない（ステップ１５１２）間は、２ずつインクリメントしながら（ステップ１５１１）、ステップ１５０９と１５１０の処理を繰り返し、ステップ１５１２で、不等式が成立しない場合は、さらにＬＵの数Ｎを２で除算した余りが１である場合のみ（ステップ１５１３）、図９で示した処理を行う（ステップ９０７）。
【００４５】
図１６は、図１５で示した処理を、イニシエータがＬＵ調査テーブル１１０の各項目を調査していく順序をイメージ化したものである。矢印が処理の順序を示し、イニシエータは、矢印１６０１、矢印１６０２、矢印１６０３の順序で、ベンダ識別子１１０２から製品レビジョン１１０４までの３つの項目を調査し、矢印１６０４、矢印１６０５、矢印１６０６の順序で、容量１１０５の１つの項目を調査していく。矢印１６０１から１６０３は、図１５でステップ１５０２から１５０７までの調査の処理を示し、矢印１６０４から１６０６は、図１５でステップ１５０８から１５１２までの調査の処理を示す。
【００４６】
本実施形態によれば、イニシエータは、ターゲットから取得した情報を基に遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に同じと判断した場合に、調査項目毎に遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、ターゲットに対して受領応答を送信するようにしたため、ターゲットに対する論理ユニットの調査時に、遅延ＡＣＫの影響をできるだけ回避し、調査時間の増大を防ぐことができる。
【００４７】
（実施形態３）
本発明の第３の実施形態について、以下に説明する。第１の実施形態および第２の実施形態と異なるのは、調査項目がＬＵ毎に異なる場合、すなわち、図１１で示したデバイス識別子１１０６とユニットシリアル番号１１０７のように、調査項目の存在の有無があるという点である。
【００４８】
図１７は、図１０で示した１つのＬＵを対象にしたデバイス識別子とユニットシリアル番号の調査であったのに対し、すべてのＬＵで同様の調査を行うための、デバイス識別子とユニットシリアル番号の存在の有無を調査してリストにする処理である。イニシエータは、図５で示したＬＵリスト取得を行い、配列Ｌに格納する（ステップ５００）。このとき、イニシエータは、一時的な変数ｘを０として（ステップ１７０１）、配列Ｌ［ｘ］が示すＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ００を指定したＩｎｑｕｉｒｙコマンドを発行し（ステップ１７０２）、その応答を待つ（ステップ１７０３）。次に、イニシエータは、Ｐａｇｅ  Ｃｏｄｅのリストにデバイス識別子ページあり、すなわち０ｘ８３がリストされているかを判断し（ステップ１７０４）、ありと判断した場合は配列Ｄ［ｘ］に１を設定し（ステップ１７０５ａ）、なしと判断した場合は配列Ｄ［ｘ］に０を設定する（ステップ１７０５ｂ）。
【００４９】
また、イニシエータは、Ｐａｇｅ  Ｃｏｄｅのリストにユニットシリアル番号ページあり、すなわち０ｘ８０がリストされているかを判断し（ステップ１７０６）、ありと判断した場合は配列Ｓ［ｘ］に１を設定し（ステップ１７０７ａ）、なしと判断した場合は配列Ｓ［ｘ］に０を設定する（ステップ１７０７ｂ）。このとき、イニシエータは、変数ｘに関して、ＬＵの数Ｎまで１ずつインクリメントしながら（ステップ１７０８）、ステップ１７０２から１７０７までの処理を繰り返す。
【００５０】
図１８と図１９は、イニシエータが、ＬＵ調査プログラム１０９を用いて、本発明の第３の実施手段により調査する処理を示すフローチャートである。まず、イニシエータは、図５で示したＬＵリスト取得を行い、配列Ｌに格納する（ステップ５００）。次に、イニシエータは、図１７で示したＥＶＰＤサポートＬＵリスト取得を行い、配列Ｄと配列Ｓに格納する（ステップ１７００）。次に、イニシエータは、ＬＵ調査プログラム１０９が実行されるホスト計算機１０６のＴＣＰ／ＩＰ制御１０７ｃ、またはＩＦ制御部１０２のＴＣＰ／ＩＰ制御１０８ｃの遅延ＡＣＫ数が１である場合は（ステップ１８０１）、従来技術と同様に、図１２のステップ１２０４で処理する。ステップ１８０１で、遅延ＡＣＫ数が２である場合は、イニシエータは、一時的な変数ｘを０として（ステップ１８０２）、図１３で示したステップ１３１０の処理を行う。次に、イニシエータは、配列Ｄ［ｘ］が１、かつ配列Ｄ［ｘ＋１］が１である場合（ステップ１８０３）、配列Ｌ［ｘ］とＬ［ｘ＋１］が示す２つのＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８３を指定したＩｎｑｕｉｒｙコマンドを２つ発行し（ステップ１８０４）、その応答を２つ待つ（ステップ１８０５）。
【００５１】
一方、イニシエータは、ステップ１８０３の次に、配列Ｄ［ｘ］が１、かつ配列Ｄ［ｘ＋１］が０である場合（ステップ１８０６）、配列Ｌ［ｘ］が示すＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８３を指定したＩｎｑｕｉｒｙコマンドを１つ発行し（ステップ１８０７）、その応答を１つ待つ（ステップ１８０８）。また、イニシエータは、ステップ１８０６の次に、配列Ｄ［ｘ］が０、かつ配列Ｄ［ｘ＋１］が１である場合（ステップ１８０９）、配列Ｌ［ｘ＋１］が示すＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８３を指定したＩｎｑｕｉｒｙコマンドを１つ発行し（ステップ１８１０）、その応答を１つ待つ（ステップ１８１１）。次に、イニシエータは、配列Ｓ［ｘ］が１、かつ配列Ｓ［ｘ＋１］が１である場合（ステップ１８１２）、配列Ｌ［ｘ］とＬ［ｘ＋１］が示す２つのＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８０を指定したＩｎｑｕｉｒｙコマンドを２つ発行し（ステップ１８１３）、その応答を２つ待つ（ステップ１８１４）。
【００５２】
一方、イニシエータは、ステップ１８１２の次に、配列Ｓ［ｘ］が１、かつ配列Ｓ［ｘ＋１］が０である場合（ステップ１８１５）、配列Ｌ［ｘ］が示すＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８０を指定したＩｎｑｕｉｒｙコマンドを１つ発行し（ステップ１８１６）、その応答を１つ待つ（ステップ１８１７）。また、イニシエータは、ステップ１８１５の次に、配列Ｓ［ｘ］が０、かつ配列Ｓ［ｘ＋１］が１である場合（ステップ１８１８）、配列Ｌ［ｘ＋１］が示すＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８０を指定したＩｎｑｕｉｒｙコマンドを１つ発行し（ステップ１８１９）、その応答を１つ待つ（ステップ１８２０）。
【００５３】
このとき、イニシエータは、変数ｘに関して、ＬＵの数Ｎを２で除算した商を２で乗算した値を越えない（ステップ１８２２）間は、２ずつインクリメントしながら（ステップ１８２１）、ステップ１３１０とステップ１８０３から１８２０までの処理を繰り返し、ステップ１８２２で、不等式が成立しない場合は、さらにＬＵの数Ｎを２で除算した余りが１である場合のみ（ステップ１８２３）、図９で示した処理を行う（ステップ９００）。なお、ステップの途中に、後述の説明に使用するため、破線でポイントを付け、ステップ１８５１と１８５２としている。
【００５４】
図２０は、図１８と図１９で示した処理をイニシエータがＬＵ調査テーブル１１０の各項目を調査していく順序をイメージ化したものである。矢印が処理の順序を示し、イニシエータは、矢印１９０１から矢印１９０７の順序で調査していく。矢印１９０１と１９０２は、図１８でステップ１３１０の調査の処理を示し、矢印１９０３と１９０４は、図１８でステップ１８０３から１８１１までの調査の処理を示す。さらに、矢印１９０５と１９０６は、図１９でステップ１８１２から１８２０までの調査の処理を示し、矢印１９０７は、図１９でステップ９００の調査の処理を示す。
【００５５】
本実施形態によれば、イニシエータは、ターゲットから取得した情報を基に遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、調査項目毎に遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、ターゲットに対して受領応答を送信するようにしたため、ターゲットに対する論理ユニットの調査時に、遅延ＡＣＫの影響をできるだけ回避し、調査時間の増大を防ぐことができる。
【００５６】
（実施形態４）
本発明の第４の実施形態について、以下に説明する。第３の実施形態と異なるのは、図１１で示したデバイス識別子１１０６とユニットシリアル番号１１０７が、調査するＬＵにどちらかしか存在しない場合に、別のＬＵのデバイス識別子１１０６とユニットシリアル番号１１０７の存在を確認して、調査を行う点である。
【００５７】
図２１（ａ）、（ｂ）は、イニシエータが、ＬＵ調査プログラム１０９を用いて、本発明の第４の実施手段により調査する処理を示すフローチャートである。ただし、第３の実施形態との相違点だけを示している。
【００５８】
図１８で示したステップ１８５１には、以下の処理を追加する。イニシエータは、図２１（ａ）に示すように、配列Ｓ［ｘ］が０、かつ配列Ｓ［ｘ＋１］が１である場合（ステップ２００１）、配列Ｌ［ｘ］が示すＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８３を指定したＩｎｑｕｉｒｙコマンドと、配列Ｌ［ｘ＋１］が示すＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８０を指定したＩｎｑｕｉｒｙコマンドを合わせて２つ発行し（ステップ２００２）、その応答を２つ待つ（ステップ２００３）。次に、イニシエータは、配列Ｓ［ｘ＋１］は１であったが、調査が未完のフラグとして意味を持たせることで、調査が完了したので、配列Ｓ［ｘ＋１］を０に設定する（ステップ２００４）。
【００５９】
さらに、図１８で示したステップ１８５２に、以下の処理を追加する。イニシエータは、図２１（ｂ）に示すように、配列Ｓ［ｘ］が１、かつ配列Ｓ［ｘ＋１］が０である場合（ステップ２０１１）、配列Ｌ［ｘ＋１］が示すＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８３を指定したＩｎｑｕｉｒｙコマンドと、配列Ｌ［ｘ］が示すＬＵ番号で、ＥＶＰＤフィールド６０３を１に指定し、Ｐａｇｅ  Ｃｏｄｅフィールド６０４に０ｘ８０を指定したＩｎｑｕｉｒｙコマンドを合わせて２つ発行し（ステップ２０１２）、その応答を２つ待つ（ステップ２０１３）。次に、イニシエータは、配列Ｓ［ｘ］は１であったが、調査が未完のフラグとして意味を持たせることで、調査が完了したので、配列Ｓ［ｘ］を０に設定する（ステップ２０１４）。
【００６０】
図２２は、図１８と図１９及び図２１で示した処理をイニシエータがＬＵ調査テーブル１１０の各項目を調査していく順序をイメージ化したものである。矢印が処理の順序を示し、イニシエータは、矢印２１０１から矢印２１０６の順序で調査していく。矢印２１０１と２１０２は、図１８でステップ１３１０の調査の処理を示し、矢印２１０３は、図１８でステップ１８０３から１８０５までの調査の処理を示す。矢印２１０４は、図１８のステップ１８０６、図２１のステップ２００１から２００４までの調査の処理を示す。矢印２１０５は、図１９でステップ１８１２から１８２０までの調査の処理を示し、矢印２１０６は、図１９でステップ９００の調査の処理を示す。
【００６１】
本実施形態によれば、イニシエータは、ターゲットから取得した情報を基に遅延ＡＣＫ数が２以上で、調査項目が論理ユニット毎に異なる判断した場合に、調査項目とは別の調査項目と合わせて、遅延ＡＣＫ数またはその倍数の論理ユニットに対応付けて調査コマンドを一度に発行し、別の調査項目毎に全ての論理ユニットに関する調査結果を受けたことを条件に、ターゲットに対して受領応答を送信するようにしたため、ターゲットに対する論理ユニットの調査時に、遅延ＡＣＫの影響をできるだけ回避し、調査時間の増大を防ぐことができる。
【００６２】
（実施形態５）
本発明の第５の実施形態について、以下に説明する。図１で示したホスト計算機１０６ａが記憶システム１０１ａにｉＳＣＳＩログインする時や、記憶システム１０１ａが記憶システム１０１ｂにｉＳＣＳＩログインする時に、ＬＵを調査する処理が必要であり、この場合に、第１から第４の実施形態において示したＬＵ調査プログラム１０９の調査する手段を使用することができる（図示せず）。
本実施形態によれば、ＬＵの調査をイニシエータがターゲットにログインする際にも行うことで、１つのイニシエータが複数のＬＵを利用する場合には、ログイン時間を短縮することができる。
（実施形態６）
本発明の第６の実施形態について、以下に説明する。上述した第１の実施形態から第５の実施形態では、遅延ＡＣＫ数が２である場合を前提にしている。ＴＣＰの実装や構成定義により、２以外の値もある。この場合は、調査コマンドの同時発行はその遅延ＡＣＫ数に合わせる、または遅延ＡＣＫ数の倍数にする必要がある。調査コマンドの同時発行の数は、管理者により指示させる方法や、制御ポリシィを予め用意しておく方法がある。
【００６３】
調査コマンドの同時発行の数を、管理者により指示させる方法の一例を示す。図２３は、遅延ＡＣＫ数を管理者に通知し、管理者により、調査コマンドの同時発行の数を指示させる処理のフローチャートを示す図である。ＬＵ調査プログラムの画面２２０１には、一例として接続先記憶システムのアドレス指定２２０２、ＬＵＮ数の表示２２０３、遅延ＡＣＫ数の表示２２０４、調査コマンド同時発行数の入力２２０５、ＬＵ調査テーブルの表示２２０６、調査開始ボタン２２０７があるものとする。
【００６４】
ＬＵ調査プログラム２２００は、第一の実施形態の図１３で示したプログラムと同様であるが、ステップ１３０１の遅延ＡＣＫ数の判断の部分の変更と、ステップ１３０３のＩｎｑｕｉｒｙコマンドを２つ発行の部分が、調査コマンドの同時発行数の入力２２０５に従った数に変更になるというのが違いの概要であり、その他は同様な処理となる。調査コマンド同時発行数の入力２２０５から値が入力されると、調査開始ボタン２２０７からの開始指示を待ち（ステップ２２１３）、指示があるとＬＵ調査が開始される。
【００６５】
図２３では、ＬＵ数が１００で同時に４つ調査コマンドを発行していくものとすると、ＬＵ数である１００は４で割り切れるので、ステップ２２２０の調査未の端数のＬＵはない。ＬＵ数が９９とする一例では、端数が３となり、端数ＬＵは一例として１つずつ調査する（ステップ２２２１）。調査開始後は、調査結果をＬＵ調査テーブル２２０６に表示させる。場合によっては、調査中断や再開の指示を行えるようにしてもよい。
【００６６】
次に、調査コマンドの同時発行の数を、予め用意した制御ポリシィにより決定させる方法の一例を示す。図２４は、接続先の記憶システムまでの通信において、途中経由するネットワーク数を調査し、経由するネットワーク数が少ない場合は調査コマンドの同時発行の数を増やし、経由するネットワーク数が多い場合は調査コマンドの同時発行の数を減らす処理のフローチャートを示す図である。ＬＵ調査プログラムの画面２３０１には、一例として接続先記憶システムのアドレス指定２３０２、ＬＵＮ数の表示２３０３、遅延ＡＣＫ数の表示２３０４、接続先までのネットワーク数の表示２３０５、調査コマンド同時発行数の表示２３０６、ＬＵ調査テーブルの表示２２０７、調査開始ボタン２２０８があるものとする。
【００６７】
ＬＵ調査プログラム２３００は、図２３で示したプログラムと同様であるが、ステップ２２１２の調査コマンドの同時発行数の入力の部分が変更になる。接続先までのネットワーク数ｈを調査（ステップ２３１２）するが、これは一般的に使用されるトレースルートコマンドにより行う。トレースルートは、接続先までのネットワークのルータの数とルータのアドレスを示すことができ、接続先までのネットワーク数の表示２３０５にはこの数を示す。変数ｈが１であるか２以上であるかを調査し（ステップ２３１３）、１の場合は調査コマンド同時発行数ｓを、一例として遅延ＡＣＫ数の２倍とする（ステップ２３１４）。この場合、変数ｓはＬＵ数以下でなければならない。変数ｈが２以上の場合は、調査コマンド同時発行数ｓを、一例として遅延ＡＣＫ数と同じとする（ステップ２３１５）。
【００６８】
この制御ポリシィは、ネットワーク数が少ない場合は近距離であるとし、調査コマンド同時発行数を多くし、ネットワーク数が多い場合は長距離であるとし、調査コマンド同時発行数を少なくする、という意味を持たせている。次に、調査開始ボタン２２０８からの開始指示を待ち（ステップ２２１６）、図２３で示した一連のステップ２２３０と同じ処理を行う。調査開始後は、調査結果をＬＵ調査テーブル２３０７に表示させる。場合によっては、調査中断や再開の指示を行えるようにしてもよい。前述の制御ポリシィにおいて、接続先までのネットワーク数ではなく、接続先までの応答時間により、応答時間が短い場合は近距離であるとし、応答時間が長い場合は長距離であるとする方法も一例として考えられる。
【００６９】
なお、本発明は、上記の実施形態に限定されるものではなく、例えば以下のような応用も可能である。
（１）上述した第１の実施形態から第６の実施形態では、遅延ＡＣＫ数が１である、という判断がされており、この場合、従来の方式で、ＬＵ調査を行うこととしている。ＴＣＰの実装や構成定義によっては、遅延ＡＣＫが設定されていない場合、遅延ＡＣＫ数が１という設定でなく、遅延ＡＣＫがＯＦＦである設定、遅延ＡＣＫ自体が存在しない等があるため、遅延ＡＣＫがないという判断は、ＴＣＰの実装や構成定義に適した処理に変更することができるものとする。
【００７０】
（２）上述した第１の実施形態から第６の実施形態におけるＬＵ調査プログラムは、ホスト計算機や記憶システムの管理端末で、ステップ５００によるＬＵリスト、およびステップ１７００によるＥＶＰＤサポートＬＵリスト取得後に、リストを画面上に表示し、管理者がそのリストの中からにより調査を行うＬＵを選択して、調査の指示を出すことができる。
【００７１】
（３）上述した第１の実施形態から第６の実施形態におけるＬＵ調査プログラムは、ホスト計算機や記憶システムの管理端末で、本発明を実施する、しないの選択を管理者から指示させることができ、実施する場合には、第１の実施形態から第６の実施形態のどれを実施するかの選択を管理者に指示させることができる。また、ホスト計算機または記憶システムの接続先となる記憶システムが複数ある場合に、接続先の記憶システム毎に、上述の管理者からの指示をさせることもできる。
【図面の簡単な説明】
【００７２】
【図１】本発明の第１実施形態を示す記憶システムの構成図である。
【図２】従来技術のコマンド発行と応答の例を示す図である。
【図３】本発明のコマンド発行と応答の例を示す図である。
【図４】Ｒｅｐｏｒｔ  ＬＵＮｓコマンドと応答のフォーマットを示す図である。
【図５】ＬＵリスト取得プログラムの処理を示すフローチャートである。
【図６】Ｉｎｑｕｉｒｙコマンドのフォーマットを示す図である。
【図７】Ｉｎｑｕｉｒｙコマンドの応答のフォーマットを示す図である。
【図８】Ｒｅａｄ  Ｃａｐａｃｉｔｙコマンドと応答のフォーマットを示す図である。
【図９】指定した１つのＬＵに対して、ベンダ識別子、製品識別子、製品レビジョン、容量を調査する処理を示すフローチャートである。
【図１０】指定した１つのＬＵに対して、デバイス識別子、ユニットシリアル番号を調査する処理を示すフローチャートである。
【図１１】ＬＵ調査テーブルの一例を示す図である。
【図１２】ＬＵ調査プログラムの処理を示すフローチャートである。
【図１３】第１の実施形態におけるＬＵ調査プログラムの処理を示すフローチャートである。
【図１４】第１の実施形態におけるＬＵ調査プログラムが、ＬＵ調査テーブルを調査する順序をイメージ化した図である。
【図１５】第２の実施形態におけるＬＵ調査プログラムの処理を示すフローチャートである。
【図１６】第２の実施形態におけるＬＵ調査プログラムが、ＬＵ調査テーブルを調査する順序をイメージ化した図である。
【図１７】ＥＶＰＤをサポートするＬＵリスト取得プログラムの処理を示すフローチャートである。
【図１８】第３の実施形態におけるＬＵ調査プログラムの処理を示すフローチャートである。
【図１９】第３の実施形態におけるＬＵ調査プログラムの処理を示すフローチャートである。
【図２０】第３の実施形態におけるＬＵ調査プログラムが、ＬＵ調査テーブルを調査する順序をイメージ化した図である。
【図２１】第４の実施形態におけるＬＵ調査プログラムの処理を、第３の実施形態に追加したときの処理を示すフローチャートである。
【図２２】第４の実施形態におけるＬＵ調査プログラムが、ＬＵ調査テーブルを調査する順序をイメージ化した図である。
【図２３】第６の実施形態の調査コマンドの同時発行の数を管理者により指示させる場合の、ＬＵ調査プログラムの処理を示すフローチャートである。
【図２４】第６の実施形態の調査コマンドの同時発行の数を制御ポリシィにより決定させる場合の、ＬＵ調査プログラムの処理を示すフローチャートである。
【符号の説明】
【００７３】
１０１ａ、１０１ｂ…記憶システム、１０５ａ、１０５ｂ…ＳＡＮ、１０６ａ…ホスト計算機、１０９…ＬＵ調査プログラム、１１０…ＬＵ調査テーブル、２０４…遅延ＡＣＫ、６０１…Ｉｎｑｕｉｒｙコマンド、６０３…ＥＶＰＤ、６０４…Ｐａｇｅ  Ｃｏｄｅ
【図１】
2008046748.tif 000003
【図２】
2008046748.tif 000004
【図３】
2008046748.tif 000005
【図４】
2008046748.tif 000006
【図５】
2008046748.tif 000007
【図６】
2008046748.tif 000008
【図７】
2008046748.tif 000009
【図８】
2008046748.tif 000010
【図９】
2008046748.tif 000011
【図１０】
2008046748.tif 000012
【図１１】
2008046748.tif 000013
【図１２】
2008046748.tif 000014
【図１３】
2008046748.tif 000015
【図１４】
2008046748.tif 000016
【図１５】
2008046748.tif 000017
【図１６】
2008046748.tif 000018
【図１７】
2008046748.tif 000019
【図１８】
2008046748.tif 000020
【図１９】
2008046748.tif 000021
【図２０】
2008046748.tif 000022
【図２１】
2008046748.tif 000023
【図２２】
2008046748.tif 000024
【図２３】
2008046748.tif 000025
【図２４】
2008046748.tif 000026