(57)【要約】【課題】記憶制御装置のコントローラの前記外部記憶制御装置の外部記憶デバイスに対するアクセス性能が良くない場合でも、キャッシュメモリの容量が圧迫されることを未然に防ぐことができる、記憶制御システムを提供する。【解決手段】第１の記憶制御装置に第２の記憶制御装置の記憶デバイスが接続され、前記第１の記憶制御装置に接続された上位装置のリクエストに応じて、前記第１の記憶制御装置が前記第２の記憶制御装置の前記記憶デバイスにデータを書き込めるように構成された記憶制御システムである。前記第１の記憶制御装置は、前記上位装置と前記第２の記憶制御装置の前記記憶デバイスとの間のデータの授受を制御するコントローラと、前記データを一時記憶するキャッシュメモリと、を備え、前記コントローラは、前記記憶デバイスの特性に応じて、この記憶デバイスに対する、前記キャッシュメモリ上の記憶容量の閾値を設定する。【選択図】図１
2007114874.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶制御装置に第２の記憶制御装置の記憶デバイスが接続され、前記第１の記憶制御装置に接続された上位装置のリクエストに応じて、前記第１の記憶制御装置が前記第２の記憶制御装置の前記記憶デバイスにデータをアクセスできるように構成された記憶制御システムであって、
前記第１の記憶制御装置は、前記上位装置と前記第２の記憶制御装置の前記記憶デバイスとの間のデータの授受を制御するコントローラと、前記データを一時記憶するキャッシュメモリと、を備え、
前記コントローラは、前記記憶デバイスの特性に応じて、この記憶デバイスに対する、前記キャッシュメモリ上の記憶容量の閾値を設定する、記憶制御システム。
【請求項２】
前記閾値は、前記記憶デバイスに対する前記キャッシュメモリ上の記憶容量の上限値である、請求項１記載の記憶制御システム。
【請求項３】
前記コントローラは、前記第２の記憶制御装置の特性と、前記記憶デバイスの特性と、の少なくとも一つに基づいて、前記閾値を変更する、請求項１記載の記憶制御システム。
【請求項４】
前記コントローラは、前記記憶デバイスの交代パスモデルの種類、ＲＡＩＤレベル、ドライブタイプ、デバイス容量、及び平均レスポンス時間の少なくとも一つの特性に基づいて、前記閾値を変更する、請求項３記載の記憶制御システム。
【請求項５】
前記コントローラは、前記記憶デバイスの使用状態に基づいて、自身が前記キャッシュメモリにアクセスするのを制限する、請求項１記載の記憶制御システム。
【請求項６】
前記制限は、前記コントローラが、前記キャッシュメモリを使用せずに、前記上位装置からのリクエストに応じて、前記データを前記記憶デバイスに書き込むライトスルー動作、前記コントローラが、前記上位装置からの前記記憶制御装置へ前記データの書き込みを要求するアクセスの受付を所定時間停止する停止動作、及び、前記コントローラが、前記上位装置に、前記記憶デバイスへの前記データの書き込みが完了した通知の発行を所定時間遅延させる遅延動作の少なくともいずれかである、請求項５記載の記憶制御システム。
【請求項７】
前記コントローラは、前記閾値と、前記記憶デバイスの前記キャッシュメモリ上の使用容量とを比較し、この比較結果に基づいて、前記キャッシュメモリを使用せずに、前記上位装置からのリクエストに応じて、前記データを前記記憶デバイスに書き込むライトスルー動作を実行する、請求項５記載の記憶制御システム。
【請求項８】
前記コントローラは、前記使用容量が前記閾値を越えた時に、前記上位装置からのリクエストに基づく、前記記憶デバイスへの前記データの書き込み処理を、前記キャッシュメモリを使用する通常動作から前記ライトスルー動作に変更する、請求項７記載の記憶制御システム。
【請求項９】
前記コントローラは、前記ライトスルー動作の継続時間を、前記キャッシュメモリの使用容量に基づいて変更可能である、請求項７記載の記憶制御システム。
【請求項１０】
前記コントローラは、前記記憶デバイスに前記データを書き込んだ時点で、前記上位装置に、前記データの書き込み完了を通知する、請求項７記載の記憶制御システム。
【請求項１１】
前記コントローラは、前記記憶デバイスに所定の障害が所定頻度で発生した際に、前記上位装置からの前記記憶デバイスへ前記データの書き込みを要求するアクセスの受付を所定時間停止する、請求項５記載の記憶制御システム。
【請求項１２】
前記コントローラは、前記記憶デバイスに所定の障害が所定頻度で発生した際に、前記閾値を減じる、請求項５記載の記憶制御システム。
【請求項１３】
前記コントローラは、前記第１の記憶制御装置から前記記憶デバイスに至るアクセスパスの動作不良を検出し、これが検出された際に、前記停止動作を実行する請求項６記載の記憶制御システム。
【請求項１４】
前記コントローラは、前記記憶デバイスの交代パス構造の種類と、前記交代パスの冗長度に応じて、前記閾値の減少値を決定する請求項１２記載の記憶制御システム。
【請求項１５】
前記コントローラは、前記記憶デバイスに対する前記キャッシュメモリの実際の使用容量と前記閾値とを比較し、この比較結果に応じて、前記遅延動作に於ける遅延時間を決定する、請求項６記載の記憶制御システム。
【請求項１６】
第１の記憶制御装置に前記第２の記憶制御装置の記憶デバイスが接続され、前記第１の記憶制御装置に接続された上位装置のリクエストに応じて、前記第１の記憶制御装置が前記２の記憶制御装置の前記記憶デバイスにデータをアクセスできるように構成された記憶制御システムであって、
前記第１の記憶制御装置は、前記上位装置と前記第２の記憶制御装置の記憶デバイスとの間のデータの授受を制御するコントローラと、前記データを一時記憶するキャッシュメモリと、を備え、
前記コントローラは、前記記憶デバイスが前記第１の記憶制御装置に接続された際、前記記憶デバイスの特性に応じて、この記憶デバイスに対する、前記キャッシュメモリ上の記憶容量の閾値を設定し、前記閾値と、前記記憶デバイスの前記キャッシュメモリ上の使用容量とを比較し、前記使用容量が前記閾値を越える場合に、前記キャッシュメモリを使用せずに、前記上位装置からのリクエストに応じて、前記データを前記記憶デバイスに書き込むライトスルー動作を実行する、記憶制御システム。
【請求項１７】
第１の記憶制御装置に第２の記憶制御装置の記憶デバイスを接続し、前記第１の記憶制御装置に接続された上位装置のリクエストに応じて、前記第１の記憶制御装置が前記２の記憶制御装置の前記記憶デバイスにデータを書き込めるようにした記憶制御方法であって、
前記上位装置と前記第２の記憶制御装置の記憶デバイスとの間のデータの授受を制御するステップと、
前記第１の記憶制御装置のキャッシュメモリに前記データを一時記憶するステップと、
前記記憶デバイスの特性に応じて、この記憶デバイスに対する、前記キャッシュメモリ上の記憶容量の閾値を設定するステップと、
を備えてなる、記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータが接続され、当該ホストコンピュータとの間で記憶データの通信を行う記憶制御装置を備えてなる、記憶制御システムに関するものである。
【背景技術】
【０００２】
例えば、データセンタ等のような大規模なデータを取り扱うデータベースシステムでは、ホストコンピュータとは別に構成された記憶制御システムを用いてデータを管理する。この記憶制御システムは、例えば、ディスクアレイ装置を備えて構成される。ディスクアレイ装置は、多数の記憶デバイスをアレイ状に配設して構成されるもので、例えば、RAID（Redundant Array of Independent Inexpensive Disks）に基づいて構築されている。記憶デバイス群が提供する物理的な記憶領域上には少なくとも１つ以上の論理的な記憶領域である論理ボリュームが形成され、この論理ボリュームが、上位装置としてのホストコンピュータ（より詳しくは、ホストコンピュータ上で稼働するデータベースプログラム）に提供される。ホストコンピュータは、所定のコマンドを送信することにより、論理ボリュームに対してデータの書込み、論理ボリュームからデータの読み出しができる。
【０００３】
記憶制御装置に第２の記憶制御装置を外部から接続して、記憶制御システムの性能を向上することが提案されている(特許文献１)。この場合、第１の記憶制御装置の記憶領域に第２の記憶制御装置の記憶領域を関連させることにより、第１の記憶制御装置は第２の記憶制御装置の記録領域をあたかも自己の記憶領域であるかのように扱うことができる。そのために、第１の記憶制御装置に他の第２の記憶制御装置を外部から接続する場合、第１の記憶制御装置の記憶領域を第２の記憶制御装置の記憶領域に対応付けるために、仮想的に新たな記憶領域(仮想論理ボリューム)を第１の記憶領域に設定する。第１の記憶制御装置の記憶領域と第２の記憶制御装置の記憶領域とは、仮想論理ボリュームを介してデータの交換が可能になる。なお、特許文献２には、システムの稼動中にデータの破壊や入出力障害を回避して、例えば、ディスクアレイスイッチ群の構成情報を変更する記憶制御システムを提供するために、上位装置から記憶制御システムが受け取る入出力の処理を一時保留させる記憶制御システムが開示されている。
【特許文献１】特開２００５−１１５５０６号公報
【特許文献２】特開２００５−１０７６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記特許文献１に記載の記憶制御装置において、上位装置からのライト命令を受けて、第１の記憶制御装置が第２の記憶制御装置の論理ボリュームデータを書き込む場合、第１の記憶制御装置は、自身のキャッシュメモリにライトデータを一旦格納し、これを第２の記憶制御装置の記憶デバイスに格納する。ここで、第２の記憶装置の記憶デバイス(外部記憶デバイス)の応答性が悪い場合や外部記憶デバイスに対する通信障害等が発生した場合、第１の記憶制御装置が外部記憶デバイスにデータの書き込みを完了するまでの必要時間が長くなり、その間、キャッシュメモリにダーティデータが滞留して、新たなデータを格納すべき記憶容量が圧迫される。すると、コントローラが他の記憶デバイスに新たなデータを格納することができなくなり、他の記憶デバイスに影響を与える。なお、特許文献２も、記憶制御装置のキャッシュメモリにダーティデータが堆積して、キャッシュメモリへ新たなデータが記憶できないことの改良に関して開示していない。
【０００５】
本発明の目的は、このような課題を解決するために、記憶制御装置のコントローラの前記外部記憶制御装置の外部記憶デバイスに対するアクセス性能が良くない場合でも、キャッシュメモリの容量が圧迫されることを未然に防ぐことができる、記憶制御システムを提供することにある。本発明の他の目的は、キャッシュメモリの容量が圧迫されるおそれを特定して、記憶制御装置のコントローラが外部記憶デバイスに新たなデータを格納することに障害発生のおそれがない記憶制御システムを提供することにある。
【課題を解決するための手段】
【０００６】
前記目的を達成するために、本発明に係る記憶制御システムは、キャッシュメモリの容量が圧迫されることにつながる、記憶デバイスの状態を検出して、キャッシュメモリに必要以上のデータが格納されないようにしたことを特徴とするものである。
【０００７】
かかる本発明の第１の態様は、第１の記憶制御装置に第２の記憶制御装置の記憶デバイスが接続され、前記第１の記憶制御装置に接続された上位装置のリクエストに応じて、前記第１の記憶制御装置が前記第２の記憶制御装置の前記記憶デバイスにデータをアクセスできるように構成された記憶制御システムであって、前記第１の記憶制御装置は、前記上位装置と前記第２の記憶制御装置の前記記憶デバイスとの間のデータの授受を制御するコントローラと、前記データを一時記憶するキャッシュメモリと、を備え、前記コントローラは、前記記憶デバイスの特性に応じて、この記憶デバイスに対する、前記キャッシュメモリ上の記憶容量の閾値を設定する、ことを特徴とするものである。
【０００８】
前記本発明の第２の態様は、第１の記憶制御装置に前記第２の記憶制御装置の記憶デバイスが接続され、前記第１の記憶制御装置に接続された上位装置のリクエストに応じて、前記第１の記憶制御装置が前記２の記憶制御装置の前記記憶デバイスにデータを書き込めるように構成された記憶制御システムであって、前記第１の記憶制御装置は、前記上位装置と前記第２の記憶制御装置の記憶デバイスとの間のデータの授受を制御するコントローラと、前記データを一時記憶するキャッシュメモリと、を備え、前記コントローラは、前記記憶デバイスが前記第１の記憶制御装置に接続された際、前記記憶デバイスの特性に応じて、この記憶デバイスに対する、前記キャッシュメモリ上の記憶容量の閾値を設定し、前記閾値と、前記記憶デバイスの前記キャッシュメモリ上の使用容量とを比較し、前記使用容量が前記閾値を越える場合に、前記キャッシュメモリを使用せずに、前記上位装置からのリクエストに応じて、前記データを前記記憶デバイスに書き込むライトスルー動作を実行する、ことを特徴とするものである。
さらに前記本発明の第３の態様は、第１の記憶制御装置に第２の記憶制御装置の記憶デバイスを接続し、前記第１の記憶制御装置に接続された上位装置のリクエストに応じて、前記第１の記憶制御装置が前記２の記憶制御装置の前記記憶デバイスにデータを書き込めるようにした記憶制御方法であって、前記上位装置と前記第２の記憶制御装置の記憶デバイスとの間のデータの授受を制御するステップと、前記第１の記憶制御装置のキャッシュメモリに前記データを一時記憶するステップと、前記記憶デバイスの特性に応じて、この記憶デバイスに対する、前記キャッシュメモリ上の記憶容量の閾値を設定するステップと、を備えてなる、記憶制御方法であることを特徴とする。
【発明の効果】
【０００９】
以上説明したように本発明によれば、記憶制御装置のコントローラの前記外部記憶制御装置の外部記憶デバイスに対するアクセス性能が良くない場合でも、キャッシュメモリの容量が圧迫されることを未然に防ぐことができる、記憶制御システムを提供することができる。さらに本発明は、キャッシュメモリの容量が圧迫されるおそれを特定して、記憶制御装置のコントローラが外部記憶デバイスに新たなデータを格納することに障害発生のおそれがない記憶制御システムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
本発明の実施形態を以下に説明する。以下に説明する代表的な記憶制御システムは、第１の記憶制御装置に論理ボリュームを設定し、この論理ボリュームに第１の記憶制御装置の外部に存在する第２の記憶制御装置の論理ボリュームを対応付けて(マッピングして)、第１の記憶制御装置が第２の記憶制御装置の記憶領域をあたかも自分の記憶領域であるかのようにしてこれを上位装置に提供している。
【００１１】
図１は、記憶制御システムの要部の構成を示すブロック図である。上位装置としてのホスト装置１０は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。ホスト装置１０は、例えば、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、例えば、モニタディスプレイやスピーカー等の情報出力装置（図示せず）とを備えている。さらに、ホスト装置１０には、例えば、第１の記憶制御装置２０が提供する記憶領域を使用するデータベースソフトウェア等のアプリケーションプログラム１１と、通信ネットワークＣＮ１を介して第１の記憶制御装置２０にアクセスするためのアダプタ１２とが設けられている。
【００１２】
ホスト装置１０は、スイッチ回路ＳＷを備えて構成される通信ネットワークＣＮ１を介して第１の記憶制御装置２０に接続されている。通信ネットワークＣＮ１としては、例えば、ＬＡＮ、ＳＡＮ、インターネット、専用回線、公衆回線等を場合に応じて適宜用いることができる。ＬＡＮを介するデータ通信は、例えば、TCP/IP（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。ホスト装置１０がＬＡＮを介して第１の記憶制御装置２０に接続される場合、ホスト装置１０は、ファイル名を指定してファイル単位でのデータ入出力を要求する。
【００１３】
一方、ホスト装置１０がＳＡＮを介して第１の記憶制御装置２０等に接続される場合、ホスト装置１０は、ファイバチャネルプロトコルに従って、複数の記憶デバイス（ディスクドライブ）により提供される記憶領域のデータ管理単位であるブロックを単位としてデータ入出力を要求する。通信ネットワークＣＮ１がＬＡＮである場合、アダプタ１２は、例えばＬＡＮ対応のネットワークカードである。通信ネットワークＣＮ１がＳＡＮの場合、アダプタ１２は、例えばホストバスアダプタである。
【００１４】
スイッチ回路ＳＷは通信ネットワークに接続されたルータや交換機を備えて構成されている。スイッチ回路ＳＷは、第１の記憶制御装置２０のポート２１Ａ・・・２１Ｂの少なくとも一つに、第２の記憶制御装置４０のターゲットポート４１を接続できるように構成されている。第１の記憶制御装置２０は、ディスクアレイサブシステムとして構成されるものである。第１の記憶制御装置２０は、後述のように、第２の記憶制御装置４０の有する記憶資源を自己の論理ボリュームとしてホスト装置１０に提供する。
【００１５】
第１の記憶制御装置２０は、コントローラ部と記憶装置部とに大別することができ、コントローラ部は、例えば、複数のチャネルアダプタ（ＣＨＡ）２１と、複数のディスクアダプタ（ＤＫＡ）２２と、サービスプロセッサ（ＳＶＰ）２３と、キャッシュメモリ２４と、共有メモリ２５と、接続部２６とを備えている。
【００１６】
チャネルアダプタ（ＣＨＡ）２１は、ホスト装置１０との間のデータ通信を行うものである。チャネルアダプタ２１は、第１の記憶制御装置のエクスターナルポート２１Ａ、第２の記憶制御装置のターゲットポート４１を介して、第２の記憶制御装置４０の内部論理ボリュームとデータ通信を行うものである。各チャネルアダプタ２１は、それぞれマイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成されており、ホスト装置１０から受信した各種コマンドを解釈して実行する。各チャネルアダプタ２１には、それぞれを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ）が割り当てられているので、各チャネルアダプタ２１は、それぞれが個別にＮＡＳ（Network Attached Storage）として振る舞うことができるようになっている。複数のホスト装置１０が存在する場合、各チャネルアダプタ２１はホスト装置毎に設けられ、各ホスト装置１０からの要求をそれぞれ個別に受け付けることができるように構成されている。
【００１７】
各ディスクアダプタ（ＤＫＡ）２２は、記憶装置３０の記憶デバイス３１，３２との間のデータ授受を行うものである。各ディスクアダプタ２２は、記憶デバイス３１，３２に接続するための通信ポート２２Ａを備えている。また、各ディスクアダプタ２２は、マイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成されている。各ディスクアダプタ２２は、チャネルアダプタ２１がホスト装置１０から受信したデータを、ホスト装置１０からのリクエストに基づいて（書込み命令）、所定の記憶デバイス３１，３２の所定のアドレスに書込み、また、ホスト装置１０からのリクエストに基づいて（読み出し命令）、所定の記憶デバイス３１，３２の所定のアドレスからデータを読み出し、ホスト装置１０に送信させる。記憶デバイス３１，３２との間でデータ入出力を行う場合、各ディスクアダプタ２２は、論理的なアドレスを物理的なアドレスに変換する。各ディスクアダプタ２２は、記憶デバイス３１，３２がRAIDに従って管理されている場合は、RAID構成に応じたデータアクセスを行う。
【００１８】
サービスプロセッサ（ＳＶＰ）２３は、装置全体の作動を制御するものである。ＳＶＰ２３には、例えば、管理用クライアント（図示せず）が接続される。ＳＶＰ２３は、装置内の障害発生を監視して管理用クライアントに表示させたり、管理用クライアントからの指令に基づいて記憶ディスクの閉塞処理等を指示するようになっている。さらに、ＳＶＰ２３の管理用クライアントは後述のように仮想論理ボリュームを定義する処理を実行する。管理用クライアントは、例えばJAVA（登録商標）アプレット上に管理用プログラムが実装して構成されている。
【００１９】
キャッシュメモリ２４は、ホスト装置１０から受信したデータや、記憶デバイス３１，３２から読み出したデータを一時的に記憶するものである。共有メモリ２５には、第1の記憶制御装置の作動に使用するための制御情報等が格納される。また、共有メモリ２５には、ワーク領域が設定されるほか、後述するマッピングテーブルＴｍ等の各種テーブル類も格納される。また、キャッシュメモリ１３０と共有メモリ１４０とは、それぞれ別々のメモリとして構成することもできるし、同一のメモリの一部の記憶領域をキャッシュ領域として使用し、他の記憶領域を制御領域として使用することもできる。なお、記憶デバイス３１，３２のいずれか１つあるいは複数を、キャッシュ用のディスクとして使用してもよい。
【００２０】
接続部２６は、各チャネルアダプタ２１，各ディスクアダプタ２２，ＳＶＰ２３，キャッシュメモリ２４，共有メモリ２５を相互に接続させる。接続部２６は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。
【００２１】
記憶装置３０は、複数の記憶デバイス３１を備えている。記憶デバイス３１としては、例えば、ハードディスク、フレキシブルディスク、磁気テープ、半導体メモリ、光ディスク等のようなデバイスを用いることができる。また、例えば、FC（Fibre Channel）ディスクやSATA（Serial AT Attachment）ディスク等のように、異種類のディスクを記憶装置３０内に混在させることもできる。記憶装置３０内に点線で示される記憶デバイス３２は、第２の記憶制御装置４０の有する記憶デバイス４２を第１の記憶制御装置２０側に取り込んだ状態を示すものである。即ち、第１の記憶制御装置２０から見て外部に存在する記憶デバイス４２を、第１の記憶制御装置２０の内部記憶デバイスかのように認識できるようにし、ホスト装置１０に外部記憶デバイス４２の記憶資源を提供する。このことは、例えば後述のように、第1の記憶制御装置２０内の中間論理記憶領域である仮想論理ボリュームに第２の記憶制御装置４０の論理ボリュームをマッピングすることにより可能になる。キャッシュメモリ２４の記憶空間を利用して、仮想論理ボリュームが構築される。第1の記憶制御装置２０に形成された仮想論理ボリュームは、第1の記憶制御装置２０内の実論理ボリュームとともにホスト装置１０に認識される。
【００２２】
第２の記憶制御装置４０は、通信ポート（ターゲットポート）４１と記憶デバイス４２とを備えている。このほか、チャネルアダプタやディスクアダプタ等を備えることもできる。第２の記憶制御装置４０は、スイッチ回路ＳＷを介して第１の記憶制御装置２０に接続されており、第２の記憶制御装置４０の記憶デバイス４２は、第１の記憶制御装置２０の内部記憶デバイスとして扱われるようになっている。スイッチ回路ＳＷには複数の外部記憶制御装置４０Ａを接続可能である。スイッチ回路ＳＷを介さなくても、直接接続も可能である。
【００２３】
続いて図２について説明する。図２は、第１の記憶制御装置２０及び第２の記憶制御装置４０の、記憶制御に関する論理的な構造の一例を示す模式図である。まず、第１の記憶制御装置の構成から説明する。第１の記憶制御装置の記憶構造は、物理的記憶階層と論理的記憶階層とに大別することができる。物理的記憶階層は、物理的なディスクであるＰＤＥＶ（Physical Device）１６１により構成される。ＰＤＥＶは、ディスクドライブに該当する。
【００２４】
論理的記憶階層は、複数の（例えば２種類の）階層から構成することができる。一つの論理的階層は、ＶＤＥＶ（Virtual Device）１６２と、ＶＤＥＶ１６２のように扱われる仮想的なＶＤＥＶ（以下、「Ｖ−ＶＯＬ」とも呼ぶ）１６３とから構成可能である。他の一つの論理的階層は、ＬＤＥＶ（Logical Device）１６４から構成することができる。
【００２５】
ＶＤＥＶ１６２は、例えば、４個１組（３Ｄ＋１Ｐ）、８個１組（７Ｄ＋１Ｐ）等のような所定数のＰＤＥＶ１６１をグループ化して構成される。グループに属する各ＰＤＥＶ１６１がそれぞれ提供する記憶領域が集合して一つのＲＡＩＤ記憶領域が形成されている。このＲＡＩＤ記憶領域がＶＤＥＶ１６２となる。
【００２６】
VDEV１６２が物理的な記憶領域上に構築されるのと対照的に、Ｖ−ＶＯＬ１６３は、物理的な記憶領域を必要としない仮想的な中間記憶デバイスである。Ｖ−ＶＯＬ１６３は、物理的な記憶領域に直接関係づけられるものではなく、第２の記憶制御装置４１のＬＵ（Logical Unit）２５０をマッピングするための受け皿となる仮想的な存在である。
【００２７】
ＬＤＥＶ１６４は、ＶＤＥＶ１６２またはＶ−ＶＯＬ１６３上に、それぞれ少なくとも一つ以上設けることができる。ＬＤＥＶ１６４は、例えば、ＶＤＥＶ１６２を固定長で分割することにより構成することができる。ホスト１０がオープン系ホストの場合、ＬＤＥＶ１６４がＬＵ１６５にマッピングされることにより、ホスト１０は、ＬＤＥＶ１６４を一つの物理的なディスクとして認識する。オープン系のホストは、ＬＵＮ（Logical Unit Number ）や論理ブロックアドレスを指定することにより、所望のＬＤＥＶ１６４にアクセスする。なお、メインフレーム系ホストの場合は、ＬＤＥＶ１６４を直接認識する。
【００２８】
ＬＵ１６５は、ＳＣＳＩの論理ユニットとして認識可能なデバイスである。各ＬＵ１６５は、ターゲットポート２１Ｂを介してホスト１０に接続される。各ＬＵ１６５には、少なくとも一つ以上のＬＤＥＶ１６４をそれぞれ関連付けることができる。一つのＬＵ１６５に複数のＬＤＥＶ１６４を関連付けることにより、ＬＵサイズを仮想的に拡張することもできる。
さて、第１の記憶制御装置２０の外部接続用のエクスターナルポート（External Port）２１Ａには、既述の通りスイッチ回路ＳＷを介して第２ストレージ装置４０のターゲットポート４１又は第1の記憶制御装置２０のターゲットポート２１Ｂが接続可能である。
【００２９】
第２の記憶制御装置４０は、複数のＰＤＥＶ２２０と、ＰＤＥＶ２２０の提供する記憶領域上に設定されたＶＤＥＶ２３０と、ＶＤＥＶ２３０上に少なくとも一つ以上設定可能なＬＤＥＶ２４０とを備えている。各ＬＤＥＶ２４０は、ＬＵ２５０にそれぞれ関連付けられている。
【００３０】
そして、本実施形態では、第２の記憶制御装置４０のＬＵ２５０（即ち、ＬＤＥＶ２４０）は、仮想的な中間記憶デバイスである仮想論理ボリュームＶ−ＶＯＬ１６３にマッピングされており、第１の記憶制御装置２０の内部論理ボリュームとして取り扱われる。
【００３１】
例えば、第２の記憶制御装置４０の「ＬＤＥＶ１」，「ＬＤＥＶ２」は、「ＬＵ１」，「ＬＵ２」を介して、第１の記憶制御装置２０の「Ｖ−ＶＯＬ１」，「Ｖ−ＶＯＬ２」にそれぞれマッピングされている。そして、「Ｖ−ＶＯＬ１」，「Ｖ−ＶＯＬ２」は、それぞれ「ＬＤＥＶ３」，「ＬＤＥＶ４」にマッピングされ、「ＬＵ３」，「ＬＵ４」を介して、利用可能となっている。
【００３２】
なお、ＶＤＥＶ１６２，Ｖ−ＶＯＬ１６３は、ＲＡＩＤ構成を適用することができる。即ち、１つのディスクドライブ１６１を複数のＶＤＥＶ１６２，Ｖ−ＶＯＬ１６３に割り当てることもできるし（スライシング）、複数のディスクドライブ１６１から１つのＶＤＥＶ１６２，Ｖ−ＶＯＬ１６３を形成することもできる（ストライピング）。
【００３３】
そして、第１の記憶制御装置２０の「ＬＤＥＶ１」又は「ＬＤＥＶ２」が内部論理ボリューム１９０に該当する。第１の記憶制御装置２０の「ＬＤＥＶ３」または「ＬＤＥＶ４」が仮想論理ボリューム１９１に該当する。第２の記憶制御装置４０の「ＬＤＥＶ１」または「ＬＤＥＶ２」が外部論理ボリューム２６０に該当する。内部論理ボリューム１９０は、第１の記憶制御装置１内に設けられた物理的な記憶デバイス（例えば、ディスクドライブ等）に基づいて設けられるものである。仮想ボリューム１９１は、仮想的な存在であり、データを記憶する実体は、第２の記憶制御装置４０内に存在する。即ち、第１の記憶制御装置２０が有する記憶階層の所定の層に、第２の記憶制御装置４０の有する外部ボリューム２６０がマッピングされるように、仮想論理ボリューム１９１が構築されている。
【００３４】
図１によれば、第１の記憶制御装置２０のＣＨＡ２１は、エクスターナルポート２１Ａから参照できるボリュームを外部デバイスとして認識し、この外部記憶デバイスにマッピングされる既述の仮想論理ボリュームを第１の記憶制御装置２０内に定義する。この定義動作は、既述のＳＶＰ２３の管理クライアントである、例えばＪＡＶＡ（登録商標）アプレットによって実行される。この定義情報はマッピングテーブルＴｍとして共有メモリ２５上に置かれる。図２の符号３００に示すように、第１の記憶制御装置の内部論理ボリューム１９０に仮想論理ボリュームをマッピングすることができない。
【００３５】
次に、仮想論理ボリュームを第１の記憶制御装置２０に設定するための動作について説明する。図３はこの設定動作のフローを示す。管理クライアント上のＪＡＶＡ（登録商標）アプレットは、ＳＶＰにエクスターナルポート２１Ａ（図１）から参照できる内部論理ボリューム情報取得(ディスカバリー)をリクエストする（Ｓ１）。このリクエストを受けたＳＶＰは、第１の記憶制御装置のＣＨＡ２１（図１）に、ディスカバリーの実行を指令する（Ｓ２）。ＣＨＡは共有メモリ２５を参照してスイッチ回路ＳＷのＩＰアドレスを入手してエクスターナルポート２１Ａを介してスイッチ回路ＳＷにアクセスし、このスイッチ回路から参照できる全てのボリュームの情報を取得する。すなわち、ＣＨＡは自己の筐体の内部論理ボリュームか他の記憶制御装置の内部論理ボリュームかを区別することなく、エクスターナルポート２１Ａに接続可能な内部論理ボリュームのディスカバリーを実行する（Ｓ３）。図１に示すように、ＣＨＡ２１がエクスターナルポート２１Ａに接続されるスイッチ回路ＳＷを介して参照できるボリュームは、第１の記憶制御装置２０の論理ボリュームと第２の記憶制御装置４０の論理ボリュームである。
【００３６】
次いで、第１の記憶制御装置２０のＣＨＡ２１及び第２の記憶制御装置４０のＣＨＡ（図示せず）は、それぞれの共有メモリを参照して、それぞれの内部論理ボリュームの特性データを取得する（Ｓ４）。この特性データを受けたＣＨＡ２１はＳＶＰ３２を介して管理クライアントのＪＡＶＡ（登録商標）アプレットに特性データを送信する（Ｓ５、Ｓ６）。ＪＡＶＡ（登録商標）アプレット上には、特性データ中の「ストレージのベンダー名、製品型名、製造番号」等の情報からディスカバリーによって参照された複数の内部論理ボリュームのそれぞれについて、抽出された内部論理ボリュームが属する筐体が、ＣＨＡ２１が属する自己の記憶制御装置か或いは外部記憶制御装置かを判断するストレージ管理用アプリケーションが実装されている。
【００３７】
この管理用アプリケーションは、ディスカバリーによって抽出された複数の内部論理ボリュームについて、既述の仮想論理ボリュームに対する候補として良いか否かのフィルタリングを行うモジュールを備えている。管理用アプリケーションは、このフィルタリングモジュールによって複数の論理ボリュームについての各抽出情報をフィルタリング（Ｓ７）し、合致した条件の論理ボリュームについて仮想論理ボリュームのマッピング先の候補群として画面表示処理が行われる。
【００３８】
本実施形態では、既述のとおり、第１の記憶制御装置２０の内部論理ボリュームが、仮想ボリュームがマッピングされるボリュームとしての候補群として表示されないように管理用アプリケーションがプログラムされている。次いで、管理用クライアントはＳＶＰに仮想論理ボリュームの定義処理の実行をリクエストする（Ｓ８、Ｓ９）。ＳＶＰはＣＨＡに仮想論理ボリュームの定義処理、すなわち、既述のマッピングテーブル作成の処理動作を実行させ（Ｓ１０）、その処理結果を受けてこれを管理用クライアントに送る（Ｓ１１，Ｓ１２）。管理用クライアントのユーザは自筺体（第１の記憶制御装置２０）の内部論理ボリュームが自筺体内の仮想論理ボリュームのマッピング先として表示されないので、自筺体の内部論理ボリュームに対して仮想論理ボリュームを設定することができない。
【００３９】
したがって、ホスト装置１０から仮想論理ボリュームへのデータ更新要求が実論理ボリュームに影響し、実論理ボリュームのデータ内容が、実論理ボリュームへのデータ更新がないにもかかわらず、更新されるという不都合を避けることができる。なお、ＳＶＰ及び管理用クライアントによって、請求項記載の仮想論理ボリューム設定制御コントローラが実現される。この設定制御処理はＣＨＡ或いはＤＫＡのプロセッサによっても実現可能である。
【００４０】
なお、フィルタリング条件は管理用クライアントによって適宜変更可能である。また、管理用クライアントはフィルタリング条件を解除して、ディスカバリーによって抽出された第１の記憶制御装置のエクスターナルポートにパスが形成されている全ての論理ボリュームを画面表示することができる。
【００４１】
ディスカバリーは、第１の記憶制御装置の電源投入時、ホストが第１の記憶制御装置にアクセスした時、所定の時刻など適宜実行される。ディスカバリーの結果得られた論理ボリュームの情報は、ディスカバリーの都度共有メモリに貯えられる。共有メモリの記憶資源の効率的な利用の観点から、過去のディスカバリー情報をクリアして再度ディスカバリーを実行するソフトウエアモジュールが管理用クライアント上に存在する。管理用クライアントはディスカバリーの結果得られた論理ボリュームの特徴情報を、共有メモリに記憶された参照情報と比較することにより、自筐体のボリュームか他の筐体(第２以降の記憶制御装置)かを判断することができる。
【００４２】
次に、仮想論理ボリュームの定義処理について詳細を説明する。図４は、既述のマッピングテーブルＴｍの構造の一例である。マッピングテーブルＴｍは、例えば、ＶＤＥＶをそれぞれ識別するためのＶＤＥＶ番号と外部の記憶デバイスの情報とをそれぞれ対応付けることにより、構成ができる。外部デバイス情報としては、例えば、デバイス識別情報と、記憶デバイスの記憶容量と、デバイスの種別を示す情報と（例えば、テープ系デバイスかディスク系デバイスか等）、記憶デバイスへのパス情報とを含んで構成することができる。また、パス情報は、各通信ポート(図１の２１Ａ,２１Ｂ)に固有の識別情報（ＷＷＮ）と、図２のＬＵを識別するためのＬＵ番号とを含んで構成できる。
【００４３】
なお、図４中に示すデバイス識別情報やＷＷＮ等は、説明の便宜上の値であって特に意味はない。また、図４中の下側に示すＶＤＥＶ番号「３」のＶＤＥＶは、３個のパス情報が対応付けられている。即ち、このＶＤＥＶ（＃３）にマッピングされる外部記憶デバイス(図１の４２)は、その内部に３つの経路を有する交代パス構造を備えているが、ＶＤＥＶには、この交代パス構造を認識してマッピングされている。これら３つの経路のいずれを通っても同一の記憶領域にアクセスできることが判明しているため、いずれか１つまたは２つの経路に障害等が発生した場合でも、残りの正常な経路を介して所望のデータにアクセスできる。図４に示すようなマッピングテーブルＴｍを採用することにより、第１の記憶制御装置２０内の１つ以上のＶＤＥＶに対し、１つまたは複数の外部の記憶デバイス４２をマッピングすることができる。
【００４４】
次に、図５を参照して、外部の記憶デバイス４２をＶＤＥＶ１０１にマッピングする方法の一例を説明する。図５は、マッピング時に、第１の記憶制御装置２０と第２の記憶制御装置４０との間で行われる処理の要部を示すタイムチャートである。まず、第１の記憶制御装置２０は、チャネルアダプタ２１のエクスターナルポート（２１Ａ）からスイッチ回路ＳＷを介して、第２の記憶制御装置４０にログインする（Ｓ１）。第２の記憶制御装置４０が、第１の記憶制御装置２０のログインに対して応答を返すことにより、ログインが完了する（Ｓ２）。次に、第１の記憶制御装置２０は、例えば、ＳＣＳＩ（Small Computer System Interface）規格で定められている照会コマンド（inquiryコマンド）を、第２の記憶制御装置４０に送信し、第２の記憶制御装置４０の有する記憶デバイス４２の詳細について応答を求める（Ｓ３）。これは既述のディスカバリーの動作と同じである。
【００４５】
照会コマンドは、照会先の装置の種類及び構成を明らかにするために用いられるもので、照会先装置の有する階層を透過してその物理的構造を把握することができる。照会コマンドを使用することにより、第１の記憶制御装置２０は、例えば、装置名、デバイスタイプ（ＦｃドライブかＡＴＡドライブかなど）、製造番号（プロダクトＩＤ）、ＬＤＥＶ番号、各種バージョン情報、ベンダＩＤ等の情報を第２の記憶制御装置４０から取得できる（Ｓ４）。第２の記憶制御装置４０は、問合わされた情報を第１の記憶制御装置２０に送信し、応答する（Ｓ５）。ディスカバリーで抽出された情報は共有メモリに保存されている。ＣＨＡはこの保存された情報を利用することによってＳ３〜Ｓ５のステップを省略しても良い。
【００４６】
第１の記憶制御装置２０は、第２の記憶制御装置４０から取得した情報を、マッピングテーブルＴｍの所定箇所に登録する（Ｓ６）。次に、第１の記憶制御装置２０は、第２の記憶制御装置４０から記憶デバイス４２の記憶容量を読み出す（Ｓ７）。第２の記憶制御装置４０は、第１の記憶制御装置２０からの問合せに対して、記憶デバイス４２の記憶容量を返信し（Ｓ８）、応答を返す（Ｓ９）。第１の記憶制御装置２０は、記憶デバイス４２の記憶容量をマッピングテーブルＴｍの所定箇所に登録する（Ｓ１０）。
【００４７】
以上の処理を行うことにより、マッピングテーブルＴｍを構築できる。第１の記憶制御装置２０のＶＤＥＶにマッピングされた外部の記憶デバイス４２（外部ＬＵＮ、即ち外部のＬＤＥＶ）との間でデータの入出力を行う場合は、後述する他のテーブルを参照してアドレス変換等を行う。
【００４８】
図６〜図８を参照して、第１の記憶制御装置２０と第２の記憶制御装置４０との間のデータ入出力について説明する。最初に、データを書き込む場合について、図６及び図７に基づいて説明する。図６は、データ書込み時の処理を示す模式図である。図７は、図６中の処理の流れを各種テーブルとの関係で示す説明図である。
【００４９】
ホスト装置１０は、第１の記憶制御装置２０が提供する論理ボリューム（ＬＤＥＶ１０２）にデータを書き込むことができる。例えば、ＳＡＮの中に仮想的なＳＡＮサブネットを設定するゾーニングや、アクセス可能なＬＵＮのリストをホスト装置１０が保持するＬＵＮマスキングという手法により、ホスト装置１０を特定のＬＤＥＶ１０２に対してのみアクセスさせるように設定できる。
【００５０】
ホスト装置１０がデータを書き込もうとするＬＤＥＶ１０２が、ＶＤＥＶ１０１を介して内部の記憶デバイスである記憶デバイス３１に接続されている場合、通常の処理によってデータが書き込まれる。即ち、ホスト装置１０からのデータは、いったんキャッシュメモリ２４に格納され、キャッシュメモリ２４からディスクアダプタ２２を介して、所定の記憶デバイス３１の所定アドレスに格納される。この際、ディスクアダプタ２２は、論理的なアドレスを物理的なアドレスに変換する。また、ＲＡＩＤ構成の場合、同一のデータが複数の記憶デバイス３１に記憶等される。
【００５１】
これに対し、ホスト装置１０が書き込もうとするＬＤＥＶ１０２が、ＶＤＥＶ１０１を介して外部の記憶デバイス４２に接続されている場合、図６に示すような流れでデータが書き込まれる。図６（ａ）は記憶階層を中心に示す流れ図であり、図６（ｂ）はキャッシュメモリ２４の使われ方を中心に示す流れ図である。
【００５２】
ホスト装置１０は、書込み先のＬＤＥＶ１０２を特定するＬＤＥＶ番号とこのＬＤＥＶ１０２にアクセスするための通信ポート２１Ａを特定するＷＷＮとを明示して、書込みコマンド（Write）を発行する（Ｓ２１）。第１の記憶制御装置２０（ＣＨＡのプロセッサ）は、ホスト装置１０からの書込みコマンドを受信すると、第２の記憶制御装置４０に送信するための書込みコマンドを生成し、第２の記憶制御装置４０に送信する（Ｓ２２）。第１の記憶制御装置２０は、ホスト装置１０から受信した書込みコマンド中の書込み先アドレス情報等を、外部ＬＤＥＶ４３に合わせて変更することにより、新たな書込みコマンドを生成する。
【００５３】
次に、ホスト装置１０は、書き込むべきデータを第１の記憶制御装置４０に送信する（Ｓ２３）。第１の記憶制御装置２０に受信されたデータは、ＬＤＥＶ１０２からＶＤＥＶ１０１を介して（Ｓ２４）、外部のＬＤＥＶ４３に転送される（Ｓ２６）。ここで、第１の記憶制御装置２０は、通常、ホスト装置１０からのデータをキャッシュメモリ２４に格納した時点で、ホスト装置１０に対し書込み完了の応答（Good）を返す（Ｓ２５）。第２の記憶制御装置４０は、第１の記憶制御装置２０からデータを受信した時点で（あるいは記憶デバイス４２に書込みを終えた時点で）、書込み完了報告を第１の記憶制御装置２０に送信する  （Ｓ２７）。即ち、第１の記憶制御装置２０がホスト装置１０に対して書込み完了を報告する時期（Ｓ２５）と、実際にデータが記憶デバイス４２に記憶される時期とは相違する（非同期方式）。従って、ホスト装置１０は、実際にデータが記憶デバイス４２に格納される前にデータ書込み処理から解放され、次のコマンドを発行するなど、別の処理を行うことができる。
【００５４】
図６（ｂ）のように、キャッシュメモリ２４には、多数のサブブロック２４Ａが設けられている。第１の記憶制御装置２０は、ホスト装置１０から指定された論理ブロックアドレスをサブブロックのアドレスに変換し、キャッシュメモリ２４の所定箇所にデータを格納する（Ｓ２４）。
【００５５】
図７を参照して、各種テーブルを利用してデータが変換される様子を説明する。図７の上部に示すように、ホスト装置１０は、所定の通信ポート２１Ａに対し、ＬＵＮ番号（ＬＵＮ＃）及び論理ブロックアドレス（ＬＢＡ）を指定してデータを送信する。第１の記憶制御装置２０は、ＬＤＥＶ１０２用に入力されたデータ（ＬＵＮ＃＋ＬＢＡ）を、図７（ａ）に示す第１の変換テーブルＴ１に基づいて、ＶＤＥＶ１０１用のデータに変換する。
【００５６】
第１の変換テーブルＴ１は、内部のＬＵＮ１０３を指定するデータをＶＤＥＶ１０１用データに変換するための、ＬＵＮ−ＬＤＥＶ−ＶＤＥＶ変換テーブルである。このテーブルＴ１は、例えば、ＬＵＮ番号（ＬＵＮ＃）と、そのＬＵＮ１０３に対応するＬＤＥＶ１０２の番号（ＬＤＥＶ＃）及び最大スロット数と、ＬＤＥＶ１０２に対応するＶＤＥＶ１０１の番号（ＶＤＥＶ＃）及び最大スロット数等を対応付けることにより構成される。このテーブルＴ１を参照することにより、ホスト装置１０からのデータ（ＬＵＮ＃＋ＬＢＡ）は、ＶＤＥＶ１０１用のデータ（ＶＤＥＶ＃＋ＳＬＯＴ＃＋ＳＵＢＢＬＯＣＫ＃）に変換される。
【００５７】
次に、第１の記憶制御装置２０は、図７（ｂ）に示す第２の変換テーブルＴ２を参照して、ＶＤＥＶ１０１用のデータを、第２の記憶制御装置４０の外部ＬＵＮ（ＬＤＥＶ）用に送信して記憶させるためのデータに変換する。第２の変換テーブルＴ２には、例えば、ＶＤＥＶ１０１の番号（ＶＤＥＶ＃）と、そのＶＤＥＶ１０１からのデータを第２の記憶制御装置４０に送信するためのイニシエータポートの番号と、データ転送先の通信ポート４１を特定するためのＷＷＮと、その通信ポートを介してアクセス可能なＬＵＮ番号とが対応付けられている。この第２の変換テーブルＴ２に基づいて、第１の記憶制御装置２０は、記憶させるべきデータの宛先情報を、イニシエータポート（ターゲットポート）番号＃＋ＷＷＮ＋ＬＵＮ＃＋ＬＢＡの形式に変換する。
【００５８】
このように宛先情報が変更されたデータは、指定されたイニシエータポートから通信ネットワークＣＮ１を介して、指定された通信ポート４１に到達する。そして、データは、指定されたＬＵＮ４３でアクセス可能なＬＤＥＶの所定の場所に格納される。ＬＤＥＶは、複数の記憶デバイス４２上に仮想的に構築されているので、データのアドレスは物理アドレスに変換されて、所定のディスクの所定アドレスに格納される。
【００５９】
図７（ｃ）は、別の第２の変換テーブルＴ２ａを示す。この変換テーブルＴ２ａは、外部記憶デバイス４２に由来するＶＤＥＶ１０１に、ストライプやRAIDを適用する場合に使用される。変換テーブルＴ２ａは、ＶＤＥＶ番号（ＶＤＥＶ＃）と、ストライプサイズと、RAIDレベルと、第２の記憶制御装置４０を識別するための番号（ＳＳ＃（ストレージシステム番号））と、イニシエータポート番号と、通信ポート４１のＷＷＮ及びＬＵＮ４３の番号とを対応付けることにより構成されている。
【００６０】
図８を参照して、第２の記憶制御装置４０のＬＤＥＶからデータを読み出す場合の流れを説明する。まず、ホスト装置１０は、通信ポート２１Ａを指定して第１の記憶制御装置２０にデータの読み出しコマンドを送信する（Ｓ３１）。第１の記憶制御装置２０は、読み出しコマンドを受信すると、要求されたデータを第２の記憶制御装置４０から読み出すべく、読み出しコマンドを生成する。第１の記憶制御装置２０は、生成した読み出しコマンドを第２の記憶制御装置４０に送信する（Ｓ３２）。
【００６１】
第２の記憶制御装置４０は、第１の記憶制御装置２０から受信した読み出しコマンドに応じて、要求されたデータを記憶デバイス４２から読み出して、第１の記憶制御装置２０に送信し（Ｓ３３）、正常に読み出しが完了した旨を報告する（Ｓ３５）。第１の記憶制御装置２０は、図８（ｂ）に示すように、第２の記憶制御装置４０から受信したデータを、キャッシュメモリ２４の所定の場所に格納させる（Ｓ３４）。
【００６２】
第１の記憶制御装置２０は、キャッシュメモリ２４に格納されたデータを読み出し、アドレス変換を行った後、ＬＵＮ１０３等を介してホスト装置１０にデータを送信し（Ｓ３６）、読み出し完了報告を行う（Ｓ３７）。これらデータ読み出し時の一連の処理では、図７と共に述べた変換操作が逆向きで行われる。
【００６３】
図８では、ホスト装置１０からの要求に応じて、第２の記憶制御装置４０からデータを読み出し、キャッシュメモリ２４に保存するかのように示している。しかし、これに限らず、外部のＬＤＥＶに記憶されているデータの全部または一部を、予めキャッシュメモリ２４に記憶させておくこともできる。この場合、ホスト装置１０からの読み出しコマンドに対し、直ちにキャッシュメモリ２４からデータを読み出してホスト装置１０に送信することができる。
【００６４】
図９は、第２の記憶制御装置４０の記憶デバイス４２により提供されるＬＤＥＶが、複数の経路を備えた交代パス構造を有していることを示している。即ち、各記憶デバイス４２(２２０)の上には、論理ボリュームであるＬＤＥＶ２４０が構成されており、このＬＤＥＶには、二つのアクセスデータパスを介して、第１の記憶制御装置がアクセスすることができる。一方のパスは、第１の通信ポート４１(１)からＬＵＮ２５０を介してＬＤＥＶ２４０に到達し、他方の経路は、第２の通信ポート４１(２)から別のＬＵＮ２５０を介してＬＤＥＶ２４０に到達する。したがって、いずれかのパスが障害により使用ができなくなっても、正常なパスを介して、第１の記憶制御装置は第２の記憶制御装置のＬＤＥＶにアクセスすることができる。この交代パス構造によって、第１の記憶制御装置の冗長性が向上する。
【００６５】
既述の説明において、ホスト装置が第２の記憶制御装置の論理ボリュームにデータの書き込みを行う場合には、図６の（ｂ）に示すように、第１の記憶制御装置２０は、ホスト装置１０からデータをキャッシュメモリ２４に格納した時点で、ホスト装置に対して書き込み完了の応答（Ｇｏｏｄ）を返す。この場合、第２の記憶制御装置の記憶デバイス４２（２２０）の応答性が良くない場合、すなわち、書き込みデータの外部記憶デバイス４２に対する書き込み速度が遅い場合、第２の記憶制御装置のコントローラが他の処理、例えば、第２の記憶制御装置に接続するホスト装置からの命令を実行しているなど第２の記憶制御装置がビジィ状態の時、あるいは、外部記憶デバイスに対する通信系等に障害が発生している場合には、ホスト装置に対して書き込み完了の応答が第１の記憶制御装置からホスト装置に返されているにも拘わらず、キャッシュメモリには、記憶デバイスに格納されていないダーティデータが溜まってしまうことになる。
【００６６】
すると、他の記憶デバイスに格納すべきデータに対する、キャッシュメモリ上の記憶容量が圧迫されてしまい、他の記憶デバイスに対してデータの書き込みが出来なくなる。第２の記憶制御装置は第１の記憶制御装置に対して付加的に使用される関係上、応答性が十分でない、ＡＴＡドライブ等の記憶デバイスが搭載されていることがよくある。ＦＣドライブに対してＡＴＡ、例えばｓＡＴＡドライブの応答性は劣る。さらに、第１の記憶制御装置内部のハードディスクと異なり、外部記憶デバイスと第１の記憶制御装置との間は、ケーブルで接続されているので、ケーブルの障害が発生することがある。
【００６７】
以下、説明される実施形態では、第１の記憶制御装置２０のコントローラ（ＣＨＡ２１のマイクロプロセッサ）が、第２の記憶制御装置４０の複数ある記憶デバイス４２毎に、キャッシュメモリ２４上の割り当て量(以下、これを「閾値」と呼ぶ。)を、図４のマッピングテーブルを作成する際に初期決定する。次いで、前記マイクロプロセッサは、前記閾値を各記憶デバイスの状態に基づいて変更するとともに、各記憶デバイスに対するキャッシュメモリのメモリ使用量が閾値を越えたか、これに近づいた際に、キャッシュメモリの記憶資源がダーティデータによって飽和されることを防止するための対応を実行する。この対応には複数あり、図６(Ｂ)とは異なる方式、例えばキャッシュメモリを介すること無く、マイクロプロセッサが外部記憶デバイスにデータを書き込む方式(ライトスルー)、ホスト装置からマイクロプロセッサに書き込み命令が発行されないか、書き込み命令の発行頻度を低減させることがある。
【００６８】
図１０は、前記閾値を決定するための、マイクロプロセッサによって実行される、外部記憶制御装置４０の新規記憶デバイス４２が第１の記憶制御装置に接続された時に実行されるフローチャートである。このフローチャートはマイクロプログラムとして、ＣＨＡ２１のローカルメモリ(図示せず。）に格納されている。このフローチャートは、外部ストレージの種類や性能などの特性によって、閾値を決定する部分１０Ａと、デバイスのタイプなどの特性によって閾値を決定する部分１０Ｂとからなる。閾値は、初期値を１０Ａ，１０Ｂに応じて変更又は修正することによって決定される。閾値はキャッシュメモリに対する使用量によって定義される。閾値は、或る特定の記憶デバイスに対する、キャッシュメモリ上の記憶容量の上限値である。
【００６９】
前記マイクロプロセッサは、第２の記憶制御装置４０の新規な記憶デバイス４２を検出した際に、図１０のフローチャートを開始する。前記マイクロプロセッサは、ステップ１０００において、第２の記憶制御装置が、記憶制御処理速度が高いハイエンドクラスか、そうではないミドルレンジクラス以下かを判定する。この判定は、マイクロプロセッサが第２の記憶制御装置の装置情報を検出し、これを共有メモリ２５に予め記憶されている情報と比較することによって可能である。ステップ１０００において、第２の記憶制御装置がミドルレンジ以下の場合は、新規デバイスに対するキャッシュメモリの初期的な記憶容量(初期値)が、５％減じられてこれが閾値となる(ステップ１００２,１００４)。新規デバイスに対する初期値は、例えば、外部記憶デバイスの数に応じて、キャッシュメモリの所定領域全体の記憶容量が均等割りされることによって決定される。
【００７０】
次いで、第２の記憶制御装置がハイエンドクラスの場合には、ステップ１００６において、記憶制御装置のバージョンが検討される。記憶制御装置のバージョンが古い場合には、新規記憶デバイスに割り当てられた記憶容量が、５％減じられて閾値となる(ステップ１００８,１０１０)。ステップ１０００において、ミドルレンジ以下が判定された場合には、ステップ１００２における処理と合わさって、前記初期値が合計で１０％減じられる。
【００７１】
ステップ１０１２において、第２の記憶制御装置のキャッシュメモリの記憶容量がチェックされる。キャッシュメモリが無い場合も含めて、キャッシュメモリの記憶容量が８ＧＢｙｔｅ以下の場合には、さらに閾値が５％減じられる。ステップ１０００,ステップ１００６，及びステップ１０１２によって第２の記憶制御装置の特性が評価される。第２の記憶制御装置の特性がこれらステップで示す基準以下の場合には、外部記憶デバイスの応答性も影響を受けるため、閾値を小さい値にして、キャッシュメモリの記憶資源が飽和されることを未然に防止する。
【００７２】
次いで、ステップ１０１８ではデバイスタイプの交代モデルが検出される。交代モデルには、複数ある。その一つがＡｃｔｉｖｅ／Ａｃｔｉｖｅである。これは全パスで負荷分散を図り、全パスで同一の処理を行う特性である。他の一つがＡｃｔｉｖｅ／Ｐａｓｓｉｖｅである。これはデータの転送をしているパスに障害が発生した時に、別パスに切り替わるタイプである。さらに他の一つは、Ａｃｔｉｖｅ／Ｓｔａｎｄｂｙである。これは別パスへの切り替えにコマンドを必要とする特性である。
【００７３】
ステップ１０１８において、デバイスタイプが、Ａｃｔｉｖｅ／Ａｃｔｉｖｅの場合、閾値が１０％増加される(ステップ１０２０，１０２２)。閾値が増加されるのは、デバイスの耐障害性が高いからである。次に、記憶デバイスのＲＡＩＤタイプがチェックされる（ステップ１０２４）。ＲＡＩＤレベルが１以外の場合には、閾値が３％減じられる。
【００７４】
次に、ドライブのタイプがチェックされる（ステップ１０３０−１０３４）。ドライブタイプがｓＡＴＡあるいはテープデバイスの場合は、閾値が３％減じられる。次いで、記憶デバイスの容量がチェックされる(ステップ１０３６−１０４０)。デバイス容量が１ＴＢｙｔｅ以上である場合には閾値が５％増加される。次いで、デバイスの平均レスポンス時間がチェックされる。平均レスポンス時間が２００ｍ以上の場合には、閾値が５％減じられる。
【００７５】
以上のステップを経ることによって、閾値を決めようとしている外部記憶デバイスの特性とこれが内蔵されている外部記憶制御装置の特性によって、第１の記憶制御装置に外部記憶デバイスを接続した際に前記閾値が決定される。すなわち、第１の記憶制御装置に対して応答性が良好で、耐障害性が高い記憶デバイスである場合には、閾値が高く設定される。これを換言すると、キャッシュメモリの記憶容量が圧迫される恐れは少ないので、この外部記憶デバイスに対する、キャッシュメモリの割り当て量を多くしている。これに対して応答性及び耐障害性が劣る記憶デバイスの場合には、閾値を低く設定して、キャッシュメモリの記憶容量が圧迫される状態に至らないようにしている。
【００７６】
図１１は、第１の記憶制御装置のキャッシュメモリ２４の記憶容量のうち、例えば、ユーザによって設定される一定量（４０％）以上が、外部記憶デバイスに未反映のデータ(ダーティデータ)になっている間、ホストからデータ書き込みＩ／Ｏが発行された先の記憶デバイスが無駄にキャッシュメモリの容量を喰わないようにするフローチャートである。このフローチャートの説明に際して、出願人は、図１記載の記憶制御システムの機能ブロック図を簡略化させた図１２を利用する。但し、図１２の機能ブロック図は図１のものと一部変更している。
【００７７】
図１２において、ＣＨＡ２１（１）のターゲットポート２１Ｂ（１）には、ホスト装置が接続されている。ＣＨＡ２１（２）のイニシエータポート２１Ｂ（２）には、外部記憶制御装置４０（１）が接続されている。この外部記憶制御装置は、記憶デバイスＡと記憶デバイスＢとを第１記憶制御装置２０に、第１の記憶制御装置の内部論理ボリュームとして提供している。ＣＨＡ２１（３）のイニシエータポート２１Ｂ（３）には、さらに他の外部記憶制御装置４０（２）が接続されている。この外部記憶制御装置４０（２）は、第１の記憶制御装置に、記憶デバイスＣと記憶デバイスＤとを、内部論理ボリュームとして提供している。キャッシュメモリ２４には、各外部記憶デバイスが使用しているメモリ容量が割り当てられている。この割り当てられたメモリ容量が既述の閾値である。また、各ＣＨＡにはマイクロプロセッサが内蔵されている（ＭＰ１，ＭＰ２，ＭＰ３）。第１の記憶制御装置２０と記憶デバイスＡ，Ｂ、Ｃ、及びＤとの間には交代パスが存在する。
【００７８】
図１２を参考にしながら、図１１のフローチャートの説明を行う。第１の記憶制御装置２０のＣＨＡのマイクロプロセッサ（ＭＰ２又はＭＰ３）は、キャッシュメモリ２４全体の記憶容量の４０％以上がダーティデータで占められているかいなかのチェックを行い、これが肯定される場合には、共有メモリ２５あるいはＣＨＡのローカルメモリ(図示せず)の所定領域に専用のフラグをセットする。マイクロプロセッサはこのフラグがセットされると、図１１のフローチャートを開始し、フラグがリセットされるまで、図１１のフローチャートを繰り返し実行する。図１１のフローチャートは、各外部記憶デバイスに対して行われる。ホスト装置が外部記憶デバイスに対してＩ／Ｏを発行した際、あるいは、周期的（例えば５０ｍｓ毎）にこの記憶デバイスに対して、マイクロプロセッサは図１１のフローチャートを実行する。マイクロプロセッサは、Ｉ／Ｏが発行されていない記憶デバイスに対しては、一定時間(例えば、１時間毎)に図１１のフローチャートを実行する。
【００７９】
以下の説明は、図１２の記憶デバイスＡに対してのものである。他の外部記憶制御装置の記憶デバイスＢ、Ｃ、及びＤについても同様である。図１１のステップ１１００において、マイクロプロセッサＭＰ２は、外部記憶デバイスＡの障害情報を読み込む。この障害情報は、マイクロプロセッサＭＰ２が、外部記憶制御装置のデバイス障害を検出する毎にＣＨＡ２１（２）のローカルメモリの所定の記憶領域に障害内容及び障害の積算回数を更新記憶する。
【００８０】
図１３は、ＳＣＳＩプロトコルで規定された障害内容を示した制御テーブルである。リトライとは、マイクロプロセッサＭＰ２がキャッシュ２４のデータを外部記憶デバイスＡに書き込めない時に、マイクロプロセッサＭＰ２から記憶デバイスＡに対して発行される、再書き込みのためのコマンドをいい、ＵＳＰというバージョンの第１の記憶制御装置では、リトライ回数が６４回(障害閾値)以上で、ＢＵＳＹという障害が、外部記憶デバイスに発生したとマイクロプロセッサＭＰ２が判定する。ＵＳＰ以外のバージョンの記憶制御装置では、３２回のリトライが行われた段階で、同様な障害が記憶デバイスに発生したと判定される。その他の障害は、図１３に示す閾値を越えてリトライが発生した時に、マイクロプロセッサＭＰ２によって判定される。マイクロプロセッサは、外部記憶デバイスのエラー(リトライ)の回数が閾値を越えた場合に、当該記憶デバイスを障害記憶デバイスと判定し、このデバイスに対する１／Ｏを停止する(ステップ１１０２)。障害デバイスは、正常デバイスに交換される。
【００８１】
ステップ１１００の判定が否定されると、ステップ１１０４において、記憶デバイスのエラー回数が図１３に示す閾値の半分を超えた時には、図１０のフローチャートで決定された、キャッシュメモリ容量の閾値から５％減じられて新たな閾値とされる。これにより、エラーが起きた記憶デバイスＡに対して発生するおそれのある、キャッシュメモリ容量の圧迫を事前に回避できるようにした。ステップ１１０４が否定判定されると、ステップ１１０８に移行して、第１の記憶制御装置と外部記憶デバイスとの間に、リンクダウンなどのパス障害が発生したかを、マイクロプロセッサＭＰ２が判定する。
【００８２】
この判定が肯定された場合には、ステップ１１１０に移行して、マイクロプロセッサＭＰ２は、ホスト装置からのコマンド受付を保留する。すなわち、ホスト装置が接続するＣＨＰ２１（１）のマイクロプロセッサＭＰ１に、ホスト装置からのコマンドを受け付けることが出来ないステータスメッセージ（例えば、ファイバーチャネルプロトコルに於ける、ｂｕｓｙやｃｈｅｃｋｃｏｎｄｉｔｉｏｎ）を生成して送信する。これにより、ＣＨＰ２１（１）のマイクロプロセッサは所定時間(例えば１．０秒)、ホスト装置からのコマンドを受け付けない。したがって、この間、外部記憶デバイスＡに対するアクセスが保留されるために、その間キャッシュメモリ２４の使用が抑制され、パス障害が発生している外部記憶デバイスＡに対するダーティデータがキャッシュメモリ２４中にさらに溜まることを防止できる。このようにして、キャッシュメモリ２４に溜まっているダーティデータの記憶デバイスＡに対する書き込みが優先される。なお、コマンド受け付けを抑止する時間は、外部記憶デバイスＡに対するキャッシュメモリ上の割当容量(閾値)、ハイエンドの記憶制御装置或いはミドルレンジのそれか、といった外部記憶デバイスに関連する情報によって、マイクロプロセッサＭＰ２が決定する。
【００８３】
図１４は、コマンド受付抑止時間を規定する制御テーブルである。なお、制御テーブルは既述の共有メモリ２５の所定領域に記憶されている。図１４において、デバイスＡの閾値に対するキャッシュメモリ上の使用割合（％）と、ＭＰ２に対するデバイスＡのレスポンス時間によって定まるコマンド受付抑止時間を示している。使用割合が大きいほど、かつ、レスポンス時間が長いほどコマンド受付抑止時間が大きいことを示している。使用割合が８０％以上の場合は最大ホストタイムアウト時間未満でコマンド受付抑止時間が決定される。
【００８４】
次いで、ステップ１１１２では、さらにアクセス可能なパスがあるか否かを判定し、これが、アクセス可能パスが無いと判定された場合は、ステップ１１０２と同様に、外部記憶デバイスをエラーデバイスと決定する。ステップ１１１２でアクセス可能パスがあると判定された場合は、マイクロプロセッサは、図１５の制御テーブルに基づいて、パスモデル／冗長度(パスの本数)と、外部記憶デバイスがキャッシュメモリに占めることができる記憶容量(全体容量に対する％)で規定される値に閾値を更新する(ステップ１１１６)。
【００８５】
ステップ１１１８では、マイクロプロセッサＭＰ２は、ステップ１１１６で更新記憶された閾値と、記憶デバイスＡに対する、キャッシュメモリ上のメモリ使用量が比較され、後者が前者を超えた場合には、記憶デバイスに対する記憶方式がライトスルー方式に切り替えられる（ステップ１１２０）。ライトスルー方式とは、記憶デバイスに対するデータの書き込みが完了した段階で、マイクロプロセッサがホスト装置に、データ書き込み完了を通知する方式である。図６（ｂ）に示すように、通常はホストからのデータがキャッシュメモリ２４に書き込まれた段階（Ｓ２４）で、マイクロプロセッサは書き込み完了（Ｓ２５）をホスト装置に返す。これに対して、ライトスルー方式であると、データが外部記憶デバイス（Ｓ２６）に書き込まれた段階で、書き込み完了（Ｓ２７）をマイクロプロセッサＭＰ２がホスト装置（ＭＰ１）に送信する。これによって、キャッシュメモリ２４に、記憶デバイスＡに対するダーティデータが溜まるのを防止して、キャッシュメモリ容量の圧迫を防止する。
【００８６】
ライトスルー方式では、外部記憶デバイスＡへデータの書き込み処理を完了した時点でホスト装置に、マイクロプロセッサＭＰ２が応答を返すために、ライトスルー動作中の記憶デバイスＡに対する、マイクロプロセッサＭＰ２のアクセス性能が低下する。そこで、記憶デバイスＡに対するキャッシュメモリ２４の使用量、マイクロプロセッサＭＰ２に対する記憶デバイスの応答時間、キャッシュメモリの全体記憶量などによって、ライトスルー動作の継続時間を制限するようにしても良い。なお、ライトスルー動作時間を一定値にしても良い。ライトスルー動作の時、ホスト装置から外部記憶デバイスへのデータの格納は、キャッシュメモリを介して行われても、介さなくて行われても良い。
【００８７】
ステップ１１２２では、記憶デバイスＡに対する、一時記憶資源としてのキャッシュメモリ２４の使用量が閾値を越えていないが、閾値の９０％を超えているかが判定される。この判定が否定された場合には、キャッシュメモリを使用することを制限することなく、図１１のフローチャートを終了する。この判定が肯定判定された場合には、記憶デバイスへのコマンドやデータの流入量が多いことが考えられるので、記憶デバイスの性能に合わせた分だけ、ホスト装置からのＩ／Ｏを受け付けるように、キャッシュメモリにデータを書き込んだタイミングから少しの時間遅延させて、マイクロプロセッサＭＰ２からホスト装置にデータの書き込み完了を示すコマンドを送信する。
【００８８】
すなわち、マイクロプロセッサへホスト装置からの記憶デバイスへの書き込みコマンドによるデータ処理数（Ａ）と、記憶デバイスからマイクロプロセッサへの書き込み完了のコマンドによるデータ処理数（Ｂ）とが比較されて(ステップ１１２６)、前者が後者より多い場合には、図１６に示す制御テーブルに基づいて、遅延時間が決定される。図１６において、遅延時間は、Ａ／Ｂと１秒当たりのコマンド数（Ａ）に基づいて決定される。ＡがＢより大きい場合に、１秒当たりのコマンド数が多いほど、遅延時間は少なく設定され、Ａ／Ｂが大きいほど（例えば、５／４未満、５／４以上）、遅延時間は多く設定される。この遅延時間によって、ホストからプロセッサＭＰ２に対して、記憶デバイスに対する新たな書き込みコマンドの発行タイミングが遅れるために、その分、記憶デバイスのキャッシュメモリに対する使用量が抑えられて、キャッシュメモリ中のデータの記憶デバイスＡへの書き込みが優先される。
【００８９】
以上説明した実施形態に本発明は限定されずに、種々変形することができる。例えば、本発明が適用される記憶デバイスは、外部記憶制御装置のものに限定されず、第１の記憶制御装置の内部記憶デバイスであっても良い。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施例に係わる記憶システムの全体構成を示すブロック図である。
【図２】記憶システムの論理的構成の概要を示す模式図である。
【図３】仮想論理ボリュームの設定動作の流れを示すフローである。
【図４】マッピングテーブルの概要を示す説明図である。
【図５】マッピングテーブルを構築するための処理の流れを示すフローである。
【図６】内部ボリュームとして仮想化される外部の記憶デバイスにデータを書き込む場合の概念図である。
【図７】書込みデータのアドレス変換の様子を模式的に示す説明図である。
【図８】内部ボリュームとして仮想化される外部の記憶デバイスからデータを読み出す場合の概念図である。
【図９】交代パス構造を示すブロック図である。
【図１０】記憶デバイスに対する、キャッシュメモリ上の記憶容量の割り当て量（閾値）を決定するためのフローチャートである。
【図１１】キャッシュメモリへのコントローラのアクセス制限を実行するためのフローチャートである。
【図１２】図１の記憶制御システムを簡略化した、昨日ブロック図である。
【図１３】記憶デバイスのエラー内容を決定するための制御テーブルである。
【図１４】コマンド抑止時間を決定するための制御テーブルである。
【図１５】交代パス構造に基づく、閾値の変更度合いを示す制御テーブルである。
【図１６】コマンド応答を遅延させるための、遅延時間を決定するための制御テーブルである。論理構造が異なる、第１の記憶制御装置のボリューム間でのローカルコピーを行う、記憶制御システムの機能ブロック図である。
【符号の説明】
【００９１】
１０…ホスト装置、１１…アプリケーションプログラム、１２…アダプタ、２０…第１の記憶制御装置、２１…チャネルアダプタ、２１Ａ…通信ポート、２２…ディスクアダプタ、２２Ａ…通信ポート、２３…コントロールユニット、２４…キャッシュメモリ、２４Ａ…サブブロック、２５…共有メモリ、２６…接続部、３０…記憶装置、３１…記憶デバイス、３２…記憶デバイス（仮想化された内部記憶デバイス）、４０…第２の記憶制御装置、４１…各通信ポート、４２…各記憶デバイス、
【図１】
2007114874.tif 000003
【図２】
2007114874.tif 000004
【図３】
2007114874.tif 000005
【図４】
2007114874.tif 000006
【図５】
2007114874.tif 000007
【図６】
2007114874.tif 000008
【図７】
2007114874.tif 000009
【図８】
2007114874.tif 000010
【図９】
2007114874.tif 000011
【図１０】
2007114874.tif 000012
【図１１】
2007114874.tif 000013
【図１２】
2007114874.tif 000014
【図１３】
2007114874.tif 000015
【図１４】
2007114874.tif 000016
【図１５】
2007114874.tif 000017
【図１６】
2007114874.tif 000018