(57)【特許請求の範囲】
【請求項１】
上位装置からアクセス可能な論理ボリュームを提供する記憶デバイスと、前記上位装置からの入出力要求に応答して前記論理ボリュームとのデータの入出力を制御するデータ転送制御部、前記論理ボリュームに入出力されるデータを一時的に格納するキャッシュメモリ、及び、前記データ転送制御部を制御するとともに前記キャッシュメモリの構成を管理するプロセッサを有するコントローラとを備えるストレージシステムにおいて、
前記データ転送制御部は、
ダーティデータの生成処理の実行を抑止しながらライトアフター方式を用いて前記キャッシュメモリを経由してデータを転送し、
前記キャッシュメモリの対象領域に存在するデータであって前記論理ボリュームへの書き込みが完了していないデータとしてのダーティデータの量が規定の閾値未満となったか否かを確認することによって、前記キャッシュメモリの対象領域に対する入出力が一定未満となったか否かを確認し、
前記ダーティデータの量が規定の閾値未満となって前記キャッシュメモリの対象領域に対する入出力が一定未満となったことを契機に、前記ライトアフター方式からライトスルー方式に切り換えて前記キャッシュメモリを経由してデータを転送しながら、前記キャッシュメモリの対象領域にダーティデータが存在するか否かを確認することによって、前記キャッシュメモリの対象領域に対する入出力がなくなるまで待ち、
前記プロセッサは、
前記キャッシュメモリの対象領域に対する入出力がなくなったことを契機に、前記キャッシュメモリの対象領域に関する構成を変更する一方、前記データ転送制御部に、前記ライトスルー方式から前記ライトアフター方式に切り換えさせて、前記キャッシュメモリを経由してデータ転送を再開させる
ことを特徴とするストレージシステム。
【請求項２】
前記データ転送制御部は、前記ダーティデータの生成処理の実行を抑止する処理として、前記論理ボリュームをフォーマットする処理、強制パリティ回路による処理、及び前記論理ボリュームを提供する記憶デバイスを復旧する処理のうちの少なくとも何れかの処理を実行する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記データ転送制御部は、前記キャッシュメモリの対象領域に対する入出力が一定未満となるよう、前記ダーティデータの生成処理の実行を抑止する
ことを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記プロセッサは、
前記データ転送制御部によって前記キャッシュメモリの対象領域に対する入出力が規制された後、前記キャッシュメモリの対象領域に関する構成を変更し、
その後、前記データ転送制御部は、前記キャッシュメモリの対象領域に対する入出力の規制を解除した後、前記ライトスルー方式から前記ライトアフター方式に切り換えて、前記キャッシュメモリを経由したデータ転送を再開する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項５】
前記データ転送制御部は、
前記キャッシュメモリの対象領域に割り当てられた論理ボリュームごとに前記ダーティデータをデステージさせる
ことを特徴とする請求項１に記載のストレージシステム。
【請求項６】
前記データ転送制御部は、
前記上位装置のデータと前記キャッシュメモリのデータとを同期させて管理しており、
前記キャッシュメモリのデータを前記記憶デバイスの論理ボリュームのデータとを非同期で管理している
ことを特徴とする請求項１に記載のストレージシステム。
【請求項７】
上位装置からアクセス可能な論理ボリュームを提供する記憶デバイスと、前記上位装置からの入出力要求に応答して前記論理ボリュームとのデータの入出力を制御するデータ転送制御部、前記論理ボリュームに入出力されるデータを一時的に格納するキャッシュメモリ、及び、前記データ転送制御部を制御するとともに前記キャッシュメモリの構成を管理するプロセッサを有するコントローラとを備えるストレージシステムにおけるキャッシュメモリの構成変更方法において、
前記データ転送制御部が、ダーティデータの生成処理の実行を抑止しながらライトアフター方式を用いて前記キャッシュメモリを経由してデータを転送し、前記キャッシュメモリの対象領域に対する入出力が一定未満となったことを契機に、前記ライトアフター方式からライトスルー方式に切り換えて前記キャッシュメモリを経由してデータを転送し、前記キャッシュメモリの対象領域に対する入出力がなくなるまで待ち処理を実行する変更準備ステップと、
前記キャッシュメモリの対象領域に対する入出力がなくなったことを契機に、前記プロセッサが、前記キャッシュメモリの対象領域に関する構成を変更する構成変更ステップと、
前記データ転送制御部が、前記ライトスルー方式から前記ライトアフター方式に切り換えて、前記キャッシュメモリを経由したデータ転送を再開する復元ステップとを備え、
前記変更準備ステップは、
前記データ転送制御部が、前記キャッシュメモリの対象領域に存在するデータであって前記論理ボリュームへの書き込みが完了していないデータとしてのダーティデータの量が規定の閾値未満となったか否かを確認する第１の変更準備ステップと、
前記ダーティデータの量が規定の閾値未満となったことを契機に、前記データ転送制御部が、前記ライトアフター方式からライトスルー方式に切り換えて前記キャッシュメモリを経由してデータを転送しながら、前記キャッシュメモリの対象領域にダーティデータが存在するか否かを確認する第２の変更準備ステップとを有し、
前記構成変更ステップでは、
前記キャッシュメモリの対象領域にダーティデータが存在しなくなったことを契機に、前記プロセッサが、前記キャッシュメモリの対象領域に関する構成を変更する
ことを特徴とするストレージシステムにおけるキャッシュメモリの構成変更方法。
【請求項８】
前記変更準備ステップにおいて前記データ転送制御部が前記ダーティデータの生成処理の実行を抑止する処理は、前記論理ボリュームをフォーマットする処理、強制パリティ回路による処理、及び前記論理ボリュームを提供する記憶デバイスを復旧する処理のうちの少なくとも何れかを含む処理の実行による
ことを特徴とする請求項７に記載のストレージシステムにおけるキャッシュメモリの構成変更方法。
【請求項９】
前記変更準備ステップでは、
前記データ転送制御部が、前記キャッシュメモリの対象領域に対する入出力が一定未満となるよう、前記ダーティデータの生成処理の実行を抑止する
ことを特徴とする請求項８に記載のストレージシステムにおけるキャッシュメモリの構成変更方法。
【請求項１０】
前記構成変更ステップでは、
前記プロセッサは、
前記データ転送制御部によって前記キャッシュメモリの対象領域に対する入出力が規制された後、前記キャッシュメモリの対象領域に関する構成を変更し、
前記復元ステップでは、
前記データ転送制御部が、前記キャッシュメモリの対象領域に対する入出力の規制を解除した後、前記ライトスルー方式から前記ライトアフター方式に切り換えて、前記キャッシュメモリを経由したデータ転送を再開する
ことを特徴とする請求項７に記載のストレージシステムにおけるキャッシュメモリの構成変更方法。
【請求項１１】
前記データ転送制御部は、
前記キャッシュメモリの対象領域に割り当てられた論理ボリュームごとに前記ダーティデータをデステージさせる
ことを特徴とする請求項７に記載のストレージシステムにおけるキャッシュメモリの構成変更方法。
【請求項１２】
前記データ転送制御部は、
前記上位装置のデータと前記キャッシュメモリのデータとを同期させて管理しており、
前記キャッシュメモリのデータを前記記憶デバイスの論理ボリュームのデータとを非同期で管理している
ことを特徴とする請求項８に記載のストレージシステムにおけるキャッシュメモリの構成変更方法。
【請求項１３】
上位装置からアクセス可能な論理ボリュームを提供する記憶デバイスと、前記上位装置からの入出力要求に応答して前記論理ボリュームとのデータの入出力を制御するデータ転送制御部、前記論理ボリュームに入出力されるデータを一時的に格納するキャッシュメモリ、及び、前記データ転送制御部を制御するとともに前記キャッシュメモリの構成を管理するプロセッサを有するコントローラとを備えるストレージシステムにおけるキャッシュメモリの構成変更方法において、
前記データ転送制御部が、ダーティデータの生成処理の実行を抑止しながらライトアフター方式を用いて前記キャッシュメモリを経由してデータを転送し、前記キャッシュメモリの対象領域に存在するデータであって前記論理ボリュームへの書き込みが完了していないデータとしてのダーティデータの量が規定の閾値未満となったか否かを確認し、前記ダーティデータの量が規定の閾値未満となったことを契機として前記キャッシュメモリの対象領域をサーチし、前記キャッシュメモリの対象領域の各セグメントに、前記記憶デバイス又は前記上位装置に転送が完了していないデータとしてのダーティデータが残存していない場合には前記セグメントに印を付ける一方、前記キャッシュメモリの対象領域のセグメントに前記ダーティデータが存在する場合、前記ダーティデータを変更対象外のセグメントに複写し、前記セグメントに前記印を付けた後、前記セグメントに存在する前記ダーティデータを削除する変更準備ステップと、
前記キャッシュメモリの対象領域に前記ダーティデータが存在しなくなったことを契機に、前記プロセッサが、前記キャッシュメモリの対象領域に関する構成を変更する構成変更ステップと、
前記データ転送制御部が、前記キャッシュメモリの対象領域の各セグメントに付けられた前記印を解除し、前記キャッシュメモリを経由したデータ転送を再開する復元ステップとを備える
ことを特徴とするストレージシステムにおけるキャッシュメモリの構成変更方法。
【請求項１４】
前記構成変更ステップでは、
前記データ転送制御部が、前記キャッシュメモリの対象領域に対する入出力を規制した後、前記プロセッサが前記キャッシュメモリの対象領域に関する構成を変更し、
前記復元ステップでは、
前記データ転送制御部が、前記キャッシュメモリの対象領域に対する入出力の規制を解除した後、前記キャッシュメモリを経由したデータ転送を再開する
ことを特徴とする請求項１３に記載のストレージシステムにおけるキャッシュメモリの構成変更方法。
【請求項１５】
前記変更準備ステップでは、
前記データ転送制御部が、前記キャッシュメモリの全領域を複数に分けた１つの単位領域ごとに、前記単位領域をサーチし、前記単位領域の各セグメントに前記ダーティデータが残存していない場合には前記セグメントに印を付ける一方、前記単位領域のセグメントに前記ダーティデータが存在する場合には、前記ダーティデータを、現在処理している単位領域とは別の単位領域に複写し、前記単位領域に前記印を付けた後、前記単位領域に存在する前記ダーティデータを削除する
ことを特徴とする請求項１３に記載のストレージシステムにおけるキャッシュメモリの構成変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムにおけるキャッシュの構成変更方法に関し、特に、キャッシュメモリの構成を変更する技術に関するストレージシステムに適用して好適なものである。
【背景技術】
【０００２】
近年、サーバ毎に分散配置されていたストレージを一箇所に集約し、ＳＡＮ（Storage Area Network）等のストレージ専用ネットワークを介してサーバ群に接続するストレージコンソリデーションが普及している。ストレージコンソリデーションの運用形態として、複数のアプリケーションプログラム又はコンテンツによるストレージシステムの共用が増えてきている。ストレージシステムは、例えばディスクアレイ装置を備えている。ディスクアレイ装置は、多数のディスクドライブをアレイ状に配設して構成されるものであり、例えば、ＲＡＩＤ（Redundant Array of Independent Inexpensive Disks）に基づいて構築されている。ディスクドライブ群が提供する物理的な記憶領域上には、少なくとも１つの論理ボリュームが形成されている。上位装置は、ストレージシステムに対してライトコマンド又はリードコマンドを発行することにより、論理ボリュームに対するデータの読み書きを行うことができる。
【０００３】
従来のストレージシステムには、ディスクドライブとの間におけるライトデータ又はリードデータを一時的に記憶するためのキャッシュメモリが実装されており、上位装置に対するＩ／Ｏ処理の高速化を実現している。例えば、上位装置からディスクドライブへのライトアクセスに対しては、キャッシュメモリへのライトデータの書き込みを以ってライト処理の完了を上位装置に通知し、データが一定量蓄積された段階でデステージを行う。上位装置からのディスクドライブへのリードアクセスに対しては、リードデータがキャッシュメモリにヒットする場合は、キャッシュメモリから読み出すことにより、高速アクセスを実現する。
【０００４】
従来のストレージシステムでは、キャッシュメモリの構成を変更した場合、一旦再起動する必要があり、一般的には稼働状態のままキャッシュメモリの構成を変更することができなかった。稼働状態において可能とするには、従来のストレージシステムでは、例えば、一時的にキャッシュメモリを経由せず、そのライトデータをディスクドライブの論理ボリュームに直接書き込むことによって、稼働状態であってもキャッシュメモリの構成を変更する手法も考えられていた（例えば特許文献１明細書００７７段落参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２２７６８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のようにキャッシュメモリは、上位装置に対するＩ／Ｏ処理の高速化を実現するための構成である。従って、従来のストレージシステムにおいては、キャッシュメモリの構成を変更するのに、その作業時間にわたりキャッシュメモリを一切使用しないと、上位装置とのＩ／Ｏ処理に関する入出力性能への影響が大きくなる問題点があった。
【０００７】
本発明は以上の点を考慮してなされたもので、上位装置との入出力性能への影響を最小限に抑制しつつ稼働状態のままキャッシュメモリの構成を変更することができるストレージシステム及びストレージシステムにおけるキャッシュの構成変更方法を提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため、本発明においては、上位装置からアクセス可能な論理ボリュームを提供する記憶デバイスと、前記上位装置からの入出力要求に応答して前記論理ボリュームとのデータの入出力を制御するデータ転送制御部、前記論理ボリュームに入出力されるデータを一時的に格納するキャッシュメモリ、及び、前記データ転送制御部を制御するとともに前記キャッシュメモリの構成を管理するプロセッサを有するコントローラとを備えるストレージシステムにおいて、前記データ転送制御部は、ダーティデータの生成処理の実行を抑止しながらライトアフター方式を用いて前記キャッシュメモリを経由してデータを転送し、前記キャッシュメモリの対象領域に存在するデータであって前記論理ボリュームへの書き込みが完了していないデータとしてのダーティデータの量が規定の閾値未満となったか否かを確認することによって、前記キャッシュメモリの対象領域に対する入出力が一定未満となったか否かを確認し、前記ダーティデータの量が規定の閾値未満となって前記キャッシュメモリの対象領域に対する入出力が一定未満となったことを契機に、前記ライトアフター方式からライトスルー方式に切り換えて前記キャッシュメモリを経由してデータを転送しながら、前記キャッシュメモリの対象領域にダーティデータが存在するか否かを確認することによって、前記キャッシュメモリの対象領域に対する入出力がなくなるまで待ち、前記プロセッサは、前記キャッシュメモリの対象領域に対する入出力がなくなったことを契機に、前記キャッシュメモリの対象領域に関する構成を変更する一方、前記データ転送制御部に、前記ライトスルー方式から前記ライトアフター方式に切り換えさせて、前記キャッシュメモリを経由してデータ転送を再開させることを特徴とする。
【０００９】
また、本発明においては、上位装置からアクセス可能な論理ボリュームを提供する記憶デバイスと、前記上位装置からの入出力要求に応答して前記論理ボリュームとのデータの入出力を制御するデータ転送制御部、前記論理ボリュームに入出力されるデータを一時的に格納するキャッシュメモリ、及び、前記データ転送制御部を制御するとともに前記キャッシュメモリの構成を管理するプロセッサを有するコントローラとを備えるストレージシステムにおけるキャッシュメモリの構成変更方法において、前記データ転送制御部が、ダーティデータの生成処理の実行を抑止しながらライトアフター方式を用いて前記キャッシュメモリを経由してデータを転送し、前記キャッシュメモリの対象領域に対する入出力が一定未満となったことを契機に、前記ライトアフター方式からライトスルー方式に切り換えて前記キャッシュメモリを経由してデータを転送し、前記キャッシュメモリの対象領域に対する入出力がなくなるまで待ち処理を実行する変更準備ステップと、前記キャッシュメモリの対象領域に対する入出力がなくなったことを契機に、前記プロセッサが、前記キャッシュメモリの対象領域に関する構成を変更する構成変更ステップと、前記データ転送制御部が、前記ライトスルー方式から前記ライトアフター方式に切り換えて、前記キャッシュメモリを経由したデータ転送を再開する復元ステップとを備え、前記変更準備ステップは、前記データ転送制御部が、前記キャッシュメモリの対象領域に存在するデータであって前記論理ボリュームへの書き込みが完了していないデータとしてのダーティデータの量が規定の閾値未満となったか否かを確認する第１の変更準備ステップと、前記ダーティデータの量が規定の閾値未満となったことを契機に、前記データ転送制御部が、前記ライトアフター方式からライトスルー方式に切り換えて前記キャッシュメモリを経由してデータを転送しながら、前記キャッシュメモリの対象領域にダーティデータが存在するか否かを確認する第２の変更準備ステップとを有し、前記構成変更ステップでは、前記キャッシュメモリの対象領域にダーティデータが存在しなくなったことを契機に、前記プロセッサが、前記キャッシュメモリの対象領域に関する構成を変更することを特徴とする。
【００１０】
また、かかる課題を解決するため、本発明においては、上位装置からアクセス可能な論理ボリュームを提供する記憶デバイスと、前記上位装置からの入出力要求に応答して前記論理ボリュームとのデータの入出力を制御するデータ転送制御部、前記論理ボリュームに入出力されるデータを一時的に格納するキャッシュメモリ、及び、前記データ転送制御部を制御するとともに前記キャッシュメモリの構成を管理するプロセッサを有するコントローラとを備えるストレージシステムにおけるキャッシュメモリの構成変更方法において、前記データ転送制御部が、ダーティデータの生成処理の実行を抑止しながらライトアフター方式を用いて前記キャッシュメモリを経由してデータを転送し、前記キャッシュメモリの対象領域に存在するデータであって前記論理ボリュームへの書き込みが完了していないデータとしてのダーティデータの量が規定の閾値未満となったか否かを確認し、前記ダーティデータの量が規定の閾値未満となったことを契機として前記キャッシュメモリの対象領域をサーチし、前記キャッシュメモリの対象領域の各セグメントに、前記記憶デバイス又は前記上位装置に転送が完了していないデータとしてのダーティデータが残存していない場合には前記セグメントに印を付ける一方、前記キャッシュメモリの対象領域のセグメントに前記ダーティデータが存在する場合、前記ダーティデータを変更対象外のセグメントに複写し、前記セグメントに前記印を付けた後、前記セグメントに存在する前記ダーティデータを削除する変更準備ステップと、前記キャッシュメモリの対象領域に前記ダーティデータが存在しなくなったことを契機に、前記プロセッサが、前記キャッシュメモリの対象領域に関する構成を変更する構成変更ステップと、前記データ転送制御部が、前記キャッシュメモリの対象領域の各セグメントに付けられた前記印を解除し、前記キャッシュメモリを経由したデータ転送を再開する復元ステップとを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、上位装置との入出力性能への影響を最小限に抑制しつつ稼働状態のままキャッシュメモリの構成を変更することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態によるストレージシステムの概略構成を示すブロック図である。
【図２】コントローラの主要構成例を示すブロック図である。
【図３】デュアルコントローラによるキャッシュデータの二重書きの概要を示す図である。
【図４】ＬＵ管理テーブルのテーブル構成の一例を示す図である。
【図５】キャッシュパーティション管理テーブルのテーブル構成の一例を示す図である。
【図６】キャッシュメモリにおけるパーティション設定の一例を示す図である。
【図７】構成変更後のユーザデータ領域の構成の一例を示す図である。
【図８】構成変更前におけるホスト装置とＬＵとの対応関係を示す図である。
【図９】構成変更後におけるホスト装置とＬＵとの対応関係を示す図である。
【図１０】構成変更後のＬＵ管理テーブルのテーブル構成の一例を示す図である。
【図１１】構成変更後のキャッシュパーティション管理テーブルのテーブル構成の一例を示す図である。
【図１２】構成変更前におけるセグメントと親サブセグメント管理ブロック及び子サブセグメント管理ブロックとの対応関係を示す図である。
【図１３】構成変更後におけるセグメントと親サブセグメント管理ブロック及び子サブセグメント管理ブロックとの対応関係を示す図である。
【図１４】第１の実施の形態におけるキャッシュメモリの構成変更方法の手順の一例を示す図である。
【図１５】第２の実施の形態におけるキャッシュメモリの構成変更方法の手順の一例を示す図である。
【図１６】キャッシュメモリの記憶領域の構成を変更する前のフォーマット例を示す図である。
【図１７】キャッシュメモリの記憶領域の構成を変更したフォーマット例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面について、本発明の一実施の形態について詳述する。
【００１４】
（１）第１の実施の形態
（１−１）ストレージシステムの構成
図１は、第１の実施の形態によるストレージシステム１０の主要構成を示している。ストレージシステム１０は、通信ネットワーク５０を介して一台又は複数台の上位装置としてのホスト装置６０に接続されている。ホスト装置６０は、ストレージシステム１０の上位装置として機能する、サーバ装置、コンピュータ、ワークステーション、メインフレーム等である。ホスト装置６０には、ＯＳ（Operating System）６１上で動作する複数のアプリケーションプログラムＡＰ♯０，ＡＰ♯１，…，ＡＰ♯Ｎが動作している。ストレージシステム１０が提供する記憶資源は、複数のアプリケーションプログラムＡＰ♯０，ＡＰ♯１，…，ＡＰ♯Ｎによって共用されている。
【００１５】
通信ネットワーク５０としては、例えば、ＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、インターネット、専用回線、公衆回線等を挙げることができる。ホスト装置６０がＳＡＮを介してストレージシステム１０に接続する場合、ホスト装置６０は、ファイバチャネルプロトコルに従って、ストレージシステム１０の記憶資源のデータ管理単位であるブロックを単位としてデータ入出力を要求する。ホスト装置６０がＬＡＮを介してストレージシステム１０に接続する場合、ホスト装置６０は、ＮＦＳ（Network File System）やｉＳＣＳＩ（internet Small Computer System Interface）等のプロトコルにより、ファイル名を指定してファイル単位でのデータ入出力を要求する。ストレージシステム１０がホスト装置６０からのファイルアクセス要求を受け付けるためには、ＮＡＳ（Network Attached Storage）機能を搭載する必要がある。
【００１６】
ストレージシステム１０は、二重化されたコントローラ２０，３０を備えるデュアルコントローラ構成を採用しており、複数のアプリケーションプログラムＡＰ♯０，ＡＰ♯１，…，ＡＰ♯Ｎに提供される記憶デバイスとして、複数のディスクドライブ４０を備える。ディスクドライブ４０として、例えば、ファイバチャネル・ディスクドライブ、シリアルＡＴＡディスクドライブ、パラレルＡＴＡディスクドライブ、ＳＣＳＩディスクドライブ等の性能特性の異なる複数のディスクドライブを使用してもよく、或いは、これらのディスクドライブの中からいずれか一種類のディスクドライブを使用してもよい。ここで、性能特性とは、例えば、ディスクドライブに対するアクセス速度をいう。なお、記憶デバイスとしては、これらのディスクドライブに限らず、例えば、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等を採用してもよい。
【００１７】
コントローラ２０，３０は、複数のディスクドライブ４０をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５，６）で制御することができる。ＲＡＩＤ方式においては、例えば、複数のディスクドライブ４０が一つのＲＡＩＤグループとして管理される。ＲＡＩＤグループ上には、ホスト装置６０からのアクセス単位である複数の論理ボリュームが定義されている。即ち、ディスクドライブ４０は、ホスト装置６０からアクセス可能な論理ボリュームを提供している。各論理ボリュームには、ＬＵ番号（LUN: Logical Unit Number）と呼ばれる識別子ＬＵ♯０，ＬＵ♯１，…，ＬＵ♯Ｍが付与されている。このＬＵ番号は、キャッシュメモリ２５の記憶領域にも全領域又は複数のパーティションごとに割り当てることができる。なお、以下の説明では論理ボリュームをＬＵとも称する。
【００１８】
コントローラ２０は、ＣＰＵ２１、ＣＰＵ／ＰＣＩブリッジ２２、ローカルメモリ（図示のＬＭに相当）２３、データ転送制御部（図示のＤ−ＣＴＬに相当）２４、キャッシュメモリ（図示のＣＭに相当）２５、ホストＩ／Ｆ制御部２６、ドライブＩ／Ｆ制御部２７及びタイマ２９を備える。コントローラ２０は、タイマ２９を備えており、予め設定された時刻になると、ＣＰＵ２１がキャッシュメモリ２５の構成を変更する。
【００１９】
ホストＩ／Ｆ制御部２６は、ホスト装置６０とのインターフェースを制御するコントローラであり、例えば、ファイバチャネルプロトコルによるホスト装置６０からのブロックアクセス要求を受信する機能を有する。ドライブＩ／Ｆ制御部２７は、ディスクドライブ４０とのインターフェースを制御するコントローラであり、例えば、ディスクドライブ４０を制御するプロトコルに従って、ディスクドライブ４０へのデータ入出力要求を制御する機能を有する。
【００２０】
ＣＰＵ２１は、プロセッサの一例であり、ホスト装置６０からのデータの入出力要求に応答し、データ転送制御部２４を制御することにより、各ディスクドライブ４０とのＩ／Ｏ処理（ライトアクセス又はリードアクセス）を制御する。ＣＰＵ２１は、ストレージシステム１０におけるキャッシュメモリ２５や記憶デバイス４０の構成を管理する。ＣＰＵ２１は、例えば、キャッシュメモリ２５の構成に関するＬＵ管理テーブル及びキャッシュパーティション管理テーブルを管理している。ローカルメモリ２３には、ＣＰＵ２１のマイクロプログラムが格納されている。ＣＰＵ／ＰＣＩブリッジ２２は、ＣＰＵ２１、ローカルメモリ２２及びデータ転送制御部２４を互いに接続する。
【００２１】
キャッシュメモリ２５は、ディスクドライブ４０に書き込むためのデータ（以下、ライトデータとも称する）を一次的に格納したり、ディスクドライブ４０から読み出したデータ（以下、リードデータとも称する）を一時的に格納したりするバッファメモリである。キャッシュメモリ２５は、主電源とは別の電源によりバックアップされており、ストレージシステム１０に電源障害が発生した場合でもデータのロストを防ぐ不揮発性メモリとして構成されている。本実施の形態では、キャッシュメモリ２５に記憶されたデータをキャッシュデータとも呼んでいる。
【００２２】
データ転送制御部２４は、ＣＰＵ／ＰＣＩブリッジ２２、キャッシュメモリ２５、ホストＩ／Ｆ制御部２６、ドライブＩ／Ｆ制御部２７に接続されている。データ転送制御部２４とＣＰＵ／ＰＣＩブリッジ２２とは、ＰＣＩバス２８によって接続されている。データ転送制御部２４は、ＣＰＵ２１の制御によって、ホスト装置６０とディスクドライブ４０との間のデータ転送を制御する。
【００２３】
具体的には、ホスト装置６０からのライトアクセスがあると、データ転送制御部２４は、ホストＩ／Ｆ制御部２６を介してそのホスト装置６０から受け取ったライトデータをキャッシュメモリ２５に書き込む。その後、データ転送制御部２４は、そのライトデータをディスクドライブ４０へ非同期で書き込むために、ドライブＩ／Ｆ制御部２７へ転送する。
【００２４】
一方、ホスト装置６０からのリードアクセスがあると、データ転送制御部２４は、ドライブＩ／Ｆ制御部２７を介してディスクドライブ４０から読みとったリードデータをキャッシュメモリ２５に書き込む。その後、データ転送制御部２４は、そのリードデータをホストＩ／Ｆ制御部２６に転送する。
【００２５】
コントローラ３０は、ＣＰＵ３１、ＣＰＵ／ＰＣＩブリッジ３２、ローカルメモリ（図示のＬＭ）３３、データ転送制御部（図示のＤ−ＣＴＬ）３４、キャッシュメモリ（図示のＣＭ）３５、ホストＩ／Ｆ制御部３６及びドライブＩ／Ｆ制御部３７を備えている。コントローラ３０は、コントローラ２０とほぼ同様な構成であるため、説明を省略し、以下では、特に必要がない限り、主としてコントローラ２０について説明する。
【００２６】
各コントローラ２０，３０のデータ転送制御部２４，３４は、データバスを通じて接続されている。データ転送制御部２４，３４の間においては、一方のキャッシュメモリ２５（又は３５）に書き込まれるデータは他方のキャッシュメモリ３５（又は２５）にも二重に書き込まれるように、データ転送が行われている。また、ディスクドライブ４０がＲＡＩＤレベル５で管理される場合には、データ転送制御部２４，３４がパリティデータを演算する。
【００２７】
ストレージシステム１０には、システムを保守又は管理するための管理端末７０が接続されており、両者間では、ファイバチャネルプロトコル又はＴＣＰ／ＩＰ等の所定の通信プロトコルに基づいてデータ通信が行われる。なお、管理端末７０は、ストレージシステム１０に内蔵している構成であっても良いし、或いは外付けの構成であっても良い。管理者は、管理端末７０に搭載されたマネージメントアプリケーション（以下、ストレージナビゲータとも称する）を操作することにより、ストレージシステム１０の構成を変更することができる。当該ストレージナビゲータは、管理者が入力すべき所定の鍵によって解錠されることにより操作が可能となる。また、このストレージナビゲータは、管理者の操作又は予約に応じて、コントローラ２０に搭載された構成管理アプリケーションプログラムに対して指示を出すことにより、ストレージシステム１０の構成（例えばキャッシュメモリ２５）の変更などの操作を可能とする。このような構成管理アプリケーションとしては、例えば、キャッシュメモリ２５のパーティション構成を変更するためのキャッシュパーティションマネージャ、後述するプログラムプロダクト（以下、ＰＰとも称する）を挙げることができる。
【００２８】
このような構成変更としては、一般的には、例えば、ディスクドライブ４０上に定義される論理ボリュームの設定、ディスクドライブ４０の増設又は取り外し、ＲＡＩＤ構成の設定変更を挙げることができる。このようなＲＡＩＤ構成の設定変更としては、例えば、ＲＡＩＤレベル５からＲＡＩＤレベル１への変更を挙げることができる。さらに本実施の形態では、このような構成変更としては、後述するように、個々のアプリケーションプログラムＡＰ♯０，ＡＰ♯１，…，ＡＰ♯Ｎに対して、キャッシュメモリ２５，３５の最適な性能チューニングを挙げることができる。このようなチューニングとしては、例えば、パーティション分割、パーティションサイズ設定、セグメントサイズ設定、二重化要否設定、パーティションへの論理ボリュームの割り当て設定又は割り当て変更を挙げることができる。これらの設定は、上述したＬＵ管理テーブルやキャッシュパーティション管理テーブルにおいて管理されている。
【００２９】
（１−２）キャッシュメモリの記憶領域の構成
図２は、コントローラ２０の主要構成例を示す。なお、コントローラ３０についてもほぼ同様な構成であるため、主としてコントローラ２０について説明する。キャッシュメモリ２５は、その記憶領域が主として管理情報領域２５Ａ及びユーザデータ領域２５Ｂに分けられて管理されている。
【００３０】
ユーザデータ領域２５Ｂは、後述するキャッシュデータに相当するユーザデータを一時的に格納するための記憶領域であり、上述のように複数のアプリケーションプログラムに対応して、複数のパーティションに分割される。管理情報領域２５Ａは、ユーザデータを管理する上で必要な管理情報、例えば、データ属性（リードデータ／ライトデータ）、ホスト装置６０が指定するユーザデータの論理アドレス、キャッシュメモリ２５上の空きエリア情報、キャッシュデータの置き換えに関する優先順位の情報が格納されている。
【００３１】
（１−３）キャッシュデータの二重書き
図３は、デュアルコントローラによるキャッシュデータの二重書きの概要を示している。以下の説明においては、コントローラ２０をコントローラＣＴＬ♯０と称し、コントローラ３０をコントローラＣＴＬ♯１とも称する。各々のコントローラＣＴＬ♯０，ＣＴＬ♯１には、排他的にアクセスする権限を有する論理ボリュームが割り当てられている。例えば、コントローラＣＴＬ♯０は、論理ボリュームＬＵ♯０に対して排他的にアクセスする権限を有し、コントローラＣＴＬ♯１は、論理ボリュームＬＵ♯１に対して排他的にアクセスする権限を有するものとする。どのコントローラＣＴＬ♯０，ＣＴＬ♯１にどの論理ボリュームＬＵ♯０，ＬＵ♯１が排他的に割り当てられているかについては、例えば、キャッシュメモリ２５，３５上の管理情報領域（図２参照）等にその設定情報を書き込むことで、各々のコントローラＣＴＬ♯０，ＣＴＬ♯１が自身のアクセス権限を把握することができる。
【００３２】
キャッシュメモリ２５は、複数の記憶領域Ｐ０１，Ｐ０２，Ｐ０３に分割され、キャッシュメモリ３５は、複数の記憶領域Ｐ１１，Ｐ１２，Ｐ１３に分割されている。記憶領域Ｐ０１は、コントローラＣＴＬ♯０に対して排他的に割り当てられた論理ボリューム（例えば、ＬＵ♯０）に読み書きされるキャッシュデータＤＡＴＡ０を一時的に格納するための記憶領域であり、当該記憶領域Ｐ０１には、二重書きの設定がなされている（ミラーオン設定）。つまり、記憶領域Ｐ０１に書き込まれるキャッシュデータＤＡＴＡ０は、コントローラＣＴＬ♯０の制御によって、記憶領域Ｐ１１にも書き込まれる。記憶領域Ｐ１１は、コントローラＣＴＬ♯０によるミラーリング用の記憶領域である。
【００３３】
同様に、記憶領域Ｐ１２は、コントローラＣＴＬ♯１に対して排他的に割り当てられた論理ボリューム（例えば、ＬＵ♯１）に読み書きされるキャッシュデータＤＡＴＡ１を一時的に格納するための記憶領域であり、当該記憶領域Ｐ１２には、二重書きの設定がなされている。つまり、記憶領域Ｐ１２に書き込まれるキャッシュデータＤＡＴＡ１は、コントローラＣＴＬ♯１の制御によって、記憶領域Ｐ０２にも書き込まれる。記憶領域Ｐ０２は、コントローラＣＴＬ♯１によるミラーリング用の記憶領域である。記憶領域Ｐ０３，Ｐ１３は、二重書きの設定がなされていない記憶領域である（ミラーオフ設定）。なお、二重書き設定がなされている記憶領域Ｐ０１，Ｐ０２，Ｐ１１，Ｐ１２をミラーオン領域と称し、二重書き設定がなされていない記憶領域Ｐ０３，Ｐ１３をミラーオフ領域と称する。
【００３４】
（１−４）テーブル構成
図４は、ＬＵ管理テーブルのテーブル構成の一例を示す。ＬＵ管理テーブルは、ＬＵ番号（図示のＬＵＮに相当）ごとに、パーティション番号、容量、ＲＡＩＤグループ及びＲＡＩＤレベルを管理している。ＬＵ番号は、上述した論理ボリューム同士を識別するための番号である。パーティション番号は、各パーティションを識別するための番号である。容量は、各論理ボリュームの容量を表している。ＲＡＩＤグループは、各論理ボリュームが属するＲＡＩＤグループを表している。ＲＡＩＤレベルは、各論理ボリュームがどのＲＡＩＤレベルに対応しているかを表している。
【００３５】
図５は、キャッシュパーティション管理テーブルのテーブル構成の一例を示す。キャッシュパーティション管理テーブルは、パーティション番号ごとに、コントローラ種別（図示のＣＴＬに相当）、パーティションサイズ及びセグメントサイズを管理している。
【００３６】
パーティション番号は、上述した図４に示すパーティション番号に対応している。コントローラ種別は、各パーティション番号に対応するパーティションがコントローラＣＴＬ＃０に割り当てられている場合には０に設定され、コントローラＣＴＬ＃１に割り当てられている場合には１に設定されている。パーティションサイズは、各パーティションに割り当てられたデータサイズを表している。セグメントサイズは、対応するパーティション内において設定されたセグメントサイズを表している。
【００３７】
（１−４）キャッシュメモリのパーティション設定
図６は、キャッシュメモリ２５，３５におけるパーティション設定の一例を示す。このパーティション設定は、上述した図４及び図５のレコードに基づいて実際に区画される領域を表している。キャッシュメモリ２５，３５の記憶領域は、上述した管理情報領域２５Ａに対応するシステム領域及び、上述したユーザデータ領域２５Ｂを有する。なお、マスターパーティション＃０のセグメントサイズは１６ｋＢであるものとする。
【００３８】
コントローラＣＴＬ＃０側のキャッシュメモリ２５では、その記憶領域において、マスターパーティション＃０及びミラーリング領域が管理されている。一方、コントローラＣＴＬ＃１側のキャッシュメモリ２５では、その記憶領域において、上記マスターパーティション＃０のミラーリング用のミラーリング領域及びマスターパーティション＃１が管理されている。このマスターパーティション＃１は、コントローラＣＴＬ＃０側のミラーリング領域にミラーリングされる。
【００３９】
（１−６）ユーザデータ領域の構成変更
図７は、構成変更後のユーザデータ領域の構成の一例を示す。本実施の形態では、一例として、セグメントサイズが１６ｋＢであったマスターパーティション＃０の一部を別のパーティション＃２とし、当該別のパーティション＃２のセグメントサイズを３２ｋＢに変更するものとする。この場合、コントローラＣＴＬ＃１側におけるミラーリング領域には、マスターパーティション＃０及び当該別のパーティション＃２がミラーリングされる。このような構成変更は、上述した構成管理アプリケーションのうちキャッシュパーティションマネージャによって行われる。そして本実施形態では、次のようなＬＵマッピングがなされる。
【００４０】
（１−７）ＬＵマッピング
図８は、構成変更前におけるホスト装置６０と論理ボリューム（ＬＵ）との対応関係を示す。図８では、上述したホスト装置６０が複数存在する場合を表している。マスターパーティション＃０では、一方のホスト装置６０Ａは論理ユニット番号ＬＵ０に対応しており、他方のホスト装置６０Ｂは論理ユニット番号ＬＵ１に対応している。
【００４１】
図９は、構成変更後におけるホスト装置６０と論理ボリュームとの対応関係を示す。図９では、上述したホスト装置６０が複数存在する場合を表している。マスターパーティション＃０は、論理ボリュームが割り当てられており、一方のホスト装置６０Ａが論理ユニット番号ＬＵ０に対応しており、マスターパーティション＃１では、他方のホスト装置６０Ｂが論理ユニット番号ＬＵ１に対応している。
【００４２】
このような構成変更を行うと、ホスト装置６０で使用されるキャッシュパーティションが変更される。このパーティションをホスト装置６０のＩ／Ｏ特性に合わせてセグメント管理することにより、ホスト装置６０とのＩ／Ｏ処理に関する性能を向上させることができる。また、ホスト装置６０は、ＬＵマッピングによってＬＵと結びついており、ＬＵとキャッシュパーティションが結びついている。
従って、当該ホスト装置６０のＩＯパターンに合ったパーティション設定を行うことで、最適な「ホスト装置６０−ＬＵ−キャッシュパーティション」の組み合わせを得ることができる。
【００４３】
（１−８）構成変更後のテーブル構成
図１０は、構成変更後のＬＵ管理テーブルのテーブル構成の一例を示す。ＬＵ管理テーブルには、新たなパーティション＃１に対応するパーティション番号Ｐ０１に対応するレコードとして、ＬＵ番号（図示のＬＵＮに相当）ごとに、パーティション番号、容量、ＲＡＩＤグループ及びＲＡＩＤレベルを管理している。
【００４４】
図１１は、構成変更後のキャッシュパーティション管理テーブルのテーブル構成の一例を示す。このキャッシュパーティション管理テーブルは、上述した図４に示すキャッシュパーティション管理テーブルと同様に、パーティション番号ごとに、コントローラ種別（図示のＣＴＬに相当）、パーティションサイズ及びセグメントサイズを管理している。キャッシュパーティション管理テーブルには、当該新たなパーティション＃１に対応するパーティション番号Ｐ０１に対応するレコードが追加されている。
【００４５】
（１−９）セグメント管理
図１２は、構成変更前におけるセグメントと親サブセグメント管理ブロック及び子サブセグメント管理ブロックとの対応関係を示している。本実施の形態において、セグメントは、単一又は複数のサブセグメントから構成されており、セグメントを構成するサブセグメントの個数を調整することで、セグメントサイズを調整している。サブセグメントのサイズは予め固定サイズに設定されている。複数のサブセグメントからセグメントを構成する場合、当該セグメントにおいては、最初にアクセスされたサブセグメントを親サブセグメントと称し、２番目以降にアクセスされたサブセグメントを子サブセグメントと称する。親サブセグメントと子サブセグメントを区別しない場合には、単に、サブセグメントと称する。
【００４６】
同図において、ＳＳＥＧ１〜ＳＳＥＧ８は、アクセスされたサブセグメントを、そのアクセス順番とともに示している。サブセグメントのサイズが１６ＫＢにデフォルト設定されている場合、セグメントサイズを６４ＫＢにするには、サブセグメントを４つ集めてセグメントを構成する必要がある。例えば、ＳＳＥＧ１を親サブセグメントとし、その後に続くサブセグメントＳＳＥＧ２を小サブセグメントとして論理的に関連付けないことにより、１６ＫＢの一つのセグメントを構成することができる。同様に、ＳＳＥＧ２を親サブセグメントとし、その後に続くサブセグメントＳＳＥＧ３を子サブセグメントとして論理的に関連付けないことにより、１６ＫＢの一つのセグメントを構成することができる。
【００４７】
なお、親サブセグメントと子サブセグメントは、必ずしも連続した記憶領域上に配置されている必要はなく、キャッシュメモリ２５上の各所に離散的に点在していてもよい。
【００４８】
親サブセグメント管理ブロック８０は、親サブセグメントアドレス８１、順方向ポインタ８２、逆方向ポインタ８３、子サブセグメントポインタ８４、及び親サブセグメント管理情報８５を含む。親サブサブセグメントアドレス８１は、親サブセグメント管理ブロック８０が管理する親サブセグメントの位置を示す。順方向ポインタ８２は、最も古くアクセスされた順番に親サブセグメント管理ブロック８０を指し示す。逆方向ポインタ８３は、最も新しくアクセスされた順番に親サブセグメント管理ブロック８０を指し示す。子サブセグメントポインタ８４は、子サブセグメント管理ブロック９０を指し示す。親サブセグメント管理情報８５には、親サブセグメントのステータス（ダーティ／クリーン／フリー）等が格納される。ここで、ダーティとは、当該親サブセグメントのデータが記憶デバイス４０の論理ボリュームに転送されていないステータスをいう。クリーンとは、当該親サブセグメントのデータが記憶デバイス４０の論理ボリュームに転送済みであるステータスをいう。親サブセグメント内にダーティデータとクリーンデータが混在する場合には、ビットマップ情報によって、そのステータスが管理される。
【００４９】
子サブセグメント管理ブロック９０は、子サブセグメントアドレス９１、順方向ポインタ９２、及び子サブセグメント管理情報９３を含む。子サブサブセグメントアドレス９１は、子サブセグメント管理ブロック９０が管理する子サブセグメントの位置を示す。順方向ポインタ９２は、最も古くアクセスされた順番に子サブセグメント管理ブロック９０を指し示す。子サブセグメント管理情報９３には、子サブセグメントのステータス等が格納される。子サブセグメント内にダーティデータとクリーンデータが混在する場合には、ビットマップ情報によって、そのステータスが管理される。先頭ポインタ１０１は、順方向ポインタ８１の最後尾を指し示し、後方ポインタ１０２は、先頭の逆方向ポインタ８２によって指し示される。
【００５０】
このようにして、キュー管理される親サブセグメント管理ブロック８０と、子サブセグメント管理ブロック９０は、ステータスがダーティ（ダーティデータ）の場合には、ダーティーキューとして管理され、ステータスがクリーン（クリーンデータ）の場合には、クリーンキューとして管理される。親サブセグメントと複数の子サブセグメントを論理的に関連付けてセグメントを構成することにより、親サブセグメントが状態遷移すると、子サブセグメントも状態遷移するので、デステージング処理を高速化できる。
【００５１】
図１３は、構成変更後におけるセグメントと親サブセグメント管理ブロック及び子サブセグメント管理ブロックとの対応関係を示している。なお、図１３において、上述した図１２における説明と重複する部分については、原則として説明を省略する。
【００５２】
同図において、ＳＳＥＧ１〜ＳＳＥＧ８は、アクセスされたサブセグメントを、そのアクセス順番とともに示している。サブセグメントのサイズが１６ＫＢにデフォルト設定されている場合、セグメントサイズを３２ＫＢにするには、サブセグメントを２つ集めてセグメントを構成する必要がある。例えば、ＳＳＥＧ１を親サブセグメントとし、その後に続く１つのサブセグメントＳＳＥＧ２を子サブセグメントとして、互いに論理的に関連付けることにより、３２ＫＢの一つのセグメントを構成することができる。同様に、ＳＳＥＧ３を親サブセグメントとし、その後に続く１つのサブセグメントＳＳＥＧ４を子サブセグメントとして、互いに論理的に関連付けることにより、３２ＫＢの一つのセグメントを構成することができる。さらに、ＳＳＥＧ５を親サブセグメントとし、その後に続く１つのサブセグメントＳＳＥＧ６を子サブセグメントとして、互いに論理的に関連付けることにより、３２ＫＢの一つのセグメントを構成することができる。
【００５３】
（１−９）ストレージシステムの動作例
ストレージシステム１０は、以上のような構成により、次のような動作を行う。なお、
【００５４】
図１４は、第１の実施の形態におけるキャッシュメモリ２５の構成変更方法の手順の一例を示す。この動作例では、その前提として、データ転送制御部２４が、ホスト装置６０のデータとキャッシュメモリ２５のデータとを同期させて管理しており、キャッシュメモリ２５のデータを記憶デバイス４０の論理ボリュームのデータとを非同期で管理している。
【００５５】
データ転送制御部２４は、ホスト装置６０からホストＩ／Ｆ制御部２６を介して構成変更指示を受け取ると（ＳＰ１）、ＣＰＵ２１の制御によって、以下のような処理を実行する。
【００５６】
（１−９−１）変更準備（第一段階）
データ転送制御部２４は、上記構成変更指示の対象となっているキャッシュメモリ２５の対象領域（その対象領域のＬＵ）に関し、キャッシュメモリ２５の対象領域に対する入出力が一定未満となるよう、ダーティデータ生成処理の実行を抑制しながら、ライトアフター方式を用いて、キャッシュメモリ２５の対象領域に割り当てられたＬＵ単位でデステージを開始する（ＳＰ２）。ここで、ライトアフター方式とは、ホスト装置６０からキャッシュメモリ２５に一時的に記憶すると、そのデータを記憶デバイス４０に転送する前であっても、キャッシュメモリ２５に当該データを格納した時点においてホスト装置６０に対し、当該データの格納済み報告を行うデータ転送方法をいう。このようなライトアフター方式を用いると、ホスト装置６０とのＩ／Ｏ処理におけるデータ転送性能を落とさずに、高速に、後述する第二段階の変更準備に遷移させることができる。また、ダーティデータ生成処理としては、例えば、クイックフォーマットなどのＬＵフォーマット処理、強制パリティ回路による処理及びドライブ復旧処理のいずれか又はこれらいずれかの組み合わせを挙げることができる。このような第一段階の変更準備によれば、キャッシュメモリ２５の対象領域に対する入出力の負荷が大きい場合には、その時を避けて、後述する第２の変更準備を実行することができる。
【００５７】
（１−９−２）第１の変更準備ステップ
データ転送制御部２４は、ライトアフター方式を用いてキャッシュメモリ２５を経由してデータを転送しながら、キャッシュメモリ２５の対象領域に存在するダーティデータの量が規定の閾値未満となったか否かを確認する（ＳＰ３）。即ち、データ転送制御部２４は、キャッシュメモリ２５の対象領域に対する入出力が一定未満となったか否かを確認している。
【００５８】
なお、ダーティデータとは、キャッシュメモリ２５の対象領域に存在するデータであって記憶デバイス４０の論理ボリュームに書き込みを完了していないデータをいう。一方、クリーンデータとは、キャッシュメモリ２５の対象領域に存在するデータであって記憶デバイス４０の論理ボリュームに書き込みを完了したデータをいう。
【００５９】
ここで、ダーティデータの量の確認方法としては、データ転送制御部２４が、キャッシュメモリ２５などの記憶領域に対応したビットマップ情報を参照し、存在しているか否かを判断している。このビットマップ情報は、例えばキャッシュメモリ２５の記憶領域のサブセグメントごとにどのようなデータが存在しているかを示す情報である。
【００６０】
データ転送制御部２４は、キャッシュメモリ２５の対象領域に存在するダーティデータの量が閾値を下回っていない場合、当該第一段階に移行してから一定時間が経過したか否かを確認する（ＳＰ４）。一定時間が経過している場合、データ転送制御部２４は、例えばＩ／Ｏ処理の負荷が高いため構成変更を実施できなかったことを管理端末７０に通知する（ＳＰ５）。一方、データ転送制御部２４は、一定時間が経過していない場合、上記ステップＳＰ３に戻って、再度、ダーティデータの量が閾値を下回っているか否かを確認する。
【００６１】
（１−９−３）変更準備（第二段階）
ダーティデータの量が閾値未満となった場合（ＳＰ３）、データ転送制御部２４は、第二段階の変更準備を実施する。この第二段階の変更準備では、データ転送制御部２４が、変更対象となっているキャッシュメモリ２５の対象領域であるパーティション（そのＬＵ）に対し、ダーティデータ生成処理を抑制しながら、ライトスルー方式のＩ／Ｏによって、例えばＬＵ単位でダーティデータのデステージを開始する。ここで、ライトスルー方式とは、ホスト装置６０からキャッシュメモリ２５に一時的に格納したデータを記憶デバイス４０の論理ボリュームに書き込みが完了した時点で、ホスト装置６０に対してデータの書き込みが完了したことを報告するデータ転送方式をいう。
【００６２】
次にデータ転送制御部２４は、キャッシュメモリ２５を経由してデータを転送しながら、キャッシュメモリ２５の対象領域にダーティデータが存在するか否かを確認する（ＳＰ６）。このライトスルー方式では、キャッシュメモリ２５に格納済みのデータがディスクドライブ４０に書き込まれてから、データ転送制御部２４がホスト装置６０に対して書き込み完了通知を行うため、キャッシュメモリ２５の対象領域にはダーティデータが生じない。
【００６３】
データ転送制御部２４は、キャッシュメモリ２５の対象領域にダーティデータが存在しているか否かを確認する（ＳＰ７）。即ち、データ転送制御部２４は、キャッシュメモリ２５の対象領域に対する入出力がなくなったか否かを確認している。ダーティデータが未だ存在している場合には、データ転送制御部２４は、当該第二段階の変更準備に移行してから一定時間が経過したか否かを確認する。データ転送制御部２４は、一定時間が経過している場合には上述のステップＳＰ５を実行する一方、一定時間が経過していない場合には上記ステップＳＰ７に戻って再度ダーティデータが存在しているか否かを確認する。
【００６４】
（１−９−４）構成変更ステップ
一方、上記ステップＳＰ７においてキャッシュメモリ２５の対象領域にダーティデータが存在しなくなると、データ転送制御部２４は、キャッシュメモリ２５の対象領域（のＬＵ）をロックし（ＳＰ９）、キャッシュメモリ２５の対象領域に対する入出力を規制する。次に管理者は、管理端末７０に搭載されたストレージナビゲータに対して所定の鍵を入力することで解錠し、キャッシュメモリ２５の対象領域の構成を変更する操作を行う。これにより、プロセッサとしてのＣＰＵ２１は、当該ストレージナビゲータからの入力に基づいて、例えばキャッシュパーティションマネージャによって所定の構成情報（ＬＵ管理テーブル、パーティション管理テーブルなどの情報に相当）を変更することにより、キャッシュメモリ２５の対象領域に関する構成を変更する（ＳＰ１０）。以上のような手順を経由すると、キャッシュメモリ２５の対象領域をロックしている時間を短くすることができる。
【００６５】
（１−９−５）復元ステップ
データ転送制御部２４は、キャッシュメモリ２５の対象領域（のＬＵ）のロックを解除し、当該対象領域への入出力の規制を解除する（ＳＰ１１）。次にデータ転送制御部２４は、ダーティデータ生成処理の抑止を解除する。次に、データ転送制御部２４は、ライトスルー方式からライトアフター方式に戻すように切り換えて、キャッシュメモリ２５を経由したデータ転送を再開する（ＳＰ１２）。
【００６６】
（１−１０）本実施の形態の効果等
第１の実施の形態においては、次のような変更準備ステップが実行される。データ転送制御部２４は、ライトアフター方式を用いてキャッシュメモリ２５を経由してデータを転送しながら、キャッシュメモリ２５の対象領域に対する入出力が一定未満となったことを契機に、ライトアフター方式からライトスルー方式に切り換えてキャッシュメモリ２５を経由してデータを転送しながら、キャッシュメモリ２５の対象領域に対する入出力がなくなるまで待ち処理を実行する。プロセッサ２１は、キャッシュメモリ２５の対象領域に対する入出力がなくなったことを契機に、キャッシュメモリ２５の対象領域に関する構成を変更する一方、データ転送制御部２４に、ライトスルー方式からライトアフター方式に切り換えさせて、キャッシュメモリ２５を経由してデータ転送を再開させる。
【００６７】
このようにすると、データ転送制御部２４は、キャッシュメモリ２５の構成が変更される場合、キャッシュメモリ２５の対象領域に対する入出力が一定未満となるまではキャッシュメモリ２５を使用し続ける上、この時の転送方法としてライトアフター方式を用いているため、ホスト装置６０との入出力性能への影響を抑えることができる。従ってＣＰＵ２１は、ホスト装置６０との入出力性能への影響を抑えながら稼働状態のままキャッシュメモリ２５の構成を変更することができる。
【００６８】
本実施の形態においては、さらに、上記変更準備ステップとして次のような第１及び第２の変更準備ステップが実行される。第１の変更準備ステップでは、データ転送制御部２４が、キャッシュメモリ２５の対象領域に存在するデータであって論理ボリュームへの書き込みが完了していないデータとしてのダーティデータの量が規定の閾値未満となったか否かを確認する。一方、第２の変更準備ステップでは、データ転送制御部２４は、ダーティデータの量が規定の閾値未満となったことを契機にライトアフター方式からライトスルー方式に切り換えてキャッシュメモリ２５を経由してデータを転送しながら、キャッシュメモリ２５の対象領域にダーティデータが存在するか否かを確認する。さらに第２の変更準備ステップでは、プロセッサ２１は、キャッシュメモリ２５の対象領域にダーティデータが存在しなくなったことを契機に、キャッシュメモリ２５の対象領域に関する構成を変更する。
【００６９】
このようにすると、第１の変更準備ステップでは、ライトアフター方式を採用しているため、ホスト装置６０との入出力性能を落とさないように維持しながら、第２の変更準備ステップを実行すべきタイミングを図ることができる。また、ホスト装置６０とのＩ／Ｏ処理の負担が大きい場合には、第２の変更準備ステップを実行しないようにすることができる。一方、第２の変更準備ステップでは、上位装置との入出力性能が一時的に落ちるもののダーティデータを生じないライトスルー方式によりキャッシュメモリ２５を経由してデータを転送している。このため、第２の変更準備ステップでは、キャッシュメモリ２５におけるダーティデータの発生を抑止し、最終的にはキャッシュメモリ２５の対象領域にダーティデータが存在しないようにすることができる。ＣＰＵ２１は、キャッシュメモリ２５の対象領域にダーティデータが存在しなくなったことを契機に、キャッシュメモリ２５の対象領域に関する構成を変更する。すると、キャッシュメモリ２５の対象領域は、電源がオン状態を維持した状態で変更されることになる。最後に、データ転送制御部２４は、一時的に切り換えていたライトスルー方式からライトアフター方式に戻し、ホスト装置６０との入出力性能を維持しながら、変更後の構成に対応したキャッシュメモリ２５の対象領域を経由したデータ転送を再開する。
【００７０】
本実施の形態においては、さらに、データ転送制御部２４が、前記キャッシュメモリ２５の対象領域に対する入出力が一定未満となるよう、ダーティデータの生成処理の実行を抑止する。
【００７１】
本実施の形態においては、さらに、構成変更ステップでは、データ転送制御部２４が、キャッシュメモリ２５の対象領域に対する入出力を規制した後、ＣＰＵ２１がキャッシュメモリ２５の対象領域に関する構成を変更する。一方、復元ステップでは、データ転送制御部２４が、キャッシュメモリ２５の対象領域に対する入出力の規制を解除した後、ライトスルー方式からライトアフター方式に切り換えて、キャッシュメモリ２５を経由したデータ転送を再開している。
【００７２】
本実施の形態においては、さらに、データ転送制御部２４は、キャッシュメモリ２５の対象領域に割り当てられた論理ユニット番号に対応する論理ボリュームごとにダーティデータをデステージさせる。
【００７３】
本実施の形態においては、さらに、データ転送部２４は、例えば、ホスト装置６０のデータとキャッシュメモリ２５のデータとを同期させて管理しており、キャッシュメモリ２５のデータを記憶デバイス４０の論理ボリュームのデータとを非同期で管理している。
【００７４】
このようにすると、ダーティデータがキャッシュメモリ２５に生じ易いデータ転送方法（例えばライトアフター方式）を採用していても、ホスト装置６０との入出力性能への影響を最小限に抑制しつつ稼働状態のままキャッシュメモリ２５の構成を変更することができる。
【００７５】
（２）第２の実施の形態
第２の実施の形態は、第１の実施の形態とほぼ同様であるため、同様の構成には第１の実施の形態と同一の符号を付して説明を省略し、以下、異なる点を中心として説明する。
【００７６】
（２−１）キャッシュメモリの構成変更方法
図１５は、第２の実施の形態におけるキャッシュメモリの構成変更方法の手順の一例を示す。なお、図１５においては、図１４と同一の符号を付した手順については、図１４の手順とほぼ同様であるため、以下では主として異なる点を中心に説明する。
【００７７】
第２の実施の形態では、第１の実施の形態におけるステップＳＰ５〜ＳＰ７の処理が異なる。第２の実施の形態では、ステップＳＰ３が実行された後に、データ転送制御部２４が、転送方式を切り換えることなく、引き続きライトアフター方式を用いてデータ転送を行っており、さらに次のような処理を実行する。なお、第１の実施の形態では、ステップＳＰ３が実行された後、データ転送制御部２４が、ライトスルー方式に切り換えてデータ転送を行っている点において少なくともデータ転送方式が異なっている。
【００７８】
まず、データ転送制御部２４は、構成変更指示を受領したことを契機に（ＳＰ１）、変更準備ステップの一部として、ステップＳＰ２〜ＳＰ５を実行する。さらにデータ転送制御部２４は、変更準備ステップとして、次のようなステップＳＰ５Ａ，ＳＰ７Ａを実行する。即ち、データ転送制御部２４は、変更対象となるキャッシュメモリ２５の対象領域をサーチする（ＳＰ５Ａ）。データ転送制御部２４は、キャッシュメモリ２５の対象領域の各セグメントにダーティデータが残存していない場合、そのセグメントに印を付けることにより、ホスト装置６０とのＩ／Ｏ処理において使用されないようにする。
【００７９】
一方、データ転送制御部２４は、キャッシュメモリ２５の対象領域のセグメントにダーティデータが存在する場合、そのダーティデータを変更対象外のセグメントに複写し、そのセグメントに印を付けて、ホスト装置６０とのＩ／Ｏ処理において使用されないようにする。さらにデータ転送制御部２４は、変更対象のセグメントのデータをパージ（削除）する。このように変更対象外の領域のセグメントに複写されたデータについては、例えば、データ転送制御部２４によって通常のデステージ処理が実施される。
【００８０】
データ転送制御部２４は、キャッシュメモリ２５の対象領域の全領域をサーチしたか否かを確認する（ＳＰ７Ａ）。データ転送制御部２４は、全領域をサーチ済みではない場合には上記ステップＳＰ５Ａに戻って実行する一方、全領域をサーチ済みである場合にはステップＳＰ９から実行する。このようなサーチ処理をキャッシュメモリ２５の対象領域の全領域に対して実施することで、構成変更の対象領域の各セグメントには、ダーティデータが存在しなくなるため、その時点で、ホスト装置６０とのＩ／Ｏ処理を停止することなく、プロセッサとしてのＣＰＵ２１がキャッシュメモリ２５の構成を変更することができる。
【００８１】
ステップＳＰ９では、データ転送制御部２４が、第１の実施の形態と同様に、キャッシュメモリ２５の対象領域に対する構成変更として、例えば、論理ユニットの担当パーティション（以下、ＰＴＴという）を変更したり、当該ＰＰＴのサイズ／セグメントサイズを変更したり、当該ＰＴＴを追加又は削除することを挙げることができる。
【００８２】
次にプロセッサ２１が、キャッシュメモリ２５の対象領域にダーティデータが存在しくなったことを契機に、キャッシュメモリ２５の対象領域に関する構成を変更する（ＳＰ１０：構成変更ステップ）。データ転送制御部２４は、第１の実施の形態と同様に、キャッシュメモリ２５の対象領域のロックを解除する（ＳＰ１１）。次にデータ転送制御部２４は、ダーティデータの生成処理の抑止を解除する一方、キャッシュメモリ２５の対象領域の各セグメントに付けられた印を解除し、キャッシュメモリ２５を経由したデータ転送を再開する（ＳＰ１２：復元ステップ）。
【００８３】
なお、第２の実施の形態では、構成変更の対象がキャッシュメモリ２５の全領域である場合、データ転送制御部２４は、まずキャッシュメモリ２５の全領域を複数に分けた１つの単位領域ごとに、順に、上記ステップＳＰ５Ａ，ＳＰ７Ａ，ＳＰ９を実行するようにしても良い。その際、データ転送制御部２４は、対象となるセグメントに存在するダーティデータを、現在処理している単位領域とは別の単位領域に複写している。
【００８４】
（２−２）本実施の形態の効果等
以上説明したように、第２の実施の形態では、変更準備ステップにおいて、データ転送制御部２４が、ライトアフター方式を用いてキャッシュメモリ２５を経由してデータを転送しながら、キャッシュメモリ２５の対象領域をサーチし、キャッシュメモリ２５の対象領域の各セグメントに、記憶デバイス４０又はホスト装置６０に転送が完了していないデータとしてのダーティデータが残存していない場合にはセグメントに印を付ける。一方、データ転送制御部２４は、キャッシュメモリ２５の対象領域のセグメントにダーティデータが存在する場合には、そのダーティデータを変更対象外のセグメントに複写し、そのセグメントに前記印を付けた後、そのセグメントに存在するそのダーティデータを削除する。ＣＰＵ２１は、キャッシュメモリ２５の対象領域にダーティデータが存在しくなったことを契機に、キャッシュメモリ２５の対象領域に関する構成を変更する。さらに復元ステップでは、データ転送制御部２４が、キャッシュメモリ２５の対象領域の各セグメントに付けられた印を解除し、キャッシュメモリ２５を経由したデータ転送を再開する。
【００８５】
このようにすると、第１の実施の形態と同様な効果を発揮するとともに、データ転送方式をライトスルー方式から変更する必要がないため、第１の実施の形態よりも、さらに、ホスト装置６０とのＩ／Ｏ処理への影響を抑制することができる。また、キャッシュメモリ２５上のダーティデータが多い場合、又は、ＳＡＴＡ（Serial Advanced Technology Attachment）などアクセスに時間の掛かるドライブを記憶デバイス４０に用いた場合でも、ダーティデータのデステージ処理の実行に掛かる時間を短くし、キャッシュメモリ２５の構成変更を短時間で行うことができる。また、障害などにより、キャッシュメモリ２５のデータをデステージできない場合でも、キャッシュメモリ２５上にデータが残り続けないようにすることができる。
【００８６】
また、第２の実施形態においては、構成変更ステップでは、データ転送制御部２４がキャッシュメモリ２５の対象領域に対する入出力を規制した後、ＣＰＵ３１がキャッシュメモリ２５の対象領域に関する構成を変更する。次に復元ステップでは、データ転送制御部２４が、キャッシュメモリ２５の対象領域に対する入出力の規制を解除した後、キャッシュメモリ２５を経由したデータ転送を再開する。
【００８７】
また、第２の実施の形態においては、変更準備ステップでは、データ転送制御部２４が、キャッシュメモリ２５の全領域を複数に分けた１つの単位領域ごとに、順に、その単位領域をサーチする。データ転送制御部２４は、その単位領域の各セグメントにダーティデータが残存していない場合にはそのセグメントに印を付ける。一方、データ転送制御部３４は、その単位領域のセグメントにダーティデータが存在する場合には、そのダーティデータを、現在処理している単位領域とは別の単位領域に複写し、その単位領域に印を付けた後、その単位領域に存在するダーティデータを削除する。
【００８８】
このようにすると、当該全領域を部分的に分けて処理することにより、キャッシュメモリ２５の全領域の構成を変更することができる。
【００８９】
（３）キャッシュメモリ２５の記憶領域の構成変更例
図１６及び図１７は、それぞれ、キャッシュメモリ２５の記憶領域の構成を変更した例を示す。上段は、コントローラＣＴＬ＃０側におけるキャッシュメモリ２５の記憶領域を表し、下段は、コントローラＣＴＬ＃１側におけるキャッシュメモリ２５の記憶領域を表している。なお、図１６は、構成変更前における記憶領域の構成例を示し、図１７は、構成変更後における記憶領域の構成例を示す。
【００９０】
図１６に示す構成変更前においては、上段に示すコントローラＣＴＬ＃０におけるキャッシュメモリ２５の記憶領域は、システム領域２５Ａ（管理情報領域に相当）及び、ユーザデータ領域２５Ｂとしてのマスターパーティション＃０及びミラーリング領域を有する。マスターパーティション＃０には、当該マスターパーティション＃０に所属する３つの論理ユニットが割り当てられている。上記ミラーリング領域は、後述するコントローラＣＴＬ＃１側におけるキャッシュメモリ２５のマスターパーティション＃１のミラーリングのための領域である。
【００９１】
一方、図１６に示す構成変更前においては、下段に示すコントローラＣＴＬ＃１におけるキャッシュメモリ２５の記憶領域は、システム領域２５Ａ及び、ユーザデータ領域２５Ｂとしてのマスターパーティション＃０及びミラーリング領域を有する。マスターパーティション＃１には、当該マスターパーティション＃１に所属する３つの論理ユニットが割り当てられている。上記ミラーリング領域は、後述するコントローラＣＴＬ＃０側におけるキャッシュメモリ２５のマスターパーティション＃０のミラーリングのための領域である。
【００９２】
一方、図１７に示す構成変更後においては、上段に示すコントローラＣＴＬ＃０におけるキャッシュメモリ２５の記憶領域は、システム領域２５Ａ（管理情報領域に相当）及び、ユーザデータ領域２５Ｂとしてのマスターパーティション＃０、ミラーリング領域及びＰＰ使用領域を有する。マスターパーティション＃０は、容量が小さくなっており、上記同様に、当該マスターパーティション＃０に所属する３つの論理ユニットが割り当てられている。上記ミラーリング領域は、小さくなっており、後述するコントローラＣＴＬ＃１側におけるキャッシュメモリ２５のマスターパーティション＃１のミラーリングのための領域である。即ち、コントローラＣＴＬ＃０におけるキャッシュメモリ２５の記憶領域には、新たにＰＰ使用領域が形成されている。上記ＰＰ使用領域は、上述したプログラムプロダクトによって確保された記憶領域を表している。当該プログラムプロダクトは、キャッシュメモリ２５以外の構成を変更することもできるが、上述した第１及び第２の実施の形態では、キャッシュメモリ２５に適用した形態に有用となる。
【００９３】
一方、図１７に示す構成変更後においては、下段に示すコントローラＣＴＬ＃１におけるキャッシュメモリ２５の記憶領域は、システム領域２５Ａ及び、ユーザデータ領域２５Ｂとしてのマスターパーティション＃０、ミラーリング領域及びＰＰ使用領域を有する。マスターパーティション＃１は、容量が小さくなっており、上記同様に、当該マスターパーティション＃１に所属する３つの論理ユニットが割り当てられている。上記ミラーリング領域は、容量が小さくなっており、後述するコントローラＣＴＬ＃０側におけるキャッシュメモリ２５のマスターパーティション＃０のミラーリングのための領域である。即ち、コントローラＣＴＬ＃１におけるキャッシュメモリ２５の記憶領域には、新たにＰＰ使用領域が形成されている。
【００９４】
（４）その他の実施形態
上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。なお、第２の実施の形態は、第１の実施の形態における構成と部分的に組み合わせても良い。
【符号の説明】
【００９５】
２０……コントローラ、２１……ＣＰＵ，２４……データ転送制御部、２５……キャッシュメモリ、２６……ホストＩ／Ｆ、２７……ドライブＩ／Ｆ、３０……コントローラ、３１……ＣＰＵ、３４……データ転送制御部、３５……キャッシュメモリ、３６……ホストＩ／Ｆ、３７……ドライブＩ／Ｆ、４０……ディスクドライブ、５０……ネットワーク、６０……ホスト装置、７０……管理端末。
【図１】
0005529283.tif 000002
【図２】
0005529283.tif 000003
【図３】
0005529283.tif 000004
【図４】
0005529283.tif 000005
【図５】
0005529283.tif 000006
【図６】
0005529283.tif 000007
【図７】
0005529283.tif 000008
【図８】
0005529283.tif 000009
【図９】
0005529283.tif 000010
【図１０】
0005529283.tif 000011
【図１１】
0005529283.tif 000012
【図１２】
0005529283.tif 000013
【図１３】
0005529283.tif 000014
【図１４】
0005529283.tif 000015
【図１５】
0005529283.tif 000016
【図１６】
0005529283.tif 000017
【図１７】
0005529283.tif 000018