(57)【要約】【課題】外部ストレージサブシステムが有する記憶資源を自分の記憶資源のごとく提供する記憶制御装置におけるＩＯ処理時間長を短縮できるようにする。【解決手段】  外部ストレージサブシステム４０の通信ポート４１毎に割当てられた各キャッシュ領域を持つキャッシュメモリ２４がある。ホスト装置１０から受けたＩＯコマンドに従うデータが外部ＬＤＥＶ４２にある場合、そのキャッシュ領域でキャッシュヒットしなかった場合に、その外部ストレージサブシステム４０にＩＯコマンドが発酵された後で、ホスト装置１０に対してＩＯ処理結果が送信される。記憶制御装置（２０）は、各通信ポート４１毎に、ダミーのＩＯコマンドを発行することで、レスポンスタイムを測定する。その測定値がより大きい通信ポート４１には、より多くのキャッシュ容量が割り当てられる。この結果、測定値がより大きい通信ポート４１に対応するキャッシュ領域でのキャッシュヒット率が高まる。【選択図】図３
2007179156.tif 000002
【特許請求の範囲】
【請求項１】
記憶制御装置の外部に存在するストレージサブシステムである外部ストレージサブシステムと前記記憶制御装置とを備えたストレージシステムの前記記憶制御装置において、
前記外部ストレージサブシステムに備えられる複数の記憶装置である複数の外部記憶装置がそれぞれマッピングされた一以上のオブジェクトと、
外部記憶装置に書かれる又は外部記憶装置から読まれるデータを記憶することができるメモリであって、前記記憶制御装置と前記複数の外部記憶装置とを結ぶ二以上の通信経路の要素別に割当てられた二以上のメモリ領域を持つメモリと、
前記一以上のオブジェクトのうちの或るオブジェクトに対する第一のＩＯコマンドを受け、前記或るオブジェクトにマッピングされている外部記憶装置への通信経路の要素に対応したメモリ領域で、該第一のＩＯコマンドに従うデータの取得又はそのデータの記憶領域の確保を試み、該試みに成功したならば、前記第一のＩＯコマンドの処理結果であるＩＯ結果を該第一のＩＯコマンドの送信元に送信し、前記試みに失敗したならば、前記第一のＩＯコマンドに従うアクセスを行うための第二のＩＯコマンドを、前記マッピングされている外部記憶装置を有する外部ストレージサブシステムに送信し、その後に、前記ＩＯ処理結果を前記送信元に送信するＩＯ処理部と、
前記二以上の通信経路の各々の通信状況を監視する監視部と、
監視の結果、通信状況がより悪い通信経路の要素に対して、メモリ領域容量をより多く割り当てる割当て部と
を備える記憶制御装置。
【請求項２】
前記記憶制御装置は、一又は複数の外部ストレージサブシステムと通信可能な一以上の第一の通信ポートを有し、
前記外部ストレージサブシステムは、前記記憶制御装置と通信可能な一以上の通信可能な第二の通信ポートを有し、
前記通信経路の要素とは、該通信経路に属する第一の通信ポート、第二の通信ポート及び外部記憶装置のうちの少なくとも一つである、
請求項１記載の記憶制御装置。
【請求項３】
前記通信状況とは、通信経路に発行された第二のＩＯコマンドのレスポンスタイムの測定値、又は複数回のレスポンスタイム測定値の統計である、
請求項１記載の記憶制御装置。
【請求項４】
前記監視部は、前記第一のＩＯコマンドに従うアクセスのための第二のＩＯコマンドとは異なるダミーの第二のＩＯコマンドを或る通信経路に発行し、該ダミーの第二のＩＯコマンドの応答を受けることで、前記或る通信経路でのレスポンスタイムを測定する、
請求項３記載の記憶制御装置。
【請求項５】
前記ダミーの第二のＩＯコマンドは、ダミーのリードコマンドであり、
前記監視部は、各通信経路において、各回に発行するダミーのリードコマンドのアクセス先を前回のアクセス先と違えるようにする、
請求項４記載の記憶制御装置。
【請求項６】
前記ダミーの第二のＩＯコマンドは、ダミーのライトコマンドであり、
前記監視部は、各通信経路において、各回に発行するダミーのライトコマンドのアクセス先を、外部記憶装置における所定の記憶領域部分とする、
請求項４記載の記憶制御装置。
【請求項７】
前記監視部は、第二のＩＯコマンドとしてライトコマンドよりもリードコマンドを前記記憶制御装置から受けることが多い外部ストレージサブシステムへの通信経路には、ダミーのリードコマンドを発行することでレスポンスタイムを測定し、第二のＩＯコマンドとしてリードコマンドよりもライトコマンドを前記記憶制御装置から受けることが多い外部ストレージサブシステムへの通信経路には、ダミーのライトコマンドを発行することでレスポンスタイムを測定する、
請求項４記載の記憶制御装置。
【請求項８】
前記統計とは、前記複数回のレスポンスタイム測定値の平均値である、
請求項３記載の記憶制御装置。
【請求項９】
前記統計とは、複数のレスポンスタイム測定値範囲のうち最も多く属するレスポンスタイム測定値が得られたレスポンスタイム測定値範囲である、
請求項３記載の記憶制御装置。
【請求項１０】
前記監視部は、或るグループに属する複数の通信経路のうちの或る通信経路について通信状況を監視する場合、該複数の通信経路のうちの他の通信経路については、通信状況を監視せず、前記或る通信経路の通信状況と同じとする、
請求項１記載の記憶制御装置。
【請求項１１】
前記二以上の通信経路の要素に割り当て可能なメモリ総容量は決まっており、
前記割当て部は、各通信経路の通信状況を基に、前記各通信経路の要素に割り当てるメモリ領域容量比率を求め、前記各通信経路の要素のメモリ容量比率と、前記メモリ総容量とを基に、前記各通信経路の要素に割り当てるメモリ領域容量を求め、或る通信経路について少なくともメモリ領域容量に変更があった場合に、該或る通信経路に割り当てるメモリ領域容量と他の通信経路に割り当てるメモリ領域容量とを変更する、
請求項１記載の記憶制御装置。
【請求項１２】
前記第一のＩＯコマンドが、ライトコマンドであり、
前記記憶制御装置が、前記メモリとは異なる記憶装置である内部記憶装置と、データの記憶場所を管理するためのデータ管理情報とを有し、
前記ＩＯ処理部は、ライトコマンドを受けた場合に前記試みに失敗したならば、前記内部記憶装置に前記ライトコマンドの対象のデータを書き、該データの書込み先を前記データ管理情報に登録する、
請求項１記載の記憶制御装置。
【請求項１３】
前記第一のＩＯコマンドが、リードコマンドであり、
前記ＩＯ処理部は、リードコマンドを受けた場合に前記試みに失敗したならば、前記データ管理情報を参照することにより、前記リードコマンドの対象のデータが前記内部記憶装置に記憶されているかどうかを判断し、記憶されていると判断したならば、該対象のデータを前記内部記憶装置から取得し、記憶されていないと判断したならば、該対象のデータを読み出すためのリードコマンドを、前記外部ストレージサブシステムに送信する、
請求項１２記載の記憶制御装置。
【請求項１４】
或る通信経路について、監視された通信状況が悪ければ、ベリファイ処理を行い、前記通信状況が悪くなければ、ベリファイ処理を行わないベリファイ部を更に備え、
前記ベリファイ処理とは、前記外部記憶装置に対するライトコマンドによって該外部記憶装置に書かれたデータを読出し、読み出されたデータと、該ライトコマンドの対象のデータとを比較し、一致が得られるか否かを判断する処理である、
請求項１記載の記憶制御装置。
【請求項１５】
前記記憶制御装置には、二以上の外部ストレージサブシステムが通信可能に接続されており、監視された通信状況が所定の条件に合う場合に、或る外部ストレージサブシステムと別の外部ストレージシステムとの間でデータコピー或いはマイグレーションを行うデータ制御部を更に備える、
請求項１記載の記憶制御装置。
【請求項１６】
前記記憶制御装置は、前記記憶制御装置に対して第一のＩＯコマンドを発行するホスト装置に通信可能に接続され、前記メモリとは異なる記憶装置である内部記憶装置を有し、
前記ＩＯ処理部は、前記ホスト装置に接続された第一の上位インタフェース部と、前記外部ストレージシステムと通信可能に接続された第二の上位インタフェース部とを有し、
前記第一の上位インタフェース部が、前記或るオブジェクトにマッピングされている外部記憶装置にアクセスすることを前記第二の上位インタフェース部に要求し、前記第二のインタフェース部が、該要求に従って、前記第二のＩＯコマンドを、自分に接続されている外部ストレージサブシステムに発行する、
請求項１記載の記憶制御装置。
【請求項１７】
記憶制御装置の外部に存在するストレージサブシステムである外部ストレージサブシステムと前記記憶制御装置とを備えたストレージシステムで実現することができる記憶制御方法において、
前記外部ストレージサブシステムに備えられる複数の記憶装置である複数の外部記憶装置がそれぞれマッピングされた一以上のオブジェクトのうち、或るオブジェクトに対する第一のＩＯコマンドを受け、
外部記憶装置に書かれる又は外部記憶装置から読まれるデータを記憶することができるメモリであって、前記記憶制御装置と前記複数の外部記憶装置とを結ぶ二以上の通信経路の要素別に割当てられた二以上のメモリ領域を持つメモリにおいて、前記或るオブジェクトにマッピングされている外部記憶装置への通信経路の要素に対応したメモリ領域で、前記受けた第一のＩＯコマンドに従うデータの取得又はそのデータの記憶領域の確保を試み、
該試みに成功したならば、前記第一のＩＯコマンドの処理結果であるＩＯ結果を該第一のＩＯコマンドの送信元に送信し、
前記試みに失敗したならば、前記第一のＩＯコマンドに従うアクセスを行うための第二のＩＯコマンドを、前記マッピングされている外部記憶装置を有する外部ストレージサブシステムに送信し、その後に、前記ＩＯ処理結果を前記送信元に送信し、
前記二以上の通信経路の各々の通信状況を監視し、
監視の結果、通信状況がより悪い通信経路の要素に対して、メモリ領域容量をより多く割り当てる、
記憶制御方法。
【請求項１８】
前記記憶制御装置は、一又は複数の外部ストレージサブシステムと通信可能な一以上の第一の通信ポートを有し、
前記外部ストレージサブシステムは、前記記憶制御装置と通信可能な一以上の通信可能な第二の通信ポートを有し、
前記通信経路の要素とは、該通信経路に属する第一の通信ポート、第二の通信ポート及び外部記憶装置のうちの少なくとも一つであり、
前記通信状況とは、通信経路に発行された第二のＩＯコマンドのレスポンスタイムの測定値、又は複数回のレスポンスタイム測定値の統計である、
請求項１７記載の記憶制御方法。
【請求項１９】
前記二以上の通信経路の要素に割り当て可能なメモリ総容量は決まっており、
各通信経路の通信状況を基に、前記各通信経路の要素に割り当てるメモリ領域容量比率を求め、前記各通信経路の要素のメモリ容量比率と、前記メモリ総容量とを基に、前記各通信経路の要素に割り当てるメモリ領域容量を求め、或る通信経路について少なくともメモリ領域容量に変更があった場合に、該或る通信経路に割り当てるメモリ領域容量と他の通信経路に割り当てるメモリ領域容量とを変更する、
請求項１７記載の記憶制御方法。
【請求項２０】
記憶制御装置の外部に存在するストレージサブシステムである外部ストレージサブシステムと前記記憶制御装置と前記記憶制御装置のホスト装置とを備えたストレージシステムの前記記憶制御装置において、
前記外部ストレージサブシステムが、前記記憶制御装置と通信可能な一以上の通信可能な第一の通信ポートと、複数の記憶装置である複数の外部記憶装置とを有し、
前記ホスト装置が、データを読み出す又はデータを書き込むための第一のＩＯコマンドを前記記憶制御装置に発行するようになっている場合、
前記記憶制御装置が、
前記ホスト装置と通信可能な第二の通信ポートと、
一又は複数の外部ストレージサブシステムと通信可能な一以上の第三の通信ポートと、
前記複数の外部記憶装置がそれぞれマッピングされた一以上のオブジェクトと、
外部記憶装置に書かれる又は外部記憶装置から読まれるデータを記憶することができるメモリであって、前記記憶制御装置と前記複数の外部記憶装置とを結ぶ二以上の通信経路の要素別に割当てられた二以上のメモリ領域を持つメモリと、
前記一以上のオブジェクトのうちの或るオブジェクトに対する第一のＩＯコマンドを受け、前記或るオブジェクトにマッピングされている外部記憶装置への通信経路の要素に対応したメモリ領域で、該第一のＩＯコマンドに従うデータの取得又はそのデータの記憶領域の確保を試み、該試みに成功したならば、前記第一のＩＯコマンドの処理結果であるＩＯ結果を該第一のＩＯコマンドの送信元に送信し、前記試みに失敗したならば、前記第一のＩＯコマンドに従うアクセスを行うための第二のＩＯコマンドを、前記マッピングされている外部記憶装置を有する外部ストレージサブシステムに送信し、その後に、前記ＩＯ処理結果を前記送信元に送信するＩＯ処理部と、
前記二以上の通信経路の各々の通信状況を監視する監視部と、
監視の結果、通信状況がより悪い通信経路の要素に対して、メモリ領域容量をより多く割り当てる割当て部と
前記通信経路の要素とは、該通信経路に属する第一の通信ポート、第三の通信ポート及び外部記憶装置のうちの少なくとも一つであり、
前記通信状況とは、通信経路に発行された第二のＩＯコマンドのレスポンスタイムの複数回の測定値の統計であり、
前記監視部は、前記第一のＩＯコマンドに従うアクセスのための第二のＩＯコマンドとは異なるダミーの第二のＩＯコマンドを或る通信経路に発行し、該ダミーの第二のＩＯコマンドの応答を受けることで、前記或る通信経路でのレスポンスタイムを測定し、
前記統計とは、前記複数回のレスポンスタイム測定値の平均値、又は、複数のレスポンスタイム測定値範囲のうち最も多く属するレスポンスタイム測定値が得られたレスポンスタイム測定値範囲であり、
前記二以上の通信経路の要素に割り当て可能なメモリ総容量は決まっており、
前記割当て部は、各通信経路の前記統計が所定値よりも大きいものには、高いメモリ領域容量比率を割り当て、前記統計が所定値よりも小さいものには、低いメモリ領域容量比率を割り当て、前記各通信経路の要素のメモリ容量比率と、前記メモリ総容量とを基に、前記各通信経路の要素に割り当てるメモリ領域容量を決定する、
記憶制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御技術に関し、具体的には、例えば、ストレージ仮想化技術に関する。
【背景技術】
【０００２】
例えば、特開２００５−２６６９３３号の要約、及び特開２００４−２２７５５８号の要約に開示の技術が知られている。
【特許文献１】特開２００５−２６６９３３号公報
【特許文献２】特開２００４−２２７５５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、いわゆるストレージ仮想化技術が知られている。ここで言うストレージ仮想化とは、記憶制御装置の外部に存在するストレージサブシステム（以下、外部ストレージサブシステム）が有する記憶資源を記憶制御装置が有する記憶資源のごとく提供する技術である。記憶制御装置は、仮想的な記憶資源がアクセス先として指定された場合には、その指定された記憶資源に対応する記憶資源を有する外部ストレージサブシステムに、データを読み出す又は書き込むためのＩＯコマンド（入力／出力コマンド）を発行する。
【０００４】
記憶制御装置が、外部ストレージサブシステムにＩＯコマンドを発行することによりデータを書く或いは読むとなると、外部にアクセスする分、時間を要する。このため、記憶制御装置に指定されたＩＯ処理の時間長（例えば、記憶制御装置のホスト装置から受信したＩＯコマンドを処理する時間長）が長くなってしまう。この時間長を抑えることが好ましい。
【０００５】
従って、本発明の一つの目的は、外部ストレージサブシステムが有する記憶資源を自分の記憶資源のごとく提供する記憶制御装置におけるＩＯ処理時間長を短縮できるようにすることにある。
【０００６】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本発明の第一の観点に従う記憶制御装置は、その外部に存在するストレージサブシステムである外部ストレージサブシステムと前記記憶制御装置とを備えたストレージシステムの前記記憶制御装置である。
【０００８】
その記憶制御装置は、
【０００９】
前記外部ストレージサブシステムに備えられる複数の記憶装置である複数の外部記憶装置がそれぞれマッピングされた一以上のオブジェクトと、
【００１０】
外部記憶装置に書かれる又は外部記憶装置から読まれるデータを記憶することができるメモリであって、前記記憶制御装置と前記複数の外部記憶装置とを結ぶ二以上の通信経路の要素別に割当てられた二以上のメモリ領域を持つメモリと、
【００１１】
前記一以上のオブジェクトのうちの或るオブジェクトに対する第一のＩＯコマンドを受け、前記或るオブジェクトにマッピングされている外部記憶装置への通信経路の要素に対応したメモリ領域で、該第一のＩＯコマンドに従うデータの取得又はそのデータの記憶領域の確保を試み、該試みに成功したならば、前記第一のＩＯコマンドの処理結果であるＩＯ結果を該第一のＩＯコマンドの送信元に送信し、前記試みに失敗したならば、前記第一のＩＯコマンドに従うアクセスを行うための第二のＩＯコマンドを、前記マッピングされている外部記憶装置を有する外部ストレージサブシステムに送信し、その後に、前記ＩＯ処理結果を前記送信元に送信するＩＯ処理部と、
【００１２】
前記二以上の通信経路の各々の通信状況を監視する監視部と、
【００１３】
監視の結果、通信状況がより悪い通信経路の要素に対して、メモリ領域容量をより多く割り当てる割当て部と
を備えることができる。
【００１４】
ここで、オブジェクトとは、例えば、外部記憶装置が直接的にマッピングされたＬＵＮ、或いは、外部記憶装置がマッピングされた後述の仮想デバイスに対応付けられたＬＵＮであるとすることができるが、それに限らず、種々のものを採用することができる。
【００１５】
外部記憶装置は、物理的な記憶装置（例えば、ハードディスクなどのディスク型記憶装置）であっても良いし論理的な記憶装置（例えば、論理ボリューム、論理デバイス或いは論理ユニットと呼ばれる論理的な装置）であっても良い。
【００１６】
第一の態様では、前記記憶制御装置は、一又は複数の外部ストレージサブシステムと通信可能な一以上の第一の通信ポートを有することができる。前記外部ストレージサブシステムは、前記記憶制御装置と通信可能な一以上の通信可能な第二の通信ポートを有することができる。前記通信経路の要素とは、該通信経路に属する第一の通信ポート、第二の通信ポート及び外部記憶装置のうちの少なくとも一つであるとすることができる。一つの第一の通信ポートには、一又は複数の第二の通信ポートが接続されても良いし、一つの第二の通信ポートには、複数の第一の通信ポートが接続されても良い。
【００１７】
第二の態様では、前記通信状況とは、通信経路に発行された第二のＩＯコマンドのレスポンスタイムの測定値、又は複数回のレスポンスタイム測定値の統計であるとすることができる。
【００１８】
第三の態様では、前記第二の態様において、前記監視部は、前記第一のＩＯコマンドに従うアクセスのための第二のＩＯコマンドとは異なるダミーの第二のＩＯコマンドを或る通信経路に発行し、該ダミーの第二のＩＯコマンドの応答を受けることで、前記或る通信経路でのレスポンスタイムを測定することができる。
【００１９】
第四の態様では、前記第三の態様において、前記ダミーの第二のＩＯコマンドは、ダミーのリードコマンドであるとすることができる。前記監視部は、各通信経路において、各回に発行するダミーのリードコマンドのアクセス先を前回のアクセス先と違えるようにすることができる。
【００２０】
第五の態様では、前記第三の態様において、前記ダミーの第二のＩＯコマンドは、ダミーのライトコマンドであるとすることができる。前記監視部は、各通信経路において、各回に発行するダミーのライトコマンドのアクセス先を、外部記憶装置における所定の記憶領域部分とすることができる。
【００２１】
第六の態様では、前記第三の態様において、前記監視部は、第二のＩＯコマンドとしてライトコマンドよりもリードコマンドを前記記憶制御装置から受けることが多い外部ストレージサブシステムへの通信経路には、ダミーのリードコマンドを発行することでレスポンスタイムを測定し、第二のＩＯコマンドとしてリードコマンドよりもライトコマンドを前記記憶制御装置から受けることが多い外部ストレージサブシステムへの通信経路には、ダミーのライトコマンドを発行することでレスポンスタイムを測定することができる。
【００２２】
第七の態様では、前記二の態様において、前記統計とは、前記複数回のレスポンスタイム測定値の平均値であるとすることができる。
【００２３】
第八の態様では、前記第二の態様において、前記統計とは、複数のレスポンスタイム測定値範囲のうち最も多く属するレスポンスタイム測定値が得られたレスポンスタイム測定値範囲であるとすることができる。
【００２４】
第九の態様において、前記監視部は、或るグループに属する複数の通信経路のうちの或る通信経路について通信状況を監視する場合、該複数の通信経路のうちの他の通信経路については、通信状況を監視せず、前記或る通信経路の通信状況と同じとすることができる。
【００２５】
第十の態様において、前記二以上の通信経路の要素に割り当て可能なメモリ総容量は決まっており、前記割当て部は、各通信経路の通信状況を基に、前記各通信経路の要素に割り当てるメモリ領域容量比率を求め、前記各通信経路の要素のメモリ容量比率と、前記メモリ総容量とを基に、前記各通信経路の要素に割り当てるメモリ領域容量を求め、或る通信経路について少なくともメモリ領域容量に変更があった場合に、該或る通信経路に割り当てるメモリ領域容量と他の通信経路に割り当てるメモリ領域容量とを変更することができる。
【００２６】
第十一の態様において、前記第一のＩＯコマンドが、ライトコマンドであり、前記記憶制御装置が、前記メモリとは異なる記憶装置である内部記憶装置と、データの記憶場所を管理するためのデータ管理情報とを有することができる。前記ＩＯ処理部は、ライトコマンドを受けた場合に前記試みに失敗したならば、前記内部記憶装置に前記ライトコマンドの対象のデータを書き、該データの書込み先を前記データ管理情報に登録することができる。
【００２７】
第十二の態様では、前記第十一の態様において、前記第一のＩＯコマンドが、リードコマンドである。前記ＩＯ処理部は、リードコマンドを受けた場合に前記試みに失敗したならば、前記データ管理情報を参照することにより、前記リードコマンドの対象のデータが前記内部記憶装置に記憶されているかどうかを判断し、記憶されていると判断したならば、該対象のデータを前記内部記憶装置から取得し、記憶されていないと判断したならば、該対象のデータを読み出すためのリードコマンドを、前記外部ストレージサブシステムに送信することができる。
【００２８】
第十三の態様では、記憶制御装置が、或る通信経路について、監視された通信状況が悪ければ、ベリファイ処理を行い、前記通信状況が悪くなければ、ベリファイ処理を行わないベリファイ部を更に備えることができる。前記ベリファイ処理とは、前記外部記憶装置に対するライトコマンドによって該外部記憶装置に書かれたデータを読出し、読み出されたデータと、該ライトコマンドの対象のデータとを比較し、一致が得られるか否かを判断する処理であるとすることができる。
【００２９】
第十四の態様では、前記記憶制御装置には、二以上の外部ストレージサブシステムが通信可能に接続されており、監視された通信状況が所定の条件に合う場合に、或る外部ストレージサブシステムと別の外部ストレージシステムとの間でデータコピー或いはマイグレーションを行うデータ制御部を更に備えることができる。
【００３０】
第十五の態様では、前記記憶制御装置は、前記記憶制御装置に対して第一のＩＯコマンドを発行するホスト装置に通信可能に接続され、前記メモリとは異なる記憶装置である内部記憶装置を有することができる。前記ＩＯ処理部は、前記ホスト装置に接続された第一の上位インタフェース部と、前記外部ストレージシステムと通信可能に接続された第二の上位インタフェース部とを有することができる。前記第一の上位インタフェース部が、前記或るオブジェクトにマッピングされている外部記憶装置にアクセスすることを前記第二の上位インタフェース部に要求し、前記第二のインタフェース部が、該要求に従って、前記第二のＩＯコマンドを、自分に接続されている外部ストレージサブシステムに発行することができる。
【００３１】
本発明の第二の観点に従う記憶制御装置は、記憶制御装置の外部に存在するストレージサブシステムである外部ストレージサブシステムと前記記憶制御装置と前記記憶制御装置のホスト装置とを備えたストレージシステムの前記記憶制御装置である。前記外部ストレージサブシステムが、前記記憶制御装置と通信可能な一以上の通信可能な第一の通信ポートと、複数の記憶装置である複数の外部記憶装置とを有する。前記ホスト装置が、データを読み出す又はデータを書き込むための第一のＩＯコマンドを前記記憶制御装置に発行するようになっている。
【００３２】
このような場合、前記記憶制御装置が、
【００３３】
前記ホスト装置と通信可能な第二の通信ポートと、
【００３４】
一又は複数の外部ストレージサブシステムと通信可能な一以上の第三の通信ポートと、
【００３５】
前記複数の外部記憶装置がそれぞれマッピングされた一以上のオブジェクトと、
【００３６】
外部記憶装置に書かれる又は外部記憶装置から読まれるデータを記憶することができるメモリであって、前記記憶制御装置と前記複数の外部記憶装置とを結ぶ二以上の通信経路の要素別に割当てられた二以上のメモリ領域を持つメモリと、
【００３７】
前記一以上のオブジェクトのうちの或るオブジェクトに対する第一のＩＯコマンドを受け、前記或るオブジェクトにマッピングされている外部記憶装置への通信経路の要素に対応したメモリ領域で、該第一のＩＯコマンドに従うデータの取得又はそのデータの記憶領域の確保を試み、該試みに成功したならば、前記第一のＩＯコマンドの処理結果であるＩＯ結果を該第一のＩＯコマンドの送信元に送信し、前記試みに失敗したならば、前記第一のＩＯコマンドに従うアクセスを行うための第二のＩＯコマンドを、前記マッピングされている外部記憶装置を有する外部ストレージサブシステムに送信し、その後に、前記ＩＯ処理結果を前記送信元に送信するＩＯ処理部と、
【００３８】
前記二以上の通信経路の各々の通信状況を監視する監視部と、
【００３９】
監視の結果、通信状況がより悪い通信経路の要素に対して、メモリ領域容量をより多く割り当てる割当て部と
を備える。前記通信経路の要素とは、該通信経路に属する第一の通信ポート、第三の通信ポート及び外部記憶装置のうちの少なくとも一つである。前記通信状況とは、通信経路に発行された第二のＩＯコマンドのレスポンスタイムの複数回の測定値の統計である。
【００４０】
前記監視部は、前記第一のＩＯコマンドに従うアクセスのための第二のＩＯコマンドとは異なるダミーの第二のＩＯコマンドを或る通信経路に発行し、該ダミーの第二のＩＯコマンドの応答を受けることで、前記或る通信経路でのレスポンスタイムを測定することができる。前記統計とは、前記複数回のレスポンスタイム測定値の平均値、又は、複数のレスポンスタイム測定値範囲のうち最も多く属するレスポンスタイム測定値が得られたレスポンスタイム測定値範囲である。前記二以上の通信経路の要素に割り当て可能なメモリ総容量は決まっている。前記割当て部は、各通信経路の前記統計が所定値よりも大きいものには、高いメモリ領域容量比率を割り当て、前記統計が所定値よりも小さいものには、低いメモリ領域容量比率を割り当て、前記各通信経路の要素のメモリ容量比率と、前記メモリ総容量とを基に、前記各通信経路の要素に割り当てるメモリ領域容量を決定する。
【００４１】
上述した各部は、各手段と言い換えることができる。各部或いは各手段は、ハードウェア（例えば回路）、コンピュータプログラム、或いはそれらの組み合わせ（例えば、コンピュータプログラムを読み込んで実行する一又は複数のＣＰＵ）によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源（例えばメモリ）から読み込むことができる。その記憶資源には、ＣＤ−ＲＯＭやＤＶＤ（Digital Versatile Disk）等の記録媒体を介してインストールすることもできるし、インターネットやＬＡＮ等の通信ネットワークを介してダウンロードすることもできる。
【発明の効果】
【００４２】
本発明によれば、外部ストレージサブシステムが有する記憶資源を自分の記憶資源のごとく提供する記憶制御装置におけるＩＯ処理時間長を短縮できるようにすることができる。
【発明を実施するための最良の形態】
【００４３】
以下、図面を参照して、本発明の一実施形態について説明する。
【００４４】
図１は、本発明の一実施形態に係るストレージシステムを示すブロック図である。
【００４５】
例えば、第一の通信ネットワーク４に、ホスト装置、管理端末１５及びストレージサブシステム２０が接続されている。また、第二の通信ネットワーク２に、ストレージサブシステム２０と、ストレージサブシステム２０の外部に存在する別のストレージサブシステム（以下、外部ストレージサブシステム）４０が接続されている。通信ネットワークは、上述のごとく第一と第二のように別れていても良いが、一つであっても良い。通信ネットワークは、例えば、ＬＡＮ（Local Area Network）、ＳＡＮ（Storage Area Network）、或いは専用線など、種々のものを採用することができる。外部ストレージサブシステム４０は、一台であっても複数台であっても良い。外部ストレージサブシステム４０の属性（例えば、機種、ベンダ或いはバージョン等）は、ストレージサブシステム２０の属性と同じであっても良いし異なっていても良い。
【００４６】
ホスト装置１０は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。ホスト装置１０には、第一の通信ネットワーク４を介してストレージサブシステム２０にアクセスするための通信ポート（例えば、ＬＡＮカード或いはホストバスアダプタに設けられたポート）１２が設けられている。ホスト装置１０は、通信ポート１２を介して、データのリード或いはデータのライトを要求するためのＩＯ（入力／出力）コマンドを発行することができる。
【００４７】
ストレージサブシステム２０は、外部ストレージサブシステム４０の有するホストデータ記憶資源（ホスト装置１０に読み書きされるデータを記憶する資源（例えば、論理記憶装置）を自己のホストデータ記憶資源としてホスト装置１０に提供することができる。ストレージサブシステム２０は、ディスク型記憶装置３０を備えたディスクアレイ装置とすることができるが、ディスク型記憶装置３０を有していなくても良いし、通信ネットワークを構成するスイッチ装置（例えば、高機能化されたインテリジェント型のファイバチャネルスイッチ）であっても良い。
【００４８】
ストレージサブシステム２０も外部ストレージサブシステム４０も同様の構成を採用することができるので、以下、ストレージサブシステム２０の構成を代表的に例に採り説明する。ストレージサブシステム２０は、コントローラ部６と記憶装置部８とに大別することができる。
【００４９】
記憶装置部８は、複数のディスク型記憶装置３０を備える。複数のディスク型記憶装置３０の二以上のディスク型記憶装置は、ＲＡＩＤグループ（パリティグループ或いはアレイグループと呼ばれることもある）にされ、そのＲＡＩＤグループが有する物理記憶資源を基に、一又は複数個の論理記憶装置（以下、ＬＤＥＶ）３１が設けられる。なお、外部ストレージサブシステム４０にも、同様に、一又は複数個のＬＤＥＶ４２が設けられる。以下、ストレージサブシステム２０内の物理的な記憶資源が割り当てられたＬＤＥＶ３１を「内部ＬＤＥＶ３１」と言い、外部ストレージサブシステム４０の物理的な記憶資源が割り当てられたＬＤＥＶ４２を「外部ＬＤＥＶ４２」と言う。
【００５０】
記憶装置部８内に点線で示されるＬＤＥＶ３２は、外部ストレージサブシステム４０の有する外部ＬＤＥＶ４２をストレージサブシステム２０側に取り込んだ状態を示すものである。即ち、本実施形態では、ストレージサブシステム２０から見て外部に存在するＬＤＥＶ４２を、ストレージサブシステム２０の内部ＬＤＥＶ３２としてホスト装置１０に外部ＬＤＥＶ４２の記憶資源を提供することができる。
【００５１】
コントローラ部６は、例えば、複数のチャネルアダプタ（ＣＨＡ）２１と、複数のディスクアダプタ（ＤＫＡ）２２と、サービスプロセッサ（ＳＶＰ）２３と、キャッシュメモリ２４と、共有メモリ２５と、接続部２６とを備えている。キャッシュメモリ２４及び共有メモリ２５のうちの少なくとも一つは、複数個備えられても良い。
【００５２】
各ＣＨＡ２１は、一又は複数の通信ポート２８、一又は複数のマイクロプロセッサ（以下、ＭＰ）１００Ｃ、及び図示しないメモリを備えた回路基盤とすることができる。ストレージサブシステム２０には、第一の通信ネットワーク４を介してホスト装置１０と通信するＣＨＡ２１や、第二の通信ネットワーク２を介して外部ストレージサブシステム４０と通信するＣＨＡがある。
【００５３】
ＤＫＡ２２は、ディスク型記憶装置３０との間のデータ授受を行うものである。ＤＫＡ２２は、一又は複数の通信ポート７、一又は複数のＭＰ１００Ｄ、及び図示しないメモリを備えた回路基盤とすることができる。通信ポート７を介して内部ＬＤＥＶ３１との間でデータ入出力を行う場合、ＤＫＡ２２は、論理的なアドレスを物理的なアドレスに変換することができる。
【００５４】
ＳＶＰ２３は、例えば、入出力コンソールと制御コンソールとを備えた装置（例えばパーソナルコンピュータ）であっても良いし、入出力コンソール（例えば管理端末１５）に接続された制御コンソール（例えばいわゆるマザーボード）であっても良い。
【００５５】
キャッシュメモリ２４は、ホスト装置１０から受信したデータや、内部ＬＤＥＶ３１から読み出されたデータを一時的に記憶するためのものである。共有メモリ２５には、制御情報等が格納される。また、共有メモリ２５には、ＭＰ同士でやり取りされるメッセージを記憶することができるワーク領域や、ストレージサブシステム２０を制御するための制御情報が記憶される領域などを設けることができる。
【００５６】
接続部２６は、ＣＨＡ２１、ＤＫＡ２２、キャッシュメモリ２４、及び共有メモリ２５を相互に接続させる。接続部２６は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。
【００５７】
外部ストレージサブシステム４０は、ストレージサブシステム２０と通信可能になる通信ポート４１や外部ＬＤＥＶ４２を備える。
【００５８】
以上が、本実施形態に係るストレージシステム１の構成例である。なお、上記の説明は一例であって、他の構成が採用されてもよい。例えば、共有メモリ２５とキャッシュメモリ２４は、別々のメモリでなく、一つのメモリに共有メモリ領域とキャッシュメモリ領域とが設けられても良い。また、例えば、ストレージサブシステム２０及び／又は外部ストレージサブシステム４０のコントローラ部は、ＣＰＵ、メモリ及び通信ポートを備えた回路基盤であっても良い。この場合、ＣＰＵが、複数のＣＨＡやＤＫＡによって行われる処理を実行することができる。
【００５９】
図２は、ストレージサブシステム２０と外部ストレージサブシステム４０との論理的な概略構造を示す模式図である。
【００６０】
ストレージサブシステム２０は、下層側から順番に、ＶＤＥＶ１０１と、ＬＤＥＶ３１，３２と、ＬＵＮ（Logical Unit Number）１０３とからなる３層の記憶階層を有している。
【００６１】
ＶＤＥＶ１０１は、論理的な記憶階層の最下位に位置する仮想デバイス（Virtual Device）である。ＶＤＥＶ１０１は、物理的な記憶資源を仮想化したものであり、RAID構成を適用することができる。即ち、１つのディスク型記憶装置３０から複数のＶＤＥＶ１０１を形成することもできるし（スライシング）、複数のディスク型記憶装置３０から１つのＶＤＥＶ１０１を形成することもできる（ストライピング）。図２中の左側に示すＶＤＥＶ１０１は、例えば、所定のRAID構成に従ってディスク型記憶装置３０を仮想化している。
【００６２】
一方、図２中の右側に示すＶＤＥＶ１０１は、外部ストレージサブシステム４０の外部ＬＤＥＶ４２をマッピングすることにより構成されている。具体的には、本実施形態では、外部ストレージサブシステム４０の外部ＬＤＥＶ４２をＶＤＥＶ１０１にマッピングすることにより、ストレージサブシステム２０の内部ＬＤＥＶ３２として使用できるようになっている。図に示す例では、４つの外部ＬＤＥＶ４２Ａ〜４２Ｄをストライピングすることにより、ＶＤＥＶ１０１を構築している。各外部ＬＤＥＶ４２Ａ〜４２Ｄには、それぞれの通信ポート４１Ａ〜４１ＤからそれぞれのＬＵＮ４３Ａ〜４３Ｄを特定することにより、それぞれ個別にアクセスすることができる。各通信ポート４１Ａ〜４１Ｄには、ユニークな識別情報であるＷＷＮが割り当てられており、ＷＷＮ及びＬＵＮ（論理ユニット番号）の組合せによって外部ＬＤＥＶを特定することができる。ＬＤＥＶは、ＬＵ（論理ユニット）と呼ばれることもあり、一つのＬＤＥＶに一つのＬＵであっても良いし、複数のＬＤＥＶに一つのＬＵであっても良い。
【００６３】
ＶＤＥＶ１０１の上には、内部ＬＤＥＶ３２が設けられている。内部ＬＤＥＶ３２は、ＶＤＥＶ１０１を仮想化したＬＤＥＶである。１つのＶＤＥＶ１０１から２つのＬＤＥＶ３２に接続することもできるし、複数のＶＤＥＶ１０１から１つのＬＤＥＶ３２に接続することもできる。ＬＤＥＶ３２には、それぞれのＬＵＮ１０３を介してアクセスすることができる。
【００６４】
以上が、ストレージサブシステム２０と外部ストレージサブシステム４０との論理的な概略構造の一例である。この構造により、ホストが仮想的な内部ＬＤＥＶ３２を介して外部ＬＤＥＶ４２にアクセスすることができる。この技術としては、例えば、特開２００５−１０７６４５号に記載の技術を援用することができる。また、別の技術として、例えば、ＶＤＥＶ１０１を介さず、ストレージサブシステムの仮想的なＬＤＥＶ（例えばＬＵＮが設定されているが記憶資源のないＬＤＥＶ）と外部ＬＤＥＶとが対応付けられていて、その仮想的なＬＤＥＶに対するＩＯコマンドがあった場合に、その仮想的なＬＤＥＶに対応付けられている外部ＬＤＥＶにアクセスすることが行われても良い。
【００６５】
ストレージサブシステム２０は、ホスト装置１０からＩＯコマンドを受けた場合、以下のような処理を行うことができる。
【００６６】
図３Ａは、ホスト装置からＩＯコマンドを受けたストレージサブシステム２０で行われる処理の流れの一例を示す。なお、以下の説明では、便宜上、ホスト装置１０と通信可能なＣＨＡ２１を「ホストＣＨＡ２１」と言い、外部ストレージサブシステム４０と通信可能なＣＨＡ２１を「外部ＣＨＡ２１」と言うことにする。
【００６７】
例えば、図２に例示した構造を表す情報（以下、マッピングテーブル）が、ストレージサブシステム２０内の所定の記憶域、例えば共有メモリ２５に記憶されている。
【００６８】
ホストＣＨＡ２１は、例えば、ＩＯコマンドをホスト装置１０から受けた場合（ステップＳ１）、そのＩＯコマンドの解析を行い（Ｓ２）、キャッシュヒットしたか否かを判定する（Ｓ３）。Ｓ２では、例えば、ホストＣＨＡ２１は、そのＩＯコマンドに従うデータがどのＬＤＥＶに格納されるものであるかを識別する。Ｓ３では、例えば、ホストＣＨＡ２１は、受信したＩＯコマンドに従うデータ（つまりリード対象又はライト対象のデータ）がキャッシュメモリ２４に記憶されているか否か（及び／又は、そのデータを記憶させるための領域をキャッシュメモリ２４上に確保できたか否か）を判定する。
【００６９】
ホストＣＨＡ２１は、キャッシュヒットしたと判定した場合（Ｓ３でＹ）、受信したＩＯコマンドの種類に応じた処理をホスト装置１０に対して行う（Ｓ７）。具体的には、例えば、ホストＣＨＡ２１は、受信したＩＯコマンドがリードコマンドであれば、そのコマンドに従うデータをキャッシュメモリ２４から読出し、読み出したデータをホスト装置１０に送信することができる。受信したＩＯコマンドがライトコマンドであれば、ホストＣＨＡ２１は、キャッシュヒットした領域に書込み対象のデータを書き、ホスト装置１０に、ライトコマンドの終了通知を送信することができる。ホストＣＨＡ２１は、例えば、内部ＬＤＥＶ３２に対するデータ（つまり外部ＬＤＥＶ４２に送信されるデータ）をキャッシュメモリ２４に書く場合、そのデータの宛先（例えば内部ＬＤＥＶ３２又は外部ＬＤＥＶ４２のＬＵＮとＬＢＡとのセット）を関連付けて記憶させることができる。これにより、ホスト装置１０からのリードコマンドに従うデータがキャッシュメモリ２４に残っているか否か（換言すればキャッシュヒットしたか否か）を判別することができる。
【００７０】
ホストＣＨＡ２１は、キャッシュヒットしなかったと判定した場合（Ｓ３でＮ）、受信したＩＯコマンドに従うアクセス先が内部と外部のどちらに対応するのかを判定する（Ｓ４）。具体的には、例えば、ホストＣＨＡ２１は、マッピングテーブルを参照し、そのＩＯコマンドで指定されているＬＵＮが内部ＬＤＥＶ３１と外部ＬＤＥＶ４２のどちらに対応しているのかを判定する。
【００７１】
Ｓ４で内部に対応すると判定された場合（Ｓ４でＮ）、ホストＣＨＡ２１は、ＤＫＡ２２に、その内部ＬＤＥＶ３１にアクセスする（データをリードする又はデータをライトする）ことを要求する（Ｓ６）。一方、外部ＬＤＥＶ４２に対応していると判定された場合（Ｓ４でＹ）、ホストＣＨＡ２１は、その外部ＬＤＥＶ４２を有する外部ストレージサブシステム４０に接続されている外部ＣＨＡ２１に、その外部ＬＤＥＶ４２にアクセスすることを要求し、それにより、その外部ＣＨＡ２１により、その外部ＬＤＥＶ４２にアクセスするためのＩＯコマンドが、その外部ストレージサブシステム４０に対して発行される。この後、上述のＳ７が実行される。すなわち、外部ＬＤＥＶ４２からデータが読み出された場合、そのデータがホスト装置１０に送信され、外部ＬＤＥＶ４２にデータが送信された場合、ホスト装置１０に、ライトコマンドの終了通知が送信される。
【００７２】
さて、本実施形態では、このような処理を行うストレージサブシステム２０のホスト装置１０に対するＩＯ処理時間長（Ｓ１からＳ７までの時間長、以下、ＩＯ処理タイム）を短縮するよう工夫されている。以下、その工夫について詳細に説明する。
【００７３】
図３Ｂは、ストレージサブシステム２０で行われる処理であって、本実施形態の特徴の一つとなる処理の流れの概要を示す。
【００７４】
外部ＣＨＡ２１が、各経路要素別に、外部ストレージシステム４０に発行されたＩＯコマンドのレスポンスの時間長（以下、外部レスポンスタイム）を測定する（Ｓ１００）。ここで、「レスポンス」とは、コマンドを受けたという応答の受信、リードコマンドに従うデータの受信、及び、ライトコマンドに従うデータを書いたという終了通知の受信のうちの少なくとも一つを指す。本実施形態では、コマンドを受けたという応答（例えばACK）の受信とする。また、「経路要素」とは、外部ＣＨＡ２１から外部ＬＤＥＶ４２に対するＩＯコマンドの経路に属する要素であり、具体的には、例えば、外部ＣＨＡ２１の通信ポート２８、外部ストレージサブシステム４０の通信ポート４１、及び外部ＬＤＥＶ４２のＬＵＮのうちの少なくとも一つである。以下の説明では、経路要素は、外部ストレージサブシステム４０の通信ポート４１であるとする。
【００７５】
Ｓ１００の処理は、例えば、外部ストレージサブシステム４０に通信可能に接続された場合に行われる。このＳ１００の処理は、例えば、定期的又は不定期的に行われる。故に、或る程度の時間が経過すると、各通信ポート４１毎に、レスポンスタイムが複数回測定されることになる。
【００７６】
外部ＣＨＡ２１は、一定時間経過する都度に、或いは、外部レスポンスタイムを所定回数測定する都度に、複数の外部レスポンスタイム測定値（以下、単に「測定値」ということがある）の統計を各ポート毎に算出する（Ｓ２００）。そして、外部ＣＨＡ２１は、算出された統計に基づいて、各ポート毎にキャッシュ容量比率を算出し、そのキャッシュ容量比率とキャッシュメモリ２４の割当て上限容量とに基づいて、各ポート毎にキャッシュ容量を割当てる（Ｓ３００）。このＳ３００の処理では、レスポンスタイムがより長い通信ポート４１に対してより多くのキャッシュ容量が割当てられる。なお、ここで言う「キャッシュ容量」とは、キャッシュメモリ２４の一部領域の容量である。また、「割当て上限容量」とは、外部ストレージサブシステム４０へのアクセスのために割当てても良いキャッシュ容量の最大値である。
【００７７】
以下、この処理を実現するための工夫として、図４Ａ〜図５Ｂに例示するテーブルが、ストレージサブシステム２０内の所定の記憶域、例えば、共有メモリ２５、キャッシュメモリ２４及び外部ＣＨＡ２１上のメモリのうちの少なくとも一つに一緒にまたは分散して記憶させることができる。
【００７８】
図４Ａは、外部ストレージテーブルの構成例を示す。
【００７９】
外部ストレージテーブル２０１は、外部ストレージサブシステム４０へのアクセスを制御するためのテーブルである。外部ストレージテーブル２０１には、例えば、各通信ポート４１毎に（図４Ａでは、通信ポートＡ〜Ｃの各々について）、測定種別、キャッシュメモリ２４の割当て上限容量、ベリファイ要否、アラーム通知の閾値、ＩＯレスポンス、ＩＯカウント及びキャッシュ容量比率といった項目が用意される。測定種別、割当て上限容量、ベリファイ要否及びアラーム通知の閾値は、例えば、動的に自動では変更されない固定値であり、管理者（ＳＶＰ２３又は管理端末１５のオペレータ）が設定することができる。ＩＯレスポンス及びＩＯカウントは、ストレージサブシステム２０によって自動で設定され手動では設定されない。キャッシュ容量比率は、手動でも自動でも設定することができる（換言すれば固定値であっても良いし動的に変更される値であっても良い）。なお、これらは、一例であって、必ずしもこのような決まりになっていなくても良い。
【００８０】
外部レスポンスタイムは、外部ストレージサブシステム４０にダミーでＩＯコマンドを発行してからその応答を受けるまでの時間長を測定することにより測定することができる。「ダミーでＩＯコマンドを発行する」とは、ホスト装置からの内部ＬＤＥＶ３２に対するＩＯコマンドを受けたことに起因してＩＯコマンドを発行することとは異なり、外部レスポンスタイムの測定のためにＩＯコマンドを発行することを意味する。ダミーで発行されるＩＯコマンドでは、例えば、アクセス先範囲は狭い範囲（例えば１ブロック分）とすることができる。
【００８１】
ＩＯコマンドには、前述したように、リードコマンドとライトコマンドの２種類がある。「測定種別」とは、リードコマンドとライトコマンドのどちらを発行することにより外部レスポンスタイムを測定するかや、その測定方法を動的に変えても良いか否かを表す。本実施形態では、リードコマンドを発行することで測定し測定方法を動的に変えない（Ｒ）、ライトコマンドを発行することで測定し測定方法を動的に変えない（Ｗ）、及び測定方法を動的に変える（動的）の３種類があるものとする。
【００８２】
「ベリファイ要否」とは、外部ＬＤＥＶ４２に書かれたデータのベリファイを行うか否かを表す。そのベリファイでは、具体的には、例えば、外部ＣＨＡ２１が、外部ＬＤＥＶ４２に書くデータをキャッシュメモリ２４に残し、その外部ＬＤＥＶ４２に書いたデータをその外部ＬＤＥＶ４２から読出し、キャッシュメモリ２４に残したデータと、読み出されたデータとを比較し、互いにデータが一致するか否かを判定する。一致しない場合には、エラーと判定される。
【００８３】
「アラーム通知の閾値」とは、エラーが何回以上発生した場合にアラーム通知を行うかを表す。例えば、閾値として「３」が設定された場合、その閾値に対応した通信ポート４１に関わる処理（例えば上記のベリファイ処理）で３回エラーが発生したら、ストレージサブシステム２０（例えば外部ＣＨＡ２１又はホストＣＨＡ２１）によって、ＳＶＰ２３又は管理端末１５（又はホスト装置１０）にアラームが通知される。
【００８４】
「ＩＯレスポンス」とは、最新の外部レスポンスタイム測定値である。「ＩＯカウント」とは、最新の外部レスポンスタイム測定回数である。ＩＯカウントは、例えば、外部レスポンスタイム測定値の統計が算出される都度に、リセット（例えばゼロに）される。
【００８５】
「キャッシュ容量比率」とは、割当てられたキャッシュ容量の比率を表す。例えば、通信ポートＡ〜Ｃのキャッシュ容量比率は、１：２：３や、２：４：５のように、比で割当てることができる。勿論、これに限らず、別の方法、例えば、割当て上限容量を１とした場合の比率であっても良い。
【００８６】
図４Ｂは、第一の外部レスポンスタイムテーブルの構成例を示す。図４Ｃは、第二の外部レスポンスタイムテーブルの構成例を示す。
【００８７】
第一の外部レスポンスタイムテーブル２０３も第二の外部レスポンスタイムテーブル２０５も、外部レスポンスタイム測定値が管理するためのテーブルである。この第一の外部レスポンスタイムテーブル２０３又は第二の外部レスポンスタイムテーブル２０５のどちらかのテーブルを用いることで、外部レスポンスタイム測定値が管理される。第一の外部レスポンスタイムテーブル２０３も第二の外部レスポンスタイムテーブル２０５も、通信ポート４１毎に用意することができる。
【００８８】
第一の外部レスポンスタイムテーブル２０３には、例えば、何回目の測定でどんな測定値が得られたかが記録される。具体的には、例えば、２回目の測定で４ミリ秒という測定結果が得られたならば、測定回「２」に対応した欄に測定値「４」が記録される。
【００８９】
第二の外部レスポンステーブル２０５には、例えば、複数の測定値範囲のうちのどの測定値範囲に属する測定値が何回得られたかが記録される。具体的には、例えば、３ミリ秒という測定結果が得られたならば、範囲「２ｍ以上４ｍ未満」に対応した欄の測定回数が１インクリメントされる（なお、図４Ｂのｍはミリ秒という意味である）。
【００９０】
ＣＨＡ２１（又はＤＫＡ２２）は、第一の外部レスポンスタイムテーブル２０３又は第二の外部レスポンスタイムテーブル２０５をＳＶＰ２３又は管理端末１５に表示させることができる。
【００９１】
図５Ａは、内部ストレージマッピングテーブルの構成例を示す。
【００９２】
内部ストレージマッピングテーブル２０２には、外部ＬＤＥＶ４２に格納されるはずのデータがストレージサブシステム２０内のどこに記憶されているかが記録される。本実施形態では、例えば、外部ＬＤＥＶ４２に格納されるはずのデータを記憶することができる内部ＬＤＥＶ３１が予め決められていて、内部ストレージマッピングテーブル２０２には、その内部ＬＤＥＶ３１内のどこからデータが記憶されているかが記録される。
【００９３】
図５Ｂは、キャッシュメモリ割当てテーブルの構成例を示す。
【００９４】
キャッシュメモリ割当てテーブル２０４には、複数の測定値についてどのような統計結果が得られた場合にどのようなキャッシュ容量比率が割当てられるかが記録されている。具体的には、例えば、複数の統計範囲のうちのどの範囲に属する統計が得られた場合にどんなキャッシュ容量比率が割当てられるかが記録されている。図５Ｂの例でいえば、例えば、通信ポートＡ〜Ｃの全てに「３」というキャッシュ容量比率が割り当てられる場合がある。図５Ｂの例によれば、測定値の統計がより大きいほど、より高いキャッシュ容量比率が割当てられることになる。つまり、測定値の統計がより大きいほど、より多いキャッシュ容量が割当てられる。
【００９５】
図６Ａは、リードコマンドにより外部レスポンスタイムが測定される場合の流れの一例を示す。
【００９６】
外部ＣＨＡ２１のＭＰ１００Ｃが、外部レスポンスタイムの測定のためにダミーでリードコマンドを発行する場合、発行する場合の現在時刻（以下、第一の時刻）を取得し（Ｓ１１）、任意のアクセス先に対するリードコマンドを、或る通信ポート４１に対して発行する（Ｓ１２）。ここで、アクセス先は、例えば、いずれかの外部ＬＤＥＶ４２内の論理ブロックアドレス（ＬＢＡ）である。任意のアクセス先というのは、予め決められた所定のＬＢＡではないという意味である。アクセス先となるＬＢＡ（例えば１ブロック分のＬＢＡ）は、例えば、図７Ａに例示するように、測定回が１、２、３…と増える都度に、アクセス先ＬＢＡがずれていく。このようにするのは、アクセス先が毎回同じであると、アクセス先が集中し、それによって外部レスポンスタイムが長くなってしまうからである。
【００９７】
ＭＰ１００Ｃは、リードコマンドを発行してから一定時間経っても応答が無ければ（Ｓ１３でＮ）、応答無しカウント値（以下、ＮＲＣ）を１インクリメントする（Ｓ１６）。更新後のＮＲＣが所定の閾値Ｋを越えていない場合（Ｓ１７でＮ）、再びＳ１１が行われ、Ｓ１７でＹであれば、ＭＰ１００Ｃは、障害ありというエラーを例えばＳＶＰ２３又は管理端末１５に報告する（Ｓ１８）。
【００９８】
ＭＰ１００Ｃは、リードコマンドを発行してから一定時間内に応答があれば（Ｓ１３でＹ）、その応答を受信したときの現在時刻（以下、第二の時刻）を取得する（Ｓ１４）。そして、ＭＰ１００Ｃは、リードコマンドを受けた通信ポート４１がどれであるかや、第二の時刻と第一の時刻との差分である測定値とを基に、外部ストレージテーブル２０１や外部レスポンスカウントテーブル２０３又は２０５を更新する（Ｓ１５）。
【００９９】
ＭＰ１００Ｃは、外部レスポンスタイム測定のために発行したダミーのリードコマンドに従うデータを外部ストレージサブシステム４０から受けるが、そのデータをキャッシュメモリ２４に残さずに破棄することができる。
【０１００】
図６Ｂは、ライトコマンドにより外部レスポンスタイムが測定される場合の流れの一例を示す。
【０１０１】
外部ＣＨＡ２１のＭＰ１００Ｃが、外部レスポンスタイムの測定のためにダミーでライトコマンドを発行する場合、発行する場合の現在時刻（第一の時刻）を取得し（Ｓ２１）、所定のアクセス先に対するライトコマンドを、或る通信ポート４１に発行する（Ｓ２２）。ここで、所定のアクセス先というのは、図７Ｂに例示するように、予め決められたＬＢＡ範囲のうちの或るＬＢＡという意味である。少なくとも一つの外部ＬＤＥＶに、ダミーのライトコマンドのアクセス先とされるための領域が用意されていて、ＭＰ１００Ｃは、その領域に属するＬＢＡ（例えば１ブロック分のＬＢＡ）を指定したライトコマンドを発行する。このようにするのは、ホスト装置１０に読み出されるデータがダミーのライトコマンドによって上書きされてしまうことを防ぐためである。
【０１０２】
ＭＰ１００Ｃは、ライトコマンドを発行してから一定時間経っても応答が無ければ（Ｓ２３でＮ）、Ｓ１６〜Ｓ１８と同様の処理を行える（Ｓ２６〜Ｓ２８）。
【０１０３】
ＭＰ１００Ｃは、ライトコマンドを発行してから一定時間内に応答があれば（Ｓ２３でＹ）、その応答を受信したときの現在時刻（第二の時刻）を取得する（Ｓ２４）。そして、ＭＰ１００Ｃは、ライトコマンドを受けた通信ポート４１がどれであるかや、第二の時刻と第一の時刻との差分である測定値とを基に、外部ストレージテーブル２０１や外部レスポンスカウントテーブル２０３又は２０５を更新する（Ｓ２５）。
【０１０４】
図６Ａと図６Ｂのどちらの処理により外部レスポンスタイムが測定されるかは、外部ストレージテーブル２０１にどんな測定種別を設定するかによって決めることができる。
【０１０５】
図７Ｃは、外部レスポンスタイムの測定方法の選択処理の流れの一例を示す。
【０１０６】
外部ＣＨＡ２１のＭＰ１００Ｃは、或る通信ポート４１について外部レスポンスタイムを測定する場合、その通信ポート４１に対応した測定種別を参照する（Ｓ３１）。その結果、ＭＰ１００Ｃは、Ｒであれば、図６Ａの処理の行い、Ｗであれば、図６Ｂの処理を行い、動的であれば、外部ＬＤＥＶ４２に対応した内部ＬＤＥＶ３２に対するＩＯコマンドはライトが多いか否かを判別する（Ｓ３２）。これは、例えば、ホスト装置１０からＩＯコマンドを受ける都度に、そのＩＯコマンドがリードコマンドかライトコマンドかに応じて、ライト又はリードに対応したカウント値を更新していくことにより、実現することができる。Ｓ３２の結果、ライトが多ければ、図６Ｂの処理が行われ、リードが多ければ、図６Ａの処理が行われる。
【０１０７】
なお、図６Ａの処理と図６Ｂの処理のどちらで外部レスポンスタイムを測定するのが適切であるかは、例えば、どの通信ポート４１を有する外部ストレージサブシステム４０がどんな系統のシステム或いはどんな系統のデータを格納するかによって定めるのが好ましい。具体的には、例えば、図８Ａに例示するように、通信ポートＡ、Ｂが、更新が頻繁に行われる外部ストレージサブシステム４０Ａが有するものであれば、そのサブシステム４０Ａにはライトコマンドの方が多く発行されるので、通信ポートＡ、Ｂ（或いは、内部ＬＤＥＶ３２Ａ又は外部ＬＤＥＶ４２Ａ）についての測定種別は、Ｗとするのが好ましい。一方、通信ポートＣが、読み出しが頻繁に行われる外部ストレージサブシステム４０Ｂが有するものであれば、そのサブシステム４０Ｂにはリードコマンドの方が多く発行されるので、通信ポートＣ（或いは、内部ＬＤＥＶ３２Ｂ又は外部ＬＤＥＶ４２Ｂ）についての測定種別は、Ｒとするのが好ましい。
【０１０８】
また、図８Ｂに例示するように、或るグループに属する複数の通信ポート４１（例えば通信ポートＡ及びＢ）のうちの少なくとも一つの通信ポート４１（例えば通信ポートＡ）について外部レスポンスタイムの測定が行われた場合には（Ｓ４０でＹ）、そのグループに属する別の通信ポート４１（例えば通信ポートＢ）については、外部レスポンスタイムの測定は行われなくても良い（Ｓ４１）。ここで、或るグループとは、同じ外部ＣＨＡに搭載されている、或いは、図８Ａに例示するように、同じ外部ＬＤＥＶ４２Ａに接続されているなどである。Ｓ４１では、外部ＣＨＡ２１は、その別の通信ポート４１について、測定が実際に行われた通信ポート４１と同じ測定値が得られたものとみなすことができる。これにより、同一のグループに属する各通信ポートに、同一のキャッシュ容量比率を割り当てることができる。
【０１０９】
さて、外部レスポンスタイムの測定が定期的又は不定期的に繰り返されると、複数の測定値が得られる。外部ＣＨＡ２１は、複数の測定値の統計を各ポート毎に算出する（図３ＢのＳ２００）。例えば、外部ＣＨＡ２１のＭＰ１００Ｃは、図４Ｂの第一の外部レスポンステーブル２０３が用いられている場合、或る回（例えば、直前回の統計で使用された最後の回の次の回）から或る回（例えば、最新の回）までの全ての測定値の平均を算出し、その平均を統計とすることができる。また、ＭＰ１００Ｃは、図４Ｃの第二の外部レスポンステーブル２０５が用いられている場合、測定回数が最も多い測定値範囲を求め、その測定値範囲を統計とすることができる。
【０１１０】
外部ＣＨＡ２１のＭＰ１００Ｃは、各通信ポート４１毎に、算出された統計に対応したキャッシュ容量比率をキャッシュメモリ割当てテーブル２０４から求め、求められたキャッシュ容量比率を、その通信ポート４１に割当てることができる（図３ＢのＳ３００）。ＭＰ１００Ｃは、各通信ポート４１のキャッシュ容量比率と、割当て上限容量とに基づいて、各通信ポート４１に割当てるキャッシュ容量を変えることができる。
【０１１１】
図９Ａは、或る通信ポート４１のキャッシュ容量変更処理の流れの一例を示す。
【０１１２】
外部ＣＨＡ２１のＭＰ１００Ｃは、少なくとも一つの通信ポート４１にキャッシュ容量比率の変更があるか否かを判定し（Ｓ５１）、変更がある場合（Ｓ５１でＹ）、或る通信ポート４１のキャッシュ容量に変更があるか否かを判定する（Ｓ５２）。
【０１１３】
ここで、例えば、図９Ｂに例示するように、直前回のＳ３００において、通信ポートＡ〜Ｃのキャッシュ容量比率が１：２：３であり、図９Ｃに例示するように、今回のＳ３００において、通信ポートＡ〜Ｃのキャッシュ容量比率が１：３：２の場合、通信ポートＡについては、Ｓ５１でＹとなるがＳ５２ではＹとならない。しかし、通信ポートＢ及びＣについては、Ｓ５１及びＳ５２でＹとなる。
【０１１４】
Ｓ５２でＹにおいて、例えば、通信ポートＣのように、キャッシュ容量が減少する場合（Ｓ５３でＮ）、ＭＰ１００Ｃは、通信ポートＣに対応したキャッシュ領域からデータを取得し（Ｓ５４）、その取得したデータ分の領域を解放する（Ｓ５５）。取得したデータは、通信ポートＣに接続された外部ストレージサブシステム４０Ｂに送信される、ホスト装置１０に送信される、又は破棄される。
【０１１５】
一方、例えば、通信ポートＢのように、キャッシュ容量が増加する場合（Ｓ５３でＹ）、ＭＰ１００Ｃは、増加する分の容量が足りなければキャッシュ領域部分の解放を待ち（Ｓ５６）、解放された領域部分のうち増加分を、通信ポートＢに対応したキャッシュ領域に追加する（Ｓ５７）。
【０１１６】
外部ＣＨＡ２１は、以上のようにして、各通信ポート４１に割当てるキャッシュ容量比率やキャッシュ容量を変更することができる。
【０１１７】
以上のように、この実施形態によれば、外部レスポンスタイム測定値の統計がより大きいほど、より大きなキャッシュ容量が割り当てられる。これにより、ホスト装置１０から内部ＬＤＥＶ３２に対するＩＯコマンドを受けた場合、そのＩＯコマンドが、外部レスポンスタイム測定値の統計がより大きい通信ポート４１にＩＯコマンドを発行しなければならないものほど、キャッシュヒットの確率を高めることができる。この結果、外部レスポンスタイム測定値の統計がより大きい通信ポート４１（つまり通信状況の悪い通信ポート４１）からＩＯコマンドを発行する必要性を低減できるので、ホスト装置１０からのＩＯコマンドの処理時間長を短縮することができる。
【０１１８】
さて、ホストＣＨＡ２１は、上記のように割当てられたキャッシュ容量の範囲で、ホスト装置１０からのＩＯコマンドに対する領域を確保することができる。
【０１１９】
ここで、上述したマッピングテーブルには、例えば、各内部ＬＤＥＶ３２毎に通信ポート４１のＩＤ（例えばＷＷＮ）や外部ＬＤＥＶ４２のＬＵＮが対応付けられても良い。この場合、ホストＣＨＡ２１は、或る内部ＬＤＥＶ３２に対応するＩＯコマンドについてキャッシュヒットしない場合には、内部ＬＤＥＶ３１の一部の領域を利用することができる。以下、それについて具体的に説明する。
【０１２０】
図１０は、ライトコマンドを受けた場合に内部ＬＤＥＶ３１を利用するホストＣＨＡ２１の処理の一例を示す。
【０１２１】
ホストＣＨＡ２１のＭＰ１００Ｃは、内部ＬＤＥＶ３２に対応したライトコマンドを受信し（Ｓ７１）、その内部ＬＤＥＶ３２に対応した通信ポート４１のキャッシュ領域でキャッシュヒットしたならば（Ｓ７２でＹ）、そのキャッシュ領域にデータを書く（Ｓ７３）。
【０１２２】
しかし、ＭＰ１００Ｃは、キャッシュヒットしなかったならば（Ｓ７２でＮ）、所定の又は任意の内部ＬＤＥＶ３１の所定の又は任意の場所にデータを書くようＤＫＡ２２に指示する（Ｓ７４）。また、ＭＰ１００Ｃは、そのデータの先頭アドレスを内部ストレージマッピングテーブル２０２に記録する（Ｓ７５）。そして、ＭＰ１００Ｃは、ホスト装置１０にライト終了通知を送信する（Ｓ７６）。
【０１２３】
図１１は、リードコマンドを受けた場合に内部ＬＤＥＶ３１を利用するホストＣＨＡ２１の処理の一例を示す。
【０１２４】
ホストＣＨＡ２１のＭＰ１００Ｃは、内部ＬＤＥＶ３２に対応したリードコマンドを受信し（Ｓ６１）、その内部ＬＤＥＶ３２に対応した通信ポート４１のキャッシュ領域でキャッシュヒットしたならば（Ｓ６２でＹ）、そのキャッシュ領域にある対象データをホスト装置１０に送信する（Ｓ６７）。
【０１２５】
しかし、ＭＰ１００Ｃは、キャッシュヒットしなかったならば（Ｓ６２でＮ）、内部ストレージマッピングテーブル２０２を参照する（Ｓ６３）。そして、Ｓ６１で受けたリードコマンドに従うデータが内部ＬＤＥＶ３１にあることを判別できた場合（Ｓ６４でＹ）、ＭＰ１００Ｃは、その内部ＬＤＥＶ３１からデータを読み出すようＤＫＡ２２に指示し（Ｓ６５）、読み出されたデータをホスト装置１０に送信する（Ｓ６７）。内部ＬＤＥＶ３１にないようであれば（Ｓ６４でＮ）、ＭＰ１００Ｃは、内部ＬＤＥＶ３２に対応した外部ＬＤＥＶ４２からデータを読み出すためのリードコマンドを送信するよう外部ＣＨＡ２１に指示する（Ｓ６６）。それにより、外部ＬＤＥＶ４２に対するリードコマンドが外部ストレージサブシステム４０に発行される。
【０１２６】
この実施形態では、外部ＣＨＡ２１の通信ポート毎にキャッシュ容量が割り当てられ、測定値の統計がより大きいものほどより多くのキャッシュ容量が割り当てられる。換言すれば、測定値の統計がより小さいものほど、割り当てられるキャッシュ容量は少ないものとなる。この場合、例えば、キャッシュ容量の少ない通信ポート４１にＩＯコマンドを発行することになるＩＯコマンドをホスト装置１０からたくさん受信した場合、キャッシュヒットする可能性が低くなってしまい、結果として、ホスト装置１０からのＩＯコマンドの処理時間長が長くなってしまう可能性がある。そこで、本実施形態のように、キャッシュヒットしなかった場合に内部ＬＤＥＶ３１の一部を利用することで、ＩＯコマンドの処理時間長が長くなってしまうことを抑えることができる。別の言い方をすれば、測定値の統計がより大きいものほどなるべくキャッシュメモリ２４で対応できるようにすることで、ホスト装置１０からのＩＯコマンドの処理時間長の短縮が図れる。
【０１２７】
さて、本実施形態では、外部ストレージテーブル２０１に、ベリファイ要否について要と設定されている通信ポートについては、以下のようなベリファイ処理を行うことができる。
【０１２８】
図１２は、ベリファイ処理の流れの一例を示す。
【０１２９】
外部ＣＨＡ２１は、ベリファイ要と設定されている通信ポート４１に、或るアクセス先を指定したライトコマンド（ダミーのライトコマンドであっても良いし、ホスト装置１０から指定されたデータを書くためのライトコマンドであっても良い）を発行する（Ｓ８１）。外部ストレージサブシステム４０では、そのライトコマンドに従って、指定されたアクセス先（例えば外部ＬＤＥＶ４２の或るＬＢＡ）にデータが書かれ（Ｓ８２）、その場合に（又は外部ストレージサブシステム４０でキャッシュヒットした場合に）、ライト終了通知がストレージサブシステム２０に送られる（Ｓ８３）。正常に書き込めた場合は、ライト終了通知は正常終了を表すデータとなっており、書きこめなかった場合には、ライト終了通知は異常を表すデータとなっている。
【０１３０】
外部ＣＨＡ２１は、受信したライト終了通知が正常終了を表すものでなければ（Ｓ８４）、後述のＳ８９の処理を行う。
【０１３１】
外部ＣＨＡ２１は、受信したライト終了通知が正常終了を表すものであれば（Ｓ８４でＹ）、Ｓ８１のライトコマンドで指定したアクセス先と同じアクセス先を指定したリードコマンド（ダミーのリードコマンドであっても良いし、ホスト装置１０から指定されたデータを読むためのリードコマンドであっても良い）を、Ｓ８１と同じ通信ポート４１に発行する（Ｓ８５）。外部ストレージサブシステム４０では、そのリードコマンドに従って、指定されたアクセス先からデータが読み出され（Ｓ８６）、読み出されたデータがストレージサブシステム２０に送られる（Ｓ８７）。
【０１３２】
外部ＣＨＡ２１は、受信したデータと、Ｓ８１で送信したライトコマンドで書込み対象としたデータとを比較する（Ｓ８８）。その結果、一致が得られれば、終了し、一致が得られなければ、外部ＣＨＡ２１は、エラーカウント値（以下、ＥＣ）を１インクリメントし、ＥＣが所定の閾値Ｋ´（例えば、外部ストレージテーブル２０１に設定されているアラーム通知の閾値）を超えたか否かを判定する（Ｓ９０）。超えていなければ（Ｓ９０でＮ）、外部ＣＨＡ２１は、再びＳ８１を行い、超えていれば（Ｓ９０でＹ）、ホスト装置１０（及び／又はＳＶＰ２３或いは管理端末１５）へ障害報告を行う（Ｓ９１）。
【０１３３】
外部ＣＨＡ２１は、このようなベリファイ処理を、外部ストレージテーブル２０１に設定されているベリファイル要否に従って、実行するか否かを決めることができるが、それに限らず、外部レスポンスタイムの測定値の統計に基づいて、動的に、実行するか否かを決定することができる。具体的には、例えば、図１３Ａに例示するように、或る通信ポート４１について、複数の測定値の統計が所定値以上であれば（Ｓ５０１でＹ）、その通信ポート４１に出るライトコマンドについては、ベリファイ処理を実行することとし、そうでなければ（Ｓ５０１でＮ）、その通信ポート４１に出るライトコマンドについてベリファイ処理を実行しないことにすることができる。
【０１３４】
このように、測定値の統計が所定値よりも小さい（つまり性能が良い）通信ポート４１、については、外部ストレージサブシステム４０が安定していると考えられるので、ベリファイ処理を実行せず、そうではない（つまり性能が悪い）通信ポート４１については、外部ストレージサブシステム４０で何らかの不具合が発生している可能性が高いと考えられるので、ベリファイ処理を実行し、それにより、外部ストレージサブシステム４０に格納されるデータの信頼性を高めることができる。
【０１３５】
さて、本実施形態では、一台のストレージサブシステム２０に、複数台の外部ストレージサブシステム４０、例えば、図１４に例示するように、第一の外部ストレージサブシステム４０Ａと、第二の外部ストレージサブシステム４０Ｂとを接続することができる。また、第一の外部ストレージサブシステム４０Ａに、第二の外部ストレージサブシステム４０Ｂを接続することができる。第一の外部ストレージサブシステム４０Ａと第二の外部ストレージサブシステム４０Ｂの属性（例えばベンダ或いはメーカ）はそれぞれ異なっているとする。この場合、第一の外部ストレージサブシステム４０Ａの外部ＬＤＥＶ４２内のデータを、ストレージサブシステム２０を経由することなく、第二の外部ストレージサブシステム４０Ｂの外部ＬＤＥＶ４２Ｂにコピー或いはマイグレーションすることはできない。
【０１３６】
しかし、ストレージサブシステム２０を経由すれば、そのようなコピー又はマイグレーションが可能となる。具体的には、例えば、第一の外部ＣＨＡ２１Ａが、通信ポートＡを介して外部ＬＤＥＶ４２Ａ内のデータを読出し、読み出したデータを、通信ポートＡに対応したキャッシュ領域に書き、第二の外部ＣＨＡ２１Ｂが、通信ポートＡに対応したキャッシュ領域からデータを読出し、読み出したデータを、通信ポートＣを介して外部ＬＤＥＶ４２Ｂに書くことができる。この場合、外部ＬＤＥＶ４２Ａ内のデータを削除すれば、マイグレーションとなるし、そうしなければ、コピーとなる。
【０１３７】
各外部ＣＨＡ２１は、このようなコピー又はマイグレーションを実行するか否かを以下のように決定することができる。すなわち、図１３Ｂに例示するように、或る外部ＣＨＡ２１が、測定値又はその統計の変化に基づいて、外部ストレージサブシステム４０と別の外部ストレージサブシステム４０との間でコピー或いはマイグレーションを行う必要があるか否かを判断し（Ｓ６０１）、必要と判断されたならば（Ｓ６０２でＹ）、コピー或いはマイグレーションを行う。
【０１３８】
ここで、各外部ＣＨＡ２１は、各通信ポート４１の測定値又は統計の履歴を所定の記憶域（例えば共有メモリ２５）に残すことができる。それを参照することで、測定値又は統計の変化を理解することができる。例えば、各外部ＣＨＡ２１は、測定値又は統計が小さくなっていっていれば、コピー或いはマイグレーションを実行することができる。これにより、通信状況が悪化していっている通信ポート４１にＩＯコマンドを発行する可能性を低減することができる。
【０１３９】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【図面の簡単な説明】
【０１４０】
【図１】図１は、本発明の一実施形態に係るストレージシステムを示すブロック図である。
【図２】図２は、ストレージサブシステム２０と外部ストレージサブシステム４０との論理的な概略構造を示す模式図である。
【図３】図３Ａは、ホスト装置からＩＯコマンドを受けたストレージサブシステム２０で行われる処理の流れの一例を示す。図３Ｂは、ストレージサブシステム２０で行われる処理であって、本実施形態の特徴の一つとなる処理の流れの概要を示す。
【図４】図４Ａは、外部ストレージテーブルの構成例を示す。図４Ｂは、第一の外部レスポンスタイムテーブルの構成例を示す。図４Ｃは、第二の外部レスポンスタイムテーブルの構成例を示す。
【図５】図５Ａは、内部ストレージマッピングテーブルの構成例を示す。図５Ｂは、キャッシュメモリ割当てテーブルの構成例を示す。
【図６】図６Ａは、リードコマンドにより外部レスポンスタイムが測定される場合の流れの一例を示す。図６Ｂは、ライトコマンドにより外部レスポンスタイムが測定される場合の流れの一例を示す。
【図７】図７Ａは、ダミーのリードコマンドのアクセス先が違えられることの説明図である。図７Ｂは、ダミーのライトコマンドのアクセス先が外部ＬＤＥＶ４２の所定領域範囲内であることの説明図である。図７Ｃは、外部レスポンスタイムの測定方法の選択処理の流れの一例を示す。
【図８】図８Ａは、ストレージサブシステム２０と外部ストレージサブシステム４０Ａ、４０Ｂとの接続の一例を示す。図８Ｂは、或るグループに属する複数の通信ポートについての外部レスポンスタイムの測定制御の流れの一例を示す。
【図９】図９Ａは、或る通信ポート４１のキャッシュ容量変更処理の流れの一例を示す。図９Ｂは、キャッシュ容量変更前の通信ポートＡ〜Ｃのキャッシュ容量比率の一例を示す。図９Ｃは、キャッシュ容量変更後の通信ポートＡ〜Ｃのキャッシュ容量比率の一例を示す。
【図１０】図１０は、ライトコマンドを受けた場合に内部ＬＤＥＶ３１を利用するホストＣＨＡ２１の処理の一例を示す。
【図１１】図１１は、リードコマンドを受けた場合に内部ＬＤＥＶ３１を利用するホストＣＨＡ２１の処理の一例を示す。
【図１２】図１２は、ベリファイ処理の流れの一例を示す。
【図１３】図１３Ａは、ベリファイ処理を行うか否かを選択するための処理の流れの一例を示す。図１３Ｂは、データのコピー或いはマイグレーションを行うか否かを決めるための処理の流れの一例を示す。
【図１４】図１４は、第一の外部ストレージサブシステム４０Ａから第二の外部ストレージサブシステム４０Ｂにデータをコピー或いはマイグレーションすることができる経路とできない経路とを示す。
【符号の説明】
【０１４１】
１０…ホスト装置  １２…通信ポート  ２０…ストレージサブシステム  ２１…チャネルアダプタ  ２２…ディスクアダプタ  ２３…ＳＶＰ（サービスプロセッサ）  ２４…キャッシュメモリ  ２５…共有メモリ  ２６…接続部  ２８…通信ポート  ３０…ディスク型記憶装置  ３１、３２、４２…ＬＤＥＶ  ４０…外部ストレージサブシステム  ４１…通信ポート
【図１】
2007179156.tif 000003
【図２】
2007179156.tif 000004
【図３】
2007179156.tif 000005
【図４】
2007179156.tif 000006
【図５】
2007179156.tif 000007
【図６】
2007179156.tif 000008
【図７】
2007179156.tif 000009
【図８】
2007179156.tif 000010
【図９】
2007179156.tif 000011
【図１０】
2007179156.tif 000012
【図１１】
2007179156.tif 000013
【図１２】
2007179156.tif 000014
【図１３】
2007179156.tif 000015
【図１４】
2007179156.tif 000016