(57)【要約】【課題】  ＳＳＤに対してＵＮＭＡＰコマンドを発行することでＳＳＤに対しての書き込み回数を削減する場合に、ＳＳＤにおけるＬＢＡのＵＮＭＡＰＰＥＤ状態とデータの異常とを区別する。【解決手段】  ロジカルブロックアドレッシングに消去単位物理領域が割り当てられているか否かを示す状態情報を通知するソリッドステートドライブと、そのソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、通知されたその状態情報に基づいて、その受信したデータをホスト装置へ送信するコントロール手段と、を含む。【選択図】      図７
2016091318.tif 000002
【特許請求の範囲】
【請求項１】
ロジカルブロックアドレッシングに消去単位物理領域が割り当てられているか否かを示す状態情報を通知するソリッドステートドライブと、
前記ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、通知された前記状態情報に基づいて、前記受信したデータをホスト装置へ送信するコントロール手段と、を含む
ディスクアレイ装置。
【請求項２】
前記コントロール手段は、前記ゼロデータを受信した場合に、前記ソリッドステートドライブへ状態取得コマンドを送信し、
前記ソリッドステートドライブは、前記状態取得コマンドを受信した場合に、前記コントロール手段へ前記状態情報を送信する、
請求項１記載のディスクアレイ装置。
【請求項３】
前記ソリッドステートドライブは、前記コントロール手段へデータを送信する場合に、前記データに対応する前記状態情報を付加して前記コントロール手段へ前記状態情報を通知する
請求項１または２記載のディスクアレイ装置。
【請求項４】
前記コントロール手段は、
所定の単位に満たない範囲の指定を含む第１のアンマップコマンドを受信し、受信した前記第１のアンマップコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記ソリッドステートドライブに前記所定の単位に満たない範囲に対する第２のアンマップコマンドを送信し、前記ロジカルブロックアドレッシングの指定がハードディスクドライブに属する場合に、前記ハードディスクドライブの前記所定の単位に満たない範囲に対応する領域に０を書き込み、
更に、前記コントロール手段は、リードコマンドを受信し、前記リードコマンドに対応する読み出しにおいて受信したデータが前記ゼロデータである場合に、
受信した前記リードコマンドに含まれるロジカルブロックアドレッシングの指定が前記ソリッドステートドライブに属する場合に、前記状態情報に基づいて前記受信したデータをホスト装置へ送信し、前記ロジカルブロックアドレッシングの指定がハードディスクドライブに属する場合に、エラー処理を実行する、
請求項１ないし３のいずれか１項に記載のディスクアレイ装置。
【請求項５】
前記所定の単位は、前記ディスクアレイ装置の論理ボリュームへのライトアクセスの際に、前記論理ボリュームに割り当てられる、前記ディスクアレイシステムに含まれるアレイの物理領域が一定サイズに区切られた物理エクステントである
請求項４記載のディスクアレイ装置。
【請求項６】
コントロール手段から受信したコマンドに応答して、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報を通知する手段を含み、
前記コントロール手段は、前記ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、前記状態情報に基づいて、前記受信したデータをホスト装置へ送信する手段である
ソリッドステートドライブ。
【請求項７】
ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する手段を含む
コントロール装置。
【請求項８】
コンピュータが、
ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する
ディスク制御方法。
【請求項９】
ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する処理をコンピュータに実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク制御の技術に関し、特にソリッドステートドライブの寿命延長の技術に関する。
【背景技術】
【０００２】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ、ソリッドステートドライブ）のような記憶装置を複数備え、アレイを構成しているディスクアレイ装置がある。このようなディスクアレイ装置において、シンプロビジョニング（Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇ）という技術がある。シンプロビジョニングにおいては、ディスクアレイ装置は、アレイの物理領域をエクステント（物理エクステント）という一定サイズに区切って管理し、論理ボリュームへのライトアクセスの際に、その物理エクステントを仮想的に割り当てる。こうすることで、シンプロビジョニングにおいては、ディスクの物理容量が削減される。
【０００３】
シンプロビジョニングでは、物理エクステントの割り当ては、ホスト装置からの書き込み（データライト）を契機に行われる。図１は、物理エクステントの割り当てのイメージを示す図である。また、不要となった物理エクステントの解放は、ホスト装置からの解放コマンド（例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）コマンドのＵＮＭＡＰコマンド（アンマップコマンド））により行われる。
【０００４】
ＵＮＭＡＰコマンドが物理エクステント単位に一致する範囲を指定して発行された場合、ディスクアレイ装置は、その物理エクステントの解放を行う。その後、解放された物理エクステントは、新たなホスト装置からの書き込みを契機に、その書き込みのデータの領域として割り当てられる。ディスクアレイ装置は、物理エクステント解放時には、物理エクステントのデータをそのままにしておく。そして、ディスクアレイ装置は、物理エクステントがデータの領域として新たに割り当てられたときに、その物理エクステントのデータを更新する。
【０００５】
一方、ＵＮＭＡＰコマンドが物理エクステント単位の範囲未満の範囲を指定して発行された場合、物理エクステント内の、そのＵＮＭＡＰコマンドの範囲外の、データは保持されなければならない。そのため、ディスクアレイ装置は、その物理エクステントの全体を解放することができない。また、この場合、ホスト装置は、そのＵＮＭＡＰコマンドを発行した範囲をリードしたとき、「０」のデータが返却されることを期待する。
【０００６】
特許文献１は、このようなエクステント単位の範囲未満の範囲を指定して発行された領域解放コマンド（ＵＮＭＡＰコマンド）に対応するための技術を開示する。特許文献１のストレージ装置は、ＵＮＭＡＰコマンドが物理エクステント単位の範囲未満の範囲で発行された場合、ＵＮＭＡＰコマンドで指定した範囲に「０」を書き込む。以後、「０」を書き込むことをゼロデータライトと表記する。そして、そのストレージ装置は、その後のＵＮＭＡＰコマンドの発行などで物理エクステント内のデータがすべて「０」になるのを周期的にチェックする機能により物理エクステントの解放を行う。図２は、そのストレージ装置における、ＵＮＭＡＰコマンドの実行のイメージを示す図である。
【０００７】
特許文献２は、特許文献１と類似の技術を開示する。特許文献２のメモリシステムは、管理単位（例えば、物理エクステント）より小さいデータ量を単位として論理アドレスの削除領域を指定した削除通知（ＵＮＭＡＰコマンド）をホストから受け取る。この場合、そのメモリシステムは、その削除領域に含まれる管理単位に満たない領域に論物変換テーブルにおいて対応する、物理アドレスの不揮発性メモリ上の領域に所定のデータパターンを書き込む。更に、そのメモリシステムは、管理単位がすべて所定のデータパターンである解放可能な管理単位の領域に論物変換テーブルにて対応する物理アドレスに、無効値を書き込む。こうすることにより、そのメモリシステムは、その解放可能な管理単位の、論理アドレスの領域を解放する。
【０００８】
しかしながら、特許文献１及び特許文献２に開示される技術においては、ディスクアレイ装置がＳＳＤで構成される場合に、以下に示す問題があった。
【０００９】
ＳＳＤは、ＮＡＮＤ（Ｎｅｇａｔｉｖｅ  ＡＮＤ）ブロックに対するデータ書き込み回数に制限がある。ここで、ＮＡＮＤブロックは、データ更新における、消去単位のブロックである。すなわち、ＳＳＤに対して書き込み回数が増加するとＳＳＤの寿命が短くなってしまうという問題がある。上述したＵＮＭＡＰコマンドが物理エクステント単位の範囲未満の範囲を指定して発行された場合、ＵＮＭＡＰコマンドで指定された範囲は、ＳＳＤに対して所定のデータ（例えば、「０」）が書き込まれる。そして、その後のＵＮＭＡＰコマンドの発行などにより物理エクステント内のデータがすべて所定のデータになった場合に物理エクステントを解放する。従って、ＵＮＭＡＰコマンドが物理エクステント単位の範囲未満の範囲を指定して発行された場合、所定のデータを書き込む分だけ、書き込み回数が増加してしまう。
【００１０】
このような問題点を解決する技術が、特許文献３に記載されている。特許文献３は、物理エクステント単位の範囲未満の範囲のＵＮＭＡＰコマンドが発行された場合に、ＵＮＭＡＰ発行範囲をリストに記憶しておき、ゼロデータライトを削減する技術を示す。
【００１１】
しかしながら、特許文献３に開示される技術においては、以下に示す問題点があった。第１に、そのリストは有限であり、そのリストからあふれたＵＮＭＡＰコマンドに対しては、ゼロデータライトが実施される。そのため、書き込み回数が増加してしまう。また、リストとして管理情報を持つため、ＬＤ（Ｌｏｇｉｃａｌ  Ｄｒｉｖｅ）及びＳＳＤごとに管理情報が必要であり、ディスクアレイ装置のメモリ使用量が増大する。そのため、ディスクアレイ装置で使用できるキャッシュメモリ容量の縮小や、大きなメモリの搭載によるコストアップなど、という弊害が発生してしまう。
【００１２】
特許文献３の問題点を解決する技術が、特許文献４に記載されている。特許文献４に記載のストレージシステムは、一以上のＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）グループを構成する複数のフラッシュパッケージと、複数のフラッシュパッケージに接続されたコントローラとを備える。各フラッシュパッケージは、複数の物理ブロックで構成された複数のフラッシュチップを有する。コントローラは、不要領域にかかわる対象領域を特定し、その対象領域に属する論理ブロックに割り当てられているアドレス範囲を指定した解放指示を、そのアドレス範囲を管理するドライブに送信する。そして、ドライブによってセクタ解放処理が行われ、ドライブで管理される論理セクタが解放対象として管理され、論理ブロック内のすべての論理セクタが解放対象となっていれば、その論理ブロックから物理ブロックが解放される。
【００１３】
特許文献５は、高速な記憶媒体（例えば、ＳＳＤ）の空き容量を増やすための技術を開示する。特許文献５に記載の情報記憶装置において、情報削除制御部がホストからの削除要求を検出すると、情報複写部は、高速情報記憶媒体の該当情報を低速情報記憶媒体（例えば、ＨＤＤ）に複写する。また、情報複写部は、ホストからの復元要求時において、低速情報記憶媒体から高速情報記憶媒体に該当情報を複写する。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００８−２１７６８９号公報
【特許文献２】特開２０１２−２０３８６４号公報
【特許文献３】特開２０１３−０７３４０９号公報
【特許文献４】特表２０１２−５２３５９４号公報
【特許文献５】特開２０１１−０９０５３１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、上述した特許文献４に記載された技術においては、以下の問題点がある。その問題点は、ＳＳＤを搭載するディスクアレイ装置が、そのＳＳＤのあるＮＡＮＤブロックについて、データが格納されていないのかそれともデータが不正なのかを、正しく認識できない場合があるという問題点である。
【００１６】
以下に、その問題点を具体的に説明する。
【００１７】
ＳＳＤは、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）ごとに、データがどのＮＡＮＤブロックに格納されているかと、どのＮＡＮＤブロックにも格納されていないかと、をＭＡＰ状態管理テーブルで管理する。データがいずれかのＮＡＮＤブロックに格納されている状態のＬＢＡを「ＭＡＰＰＥＤであるＬＢＡ」と呼ぶ。データを格納されていない状態のＬＢＡを「ＵＮＭＡＰＰＥＤであるＬＢＡ」と呼ぶ。
【００１８】
ＳＳＤは、ＵＮＭＡＰＰＥＤであるＬＢＡに対してリードが発行された場合には、「０」のデータを返却し、ライトが発行された場合には、ＮＡＮＤブロックの割り当てを行い、ＭＡＰ状態管理テーブルを更新する。図３は、ＳＳＤにおける、上述の動作のＭＡＰ状態管理テーブルの更新のイメージを示す図である。
【００１９】
また、ＳＳＤは小さいサイズのＵＮＭＡＰを標準的にサポートしている。ＳＳＤは、ＵＮＭＡＰコマンドを発行されると、ＭＡＰ状態管理テーブル上の該当するＬＢＡをＵＮＭＡＰＰＥＤに変更する。その後、ＳＳＤは、そのＬＢＡに割り当てられていたＮＡＮＤブロックを、別のデータの領域として使用する。図４は、ＳＳＤにおける、上述の動作のＭＡＰ状態管理テーブルの更新のイメージを示す図である。
【００２０】
つまり、ＳＳＤは、ＵＮＭＡＰＰＥＤを発行された場合、ＮＡＮＤブロックに対するゼロデータライトを実施しない。そのため、上述した特許文献４に開示されたディスクアレイ装置は、ホスト装置からのＵＮＭＡＰコマンドがエクステント単位の範囲未満の範囲を指定して発行された場合、ゼロデータライトを実施する代わりに、ＳＳＤに対してＵＮＭＡＰコマンドを発行する。こうすることで、ＳＳＤに対しての書き込み回数を削減することができる。
【００２１】
しかし、ディスクアレイ装置は、ＨＤＤやＳＳＤなどの記憶装置にデータを格納する際、データの信頼性向上のため、データにトレーラと呼ばれるチェックコードを付与してライトを実行するのが一般的である。図５は、ディスクアレイ装置におけるトレーラ付与のイメージを示す図である。
【００２２】
この場合、ディスクアレイ装置がＵＮＭＡＰコマンドを発行したＳＳＤの領域に対してリードを行うと、ＳＳＤからは値が「０」のデータ（以後、ゼロデータと表記する）と値が「０」であるトレーラ（以後、ゼロトレーラと表記する）が返却される。このため、ディスクアレイ装置はトレーラエラーと判断してしまう。図６は、ＳＳＤからゼロデータとゼロトレーラが返却される場合のイメージを示す図である。
【００２３】
この問題を解決するために、ＳＳＤからリードした領域がゼロデータかつゼロトレーラだった場合、ディスクアレイ装置がその領域をＵＮＭＡＰＰＥＤ領域だと判断する、制御を追加することが考えられる。しかし、ＳＳＤからリードした領域がＭＡＰＰＥＤの領域であるにも拘わらず、ＳＳＤの故障が原因で、ＳＳＤからゼロデータかつゼロトレーラのデータが返却された場合、ディスクアレイ装置は、その領域をＵＮＭＡＰＰＥＤ領域であると判断してしまう。すなわち、ディスクアレイ装置が、ＳＳＤの故障を検出できない場合があり得る。
【００２４】
換言すると、ディスクアレイ装置がＳＳＤに対してリードを発行したときに返却された、ＳＳＤからのゼロデータとゼロトレーラについて、ＵＮＭＡＰＰＥＤ領域を示すのか、不正なデータであることを示すのかを正しく判断できない場合があるという課題がある。
【００２５】
本発明の目的は、上述した問題点を解決するディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラムを提供することにある。
【課題を解決するための手段】
【００２６】
本発明の一様態におけるディスクアレイ装置は、ロジカルブロックアドレッシングに消去単位物理領域が割り当てられているか否かを示す状態情報を通知するソリッドステートドライブと、前記ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、通知された前記状態情報に基づいて、前記受信したデータをホスト装置へ送信するコントロール手段と、を含む。
【００２７】
本発明の一様態におけるソリッドステートドライブは、コントロール手段から受信したコマンドに応答して、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報を通知する手段を含み、前記コントロール手段は、前記ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、前記状態情報に基づいて、前記受信したデータをホスト装置へ送信する手段である。
【００２８】
本発明の一様態におけるコントロール装置は、ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する手段を含む。
【００２９】
本発明の一様態におけるディスク制御方法は、コンピュータが、ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する。
【００３０】
本発明の一様態におけるプログラムは、ソリッドステートドライブから、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、前記ソリッドステートドライブから通知された、ロジカルブロックアドレッシングに消去単位物理領域がマッピングされているか否かの状態情報に基づいて、前記受信したデータをホスト装置へ送信する処理をコンピュータに実行させる。
【発明の効果】
【００３１】
本発明は、ＳＳＤに対してＵＮＭＡＰコマンドを発行することでＳＳＤに対しての書き込み回数を削減する場合に、ＳＳＤにおけるＬＢＡのＵＮＭＡＰＰＥＤ状態とデータの異常とを区別することが可能になるという効果がある。
【図面の簡単な説明】
【００３２】
【図１】図１は、関連技術における物理エクステントの割り当てのイメージを示す図である。
【図２】図２は、関連技術のストレージ装置における、ＵＮＭＡＰコマンドの実行のイメージを示す図である。
【図３】図３は、関連技術のＳＳＤにおける、ＭＡＰ状態管理テーブルの更新のイメージを示す図である。
【図４】図４は、関連技術のＳＳＤにおける、ＭＡＰ状態管理テーブルの更新のイメージを示す図である。
【図５】図５は、関連技術のディスクアレイ装置における、トレーラ付与のイメージを示す図である。
【図６】図６は、関連技術におけるＳＳＤからゼロデータとゼロトレーラが返却される場合のイメージを示す図である。
【図７】図７は、本発明の第１の実施形態に係るディスクアレイ装置の構成を示すブロック図である。
【図８】図８は、第１の実施形態に係るＳＳＤの構成を示すブロック図である。
【図９】図９は、第１の実施形態におけるＭＡＰ状態管理テーブルの構造の一例を示す図である。
【図１０】図１０は、第１の実施形態における割り当て管理テーブルの構造の一例を示す図である。
【図１１】図１１は、第１の実施形態に係るディスクアレイ装置を実現するコンピュータのハードウエア構成を示すブロック図である。
【図１２】図１２は、第１の実施形態における割り当て管理テーブルの具体的な例を示す図である。
【図１３】図１３は、第１の実施形態におけるＭＡＰ状態管理テーブルの具体的な例を示す図である。
【図１４】図１４は、第１の実施形態におけるディスクアレイ装置の動作を示すフローチャートである。
【図１５】図１５は、第１の実施形態における割り当て管理テーブルの具体的な例を示す図である。
【図１６】図１６は、第１の実施形態におけるＭＡＰ状態管理テーブルの具体的な例を示す図である。
【図１７】図１７は、第１の実施形態におけるディスクアレイ装置の動作を示すフローチャートである。
【図１８】図１８は、第１の実施形態におけるディスクアレイ装置の動作を示すフローチャートである。
【図１９】図１９は、第１の実施形態における割り当て管理テーブルの具体的な例を示す図である。
【図２０】図２０は、第１の実施形態におけるＭＡＰ状態管理テーブルの具体的な例を示す図である。
【図２１】図２１は、本発明の第２の実施形態に係るディスクアレイ装置の構成を示すブロック図である。
【発明を実施するための形態】
【００３３】
本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同様の符号を付与し、適宜説明を省略する。
【００３４】
＜＜＜第１の実施形態＞＞＞
図７は、本発明の第１の実施形態に係るディスクアレイ装置１とホスト装置４とを備える情報処理システムの構成を示すブロック図である。
【００３５】
図７に示すように、本発明の第１の実施形態のディスクアレイ装置１は、コントローラ２とディスク部３とを含む。
【００３６】
＝＝＝ディスク部３＝＝＝
ディスク部３は、複数台のＨＤＤ１０及びＳＳＤ２０からなる。例えば、ディスク部３は、図７に示すように、任意の数のＲＡＩＤ構成８０と任意の数のＲＡＩＤ構成９０とを含む。１つのＲＡＩＤ構成８０は、任意の台数のＨＤＤ１０で構成される。また、１つのＲＡＩＤ構成９０は、任意の台数のＳＳＤ２０で構成される。
【００３７】
＝＝＝ＳＳＤ２０＝＝＝
図８は、ＳＳＤ２０の構成を示すブロック図である。図８に示すように、ＳＳＤ２０は、データを格納する複数のＮＡＮＤブロック（消去単位物理領域とも呼ばれる）２００、ＭＡＰ状態管理テーブル２１０及びＵＮＭＡＰ状態返却部２２０を含む。尚、本実施形態の各図中の「＃」は、その「＃」の右側の数字が番号（この図８では、ＮＡＮＤブロック２００の番号）であることを示す。
【００３８】
＝＝＝ＭＡＰ状態管理テーブル２１０＝＝＝
ＭＡＰ状態管理テーブル２１０は、ＳＳＤ２０のＬＢＡ（ロジカルブロックアドレッシングとも呼ばれる）のそれぞれに対応するデータが、格納されているＮＡＮＤブロック２００、もしくは、データが格納されていないこと、を示す情報を保持する。
【００３９】
図９は、ＭＡＰ状態管理テーブル２１０の構造の一例を示す図である。図９に示すように、ＭＡＰ状態管理テーブル２１０は、ＬＢＡ２１１とＭＡＰ２１２とからなるレコードを含む。ＬＢＡ２１１は、ＬＢＡの値である。ＭＡＰ２１２は、ＬＢＡ２１１に割り当てられたＮＡＮＤブロック２００の番号、もしくは、データが格納されていない（ＵＮＭＡＰＰＥＤ）、すなわちそのＬＢＡ２１１にＮＡＮＤブロック２００が割り当てられていないことを示す情報（「−」）である。
【００４０】
コントローラ２がＳＳＤ２０のあるＬＢＡ２１１に対してライトコマンドを実行した場合、ＳＳＤ２０は、データを割り当てられていないＮＡＮＤブロック２００にそのライトコマンドのライトデータを格納する。すなわち、ＳＳＤ２０は、そのＬＢＡ２１１にそのＮＡＮＤブロック２００を割り当てる。同時に、ＳＳＤ２０は、そのライト前にそのＬＢＡ２１１に割り当てていた、元々データが格納されていたＮＡＮＤブロック２００を解放する。このとき、ＳＳＤ２０は、ＭＡＰ状態管理テーブル２１０において、ライトコマンドを指定されたＬＢＡ２１１に対応する、ライトデータを格納したＮＡＮＤブロック２００を示すＭＡＰ２１２を記憶させる。尚、ＭＡＰ状態管理テーブル２１０において、データが格納されていないＬＢＡ２１１は、未割り当てであることを示す情報がＭＡＰ２１２に記憶される。
【００４１】
＝＝＝ＵＮＭＡＰ状態返却部２２０＝＝＝
ＵＮＭＡＰ状態返却部２２０は、コントローラ２から状態取得コマンドを受信した場合、その状態取得コマンドで指定された領域に対応する状態情報をＭＡＰ状態管理テーブル２１０から取得しコントローラ２へ送信する。具体的には、ＵＮＭＡＰ状態返却部２２０は、状態取得コマンドで指定されたＬＢＡ２１１に対応するＭＡＰ２１２がＮＡＮＤブロック番号である場合は、ＭＡＰＰＥＤを送信する。また、ＵＮＭＡＰ状態返却部２２０は、状態取得コマンドで指定されたＬＢＡ２１１に対応するＭＡＰ２１２が「−」である場合は、ＵＮＭＡＰＰＥＤを送信する。
【００４２】
尚、ＵＮＭＡＰ状態返却部２２０は、コントローラ２からリードコマンドを受信した場合、そのリードコマンドで指定される領域に対応する状態情報をリードデータに付加して送信してもよい。こうした場合、ＵＮＭＡＰ状態取得部６０は、そのリードデータに含まれる状態情報を取得してよい。
【００４３】
＝＝＝コントローラ２＝＝＝
コントローラ２は、ホスト制御部５と、ディスク制御部６と、ＵＮＭＡＰコマンド制御部３０と、割り当て管理テーブル４０とを含む。
【００４４】
＝＝＝ディスク制御部６＝＝＝
ディスク制御部６は、ディスク部３と接続され、ＨＤＤ１０及びＳＳＤ２０へのデータの読み書きを行う。ディスク制御部６は、ＵＮＭＡＰ状態取得部６０とＵＮＭＡＰコマンド発行部７０とを含む。
【００４５】
＝＝＝ＵＮＭＡＰ状態取得部６０＝＝＝
ＵＮＭＡＰ状態取得部６０は、ディスク部３のＳＳＤ２０へ、状態取得コマンドを送信し、ＵＮＭＡＰ状態を取得する。
【００４６】
＝＝＝ＵＮＭＡＰコマンド発行部７０＝＝＝
ＵＮＭＡＰコマンド発行部７０は、ホスト装置４からディスクアレイ装置１が受信した第１のＵＮＭＡＰコマンドに対応する、第２のＵＮＭＡＰコマンドをディスク部３のＳＳＤ２０へ送信する。第２のＵＮＭＡＰコマンドについては、後述する。
【００４７】
＝＝＝割り当て管理テーブル４０＝＝＝
図１０は、割り当て管理テーブル４０の構造の一例を示す図である。
【００４８】
図１０示すように、割り当て管理テーブル４０は、ＬＤごとのＬＤテーブル４１を含む。ＬＤテーブル４１のそれぞれは、ＬＢＡを特定するＬＢＡ４２ごとに、そのＬＢＡに割り当てられているエクステントを示す割り当てエクステント４３を含む。
【００４９】
＝＝＝ホスト制御部５＝＝＝
ホスト制御部５は、１台もしくは複数台のホスト装置４と接続され、ホスト装置４とのデータの送受信を行う。
【００５０】
ホスト制御部５は、ライトコマンド、リードコマンド及びＵＮＭＡＰコマンドを、ホスト装置４から受信する。
【００５１】
ホスト装置４があるＬＤに対してライトが実行された場合、ホスト制御部５は、割り当て管理テーブル４０を参照し、そのライトコマンドで指定されたＬＢＡがエクステントを割り当てられているか否かを判断する。割り当てられている場合（ＭＡＰＰＥＤ）は、ホスト制御部５は、データが格納されているそのエクステントのデータを上書きする。
【００５２】
割り当てられていない場合（ＵＮＭＡＰＰＥＤ）、ホスト制御部５は、そのライトコマンドに対応するＬＤが属するＨＤＤ１０及びＳＳＤ２０の、割り当てられていないエクステントに、ライトデータを格納する。そして、ホスト制御部５は、そのライトデータを格納したエクステントを示す割り当てエクステント４３の番号をＬＤテーブル４１に記憶する。
【００５３】
ホスト装置４からリードコマンドが発行された場合、ホスト制御部５は、割り当て管理テーブル４０を参照し、そのリードコマンドに基づいてディスク部３からデータを読み込む。
【００５４】
ホスト制御部５は、ＳＳＤ２０からデータ及びトレーラを読み込み、その読み込んだデータ及びトレーラが０であった場合、ＵＮＭＡＰ状態取得部６０を介して、ＳＳＤ２０から状態情報を取得する。ここで、状態情報は、そのリードコマンドに対応するＬＢＡにＮＡＮＤブロック２００が割り当てられている（真）か否（偽）かを示す情報である。換言すると、その状態情報は、そのリードコマンドの対象であるデータが、ＳＳＤ２０の領域のいずれかに割り当てられているかどうかを示す情報である。ホスト制御部５は、その状態情報が真の場合、トレーラエラー処理を実行する。ホスト制御部５は、その状態情報が偽の場合、ゼロデータをホスト装置４に返却（送信）する。
【００５５】
ホスト装置４から第１のＵＮＭＡＰコマンドが発行された場合、ホスト制御部５は、その第１のＵＮＭＡＰコマンドをエクステント別に分割し、ＵＮＭＡＰコマンド制御部３０を介して、その分割された第１のＵＮＭＡＰコマンドのそれぞれを処理する。以後、その分割された第１のＵＮＭＡＰコマンドを、分割ＵＮＭＡＰコマンドと呼ぶ。
【００５６】
＝＝＝ＵＮＭＡＰコマンド制御部３０＝＝＝
ＵＮＭＡＰコマンド制御部３０は、その分割ＵＮＭＡＰコマンドの処理範囲（ＵＮＭＡＰの処理の対象であるＳＳＤ２０のサイズ）がエクステント単位かどうかを判断する。その処理サイズがエクステント単位であれば、ＵＮＭＡＰコマンド制御部３０は、エクステントの割り当てを解放する。具体的には、ＵＮＭＡＰコマンド制御部３０は、割り当て管理テーブル４０について、その分割ＵＮＭＡＰコマンドで指定されたＬＢＡ４２に対応する割り当てエクステント４３をエクステントが割り当てられていない状態（例えば「−」）にする。
【００５７】
また、その処理範囲がエクステント単位の範囲未満の範囲であって、ＲＡＩＤ構成９０に対する分割ＵＮＭＡＰコマンドであれば、ＵＮＭＡＰコマンド制御部３０は、ＵＮＭＡＰコマンド発行部７０を介して、ＳＳＤ２０に第２のＵＮＭＡＰコマンドを発行する。第２のＵＮＭＡＰコマンドは、分割ＵＮＭＡＰコマンドが、ＳＳＤ２０が解釈可能な形式に変換されたものである
以上、詳細に実施形態の構成を説明したが、ディスクアレイ装置１の上記に説明した以外の部分は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な説明は省略する。
【００５８】
図１１は、本実施形態におけるコントローラ２を実現するコンピュータ７００のハードウエア構成を示す図である。
【００５９】
図１１に示すように、コンピュータ７００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７０１、記憶部７０２、記憶装置７０３、通信部７０６及びインタフェース部７０８を含む。更に、コンピュータ７００は、外部から供給される記録媒体（または記憶媒体）７０７を含む。例えば、記録媒体７０７は、情報を非一時的に記憶する不揮発性記録媒体（非一時的記録媒体）である。また、記録媒体７０７は、情報を信号として保持する、一時的記録媒体であってもよい。
【００６０】
ＣＰＵ７０１は、オペレーティングシステム（不図示）を動作させて、コンピュータ７００の全体の動作を制御する。例えば、ＣＰＵ７０１は、記憶装置７０３に装着された記録媒体７０７から、そのプログラムやデータを読み込み、読み込んだそのプログラムやそのデータを記憶部７０２に書き込む。ここで、そのプログラムは、例えば、後述の図１４、図１７及び図１８に示すフローチャートの動作をコンピュータ７００に実行させるためのプログラムである。
【００６１】
そして、ＣＰＵ７０１は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、図７に示すＵＮＭＡＰコマンド制御部３０、ホスト制御部５、ディスク制御部６として各種の処理を実行する。
【００６２】
尚、ＣＰＵ７０１は、通信網（不図示）に接続される外部コンピュータ（不図示）から、記憶部７０２にそのプログラムやそのデータをダウンロードしてもよい。
【００６３】
記憶部７０２は、そのプログラムやそのデータを記憶する。記憶部７０２は、割り当て管理テーブル４０を記憶してよい。記憶部７０２は、ＵＮＭＡＰコマンド制御部３０、ホスト制御部５、ディスク制御部６の一部として含まれてよい。
【００６４】
記憶装置７０３は、例えば、光ディスクや、フレキシブルディスク、磁気光ディスク、外付けハードディスク半導体メモリなどであって、記録媒体７０７を含む。記憶装置７０３（記録媒体７０７）は、そのプログラムをコンピュータ読み取り可能に記憶する。また、記憶装置７０３は、そのデータを記憶してもよい。記憶装置７０３は、割り当て管理テーブル４０を記憶してよい。記憶装置７０３は、ＵＮＭＡＰコマンド制御部３０、ホスト制御部５、ディスク制御部６の一部として含まれてよい。
【００６５】
通信部７０６は、ホスト装置４とのインタフェースを実現する。通信部７０６は、ホスト制御部５の一部として含まれてよい。
【００６６】
インタフェース部７０８は、ディスク部３とのインタフェースを実現する。インタフェース部７０８は、ディスク制御部６の一部として含まれてよい。
【００６７】
以上説明したように、図７に示すコントローラ２の機能単位の各構成要素は、図１１に示すハードウエア構成のコンピュータ７００によって実現される。但し、コンピュータ７００が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ７００は、物理的に結合した１つの装置により実現されてもよいし、物理的に分離した２つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【００６８】
尚、上述のプログラムのコードを記録した記録媒体７０７が、コンピュータ７００に供給される場合、ＣＰＵ７０１は、記録媒体７０７に格納されたそのプログラムのコードを読み出して実行してもよい。或いは、ＣＰＵ７０１は、記録媒体７０７に格納されたそのプログラムのコードを、記憶部７０２、記憶装置７０３またはその両方に格納してもよい。すなわち、本実施形態は、コンピュータ７００（ＣＰＵ７０１）が実行するそのプログラム（ソフトウエア）を、一時的にまたは非一時的に、記憶する記録媒体７０７の実施形態を含む。尚、情報を非一時的に記憶する記憶媒体は、不揮発性記憶媒体とも呼ばれる。
【００６９】
以上が、本実施形態におけるコントローラ２を実現するコンピュータ７００の、ハードウエア単位の各構成要素についての説明である。
【００７０】
次に、本実施形態の図７に示すディスクアレイ装置１の動作について、以下の図面を参照して詳細に説明する。図１４、図１７及び図１８は、本実施形態のディスクアレイ装置１の動作を示すフローチャートである。図１２、図１５及び図１９は、割り当て管理テーブル４０の具体的な例を示す図である。図１３、図１６及び図２０は、ＭＡＰ状態管理テーブル２１０の具体的な例を示す図である。
【００７１】
ここでは、説明のための具体例として、以下の通りであるものとする。
【００７２】
ＬＤ番号０はＳＳＤ２０で構成されるＲＡＩＤ構成９０に属している。そして、ＬＤ番号０のデータは、図１２の割り当て管理テーブル４０に示されるように、ＬＢＡ４２が「０ｘ００００００００」のＬＢＡは、割り当てエクステント４３が示す番号が「０」のエクステントに割り当てられている状態を初期状態とする。同様に、ＬＢＡ４２が「０ｘ００００１０００」のＬＢＡは、割り当てエクステント４３が示す番号が「１」の、エクステントに割り当てられている状態を初期状態とする。
【００７３】
また、図１３のＭＡＰ状態管理テーブル２１０に示すように、割り当てエクステント４３が示す番号が「０」に該当するデータは、ＳＳＤ２０のＬＢＡ２１１が「０ｘ００００００００」のＳＢＡから順に対応する。そして、そのデータは、ＭＡＰ２１２に示される番号「００」のＮＡＮＤブロック２００から順に格納されている。また、割り当てエクステント４３が示す番号が「１」に該当するデータは、ＳＳＤ２０のＬＢＡ２１１が「０ｘ００００１０００」のＳＢＡから順に対応する。そして、そのデータはＭＡＰ２１２に示される番号が「１０」のＮＡＮＤブロック２００から順に格納されているとする。
【００７４】
尚、ＬＤの番号やＬＢＡ４２の値、割り当てエクステント４３の番号、エクステントの単位、ＳＳＤ２０のＬＢＡ２１１の値、ＮＡＮＤブロック２００の番号及びＮＡＮＤブロック２００の単位、などは、上述した値のみに限定されることはない。
【００７５】
まず、ホスト装置４から、あるＬＤに対してＵＮＭＡＰコマンドが発行された場合の処理を、図１４に示すフローチャートを参照して説明する。
【００７６】
ホスト装置４から、ＬＤに対して第１のＵＮＭＡＰコマンドが発行される（ステップＳ１０１）。
【００７７】
次に、ディスクアレイ装置１のコントローラ２のホスト制御部５は、その第１のＵＮＭＡＰコマンドを分割ＵＮＭＡＰコマンドに分割する（ステップＳ１０２）。
【００７８】
次に、ＵＮＭＡＰコマンド制御部３０は、分割ＵＮＭＡＰコマンドの処理サイズがエクステント単位の範囲であるか、エクステント単位の範囲未満の範囲であるかを判定する（ステップステップＳ１０３）。
【００７９】
分割ＵＮＭＡＰコマンドの処理範囲がエクステント単位の範囲の場合（ステップＳ１０３でＹＥＳ）、ＵＮＭＡＰコマンド制御部３０は、エクステントを解放する（ステップＳ１０４）。そのエクステントは、その分割ＵＮＭＡＰコマンドに対応する、割り当て管理テーブル４０において該当ＬＤテーブル４１のＬＢＡ４２が示す、ＬＢＡに割り当てられているエクステントである。具体的には、ＵＮＭＡＰコマンド制御部３０は、図１５に示すように、ＬＢＡ４２が「０ｘ００００００００」の割り当てエクステント４３を「−（エクステントが割り当てられていないことを示す）」にする。
【００８０】
分割ＵＮＭＡＰコマンドの処理サイズがエクステント単位の範囲未満の範囲の場合（ステップＳ１０３でＮＯ）、ＵＮＭＡＰコマンド制御部３０は、該当するＬＢＡ４２がＨＤＤ１０とＳＳＤ２０のどちらに属するかを判断する（ステップＳ１０５）。
【００８１】
該当するＬＢＡ４２がＨＤＤ１０に属する場合（ステップＳ１０５でＹＥＳ）、ディスク制御部６は、ＨＤＤ１０に対して、該当範囲にゼロデータライトを実施する（ステップＳ１０６）。
【００８２】
該当するＬＢＡ４２がＳＳＤ２０に属する場合（ステップＳ１０５でＮＯ）、ＵＮＭＡＰコマンド制御部３０は、ＵＮＭＡＰコマンド発行部７０を通じて、ＳＳＤ２０にＵＮＭＡＰコマンドを発行する（ステップＳ１０７）。
【００８３】
尚、ＳＳＤ２０は、ＵＮＭＡＰコマンドが発行された場合、ＭＡＰ状態管理テーブル２１０において、ＵＮＭＡＰコマンドで指定された範囲に該当するＬＢＡ２１１のデータを格納しているＮＡＮＤブロック２００をＭＡＰ２１２から解放する。具体的には、ＳＳＤ２０は、図１６に示すように、ＬＢＡ２１１が「０ｘ００００１０００」のＭＡＰ２１２を「−」にする。
【００８４】
次に、ＵＮＭＡＰコマンド制御部３０は、すべての分割ＵＮＭＡＰコマンドを処理したか否かを判定する（ステップＳ１０８）。すべての分割ＵＮＭＡＰコマンドを処理した場合、（ステップＳ１０８でＹＥＳ）処理は終了する。処理していない分割ＵＮＭＡＰコマンドがある場合（ステップＳ１０８でＮＯ）、処理はステップステップＳ１０３へ戻る。
【００８５】
次に、ホスト装置４から、ＬＤに対してリードコマンドが発行された場合の処理を、図１７及び図１８に示すフローチャートを参照して説明する。
【００８６】
ホスト装置４から、ＬＤに対してリードコマンドが発行される（ステップＳ２０１）。
【００８７】
次に、ディスクアレイ装置１のコントローラ２のホスト制御部５は、リードコマンドをエクステントの単位に分割する（ステップＳ２０２）。以後、エクステントのサイズに分割されたリードコマンドを分割リードコマンドと呼ぶ。
【００８８】
ホスト制御部５は、分割リードコマンドについて、割り当て管理テーブル４０において、該当するＬＢＡ４２が示すＬＢＡにエクステントが割り当てられているかどうかを判断する（ステップＳ２０３）。
【００８９】
エクステントが割り当てられていない場合（ステップＳ２０３でＮＯ）ホスト制御部５は、ホスト装置４にゼロデータを返却する（ステップＳ２０４）。その後、処理はステップＳ２１２へ進む。具体的には、「エクステントが割り当てられていない場合」は、図１９に示す、ＬＢＡ４２が「０ｘ００００８０００」の割り当てエクステント４３が「−」であるような場合である。
【００９０】
エクステントが割り当てられている場合（ステップＳ２０３でＹＥＳ）、ホスト制御部５は、ディスク制御部６を介して、ＨＤＤ１０またはＳＳＤ２０からデータをリードする（ステップＳ２０５）。具体的には、「エクステントが割り当てられている場合」は、図１９に示す、ＬＢＡ４２が「０ｘ００００００００」及び「０ｘ００００１０００」の割り当てエクステント４３のそれぞれが「０」及び「１」であるような場合である。
【００９１】
次に、ホスト制御部５は、リードしたデータが、ゼロデータかつゼロトレーラであるかどうかを判断する（ステップＳ２０６）。
【００９２】
そのデータが「ゼロデータかつゼロトレーラ」でない場合（ステップＳ２０６でＮＯ）、ホスト制御部５は、リードしたデータをホスト装置４に返却する（ステップＳ２１１）。
【００９３】
そのデータがゼロデータかつゼロトレーラである場合（ステップＳ２０６でＹＥＳ）、ホスト制御部５は、該当するＬＢＡ４２がＨＤＤ１０とＳＳＤ２０のどちらに属するかを判断する（ステップＳ２０７）。
【００９４】
該当するＬＢＡ４２がＨＤＤ１０に属する場合（ステップＳ２０７でＹＥＳ）は、ホスト制御部５は、トレーラエラー処理を実行する（ステップＳ２０８）。
【００９５】
該当するＬＢＡ４２がＳＳＤ２０に属する場合（ステップＳ２０７でＮＯ）、ＵＮＭＡＰ状態取得部６０は、状態取得コマンドをＳＳＤ２０に対して発行し、状態情報を取得する（ステップＳ２０９）。
【００９６】
尚、ステップＳ２０９において、状態取得コマンドを受信したＳＳＤ２０のＵＮＭＡＰ状態返却部２２０は、状態取得コマンドで指定されたＬＢＡがＮＡＮＤブロック２００を割り当てられているか否かを確認する。具体的には、ＵＮＭＡＰ状態返却部２２０は、ＭＡＰ状態管理テーブル２１０を参照して、該当するＬＢＡ２１１に対応するＭＡＰ２１２をチェックする。そして、ＵＮＭＡＰ状態返却部２２０は、ＭＡＰ２１２がＮＡＮＤブロック番号である場合にはＭＡＰＰＥＤを、ＭＡＰ２１２が「−」である場合にはＵＮＭＡＰＰＥＤを、状態情報として返却する。具体的には、「ＮＡＮＤブロック２００を割り当てられている場合」は、例えば図２０に示す、ＬＢＡ２１１が「０ｘ００００００００」のＭＡＰ２１２が「ＮＡＮＤ＃００」の場合である。また、「ＮＡＮＤブロック２００を割り当てられていない場合」は、例えば図２０に示す、ＬＢＡ２１１が「０ｘ００００１０００」のＭＡＰ２１２が「−」の場合である。
【００９７】
次に、ホスト制御部５は、ＵＮＭＡＰ状態取得部６０により取得した状態情報をチェックする（ステップＳ２１０）。
【００９８】
状態情報がＭＡＰＰＥＤである場合（ステップＳ２１０でＹＥＳ）、ホスト制御部５は、トレーラエラー処理を実施する（ステップＳ２０８）。その後、処理はステップＳ２１２へ進む。
【００９９】
状態情報がＵＮＭＡＰＰＥＤである場合（ステップＳ２１０でＮＯ）、ホスト制御部５は、ＳＳＤ２０からリードしたデータ（つまりゼロデータ）をホスト装置４に返却する（ステップＳ２１１）。その後、処理はステップＳ２１２へ進む。
【０１００】
次に、ホスト制御部５は、すべての分割リードコマンドを処理したか否かを判定する（ステップＳ２１２）。すべての分割リードコマンドを処理した場合（ステップＳ２１２でＹＥＳ）、処理は終了する。処理していない分割リードコマンドがある場合（ステップＳ２１２でＮＯ）、処理はステップＳ２０３へ戻る。
【０１０１】
上述した本実施形態における効果は、ＳＳＤ２０に対してＵＮＭＡＰコマンドを発行することでＳＳＤ２０に対しての書き込み回数を削減する場合に、ＳＳＤ２０におけるＬＢＡのＵＮＭＡＰＰＥＤ状態とデータの異常とを区別することが可能になる点である。
【０１０２】
その理由は、以下のような構成を含むからである。第１に、ＳＳＤ２０のＵＮＭＡＰ状態返却部２２０が、ＬＢＡにＮＡＮＤブロック２００が割り当てられているか否かを示す状態情報を通知する。第２に、コントローラ２のホスト制御部５が、ＳＳＤ２０から、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、通知された状態情報に基づいて、その受信したデータをホスト装置４へ送信する。
【０１０３】
＜＜＜第２の実施形態＞＞＞
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０１０４】
本発明の第２の実施形態は、課題を解決するための最小構成の実施形態である。
【０１０５】
図２１は、本発明の第２の実施形態に係るディスクアレイ装置１０２の構成を示すブロック図である。
【０１０６】
図２１に示すように、本実施形態におけるディスクアレイ装置１０２は、ホスト制御部５とＳＳＤ２０とを含む。
【０１０７】
＝＝＝ＳＳＤ２０＝＝＝
ＳＳＤ２０は、図８に示す構成のＳＳＤ２０であってよい。ＳＳＤ２０は、ＬＢＡにＮＡＮＤブロック２００が割り当てられているか否かを示す状態情報を通知する。
【０１０８】
＝＝＝ホスト制御部５＝＝＝
ホスト制御部５は、ＳＳＤ２０から、データ及びトレーラの値がすべて０である、ゼロデータを受信した場合に、通知された状態情報に基づいて、その受信したデータをホスト装置（不図示）へ送信する。
【０１０９】
図２１に示すホスト制御部５は、図７に示すホスト制御部５と同様に、図１１に示すコンピュータ７００によって実現されてよい。
【０１１０】
上述した構成を含む本実施形態は、第１の実施形態と同様の効果を有する
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、複数個の任意のその構成要素が１個のモジュールとして実現されてよい。また、その構成要素の内の任意のひとつが複数のモジュールで実現されてもよい。また、その構成要素の内の任意のひとつがその構成要素の内の任意の他のひとつであってよい。また、その構成要素の内の任意のひとつの一部と、その構成要素の内の任意の他のひとつの一部とが重複してもよい。
【０１１１】
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウエア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウエア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
【０１１２】
そのプログラムは、例えば、磁気ディスクや半導体メモリなど、コンピュータが読み取り可能な非一時的記録媒体に記録され、コンピュータに提供される。そして、そのプログラムは、コンピュータの立ち上げ時などに、非一時的記録媒体からコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
【０１１３】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障のない範囲で変更することができる。
【０１１４】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生してよい。また、ある動作と他の動作との実行タイミングが部分的にないし全部において重複してもよい。
【０１１５】
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障を来さない範囲内で変更されてよい。
【０１１６】
以上、各実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得るさまざまな変更をすることができる。
【符号の説明】
【０１１７】
１    ディスクアレイ装置
２    コントローラ
３    ディスク部
４    ホスト装置
５    ホスト制御部
６    ディスク制御部
１０    ＨＤＤ
２０    ＳＳＤ
３０    ＵＮＭＡＰコマンド制御部
４０    管理テーブル
４１    ＬＤテーブル
４２    ＬＢＡ
４３    割り当てエクステント
６０    ＵＮＭＡＰ状態取得部
７０    ＵＮＭＡＰコマンド発行部
８０    ＲＡＩＤ構成
９０    ＲＡＩＤ構成
１０２    ディスクアレイ装置
２００    ＮＡＮＤブロック
２１０    ＭＡＰ状態管理テーブル
２１１    ＬＢＡ
２１２    ＭＡＰ
２２０    ＵＮＭＡＰ状態返却部
７００    コンピュータ
７０１    ＣＰＵ
７０２    記憶部
７０３    記憶装置
７０６    通信部
７０７    記録媒体
７０８    インタフェース部
【図１】
2016091318.tif 000003
【図２】
2016091318.tif 000004
【図３】
2016091318.tif 000005
【図４】
2016091318.tif 000006
【図５】
2016091318.tif 000007
【図６】
2016091318.tif 000008
【図７】
2016091318.tif 000009
【図８】
2016091318.tif 000010
【図９】
2016091318.tif 000011
【図１０】
2016091318.tif 000012
【図１１】
2016091318.tif 000013
【図１２】
2016091318.tif 000014
【図１３】
2016091318.tif 000015
【図１４】
2016091318.tif 000016
【図１５】
2016091318.tif 000017
【図１６】
2016091318.tif 000018
【図１７】
2016091318.tif 000019
【図１８】
2016091318.tif 000020
【図１９】
2016091318.tif 000021
【図２０】
2016091318.tif 000022
【図２１】
2016091318.tif 000023