(57)【要約】【課題】記憶部の寿命を延ばせるようにする。【解決手段】寿命の異なる複数の記憶部２１，２２と、前記複数の記憶部２１，２２に格納されるデータブロックを管理する管理部１０と、を備える。管理部１０は、前記データブロックに対するアクセス特性の判定または推定を行なう判定処理部１１４と、前記寿命の異なる複数の記憶部２１，２２のうち、判定処理部１１４によって判定または推定されたアクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部１１５と、を有する。【選択図】図２
2018041245.tif 000002
【特許請求の範囲】
【請求項１】
寿命の異なる複数の記憶部と、
前記複数の記憶部に格納されるデータブロックを管理する管理部と、を備え、
前記管理部は、
前記データブロックに対するアクセス特性を判定する判定処理部と、
前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部と、を有する、ストレージ装置。
【請求項２】
前記管理部は、前記データブロックの重複を排除する重複排除機能を有し、
前記判定処理部は、前記重複排除機能によって管理される、前記データブロックの参照数に基づいて、前記アクセス特性の判定または推定を行なう、請求項１に記載のストレージ装置。
【請求項３】
前記判定処理部は、前記参照数が２以上のデータブロックの前記アクセス特性は読出し重視であると判定し、
前記格納処理部は、前記参照数が２以上のデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の短い記憶部に格納する、請求項２に記載のストレージ装置。
【請求項４】
前記判定処理部は、前記アクセス特性が読出し重視でないデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記アクセス特性が読出し重視でないデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部に格納する、請求項３に記載のストレージ装置。
【請求項５】
ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして一時的に格納する一時記憶部を有し、
前記判定処理部は、前記一時記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、請求項４に記載のストレージ装置。
【請求項６】
前記判定処理部は、前記参照数が１で書込み後所定時間経過したデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記判定処理部によって前記アクセス特性が書込み重視であると推定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の長い記憶部に格納する、請求項５に記載のストレージ装置。
【請求項７】
前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部は、ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして格納し、
前記判定処理部は、前記他の記憶部よりも寿命の長い記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記他の記憶部よりも寿命の長い記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、請求項２〜請求項４のいずれか一項に記載のストレージ装置。
【請求項８】
寿命の異なる複数の記憶部に格納されるデータブロックを管理する管理部を備え、
前記管理部は、
前記データブロックに対するアクセス特性を判定する判定処理部と、
前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部と、を有する、ストレージ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、及びストレージ制御装置に関する。
【背景技術】
【０００２】
ＳＳＤ（Solid State Drive）は、フラッシュメモリを利用した記憶媒体である。フラッシュメモリには「書込み・消去動作による素子の劣化」という特性があることから、フラッシュメモリを素材としたＳＳＤには書込み量の上限が存在する。書込み量の上限によるＳＳＤ寿命の指標は、例えば、ＤＷＰＤによって表現される。ＤＷＰＤは、Drive Write Per Dayの略記であり、一日あたりにドライブ容量全体を何回書き換えることができるかを示す値である。
【０００３】
書込み量の上限を持つＳＳＤの寿命を延ばすため、ＳＳＤを採用したストレージ装置では、ＳＳＤへ書き込むデータの量を小さくする「データ圧縮技術」や、データの書込みそのものを減らす「データ重複排除技術」が採用されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１０８３０４号公報
【特許文献２】特開２０１５−２０１０５０号公報
【特許文献３】特開２０１５−２０４１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
今後、フラッシュメモリの技術として、高信頼・長寿命であるＳＬＣやＭＬＣよりも、書込み量の上限は下がるものの、より大容量かつより低価格を実現できるＴＬＣといった技術が主流になると想定される。ドライブを大容量化することで、ドライブ全体の寿命指標であるＤＷＰＤの値が小さくても、一日あたりの書込み可能な容量そのものが大きくなるためである。ＳＬＣはSingle Level Cellの略記であり、ＭＬＣはMultiple Level Cellの略記であり、ＴＬＣはTriple Level Cellの略記である。
【０００６】
しかし、業務のワークロードに依って、ストレージ装置に対するデータアクセス量やRead/Write比率は大きく異なる。したがって、複数の業務でストレージ装置を共用するミックスワークロード環境でＳＳＤを安心して使うためには、ＳＳＤが大容量化しても長寿命化技術は依然として重要である。
【０００７】
そのため、ＤＷＰＤの小さいＳＳＤを長寿命化させる手段として、書込み量を削減し、一度書き込んだデータについては基本的に読み出しで使うことを可能にするアクセス方法の開発が望まれる。しかしながら、データの圧縮処理や重複排除処理を行なうだけでは、そのデータが読出し重視（Read Intensive）となるかどうかは分からない。このため、書込み重視（Write Intensive）のデータを、ＤＷＰＤの小さなＳＳＤ、つまり寿命の短いＳＳＤに格納すると、ＳＳＤの寿命を縮めてしまう。
【０００８】
一つの側面で、本件明細書に開示の発明は、記憶部の寿命を延ばすことを目的とする。
【課題を解決するための手段】
【０００９】
本件のストレージ装置は、寿命の異なる複数の記憶部と、前記複数の記憶部に格納されるデータブロックを管理する管理部と、を備える。前記管理部は、判定処理部及び格納処理部を有する。前記判定処理部は、前記データブロックに対するアクセス特性の判定または推定を行なう。前記格納処理部は、前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定または推定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する。
【発明の効果】
【００１０】
記憶部の寿命を延ばすことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態としてのストレージ制御装置を含むストレージ装置のハードウェア構成の一例を示すブロック図である。
【図２】図１に示すストレージ制御装置の機能構成の一例を示すブロック図である。
【図３】図２に示すストレージ制御装置を含むストレージ装置でのデータ書込み処理を説明するフローチャートである。
【図４】第１実施形態における論理ボリュームのデータ配置を説明する図である。
【図５】第１実施形態における論理ボリュームと不揮発性デバイスとを対応付けるマッピングテーブルの構造の一例を示す図である。
【図６】図５に示すマッピングテーブルによるマッピングの具体例を示す図である。
【図７】第１実施形態におけるＳＣＭフリーリストの構造の一例を示す図である。
【図８】第１実施形態におけるＳＣＭアロケーションリストの構造の一例を示す図である。
【図９】第１実施形態のストレージ制御装置による初期化処理を説明するフローチャートである。
【図１０】第１実施形態のストレージ制御装置による時間調整処理を説明するフローチャートである。
【図１１】第１実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。
【図１２】第１実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。
【図１３】第１実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。
【図１４】本発明の第２実施形態としてのストレージ制御装置を含むストレージ装置のハードウェア構成の一例を示すブロック図である。
【図１５】図１４に示すストレージ制御装置の機能構成の一例を示すブロック図である。
【図１６】図１５に示すストレージ制御装置を含むストレージ装置でのデータ書込み処理を説明するフローチャートである。
【図１７】第２実施形態における論理ボリュームと不揮発性デバイスとを対応付けるマッピングテーブルの構造の一例を示す図である。
【図１８】図１７に示すマッピングテーブルによるマッピングの具体例を示す図である。
【図１９】第２実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。
【図２０】第２実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、図面を参照し、本願の開示するストレージ装置、及びストレージ制御装置の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１３】
〔１〕本実施形態の概要
本実施形態（第１及び第２実施形態）では、ホストサーバからストレージ装置に対して対象データの保存要求を行なう際、対象データのアクセス特性が判断される。ここで、アクセス特性として、対象データが読出し重視であるか否かが判断される。対象データのアクセス特性が読出し重視でないと判断された場合、対象データのアクセス特性は、書込み重視であると推定してもよい。
【００１４】
なお、読出し重視（Read Intensive）のデータブロックは、書込みアクセスよりも読出しアクセスの対象になる可能性の高いデータブロックである。逆に、書込み重視（Write Intensive）のデータブロックは、読出しアクセスよりも書込みアクセスの対象になる可能性の高いデータブロックである。以下において、読出し重視はリード重視と称し、書込み重視はライト重視と称する場合がある。
【００１５】
そして、ストレージ装置内のＤＷＰＤ（寿命指標）の異なるＳＳＤ（記憶部）の中から、アクセス特性の判断結果に応じた最適なＳＳＤが選択される。対象データブロックは、選択されたＳＳＤに書き込まれ格納保存される。例えば、読出し重視であると判定された対象データブロックは、ＤＷＰＤの小さい（寿命の短い）ＳＳＤに格納されてよい。一方、読出し重視でないと判定された対象データブロック、つまり書込み重視であると推定された対象データブロックは、ＤＷＰＤの大きい（寿命の長い）ＳＳＤに格納されてよい。また、ＤＷＰＤの大きいＳＳＤに格納された、書込み重視であると推定されたデータブロックのアクセス特性が、その推定後に読出し重視であると判定された場合、当該データブロックは、ＤＷＰＤの大きいＳＳＤからＤＷＰＤの小さいＳＳＤへ移動されてもよい。
【００１６】
このように、本実施形態（第１及び第２実施形態）によれば、アクセス特性が読出し重視であると判定されるデータブロックは、他のＳＳＤよりもＤＷＰＤの小さいＳＳＤに書き込まれる。また、アクセス特性が読出し重視でないデータブロック、つまりアクセス特性が書込み重視であると推定されるデータブロックは、他のＳＳＤよりもＤＷＰＤの大きいＳＳＤに書き込まれる。したがって、データブロックのアクセス特性に応じた、寿命指標の異なるＳＳＤのうちの最適なＳＳＤに、データブロックを格納することができ、特に、ＤＷＰＤの小さいＳＳＤの寿命を延ばすことができる。
【００１７】
例えば、本実施形態（第１及び第２実施形態）のストレージ装置には、以下のように構成されていてもよい。
【００１８】
本実施形態（第１及び第２実施形態）のストレージ装置は、寿命（ＤＷＰＤ）の異なる複数のＳＳＤ（記憶部）と、当該複数のＳＳＤに格納されるデータブロックを管理する管理部（ストレージ制御装置）と、を備える。前記管理部は、判定処理部と格納処理部とを有する。前記判定処理部は、データブロックに対するアクセス特性の判定または推定を行なう。前記格納処理部は、寿命の異なる複数のＳＳＤのうち、前記判定処理部によって判定または推定された前記アクセス特性に応じたＳＳＤに、データブロックを格納する。
【００１９】
このとき、前記管理部は、データブロックの重複を排除する重複排除機能を有し、前記判定処理部は、前記重複排除機能によって管理される、データブロックの参照数（重複回数）に基づいて、前記アクセス特性の判定または推定を行なってもよい。また、前記判定処理部は、前記参照数が２以上のデータブロックの前記アクセス特性は読出し重視であると判定し、前記格納処理部は、前記参照数が２以上のデータブロックを、他のＳＳＤよりも寿命の短い（ＤＷＰＤの小さい）ＳＳＤに格納してもよい。さらに、前記判定処理部は、前記アクセス特性が読出し重視でないデータブロックの前記アクセス特性は書込み重視であると推定し、前記格納処理部は、前記アクセス特性が読出し重視でないデータブロックを、他のＳＳＤよりも寿命の長いＳＳＤに格納してもよい。
【００２０】
特に、図１〜図１３を参照しながら後述する第１実施形態のストレージ装置は、ホストサーバからの、寿命の異なる複数のＳＳＤに対する書込み対象データブロックを、前記データブロックとして一時的に格納する一時記憶部を有してもよい。一時記憶部は、例えばＳＣＭ（Storage Class Memory）であってもよい。このとき、前記判定処理部は、ＳＣＭに格納されたデータブロックに対するアクセス特性の判定または推定を行なう。そして、前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、ＳＣＭから、他のＳＳＤよりも寿命の短いＳＳＤに格納する。一方、前記判定処理部は、前記参照数が１で書込み後所定時間経過したデータブロックの前記アクセス特性は書込み重視であると推定する。前記格納処理部は、前記判定処理部によって前記アクセス特性が書込み重視であると推定されたデータブロックを、ＳＣＭから、他のＳＳＤよりも寿命の長いＳＳＤに格納する。
【００２１】
また、図１４〜図２０を参照しながら後述する第２実施形態のストレージ装置では、他のＳＳＤよりも寿命の長いＳＳＤは、ホストサーバからの、寿命の異なる複数のＳＳＤに対する書込み対象データブロックを、前記データブロックとして格納する。このとき、前記判定処理部は、他のＳＳＤよりも寿命の長いＳＳＤに格納されたデータブロックに対するアクセス特性の判定または推定を行なう。そして、前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、他のＳＳＤよりも寿命の長いＳＳＤから、他のＳＳＤよりも寿命の短いＳＳＤに格納する。
【００２２】
〔２〕第１実施形態
〔２−１〕ハードウェア構成
図１を参照しながら、本発明の第１実施形態としてのストレージ制御装置１０を含むストレージ装置１のハードウェア構成の一例について説明する。図１は、そのハードウェア構成の一例を示すブロック図である。
【００２３】
図１に示すように、第１実施形態のストレージ装置１は、ストレージ制御装置１０とＳＳＤ部２０とを有する。ストレージ制御装置１０は、ホストサーバ３０からの入出力要求に応じて、ＳＳＤ部２０に格納されるデータブロックを管理する。ＳＳＤ部２０には、ストレージ制御装置１０によって制御される、ＤＷＰＤの異なる（つまり寿命の異なる）複数のＳＳＤ２１，２２が混在する。ＳＳＤ２１は、例えば、寿命の長いつまりＤＷＤＰの大きいＳＳＤであり、ＳＳＤ２２は、例えば、ＳＳＤ２１に対し、寿命の短いつまりＤＷＤＰの小さいＳＳＤである。
【００２４】
第１実施形態のストレージ制御装置１０は、ＣＰＵ１１、ＤＲＡＭ１２、ＳＣＭ１３、ＳＳＤコントローラ１４、及びホストインタフェース１５を含む。ここで、ＣＰＵはCentral Processing Unitの略記であり、ＤＲＡＭはDynamic Random Access Memoryの略記である。
【００２５】
ＣＰＵ１１は、種々の制御や演算を行なうプロセッサ（処理部）の一例である。ＣＰＵ１１は、ＤＲＡＭ１２、ＳＣＭ１３、ＳＳＤコントローラ１４、及びホストインタフェース１５と相互に通信可能に接続される。なお、プロセッサとしては、ＣＰＵ１１等の演算処理装置に代えて、電子回路、例えばＭＰＵ（Micro Processing Unit）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等の集積回路（ＩＣ）が用いられてもよい。
【００２６】
また、ＣＰＵ１１は、ＤＲＡＭ１２やＳＣＭ１３などの記憶部に格納されたＯＳ（Operating System）やプログラムを実行することにより、種々の機能を果たす。特に、図２を参照しながら後述するごとく、第１実施形態のＣＰＵ１１は、データキャッシング処理部１１１、データ圧縮・重複排除処理部１１２、ＳＣＭライトバッファ管理部１１３、データアクセス特性判定処理部１１４、データ移動制御部１１５、ＳＳＤプール管理部１１６、及びＳＳＤドライバ１１７としての機能を果たしてもよい。
【００２７】
ＤＲＡＭ１２は、種々のデータやプログラムを一時的に格納する記憶装置であり、キャッシュ領域やメモリ領域を備える。キャッシュ領域は、ホストサーバ３０から受信した書込み対象のデータや、ホストサーバ３０に対して送信する読出し対象のデータを、一時的に格納する。メモリ領域は、ＣＰＵ１１がアプリケーションプログラムを実行する際に、データやプログラムを一時的に格納してもよい。アプリケーションプログラムは、例えば、本実施形態のストレージ制御機能を実現すべくＣＰＵ１１が実行するプログラムであってもよい。
【００２８】
ＳＣＭ１３は、ライトバッファ用として備えられ、ＤＲＡＭ１２とＳＳＤ２１，２２との中間のアクセス性能を有する。つまり、ＳＣＭ１３は、ＳＳＤ２１，２２よりも高速のアクセス性能を有し、ＤＲＡＭ１２は、ＳＣＭ１３よりも高速のアクセス性能を有する。ＳＣＭ１３は、ホストサーバ３０からの、寿命の異なる複数のＳＳＤ２１，２２に対する書込み対象データブロックを、一時的に格納する一時記憶部の一例である。
【００２９】
ＳＳＤコントローラ１４は、ＣＰＵ１１からの指示に従ってＳＳＤ部２０における各ＳＳＤ２１，２２を制御する。ＳＳＤコントローラ１４は、図２を参照しながら後述する、ＳＳＤプール管理部１１６、及びＳＳＤドライバ１１７としての機能を果たしてもよい。
【００３０】
ホストインタフェース（Host I/F）１５は、ＦＣ、ＳＡＳ、Ｅｔｈｅｒｎｅｔ（登録商標）などのハードウェアを用いて、ホストサーバ３０と通信可能に接続される。このようなハードウェアを通信路として、本実施形態のストレージ装置１は、ホストサーバ３０との間でデータの送受信を行なう。なお、ＦＣはFibre Channelの略記であり、ＳＡＳはSerial Attached ＳＣＳＩの略記であり、ＳＣＳＩはSmall Computer System Interfaceの略記である。
【００３１】
ホストサーバ３０からストレージ装置１（ストレージ制御装置１０）に対しデータ書込み要求が行なわれた場合、ホストサーバ３０からの書込み対象のデータは、ホストインタフェース１５を経由してＤＲＡＭ１２に一時的に格納される。このとき、ライトスルー（Write Through）処理を採用した場合、ＤＲＡＭ１２に格納されたデータが、装置電源オフ時でもデータ保持可能な不揮発性メディアであるＳＣＭ１３またはＳＳＤ２１，２２に書き込まれるまで、ホストサーバ３０へ書込み完了応答が返信されない。一方、ライトバック（Write Back）処理を採用した場合、書込み対象のデータがＤＲＡＭ１２に格納された時点で、ホストサーバ３０へ書込み完了応答が返され、その後、非同期に不揮発性メディアにデータ（データブロック）が移動される。
【００３２】
ライトバック処理の採用時には、ハードウェア故障などによりＤＲＡＭ１２上のデータが消失する場合を考慮し、ストレージ制御装置１０をクラスタ構成とし、他のストレージ制御装置１０とデータミラーリングすることが行なわれる場合がある。本実施形態において、ライトスルー処理とライトバック処理との違いはホストサーバ３０への書込み完了応答を行なうタイミングの違いのみである。また、ＤＲＡＭ１２上のデータのクラスタ間ミラーリング処理は本願技術の趣旨と関係ない。したがって、本実施形態では、ストレージ制御装置１０が、クラスタ構成を採らないシングルノード構成であり、且つライトバック処理を採用する場合について説明する。なお、本実施形態において、読出し処理は、論理ボリュームのアドレスから読出し対象データの物理格納場所を特定し、読出し対象データをホストサーバ３０に転送する処理であるので、本実施形態の説明では省略する。
【００３３】
〔２−２〕機能構成
ついで、図２を参照しながら、第１実施形態のストレージ制御装置（管理部）１０の機能構成について説明する。なお、図２は、図１に示すストレージ制御装置１０の機能構成の一例を示すブロック図である。
【００３４】
第１実施形態のストレージ制御装置１０は、ＤＷＰＤの異なる（つまり寿命の異なる）複数のＳＳＤ２１，２２が混在するストレージ装置１において、複数のＳＳＤ２１，２２に格納されるデータブロックを管理する。ストレージ制御装置１０において、ＣＰＵ１１は、プログラムを実行することで、図２に示すように、データキャッシング処理部１１１、データ圧縮・重複排除処理部１１２、ＳＣＭライトバッファ管理部１１３、データアクセス特性判定処理部１１４、データ移動制御部１１５、ＳＳＤプール管理部１１６、及びＳＳＤドライバ１１７として機能してもよい。前述したように、ＳＳＤコントローラ１４が、ＳＳＤプール管理部１１６、及びＳＳＤドライバ１１７としての機能を果たしてもよい。
【００３５】
なお、プログラムは、コンピュータ読取可能な記録媒体であって可搬型の非一時的な記録媒体に記録された形態で提供される。当該記録媒体としては、磁気ディスク，光ディスク，光磁気ディスクなどが挙げられる。また、光ディスクとしては、ＣＤ（Compact Disk），ＤＶＤ（Digital Versatile Disk），ブルーレイディスクなどが挙げられる。ＣＤは、ＣＤ−ＲＯＭ（Read Only Memory），ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などを含む。ＤＶＤは、ＤＶＤ−ＲＡＭ，ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ(High Definition) ＤＶＤなどを含む。
【００３６】
このとき、ＣＰＵ１１は、上述のごとき記録媒体からプログラムを読み取って内部記憶装置または外付けの記憶装置に格納して用いる。ＣＰＵ１１は、プログラムを、ネットワークを介して受信し内部記憶装置または外付けの記憶装置に格納して用いてもよい。
【００３７】
ホストインタフェース１５は、前述した通りホストサーバ３０と通信可能に接続され、ホストサーバ３０との間でデータの送受信を行なう。
【００３８】
データキャッシング処理部１１１は、ホストサーバ３０との間でデータの転送を高速に行なうためのデータキャッシュ機能を果たす。データキャッシング処理部１１１は、ホストサーバ３０から転送された書込み対象データを、ＤＲＡＭ１２上で保持し、実格納場所であるＳＳＤ２１，２２へ書き込む前にホストサーバ３０に対して書込み完了応答を行なう。これにより、データキャッシング処理部１１１は、書込み処理性能を高速化させるバッファ処理を行なう。また、データキャッシング処理部１１１は、ホストサーバ３０から読出し要求を受けたデータを、ホストサーバ３０への転送後もＤＲＡＭ１２で保持し、再度同じデータに対する読出し要求を受けた場合に高速応答を可能にするキャッシュ処理を行なう。さらに、データキャッシング処理部１１１は、ＤＲＡＭ１２にキャッシュされているデータブロックの有無を判定するキャッシュヒット判定処理と、長期間アクセスされないデータブロックをＤＲＡＭ１２から破棄するＬＲＵ（Least Recently Used）制御機能とも有する。なお、書込み要求に対して完了応答を返すタイミングは、ＤＲＡＭ１２へのキャッシング時点（ライトバック方式）と、ＳＣＭ１３またはＳＳＤ２１，２２等の不揮発性メディアにデータブロックを格納した時点（ライトスルー方式）とのいずれか一方を選択可能である。
【００３９】
データ圧縮・重複排除処理部１１２は、ホストサーバ３０等から受信するデータ量を削減する。データ圧縮・重複排除処理部１１２は、ホストサーバ３０から転送される書込み対象データをブロック長単位（通常４Ｋbyteあるいは８Ｋbyte）のデータブロックに分割し、分割後のデータブロックに対し、以下のような重複排除処理や圧縮処理を実行する。なお、書込み対象データのデータ長がブロック長単位に満たない場合、当該書込み対象データに対し、０データをパディングすることで、ブロック長単位のデータブロックが作成される。
【００４０】
重複排除処理では、ストレージ装置１内に同じデータブロックが格納されているか否かが判定され、既に同じデータブロックが存在すれば、データブロックの格納は行なわれずにメタ情報が更新される。ここで、メタ情報には、論理ボリュームのＬＢＡ（Logical Block Address）情報と物理ＳＳＤまたはＳＣＭの実格納場所とをマッピングするマッピング情報が含まれるほか、後述する参照数が含まれる。圧縮処理では、データブロックが可逆形式で縮小・圧縮される。
【００４１】
また、データ圧縮・重複排除処理部１１２は、ホストサーバ３０からの読出し要求時、重複排除されたデータブロックを復元する機能や、圧縮されているデータブロックを伸長する機能も有する。そして、データ圧縮・重複排除処理部１１２は、重複排除処理時に、後述するＳＳＤプール管理部１１６と連携し、ホストサーバ３０からＬＵＮ（Logical Unit Number）によって参照される論理ボリュームと物理ＳＳＤ２１，２２またはＳＣＭ１３との対応関係を記録するメタ情報や、後述する参照数を管理する。
【００４２】
データ圧縮・伸長論理や重複排除論理に関しては、一般に使用されており、本実施形態ではその説明は省略する。また、本実施形態において、重複排除処理と圧縮処理との実行順序、及び圧縮処理自体の有効・無効は関係ない。しかし、本実施形態では、重複排除処理で管理されるデータブロックの参照数は、データブロックのアクセス特性の判定・推定に利用されるため、データ圧縮・重複排除処理部１１２における重複排除機能は有効にする。参照数は、リファレンスカウンタ（Reference Counter）値と表記されてもよいし、重複排除参照数あるいは重複回数と表記されてもよい。
【００４３】
ＳＣＭライトバッファ管理部１１３は、ＤＲＡＭ１２よりもアクセス性能は劣るがＤＲＡＭ１２よりも安価かつ大容量で不揮発性を有し、かつＳＳＤ２１，２２よりも高価ではあるがＳＳＤ２１，２２よりも高速であるＳＣＭ１３を利用する。つまり、ＳＣＭライトバッファ管理部１１３は、ＤＲＡＭ１２とＳＳＤ２１，２２との中間のアクセス性能を有するＳＣＭ１３で、ホストサーバ３０からの書込み対象データ（データブロック）をＳＳＤ２１，２２に格納する前にバッファリングする。これにより、ストレージ性能の向上が図られる。
【００４４】
また、第１実施形態では、実際にＳＳＤ２１，２２に格納する前に、ＳＣＭ１３上でデータブロックのアクセス特性の判定を行なうことで、ＳＳＤプール（ＳＳＤ群）間のデータブロックの移動量を削減することが可能になる。ＳＳＤ部２０には、ＤＷＰＤの大きいＳＳＤ２１が属するＳＳＤプールと、ＤＷＰＤの小さいＳＳＤ２２が属するＳＳＤプールとが含まれる（図４参照）。
【００４５】
なお、ＳＣＭ１３を具備しないストレージ装置１０Ａについて、第２実施形態において図１４〜図２０を参照しながら説明する。つまり、第１実施形態では、ＳＣＭ１３を利用したデータ最適配置手法について説明し、第２実施形態では、ＳＣＭ１３を利用しないデータ最適配置手法について説明する。そのため、第２実施形態では、第１実施形態におけるＳＣＭライトバッファ管理部１１３が存在しない（図１５参照）。
【００４６】
データアクセス特性判定処理部１１４は、定期的にデータブロックの移動判定を行なうために、データブロックに対するアクセス特性の判定または推定を行なう判定処理部に相当する。データアクセス特性判定処理部１１４は、判定処理部１１４と略記する場合がある。特に、データアクセス特性判定処理部１１４は、ホストサーバ３０から書き込まれるデータ（分割後のデータブロック）のアクセス特性が読出し重視（Read Intensive）であるか否かを判断する。本実施形態では、読出し重視のデータブロックをＤＷＰＤの小さい（寿命の短い）ＳＳＤ２２に配置することで、寿命の短いＳＳＤ２２の寿命を延ばすことを目的としている。このため、データアクセス特性判定処理部１１４によって、読出し重視のデータブロックが見い出される。ある一時点において、読出し重視ではないデータブロックは、全て書込み重視（Write Intensive）として扱われる。その後の時間経過に伴い、先の判定タイミングにおいて書込み重視と判断されたデータブロックが、のちの判定タイミングで読出し重視であると判断されることは起き得る。
【００４７】
なお、第１実施形態において、判定処理部１１４は、前述した重複排除処理（重複排除機能）によって管理される、データブロックの参照数（重複回数）に基づいて、アクセス特性の判定または推定を行なってもよい。判定処理部１１４は、例えば、データブロックの参照数が２以上のデータブロックのアクセス特性は読出し重視であると判定する。また、判定処理部１１４は、アクセス特性が読出し重視でない（参照数が２以上でない）データブロックのアクセス特性は書込み重視であると推定してもよい。このとき、判定処理部１１４は、参照数が１で書込み後所定時間経過したデータブロックのアクセス特性は書込み重視であると推定してもよい。
【００４８】
データ移動制御部１１５は、データブロックの移動を実行するもので、寿命の異なる複数のＳＳＤのうち、判定処理部１１４によって判定または推定されたアクセス特性に応じたＳＳＤ２１または２２に、データブロックを格納する格納制御部の一例である。特に、データ移動制御部１１５は、判定処理部１１４によるアクセス特性判定で読出し重視と判断されたデータブロックを、ＳＣＭ１３から、ＤＷＰＤの小さいＳＳＤ２２へ移動させる処理を担う。ＳＣＭライトバッファ管理部１１３の有無により、データ移動処理の動作が異なるが、その差異については後述する。
【００４９】
なお、第１実施形態において、データ移動制御部１１５は、寿命の異なる複数のＳＳＤ２１，２２のうち、判定処理部１１４によって判定または推定されたアクセス特性に応じたＳＳＤ２１または２２に、データブロックを格納する。このとき、データ移動制御部１１５は、参照数が２以上のデータブロックを、他のＳＳＤ２１よりも寿命の短い（ＤＷＰＤの小さい）ＳＳＤ２２に格納してもよい。また、データ移動制御部１１５は、アクセス特性が読出し重視でないデータブロックを、他のＳＳＤ２２よりも寿命の長いＳＳＤ２１に格納してもよい。さらに、データ移動制御部１１５は、判定処理部１１４によってアクセス特性が読出し重視であると判定されたデータブロックを、ＳＣＭ１３から、他のＳＳＤ２１よりも寿命の短いＳＳＤ２２に格納する。一方、データ移動制御部１１５は、判定処理部１１４によってアクセス特性が書込み重視であると推定されたデータブロックを、ＳＣＭ１３から、他のＳＳＤ２２よりも寿命の長いＳＳＤ２１に格納する。
【００５０】
ＳＳＤプール管理部１１６は、ホストサーバ３０からＬＵＮで参照される論理ボリュームと、物理ＳＳＤ２１，２２またはＳＣＭ１３との対応関係を、データ圧縮・重複排除処理部１１２と連携して管理する。当該管理の手法は、物理的なＳＳＤ２１，２２からチャンクと呼ばれるブロックを確保し、当該チャンクを論理ボリュームと対応付けるシンプロビジョニング（Thin Provisioning）機能において一般に使用される手法であり、本実施形態でもその手法が利用される。また、ＳＳＤプール管理部１１６は、寿命指標であるＤＷＰＤが同一または近いＳＳＤをＳＳＤプールにまとめる機能を有していてもよい。本実施形態では、ＳＳＤ部２０において、例えば、ＤＷＰＤの大きいＳＳＤ２１が属するＳＳＤプールと、ＤＷＰＤの小さいＳＳＤ２２が属するＳＳＤプールとにまとめられる（図４参照）。
【００５１】
ＳＳＤドライバ１１７は、ＳＳＤ２１，２２との間でデータ（データブロック）の送受信を行なう。
【００５２】
〔２−３〕動作
次に、図３に示すフローチャート（ステップＳ１〜Ｓ５）に従って、図２に示すストレージ制御装置１０を含むストレージ装置１でのデータ書込み処理について説明する。
【００５３】
まず、ホストインタフェース１５によってホストサーバ３０から書込み要求とともに書込み対象のデータが受信されると、データキャッシング処理部１１１によって、書込み対象のデータは、ＤＲＡＭ１２上でバッファリングされる（ステップＳ１）。そして、バッファリング時点で、データキャッシング処理部１１１からホストインタフェース１５経由で、ホストサーバ３０へ書込み完了応答が返される。
【００５４】
ホストサーバ３０に対し書込み完了応答を行なった後、ＤＲＡＭ１２上のデータは、所定のブロック長単位のデータブロックに分割される。そして、データ圧縮・重複排除処理部１１２によって、データブロック毎に、圧縮処理や重複排除処理といったデータ量削減処理が実行される（ステップＳ２）。本実施形態では、データブロックの参照数に基づきデータブロックのアクセス特性の判定を行なう。このため、圧縮処理の有効／無効や、圧縮処理と重複排除処理との処理順序は、本実施形態と関係ない。したがって、本実施形態では、重複排除処理に着目して説明を行なう。
【００５５】
重複排除処理では、ＤＲＡＭ１２上の書込み対象のデータブロックが重複していると判断された場合、不揮発性デバイス（ＳＣＭ１３またはＳＳＤ２１，２２）に格納済の重複データと同じであることが分かるよう２種類のメタ情報が更新される。２種類のメタ情報は、上述したマッピング情報及びリファレンスカウンタ値である。ただし、データブロックそのものの不揮発性デバイスへのライトバック（Write Back）処理は行なわれず、メタ情報更新後、ＤＲＡＭ１２上のデータは破棄される。データブロックが重複していないと判断された場合、ライトバック処理が行なわれる。そして、ＤＲＡＭ１２上のデータブロックはＳＣＭ１３へコピーされた後、当該データブロックについての２種類のメタ情報が更新されてから、ＤＲＡＭ１２上のデータブロックは削除される。
【００５６】
ここで、図４は、第１実施形態における論理ボリュームのデータ配置を説明する図であり、論理ボリュームとその実データが配置される不揮発性デバイスとの関係を示したものである。第１実施形態において、論理ボリュームの実データは、ＳＣＭ１３あるいはＳＳＤ２１，２２のどちらかに格納されている。ＤＲＡＭ１２上の書込み対象データブロックがライトバックされた直後、当該書込み対象データは、ＳＣＭライトバッファ管理部１１３によって、一旦、ＳＣＭ１３に保持される（ステップＳ３）。その後、当該書込み対象データは、判定処理部１１４によって、ＳＣＭ１３上のデータブロックのアクセス特性が判定される（ステップＳ４）。そして、当該書込み対象データブロックは、データ移動制御部１１５によって、アクセス特性の判定結果に応じて、ＳＳＤプールのＳＳＤ２１または２２に移動される（ステップＳ５）。
【００５７】
２種類のメタ情報である、マッピング情報、及びリファレンスカウンタ値は、論理ボリュームのマッピングテーブル１２０（図５参照）とＳＣＭアロケーションリスト１２２（図８参照）とを用いて、例えばＤＲＡＭ１２上で管理される。マッピング情報は、「論理ボリューム番号と論理ブロックアドレスとの組合せ」と、「不揮発性デバイスの番号とブロック位置との組合せ」とをマッピングする情報である。また、リファレンスカウンタ値は、一つの物理データブロックが複数の論理データブロックと対応している際の「論理データブロックの参照数」に相当する。なお、リファレンスカウンタ値は、シンプロビジョニングと呼ばれる「論理-物理アドレス変換処理」を行なうＳＳＤプール管理部１１６においても保持される。シンプロビジョニング処理は、一般的な処理であるため、ここでは、リファレンスカウンタ値についての詳細な説明は省略する。
【００５８】
ここで、図５は、第１実施形態における論理ボリュームと不揮発性デバイスとを対応付けるマッピングテーブル１２０の構造の一例を示す図である。マッピングテーブル１２０の各エントリには、対応するデータブロックについて、次の情報が、図５に示すようなテーブル形式で、例えばＤＲＡＭ１２上において展開保持される。
【００５９】
・論理アドレス（ボリューム# LBA）：  ホストサーバ３０からアクセスされるＬＵＮに対応する論理ボリュームの番号と、その論理ボリューム内でのデータブロックの位置を示すＬＢＡとの組合せ情報。
【００６０】
・フラグ（Flag）：  論理アドレスで示されるデータブロックが格納されている不揮発性デバイスがＳＣＭ１３であるかＳＳＤ２１，２２であるかを示す情報。第１実施形態では、ＳＣＭ１３にデータブロックが格納されている時にフラグは１に設定される一方、ＳＳＤ２１または２２にデータブロックが格納されている時にフラグは０に設定される。
【００６１】
・不揮発性デバイスアドレス（SCM#-Page#またはSSD-Pool#-block#-Offset）：  フラグの状態が１の時、ＳＣＭ１３上におけるデータブロックの位置の情報である一方、フラグの状態が０の時、データブロックのＳＳＤプール内の論理位置の情報。
【００６２】
なお、図６は、図５に示すマッピングテーブル１２０によるマッピングの具体例を示す図であり、図５に示すマッピングテーブル１２０によるマッピングを概念化したものである。
【００６３】
図３のステップＳ３におけるＳＣＭライトバッファ管理では、ＳＣＭ１３に確保されるライトバッファ領域の、ＳＣＭフリーリスト１２１（図７参照）とＳＣＭアロケーションリスト１２２（図８参照）とが管理される。ライトバッファ領域は、ホストサーバ３０からの書込み対象データを、最終格納先であるＳＳＤ２１，２２へ移動させるまで、一時的に格納する領域である。各々のリスト１２１，１２２は、リンクリストとしてキュー管理される。ＤＲＡＭ１２上からの書込み対象データブロックをライトバックする際、ＳＣＭフリーリスト１２１で参照される空き領域（フリー領域）が、ライトバック先の領域として選択されＳＣＭフリーリスト１２１からデキューされ、ＳＣＭアロケーションリスト１２２にエンキューされる。なお、図７は、第１実施形態におけるＳＣＭフリーリスト１２１の構造の一例を示す図である。図８は、第１実施形態におけるＳＣＭアロケーションリスト１２２の構造の一例を示す図である。
【００６４】
ＳＣＭフリーリスト１２１とＳＣＭアロケーションリストとの構造は基本的に同じで、ＳＣＭフリーリスト１２１は、ＳＣＭ１３における空き領域のリンクリストであり、ＳＣＭアロケーションリスト１２２は、ＳＣＭ１３において、論理ボリュームのデータが格納されている領域についてのリンクリストである。ＳＣＭフリーリスト１２１及びＳＣＭアロケーションリスト１２２における各エントリには、次の情報が、それぞれ図７及び図８に示すようなテーブル形式で、例えばＤＲＡＭ１２上に展開保持される。
【００６５】
・ヘッダ（Header）：  エントリの識別情報とキュー操作時の排他処理用ロックフラグとを含む。図８に示す例では、ＳＣＭ１３のページ番号を利用したシーケンシャル番号が、エントリの識別情報として用いられている。
【００６６】
・前エントリポインタ（Previous Entry）：  リンクリストの直前のエントリをポイントする。エントリが先頭エントリの場合、アンカ（Free Top AnchorまたはAllocated Top Anchor）をポイントする。例えば、図７において先頭のPrevious EntryはFree Top Anchorをポイントし、図８において先頭のPrevious EntryとしてのTop AnchorはAllocated Top Anchorをポイントする。
【００６７】
・次エントリポインタ（Next Entry）：  リンクリストの直後のエントリをポイントする。エントリが最後尾エントリの場合、アンカ（Free Bottom AnchorまたはAllocated Bottom Anchor）をポイントする。例えば、図７において最後尾のNext EntryはFree Bottom Anchorをポイントし、図８において最後尾のNext EntryとしてのBottom AnchorはAllocated Bottom Anchorをポイントする。
【００６８】
・ＳＣＭアドレス：  複数のＳＣＭ１３が搭載された場合のＳＣＭ番号と、各ＳＣＭ１３内でページ単位に分割された領域のシーケンシャル番号との組合せであり、物理領域を特定している。なお、ＳＣＭフリーリスト１２１におけるＳＣＭアドレスは、空き領域の位置を特定する上記組合せの情報である。
【００６９】
・リファレンスカウンタ：  エントリに対応するデータブロックが複数の論理アドレスから参照されている場合に、その参照数（重複回数）を示す値。この値は、データ圧縮・重複排除処理部１１２の重複排除機能によって管理される。当該データブロックが重複排除されていないデータブロックつまり重複していないデータブロックである場合、リファレンスカウンタの値は１になる。図８に示す例では、シーケンシャル番号＃２０のエントリの参照数は３であり、シーケンシャル番号＃８０のエントリの参照数は２であり、シーケンシャル番号＃１５のエントリの参照数は１である。
【００７０】
・ＴＯＤ（Time Of Day）：  エントリがＳＣＭアロケーションリスト１２２にエンキューされた時刻。
【００７１】
・データ長：  ＳＣＭ１３に格納されている、エントリに対応するデータブロックのサイズ（所定のブロック長）。データの圧縮処理を行なわない場合、データブロックのサイズは、固定長で、ＳＣＭ１３を分割しているページサイズと同じサイズである。図８に示す例では、各エントリのデータ長には８１９２が設定されている。
【００７２】
図３のステップＳ２における重複排除処理では、ホストサーバ３０から書き込まれたＤＲＡＭ１２上のデータブロックが、既に書込み済みの他のデータブロックと重複すると判断され、且つ当該データブロックがＳＣＭ１３上に存在している場合、以下の処理が行なわれる。つまり、当該データブロックに対応するマッピングテーブル１２０のフラグに１が設定されている場合、ＳＣＭアロケーションリスト１２２のリファレンスカウンタ値が１増加される。そして、ＤＲＡＭ１２上のデータブロックのライトバック処理は行なわれることなく、ＤＲＡＭ１２上のデータブロックは削除される。
【００７３】
なお、データ移動制御部１１５が後で実行するＳＳＤ２１，２２へのデータ移動処理によって、ＳＣＭ１３上のデータブロックのＳＳＤ２１，２２への移動を完了した時点で、ＳＣＭライトバッファ管理部１１３は、当該データブロックに対応するＳＣＭアロケーションリスト１２２のエントリをＳＣＭフリーリスト１２１に戻す。
【００７４】
次に、図３のステップＳ４におけるデータアクセス特性判定処理は、インターバル時間調整処理と移動データ抽出処理とを含む。インターバル時間調整処理は、データアクセス特性判定処理部１１４が動作する時間間隔を調整する処理である。移動データ抽出処理は、データアクセス特性判定処理部１１４によって実行され、ＳＣＭ１３からＤＷＰＤの大きいＳＳＤ２１へ移動すべきデータブロックと、ＤＷＰＤの小さいＳＳＤ２２へ移動すべきデータブロックとを抽出する処理である。
【００７５】
インターバル時間調整処理においては、例えば図９に示す初期化処理と、例えば図１０に示す時間調整処理とが含まれる。ここで、初期化処理は、装置稼働開始時及び動作モード設定変更時に実行される処理であり、時間調整処理は、インターバル時間毎に実行される処理である。また、移動データ抽出処理においては、例えば図１１〜図１３に示す処理が実行される。
【００７６】
ここで、図９に示すフローチャート（ステップＳ１１〜Ｓ１５）に従って、第１実施形態のストレージ制御装置１０による初期化処理について説明する。
【００７７】
初期化処理では、インターバル時間として固定時間が指定されている場合、つまり自動調整が選択されていない場合（ステップＳ１１のＮＯルート）、指定される固定時間が設定され（ステップＳ１２）、当該固定時間でインターバルタイマが起動され（ステップＳ１５）、図１０に示す処理が実行される。
【００７８】
一方、インターバル時間の自動調整が選択されている場合（ステップＳ１１のＹＥＳルート）、インターバル時間のデフォルト値が設定される（ステップＳ１３）。また、次回起動時に行なわれる自動調整で使用されるデータ移動数のデフォルト値が設定記憶される（ステップＳ１４）。そして、インターバル時間のデフォルト値でインターバルタイマが起動され（ステップＳ１５）、図１０に示す処理が実行される。
【００７９】
ついで、図１０に示すフローチャート（ステップＳ２１〜Ｓ２８）に従って、第１実施形態のストレージ制御装置１０による時間調整処理について説明する。
【００８０】
時間調整処理では、まず、図１１〜図１３を参照しながら後述する移動データ抽出処理が実行される（ステップＳ２１）。そして、インターバル時間として固定時間が指定されている場合、つまり自動調整が選択されていない場合（ステップＳ２２のＮＯルート）、当該固定時間でインターバルタイマが再起動され（ステップＳ２８）、図１０に示す処理が再実行される。これにより、固定時間間隔で移動データ抽出処理（ステップＳ２１）が実行される。
【００８１】
一方、インターバル時間の自動調整が選択されている場合（ステップＳ２２のＹＥＳルート）、移動データ抽出処理（ステップＳ２１）で抽出される、小ＤＷＰＤのＳＳＤ２２へ移動させるデータブロック数に関して、前回の数と今回の数とが比較される（ステップＳ２３）。つまり、今回の移動データ抽出処理で抽出された、小ＤＷＰＤのＳＳＤ２２へ移動させるデータブロック数と、前回の移動データ抽出処理で抽出された小ＤＷＰＤのＳＳＤ２２へ移動させるデータブロック数とが比較される。なお、ＤＷＰＤの小さいＳＳＤ２２は、小ＤＷＰＤのＳＳＤ２２と表記し、ＤＷＰＤの大きいＳＳＤ２１は、大ＤＷＰＤのＳＳＤ２１と表記する場合がある。
【００８２】
比較の結果、前回のデータブロック数が今回のデータブロック数よりも大きい場合（ステップＳ２４のＹＥＳルート）、次回のインターバル時間は縮小される（ステップＳ２５）。例えば、今回のインターバル時間とインターバル時間の下限値との和を所定係数２で除算した値が、次回のインターバル時間として算出される。これにより、インターバル時間は、下限値を下回ることなく縮小される。
【００８３】
一方、前回のデータブロック数が今回のデータブロック数以下である場合（ステップＳ２４のＮＯルート）、次回のインターバル時間は拡大される（ステップＳ２６）。例えば、今回のインターバル時間とインターバル時間の上限値との和を所定係数２で除算した値が、次回のインターバル時間として算出される。これにより、インターバル時間は、上限値を上回ることなく拡大される。
【００８４】
次回のインターバル時間の算出後、今回の移動データ抽出処理（ステップＳ２１）で抽出された、小ＤＷＰＤのＳＳＤ２２へ移動させるデータブロック数は、次回の比較の際における前回のデータブロック数として記憶される（ステップＳ２７）。この後、ステップＳ２５またはＳ２６において算出された次回のインターバル時間でインターバルタイマが再起動され（ステップＳ２８）、図１０に示す処理が再実行される。これにより、インターバル時間間隔で移動データ抽出処理（ステップＳ２１）が実行される。
【００８５】
このように、第１実施形態においては、図１０のステップＳ２３〜Ｓ２６の処理によってインターバル時間が自動調整される。これにより、ＳＣＭ１３に一時的に保存される書込み対象データ（データブロック）をＳＣＭ１３から溢れさせることなく、ＳＣＭ１３の領域を効率的に利用することができる。
【００８６】
次に、図１１〜図１３に示すフローチャートに従って、第１実施形態のストレージ制御装置１０による移動データ抽出処理について説明する。
【００８７】
まず、図１１に示すフローチャート（ステップＳ３１〜Ｓ３３）に従って、第１実施形態のストレージ制御装置１０による移動データ抽出処理の全体的な流れについて説明する。データブロックの移動先のＳＳＤプール（ＳＳＤ群；図４参照）は、ＤＷＰＤの値に応じてまとめられる複数のＳＳＤ２１または２２を含む。このとき、当該ＳＳＤプールへのアクセスは、チャンクと呼ばれるブロック単位で行なわれる。第１実施形態の移動データ抽出処理は、後述するように、ＳＣＭ１３上に格納されている移動すべきデータブロックを、チャンク単位毎にまとめる処理である。
【００８８】
第１実施形態の移動データ抽出処理は、図１１に示す３つの処理（ステップＳ３１〜Ｓ３３）を含む。最初の処理（ステップＳ３１）では、ＳＣＭアロケーションリスト１２２のエントリが、リファレンスカウンタ値をキーとして昇順にソーティングされる。そして、リファレンスカウンタ値が１であるエントリは、ＴＯＤの古いものから順にソーティングされる。
【００８９】
ステップＳ３１でのソート処理後、リファレンスカウンタ値が２以上のデータブロックをＤＷＰＤの小さいＳＳＤプール（ＳＤＤ２２）に移動させるための抽出処理が行なわれる（ステップＳ３２）。ここで、リファレンスカウンタ値が２以上であるということは、複数の論理データブロックから参照されている重複データブロックであることを意味する。重複排除の仕組みから、その参照元の論理データが更新された場合でもリファレンスカウンタ値が減るだけで物理データブロックは変更されない。つまり、リファレンスカウンタ値が２以上のデータブロックは、その値が１になるまでは物理データブロックはリードオンリのデータであることが保障される。このリファレンスカウンタ値が２以上のデータをまとめたチャンクは、読出し重視（Read Intensive）のブロックであり、ＤＷＰＤの小さいＳＳＤプールに格納すべきデータである。図１１のステップＳ３２で実行される処理については、図１２を参照しながら後述する。
【００９０】
ＤＷＰＤの小さいＳＳＤプール（ＳＳＤ２２）へ移動するデータブロックの抽出完了後、ＤＷＰＤの大きいＳＳＤプール（ＳＳＤ２１）へ移動するデータを抽出する処理として、リファレンスカウンタ値が１のエントリを調べる処理が実行される（ステップＳ３３）。図１１のステップＳ３３で実行される処理については、図１３を参照しながら後述する。
【００９１】
図１２に示すフローチャート（ステップＳ４１〜Ｓ５０）に従って、図１１のステップＳ３２で実行される、リファレンスカウンタ値が２以上のデータブロックの抽出処理について説明する。
【００９２】
ここで、ＳＣＭアロケーションリスト１２２のエントリが前処理（ステップＳ３１の処理）によってリファレンスカウンタ値をキーとして昇順にソートされている。そこで、図１２に示す処理では、各エントリのデータ長に基づきチャック残サイズを算出しながら、ある移動チャンク（ブロック）に入るだけ、エントリに対応するデータブロックが登録される。そして、当該移動チャンクがフルの状態になった場合、次の移動チャンクにデータブロックが登録される。この処理を、リファレンスカウンタ値が２以上のデータブロックが存在する限り、繰り返すことによって、ＤＷＰＤの小さいＳＳＤプールへ移動させるデータが抽出される。
【００９３】
具体的には、図１２に示すように、まず、ソート後のＳＣＭアロケーションリスト１２２が参照され、リファレンスカウンタ値が２以上のエントリがあるか否かが判定される（ステップＳ４１）。リファレンスカウンタ値が２以上のエントリがない場合（ステップＳ４１のＮＯルート）、リファレンスカウンタ値が２以上のデータブロックの抽出処理は終了する。
【００９４】
一方、リファレンスカウンタ値が２以上のエントリがある場合（ステップＳ４１のＹＥＳルート）、リファレンスカウンタ値が２以上のデータブロックを登録する空の移動チャンクが設定される（ステップＳ４２）。また、チャンク残サイズとして、当該移動チャンクのチャンクサイズが設定される（ステップＳ４３）。
【００９５】
この後、ＳＣＭアロケーションリスト１２２から、リファレンスカウンタ値が２以上のデータブロックが一つ選択され（ステップＳ４４）、選択したエントリのデータ長がチャンク残サイズよりも小さいか否かが判定される（ステップＳ４５）。選択したエントリのデータ長がチャンク残サイズよりも小さい場合（ステップＳ４５のＹＥＳルート）、選択したエントリに対応するデータブロックは、移動チャンクに登録される（ステップＳ４６）。この後、チャンク残サイズとして、チャンクサイズから選択したエントリのデータ長を減算した値が設定される（ステップＳ４７）。
【００９６】
そして、リファレンスカウンタ値が２以上のエントリがあるか否かが判定される（ステップＳ４８）。リファレンスカウンタ値が２以上のエントリがない場合（ステップＳ４８のＮＯルート）、リファレンスカウンタ値が２以上のデータブロックの抽出処理は終了する。リファレンスカウンタ値が２以上のエントリがある場合（ステップＳ４８のＹＥＳルート）、特性判定処理部１１４はステップＳ４４の処理に戻る。
【００９７】
また、選択したエントリのデータ長がチャンク残サイズ以上である場合（ステップＳ４５のＮＯルート）、新たに空の移動チャンクが設定される（ステップＳ４９）。また、チャンク残サイズとして、当該移動チャンクのチャンクサイズが設定されてから（ステップＳ５０）、特性判定処理部１１４はステップＳ４５の処理に戻る。
【００９８】
図１３に示すフローチャート（ステップＳ５１〜Ｓ６０）に従って、図１１のステップＳ３３で実行される、リファレンスカウンタ値が１のデータブロックの抽出処理について説明する。
【００９９】
ここで、リファレンスカウンタ値が１であるということは、参照元のデータブロックが更新された場合、ポイントされている物理データブロックも更新されるということである。あるいは、別領域に更新データブロックが格納され、その物理データブロックが論理データブロックから新たにポイントされると同時に、ポイントされていた古い物理データブロックが無効化される場合もある。一方、時間の経過に伴い、重複データブロックが増え、リファレンスカウンタ値が１からもっと大きな値数に変わることもある。したがって、リファレンスカウンタ値が１のデータブロックは将来リードオンリのデータブロックになる可能性もある。このため、ある程度の長期間に亘ってリファレンスカウンタ値を監視することが望ましい。しかし、ＳＣＭ１３の容量も有限であるため、第１実施形態では、ある規定時間が経過した、リファレンスカウンタ値が１のデータブロックは、ＤＷＰＤの大きいＳＳＤプールへ移動させる。
【０１００】
リファレンスカウンタ値が１のデータブロック（エントリ）は、前処理（ステップＳ３１）によってＳＣＭ１３への登録時刻であるＴＯＤをキーとして古い順にソートされている。このソート結果が参照され、ＳＣＭ１３への登録後、規定時間以上経過しているデータブロック（エントリ）が抽出される。図１３に示す処理でも、各エントリのデータ長に基づきチャック残サイズを算出しながら、ある移動チャンク（ブロック）に入るだけ、エントリに対応するデータブロックが登録される。そして、当該移動チャンクがフルの状態になった場合、次の移動チャンクにデータブロックが登録される。この処理を、規定時間以上の時間が経過しているデータブロックが存在する限り、繰り返すことによって、ＤＷＰＤの大きいＳＳＤプールへ移動させるデータが抽出される。
【０１０１】
具体的には、図１３に示すように、まず、ソート後のＳＣＭアロケーションリスト１２２が参照され、リファレンスカウンタ値が１のエントリのうち登録後規定時間以上の時間が経過しているエントリがあるか否かが判定される（ステップＳ５１）。該当するエントリがない場合（ステップＳ５１のＮＯルート）、リファレンスカウンタ値が１のデータブロックの抽出処理は終了する。
【０１０２】
一方、該当するエントリがある場合（ステップＳ５１のＹＥＳルート）、当該エントリに対応するデータブロックを登録する空の移動チャンクが設定される（ステップＳ５２）。また、チャンク残サイズとして、当該移動チャンクのチャンクサイズが設定される（ステップＳ５３）。
【０１０３】
この後、ＳＣＭアロケーションリスト１２２から、リファレンスカウンタ値が１で登録後規定時間以上の時間が経過しているデータブロックが一つ選択され（ステップＳ５４）、選択したエントリのデータ長がチャンク残サイズよりも小さいか否かが判定される（ステップＳ５５）。選択したエントリのデータ長がチャンク残サイズよりも小さい場合（ステップＳ５５のＹＥＳルート）、選択したエントリに対応するデータブロックは、移動チャンクに登録される（ステップＳ５６）。この後、チャンク残サイズとして、チャンクサイズから選択したエントリのデータ長を減算した値が設定される（ステップＳ５７）。
【０１０４】
そして、リファレンスカウンタ値が１のエントリのうち登録後規定時間以上の時間が経過しているエントリがあるか否かが判定される（ステップＳ５８）。該当するエントリがない場合（ステップＳ５８のＮＯルート）、リファレンスカウンタ値が１のデータブロックの抽出処理は終了する。該当するエントリがある場合（ステップＳ５８のＹＥＳルート）、特性判定処理部１１４はステップＳ５４の処理に戻る。
【０１０５】
また、選択したエントリのデータ長がチャンク残サイズ以上である場合（ステップＳ５５のＮＯルート）、新たに空の移動チャンクが設定される（ステップＳ５９）。また、チャンク残サイズとして、当該移動チャンクのチャンクサイズが設定されてから（ステップＳ６０）、特性判定処理部１１４はステップＳ５５の処理に戻る。
【０１０６】
最後に、図３のステップＳ５におけるＳＳＤ２１，２２へのデータ移動処理では、図３のステップＳ４におけるデータアクセス特性判定処理によって抽出された、ＳＳＤ２１または２２へ移動すべきデータブロック（移動チャンク）を、ＳＳＤ２１または２２へ移動させる処理が実行される。ＳＣＭ１３からＳＳＤプールへのチャンク単位でのデータ移動は、シンプロビジョニングと呼ばれる一般的なデータ管理手法であるので、ここでは、データ移動処理そのものについては言及しない。
【０１０７】
ＳＣＭ１３上のデータブロックのＳＳＤ２１，２２への移動が完了すると、図３のステップＳ５におけるＳＳＤ２１，２２へのデータ移動処理では、メタデータが更新されるため、ＳＣＭライトバッファ管理部１１３へ次の二つの処理が依頼される。一つ目の処理は、移動させたデータブロックを管理していたＳＣＭアロケーションリスト１２２のエントリを、ＳＣＭフリーリスト１２１へ戻す処理である。二つ目の処理は、移動させたデータブロックをポイントしているマッピングテーブル１２０の不揮発性デバイスアドレスの内容を、ＳＣＭ１３の位置情報からＳＳＤ２１，２２の位置情報に置き換え、フラグの値を、ＳＳＤを示す値０に変更する処理である。
【０１０８】
以上のように、第１実施形態によれば、重複排除処理で管理されるリファレンスカウンタの値に着目してデータブロックを格納するＳＳＤ２１，２２が振り分けられる。これにより、データブロックのアクセス特性（読出し重視か書込み重視か）に応じて寿命指標（ＤＷＰＤ）の異なるＳＳＤ２１，２２へ最適なデータ格納が実現され、特に、ＤＷＰＤの小さいＳＳＤ２２の寿命を延ばすことが可能になる。
【０１０９】
〔３〕第２実施形態
〔３−１〕ハードウェア構成
前述したように、第１実施形態では、ＳＣＭ１３を利用したデータ最適配置手法について説明した。これに対し、第２実施形態では、ＳＣＭ１３を利用しないデータ最適配置手法について説明する。このため、図１４に示すように、第２実施形態のストレージ装置１Ａにおけるストレージ制御装置１０Ａのハードウェア構成は、ＳＣＭが省略されている点で第１実施形態のストレージ制御装置１０と異なっている。図１４は、本発明の第２実施形態としてのストレージ制御装置１０Ａを含むストレージ装置１Ａのハードウェア構成の一例を示すブロック図である。なお、図１４中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
【０１１０】
上述のように、第２実施形態のストレージ制御装置１０Ａでは、不揮発性デバイスとしてＳＳＤのみを備えるハードウェア構成が採用される。第１実施形態で用いられるＳＣＭは、ＳＳＤよりも高速なアクセスが可能であるが、ＳＳＤよりも高価であると考えられる。したがって、第２実施形態によれば、ＳＣＭを用いないため、第１実施形態と比べ、より安価な構成で第１実施形態と同様の作用効果を得ることができる。
【０１１１】
なお、第２実施形態のストレージ制御装置１０Ａも、第１実施形態と同様、クラスタ構成を採らないシングルノード構成であり、且つライトバック処理を採用する場合について説明する。
【０１１２】
〔３−２〕機能構成
ついで、図１５を参照しながら、第２実施形態のストレージ制御装置（管理部）１０Ａの機能構成について説明する。なお、図１５は、図１４に示すストレージ制御装置１０Ａの機能構成の一例を示すブロック図である。図１５中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する場合がある。
【０１１３】
第２実施形態のストレージ制御装置１０Ａも、第１実施形態と同様、ＤＷＰＤの異なる複数のＳＳＤ２１，２２が混在するストレージ装置１Ａにおいて、複数のＳＳＤ２１，２２に格納されるデータブロックを管理する。ストレージ制御装置１０Ａにおいて、ＣＰＵ１１は、プログラムを実行することで、図１５に示すように、データキャッシング処理部１１１、データ圧縮・重複排除処理部１１２、データアクセス特性判定処理部１１４、データ移動制御部１１５、ＳＳＤプール管理部１１６、及びＳＳＤドライバ１１７として機能してもよい。前述したように、ＳＳＤコントローラ１４が、ＳＳＤプール管理部１１６、及びＳＳＤドライバ１１７としての機能を果たしてもよい。なお、第２実施形態においても、プログラムは、第１実施形態と同様にして提供される。
【０１１４】
特に、第２実施形態では、ＤＲＡＭ１２上のデータブロックのライトバック先は、ＤＷＰＤの大きいＳＳＤプール（寿命の長いＳＳＤ２１）である。つまり、アクセス特性が不明なデータブロックは、ＤＷＰＤの大きいＳＳＤプールに格納しておく。そして、第２実施形態のデータアクセス特性判定処理部１１４は、ＳＳＤ２１上のデータブロックについて定期的に移動データ抽出処理を行なう。移動データ抽出処理によって抽出されたデータブロックは、第２実施形態のデータ移動制御部１１５によって、ＤＷＰＤの大きいＳＳＤプールからＤＷＰＤの小さいＳＳＤプールへチャンク単位で移動される。
【０１１５】
なお、第２実施形態で行なわれる、ＤＷＰＤの大きいＳＳＤ２１からＤＷＰＤの小さいＳＳＤ２２へのデータブロックの移動処理は、第１実施形態のごとくＳＣＭを具備する装置にも適用可能である。これにより、第１実施形態において、当初ＤＷＰＤの大きいＳＳＤ２１に格納され、書込み重視であると推定されたデータブロックが、推定後、読出し重視であると判定された場合に最適なデータ配置を行なうことができる。
【０１１６】
第２実施形態のデータキャッシング処理部１１１及びデータ圧縮・重複排除処理部１１２は、それぞれ、第１実施形態のデータキャッシング処理部１１１及びデータ圧縮・重複排除処理部１１２と同様の機能を果たす。
【０１１７】
第２実施形態のデータアクセス特性判定処理部１１４も、第１実施形態と同様、定期的にデータブロックの移動判定を行なうために、データブロックに対するアクセス特性の判定または推定を行なう判定処理部の一例である。特に、第２実施形態の判定処理部１１４は、ＤＷＰＤの大きいＳＳＤ２１に格納されたデータブロックに対するアクセス特性の判定または推定を行なう。
【０１１８】
そして、第２実施形態のデータ移動制御部（格納処理部）１１５は、判定処理部１１４によってアクセス特性が読出し重視であると判定されたデータブロックを、ＤＷＰＤの大きいＳＳＤ２１から、ＤＷＰＤの小さいＳＳＤ２２に格納する。
【０１１９】
なお、第２実施形態において、第１実施形態と同様、重複排除処理（重複排除機能）によって管理される、データブロックの参照数（重複回数）に基づいて、アクセス特性の判定または推定を行なってもよい。判定処理部１１４は、例えば、データブロックの参照数が２以上のデータブロックのアクセス特性は読出し重視であると判定する。また、判定処理部１１４は、アクセス特性が読出し重視でないデータブロックのアクセス特性は書込み重視であると推定してもよい。
【０１２０】
また、第２実施形態のＳＳＤプール管理部１１６及びＳＳＤドライバ１１７は、それぞれ、第１実施形態のＳＳＤプール管理部１１６及びＳＳＤドライバ１１７と同様の機能を果たす。
【０１２１】
〔３−３〕動作
次に、図１６に示すフローチャート（ステップＳ７１〜Ｓ７４）に従って、図１５に示すストレージ制御装置１０Ａを含むストレージ装置１Ａでのデータ書込み処理について説明する。
【０１２２】
第１実施形態と同様、まず、ホストインタフェース１５によってホストサーバ３０から書込み要求とともに書込み対象のデータが受信されると、データキャッシング処理部１１１によって、書込み対象のデータは、ＤＲＡＭ１２上でバッファリングされる（ステップＳ７１）。そして、バッファリング時点で、データキャッシング処理部１１１からホストインタフェース１５経由で、ホストサーバ３０へ書込み完了応答が返される。
【０１２３】
ホストサーバ３０に対し書込み完了応答を行なった後、ＤＲＡＭ１２上のデータは、所定のブロック長単位のデータブロックに分割される。そして、データ圧縮・重複排除処理部１１２によって、データブロック毎に、圧縮処理や重複排除処理といったデータ量削減処理が実行される（ステップＳ７２）。第２実施形態でも、データブロックの参照数に基づきデータブロックのアクセス特性の判定を行なうため、重複排除処理に着目して説明を行なう。
【０１２４】
重複排除処理では、ＤＲＡＭ１２上の書込み対象のデータブロックが重複していると判断された場合、不揮発性デバイス（ＳＳＤ２１，２２）に格納済の重複データと同じであることが分かるよう２種類のメタ情報が更新される。２種類のメタ情報は、上述したマッピング情報及びリファレンスカウンタ値である。ただし、データブロックそのものの不揮発性デバイスへのライトバック処理は行なわれず、メタ情報更新後、ＤＲＡＭ１２上のデータは破棄される。データブロックが重複していないと判断された場合、ライトバック処理が行なわれる。そして、ＤＲＡＭ１２上のデータブロックはＤＷＰＤの大きいＳＳＤ２１へコピーされた後、当該データブロックについての２種類のメタ情報が更新されてから、ＤＲＡＭ１２上のデータブロックは削除される。
【０１２５】
第２実施形態において、論理ボリュームの実データは、ＤＷＰＤの異なる複数のＳＳＤプール（ここでは２種類のＳＳＤ２１，２２）のどこかに格納されている。ＤＲＡＭ１２上の書込み対象データブロックがライトバックされた直後、当該書込み対象データは、ＤＷＰＤの大きいＳＳＤプールに保持される。その後、当該書込み対象データは、判定処理部１１４によって、ＤＷＰＤの大きいＳＳＤプールにおけるデータブロックのアクセス特性が判定される（ステップＳ７３）。そして、アクセス特性が読出し重視であると判定されたチャンク（データブロック）は、データ移動制御部１１５によって、ＤＷＰＤの大きいＳＳＤプールからＤＷＰＤの小さいＳＳＤプールに移動される（ステップＳ７４）。一方、アクセス特性が読出し重視でないデータブロックは、ＤＷＰＤの大きいＳＳＤプールで保持される。
【０１２６】
また、第２実施形態において、２種類のメタ情報である、マッピング情報、及びリファレンスカウンタ値は、論理ボリュームのマッピングテーブル１２０Ａ（図１７参照）を用いて、例えばＤＲＡＭ１２上で管理される。マッピング情報は、「論理ボリューム番号と論理ブロックアドレスとの組合せ」と、「不揮発性デバイスの番号とブロック位置との組合せ」とをマッピングする情報である。また、リファレンスカウンタ値は、一つの物理データブロックが複数の論理データブロックと対応している際の「論理データブロックの参照数」に相当する。なお、第１実施形態でも前述したように、リファレンスカウンタ値は、ＳＳＤプール管理部１１６においても保持されるが、ここでは言及しない。
【０１２７】
ここで、図１７は、第２実施形態における論理ボリュームと不揮発性デバイスとを対応付けるマッピングテーブル１２０Ａの構造の一例を示す図である。マッピングテーブル１２０Ａの各エントリには、対応するデータブロックについて、次の情報が、図１７に示すようなテーブル形式で、例えばＤＲＡＭ１２上において展開保持される。
【０１２８】
・論理アドレス（ボリューム# LBA）：  ホストサーバ３０からアクセスされるＬＵＮに対応する論理ボリュームの番号と、その論理ボリューム内でのデータブロックの位置を示すＬＢＡとの組合せ情報。
【０１２９】
・フラグ（Flag）：  論理アドレスで示されるデータブロックが格納されているＳＳＤプールがＤＷＰＤの大きいＳＳＤプール（寿命の長いＳＳＤ２１）であるかそれ以外であるかを示す情報。第２実施形態では、ＤＷＰＤの大きいＳＳＤプールにデータブロックが格納されている時にフラグは１に設定される。一方、それ以外のＳＳＤプール（第２実施形態ではＤＷＰＤの小さいＳＳＤプール／ＳＳＤ２２）にデータブロックが格納されている時にフラグは０に設定される。
【０１３０】
・不揮発性デバイスアドレス（SSD-Pool#-block#-Offset）：  対応するデータブロックのＳＳＤプール内の論理位置の情報。
【０１３１】
・リファレンスカウンタ（重複排除参照数）：  エントリに対応するデータブロックが複数の論理アドレスから参照されている場合に、その参照数（重複回数）を示す値。この値は、データ圧縮・重複排除処理部１１２の重複排除機能によって管理される。当該データブロックが重複排除されていないデータブロックつまり重複していないデータブロックである場合、リファレンスカウンタの値は１になる。図１７に示す例では、不揮発性デバイスアドレスがSSD-Pool1-block15-Offset5のデータブロックの参照数は３である。また、不揮発性デバイスアドレスがSSD-Pool1-block10-Offset7のデータブロックの参照数は２であり、不揮発性デバイスアドレスがSSD-Pool2-block10-Offset3のデータブロックの参照数は２である。また、不揮発性デバイスアドレスがSSD-Pool1-block10-Offset1のデータブロックの参照数は１である。
【０１３２】
なお、図１８は、図１７に示すマッピングテーブル１２０Ａによるマッピングの具体例を示す図であり、図１７に示すマッピングテーブル１２０Ａによるマッピングを概念化したものである。
【０１３３】
次に、図１６のステップＳ７３におけるデータアクセス特性判定処理は、第１実施形態と同様、インターバル時間調整処理と移動データ抽出処理とを含む。第２実施形態のインターバル時間調整処理は、第１実施形態と同様、データアクセス特性判定処理部１１４が動作する時間間隔を調整する処理である。第２実施形態のインターバル時間調整処理においても、図９及び図１０を参照しながら前述した処理と同様の処理が実行されるので、その説明は省略する。
【０１３４】
ただし、第２実施形態では、図１０の移動データ抽出処理として、第１実施形態の図１１〜図１３に示す処理の代わりに、図１９及び図２０に示す処理が実行される。つまり、第２実施形態の移動データ抽出処理では、データアクセス特性判定処理部１１４によって、ＤＷＰＤの大きいＳＳＤプールからＤＷＰＤの小さいＳＳＤプールへ移動すべきデータブロックを抽出する処理が実行される。
【０１３５】
次に、図１９及び図２０に示すフローチャートに従って、第２実施形態のストレージ制御装置１０Ａによる移動データ抽出処理について説明する。
【０１３６】
まず、図１９に示すフローチャート（ステップＳ８１，Ｓ８２）に従って、第２実施形態のストレージ制御装置１０Ａによる移動データ抽出処理の全体的な流れについて説明する。第２実施形態において、データブロックの移動は、寿命の長いＳＳＤ２１と寿命の短いＳＳＤ２２との間での移動（図１６のステップＳ７４参照）になるので、チャンク単位で移動対象のデータブロックを抽出する。
【０１３７】
第２実施形態の移動データ抽出処理は、図１９に示す２つの処理（ステップＳ８１，Ｓ８２）を含む。最初の処理（ステップＳ８１）では、マッピングテーブル１２０Ａにおいてフラグが１のエントリ、つまり寿命の長いＳＳＤ２１に格納されるデータブロックが、不揮発性デバイスアドレスをキーとしてソーティングされ、チャンク順に並べられる。
【０１３８】
ステップＳ８１でのソート処理後、判定処理部１１４は、各エントリのリファレンスカウンタ値を調査する。そして、判定処理部１１４は、リファレンスカウンタ値が２以上のエントリに対応するデータブロックの占める割合が設定値以上であるチャンクを、移動対象のチャンクとして抽出する（ステップＳ８２）。例えば設定値が１００％であれば、ステップＳ８２で抽出される移動対象のチャンクに属する全てのデータブロックは、重複している、つまり重複排除の対象になっている。
【０１３９】
図２０に示すフローチャート（ステップＳ９１〜Ｓ９５）に従って、図１９のステップＳ８２で実行される、リファレンスカウンタ値が２以上のデータブロックの占める割合が設定値以上のチャンクの抽出処理について説明する。
【０１４０】
まず、ステップＳ８１でのソート結果が参照され、調査対象の最初のチャンクが選択される（ステップＳ９１）。そして、選択されたチャンク内のデータブロックのうち、リファレンスカウンタ値が２以上のデータブロックの占める割合が、設定値以上であるか否かが判定される（ステップＳ９２）。
【０１４１】
リファレンスカウンタ値が２以上のデータブロックの占める割合が設定値未満である場合（ステップＳ９２のＮＯルート）、全てのチャンクの調査が完了したか否かが判定される（ステップＳ９４）。全てのチャンクの調査が完了した場合（ステップＳ９４のＹＥＳルート）、抽出処理は終了する。一方、全てのチャンクの調査が完了していない場合（ステップＳ９４のＮＯルート）、未調査の次のチャンクが選択され（ステップＳ９５）、特性判定処理部１１４はステップＳ９２の処理に戻る。
【０１４２】
リファレンスカウンタ値が２以上のデータブロックの占める割合が設定値以上である場合（ステップＳ９２のＹＥＳルート）、特性判定処理部１１４は、現在選択しているチャンクを、移動チャンク（移動対象のチャンク）として登録し（ステップＳ９３）、ステップＳ９４の処理に移行する。
【０１４３】
最後に、図１６のステップＳ７４におけるＳＳＤ２１，２２間のデータ移動処理では、図１６のステップＳ７３におけるデータアクセス特性判定処理（図２０の処理参照）によって抽出登録された移動チャンクを、ＤＷＰＤの大きいＳＳＤ２１からＤＷＰＤの小さいＳＳＤ２２へ移動させる処理が実行される。
【０１４４】
チャンクを移動させる処理では、次の三つの処理が、ＳＳＤプール管理部１１６へ依頼される。一つ目の処理は、移動元チャンクのデータブロックを移動先チャンクへコピーする処理である。二つ目の処理は、移動元チャンク領域の無効化処理である。三つ目は、先の二つの処理が完了した後、マッピングテーブル１２０Ａの不揮発性デバイスアドレスの内容を、移動先の新しいアドレスに置き換える処理である。
【０１４５】
上述のように、第２実施形態のストレージ制御装置１０Ａでは、重複排除処理で管理されるリファレンスカウンタの値に基づき、ＤＷＰＤの大きいＳＳＤプールからＤＷＰＤの小さいＳＳＤプールへ、チャンク単位で読出し重視のデータブロックの移動が行われる。これにより、データブロックのアクセス特性（読出し重視か書込み重視か）に応じて寿命指標（ＤＷＰＤ）の異なるＳＳＤ２１，２２へ最適なデータ格納が実現され、特に、ＤＷＰＤの小さいＳＳＤ２２の寿命を延ばすことが可能になる。
【０１４６】
また、第２実施形態によれば、第１実施形態で備えられるＳＣＭを用いないため、第１実施形態と比べ、より安価な構成で第１実施形態と同様の作用効果を得ることができる。
【０１４７】
〔４〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１４８】
例えば、上述した実施形態では、寿命の異なるＳＳＤ、つまり寿命指標であるＤＷＰＤのＳＳＤが大小（長短）の二種類である場合について説明したが、本発明は、これに限定されるものでなく、三種類以上で有る場合にも同様に適用され、上述した実施形態と同様の作用効果を得ることができる。
【０１４９】
〔５〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
【０１５０】
（付記１）
寿命の異なる複数の記憶部と、
前記複数の記憶部に格納されるデータブロックを管理する管理部と、を備え、
前記管理部は、
前記データブロックに対するアクセス特性の判定または推定を行なう判定処理部と、
前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定または推定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部と、を有する、ストレージ装置。
【０１５１】
（付記２）
前記管理部は、前記データブロックの重複を排除する重複排除機能を有し、
前記判定処理部は、前記重複排除機能によって管理される、前記データブロックの参照数に基づいて、前記アクセス特性の判定または推定を行なう、付記１に記載のストレージ装置。
【０１５２】
（付記３）
前記判定処理部は、前記参照数が２以上のデータブロックの前記アクセス特性は読出し重視であると判定し、
前記格納処理部は、前記参照数が２以上のデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の短い記憶部に格納する、付記２に記載のストレージ装置。
【０１５３】
（付記４）
前記判定処理部は、前記アクセス特性が読出し重視でないデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記アクセス特性が読出し重視でないデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部に格納する、付記３に記載のストレージ装置。
【０１５４】
（付記５）
ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして一時的に格納する一時記憶部を有し、
前記判定処理部は、前記一時記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、付記４に記載のストレージ装置。
【０１５５】
（付記６）
前記判定処理部は、前記参照数が１で書込み後所定時間経過したデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記判定処理部によって前記アクセス特性が書込み重視であると推定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の長い記憶部に格納する、付記５に記載のストレージ装置。
【０１５６】
（付記７）
前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部は、ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして格納し、
前記判定処理部は、前記他の記憶部よりも寿命の長い記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記他の記憶部よりも寿命の長い記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、付記２〜付記４のいずれか一項に記載のストレージ装置。
【０１５７】
（付記８）
寿命の異なる複数の記憶部に格納されるデータブロックを管理する管理部を備え、
前記管理部は、
前記データブロックに対するアクセス特性を判定する判定処理部と、
前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部と、を有する、ストレージ制御装置。
【０１５８】
（付記９）
前記管理部は、前記データブロックの重複を排除する重複排除機能を有し、
前記判定処理部は、前記重複排除機能によって管理される、前記データブロックの参照数に基づいて、前記アクセス特性の判定または推定を行なう、付記８に記載のストレージ制御装置。
【０１５９】
（付記１０）
前記判定処理部は、前記参照数が２以上のデータブロックの前記アクセス特性は読出し重視であると判定し、
前記格納処理部は、前記参照数が２以上のデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の短い記憶部に格納する、付記９に記載のストレージ制御装置。
【０１６０】
（付記１１）
前記判定処理部は、前記アクセス特性が読出し重視でないデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記アクセス特性が読出し重視でないデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部に格納する、付記１０に記載のストレージ制御装置。
【０１６１】
（付記１２）
ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして一時的に格納する一時記憶部を有し、
前記判定処理部は、前記一時記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、付記１１に記載のストレージ制御装置。
【０１６２】
（付記１３）
前記判定処理部は、前記参照数が１で書込み後所定時間経過したデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記判定処理部によって前記アクセス特性が書込み重視であると推定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の長い記憶部に格納する、付記１２に記載のストレージ制御装置。
【０１６３】
（付記１４）
前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部は、ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして格納し、
前記判定処理部は、前記他の記憶部よりも寿命の長い記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記他の記憶部よりも寿命の長い記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、付記９〜付記１１のいずれか一項に記載のストレージ制御装置。
【符号の説明】
【０１６４】
１，１Ａ    ストレージ装置
１０，１０Ａ    ストレージ制御装置（管理部）
１１    ＣＰＵ（処理部）
１１１    データキャッシング処理部
１１２    データ圧縮・重複排除処理部
１１３    ＳＣＭライトバッファ管理部
１１４    データアクセス特性判定処理部（判定処理部）
１１５    データ移動制御部（格納制御部）
１１６    ＳＳＤプール管理部
１１７    ＳＳＤドライバ
１２０，１２０Ａ    マッピングテーブル
１２１    ＳＣＭフリーリスト
１２２    ＳＣＭアロケーションリスト
１２    ＤＲＡＭ
１３    ＳＣＭ（一時記憶部）
１４    ＳＳＤコントローラ
１５    ホストインタフェース（Host I/F）
２０    ＳＳＤ部
２１    寿命の長いＳＳＤ（ＤＷＰＤの大きいＳＳＤ）
２２    寿命の短いＳＳＤ（ＤＷＰＤの小さいＳＳＤ）
３０    ホストサーバ（サーバ）
【図１】
2018041245.tif 000003
【図２】
2018041245.tif 000004
【図３】
2018041245.tif 000005
【図４】
2018041245.tif 000006
【図５】
2018041245.tif 000007
【図６】
2018041245.tif 000008
【図７】
2018041245.tif 000009
【図８】
2018041245.tif 000010
【図９】
2018041245.tif 000011
【図１０】
2018041245.tif 000012
【図１１】
2018041245.tif 000013
【図１２】
2018041245.tif 000014
【図１３】
2018041245.tif 000015
【図１４】
2018041245.tif 000016
【図１５】
2018041245.tif 000017
【図１６】
2018041245.tif 000018
【図１７】
2018041245.tif 000019
【図１８】
2018041245.tif 000020
【図１９】
2018041245.tif 000021
【図２０】
2018041245.tif 000022