(57)【要約】【課題】ホスト装置で使われなくなった記憶領域に当該ホスト装置自身が所定のデータパターンをライトすることなく、当該記憶領域を管理できるようにする。【解決手段】ストレージ装置１において、データパターン生成応答部１３は、ホストインタフェースＩＦ１で受信されたコマンドによって、物理エクステントが未割り当ての論理エクステント内の領域からのデータリードが要求されている場合、ホスト装置２に所定のデータパターンを応答する。データパターン書き込み部１４は、ホストインタフェースＩＦ１で受信されたコマンドがホスト装置２で使われなくなった記憶領域の論理ディスク内の範囲を通知するための領域解放コマンドである場合、当該領域解放コマンドによって通知された範囲に対応するアレイ２０内の領域に所定のデータパターンを書き込む。【選択図】      図１
2011150433.tif 000002
【特許請求の範囲】
【請求項１】
アレイが有する物理領域を複数の物理エクステントに分割し、前記ホスト装置からのライト要求で指定された論理ディスク内の論理エクステントに物理エクステントが未割り当ての場合に、前記複数の物理エクステントのうち他の論理エクステントに未割り当ての物理エクステントを、前記指定された論理エクステントに割り当てるストレージ装置において、
前記ホスト装置からのコマンドを受信するホストインタフェースと、
前記ホストインタフェースで受信されたコマンドによって、物理エクステントが未割り当ての論理エクステント内の領域からのデータリードが要求されている場合、前記ホスト装置に所定のデータパターンを応答するデータパターン生成応答手段と、
前記ホストインタフェースで受信されたコマンドが前記ホスト装置で使われなくなった記憶領域の論理ディスク内の範囲を通知するための領域解放コマンドである場合、前記通知された範囲に対応する前記アレイ内の領域に前記所定のデータパターンを書き込むデータパターン書き込み手段と
を具備することを特徴とするストレージ装置。
【請求項２】
前記所定のデータパターンが書き込まれていることが確認されたチェック済み領域の終端に対応する論理アドレスを不使用最終アドレスとして記憶する不使用最終アドレス記憶手段と、
前記不使用最終アドレスの次のアドレスから始まる前記論理ディスク内の第１の領域に対応する前記アレイ内の第２の領域に格納されたデータと前記所定のデータパターンとの一致を検出することにより、前記第２の領域に前記所定のデータパターンが書き込まれていることを確認するデータパターンマッチング手段と、
前記データパターンマッチング手段による一致検出に応じて前記不使用最終アドレスを更新し、且つ前記データパターン書き込み手段による前記所定のデータパターンの書き込みに応じ、前記所定のデータパターンが書き込まれた領域を前記チェック済み領域として前記不使用最終アドレスを更新する不使用最終アドレス管理手段と
を更に具備することを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記データパターンマッチング手段による一致検出に応じて更新された前記不使用最終アドレスが論理エクステントの最終アドレスに一致する場合、当該物理エクステントの論理エクステントへの割り当てを解除する物理エクステント解放手段を更に具備することを特徴とする請求項２記載のストレージ装置。
【請求項４】
前記データパターン書き込み手段は、前記通知された範囲の記憶領域の少なくとも一部である第３の領域が、前記不使用最終アドレスの位置よりも後ろにない場合、当該第３の領域に対応する前記アレイ内の第４の領域への前記所定のデータパターンの書き込みを省略することを特徴とする請求項２または３に記載のストレージ装置。
【請求項５】
前記データパターンマッチング手段は、前記通知された範囲の記憶領域に、前記不使用最終アドレスの次のアドレスの位置から論理エクステントの終端までの第５の領域が含まれている場合、当該第５の領域に対応する前記アレイ内の第６の領域に格納されたデータと所定のデータパターンとの一致の検出を省略し、
前記物理エクステント解放手段は、前記通知された範囲の記憶領域に前記第５の領域が含まれている場合、前記第６の領域が属する物理エクステントの論理エクステントへの割り当てを解除する
ことを特徴とする請求項３記載のストレージ装置。
【請求項６】
アレイが有する物理領域を複数の物理エクステントに分割し、前記ホスト装置からのライト要求で指定された論理ディスク内の論理エクステントに物理エクステントが未割り当ての場合に、前記複数の物理エクステントのうち他の論理エクステントに未割り当ての物理エクステントを、前記指定された論理エクステントに割り当てるストレージ装置における記憶領域管理方法であって、
前記ストレージ装置が有するホストインタフェースが、前記ホスト装置からのコマンドを受信するステップと、
前記ホストインタフェースで受信されたコマンドによって、物理エクステントが未割り当ての論理エクステント内の領域からのデータリードが要求されている場合、前記ストレージ装置が有するデータパターン生成応答手段が前記ホスト装置に所定のデータパターンを応答するステップと、
前記ホストインタフェースで受信されたコマンドが前記ホスト装置で使われなくなった記憶領域の論理ディスク内の範囲を通知するための領域解放コマンドである場合、前記通知された範囲に対応する前記アレイ内の領域に、前記ストレージ装置が有するデータパターン書き込み手段が前記所定のデータパターンを書き込むステップと
を具備することを特徴とする記憶領域管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アレイを備えたストレージ装置に係り、特にホスト装置で使われなくなった記憶領域を管理するストレージ装置及び同ストレージ装置における記憶領域管理方法に関する。
【背景技術】
【０００２】
ストレージ装置を備えたストレージシステムでは、当該システムの運用で必要とする記憶容量（必要容量）が、当該システムの運用を開始する前に想定していた必要容量よりも増加することがある。このためストレージシステムを構築する場合、当該システムの運用を開始した後になって実際に必要とする記憶容量が増加することを想定して、運用開始時点で必要とする記憶容量よりも大きい記憶容量のストレージ装置を予め用意するのが一般的である。
【０００３】
しかし、上述のように将来の必要容量の増加を前提として過剰容量のストレージ装置を適用する場合、使われない記憶領域が多くなり、管理コストが増大する。そこで、管理コストの低減のために、以下に示すようなエクステント方式が従来から適用されている。このエクステント方式では、ストレージ装置を利用するホスト装置からアクセスされる論理ボリュームが論理エクステントという一定サイズの単位で管理される。同様に、ストレージ装置の物理領域が、物理エクステントという一定サイズの単位で管理される。エクステント方式によれば、論理ボリューム内の論理エクステントに対してライトアクセスが発生した場合に、当該論理エクステントに動的に物理エクステントが割り当てられる。
【０００４】
ストレージ装置では、ホスト装置の例えばファイルシステム上でファイルの削除等が行われることにより、ホスト装置にとって不使用とされる論理ボリューム内の記憶領域、いわゆる不使用領域が発生する。論理エクステント全体が上記不使用領域である場合、当該論理エクステントに割り当てられている物理エクステントを、当該論理エクステントに割り当てられている状態から解放するならば、エクステント方式を適用するストレージ装置の物理領域を効率的に利用することが可能となる。しかし、ファイルシステム上でファイルの削除等によって発生する不使用領域は、ストレージ装置側からは認識できない。このためストレージ装置では、論理エクステント全体が不使用領域であっても、つまり論理エクステントに割り当てられている物理エクステント全体が不使用領域であっても、当該物理エクステントを解放できず、当該ストレージ装置の物理領域の利用効率が悪化する。
【０００５】
そこで、例えば特許文献１は、ホスト装置がファイル等のデータを削除する場合に、データが削除される記憶領域をストレージ装置が識別可能とするための仕組みを開示している。つまり特許文献１に記載のホスト装置は、データが削除される記憶領域に所定のデータパターンをライトすることにより、当該領域がホスト装置で使用されなくなった不使用領域であることを、ストレージ装置に識別させるための機能を備えている。
【０００６】
一方、特許文献１に記載のストレージ装置は、ホスト装置からの物理エクステントが未割り当ての領域へのリード要求に対して所定のデータパターンを応答する機能を備えている。また特許文献１に記載のストレージ装置は、このようなリード要求をホスト装置から受信した場合だけでなく、データ削除時に当該ホスト装置によって所定のデータパターンがライトされた領域へのリード要求を当該ホスト装置から受信した場合にも、ホスト装置に対して所定のデータパターンを応答する機能を備えている。ストレージ装置は更に、物理エクステントに格納されているデータをチェックし、当該物理エクステント全体が所定のデータパターンと一致することを検出した場合、当該物理エクステントを、論理エクステントに割り当てられている状態から解放する機能を備えている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２１７６８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、特許文献１に記載の先行技術では、ホスト装置がファイル等のデータを削除する場合に、データが削除される記憶領域がホスト装置で使用されなくなった不使用領域であることをストレージ装置に識別させるために、所定のデータパターンをホスト装置自身が当該記憶領域に明示的にライトする機能を備えている必要がある。
【０００９】
本発明は上記事情を考慮してなされたものでその目的は、ホスト装置で使われなくなった記憶領域に当該ホスト装置自身が所定のデータパターンをライトすることなく、当該記憶領域を管理することができるストレージ装置及び同ストレージ装置における記憶領域管理方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の１つの観点によれば、アレイが有する物理領域を複数の物理エクステントに分割し、前記ホスト装置からのライト要求で指定された論理ディスク内の論理エクステントに物理エクステントが未割り当ての場合に、前記複数の物理エクステントのうち他の論理エクステントに未割り当ての物理エクステントを、前記指定された論理エクステントに割り当てるストレージ装置が提供される。このストレージ装置は、前記ホスト装置からのコマンドを受信するホストインタフェースと、前記ホストインタフェースで受信されたコマンドによって、物理エクステントが未割り当ての論理エクステント内の領域からのデータリードが要求されている場合、前記ホスト装置に所定のデータパターンを応答するデータパターン生成応答手段と、前記ホストインタフェースで受信されたコマンドが前記ホスト装置で使われなくなった記憶領域の論理ディスク内の範囲を通知するための領域解放コマンドである場合、前記通知された範囲に対応する前記アレイ内の領域に前記所定のデータパターンを書き込むデータパターン書き込み手段とを具備する。
【発明の効果】
【００１１】
本発明によれば、ストレージ装置のホストインタフェースが、ホスト装置で使われなくなった記憶領域の論理ディスク内の範囲を通知するための領域解放コマンドを当該ホスト装置から受信した場合に、当該通知された範囲に対応するアレイ内の記憶領域に、ストレージ装置のデータパターン書き込み手段によって所定のデータパターンがライトされる構成を適用することにより、ホスト装置がファイル等のデータを削除する場合に、データが削除される記憶領域に当該ホスト装置自身が所定のデータパターンをライトする機能を備えている必要がなくなる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るストレージ装置を備えたストレージシステムの構成を示すブロック図。
【図２】論理ディスクとアレイの物理領域との関係を示す図。
【図３】エクステント管理テーブルのデータ構造例を示す図。
【図４】不使用最終アドレス管理テーブルのデータ構造例を示す図。
【図５】ホスト装置からＵＮＭＡＰコマンドを受信してからホスト装置に対して当該コマンドの受信完了を応答するまでのストレージ装置の処理を説明するためのフローチャート。
【図６】データパターンマッチング処理を説明するためのフローチャート。
【図７】ホスト装置からライト要求を受信した場合の不使用最終アドレス管理部の処理を説明するためのフローチャート。
【図８】ＵＮＭＡＰコマンド受信時の第１の状況下における、論理エクステント上の不使用最終アドレスの遷移と、所定のデータパターンのライトとを説明するための図。
【図９】ＵＮＭＡＰコマンド受信時の第２の状況下における、論理エクステント上の不使用最終アドレスの遷移と、所定のデータパターンのライトとを説明するための図。
【図１０】ＵＮＭＡＰコマンド受信時の第３の状況下における、論理エクステント上の不使用最終アドレスの遷移と、所定のデータパターンのライトとを説明するための図。
【図１１】ＵＮＭＡＰコマンド受信時の第４の状況下における、論理エクステント上の不使用最終アドレスの遷移と、所定のデータパターンのライトとを説明するための図。
【図１２】ＵＮＭＡＰコマンド受信時の第５の状況下における、論理エクステント上の不使用最終アドレスの遷移と、所定のデータパターンのライトと、論理エクステントに割り当てられている物理エクステントの解放とを説明するための図。
【図１３】物理エクステントの解放後のエクステント管理テーブルの状態を示す図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るストレージ装置を備えたストレージシステムの構成を示すブロック図である。本実施形態において、ストレージシステムは、ストレージ装置１と、当該ストレージ装置１を利用するホスト装置２とから構成される。なお、ストレージシステムが、ストレージ装置１を含む複数のストレージ装置を備えていても良い。また、ストレージシステムが、ホスト装置２を含む複数のホスト装置を備えていても良い。
【００１４】
ホスト装置２は、後述するホストインタフェースＩＦ１を介してストレージ装置１との間のデータ転送を含むデータ通信を行う。つまりホスト装置２は、ストレージ装置１に対してリードアクセスやライトアクセスを行う。
【００１５】
ストレージ装置１は、ストレージコントローラ１０とアレイ２０とから構成される。アレイ２０は、複数の記憶媒体、例えばｎ個のＨＤＤ２１-1（＃１）〜２１-n（＃ｎ）から構成される。ここではアレイ２０は、ＨＤＤ２１-1〜２１-nを組み合わせて、当該ＨＤＤ２１-1〜２１-nの記憶領域の一部または全部の集合を物理アドレスが連続した１つの物理領域として定義することによって構成されるものとする。なお、ＨＤＤ２１-1〜２１-nを組み合わせて、複数のアレイを構成することも可能である。
【００１６】
図２は、論理ディスク（ＬＤＩＳＫ）２１０とアレイ２０の物理領域との関係を示す。アレイ２０の物理領域は、物理エクステント２０１（Ａ），２０２（Ｂ）を含む、一定サイズの複数の物理エクステントに分割して管理される。論理ディスク２１０は、論理エクステント２１１（Ａ），２１２（Ｂ）を含む、一定サイズの複数の論理エクステントに分割して管理される。一般に論理エクステントと物理エクステントとは同一サイズである。本実施形態では、論理エクステント及び物理エクステントのサイズは６００セクタ（ブロック）である。セクタ（ブロック）は、ＨＤＤ２１-1〜２１-nの最小アクセス単位である。
【００１７】
論理ディスク２１０内の論理エクステントには、必要に応じてアレイ２０内の物理エクステントが割り当てられる。例えば、ホスト装置２からのライト要求で指定された論理エクステントに物理エクステントが未割り当ての場合、当該指定された論理エクステントに、他の論理エクステントに未割り当ての物理エクステントが割り当てられる。ここで、指定された論理エクステントに物理エクステントが未割り当てであるかは、後述するエクステント管理テーブル１２０を参照することによって判定することが可能である。
【００１８】
図２の例では、論理ディスク２１０内の論理エクステント２１１（Ａ），２１２（Ｂ）に、それぞれ矢印２２１，２２２で示されるように、アレイ２０内の物理エクステント２０１（Ａ），２０２（Ｂ）が割り当てられている。図２において、アレイ２０内の物理エクステントの開始位置に付されている数値は物理ブロックアドレス（ＰＢＡ）を示し、論理ディスク２１０内の論理エクステントの開始位置に付されている数値は論理ブロックアドレス（ＬＢＡ）を示す。なお、論理ディスク２１０が１つの論理エクステントから構成されていても構わない。
【００１９】
論理ディスク２１０には、当該論理ディスク２１０を識別するための識別情報として、例えば論理ディスク（ＬＤＩＳＫ）番号０が割り当てられているものとする。一般に、ホスト装置２からは、論理ディスク２１０は認識されるものの、アレイ２０は認識されない。
【００２０】
再び図１を参照すると、ストレージコントローラ１０は、ホストインタフェースＩＦ１、ディスクインタフェースＩＦ２、物理エクステント確保部１１、エクステント管理テーブル記憶部１２、データパターン生成応答部１３、データパターン書き込み部１４、データパターンマッチング部１５、不使用最終アドレス記憶部１６、不使用最終アドレス管理部１７及び物理エクステント解放部１８を備えている。これらのインタフェースＩＦ１，ＩＦ２及び各部１１〜１８は、バス１９によって相互に接続されている。
【００２１】
ホストインタフェースＩＦ１は、ホスト装置２からのコマンドを受信する。ホストインタフェースＩＦ１は、ホスト装置２からのコマンドがアクセス要求の場合、ホスト装置２とストレージ装置１との間で、リードアクセスに伴うリードデータ及びライトアクセスに伴うライトデータの転送を行う。ディスクインタフェースＩＦ２は、例えばストレージコントローラ１０からの要求に従い、ストレージコントローラ１０とアレイ２０内のＨＤＤ２１-iとの間で、リードデータ及びライトデータの転送を行う。
【００２２】
物理エクステント確保部１１は、ホスト装置２からアクセスされる、論理ディスク２１０内の論理エクステントと、当該論理エクステントに割り当てられる、アレイ２０内の物理エクステントとの対応関係を管理する。特に物理エクステント確保部１１は、ホスト装置２からのライト要求に応じて、当該ライト要求で指定された論理ディスク２１０内の論理エクステントに割り当てられる物理エクステントを確保し、これらの論理エクステントと物理エクステントとの対応関係を、エクステント管理テーブル記憶部１２において管理する。
【００２３】
エクステント管理テーブル記憶部１２は、エクステント管理テーブル１２０を記憶する。エクステント管理テーブル１２０の各エントリは、論理エクステントと当該論理エクステントに割り当てられる物理エクステントとの対応関係を示すエクステント管理情報を保持する
図３は、エクステント管理テーブル１２０のデータ構造例を示す。エクステント管理テーブル１２０の各エントリに保持されるエクステント管理情報は、論理エクステントの管理情報である論理エクステント情報と、当該論理エクステントに割り当てられる物理エクステントの管理情報である物理エクステント情報とから構成される。
【００２４】
論理エクステント情報は、対応する論理エクステントが属する論理ディスクの論理ディスク（ＬＤＩＳＫ）番号と、当該論理エクステントの論理ディスク（ＬＤＩＳＫ）内の開始論理ブロックアドレス（ＬＢＡ）と、当該論理エクステントのサイズ（例えばセクタ数）の各情報から構成される。物理エクステント情報は、対応する物理エクステントのアレイ内の開始物理ブロックアドレス（ＰＢＡ）と、当該物理エクステントのサイズ（例えばセクタ数）の各情報から構成される。
【００２５】
図３の例では、図２からも明らかなように、論理エクステント２１１（Ａ）は、当該論理エクステント２１１（Ａ）が属する論理ディスク２１０のＬＤＩＳＫ番号が０、当該論理エクステント２１１（Ａ）の論理ディスク２１０内の開始ＬＢＡが０、そして当該論理エクステント２１１（Ａ）のセクタサイズが６００であることを示す論理エクステント情報によって管理される。また、論理エクステント２１１（Ａ）に割り当てられる物理エクステント２０１（Ａ）は、当該物理エクステント２０１（Ａ）のアレイ２０内の開始ＰＢＡが３０００、当該物理エクステント２０１（Ａ）のセクタサイズが６００であることを示す物理エクステント情報によって管理される。
【００２６】
同様に、論理エクステント２１２（Ｂ）は、当該論理エクステント２１２（Ｂ）が属する論理ディスク２１０のＬＤＩＳＫ番号が０、当該論理エクステント２１２（Ｂ）の論理ディスク２１０内の開始ＬＢＡが６００、そして当該論理エクステント２１２（Ｂ）のセクタサイズが６００であることを示す論理エクステント情報によって管理される。また、論理エクステント２１２（Ｂ）に割り当てられる物理エクステント２０２（Ｂ）は、当該物理エクステント２０２（Ｂ）のアレイ２０内の開始ＰＢＡが６６００、当該物理エクステント２０２（Ｂ）のセクタサイズが６００であることを示す物理エクステント情報によって管理される。、
物理エクステント確保部１１は、論理エクステントに物理エクステントを新たに割り当てる場合、エクステント管理テーブル１２０に、論理エクステントと物理エクステントとの対応関係を定義するためのエントリ（行）を追加し、当該エントリに対応するエクステント管理情報を設定する。
【００２７】
データパターン生成応答部１３は、例えば全ビットが０であるような、所定のデータパターンを生成する機能を有する。データパターン生成応答部１３はまた、ホスト装置２からストレージ装置１に、物理エクステントが未割り当ての論理エクステントに対するリード要求が送信されて、当該リード要求がストレージ装置１内のホストインタフェースＩＦ１で受信された場合、前記所定のデータパターンをリードデータとしてホスト装置２に対してホストインタフェースＩＦ１経由で応答する機能を有する。物理エクステントが未割り当ての論理エクステントかどうかは、エクステント管理テーブル記憶部１２に記憶されているエクステント管理テーブル１２０を参照することによって判定される。
【００２８】
データパターン書き込み部１４は、ホスト装置２から不使用領域の解放のために当該不使用領域の範囲を通知する、領域解放コマンドとしての特定のＳＣＳＩ(Small Computer System Interface)コマンド（以下、ＵＮＭＡＰコマンドと称する）をホストインタフェースＩＦ１が受信した場合に動作する。ＵＮＭＡＰコマンドは、ＳＣＳＩの通信用コマンドセットに属しており、現在標準化が進められている。
【００２９】
ＵＮＭＡＰコマンドは、ホスト装置２にとって不使用となった論理ディスク内の領域（不使用領域）の範囲を指定する領域情報を含む。この領域情報の指定する範囲を、指定範囲と称する。領域情報は、例えば、指定範囲が属する論理ディスクの論理ディスク番号、当該指定範囲の始端の論理ブロックアドレス（ＬＢＡ）、及び当該指定範囲のサイズの情報から構成される。指定範囲のサイズは、ブロック（セクタ）数で表される。指定範囲の始端（つまり開始位置）の論理ブロックアドレスを開始アドレスと呼び、指定範囲の終端（つまり終了位置）の論理ブロックアドレスを終了アドレスと呼ぶ。データパターン書き込み部１４は、ＵＮＭＡＰコマンドの示す指定範囲に対応するアレイ２０内の領域に所定のデータパターンをライトする。
【００３０】
データパターンマッチング部１５は、物理エクステント確保部１１によって確保された物理エクステント内の所定サイズの領域（以下、ブロック領域と称する）を単位に、当該ブロック領域に格納されているデータと所定のデータパターンとを比較するマッチング処理を行う。本実施形態において、ブロック領域のサイズは、例えば１００ブロック（セクタ）であるものとする。マッチング処理の結果、前記ブロック領域に格納されているデータが所定のデータパターンと一致した場合、データパターンマッチング部１５は、一致したブロック領域の次のアドレスのブロック領域に対してマッチング処理を行う。データパターンマッチング部１５によるマッチング処理は、ＵＮＭＡＰコマンドの受信タイミングに依らず独立して行われるものとする。
【００３１】
不使用最終アドレス記憶部１６は、不使用最終アドレス管理テーブル１６０を記憶する。不使用最終アドレス管理テーブル１６０は、データパターンマッチング部１５によって、所定のデータパターンと一致すると判定されたブロック領域のうち、物理エクステントの始端から連続するブロック領域の終端の位置に対応する論理ディスク内のアドレスを、不使用最終アドレスとして保持する。不使用最終アドレス管理テーブル１６０は、ホスト装置２によって認識される論理ディスク毎に１つの不使用最終アドレスを保持する。
【００３２】
図４は、不使用最終アドレス管理テーブル１６０のデータ構造例を示す。図４に示すように、不使用最終アドレス管理テーブル１６０は、不使用最終アドレスとしてのＬＢＡと当該不使用最終アドレスが属する論理ディスクのＬＤＩＳＫ番号との対を保持する。なお、ＬＢＡとＬＤＩＳＫ番号との対を、不使用最終アドレスと定義することも可能である。以下の説明では、説明の簡略化のために、論理ディスクが論理ディスク２１０のみであり、不使用最終アドレスが属する論理ディスクのＬＤＩＳＫ番号を、不使用最終アドレス管理テーブル１６０が必ずしも保持する必要がないものとする。不使用最終アドレスは、ストレージ装置１のアレイ２０全体において不使用となった物理アドレスが連続する領域を管理するポインタである。
【００３３】
不使用最終アドレス管理部１７は、ホストインタフェースＩＦ１でＵＮＭＡＰコマンドが受信され、且つ当該ＵＮＭＡＰコマンドの示す指定範囲が不使用最終アドレスの位置を終端とする領域を含んでいる場合、データパターンマッチング部１５によるマッチング処理を行うことなく、当該指定範囲の終端の論理ブロックアドレス、つまり指定範囲の終了アドレスを、不使用最終アドレスとして不使用最終アドレス管理テーブル１６０に登録する。また、不使用最終アドレス管理部１７は、ホストインタフェースＩＦ１がホスト装置２から不使用最終アドレスの位置または不使用最終アドレスの位置よりも前の位置（つまり不使用最終アドレスよりもアドレスが小さい位置）を終端とする領域（つまり不使用最終アドレスの位置よりも後ろにない領域）へのライトを要求するライト要求を受信した場合、不使用最終アドレス管理テーブル１６０に保持されている不使用最終アドレスを、当該ライト要求の指定する開始アドレスの直前のアドレスに更新する。
【００３４】
物理エクステント解放部１８は、不使用最終アドレス管理テーブル１６０に保持されている不使用最終アドレスが、物理エクステントの終端または終端よりも後ろのアドレスである場合に、当該物理エクステント全体が不使用領域であると判定し、当該物理エクステントを解放する。
【００３５】
次に、図１の構成のストレージ装置１が、ホスト装置２からＵＮＭＡＰコマンドを受信してからホスト装置２に対して当該コマンドの受信完了を応答するまでの処理について、図５のフローチャートを参照して説明する。  
今、ホスト装置２からストレージ装置１にＵＮＭＡＰコマンドが送信され、当該ＵＮＭＡＰコマンドが、ストレージ装置１内のホストインタフェースＩＦ１で受信されたものとする（ステップＳ１００）。この場合、不使用最終アドレス管理部１７は、ＵＮＭＡＰコマンドの示す指定範囲の開始アドレスの位置が、不使用最終アドレス記憶部１６内の不使用最終アドレス管理テーブル１６０に保持されている不使用最終アドレスの次のアドレスの位置よりも後ろであるかを判定する（ステップＳ１０１）。
【００３６】
もし、ステップＳ１０１の判定がＹｅｓの場合、データパターン書き込み部１４が動作して、ＵＮＭＡＰコマンドの示す指定範囲に対応するアレイ２０内の領域に所定のデータパターンをライトする（ステップＳ１０２）。以下の説明では、簡略化のために、指定範囲に対応するアレイ２０内の領域を、単に指定範囲の領域と表現することもある。
【００３７】
データパターン書き込み部１４によって、ＵＮＭＡＰコマンドの示す指定範囲の領域に所定のデータパターンがライトされると（ステップＳ１０２）、ホストインタフェースＩＦ１は、ホスト装置２に対して当該ＵＮＭＡＰコマンドの受信完了を応答する（ステップＳ１０３）。これにより、ストレージ装置１におけるＵＮＭＡＰコマンドの受信時の処理は終了する。
【００３８】
これに対して、ステップＳ１０１の判定がＮｏの場合、不使用最終アドレス管理部１７は、ＵＮＭＡＰコマンドの示す指定範囲の終了アドレスの位置が、不使用最終アドレスの位置よりも後ろであるかを判定する（ステップＳ１０４）。もし、ステップＳ１０４の判定がＮｏの場合、ホストインタフェースＩＦ１は、ホスト装置２に対してＵＮＭＡＰコマンドの受信完了を応答する（ステップＳ１０３）。これにより、ストレージ装置１におけるＵＮＭＡＰコマンドの受信時の処理は終了する。
【００３９】
このように本実施形態では、ＵＮＭＡＰコマンドの示す指定範囲の終了アドレスの位置が、不使用最終アドレスの位置よりも後ろにない場合（ステップＳ１０１，Ｓ１０４がいずれもＮｏ）、つまり当該指定範囲の領域全体が所定のデータパターンのライトに関して後述するチェック済みの領域に含まれている場合、当該指定範囲の領域への所定のデータパターンのライトが省略される。これにより、ストレージ装置１の負荷を軽減することができる。
【００４０】
これに対して、ステップＳ１０４の判定がＹｅｓの場合、データパターン書き込み部１４が動作して、不使用最終アドレスの次のアドレスからＵＮＭＡＰコマンドの示す指定範囲の終了アドレスまでの領域に所定のデータパターンをライトする（ステップＳ１０５）。ここでは、ＵＮＭＡＰコマンドの示す指定範囲の開始アドレスの位置が不使用最終アドレスの位置よりも後ろにないならば、当該指定範囲の開始アドレスから不使用最終アドレスまでの領域への所定のデータパターンのライトが省略される。
【００４１】
このように本実施形態では、ＵＮＭＡＰコマンドの示す指定範囲内に不使用最終アドレスの位置よりも後ろにない第３の領域が含まれている場合、当該第３の領域に対応するアレイ２０内の第４の領域への所定のデータパターンのライトが省略される。これにより、ストレージ装置１の負荷を軽減することができる。
【００４２】
さてステップＳ１０４の判定がＹｅｓの場合、不使用最終アドレス管理部１７は、不使用最終アドレス記憶部１６内の不使用最終アドレス管理テーブル１６０に保持されている不使用最終アドレスを、ＵＮＭＡＰコマンドの示す指定範囲の終了アドレスに更新する（ステップＳ１０６）。このステップＳ１０６の処理の結果、更新前の不使用最終アドレスの位置から更新後の不使用最終アドレスの位置までに対応するアレイ２０内の領域が、所定のデータパターンのライトに関してチェック済みとして扱われ、当該領域を対象とする、データパターンマッチング部１５によるデータパターンマッチング処理が省略される。
【００４３】
次に不使用最終アドレス管理部１７は、ＵＮＭＡＰコマンドの示す指定範囲の終了アドレスの位置が、直近のステップＳ１０６で更新される前の不使用最終アドレスに該当する論理エクステントの終端のアドレスの位置より前であるかを判定する（ステップＳ１０７）。このステップＳ１０７の判定は、不使用最終アドレス管理部１７が、不使用最終アドレス記憶部１６内の不使用最終アドレス管理テーブル１６０及びエクステント管理テーブル記憶部１２内のエクステント管理テーブル１２０を参照することによって行われる。
【００４４】
以降の説明では、論理エクステント（または物理エクステント）の終端のアドレスを、論理エクステント（または物理エクステント）の最終アドレスと称する。また、論理エクステント（または物理エクステント）の始端のアドレスを、論理エクステント（または物理エクステント）の先頭アドレスと称する。同様に、例えば後述するチェック領域のような領域の始端のアドレス及び終端のアドレスを、それぞれ、領域の先頭アドレス及び最終アドレスと称する。
【００４５】
ステップＳ１０７の判定がＮｏの場合、物理エクステント解放部１８が動作して、直近のステップＳ１０６で更新される前の不使用最終アドレスに対応する物理エクステントから更新後の不使用最終アドレスに対応する物理エクステントの直前までを解放する（ステップＳ１０８）。このステップＳ１０８は、物理エクステント解放部１８が、エクステント管理テーブル記憶部１２内のエクステント管理テーブル１２０から、解放されるべき物理エクステントに対応する論理エクステントを定義するエントリを削除することによって実現される。
【００４６】
このように本実施形態では、ＵＮＭＡＰコマンドの示す指定範囲の終了アドレスの位置が、直近のステップＳ１０６で更新される前の不使用最終アドレスに該当する論理エクステントの終端のアドレスの位置より前になく（ステップＳ１０７がＮｏ）、したがって、当該不使用最終アドレスの位置から論理エクステントの終端までの領域（第５の領域）が当該指定範囲に含まれている場合、当該第５の領域に対応するアレイ２０内の領域（第６の領域）に格納されたデータと所定のデータパターンとの一致を検出するためのマッチング処理が省略され、且つ当該第６の領域が属する物理エクステントが解放（つまり、第６の領域が属する物理エクステントの第５の領域が属する論理エクステントへの割り当てが解除）される。このマッチング処理の省略に伴う物理エクステントの解放により、物理エクステント解放処理を簡素化できる。
【００４７】
ステップＳ１０８が実行されると、ホストインタフェースＩＦ１は、ホスト装置２に対してＵＮＭＡＰコマンドの受信完了を応答する（ステップＳ１０３）。これにより、ストレージ装置１におけるＵＮＭＡＰコマンドの受信時の処理は終了する。
【００４８】
これに対し、ステップＳ１０７の判定がＹｅｓの場合、ホストインタフェースＩＦ１は、ホスト装置２に対してＵＮＭＡＰコマンドの受信完了を応答する（ステップＳ１０３）。これにより、ストレージ装置１におけるＵＮＭＡＰコマンドの受信時の処理は終了する。
【００４９】
次に、ストレージ装置１内のデータパターンマッチング部１５を中心とするデータパターンマッチング処理について、図６のフローチャートを参照して説明する。本実施形態において、データパターンマッチング処理は一定周期で繰り返し実行されるものとする。
【００５０】
まずデータパターンマッチング部１５は、不使用最終アドレス記憶部１６内の不使用最終アドレス管理テーブル１６０に保持されている不使用最終アドレスの次のアドレスが示すブロック領域（より詳細には、不使用最終アドレスの次のアドレスが示す論理ディスク内のブロック領域である第１の領域に対応するアレイ２０内の第２の領域）を、所定のデータパターンとのマッチングに用いられるチェック領域として決定する（ステップＳ２０１）。次にデータパターンマッチング部１５は、決定されたチェック領域に格納されているデータと所定のデータパターンとのマッチングをとるための比較処理を行い、マッチングがとれているか、つまりチェック領域に格納されているデータと所定のデータパターンとが一致しているかを判定する（ステップＳ２０２）。もし、不一致であった場合（ステップＳ２０２がＮｏ）は、データパターンマッチング部１５はデータパターンマッチング処理を終了する。
【００５１】
これに対し、一致していた場合（ステップＳ２０２がＹｅｓ）、データパターンマッチング部１５は、チェック領域に所定のデータパターンが書き込まれていることを確認する。すると不使用最終アドレス管理部１７が動作して、一致が検出されたチェック領域をチェック済み領域として、不使用最終アドレス管理テーブル１６０に保持されている不使用最終アドレスを、当該チェック済み領域の最終アドレスに更新する（ステップＳ２０３）。次に不使用最終アドレス管理部１７は、更新後の不使用最終アドレスが、当該不使用最終アドレスに対応する論理エクステントの最終アドレスと一致するかを判定する（ステップＳ２０４）。このステップＳ２０４の判定は、不使用最終アドレス管理部１７が、不使用最終アドレス管理テーブル１６０及びエクステント管理テーブル１２０を参照することによって行われる。
【００５２】
もし、ステップＳ２０４の判定がＹｅｓの場合、物理エクステント解放部１８が動作して、不使用最終アドレス管理テーブル１６０及びエクステント管理テーブル１２０を参照することによって不使用最終アドレスに対応する論理エクステントに割り当てられている物理エクステントを特定し、当該特定した物理エクステントを解放する（ステップＳ２０５）。このステップＳ２０５は、物理エクステント解放部１８が、エクステント管理テーブル１２０から、解放されるべき物理エクステントに対応する論理エクステントのためのエントリを削除することによって実現される。物理エクステント解放部１８によって物理エクステントが解放されると（ステップＳ２０５）、データパターンマッチング部１５は、チェック領域のアドレスを次のアドレスに更新することにより、チェック領域を切り替えて（ステップＳ２０６）、ステップＳ２０２に戻る。
【００５３】
一方、ステップＳ２０４の判定がＮｏの場合、直ちにデータパターンマッチング部１５によってチェック領域が切り替えられる（ステップＳ２０６）。そしてデータパターンマッチング部１５はステップＳ２０２に戻る。
【００５４】
次に、ストレージ装置１が、ホスト装置２からライト要求を受信した場合の、不使用最終アドレス管理部１７の処理について、図７のフローチャートを参照して説明する。  
今、ホスト装置２からストレージ装置１にライト要求が送信され、当該ライト要求が、ストレージ装置１内のホストインタフェースＩＦ１で受信されたものとする。このライト要求は、データが書き込まれるべき論理ディスク内の領域（以下、書き込み領域と称する）を指定する。この書き込み領域の指定のために、ライト要求は、書き込み領域が属する論理ディスクの論理ディスク番号、当該書き込み領域の始端の論理ブロックアドレス（つまり書き込み領域の開始アドレス）、及び当該書き込み領域のサイズの情報から構成される。
【００５５】
不使用最終アドレス管理部１７は、ホストインタフェースＩＦ１によってライト要求が受信された場合、当該ライト要求の指定する書き込み領域の終端の論理ブロックアドレスの位置、つまり書き込み領域の終了アドレスの位置が、不使用最終アドレス管理テーブル１６０に保持されている不使用最終アドレスの位置よりも後ろであるかを判定する（ステップＳ３０１）。もし、ステップＳ３０１の判定がＹｅｓの場合、不使用最終アドレス管理部１７はライト要求受信時の処理を終了する。
【００５６】
これに対して、ステップＳ３０１の判定がＮｏの場合、不使用最終アドレス管理部１７は、不使用最終アドレス管理テーブル１６０に保持されている不使用最終アドレスを、ライト要求の指定する書き込み領域の開始アドレスの直前のアドレスに更新する（ステップＳ３０２）。不使用最終アドレス管理部１７は、ステップＳ３０２を実行すると、ライト要求受信時の処理を終了する。
【００５７】
次に、ホスト装置２からストレージ装置１に送られたＵＮＭＡＰコマンドが、ホストインタフェースＩＦ１で受信された場合の、それぞれ第１乃至第５の状況の下での、論理エクステント上の不使用最終アドレスｐの遷移及び所定のデータパターンのライト、更には論理エクステントに割り当てられている物理エクステントの解放の具体例について、図８乃至図１２を参照して説明する。
【００５８】
まず、第１の状況の下での具体例について図８を参照して説明する。第１の状況の特徴は、以下に述べるように、ＵＮＭＡＰコマンドの指定範囲が不使用最終アドレスｐの次のアドレスの位置よりも前の領域に含まれている点にある。
【００５９】
図８において、論理エクステント２１１（Ａ）の先頭ＬＢＡは０であり、最終ＬＢＡは５９９（６００−１＝５９９）である。図８の例では、論理エクステント２１１（Ａ）は、６つのブロック領域に区分されている。各ブロック領域は、１００ブロック（セクタ）から構成される。論理エクステント２１１（Ａ）の例えば先頭のブロック領域の先頭ＬＢＡは０であり、最終ＬＢＡは９９（１００−１＝９９）である。論理エクステント２１１（Ａ）の例えば５番目のブロック領域の先頭ＬＢＡは４００であり、最終ＬＢＡは４９９（５００−１＝４９９）である。論理エクステント２１１（Ａ）の次の論理エクステント２１２（Ｂ）の例えば先頭のブロック領域の先頭ＬＢＡは６００であり、最終ＬＢＡは６９９（７００−１＝６９９）である。上述の論理エクステント２１１（Ａ），２１２（Ｂ）は、図９乃至図１２の例でも同様である。
【００６０】
第１の状況では、図８（ａ）に示すように、論理エクステント２１１（Ａ）の先頭から連続する５つのブロック領域に所定のデータパターンがライトされている。論理エクステント２１１（Ａ）の５番目のブロック領域の最終ＬＢＡ（＝４９９）は、不使用最終アドレスｐに一致する。つまり第１の状況では、不使用最終アドレスｐは、論理エクステント２１１（Ａ）の５番目のブロック領域を指し示す。このときの不使用最終アドレス管理テーブル１６０の状態を図８（ｂ）に示す。
【００６１】
また第１の状況では、ＵＮＭＡＰコマンドの指定範囲は、図８（ａ）に示すように、開始ＬＢＡ＝２００から２００セクタのサイズ、つまり論理エクステント２１１（Ａ）の３番目及び４番目のブロック領域である。つまり第１の状況は、ＵＮＭＡＰコマンドの指定範囲の開始ＬＢＡの位置が不使用最終アドレスｐの次のアドレスの位置よりも後ろになくステップＳ１０１がＮｏ）、且つ当該指定範囲の終了ＬＢＡの位置が不使用最終アドレスｐの位置よりも後ろにない場合（ステップＳ１０４がＮｏ）である。
【００６２】
このような第１の状況では、図８（ａ）に示されるように、不使用最終アドレスｐの位置のブロック領域を最終のブロック領域とする連続するブロック領域には既に所定のデータパターンがライトされている。そのため、ステップＳ１０１，Ｓ１０４がいずれもＮｏとなる第１の状況では、図８（ｃ）に示すように、ＵＮＭＡＰコマンドの指定範囲（より詳細には、指定範囲に対応するアレイ２０内の領域）への所定のデータパターンのライトと、不使用最終アドレスｐの更新処理を省略することができる。つまり第１の状況下では、図５のフローチャートにおける処理が、開始→Ｓ１００→Ｓ１０１→Ｓ１０４→Ｓ１０３→終了の手順で実行される。
【００６３】
第１の状況下で実行される図５のフローチャートにおける処理の終了時の不使用最終アドレス管理テーブル１６０の状態を図８（ｄ）に示す。図８（ｃ），（ｄ）と図８（ａ），（ｂ）との対比から明らかなように、不使用最終アドレスｐは第１の状況下では、図５のフローチャートにおける処理で更新されない。
【００６４】
次に、第２の状況の下での具体例について図９を参照して説明する。第２の状況の特徴は、以下に述べるように、ＵＮＭＡＰコマンドの指定範囲内に、所定のデータパターンがライトされている領域（データパターンチェック済みの領域）と所定のデータパターンがライトされていない領域とが含まれている点にある。
【００６５】
第２の状況では、図９（ａ）に示すように、論理エクステント２１１（Ａ）の先頭から連続する３つのブロック領域に所定のデータパターンがライトされている。論理エクステント２１１（Ａ）の３番目のブロック領域の最終ＬＢＡ（＝２９９）は、不使用最終アドレスｐに一致する。つまり第２の状況では、不使用最終アドレスｐは、論理エクステント２１１（Ａ）の３番目のブロック領域を指し示す。このときの不使用最終アドレス管理テーブル１６０の状態を図９（ｂ）に示す。
【００６６】
また第２の状況では、ＵＮＭＡＰコマンドの指定範囲は、図９（ａ）に示すように、開始ＬＢＡ＝１００から４００セクタのサイズ、つまり論理エクステント２１１（Ａ）の２番目乃至５番目のブロック領域である。つまり第２の状況は、ＵＮＭＡＰコマンドの指定範囲の開始ＬＢＡの位置が不使用最終アドレスｐの次のアドレスの位置よりも後ろになく、且つ当該指定範囲の終了ＬＢＡの位置が不使用最終アドレスｐの位置よりも後ろにある場合（ステップＳ１０１がＮｏ、ステップＳ１０４がＹｅｓ）である。
【００６７】
しかも第２の状況では、ＵＮＭＡＰコマンドの指定範囲内の一部領域に、既に所定のデータパターンがライトされている。ここでは、図９（ａ）から明らかなように、ＵＮＭＡＰコマンドの指定範囲のうち、論理エクステント２１１（Ａ）の２番目及び３番目のブロック領域に所定のデータパターンがライトされている。
【００６８】
そのため第２の状況では、図９（ｃ）に示すように、ＵＮＭＡＰコマンドの指定範囲のうち、不使用最終アドレスｐの次のアドレス（ＬＢＡ＝３００）から当該指定範囲の終了ＬＢＡ（＝４９９）までの領域、つまり論理エクステント２１１（Ａ）の４番目及び５番目のブロック領域のみに所定のデータパターンがライトされる（ステップＳ１０５）。また、不使用最終アドレスｐが、図９（ａ），（ｂ）に示すＬＢＡ＝２９９から、図９（ｃ），（ｄ）に示すように、ＬＢＡ＝４９９に更新される（ステップＳ１０６）。つまり第２の状況下では、図５のフローチャートにおける処理が、開始→Ｓ１００→Ｓ１０１→Ｓ１０４→Ｓ１０５→Ｓ１０６→Ｓ１０７→Ｓ１０３→終了の手順で実行される。
【００６９】
次に、第３の状況の下での具体例について図１０を参照して説明する。第３の状況の特徴は、以下に述べるように、ＵＮＭＡＰコマンドの指定範囲が不使用最終アドレスｐの次のアドレスの位置よりも後ろの領域、つまり不使用最終アドレスｐに対して連続しない領域を示している点にある。
【００７０】
第３の状況では、図１０（ａ）に示すように、論理エクステント２１１（Ａ）の先頭から連続する３つのブロック領域に所定のデータパターンがライトされている。論理エクステント２１１（Ａ）の３番目のブロック領域の最終ＬＢＡ（＝２９９）は、不使用最終アドレスｐに一致する。これらの状態は、第２の状況と同様である。このときの不使用最終アドレス管理テーブル１６０の状態を図１０（ｂ）に示す。
【００７１】
第３の状況が第２の状況と相違するのは、ＵＮＭＡＰコマンドの指定範囲が図１０（ａ）に示すように、開始ＬＢＡ＝４００から２００セクタのサイズ、つまり論理エクステント２１１（Ａ）の５番目及び６番目のブロック領域であり、所定のデータパターンがライトされている領域から外れている点にある。この第３の状況では、上記指定範囲の開始ＬＢＡの位置が、不使用最終アドレスｐの次のアドレスの位置よりも後ろにある（ステップＳ１０１がＹｅｓ）。
【００７２】
このような第３の状況では、図１０（ｃ）に示すように、ＵＮＭＡＰコマンドの指定範囲の領域である、論理エクステント２１１（Ａ）の５番目及び６番目のブロック領域に、所定のデータパターンがライトされる（ステップＳ１０２）。つまり第３の状況下では、図５のフローチャートにおける処理が、開始→Ｓ１００→Ｓ１０１→Ｓ１０２→Ｓ１０３→終了の手順で実行される。
【００７３】
第３の状況下で実行される図５のフローチャートにおける処理の終了時の不使用最終アドレス管理テーブル１６０の状態を図１０（ｄ）に示す。図１０（ｃ），（ｄ）と図１０（ａ），（ｂ）との対比から明らかなように、不使用最終アドレスｐは、第３の状況下では図５のフローチャートにおける処理で更新されない。
【００７４】
次に、第４の状況の下での具体例について図１１を参照して説明する。第４の状況の特徴は、以下に述べるように、ＵＮＭＡＰコマンドが、不使用最終アドレスｐの位置と当該不使用最終アドレスｐに対して連続しない所定のデータパターンがライトされている領域とで挟まれた領域を埋めるように、当該挟まれた領域を不使用領域として指定している点にある。
【００７５】
第４の状況では、図１１（ａ）に示すように、論理エクステント２１１（Ａ）の先頭から連続する３つのブロック領域に所定のデータパターンがライトされている。論理エクステント２１１（Ａ）の３番目のブロック領域の最終ＬＢＡ（＝２９９）は、不使用最終アドレスｐに一致する。また、不使用最終アドレスｐと連続しない、論理エクステント２１１（Ａ）の５番目及び６番目のブロック領域にも所定のデータパターンがライトされている。このときの不使用最終アドレス管理テーブル１６０の状態を図１１（ｂ）に示す。
【００７６】
また第４の状況では、ＵＮＭＡＰコマンドの指定範囲は、図１１（ａ）に示すように、開始ＬＢＡ＝３００から１００セクタのサイズであり、論理エクステント２１１（Ａ）の４番目のブロック領域である。この４番目のブロック領域には、所定のデータパターンはライトされていない。つまり第４の状況では、ＵＮＭＡＰコマンドは、所定のデータパターンがライトされていない４番目のブロック領域を埋めるように、当該４番目のブロック領域を不使用領域として指定する。このため第４の状況では、ＵＮＭＡＰコマンドの指定範囲の開始ＬＢＡの位置が不使用最終アドレスｐの次のアドレスの位置よりも後ろになく、且つ当該指定範囲の終了ＬＢＡの位置が不使用最終アドレスｐの位置よりも後ろにある（ステップＳ１０１がＮｏ、ステップＳ１０４がＹｅｓ）。
【００７７】
このような第４の状況では、図１１（ｃ）に示すように、不使用最終アドレスｐの次のアドレス（ＬＢＡ＝３００）からＵＮＭＡＰコマンドの指定範囲の終了ＬＢＡ（＝３９９）までの領域、つまり論理エクステント２１１（Ａ）の４番目のブロック領域に所定のデータパターンがライトされる（ステップＳ１０５）。ここでは、不使用最終アドレスｐの次のアドレス（ＬＢＡ＝３００）は、ＵＮＭＡＰコマンドの指定範囲の開始ＬＢＡに一致する。また、不使用最終アドレスｐが、図１０（ａ），（ｂ）に示すＬＢＡ＝２９９から、ＬＢＡ＝３９９に更新される（ステップＳ１０６）。つまり第４の状況下では、図５のフローチャートにおける処理が、開始→Ｓ１００→Ｓ１０１→Ｓ１０４→Ｓ１０５→Ｓ１０６→Ｓ１０７→Ｓ１０３→終了の手順で実行される。
【００７８】
さて本実施形態では、図５のフローチャートに従う処理とは独立して、図６のフローチャートに従う処理が行われる。データパターンマッチング部１５は、図６のフローチャートに従う処理において、不使用最終アドレスｐの指し示すブロック領域に後続する領域に対して、ブロック領域をチェック領域として、ブロック領域単位でマッチング処理を行う（ステップＳ２０１，Ｓ２０２）。不使用最終アドレス管理部１７は、ブロック領域に格納されているデータが所定のデータパターンに一致することがデータパターンマッチング部１５によって検出される間、不使用最終アドレスｐを当該ブロック領域の最終アドレスに更新する（ステップＳ２０３）。図１１の例では、不使用最終アドレスｐは同図（ｃ）に示すように、ＬＢＡ＝２９９からＬＢＡ＝３９９に更新された後に、図６のフローチャートに従うデータパターンマッチング処理で、まずＬＢＡ＝３９９からＬＢＡ＝４９９に更新され、しかる後にＬＢＡ＝４９９からＬＢＡ＝５９９に更新される。図１１（ｄ）は、このときの不使用最終アドレス管理テーブル１６０の状態を示す。
【００７９】
さて、不使用最終アドレスｐが図１１（ｃ），（ｄ）に示すようにＬＢＡ＝５９９に更新されると、図６のフローチャートに従うデータパターンマッチング処理で、不使用最終アドレスｐが、当該不使用最終アドレスｐに対応する論理エクステントの最終アドレスと一致することが判定される（ステップＳ２０４がＹｅｓ）。つまり、不使用最終アドレスｐの示す論理エクステント２１１（Ａ）がホスト装置２によって使用されていないことが判定される。すると、物理エクステント解放部１８は、論理エクステント２１１（Ａ）に対応する物理エクステントを解放する（ステップＳ２０５）。
【００８０】
このように、不使用最終アドレスｐが図１１（ａ），（ｂ）に示すＬＢＡ＝２９９から図１１（ｃ），（ｄ）に示すＬＢＡ＝５９９に更新された場合、図５のフローチャートにおける処理が、開始→Ｓ２０１→Ｓ２０２→Ｓ２０３→Ｓ２０４→Ｓ２０５→終了の手順で実行されて、論理エクステント２１１（Ａ）に対応する物理エクステント２０１（Ａ）が解放される。この解放のために、エクステント管理テーブル１２０から、論理エクステント２１１（Ａ）と物理エクステント２０１（Ａ）との対応関係を定義したエントリが削除される。このときのエクステント管理テーブル１２０の状態を、図１３に示す。
【００８１】
次に、第５の状況の下での具体例について図１２を参照して説明する。第５の状況の特徴は、ＵＮＭＡＰコマンドの指定範囲が、不使用最終アドレスｐの次のアドレスの位置から論理エクステント終端までの領域を含む点にある。
【００８２】
第５の状況では、図１２（ａ）に示すように、論理エクステント２１１（Ａ）の先頭から連続する３つのブロック領域に所定のデータパターンがライトされている。論理エクステント２１１（Ａ）の３番目のブロック領域の最終ＬＢＡ（＝２９９）は、不使用最終アドレスｐに一致する。これらの状態は、第２の状況と同様である。このときの不使用最終アドレス管理テーブル１６０の状態を図１２（ｂ）に示す。
【００８３】
第５の状況が第２の状況と相違するのは、ＵＮＭＡＰコマンドの指定範囲が図１２（ａ）に示すように、開始ＬＢＡ＝３００から４００セクタのサイズであり、論理エクステント２１１（Ａ）の４番目乃至６番目のブロック領域及び論理エクステント２１２（Ｂ）の１番目のブロック領域である点にある。つまり、ＵＮＭＡＰコマンドの指定範囲は、不使用最終アドレスｐの次のアドレス（ＬＢＡ＝３００）の位置から始まる領域であって、論理エクステント２１１（Ａ）と論理エクステント２１２（Ｂ）との境界をまたぐ領域を示している。
【００８４】
このような第５の状況では、図１２（ｃ）に示すように、不使用最終アドレスｐの次のアドレスからＵＮＭＡＰコマンドの示す指定範囲の終了アドレスまでの領域（ここでは指定範囲の領域）である、論理エクステント２１１（Ａ）の４番目乃至６番目のブロック領域及び論理エクステント２１２（Ｂ）の１番目のブロック領域に、所定のデータパターンがライトされる（ステップＳ１０５）。また不使用最終アドレスｐが、図１２（ｃ），（ｄ）に示すように、ＬＢＡ＝２９９から、論理エクステント２１２（Ｂ）の１番目のブロック領域の最終アドレスであるＬＢＡ＝６９９に更新される（ステップＳ１０６）。
【００８５】
不使用最終アドレスｐがＬＢＡ＝２９９からＬＢＡ＝６９９に更新されると（ステップＳ１０６）。ＵＮＭＡＰコマンドの示す指定範囲の終了アドレス（ＬＢＡ＝６９９）の位置が、更新前の不使用最終アドレスｐ（ＬＢＡ＝２９９）に対応する論理エクステント２１１（Ａ）の終端のアドレス（ＬＢＡ＝５９９）の位置より前であるかが判定される（ステップＳ１０７）。ここでは、ステップＳ１０７の判定はＮｏとなる。
【００８６】
この場合、物理エクステント解放部１８は、更新前の不使用最終アドレスｐ（ＬＢＡ＝２９９）に対応する物理エクステントから更新後の不使用最終アドレスｐ（ＬＢＡ＝６９９）に対応する物理エクステントの直前まで、つまり論理エクステント２１１（Ａ）に対応する物理エクステントを解放する（ステップＳ１０８）。この解放のために、エクステント管理テーブル１２０から、論理エクステント２１１（Ａ）と物理エクステント２０１（Ａ）との対応関係を定義したエントリが削除される。図１３は、このときのエクステント管理テーブル１２０の状態をも示す。
【００８７】
上述したように本実施形態によれば、ディスク容量をエクステント単位で管理（割り当て、解放）するボリューム管理方法を適用するストレージ装置１において、ホスト装置２からのＵＮＭＡＰコマンドによって不使用であると通知された領域（指定範囲）に、当該領域が不使用であることを識別するための所定のデータパターンが、当該ストレージ装置１内のデータパターン書き込み部１４によってライトされる。これにより、ホスト装置で使われなくなった不使用領域を識別するためのデータパターンをホスト装置自身が当該不使用領域に書き込む機能を有していなくても、当該不使用領域を管理することができる。
【００８８】
また本実施形態によれば、所定のデータパターンが書き込まれていることが確認されたチェック済み領域の終端に対応する論理アドレスを不使用最終アドレスとして不使用最終アドレス記憶部１６に記憶する一方、不使用最終アドレスの次のアドレスから始まる論理ディスク２１０内の第１の領域に対応するアレイ２０内の第２の領域に格納されたデータと上記所定のデータパターンとの一致をデータパターンマッチング部１５が検出することにより、上記第２の領域に上記所定のデータパターンが書き込まれていることが確認される。また本実施形態によれば、データパターンマッチング部１５による一致検出に応じて不使用最終アドレスが更新されるだけでなく、データパターン書き込み部１４による所定のデータパターンの書き込みに応じても、所定のデータパターンが書き込まれた領域をチェック済み領域として不使用最終アドレスが更新される。これにより、ＵＮＭＡＰコマンドによって通知される範囲の不使用領域毎の管理情報をストレージ装置１内で別途保持・管理する必要がなく、たとえストレージ装置１内の管理サイズが、ＵＮＭＡＰコマンドによって通知される範囲におけるそれよりも大きい場合でも、ストレージ装置１内での管理（不使用最終アドレスの管理）に必要な記憶容量を最小限に抑えることができる。
【００８９】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【符号の説明】
【００９０】
１…ストレージ装置、２…ホスト装置、１０…ストレージコントローラ、１１…物理エクステント確保部、１２…エクステント管理テーブル記憶部、１３…データパターン生成応答部、１４…データパターン書き込み部、１５…データパターンマッチング部、１６…不使用最終アドレス記憶部、１７…不使用最終アドレス管理部、１８…物理エクステント解放部、ＩＦ１…ホストインタフェース、ＩＦ２…ディスクインタフェース、２０…アレイ、２１-1〜２１-n…ＨＤＤ、１２０…エクステント管理テーブル、１６０…不使用最終アドレス管理テーブル。
【図１】
2011150433.tif 000003
【図２】
2011150433.tif 000004
【図３】
2011150433.tif 000005
【図４】
2011150433.tif 000006
【図５】
2011150433.tif 000007
【図６】
2011150433.tif 000008
【図７】
2011150433.tif 000009
【図８】
2011150433.tif 000010
【図９】
2011150433.tif 000011
【図１０】
2011150433.tif 000012
【図１１】
2011150433.tif 000013
【図１２】
2011150433.tif 000014
【図１３】
2011150433.tif 000015