(57)【特許請求の範囲】
【請求項１】
少なくとも１つの物理ディスクを備え、この物理ディスクを複数の第１の物理ブロックと、この第１の物理ブロックよりも記憶容量の小さい複数の第２の物理ブロックとに区切り、これらの第１の物理ブロック及び第２の物理ブロックを割り当てることにより複数の論理ブロックを持つ論理ボリュームを構成するディスクアレイ装置であって、
外部装置から書き込み要求されたライトデータを記憶するキャッシュメモリと、
前記キャッシュメモリに記憶された第１のライトデータを書き込み要求された論理ブロックに書き込むときに、前記第１のライトデータの書き込み先である論理ブロックに割り当てられている第１の物理ブロックに前記第１のライトデータ以外に書き込むべきライトデータが前記キャッシュメモリに存在するか否かを判定する第１の判定手段と、
前記第１の判定手段の判定の結果、前記第１のライトデータの書き込み先である論理ブロックに割り当てられている第１の物理ブロックに前記第１のライトデータ以外に書き込むべき第２のライトデータが前記キャッシュメモリに存在する場合に、前記第１のライトデータと前記第２のライトデータとが同一の前記第２の物理ブロック内に書き込めるか否かを判定する第２の判定手段と、
前記第２の判定手段の判定の結果、前記第１のライトデータと前記第２のライトデータとが同一の前記第２の物理ブロック内に書き込める場合に、前記第１のライトデータ及び前記第２のライトデータと連続して書き込まれるべきライトデータが前記キャッシュメモリに存在するか否かを判定する第３の判定手段と、
前記第３の判定手段の判定の結果、前記第１のライトデータ及び前記第２のライトデータと連続して書き込まれるべきライトデータが前記キャッシュメモリに存在しない場合に、前記第１のライトデータの書き込み先である論理ブロックに割り当てられている第１の物理ブロックに替えて第２の物理ブロックを割り当てるマイグレーション手段と、
前記マイグレーション手段で割り当てられた前記第２の物理ブロックに前記第１のライトデータを書き込むデータ書き込み手段と、
を具備したディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はディスクアレイ装置に関する。
【背景技術】
【０００２】
従来、記憶装置を備えるディスクアレイ装置とホスト装置とによって構成される計算シ
ステムにおいて、記憶装置を仮想的な論理ボリューム（以下、論理ボリュームという）に
として提供する技術がある。このとき、論理ボリュームに対する物理ブロック（物理容量
）の割り当てを行なう。
【０００３】
論理ボリュームに対する物理ボリュームの割り当ては、具体的には、論理ボリュームを
論理ブロックという単位の記憶領域に分割するとともに、物理ボリュームも論理ブロック
と同一サイズの物理ブロック単位で分割し、ライト先の論ブロックに物理ブロックを割り
当てることであり、例えば記憶装置がホスト装置から最初にライト要求を受信した時に行
う。
【０００４】
ここで、論理ブロックに物理ブロックを割り当てる際に、ライトデータの容量に基づい
て判定を行い、あらかじめ設定された物理ブロックより小さいサイズの記憶容量で十分で
ある場合には、小さいサイズの物理ブロックを割り当てる、などの可変的な割り当てを行
なうことで物理ボリュームの効率的な割り当てを可能にする技術がある。
【０００５】
上述の技術では、例えば、２５０ＧＢの論理ボリュームの全記憶容量のうち、実際にホ
スト装置からライトされたデータが１００ＧＢ程度で、このライトデータが論理ボリュー
ムの先頭領域または任意領域から隙間無く格納されている場合は、２５０ＧＢの論理ボリ
ュームを実現するのに、実際にライトデータを格納するために必要な１００ＧＢ分の最小
限の物理ブロックだけで実現できることとなる。
【０００６】
しかしながら、ホスト装置上で動作するオペレーティングシステム（以下、ＯＳという
）において論理ボリュームを管理するファイルシステムの種類によっては、上述の論理ボ
リュームをライトデータ量に等しい物理ブロックのみで実現するできないことがあるとい
う問題がある。また、論理ボリューム全領域分の物理ブロックが関連付けられてしまう場
合も存在する。
【０００７】
論理ボリューム全領域分の物理ブロックが関連付けられてしまう例としては、ＯＳ上で
論理ボリュームを使用可能とするために行なう、ファイルシステムによるフォーマット処
理がある。このフォーマット処理では、論理ボリューム内に格納するファイルの所在を管
理するための小サイズのファイルシステム管理情報のライトが実施される。フォーマット
処理は、ライトアクセス先のアドレスが規則的な間隔で遷移するため、論理ボリューム全
体に分散して少容量（数ＫＢ〜ＭＢ程度）のファイルシステム管理情報の一部を格納する
方式のファイルシステムが使用された場合は、分散して格納する間隔が、論理ブロック及
び物理ブロックの容量よりも小さいため、論理ボリュームのすべての論理ブロックにファ
イルシステム管理情報がライトされることとなる。
【０００８】
その結果、フォーマット処理が完了し、ＯＳ上で論理ボリュームが使用可能な状態とな
った時点では、論理ボリュームの総容量に等しい量の物理ブロックが割り付けられてしま
い、論理ボリューム機能の優位性が失われてしまう場合がある。なお、このような場合は
フォーマット処理に限ったことではなく、断片的なライト処理が行われた場合にも同様の
状態になってしまい容量効率が悪くなってしまう。
【０００９】
これに対し、フォーマットの場合など、アクセス先の間隔やデータサイズなどのアクセ
スパターンをあらかじめ登録し、登録したパターンでのライト処理が行われた場合に、小
さいサイズの物理ブロックを割り当てる技術がある。
【００１０】
しかしながら上述の技術は、未知パターンのアクセスの場合は対応できないため、物理
容量を有効活用できない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−５９３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明が解決しようとする課題は、未知のアクセスパターンであっても物理容量の有効
利用が可能なディスクアレイ装置を提供することである。
【課題を解決するための手段】
【００１３】
実施形態のディスクアレイ装置は、少なくとも１つの物理ディスクを備え、この物理ディスクを複数の第１の物理ブロックと、この第１の物理ブロックよりも記憶容量の小さい複数の第２の物理ブロックとに区切り、これらの第１の物理ブロック及び第２の物理ブロックを割り当てることにより複数の論理ブロックを持つ論理ボリュームを構成するディスクアレイ装置であって、外部装置から書き込み要求されたライトデータを記憶するキャッシュメモリと、前記キャッシュメモリに記憶された第１のライトデータを書き込み要求された論理ブロックに書き込むときに、前記第１のライトデータの書き込み先である論理ブロックに割り当てられている第１の物理ブロックに前記第１のライトデータ以外に書き込むべきライトデータが前記キャッシュメモリに存在するか否かを判定する第１の判定手段と、前記第１の判定手段の判定の結果、前記第１のライトデータの書き込み先である論理ブロックに割り当てられている第１の物理ブロックに前記第１のライトデータ以外に書き込むべき第２のライトデータが前記キャッシュメモリに存在する場合に、前記第１のライトデータと前記第２のライトデータとが同一の前記第２の物理ブロック内に書き込めるか否かを判定する第２の判定手段と、前記第２の判定手段の判定の結果、前記第１のライトデータと前記第２のライトデータとが同一の前記第２の物理ブロック内に書き込める場合に、前記第１のライトデータ及び前記第２のライトデータと連続して書き込まれるべきライトデータが前記キャッシュメモリに存在するか否かを判定する第３の判定手段と、前記第３の判定手段の判定の結果、前記第１のライトデータ及び前記第２のライトデータと連続して書き込まれるべきライトデータが前記キャッシュメモリに存在しない場合に、前記第１のライトデータの書き込み先である論理ブロックに割り当てられている第１の物理ブロックに替えて第２の物理ブロックを割り当てるマイグレーション手段と、前記マイグレーション手段で割り当てられた前記第２の物理ブロックに前記第１のライトデータを書き込むデータ書き込み手段とを具備する。
【図面の簡単な説明】
【００１４】
【図１】実施形態のディスクアレイ装置に係る基本構成の一例を示す図。
【図２】実施形態のディスクアレイ装置に係る物理ブロックの一例を示す図。
【図３】実施形態のディスクアレイ装置に係る論理／物理ブロック管理データのデータ構造の一例を示す図。
【図４】実施形態のディスクアレイ装置に係るデステージング統計管理データのデータ構造の一例を示す図。
【図５】実施形態のディスクアレイ装置にライト要求受信処理の一例を示すフローチャート。
【図６】実施形態のディスクアレイ装置に係る物理ブロックマイグレーション処理の一例を示すフローチャート。
【図７】実施形態のディスクアレイ装置に係るキャッシュタグのデータ構造の一例を示す図。
【図８】実施形態のディスクアレイ装置に係るデステージング処理の一例を示すフローチャート。
【図９】実施形態のディスクアレイ装置に係るサーチ範囲の一例を示す概念図。
【図１０】実施形態のディスクアレイ装置に係るデステージング処理対象のデータの一例を示す概念図。
【図１１】実施形態のディスクアレイ装置に係るデステージング処理対象のデータの一例を示す概念図。
【発明を実施するための形態】
【００１５】
以下、実施形態のストレージ装置について図面を参照して説明する。
【００１６】
（第１の実施形態）
図１乃至図１２を参照して、本実施形態のディスクアレイ装置について説明する。
【００１７】
図１は、本実施形態のディスクアレイ装置２０の基本構成の一例を示す図である。図１
に示すように、本実施形態のディスクアレイ装置２０は、ネットワーク１１を介してホス
ト装置１０と接続されている。
【００１８】
ホスト装置１０は、ディスクアレイ装置２０の上位装置であり、ディスクアレイ装置２
０を外部記憶装置として利用する。ネットワーク１１は、例えば広域ネットワークであり
、ネットワークの種類は、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などに
より構成するインターネット／イントラネットである。
【００１９】
ディスクアレイ装置２０は、制御部２１と記憶装置２３とがディスクインタフェースバ
ス２２を介して接続されている。
【００２０】
ディスクインタフェースバス２２のインタフェース種別は、ＳＣＳＩ、或いはＦＣ、或
いはＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）、或いはＳＡＴＡ（Ｓｅｒｉ
ａｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ）などである。
【００２１】
記憶装置２３は、複数のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２４、２５で構成
されるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  
Ｄｉｓｋｓ）１とＲＡＩＤ２とを含み、論理ディスクを構成する。
【００２２】
ここで、ＲＡＩＤとは、ＨＤＤ群２４−１〜２４−ｎもしくはＨＤＤ２５−１〜２５−
ｎを、ＲＡＩＤ技術を使用してそれぞれ１つの物理ディスクとして管理する単位であり、
これらＲＡＩＤはディスクアレイ制御プログラムによって管理される。また、以降の記憶
装置２３を使用した機能は、ディスクアレイ制御プログラムによって制御される。
【００２３】
なお、ＨＤＤ２４、２５は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）でもよい
。また、本実施形態ではＲＡＩＤ１とＲＡＩＤ２とに含まれるＨＤＤの個数が同一だが、
異なる個数でも良い。また、記憶装置２３に含まれるＲＡＩＤは２つでなくても良い。ま
た、記憶装置２３は、ＲＡＩＤを複数構成せず、ＨＤＤ２４−１〜２４−ｎ及びＨＤＤ２
５−１〜２５−ｎの各記憶領域を連続した１つのＲＡＩＤとして構成してもよい。
【００２４】
制御部２１は、ホストインタフェース（以下、ホストＩ／Ｆという）２０１と、ディス
クインタフェース（以下、ディスクＩ／Ｆという）２０２と、キャッシュメモリ２０３と
、キャッシュコントローラ２０４と、フラッシュＲＯＭ（以下、ＦＲＯＭという）２０５
と、ローカルメモリ２０６と、ＣＰＵ２０７と、チップセット２０８と、内部バス２０９
とを備えている。
【００２５】
ホストｉ／Ｆ２０１は、ホスト装置１０との間のデータ転送（データ転送プロトコル）
を制御する。ホストＩ／Ｆ２０１は、ホスト装置１０から記憶装置２３に対するデータの
ライト要求を受信した場合、当該要求を、内部バス２０９、チップセット２０８を経由し
て、ＣＰＵ２０７上で動作するディスクアレイ制御プログラムに伝達する。また、ホスト
Ｉ／Ｆ２０１は、キャッシュメモリ２０３または記憶装置２３にライトデータをディスク
アレイ制御プログラムによって格納したことにより生成されたライト完了応答をホスト装
置１０に返信する。
【００２６】
また、ホストＩ／Ｆ２０１は、ホスト装置１０からデータリード要求を受信した場合、
当該要求を、内部バス２０９、チップセット２０８を経由して、ＣＰＵ２０７に伝達し、
キャッシュメモリ２０３または記憶装置２３に格納されているリード対象データをディス
クアレイ制御プログラムが取得したことによりリードデータを付加して生成されたリード
完了応答をホスト装置１０に返信する。
【００２７】
ディスクＩ／Ｆ２０２は、ディスクアレイ制御プログラムが受信したホスト装置１０か
らの記憶装置２３に対するデータライト／リード要求に従い、記憶装置２３に対してデー
タライト／リード要求を送信し、その応答を受信するためのインタフェースである。
【００２８】
キャッシュメモリ２０３は、ホスト装置１０から記憶装置２３にデータライト要求があ
った場合に、ホスト装置１０からのライト／リード要求に対する完了応答レスポンスの高
速化のためのバッファとして機能する。すなわち、ディスクアレイ装置２０がホスト装置
１０からのデータライト要求を受信した場合は、ライト処理に時間が掛かる記憶装置２３
へのアクセスをせず、ライトデータをキャッシュメモリ２０３上に格納することでライト
処理を完了させホスト装置１０に応答を返信する。その後、制御部２１は、特定のタイミ
ングで、そのライトデータを記憶装置２３にライトするデステージング処理を行い、ライ
トデータを格納していたキャッシュメモリ２０３の記憶領域を開放する。
【００２９】
一方、ホスト装置１０から記憶装置２３へデータリード要求があった場合、リード対象
データがキャッシュメモリ上に格納されている場合は、リード処理に時間が掛かる記憶装
置２３へのアクセスを避け、リードデータをキャッシュメモリ２０３上から取得しホスト
装置１０に応答を返信する。なお、リード要求をなるべくキャッシュメモリに格納してい
るデータで応答するために、今後発生する可能性があるリード要求をあらかじめ予測して
記憶装置２３からリードし事前にキャッシュメモリにリードデータを格納しておくような
機能を有している場合もある。
【００３０】
キャッシュメモリ２０３は、記憶領域をある論理的な単位に分割されて管理されている
。この分割された１つの単位をキャッシュブロックと呼ぶ。このキャッシュブロックを後
述する論理ボリューム内の記憶位置に対応させて、その記憶位置のデータをキャッシュメ
モリ２０３に格納することができる。各キャッシュブロックは、例えばセットアソシアテ
ィブ方式によるメモリマッピングで管理されるものとする。
【００３１】
キャッシュコントローラ２０４は、ＣＰＵ２０７上で動作するディスクアレイ制御プロ
グラムからの命令に従いキャッシュメモリ２０３へのデータのリード／ライト処理を実施
する。
【００３２】
ＦＲＯＭ２０５は、ＣＰＵ２０７により実行されるディスクアレイ制御プログラムを格
納するための書き換えが可能な不揮発性メモリであり、ディスク制御装置が起動されたと
きの最初の処理でＦＲＯＭ２０５に格納されているディスクアレイ制御プログラムを、ロ
ーカルメモリ２０６にコピーする。なお、ＦＲＯＭ２０５に代えて読み出し専用の不揮発
性メモリ、例えばＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）を用いることも可能であ
る。
【００３３】
ローカルメモリ２０６は、ＦＲＯＭ２０５からコピーされたディスクアレイ制御プログ
ラムを記憶するのに用いられるほか、ローカルメモリ２０６の一部の領域は、ＣＰＵ２０
７が動作する上で使用するワーク領域として用いられる。ＣＰＵ２０７は、ローカルメモ
リ２０６に格納されたディスクアレイ装置制御プログラムのプログラムコードに従い、制
御部２１内の各部を制御する。
【００３４】
ＣＰＵ２０７は、チップセット２０８を介し、ローカルメモリ２０６上に格納されてい
るディスクアレイ制御プログラムが動作する。
【００３５】
チップセット２０８は、ＣＰＵ２０７及びその周辺回路を内部バス２０９に結合するブ
リッジ回路である。
【００３６】
内部バス２０９は汎用バスであり、例えばＰＣＩｅｘｐｒｅｓｓバスである。ホストＩ
／Ｆ２０１、ディスクＩ／Ｆ２０２、キャッシュコントローラ２０４及びチップセット２
０９は、内部バス２１０により相互接続されている。また、ＦＲＯＭ２０５、ローカルメ
モリ２０６、ＣＰＵ２０７は、チップセット２０８を介して内部バス２０９に接続されて
いる。
【００３７】
制御部２１は上述のような構成により、ディスクアレイ装置２０に対するホスト装置１
０から要求に基づいて、論理ディスクを構成する記憶装置２３にデータのリードやライト
を行なう。
【００３８】
すなわち、制御部２１は記憶装置２３の記憶領域を論理ディスク（論理ボリューム）と
して管理する仮想論理ボリューム機能を有する。
【００３９】
ここで、図２乃至図４を参照して、本実施形態の制御部２１における仮想論理ボリュー
ム機能について説明する。
【００４０】
制御部２１は、物理ブロックという記憶領域単位で記憶装置２３の記憶領域を異なるサ
イズの複数の物理ブロックに分割する。具体的には、制御部２１は、図２に示すように、
記憶装置２３の含まれる全てのＲＡＩＤの記憶容量をあらかじめ設定された基準サイズの
物理ブロック（第１の物理ブロックといい、以下、通常物理ブロックと記載する）２４０
と、第１の物理ブロックよりも小容量の物理ブロック（第２の物理ブロックといい、以下
、小物理ブロックと記載する）２４１の２種類の異なるサイズの物理ブロック単位に先頭
領域から分割し、先頭領域の物理ブロックから順に連続した番号を割り当てる。例えば、
物理ブロック２４０＝５１２ＭＢ、小物理ブロック２４１＝１ＭＢといったサイズにする
。なお、物理ブロックのサイズは２種類に限定するものではなく、それ以上の種類があっ
てもよい。この場合、複数種類の物理ブロックの中から通常物理ブロックを設定する。ま
た、小物理ブロック２４１のサイズは固定でもよいし、パラメタで指定できるようにして
も良い
図２には、本実施形態のＲＡＩＤ１に含まれる通常物理ブロック２４０は上から順に物
理ブロック２４０（１）〜２４０（３）の３つ、小物理ブロック２４１は上から順に小物
理ブロック２４１（１）〜２４１（３）の３つが示されている。これらの物理ブロック２
４０、２４１の未使用分は、例えば制御部２１によってＲＡＩＤ毎のフリーリストで管理
されている。
【００４１】
続いて制御部２１は、ホスト装置１０がデータを格納／参照することができる論理ボリ
ュームを定義する。論理ボリュームの定義は、制御部２１によって、仮想論理ボリューム
の総記憶容量と、論理ボリュームの実体となる物理ブロックを供給するＲＡＩＤを指定す
る。この際、制御部２１はＲＡＩＤの物理ブロック分割と同様に、論理ボリュームの容量
を、論理ブロックという物理ブロックと同じ容量の分割単位で先頭領域から順に分割管理
し、先頭領域の論理ブロックから順に連続した番号を付ける。
【００４２】
制御部２１は、上述した論理ボリューム上の論理ブロックに物理ブロックを割り当てる
。
【００４３】
制御部２１は、ホスト装置１０から論理ボリュームにデータライト要求がある場合にラ
イトアクセス領域に該当する論理ブロックがどのＲＡＩＤのどこの物理ブロックに該当す
るかを確認し、該当する物理ブロックにデータをライトする。  
このように論理ボリュームを構成する方式の長所は、ＲＡＩＤの記憶容量が、あらかじ
め決められた記憶容量に依存せず、任意容量の論理ボリュームを定義することが可能であ
ること、及び、１つのＲＡＩＤへのアクセスを複数の物理ブロックに分散させることがで
きるため、一部のＲＡＩＤにアクセスが集中することが防止されることで、ホスト装置１
０に対するアクセスレスポンスが高速化されることである。
【００４４】
なお、本実施形態のディスクアレイ装置２０は、論理ボリュームに関連付ける物理ブロ
ックを最初から全容量分関連付けるのではなく、その論理ボリュームに対してホスト装置
１０からライトアクセスがありデータ格納が必要となった領域にのみ、物理ブロックを割
り当てる。
【００４５】
制御部２１は、上記の物理ブロック２４０、２４１のそれぞれに対して、どの論理ブロ
ックに割り当てられているかを示す論理／物理ブロック管理データ２１０を用意する。論
理／物理ブロック管理データ２１０は、例えば制御部２１のキャッシュメモリ２０３や、
記憶装置３００に記憶される。
【００４６】
制御部２１は、例えばこの論理／物理ブロック管理データ２１０を区間木構造で管理し
、論理アドレスと物理アドレスの変換を行う。
【００４７】
図３に、区間木構造による論理／物理ブロック管理データ２１０の構造の一例を示す。
図３に示すように、論理／物理ブロック管理データ２１０は、ＲＡＩＤ番号、先頭物理Ｌ
ＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）、先頭論理ＬＢＡ、サイズ
、割り当て時刻、及び区間木管理用データを備えるデータ構造である。
【００４８】
ＲＡＩＤ番号は、管理対象の物理ブロックがどのＲＡＩＤに属するかを示す。先頭物理
ＬＢＡは、物理ブロックの先頭アドレスを示す。先頭論理ＬＢＡは、論理ブロックの先頭
アドレスを示す。
【００４９】
サイズは、物理ブロック及び論理ブロックのサイズを示す。割り当て時刻は、物理ブロ
ックを論理ブロックに割り当てた時刻を示す。区間木管理用データは、例えば当該管理デ
ータを管理する区間木構造において、木構造の節を構成するために必要なデータである。
これには、左右の節へのポインタ、キー、節の幅が含まれる。ここでのキーは上記先頭論
理ＬＢＡを与え管理する。
【００５０】
区間木構造は、各節が任意の幅を持つため、固定長でない物理ブロックを検索するのに
好適である。なお、管理方法はこれに限定するものではなく、ハッシュ等を使ってもよい
。
【００５１】
論理ボリュームにホスト装置１０からのライト要求があった場合は、制御部２１は、そ
の論理ボリュームの論理／物理ブロック管理データ２１０を参照し、そのライト範囲に該
当する論理ブロックに物理ブロックが関連付けられている場合は、該当する物理ブロック
にライトデータを保存する。
【００５２】
ライト範囲に該当する論理ブロックに物理ブロックが関連付けられていなかった場合は
、制御部２１は、上述したような、物理ブロック２４０、２４１の未使用分を管理するＲ
ＡＩＤ毎のフリーリストを参照して未使用となっている物理ブロックを検索し、検索結果
の未使用の物理ブロックのうちの１つを、ライト領域に該当する論理ブロックに関連付け
て当該論理ブロックに関する論理／物理管理データ２１０を更新し、当該物理ブロックに
ライトデータを保存する。
【００５３】
一方、論理ボリュームにホスト装置１０からのリード要求があった場合、制御部２１は
、当該論理ボリュームの論理／物理ブロック管理データ２１０を参照し、そのリード範囲
に該当する論理ブロックに物理ブロックが関連付けられている場合は、該当する物理ブロ
ックからデータリードしホスト装置１０に送信する。
【００５４】
リード範囲に該当する論理ブロックに物理ブロックが関連付けられていなかった場合は
、制御部２１は、固定値を送信する。固定値は、例えばオールゼロなどの固定データとす
る。
【００５５】
すなわち、制御部２１は、ホスト装置１０から１回以上のライトが実行された論理ブロ
ックにのみ物理ブロックを割り当てる制御を行っていく。
【００５６】
本実施形態のディスクアレイ装置２０は、あらかじめ物理ブロックを複数の種類のサイ
ズで設定し、ホスト装置１０からライト要求を受信すると、ライトデータを論理ボリュー
ムに書き込むにあたって、最初は一律に１種類の物理ブロックを割り当てる。本実施形態
では、通常物理ブロック２４０が割り当てられるとする。その後、デステージング処理時
に、適切なサイズの物理ブロックを割り当て直すことで、上述したような論理ボリューム
機能の優位性を失わずに、容量効率の良いストレージシステム１００を実現する。
【００５７】
ここで、制御部２１がデステージング処理を行うタイミングの一例について説明する。
例えば、制御部２１は、図４に示すような論理ブロック毎の最大インターバル時間を示す
デステージング統計管理データ２１１をキャッシュメモリ２０３上に登録する。図４のデ
ステージング統計管理データ２１１は、Ｎ番目までの論理ブロックの最大インターバル時
間を示す。
【００５８】
論理ブロック毎の最大インターバル時間とは、論理ブロックに物理ブロックが割り当て
られてから、当該論理ブロックに後述する物理ブロックマイグレーション処理が実行され
るまでに経過した時間の最大値である。
【００５９】
制御部２１は、ライト要求受信の時刻と、ライト先の論理ブロックに関する論理／物理
ブロック管理データ２１０に記憶された割り当て時刻との差が、当該ライト先論理ブロッ
クの最大インターバル時間よりも長い場合にキャッシュメモリ２０３から物理ブロックへ
のデータの書き込みを行う。
【００６０】
以下、図５乃至図８を参照して、本実施形態のディスクアレイ装置２０におけるライト
要求受信処理の一例について、あらかじめ設定される複数の異なるサイズの物理ブロック
が、図２に示した通常物理ブロック２４０と小物理ブロック２４１である場合を例に説明
する。
【００６１】
図５は、本実施形態のディスクアレイ装置２０におけるライト要求受信処理の一例を示
すフローチャートである。このライト要求受信処理は、ディスクアレイ装置２０がホスト
装置１０からライト要求を受信した場合に開始する。
【００６２】
ディスクアレイ装置２０にホスト装置１０からライト要求が行なわれると、制御部２１
は、ライト先の論理ブロックに関する論理／物理ブロック管理データ２１０を取得する（
ステップＳ１０）。すなわち、ステップＳ１０で制御部２１が取得した論理／物理ブロッ
ク管理データ２１０の先頭論理ＬＢＡとサイズによって示される記憶領域内に、当該ライ
ト要求に含まれるライト先の論理アドレスとライトデータのサイズが含まれる。
【００６３】
ライト要求先の論理ブロックに物理ブロックが割り当てられていない場合（ステップＳ
１１がＮｏ）、すなわち、ステップＳ１０の取得結果の論理／物理ブロック管理データ２
１０に先頭物理ＬＢＡが格納されていない場合、制御部２１は未割り当ての通常物理ブロ
ック２４０の中から１つの通常物理ブロック２４０を当該論理ブロックを割り当て（ステ
ップＳ１２）、ステップＳ１７に進む。
【００６４】
ステップＳ１１の検索の結果、当該ライトデータの論理アドレスが含まれる論理／物理
ブロック管理データ２１０に先頭物理ＬＢＡが格納されている場合（ステップＳ１１がＹ
ｅｓ）、すなわち、ライト要求先の論理ブロックに物理ブロックが対応付けられている場
合、制御部２１は対応付けられた当該物理ブロックが通常物理ブロック２４０であるか否
かを確認する（ステップＳ１３）。
【００６５】
対応付けられた当該物理ブロックが通常物理ブロック２４０である場合（ステップＳ１
３がＹｅｓ）、制御部２１はステップＳ１７に進む。
【００６６】
対応付けられた当該物理ブロックが通常物理ブロック２４０でない場合（ステップＳ１
３がＮｏ）、すなわち、対応付けられた当該物理ブロックが小物理ブロック２４１である
場合、制御部２１は、当該小物理ブロック２４１内に、ライトデータが書き込めるか否か
を判定する（ステップＳ１４）。
【００６７】
当該小物理ブロック２４１内に、ライトデータが書き込める場合（ステップＳ１４がＹ
ｅｓ）、すなわちライトデータ量が小物理ブロック２４１の記憶領域をオーバーする場合
、制御部２１はステップＳ１７に進む。
【００６８】
当該小物理ブロック２４１に、ライトデータが書き込めない場合（ステップＳ１４がＮ
ｏ）、制御部２１は後述する物理ブロックマイグレーション処理を行う（ステップＳ１５
）。
【００６９】
物理ブロックマイグレーション処理とは、ステップＳ１０で取得された論理ブロックに
割り当てられた物理ブロックを異なるサイズに入れ替える処理のことである。ここでは、
小物理ブロック２４１を、小物理ブロック２４１よりサイズの大きい通常物理ブロック２
４０に入れ替える。
【００７０】
図６を参照して、制御部２１が行なう物理ブロックマイグレーション処理について説明
する。まず、制御部２１は、論理ブロックに未割り当ての通常物理ブロック２４０をアロ
ケートする（ステップＳ１５１）。続いて、制御部２１は、既に割り当てられた小物理ブ
ロック２４１に記憶されたデータをアロケートした通常物理ブロック２４０にコピーする
（ステップＳ１５２）。コピー後、制御部２１は、ライト先の論理ブロックに割り当てら
れる物理ブロックを当該小物理ブロック２４１からアロケートされた通常物理ブロック２
４０に変更し（ステップＳ１５３）、物理ブロックマイグレーション処理を終了する。
【００７１】
図５の説明に戻る。ステップＳ１５の物理ブロックマイグレーション処理が終了すると
、制御部２１は、デステージング統計管理データ２１１に含まれる当該論理ブロックの最
大インターバル時間を更新する（ステップＳ１６）。
【００７２】
具体的には、制御部２１は、物理／論理ブロック管理データ２１０内の割り当て時刻と
ライト要求受信時の時刻との差を算出し、デステージング統計管理データ２１１に含まれ
る当該論理ブロック番号の最大インターバル時間と比較する。比較の結果、算出結果がデ
ステージング統計管理データ２１１の最大インターバル時間より長い場合に、デステージ
ング統計管理データ２１１の最大インターバル時間を、算出結果の物理／論理ブロック管
理データ２１０内の割り当て時刻とライト要求受信時の時刻との差に更新する。算出結果
が最大インターバル時間より短い場合は、制御部２１は最大インターバル時間を更新しな
い。
【００７３】
制御部２１は、キャッシュメモリ２０３の空きキャッシュブロックを確保し、ホスト装
置２０から受信したライトデータを確保したキャッシュブロックに書き込む（ステップＳ
１７）。このキャッシュメモリ２０３に書き込まれたデータをキャッシュデータという。
【００７４】
このとき、制御部２１は、書き込み先のキャッシュブロックを管理するキャッシュタグ
２１２を更新する。図７を参照して本実施形態のキャッシュタグ２１２について説明する
。
【００７５】
図７に示すように、本実施形態のキャッシュタグ２１２は、フラグ、論理ブロック番号
、論理アドレス、ライトバックデータビットマップ、リードバックデータビットマップ、
及びエントリ時刻を含むデータ構造である。キャッシュタグ２１２は、キャッシュブロッ
ク毎に用意され、制御部２１はこのキャッシュタグに基づいてキャッシュブロックを管理
する。
【００７６】
フラグは、当該キャッシュデータのライト先（もしくはリード先）の論理ブロックが、
今回のライト要求受信処理で新規に物理ブロックを割り当てられたか否かを示すフラグで
ある。例えば新規に物理ブロックを割り当てられた場合は、フラグには「１」を格納する
。また、フラグに「１」がセットされたキャッシュタグに対応するキャッシュブロックに
対して、制御部２１によるデステージングが行なわれるまでにホスト装置１０から当該論
理ブロックに追加のライト要求が行なわれた場合、すなわち、新規に物理ブロックを割り
当てられた論理ブロックに追加のライト要求が行なわれた場合、追加のライトデータに対
応するキャッシュタグのフラグに１がセットされる。
【００７７】
新規に物理ブロックを割り当てられた論理ブロックかどうかの判定は、例えば論理/物
理ブロック管理データ２１０がデステージングフラグを有し、新規割り当て時にデステー
ジングフラグに「1」がセットされ、デステージング処理を1回でも実行されたらフラグを
「0」にすることによって行なわれる。
【００７８】
また、このフラグは小物理ブロックへの物理ブロックマイグレーション処理後にクリア
される。
【００７９】
論理ブロック番号は、当該キャッシュデータのライト先（もしくはリード先）の論理ブ
ロックを有する論理ディスクを示す番号である。
【００８０】
論理アドレスは、当該キャッシュデータのライト先（もしくはリード先）の先頭アドレ
スを示す。
【００８１】
ライトバックデータビットマップ及びリードデータビットマップは、それぞれキャッシ
ュブロック内のライトバックデータ／リードデータがあるセクタを表すビットマップであ
る。
【００８２】
エントリ時刻は、当該キャッシュタグ２１２がつけられたキャッシュブロックにキャッ
シュデータが書き込まれた時刻である。
【００８３】
すなわち、ステップＳ１７で制御部２１は、ライトデータをキャッシュメモリ２０３の
空きキャッシュブロックに書き込むとともに、書き込み先のキャッシュブロックのキャッ
シュタグ２１２を更新する。
【００８４】
当該ライト要求先の論理ブロックに新規に物理ブロックを割り当てた場合（ステップＳ
１８がＹｅｓ）、すなわち、ステップＳ１２を行った場合、制御部２１は、キャッシュタ
グ２１２のフラグを「１」にセットし（ステップＳ１９）ライト要求受信処理を終了する
。
【００８５】
当該ライト要求先の論理ブロックに新規に物理ブロックを割り当てていない場合（ステ
ップＳ１８がＮｏ）、すなわち、ステップＳ１２を行っていない場合、制御部２１は、ス
テップＳ１９の処理を行わずにライト要求受信処理を終了する。
【００８６】
図８乃至図１１を参照して、ディスクアレイ装置２０におけるデステージング処理につ
いて説明する。このデステージング処理は、あらかじめ設定された一定の周期で開始され
る。
【００８７】
図８は、本実施形態のディスクアレイ装置２０にかかるデステージング処理の一例を示
すフローチャートである。
【００８８】
ディスクアレイ装置２０の制御部２１は、キャッシュメモリ２０３のキャッシュブロッ
クのうち、ライトバックデータが記憶されたキャッシュブロックを１つ選択する（ステッ
プＳ２１）。
【００８９】
制御部２１は、選択したキャッシュブロックのキャッシュタグ２１２に含まれるフラグ
に「１」がセットされているか否かを確認する（ステップＳ２２）。
【００９０】
キャッシュタグ２１２に含まれるフラグに「１」がセットされている場合（ステップＳ
２２がＹｅｓ）、制御部２１は、当該キャッシュタグ２１２に含まれる論理ブロック番号
に基づいてデステージング統計管理データ２１１を検索し、当該論理ディスクの最大イン
ターバル時間がキャッシュデータが書き込まれてから経過した時間（以下、経過時間とい
う）を超えているか否かを判定する（ステップＳ２３）。経過時間は、例えば、キャッシ
ュタグ２１２のエントリ時刻とステップＳ２３の判定を行う時刻との差を算出することに
より求められる。
【００９１】
経過時間が当該論理ディスクの最大インターバル時間以下である場合（ステップＳ２３
がＮｏ）、制御部２１は、ステップＳ２１に戻り、別のキャッシュブロックを選択し処理
を繰り返す。
【００９２】
経過時間が当該論理ディスクの最大インターバル時間を超えている場合（ステップＳ２
３がＹｅｓ）、制御部２１は、ステップＳ２１で選択したキャッシュブロックに割り当て
られた論理ブロック（以下、キャッシュサーチ範囲という）の論理／物理ブロック管理デ
ータ２１０を取得し、以下のステップＳ２５〜Ｓ２７の判定を行なう（ステップＳ２４）
。
【００９３】
まず、制御部２１は、キャッシュメモリ２０３を検索し、ステップＳ２１で選択したキ
ャッシュブロック内のデータの書き込み先である論理ブロックに割り当てられた通常ブロ
ック２４０内に他のライトバックデータがあるか否かを判定する（ステップＳ２５）。
【００９４】
図９に、キャッシュサーチ範囲の概念図を示す。図９に示すように、論理／物理ブロッ
ク管理データ２１０に含まれる先頭論理ＬＢＡ：ｘから通常物理ブロックのサイズ：ｙま
での領域がキャッシュサーチ範囲である。また、斜線の領域がデステージング処理対象と
して着目したライトバックデータ（ステップＳ２１で選択されたキャッシュブロック内の
ライトバックデータ）であり、網掛けの領域が他のライトバックデータである。
【００９５】
図９に示すように、キャッシュサーチ範囲内に他のライトバックデータがある場合（ス
テップＳ２５がＹｅｓ）、制御部２１は、当該他のライトバックデータは、ステップＳ２
１で選択されたキャッシュブロック内のライトバックデータとともに同一の小物理ブロッ
ク２４１範囲内に書き込めるか否かを判定する（ステップＳ２６）。
【００９６】
図１０に示すように、当該他のライトバックデータが、ステップＳ２１で選択されたキ
ャッシュブロック内のライトバックデータとともに同一の小物理ブロック２４１範囲内に
書き込めない場合（ステップＳ２６がＮｏ）、制御部２１は、ステップＳ２１に戻り、別
のキャッシュデータを選択し処理を繰り返す。
【００９７】
図１１に示すように、当該他のライトバックデータはがステップＳ２１で選択されたキ
ャッシュブロック内のライトバックデータとともに同一の小物理ブロック２４１範囲内に
書き込める場合（ステップＳ２６がＹｅｓ）、制御部２１は、キャッシュメモリ２０３上
に当該キャッシュブロック内のライトバックデータと連続して論理ボリュームに書き込ま
れる他のライトバックデータが存在するか否かを判定する（ステップＳ２７）。
【００９８】
キャッシュメモリ２０３上に当該キャッシュブロック内のライトバックデータと連続し
て論理ボリュームに書き込まれる他のライトバックデータが存在する場合（ステップＳ２
７がＮｏ）、制御部２１は、ステップＳ２１に戻り、別のキャッシュブロックを選択し処
理を繰り返す。このようにキャッシュデータが割り当てられている論理アドレスが連続し
ている場合は、この後にも論理アドレスが連続するデータがライトされる可能性が高いた
め、デステージング処理を一まとめに行なうためにこの時点でのデステージング処理を行
わない。
【００９９】
キャッシュメモリ２０３上に当該キャッシュブロック内のライトバックデータと連続し
て論理ボリュームに書き込まれる他のライトバックデータが存在しない場合（ステップＳ
２７がＹｅｓ）、制御部２１は後述する物理ブロックマイグレーション処理を行う（ステ
ップＳ２８）。
【０１００】
ステップＳ２８での物理ブロックマイグレーション処理は、当該キャッシュブロック内
のライトバックデータの書き込み先である論理ブロックに割り当てられた通常物理ブロッ
ク２４０を小物理ブロック２４１に入れ替える処理である。このとき、当該キャッシュブ
ロック内のライトバックデータの書き込み先である論理ブロックに既に割り当てられた通
常物理ブロック２４０へ実際にデータのライトは行なわれていないため、既に割り当てら
れた通常物理ブロック２４０から小物理ブロック２４１へのデータコピーは行なわれない
。
【０１０１】
すなわち、制御部２１は、ステップＳ２８の物理ブロックマイグレーション処理におい
て、新規小物理ブロック２４１をアロケートする。続いて、制御部２１はキャッシュデー
タの書き込み先である論理ブロックに割り当てられた通常物理ブロック２４０を上記小物
理ブロック２４１に変更する。
【０１０２】
このように制御部２１は、キャッシュメモリに記憶されたライトデータを、当該ライト
データが書き込まれるべき論理ディスクの該当論理ブロックに割り当てられている通常物
理ブロック２４０よりも小さい記憶容量の小物理ブロック２４１に書き込める場合に、小
物理ブロック２４１を該当論理ブロックに割り当てる割当機能を有する。
【０１０３】
制御部２１は、ステップＳ２８の物理ブロックマイグレーション処理の後、キャッシュ
ブロックから実際のライト先の論理ブロックにデータを書き込み（ステップＳ２９）、デ
ステージング処理を終了する。また、制御部２１は、ステップＳ２１で選択したキャッシ
ュブロックのキャッシュタグ２１２に含まれるフラグに「１」がセットされていない場合
（ステップＳ２２がＮｏ）、及び、キャッシュサーチ範囲に割り当てられた通常物理ブロ
ック内に他のライトバックデータがない場合（ステップＳ２５がＮｏ）も、ステップＳ２
９に進む。
【０１０４】
上述のように、本実施形態のディスクアレイ装置２０によると、キャッシュメモリ２０
３からデステージングする際にライトデータの容量に基づいて判定を行い、あらかじめ設
定された物理容量より小さいサイズの割り当てで十分である場合に物理容量の再割り当て
を行う。これにより、容量効率が良く、メモリの消費も多くないディスクアレイ装置を実
現できる。
【０１０５】
また、実施形態のディスクアレイ装置２０は、予め知られた規則性に拠らず仮想論理デ
ィスクに割り当てられる物理容量の削減が可能になる。また、実施形態のディスクアレイ
装置２０は、一定時間デステージングを遅らせることにより物理ブロックマイグレーショ
ンの発生を抑え、自装置の負荷を減少できる。
【０１０６】
なお、全ての物理ブロックを小物理ブロックのサイズで管理すれば容量効率は良くなる
。ただし、その場合、論理／物理ブロック管理データ２１０が膨大になってしまうという
問題がある。本実施形態のディスクアレイ装置２０は、そのトレードオフを解決する一案
でもある。
【０１０７】
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、
発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形
態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換
え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれる
とともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１０８】
例えば、本実施形態ではホスト装置１０からのライト要求受信時に、最初に通常物理ブ
ロックを割り当てているが、最初に小物理ブロックを割り当て、その後、通常物理ブロッ
クを割り当てても良い。
【符号の説明】
【０１０９】
１０…ホスト装置、１１…ネットワーク、２０…ディスクアレイ装置、２１…制御部、２
２…ディスクインタフェースバス、２３…記憶装置、２４、２５…ハードディスクドライ
ブ、２０３…キャッシュメモリ、２０４…キャッシュコントローラ 
【図１】
0005638022.tif 000002
【図２】
0005638022.tif 000003
【図３】
0005638022.tif 000004
【図４】
0005638022.tif 000005
【図５】
0005638022.tif 000006
【図６】
0005638022.tif 000007
【図７】
0005638022.tif 000008
【図８】
0005638022.tif 000009
【図９】
0005638022.tif 000010
【図１０】
0005638022.tif 000011
【図１１】
0005638022.tif 000012