(57)【要約】【課題】容量を仮想化するストレージ装置にＬＵ単位のキャッシュ常駐制御を適用する際に、ＬＵに割り当たっている物理容量分に等しいキャッシュ領域のみを確保することで、キャッシュ常駐の領域を最適化するストレージ装置を提供する。【解決手段】ストレージ装置において、キャッシュメモリに常駐させる論理空間であるＬＵが、複数の記憶デバイスを用いて作成された物理空間であるプールボリュームを所定のサイズで分割したページの集まりで構成される場合に、キャッシュメモリに常駐させるＬＵを作成した際は、ＬＵのサイズ分の容量を最初からキャッシュメモリ上に確保するのではなく、ページの新規割り当てが発生する度に、この新規のページの割り当て物理容量に等しいキャッシュ容量をキャッシュメモリ上に確保して、新規のページをキャッシュメモリ上に常駐化させる。【選択図】図１３
2010102413.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ制御装置と、前記ストレージ制御装置に接続されるストレージ駆動装置とを有するストレージ装置であって、
前記ストレージ制御装置は、前記ストレージ装置の全体制御を行う中央演算装置と、前記中央演算装置が前記ストレージ装置を制御するために必要なプログラムやデータを格納するメモリと、前記ストレージ装置を利用するホスト計算機のデータアクセスに対する論理空間であるＬＵを常駐させるキャッシュメモリとを有し、
前記ストレージ駆動装置は、複数の記憶デバイスを有し、
前記キャッシュメモリに常駐させるＬＵは、前記複数の記憶デバイスを用いて作成された物理空間であるプールボリュームを所定のサイズで分割したページの集まりで構成され、
前記メモリには、前記中央演算装置が実行し、前記キャッシュメモリに常駐させるＬＵを作成した際は、前記ＬＵのサイズ分の容量を最初から前記キャッシュメモリ上に確保するのではなく、前記ページの新規割り当てが発生する度に、この新規のページの割り当て物理容量に等しいキャッシュ容量を前記キャッシュメモリ上に確保して、前記新規のページを前記キャッシュメモリ上に常駐化させるキャッシュ常駐処理を行うためのプログラムが格納されている、ことを特徴とするストレージ装置。
【請求項２】
請求項１記載のストレージ装置において、
前記キャッシュ常駐処理は、前記ホスト計算機より発行されたＩ／Ｏ要求を処理するＩ／Ｏ処理に含まれ、
前記メモリには、前記中央演算装置が実行し、前記Ｉ／Ｏ処理を行うためのプログラムと、前記プールボリュームと前記ＬＵとの対応を管理するためのアドレス変換テーブルとが格納され、
前記Ｉ／Ｏ処理では、前記ホスト計算機より発行されたＩ／Ｏ要求を受け取り、このＩ／Ｏ要求のコマンドを解析し、処理対象となるＬＵのＬＢＡにページが割り当て済みであるか否かを前記アドレス変換テーブルの情報を元に判断し、この判断の結果、割り当て済みである場合はページ割り当て済みの領域に対するＩ／Ｏ要求であると判断してデータ転送処理を実行し、一方、割り当て済みでない場合はページ未割り当ての領域に対するＩ／Ｏ要求であるため、新規ページの割り当てが必要であると判断して新規ページ割り当て処理へ移行し、その後、新規割り当てページに対する前記キャッシュ常駐処理を行った後、データ転送処理を実行する、ことを特徴とするストレージ装置。
【請求項３】
請求項２記載のストレージ装置において、
前記メモリには、前記プールボリュームを管理するためのプールボリューム管理テーブルが格納され、
前記新規ページ割り当て処理では、前記プールボリューム管理テーブルの割り当てフラグの情報を元に割り当て可能ページがあるか否かを判断し、この判断の結果、割り当て可能ページがない場合はストレージ管理者にプールボリュームの拡張依頼を通知することでプールボリュームの拡張が実行され、一方、割り当て可能ページがある場合は当該ページの割り当て処理を実行して、前記アドレス変換テーブルのページを未割り当てから割り当てページに変更し、前記プールボリューム管理テーブルの割り当てページに対応する割り当てフラグを割り当て済みに変更する、ことを特徴とするストレージ装置。
【請求項４】
請求項２記載のストレージ装置において、
前記メモリには、前記キャッシュメモリに常駐させるＬＵの一覧およびサイズを管理するための常駐ＬＵ管理テーブルと、前記キャッシュメモリのセグメントを管理するためのキャッシュセグメント管理テーブルとが格納され、
前記キャッシュ常駐処理では、前記常駐ＬＵ管理テーブルの情報を元に、処理対象となるＬＵがキャッシュ常駐対象であるか否かを判断し、この判断の結果、当該ＬＵがキャッシュ常駐対象である場合は割り当てページ分のセグメント領域を前記キャッシュメモリ上に確保し、この確保したセグメントに対応する前記キャッシュセグメント管理テーブルの情報を更新し、次に、当該コマンドのＩ／Ｏ種別を判断し、この判断の結果、リードコマンドである場合は前記記憶デバイス上のデータを前記キャッシュメモリ上に読み出すためのデータステージングを行い、一方、ライトコマンドである場合は何もせず、次に、前記キャッシュセグメント管理テーブルのキャッシュ常駐フラグをキャッシュ常駐対象に設定して当該セグメントを常駐属性に変更する、ことを特徴とするストレージ装置。
【請求項５】
請求項１記載のストレージ装置において、
前記メモリには、前記中央演算装置が実行し、前記常駐させるＬＵを作成する常駐ＬＵの作成処理を行うためのプログラムが格納され、
前記常駐ＬＵの作成処理では、前記ホスト計算機より発行された常駐ＬＵの作成指示を受領し、常駐希望するＬＵの割り当てサイズと前記キャッシュメモリ上の割り当て可能キャッシュサイズとを比較し、この比較の結果、前記ＬＵの割り当てサイズが前記割り当て可能キャッシュサイズよりも小さい場合はＬＵの作成が可能と判断してＬＵの作成処理を実行し、一方、前記ＬＵの割り当てサイズが前記割り当て可能キャッシュサイズよりも大きい場合はＬＵの作成が不可能と判断する、ことを特徴とするストレージ装置。
【請求項６】
請求項１記載のストレージ装置において、
前記メモリには、前記中央演算装置が実行し、前記常駐させるＬＵを削除する常駐ＬＵの削除処理と常駐指定を解除する常駐指定の解除処理とを行うためのプログラムが格納され、
前記常駐ＬＵの削除処理と前記常駐指定の解除処理では、前記ホスト計算機より発行された常駐解除指示のコマンドを受領し、このコマンドの種別が常駐ＬＵの削除であるか、もしくは常駐指定の解除であるかを判断し、この判断の結果、前記常駐ＬＵの削除である場合は削除対象となるページを未割り当て状態に変更し、次に、対象のＬＵのエントリを削除し、その後、当該ＬＵのデータを保持していたセグメントを未使用に変更して常駐領域を開放する常駐ＬＵの削除処理を実行し、一方、前記常駐指定の解除である場合は常駐により抑止されていたデータデステージを実施して前記キャッシュメモリ上のデータを前記記憶デバイスへ反映し、その後、当該ＬＵのデータを保持していたセグメントを常駐指定の解除に変更し、さらに、当該ＬＵの情報を削除する常駐指定の解除処理を実行する、ことを特徴とするストレージ装置。
【請求項７】
ストレージ制御装置と、前記ストレージ制御装置に接続されるストレージ駆動装置とを有するストレージ装置におけるキャッシュ制御方法であって、
前記ストレージ制御装置は、前記ストレージ装置の全体制御を行う中央演算装置と、前記中央演算装置が前記ストレージ装置を制御するために必要なプログラムやデータを格納するメモリと、前記ストレージ装置を利用するホスト計算機のデータアクセスに対する論理空間であるＬＵを常駐させるキャッシュメモリとを有し、
前記ストレージ駆動装置は、複数の記憶デバイスを有し、
前記キャッシュメモリに常駐させるＬＵは、前記複数の記憶デバイスを用いて作成された物理空間であるプールボリュームを所定のサイズで分割したページの集まりで構成され、
前記中央演算装置が前記メモリに格納されている前記プログラムを実行し、前記キャッシュメモリに常駐させるＬＵを作成した際は、前記ＬＵのサイズ分の容量を最初から前記キャッシュメモリ上に確保するのではなく、前記ページの新規割り当てが発生する度に、この新規のページの割り当て物理容量に等しいキャッシュ容量を前記キャッシュメモリ上に確保して、前記新規のページを前記キャッシュメモリ上に常駐化させるキャッシュ常駐処理を行う、ことを特徴とするキャッシュ制御方法。
【請求項８】
請求項７記載のキャッシュ制御方法において、
前記キャッシュ常駐処理は、前記ホスト計算機より発行されたＩ／Ｏ要求を処理するＩ／Ｏ処理に含まれ、
前記Ｉ／Ｏ処理では、前記ホスト計算機より発行されたＩ／Ｏ要求を受け取り、このＩ／Ｏ要求のコマンドを解析し、処理対象となるＬＵのＬＢＡにページが割り当て済みであるか否かを前記プールボリュームと前記ＬＵとの対応を管理するためのアドレス変換テーブルの情報を元に判断し、この判断の結果、割り当て済みである場合はページ割り当て済みの領域に対するＩ／Ｏ要求であると判断してデータ転送処理を実行し、一方、割り当て済みでない場合はページ未割り当ての領域に対するＩ／Ｏ要求であるため、新規ページの割り当てが必要であると判断して新規ページ割り当て処理へ移行し、その後、新規割り当てページに対する前記キャッシュ常駐処理を行った後、データ転送処理を実行する、ことを特徴とするキャッシュ制御方法。
【請求項９】
請求項８記載のキャッシュ制御方法において、
前記新規ページ割り当て処理は、前記プールボリュームを管理するためのプールボリューム管理テーブルの割り当てフラグの情報を元に割り当て可能ページがあるか否かを判断し、この判断の結果、割り当て可能ページがない場合はストレージ管理者にプールボリュームの拡張依頼を通知することでプールボリュームの拡張が実行され、一方、割り当て可能ページがある場合は当該ページの割り当て処理を実行して、前記アドレス変換テーブルのページを未割り当てから割り当てページに変更し、前記プールボリューム管理テーブルの割り当てページに対応する割り当てフラグを割り当て済みに変更する、ことを特徴とするキャッシュ制御方法。
【請求項１０】
請求項８記載のキャッシュ制御方法において、
前記キャッシュ常駐処理は、前記キャッシュメモリに常駐させるＬＵの一覧およびサイズを管理するための常駐ＬＵ管理テーブルの情報を元に、処理対象となるＬＵがキャッシュ常駐対象であるか否かを判断し、この判断の結果、当該ＬＵがキャッシュ常駐対象である場合は割り当てページ分のセグメント領域を前記キャッシュメモリ上に確保し、この確保したセグメントに対応する前記キャッシュメモリのセグメントを管理するためのキャッシュセグメント管理テーブルの情報を更新し、次に、当該コマンドのＩ／Ｏ種別を判断し、この判断の結果、リードコマンドである場合は前記記憶デバイス上のデータを前記キャッシュメモリ上に読み出すためのデータステージングを行い、一方、ライトコマンドである場合は何もせず、次に、前記キャッシュセグメント管理テーブルのキャッシュ常駐フラグをキャッシュ常駐対象に設定して当該セグメントを常駐属性に変更する、ことを特徴とするキャッシュ制御方法。
【請求項１１】
請求項７記載のキャッシュ制御方法において、
前記中央演算装置が前記メモリに格納されている前記プログラムを実行し、前記ホスト計算機より発行された常駐ＬＵの作成指示を受領し、常駐希望するＬＵの割り当てサイズと前記キャッシュメモリ上の割り当て可能キャッシュサイズとを比較し、この比較の結果、前記ＬＵの割り当てサイズが前記割り当て可能キャッシュサイズよりも小さい場合はＬＵの作成が可能と判断してＬＵの作成処理を実行し、一方、前記ＬＵの割り当てサイズが前記割り当て可能キャッシュサイズよりも大きい場合はＬＵの作成が不可能と判断する、ことを特徴とするキャッシュ制御方法。
【請求項１２】
請求項１１記載のキャッシュ制御方法において、
前記ＬＵの作成処理は、前記プールボリュームと前記ＬＵとの対応を管理するためのアドレス変換テーブルに作成するＬＵのＬＵ番号を追加し、このＬＵの作成に必要なページの数を算出して各ページの開始ＬＢＡおよび終了ＬＢＡを記載して前記アドレス変換テーブルを更新し、次に、前記キャッシュメモリに常駐させるＬＵの一覧およびサイズを管理するための常駐ＬＵ管理テーブルに作成するＬＵのＬＵ番号およびＬＵサイズを記載して前記常駐ＬＵ管理テーブルを更新し、次に、前記常駐させるＬＵが使用するキャッシュ容量を管理するためのキャッシュ容量管理テーブルの常駐ＬＵ合計サイズおよび割り当て可能キャッシュサイズを更新する、ことを特徴とするキャッシュ制御方法。
【請求項１３】
請求項７記載のキャッシュ制御方法において、
前記中央演算装置が前記メモリに格納されている前記プログラムを実行し、前記ホスト計算機より発行された常駐解除指示のコマンドを受領し、このコマンドの種別が常駐ＬＵの削除であるか、もしくは常駐指定の解除であるかを判断し、この判断の結果、前記常駐ＬＵの削除である場合は削除対象となるページを未割り当て状態に変更し、次に、対象のＬＵのエントリを削除し、その後、当該ＬＵのデータを保持していたセグメントを未使用に変更して常駐領域を開放する常駐ＬＵの削除処理を実行し、一方、前記常駐指定の解除である場合は常駐により抑止されていたデータデステージを実施して前記キャッシュメモリ上のデータを前記記憶デバイスへ反映し、その後、当該ＬＵのデータを保持していたセグメントを常駐指定の解除に変更し、さらに、当該ＬＵの情報を削除する常駐指定の解除処理を実行する、ことを特徴とするキャッシュ制御方法。
【請求項１４】
請求項１３記載のキャッシュ制御方法において、
前記常駐ＬＵの削除処理は、前記プールボリュームを管理するためのプールボリューム管理テーブルで削除対象となるページの割り当てフラグを未割り当て状態に変更し、次に、前記プールボリュームと前記ＬＵとの対応を管理するためのアドレス変換テーブルの対象のＬＵのエントリを削除し、その後、前記キャッシュメモリのセグメントを管理するためのキャッシュセグメント管理テーブル内で当該ＬＵのデータを保持していたセグメントのキャッシュ常駐フラグを未使用に変更して常駐領域を開放し、さらに、前記キャッシュメモリに常駐させるＬＵの一覧およびサイズを管理するための常駐ＬＵ管理テーブルの当該ＬＵの情報を削除し、前記常駐させるＬＵが使用するキャッシュ容量を管理するためのキャッシュ容量管理テーブルの常駐ＬＵ合計サイズおよび割り当て可能キャッシュサイズを更新し、
前記常駐指定の解除処理は、常駐により抑止されていたデータを前記キャッシュメモリから前記記憶デバイスへ書き込むためのデータデステージを実施し、前記キャッシュメモリ上のデータを前記記憶デバイスへ反映し、その後、前記キャッシュセグメント管理テーブル内で当該ＬＵのデータを保持していたセグメントのキャッシュ常駐フラグを常駐指定の解除に変更し、さらに、前記常駐ＬＵ管理テーブルの当該ＬＵの情報を削除し、前記キャッシュ容量管理テーブルの常駐ＬＵ合計サイズおよび割り当て可能キャッシュサイズを更新する、ことを特徴とするキャッシュ制御方法。
【請求項１５】
ストレージ制御装置と、前記ストレージ制御装置に接続されるストレージ駆動装置とを有するストレージ装置であって、
前記ストレージ制御装置は、前記ストレージ装置を利用するホスト計算機を接続するホストアダプタと、前記ストレージ装置の全体制御を行う中央演算装置と、前記中央演算装置が前記ストレージ装置を制御するために必要なプログラムやデータを格納するメモリと、前記ホスト計算機のデータアクセスに対する論理空間であるＬＵを常駐させるキャッシュメモリと、前記ストレージ制御装置と前記ストレージ駆動装置とを接続するディスクアダプタとを有し、
前記ストレージ駆動装置は、複数の物理ディスクを有し、
前記キャッシュメモリに常駐させるＬＵは、前記複数の物理ディスクを用いて作成された物理空間であるプールボリュームを所定のサイズで分割したページの集まりで構成され、
前記メモリには、前記中央演算装置が実行し、前記常駐させるＬＵを作成する常駐ＬＵの作成処理を行うためのプログラムと、前記ホスト計算機より発行されたＩ／Ｏ要求を処理するＩ／Ｏ処理を行うためのプログラムと、前記常駐させるＬＵを削除する常駐ＬＵの削除処理と常駐指定を解除する常駐指定の解除処理とを行うためのプログラムとが格納され、
前記常駐ＬＵの作成処理では、前記ホスト計算機より発行された常駐ＬＵの作成指示を受領し、常駐希望するＬＵの割り当てサイズと前記キャッシュメモリ上の割り当て可能キャッシュサイズとを比較し、この比較の結果、前記ＬＵの割り当てサイズが前記割り当て可能キャッシュサイズよりも小さい場合はＬＵの作成が可能と判断してＬＵの作成処理を実行し、一方、前記ＬＵの割り当てサイズが前記割り当て可能キャッシュサイズよりも大きい場合はＬＵの作成が不可能と判断し、
前記Ｉ／Ｏ処理では、前記ホスト計算機より発行されたＩ／Ｏ要求を受け取り、このＩ／Ｏ要求のコマンドを解析し、処理対象となるＬＵのＬＢＡにページが割り当て済みであるか否かをアドレス変換テーブルの情報を元に判断し、この判断の結果、割り当て済みである場合はページ割り当て済みの領域に対するＩ／Ｏ要求であると判断してデータ転送処理を実行し、一方、割り当て済みでない場合はページ未割り当ての領域に対するＩ／Ｏ要求であるため、新規ページの割り当てが必要であると判断して新規ページ割り当て処理へ移行し、その後、新規割り当てページに対するキャッシュ常駐処理を行った後、データ転送処理を実行し、
前記キャッシュ常駐処理では、前記キャッシュメモリに常駐させるＬＵを作成した際は、前記ＬＵのサイズ分の容量を最初から前記キャッシュメモリ上に確保するのではなく、前記ページの新規割り当てが発生する度に、この新規のページの割り当て物理容量に等しいキャッシュ容量を前記キャッシュメモリ上に確保して、前記新規のページを前記キャッシュメモリ上に常駐化させ、
前記常駐ＬＵの削除処理と前記常駐指定の解除処理では、前記ホスト計算機より発行された常駐解除指示のコマンドを受領し、このコマンドの種別が常駐ＬＵの削除であるか、もしくは常駐指定の解除であるかを判断し、この判断の結果、前記常駐ＬＵの削除である場合は削除対象となるページを未割り当て状態に変更し、次に、対象のＬＵのエントリを削除し、その後、当該ＬＵのデータを保持していたセグメントを未使用に変更して常駐領域を開放する常駐ＬＵの削除処理を実行し、一方、前記常駐指定の解除である場合は常駐により抑止されていたデータデステージを実施して前記キャッシュメモリ上のデータを前記物理ディスクへ反映し、その後、当該ＬＵのデータを保持していたセグメントを常駐指定の解除に変更し、さらに、当該ＬＵの情報を削除する常駐指定の解除処理を実行する、ことを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、容量を仮想化するストレージ装置に関し、特に、このストレージ装置におけるキャッシュ制御方法に適用して有効な技術に関する。
【背景技術】
【０００２】
複数のディスクから構成されるストレージ装置は、一般的に複数のディスクにまたがってデータを分散して保持するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）構成をとることで、ユーザに対して大容量、高信頼かつ高速なアクセスが可能なデータ保存空間を提供している。
【０００３】
ストレージ装置の導入時には、ユーザデータの保持空間であるＬＵ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）を作成する場合に、運用形態を元にストレージ管理者が将来的に必要となるＬＵの容量を事前に予測する容量設計が必要である。しかし、過大なサイズのＬＵを割り当ててしまった場合、物理容量の使用効率や過剰な投資によるＴＣＯの増大等を招いてしまう。
【０００４】
そこで、上記解決策の一手法として、ＬＵのアクセス範囲にあわせた必要最小限の物理領域のみを使用しつつ、ホスト計算機に対しては無尽蔵の容量をもつ仮想のＬＵ空間を提供する手法が提案されている（例えば、特許文献１）。本手法では、ＬＵの作成時に物理領域を割り当てるのではなく、ＬＵ内のアクセスが発生した部位に、その都度、物理領域をディスク群から動的に割り当てるという特徴を有している。
【０００５】
また、一般的なストレージ装置は、低速・大容量のハードディスクが多く使用されるため、Ｉ／Ｏ処理を高速化するために高速・低容量のキャッシュメモリ（単にキャッシュとも記す）を搭載している。しかし、キャッシュメモリ領域は、ディスク領域に比べて非常に小さいため、特定のデータが常にキャッシュメモリ上に存在し続けることは困難である。そこで、キャッシュメモリに特定のプログラムもしくはデータを意図的に常駐させ、高速処理を実現する手法（以下、キャッシュ常駐と呼ぶ）が提案されている（例えば、特許文献２）。
【０００６】
また、前記特許文献２には記載されていないが、特定のＬＵのデータをすべてキャッシュメモリ上に常駐させる技術（以下、ＬＵキャッシュ常駐と呼ぶ）も存在する。
【特許文献１】特開２００３−１５９１５号公報
【特許文献２】特開２００５−３０９７３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、前記のようなストレージ装置において、キャッシュ常駐制御の適用時には、常駐対象のデータが常駐に必要なキャッシュメモリ領域を占有するため、非常駐のデータが使用可能なキャッシュメモリ領域は縮小する。よって、キャッシュ非常駐のデータに対するＩ／Ｏ処理の速度は低下する。
【０００８】
ここで、上記ＬＵキャッシュ常駐制御を、容量を仮想化するストレージ装置へ適用する場合を考える。この場合、従来の常駐方式では、論理アドレス空間全体のデータをキャッシュメモリへ常駐させるため、仮想化されたＬＵ全サイズ分の領域をキャッシュメモリ上に確保する必要がある。このとき、Ｉ／Ｏ要求が発生していない物理領域未割り当ての部位についてもキャッシュ領域を確保してしまうため、キャッシュ領域の無駄な確保が発生し、キャッシュ利用効率が低下する。
【０００９】
そこで、本発明の目的は、容量を仮想化するストレージ装置にＬＵ単位のキャッシュ常駐制御を適用する際に、ＬＵに割り当たっている物理容量分に等しいキャッシュ領域のみを確保することで、キャッシュ常駐の領域を最適化するストレージ装置を提供することである。結果として、キャッシュ非常駐のデータが使用可能なキャッシュ領域が増大し、キャッシュ非常駐のデータに対するＩ／Ｏ処理速度が向上するため、システム性能が最大化する。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１２】
すなわち、代表的なものの概要は、ＬＵに割り当てられている物理容量分のデータのみをキャッシュメモリ上に常駐させることで、上記課題を解決する。すなわち、常駐対象のＬＵに物理容量の新規割り当てが発生した場合に、その都度、割り当て分に等しいサイズのセグメント領域を常駐用領域としてキャッシュメモリ上に確保する制御方法をとる。具体的には、キャッシュメモリに常駐させる論理空間であるＬＵが、複数の記憶デバイスを用いて作成された物理空間であるプールボリュームを所定のサイズで分割したページの集まりで構成される場合に、キャッシュメモリに常駐させるＬＵを作成した際は、ＬＵのサイズ分の容量を最初からキャッシュメモリ上に確保するのではなく、ページの新規割り当てが発生する度に、この新規のページの割り当て物理容量に等しいキャッシュ容量をキャッシュメモリ上に確保して、新規のページをキャッシュメモリ上に常駐化させる。
【００１３】
また、常駐ＬＵの作成時には、常駐ＬＵの合計サイズが、使用可能なキャッシュ容量を超過しないことを保障する制御方法をとる。具体的には、常駐希望するＬＵの割り当てサイズとキャッシュメモリ上の割り当て可能キャッシュサイズとを比較し、ＬＵの割り当てサイズが割り当て可能キャッシュサイズよりも小さい場合はＬＵの作成が可能と判断し、一方、ＬＵの割り当てサイズが割り当て可能キャッシュサイズよりも大きい場合はＬＵの作成が不可能と判断する。
【００１４】
また、常駐ＬＵの削除時には、常駐用に確保したキャッシュ領域を即座に開放することで、常駐対象にないＬＵがキャッシュ開放領域を使用可能とする制御方法をとる。具体的には、常駐ＬＵの削除であるか、もしくは常駐指定の解除であるかを判断し、常駐ＬＵの削除である場合は削除対象となるページを未割り当て状態に変更し、次に、対象のＬＵのエントリを削除し、その後、当該ＬＵのデータを保持していたセグメントを未使用に変更して常駐領域を開放し、一方、常駐指定の解除である場合は常駐により抑止されていたデータデステージを実施してキャッシュメモリ上のデータを記憶デバイスへ反映し、その後、当該ＬＵのデータを保持していたセグメントを常駐指定の解除に変更し、さらに、当該ＬＵの情報を削除する。
【発明の効果】
【００１５】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１６】
すなわち、代表的なものによって得られる効果は、容量を仮想化するストレージ装置において、ＬＵキャッシュ常駐を実施する際に、無駄なキャッシュ占有を抑止することができる。これにより、システム全体のキャッシュ利用効率が向上し、システム性能を最大化するストレージ装置の実現が可能である。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１８】
＜ストレージ装置の構成＞
図１は、本発明の一実施の形態におけるストレージ装置を示す全体構成図である。
【００１９】
図１において、ストレージ装置１０は、ストレージ装置全体の制御を行うストレージ制御装置１００と、記憶領域を提供するストレージ駆動装置２００から構成される。
【００２０】
ストレージ装置１０には、ストレージ制御装置１００のホストアダプタ１１０を介して、ストレージ装置１０を利用する上位装置となるアプリケーションサーバなどのホスト計算機３００が接続されている。なお、ストレージ装置１０とホスト計算機３００を接続するためのインタフェースには、専用のネットワークであるＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１８０を用いる。また、ＳＡＮ１８０の構築には、ファイバチャネル、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ｉＳＣＳＩ（ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＩＥＥＥ１３９４バス等を用いることが可能である。また、ストレージ装置１０に接続されるホスト計算機３００は、複数台でも良い。
【００２１】
さらに、ホスト計算機３００上には、ストレージ装置１０のディスク構成の操作や設定を行い、ストレージ装置１０の動作を制御する制御ソフトウェアがインストールされており、ホスト計算機３００上の制御ソフトウェアにより、ストレージ装置１０に対してコマンドなどを発行し、ストレージ装置１０の動作を制御することができる。ただし、ストレージ装置１０とホスト計算機３００上のストレージ制御ソフトウェアとは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１９０を経由してデータのやり取りを行う。もちろん、ストレージ装置１０の管理・制御を行う計算機はホスト計算機３００とは別のものを使用しても良い。
【００２２】
ストレージ制御装置１００は、ストレージ装置１０を利用するホスト計算機３００を接続するホストアダプタ１１０、ストレージ装置１０の全体制御を行う中央演算装置（ＣＰＵ）１２０、ＣＰＵ１２０がストレージ装置１０を制御するために必要なプログラムやデータを格納するメモリ１３０、ホスト計算機３００のデータアクセスに対するＬＵを常駐させて高速レスポンスを提供するユーザデータのキャッシュメモリ１４０、ＲＡＩＤを構成する際にパリティ計算等を行うＡＳＩＣｓ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ）１５０、ストレージ制御装置１００とストレージ駆動装置２００とを接続するディスクアダプタ１６０、ホスト計算機３００をＬＡＮ１９０を経由して接続するＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１７０から構成されている。
【００２３】
ストレージ駆動装置２００は、多数のディスクボックス２１０を備えており、ディスクボックス２１０の中に多数の物理ディスク（記憶デバイス）２１００を備えている。これらの物理ディスク２１００には、ハードディスク等を用いることが可能である。
【００２４】
＜ＬＵの構成＞
図２は、ＬＵの構成概要を示す説明図である。
【００２５】
本実施の形態では、ストレージ駆動装置２００に備えられている多数の物理ディスク２１００を用いて、特定のＲＡＩＤレベルを有する物理空間であるプールボリュームを作成し、プールボリュームから論理空間であるＬＵの構築に必要な物理容量を割り当てる。プールボリュームは、一定サイズのブロック（以下、ページ２１０１と呼ぶ）に複数分割されており、ＬＵはプールボリューム内の任意のページ２１０１の集まりにより構成される。また、１つのページ２１０１は、複数の物理ディスク２１００間にまたがって作成されても良い。
【００２６】
図２では、ＬＵＮ０（ＬＵの番号が０）が５ページ分の容量を持つＬＵであることを示しており、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）＝０からＬＢＡ＝９９９のページＮｏ．１０（２１０１０）、ＬＢＡ＝１０００からＬＢＡ＝１９９９のページＮｏ．３（２１０１１）、ＬＢＡ＝２０００からＬＢＡ＝２９９９のページＮｏ．６２（２１０１２）の３ページ分の領域については、物理容量が割り当て済みであることを示している。また、ＬＢＡ＝３０００からＬＢＡ＝３９９９のページ（２１０１３）、ＬＢＡ＝４０００からＬＢＡ＝４９９９のページ（２１０１４）の２ページ分の領域については、物理容量が未割り当ての状態（Ｎ／Ａ）であることを示している。ゆえに、ホスト計算機３００はＬＵＮ０をＬＢＡ＝０からＬＢＡ＝４９９９までの領域として認識しているが、ストレージ装置１０内では実際にアクセスの発生しているＬＢＡ＝０からＬＢＡ＝２９９９までの領域にのみ物理容量が割り当たっている状態である。ここで、物理容量未割り当て領域である、ＬＢＡ＝３０００からＬＢＡ＝３９９９、ＬＢＡ＝４０００からＬＢＡ＝４９９９の各領域にアクセスが生じた場合は、プールボリュームから新規ページを確保し、ＬＵに割り当てを行う動作となる。
【００２７】
＜メモリの構成＞
図３は、メモリ１３０を示す構成図である。
【００２８】
メモリ１３０には、ＣＰＵ１２０がストレージ装置１０を制御するために使用するプログラム１３００と、物理容量を管理するためのプールボリューム管理テーブル１３１０、物理空間であるプールボリュームと論理空間であるＬＵとの対応を管理するためのアドレス変換テーブル１３２０、常駐ＬＵの一覧およびＬＵサイズを管理するための常駐ＬＵ管理テーブル１３３０、キャッシュセグメントを管理するためのキャッシュセグメント管理テーブル１３４０、常駐ＬＵが使用するキャッシュ容量を管理するためのキャッシュ容量管理テーブル１３５０が格納されている。これらの各テーブル１３１０〜１３５０については、後述の図４〜図８において詳細に説明する。また、プログラム１３００には、後述の図９〜図１５において説明する各処理のプログラムが含まれる。
【００２９】
＜プールボリューム管理テーブルの構成＞
図４は、プールボリューム管理テーブル１３１０を示す構成図である。
【００３０】
プールボリューム管理テーブル１３１０には、ページＮｏ１３１００、ＨＤＤＮｏ１３１０１、開始アドレス１３１０２、終了アドレス１３１０３、割り当てフラグ１３１０４の各領域がある。
【００３１】
ページＮｏ１３１００は、プールボリューム内に作成されるページの識別子であり、ユニークな番号が割り当てられる。ＨＤＤＮｏ１３１０１は、各ページが所属するハードディスク（物理ディスク２１００）を管理するための識別子である。図４中ではハードディスク番号をｘ−ｙと表記しているが、ｘはディスクボックス２１０の位置を示す番号であり、ｙは同一ディスクボックス２１０内でのハードディスク（物理ディスク２１００）の位置を示す番号である。開始アドレス１３１０２および終了アドレス１３１０３は、各ページの開始位置と終了位置とをそれぞれ表すものである。割り当てフラグ１３１０４は、当該ページがＬＵに割り当て済みであるか否かを判断するためのフラグであり、フラグが１のときは割り当て済みであることを、フラグが０のときは未割り当てであることを示している。
【００３２】
＜アドレス変換テーブルの構成＞
図５は、アドレス変換テーブル１３２０を示す構成図である。
【００３３】
アドレス変換テーブル１３２０には、ＬＵＮ１３２００、開始ＬＢＡ１３２０１、終了ＬＢＡ１３２０２、ページＮｏ１３２０３の各領域がある。
【００３４】
ＬＵＮ１３２００は、ＬＵの識別子である。開始ＬＢＡ１３２０１および終了ＬＢＡ１３２０２は、論理アドレスの開始位置と終了位置とをそれぞれ表すものである。ページＮｏ１３２０３は、論理アドレスと物理アドレスの対応を管理するためのものであり、プールボリュームより割り当てられたページのページＮｏが格納される。ここで、物理容量が未割り当てである領域に対しては、ページＮｏ１３２０３にはＮ／Ａが格納される。
【００３５】
＜常駐ＬＵ管理テーブルの構成＞
図６は、常駐ＬＵ管理テーブル１３３０を示す構成図である。
【００３６】
常駐ＬＵ管理テーブル１３３０には、ＬＵＮ１３３００、ＬＵサイズ１３３０１の各領域がある。
【００３７】
ＬＵＮ１３３００は、常駐指定されたＬＵのＬＵ番号である。ＬＵサイズ１３３０１は、常駐ＬＵそれぞれに割り当てられたＬＵサイズである。図６中では、ＬＵサイズをＧＢで表現しているが、単位に決まりはなく、ＭＢ表記やＫＢ表記、もしくはブロック数等を用いても良い。
【００３８】
＜キャッシュセグメント管理テーブルの構成＞
図７は、キャッシュセグメント管理テーブル１３４０を示す構成図である。
【００３９】
キャッシュセグメント管理テーブル１３４０には、セグメントＮｏ１３４００、ＬＵＮ１３４０１、ページＮｏ１３４０２、開始ＬＢＡ１３４０３、終了ＬＢＡ１３４０４、キャッシュ常駐フラグ１３４０５の各領域がある。
【００４０】
セグメントＮｏ１３４００は、キャッシュセグメントの識別子である。ＬＵＮ１３４０１は、各セグメントに格納されているデータのＬＵＮを示す。ページＮｏ１３４０２は、セグメントに格納されているデータが、プールボリューム内のどのページに対応するかを管理するものである。開始ＬＢＡ１３４０３および終了ＬＢＡ１３４０４は、各セグメントに格納されているデータが、対応するページ内のどの位置に格納されているかを管理するものである。これは、キャッシュセグメントのサイズとページサイズとが異なった場合、ページ内のどの位置に格納されたデータであるかを特定する必要があるためである。
【００４１】
キャッシュ常駐フラグ１３４０５は、当該セグメントに格納されるデータがキャッシュ常駐指定であるか否かを管理するためのものであり、キャッシュ常駐フラグ１３４０５が１の時は当該セグメントがキャッシュ常駐対象であり、常駐対象にないＬＵは当該セグメントの使用が不可能であることを、一方、キャッシュ常駐フラグ１３４０５が０の時は当該セグメントがキャッシュ常駐非対象であり、常駐対象にない一般のＬＵが使用可能なセグメントであることを示している。また、未使用のセグメントに対しては、ＬＵＮ１３４０１、ページＮｏ１３４０２、開始ＬＢＡ１３４０３、終了ＬＢＡ１３４０４、キャッシュ常駐フラグ１３４０５にそれぞれ未使用であることを示すＮ／Ａが格納され、当該セグメントが即座に使用可能であることを示している。
【００４２】
＜キャッシュ容量管理テーブルの構成＞
図８は、キャッシュ容量管理テーブル１３５０を示す構成図である。
【００４３】
キャッシュ容量管理テーブル１３５０には、使用可能キャッシュサイズ１３５００、常駐ＬＵ合計サイズ１３５０１、割り当て可能キャッシュサイズ１３５０２の各領域がある。
【００４４】
使用可能キャッシュサイズ１３５００は、ストレージ装置１０に搭載されたキャッシュメモリ１４０のうち、ユーザデータの保持に使用可能な容量である。本数値は、ストレージ装置１０に搭載するキャッシュメモリ容量の増減に併せて変動する。常駐ＬＵ合計サイズ１３５０１は、常駐ＬＵの合計ＬＵサイズを管理するものであり、常駐ＬＵ管理テーブル１３３０の構成要素であるＬＵサイズ１３３０１を合計した数値が格納される。割り当て可能キャッシュサイズ１３５０２は、使用可能キャッシュサイズ１３５００から常駐ＬＵ合計サイズ１３５０１を引いた数値が格納されている。これは、ストレージ装置１０に搭載されたキャッシュメモリ１４０の物理容量を超えるサイズのＬＵは常駐できないため、容量超過を判断するための判断材料として使用する。図８中では、各サイズをＧＢで表現しているが、ＭＢやＫＢもしくはブロック数等の任意の単位を使用可能である。
【００４５】
＜常駐ＬＵの作成＞
図９は、常駐ＬＵ作成時の手順を示すフローチャートである。常駐ＬＵ作成時の手順を図９を用いて説明する。この常駐ＬＵ作成時の手順は、ストレージ装置１０内では、中央演算装置１２０がメモリ１３０に格納されているプログラム１３００を実行することで行われる。
【００４６】
ストレージ管理者は、ホスト計算機３００にインストールされた制御ソフトウェアを用いて、ストレージ装置１０に対して常駐ＬＵの作成を指示する（図９には未記載）。ストレージ装置１０は、ホスト計算機３００より発行された常駐ＬＵの作成指示を受領し（ステップＳ１００）、ストレージ管理者が希望するＬＵの割り当てサイズが、割り当て可能キャッシュサイズよりも小さいか否かを、割り当て可能キャッシュサイズ１３５０２と比較することにより判断する（ステップＳ１０１）。比較の結果、ＬＵサイズが割り当て可能キャッシュサイズよりも小さい場合（Ｓ１０１−Ｙｅｓ）は、ＬＵ作成可能と判断し、以下に記載するＬＵ作成処理を実行する。
【００４７】
まず、アドレス変換テーブル１３２０に、作成するＬＵのエントリを追加する。具体的には、ＬＵ番号をＬＵＮ１３２００に追加し、ＬＵ作成に必要なページの数をＬＵサイズから１ページのサイズを除算することで算出し、各ページの開始ＬＢＡ１３２０１および終了ＬＢＡ１３２０２を記載する。ただし、本処理ではＬＵ容量の割り当て処理のみ行うため、実際の物理領域であるページの割り当ては行わない。ゆえに、ページＮｏ１３２０３は全てＮ／Ａとなる（ステップＳ１０２）。次に、常駐ＬＵ管理テーブル１３３０のＬＵＮ１３３００とＬＵサイズ１３３０１にそれぞれ作成するＬＵのＬＵ番号およびＬＵサイズを記載することで、常駐ＬＵ管理テーブル１３３０を更新し（ステップＳ１０３）、キャッシュ容量管理テーブル１３５０の常駐ＬＵ合計サイズ１３５０１および、割り当て可能キャッシュサイズ１３５０２をそれぞれ更新する（ステップＳ１０４）。最後に、ＬＵ作成の完了通知をホスト計算機３００に送信することにより本処理を終了する（ステップＳ１０５）。
【００４８】
一方、ステップＳ１０１にて、ＬＵサイズが割り当て可能キャッシュサイズよりも大きいと判断した場合（Ｓ１０１−Ｎｏ）は、常駐ＬＵの全サイズが使用可能なキャッシュサイズを超過してしまうため、ＬＵの作成は不可能であると判断し、ＬＵ作成の不可通知をホスト計算機３００に送信することにより本処理を終了する（ステップＳ１０６）。
【００４９】
＜Ｉ／Ｏ要求処理＞
図１０は、ホスト計算機３００からのＩ／Ｏ要求処理の手順を示すフローチャートである。ホスト計算機３００からストレージ装置１０へ発行されるＩ／Ｏ要求を処理する際の手順を図１０を用いて説明する。このＩ／Ｏ要求処理の手順は、ストレージ装置１０内では、中央演算装置１２０がメモリ１３０に格納されているプログラム１３００を実行することで行われる。
【００５０】
ホスト計算機３００は、ストレージ装置１０に対して、リードもしくはライトのＩ／Ｏ要求を発行する（ステップＳ２００）。ストレージ装置１０は、ホスト計算機３００からのＩ／Ｏ要求を受け取り、Ｉ／Ｏ処理を実行する（ステップＳ２０１）。このＩ／Ｏ処理については、後述の図１１において詳細に説明する。ステップＳ２０１の処理終了後、ストレージ装置１０は、ホスト計算機３００に対して、要求されたＩ／Ｏ処理が終了したことを伝えるためのＩ／Ｏ処理の終了通知を発行する（ステップＳ２０２）。ホスト計算機３００は、ストレージ装置１０からの終了通知を受信し、当該コマンドを終了する（ステップＳ２０３）。
【００５１】
図１１は、ストレージ装置１０が実行するＩ／Ｏ処理であるステップＳ２０１の詳細な手順を示すフローチャートである。
【００５２】
ストレージ装置１０は、Ｉ／Ｏ要求コマンドを解析し、処理対象となるＬＵＮ、開始ＬＢＡ、終了ＬＢＡを検出する（ステップＳ３００）。次に、対象ＬＢＡにページが割り当て済みであるか否かを、アドレス変換テーブル１３２０の情報を元に判断する（ステップＳ３０１）。ステップＳ３０１の判断の結果、対象ＬＢＡに対応するページＮｏ１３２０３がＮ／Ａでない場合（Ｓ３０１−Ｙｅｓ）は、ページ割り当て済みの領域に対するＩ／Ｏ要求であると判断し、データ転送処理へと移行する（ステップＳ３０４）。このデータ転送処理については、後述の図１４において詳細に説明する。
【００５３】
また、ステップＳ３０１において、対象ＬＢＡに対応するページＮｏ１３２０３がＮ／Ａである場合（Ｓ３０１−Ｎｏ）は、ページ未割り当ての領域に対するＩ／Ｏ要求であるため、新規ページの割り当てが必要であると判断し、新規ページ割り当て処理へと移行する（ステップＳ３０２）。この新規ページ割り当て処理については、後述の図１２において詳細に説明する。その後、新規割り当てページに対するキャッシュ常駐処理を行う（ステップＳ３０３）。このキャッシュ常駐処理については、後述の図１３において詳細に説明する。その後、データ転送処理へと移行する（ステップＳ３０４）。
【００５４】
図１２は、新規ページ割り当て処理であるステップＳ３０２の詳細な手順を示すフローチャートである。
【００５５】
まず、プールボリューム管理テーブル１３１０の割り当てフラグ１３１０４の情報を元に、割り当て可能ページがあるか否か、すなわちプールボリューム内に未割り当てのページが存在するか否かを検出する（ステップＳ４００）。ステップＳ４００にて、割り当てフラグ１３１０４が０のページが存在しない場合（Ｓ４００−Ｎｏ）は、割り当て可能ページなしと判断し、ホスト計算機３００にインストールされたソフトウェアを介して、ストレージ管理者にプールボリュームの拡張依頼を通知する（ステップＳ４０２）。ステップＳ４０２の拡張依頼通知を受け取ったストレージ管理者は、新たな物理ディスク２１００をプールボリュームに追加することで、プールボリュームの拡張が実行される（ステップＳ４０３）。プールボリューム拡張処理により、プールボリューム管理テーブル１３１０のエントリは追加ディスク分拡張され、追加ディスクに所属するページの割り当てフラグ１３１０４の値は全て未割り当てを示す０の状態となる。ステップＳ４０３での拡張終了後、再度、新規ページの割り当て可否を判断するステップＳ４００へと移行する。
【００５６】
一方、ステップＳ４００にて、割り当てフラグ１３１０４が０のページが存在する場合（Ｓ４００−Ｙｅｓ）は、割り当て可能ページありと判断し、当該ページの割り当て処理を実行する（ステップＳ４０１）。具体的には、アドレス変換テーブル１３２０のページＮｏ１３２０３をＮ／Ａから割り当てページのページＮｏに変更し、プールボリューム管理テーブル１３１０の割り当てページのページＮｏ１３１００に対応する割り当てフラグ１３１０４を１へと変更する。
【００５７】
図１３は、キャッシュ常駐処理であるステップＳ３０３の詳細な手順を示すフローチャートである。
【００５８】
常駐ＬＵ管理テーブル１３３０の情報を元に、当該ＬＵがキャッシュ常駐対象であるか否かを判断する（ステップＳ５００）。処理対象ＬＵのＬＵＮが常駐ＬＵ管理テーブル１３３０のＬＵＮ１３３００に記載されている場合（Ｓ５００−Ｙｅｓ）は、当該ＬＵがキャッシュ常駐対象であると判断し、ステップＳ３０２で割り当てたページのデータをキャッシュメモリ１４０上に常駐させるため、割り当てページ分のセグメント領域をキャッシュメモリ１４０上に確保する（ステップＳ５０１）。ステップＳ５０１では、キャッシュセグメント管理テーブル１３４０に対し、確保したセグメントのセグメントＮｏ１３４００に対応するＬＵＮ１３４０１、ページＮｏ１３４０２、開始ＬＢＡ１３４０３、終了ＬＢＡ１３４０４の更新を行う。
【００５９】
次に、当該コマンドのＩ／Ｏ種別を判断し（ステップＳ５０２）、リードコマンドであると判断した場合（Ｓ５０２−Ｒｅａｄ）は、データをキャッシュヒットさせるために、物理ディスク２１００上のデータをキャッシュメモリ１４０上に読み出すためのデータコピー（ステージング）を行う（ステップＳ５０３）。一方、ステップＳ５０２にて、ライトコマンドであると判断した場合（Ｓ５０２−Ｗｒｉｔｅ）は、データの書込みを行うためのキャッシュメモリ領域はステップＳ５０１で確保済みのために何もしない。次に、キャッシュ常駐フラグ１３４０５の値にキャッシュ常駐対象を示す１を設定して当該セグメントを常駐属性に変更する（ステップＳ５０４）。以上のステップにより、常駐対象ＬＵに対して、新規に割り当てられた物理領域分のみのキャッシュ領域の確保が完了する。
【００６０】
また、ステップＳ５００の判断の結果、当該ＬＵがキャッシュ常駐対象でない場合（Ｓ５００−Ｎｏ）は、本処理を終了する。
【００６１】
図１４は、データ転送処理であるステップＳ３０４の詳細な手順を示すフローチャートである。
【００６２】
ステップＳ３００と同様に、Ｉ／Ｏ要求コマンドを解析し、処理対象となるＬＵＮ、開始ＬＢＡ、終了ＬＢＡを検出する（ステップＳ６００）。次に、Ｉ／Ｏ種別を解析し、当該コマンドがリードコマンドであるか、ライトコマンドであるかを判断する（ステップＳ６０１）。判断の結果、リードコマンドである場合（Ｓ６０１−Ｒｅａｄ）は、キャッシュセグメント管理テーブル１３４０の情報を元に、キャッシュヒット／ミス判定を実施する（ステップＳ６０２）。キャッシュセグメント管理テーブル１３４０に処理対象のデータが存在しない場合（Ｓ６０２−ミス）は、キャッシュミスと判断し、物理ディスク２１００からキャッシュメモリ１４０へのデータコピー（ステージング）を実行する（ステップＳ６０３）。その後、キャッシュメモリ１４０上にステージングされたデータをホスト計算機３００へ転送し（ステップＳ６０４）、本処理を終了する。一方、ステップＳ６０２にて、キャッシュヒットであると判断した場合（Ｓ６０２−ヒット）は、キャッシュメモリ１４０上に存在する処理対象のデータをホスト計算機３００へ転送し（ステップＳ６０４）、本処理を終了する。
【００６３】
また、ステップＳ６０１にて、Ｉ／Ｏ種別がライトコマンドであると判断した場合（Ｓ６０１−Ｗｒｉｔｅ）は、ステップＳ６０２と同様に、キャッシュセグメント管理テーブル１３４０の情報を元に、キャッシュヒット／ミス判定を実施する（ステップＳ６０５）。キャッシュセグメント管理テーブル１３４０に処理対象のデータが存在する場合（Ｓ６０５−ヒット）は、キャッシュヒットと判断し、当該セグメントへデータを上書きライトし（ステップＳ６０６）、本処理を終了する。一方、ステップＳ６０５にて、キャッシュミスと判断した場合（Ｓ６０５−ミス）は、キャッシュメモリ１４０の空きセグメントにデータをライトし（ステップＳ６０７）、本処理を終了する。
【００６４】
ここで、キャッシュメモリ１４０へライトされたデータは物理ディスク２１００への書き込みが必要であるが、一般的なストレージ装置は、キャッシュメモリ１４０上にデータを格納した時点でホスト計算機３００へ完了応答を送信し、その後、任意のタイミングで物理ディスク２１００へのライトを行う非同期ライト処理をとっている。図１４においても、キャッシュライト完了までのフローチャートのみしか示していないが、非同期でディスクライト処理を行うものとする。ただし、キャッシュ常駐対象のライトデータに関しては、物理ディスク２１００へのライトは発生しない。
【００６５】
また、キャッシュヒット／ミス判定を行うステップＳ６０２およびステップＳ６０５において、キャッシュ常駐対象のＬＵについては、当然、キャッシュヒットの判定となる。
【００６６】
＜常駐ＬＵの削除もしくは常駐指定の解除＞
図１５は、常駐ＬＵの削除もしくは常駐指定の解除時の手順を示すフローチャートである。この常駐ＬＵの削除もしくは常駐指定の解除時の手順は、ストレージ装置１０内では、中央演算装置１２０がメモリ１３０に格納されているプログラム１３００を実行することで行われる。
【００６７】
ここで、常駐指定の解除とは、ＬＵ自体の削除は行わないが、キャッシュ常駐は解除する操作を指す。
【００６８】
まず、ストレージ管理者は、ホスト計算機３００にインストールされた制御ソフトウェアを用いて、ストレージ装置１０に対して常駐ＬＵの削除、もしくは常駐指定の解除を指示する（図１５には未記載）。ストレージ装置１０は、ホスト計算機３００より発行された常駐解除指示のコマンドを受領し（ステップＳ７００）、コマンドの種別が、常駐ＬＵ自体の削除であるのか、もしくは常駐指定の解除のみであるかを判断する（ステップＳ７０１）。
【００６９】
ステップＳ７０１の判断の結果、コマンドがＬＵの削除である場合（Ｓ７０１−ＬＵ削除）は、アドレス変換テーブル１３２０の情報を元に、削除対象のＬＵが使用しているページＮｏ１３２０３を元に、プールボリューム管理テーブル１３１０で削除対象となるページＮｏ１３１００の割り当てフラグ１３１０４を未割り当て状態を示す０に変更する（ステップＳ７０２）。次に、アドレス変換テーブル１３２０内の該当するＬＵＮ１３２００、開始ＬＢＡ１３２０１、終了ＬＢＡ１３２０２、ページＮｏ１３２０３をそれぞれ削除することで、対象のＬＵのエントリを削除する（ステップＳ７０３）。
【００７０】
その後、キャッシュセグメント管理テーブル１３４０内で、当該ＬＵのデータを保持していたセグメントのセグメントＮｏ１３４００を、ＬＵＮ１３４０１を元に取得し、当該セグメントのＬＵＮ１３４０１、ページＮｏ１３４０２、開始ＬＢＡ１３４０３、終了ＬＢＡ１３４０４、キャッシュ常駐フラグ１３４０５に未使用を意味するＮ／Ａを格納することで常駐領域を開放する（ステップＳ７０５）。さらに、常駐ＬＵ管理テーブル１３３０の中から当該ＬＵの情報を削除し（ステップＳ７０６）、キャッシュ容量管理テーブル１３５０の常駐ＬＵ合計サイズ１３５０１および割り当て可能キャッシュサイズ１３５０２を更新する（ステップＳ７０７）。以上の処理により常駐ＬＵ削除処理を終了し、最後に処理完了通知をホスト計算機３００に送信することにより本処理を終了する（ステップＳ７０８）。
【００７１】
一方、ステップＳ７０１の判断の結果、コマンドがＬＵの常駐指定の解除である場合（Ｓ７０１−常駐解除）は、常駐により抑止されていたデータデステージ（キャッシュからディスクへのデータライト）を実施し、キャッシュメモリ１４０上のデータを物理ディスク２１００へと反映する（ステップＳ７０４）。その後は、ステップＳ７０５からステップＳ７０７の処理を実行することで、各テーブルを更新する。ただし、ステップＳ７０５のキャッシュセグメント管理テーブル１３４０の更新処理では、ＬＵ削除時の動作とは異なり、当該セグメントＮｏ１３４００のキャッシュ常駐フラグ１３４０５のみを、常駐指定の解除を意味する０に変更し、ＬＵＮ１３４０１、ページＮｏ１３４０２、開始ＬＢＡ１３４０３、終了ＬＢＡ１３４０４の変更は行わない。これは、常駐指定の解除後は当該セグメントは次第に非常駐ＬＵに使用されることとなるが、非常駐ＬＵに使用される前までは、キャッシュヒットの可能性を残すためである。最後に処理完了通知をホスト計算機３００に送信することにより本処理を終了する（ステップＳ７０８）。
【００７２】
上記処理により、常駐指定の解除時には、解除処理と同時にキャッシュメモリ１４０上に確保されていた占有領域を即座に開放することで、開放領域を常駐指定されていないＬＵが使用することを可能とする。
【００７３】
＜本実施の形態の効果＞
（１）キャッシュメモリ１４０に常駐させるＬＵを作成した際は、ＬＵのサイズ分の容量を最初からキャッシュメモリ１４０上に確保するのではなく、常駐対象のＬＵに物理容量の新規割り当てが発生した場合に、その都度判断することで、割り当て分に等しいサイズのセグメント領域を常駐用領域としてキャッシュメモリ１４０上に確保することができる。
【００７４】
（２）常駐ＬＵの作成時には、常駐希望するＬＵの割り当てサイズとキャッシュメモリ１４０上の割り当て可能キャッシュサイズとを比較して判断することで、常駐ＬＵの合計サイズが使用可能なキャッシュ容量を超過しないことを保障することができる。
【００７５】
（３）常駐ＬＵの削除時には、削除対象となるＬＵのエントリを削除し、常駐用に確保したキャッシュ領域を即座に開放することで、常駐対象にないＬＵがキャッシュ開放領域を使用可能とする。また、常駐指定の解除時には、常駐により抑止されていたデータデステージを実施して当該ＬＵの情報を削除することで、常駐指定を解除することができる。
【００７６】
（４）ＬＵキャッシュ常駐を実施する際に、常駐キャッシュ領域の無駄な確保の抑止が可能となることから、キャッシュ非常駐のデータが使用可能なキャッシュ領域が増大し、キャッシュ非常駐のデータに対するＩ／Ｏ処理速度が向上してシステム性能が最大化するので、ストレージ装置全体のキャッシュ利用効率が向上し、ストレージ装置全体の性能向上を実現することができる。
【００７７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施の形態におけるストレージ装置を示す全体構成図である。
【図２】図１のストレージ装置において、ＬＵの構成概要を示す説明図である。
【図３】図１のストレージ装置において、メモリを示す構成図である。
【図４】図１のストレージ装置において、プールボリューム管理テーブルを示す構成図である。
【図５】図１のストレージ装置において、アドレス変換テーブルを示す構成図である。
【図６】図１のストレージ装置において、常駐ＬＵ管理テーブルを示す構成図である。
【図７】図１のストレージ装置において、キャッシュセグメント管理テーブルを示す構成図である。
【図８】図１のストレージ装置において、キャッシュ容量管理テーブルを示す構成図である。
【図９】図１のストレージ装置において、常駐ＬＵ作成時の手順を示すフローチャートである。
【図１０】図１のストレージ装置において、ホスト計算機からのＩ／Ｏ要求処理の手順を示すフローチャートである。
【図１１】図１のストレージ装置において、ストレージ装置が実行するＩ／Ｏ処理の詳細な手順を示すフローチャートである。
【図１２】図１のストレージ装置において、新規ページ割り当て処理の詳細な手順を示すフローチャートである。
【図１３】図１のストレージ装置において、キャッシュ常駐処理の詳細な手順を示すフローチャートである。
【図１４】図１のストレージ装置において、データ転送処理の詳細な手順を示すフローチャートである。
【図１５】図１のストレージ装置において、常駐ＬＵの削除もしくは常駐指定の解除時の手順を示すフローチャートである。
【符号の説明】
【００７９】
１０…ストレージ装置、
１００…ストレージ制御装置、１１０…ホストアダプタ、１２０…中央演算装置、１３０…メモリ、１３００…プログラム、１３１０…プールボリューム管理テーブル、１３２０…アドレス変換テーブル、１３３０…常駐ＬＵ管理テーブル、１３４０…キャッシュセグメント管理テーブル、１３５０…キャッシュ容量管理テーブル、１４０…キャッシュメモリ、１５０…ＡＳＩＣｓ、１６０…ディスクアダプタ、１７０…ＮＩＣ、
１８０…ＳＡＮ、１９０…ＬＡＮ、
２００…ストレージ駆動装置、２１０…ディスクボックス、２１００…物理ディスク、
３００…ホスト計算機。
【図１】
2010102413.tif 000003
【図２】
2010102413.tif 000004
【図３】
2010102413.tif 000005
【図４】
2010102413.tif 000006
【図５】
2010102413.tif 000007
【図６】
2010102413.tif 000008
【図７】
2010102413.tif 000009
【図８】
2010102413.tif 000010
【図９】
2010102413.tif 000011
【図１０】
2010102413.tif 000012
【図１１】
2010102413.tif 000013
【図１２】
2010102413.tif 000014
【図１３】
2010102413.tif 000015
【図１４】
2010102413.tif 000016
【図１５】
2010102413.tif 000017