(57)【要約】【課題】不揮発性メモリを活用して磁気ディスクを停止することにより省電力制御を行うストレージ装置において、不揮発性メモリの長寿命化及び信頼性の向上を図る。【解決手段】マスタ磁気ディスクと、マスタ磁気ディスクとミラーリング構成されたミラー磁気ディスクと、不揮発性メモリとを備え、ミラー磁気ディスクを停止させ、ミラー磁気ディスクに書き込むデータを不揮発性メモリに書き込むように制御する停止制御を行う磁気ディスク制御手段１と、不揮発性メモリにデータを書き込む際に重複排除を行う重複排除手段２と、不揮発性メモリに書き込まれたデータ量が閾値を超えた場合に、不揮発性メモリに書き込まれたデータを抽出し、抽出したデータをミラー磁気ディスクに書き込むように制御するとともに、不揮発性メモリにおけるデータの抽出元の領域を書き込み可能にするデータ制御手段３とを備えている。【選択図】図１３
2012203437.tif 000002
【特許請求の範囲】
【請求項１】
マスタ磁気ディスクと、
前記マスタ磁気ディスクとミラーリング構成されたミラー磁気ディスクと、
不揮発性メモリとを備え、
前記ミラー磁気ディスクを停止させ、前記ミラー磁気ディスクに書き込むデータを前記不揮発性メモリに書き込むように制御する停止制御を行う磁気ディスク制御手段と、
前記磁気ディスク制御手段が前記停止制御を行うと、前記不揮発性メモリにデータを書き込む際に重複排除を行う重複排除手段と、
前記重複排除手段によって重複排除され前記不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、前記不揮発性メモリに書き込まれたデータを抽出し、抽出した前記データを前記ミラー磁気ディスクに書き込むように制御するとともに、前記不揮発性メモリにおける前記データの抽出元の領域を書き込み可能にするデータ制御手段とを
備えたことを特徴とするストレージ装置。
【請求項２】
重複排除手段は、不揮発性メモリの未使用領域またはデータ制御手段が書き込み可能にした領域にデータを書き込む
請求項１記載のストレージ装置。
【請求項３】
マスタ磁気ディスク又はミラー磁気ディスクと不揮発性メモリとのいずれか読み出し速度の早い方からデータを読み出すデータ読み出し手段を備えた
請求項１又は請求項２記載のストレージ装置。
【請求項４】
磁気ディスク制御手段は、重複排除手段によって重複排除され不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、停止させたミラー磁気ディスクを稼働させるように制御する稼働制御を行い、
データ制御手段は、前記不揮発性メモリから抽出したデータを前記磁気ディスク制御手段が稼働制御を行った前記ミラー磁気ディスクに書き込むように制御する
請求項１から請求項３のうちのいずれか１項に記載のストレージ装置。
【請求項５】
不揮発性メモリに格納されたデータのメタデータを格納する記憶手段を備え、
重複排除手段は、前記不揮発性メモリにデータを書き込む際に、前記記憶手段を参照し、書き込み対象の前記データと同一のデータが前記不揮発性メモリに格納されていると判断すると、前記不揮発性メモリには書き込まずに、書き込み対象の前記データのメタデータを前記記憶手段に書き込む
請求項１から請求項４のうちのいずれか１項に記載のストレージ装置。
【請求項６】
マスタ磁気ディスクとミラーリング構成されたミラー磁気ディスクを停止させ、前記ミラー磁気ディスクに書き込むデータを不揮発性メモリに書き込むように制御する停止制御を行い、
前記停止制御を行うと、前記不揮発性メモリにデータを書き込む際に重複排除を行い、
重複排除され前記不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、前記不揮発性メモリに書き込まれたデータを抽出し、抽出した前記データを前記ミラー磁気ディスクに書き込むように制御するとともに、前記不揮発性メモリにおける前記データの抽出元の領域を書き込み可能にする
ことを特徴とするストレージ方法。
【請求項７】
マスタ磁気ディスクと、
前記マスタ磁気ディスクとミラーリング構成されたミラー磁気ディスクと、
不揮発性メモリとを備えたコンピュータに、
前記ミラー磁気ディスクを停止させ、前記ミラー磁気ディスクに書き込むデータを前記不揮発性メモリに書き込むように制御する停止制御を行う磁気ディスク制御処理と、
前記停止制御を行うと、前記不揮発性メモリにデータを書き込む際に重複排除を行う重複排除処理と、
重複排除され前記不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、前記不揮発性メモリに書き込まれたデータを抽出し、抽出した前記データを前記ミラー磁気ディスクに書き込むように制御するとともに、前記不揮発性メモリにおける前記データの抽出元の領域を書き込み可能にするデータ制御処理とを
実行させるためのストレージ用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、ストレージ方法及びストレージ用プログラムに関する。
【背景技術】
【０００２】
ストレージ装置を備えたデータ処理システムでは、物理ディスク装置を停止することで省電力制御を行う場合がある。例えば、特許文献１には、ＲＡＩＤレベル１のＲＡＩＤを採用する場合に、システム運用時の消費電力を低減するディスクアレイ装置が記載されている。
【０００３】
また、特許文献２には、外部からの所定の論理ディスクへの使用停止指示に基づいて、省電力機能を有するディスクプールにその論理ディスクを再配置し、複数のディスクプールのそれぞれを構成する磁気ディスクの少なくとも１つに対して電力供給を制御する方法が記載されている。
【０００４】
また、これらに関連する技術として、特許文献３には、不揮発性メモリの利用方法が、記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２０４８８５号公報
【特許文献２】特開２００８−２４２９７１号公報
【特許文献３】特開２００９−０８７０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１や特許文献２に記載された方法に重複排除技術を組み合わせて、さらに効率的にシステム運用時の消費電力を低減する方法が考えられる。例えば、特許文献１に記載された方法では、メモリ部に書き込まれたデータ量が閾値を超えると、停止状態のディスク部を稼働させ、メモリ部からディスク部にデータを転送する。これに重複排除技術を組み合わせて、メモリ部にデータを書き込む際に重複排除処理を行うことで、メモリ部に書き込まれるデータ量を抑制して閾値を超える間隔を長くすることができ、停止状態のディスク部を再稼働する間隔も長くすることができる。そのため、さらに効率的にシステム運用時の消費電力を低減することができる。
【０００７】
ここで、特許文献１に記載された方法では、メモリ部に書き込まれたデータ量が閾値を超えたことによりデータを転送する場合、メモリ部の全てのデータをディスク部に転送して書き込んだ後に、メモリ部の全てのデータを削除している。
【０００８】
しかしながら、重複排除処理を効果的に行うためには、重複排除対象の実データがある程度メモリに格納されている必要がある。具体的には、全てのデータを削除したメモリに重複排除してデータを書き込む場合、１度目の書き込み時には重複が発生しないため、全ての実データをメモリに書き込むこととなる。そのため、メモリへの書き込み回数が増加し、書き込み可能回数が限られている不揮発性メモリを用いた場合には、寿命が短くなり、信頼性が低下するという課題がある。
【０００９】
また、特許文献３に記載された技術を適用するには次のような問題がある。すなわち、重複排除技術（de-dup：deduplicationなどとよばれることもある）を不揮発性メモリに適用することのみに言及しているため、不揮発性メモリを活用して磁気ディスク装置（以下、単に磁気ディスクという）を停止させて消費電力を低減させるシステムにそのまま適用することができない。
【００１０】
そこで、本発明は、不揮発性メモリを活用して磁気ディスクを停止することにより省電力制御を行うストレージ装置において、不揮発性メモリの長寿命化及び信頼性の向上を図ることができるストレージ装置、ストレージ方法及びストレージ用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明によるストレージ装置は、マスタ磁気ディスクと、マスタ磁気ディスクとミラーリング構成されたミラー磁気ディスクと、不揮発性メモリとを備え、ミラー磁気ディスクを停止させ、ミラー磁気ディスクに書き込むデータを不揮発性メモリに書き込むように制御する停止制御を行う磁気ディスク制御手段と、磁気ディスク制御手段が停止制御を行うと、不揮発性メモリにデータを書き込む際に重複排除を行う重複排除手段と、重複排除手段によって重複排除され不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、不揮発性メモリに書き込まれたデータを抽出し、抽出したデータをミラー磁気ディスクに書き込むように制御するとともに、不揮発性メモリにおけるデータの抽出元の領域を書き込み可能にするデータ制御手段とを備えたことを特徴とする。
【００１２】
本発明によるストレージ方法は、マスタ磁気ディスクとミラーリング構成されたミラー磁気ディスクを停止させ、ミラー磁気ディスクに書き込むデータを不揮発性メモリに書き込むように制御する停止制御を行い、停止制御を行うと、不揮発性メモリにデータを書き込む際に重複排除を行い、重複排除され不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、不揮発性メモリに書き込まれたデータを抽出し、抽出したデータをミラー磁気ディスクに書き込むように制御するとともに、不揮発性メモリにおけるデータの抽出元の領域を書き込み可能にすることを特徴とする。
【００１３】
本発明によるストレージ用プログラムは、マスタ磁気ディスクと、マスタ磁気ディスクとミラーリング構成されたミラー磁気ディスクと、不揮発性メモリとを備えたコンピュータに、ミラー磁気ディスクを停止させ、ミラー磁気ディスクに書き込むデータを不揮発性メモリに書き込むように制御する停止制御を行う磁気ディスク制御処理と、停止制御を行うと、不揮発性メモリにデータを書き込む際に重複排除を行う重複排除処理と、重複排除され不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、不揮発性メモリに書き込まれたデータを抽出し、抽出した前記データをミラー磁気ディスクに書き込むように制御するとともに、不揮発性メモリにおけるデータの抽出元の領域を書き込み可能にするデータ制御処理とを実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、不揮発性メモリを活用して磁気ディスクを停止することにより省電力制御を行うストレージ装置において、不揮発性メモリの長寿命化及び信頼性の向上を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明によるストレージシステムの構成の一例を示すブロック図である。
【図２】ＩＯ制御手段の構成例を示すブロック図である。
【図３】重複排除管理テーブルに格納されるデータの一例を示す説明図である。
【図４】磁気ディスク状態管理テーブルに格納されるデータの一例を示す説明図である。
【図５】ダーティ管理テーブルに格納されるデータの一例を示す説明図である。
【図６】ホスト計算機がディスクアレイ装置から所定のデータを読み出す動作の一例を示す流れ図である。
【図７】ホスト計算機からディスクアレイ装置に所定のデータを書き込む動作の一例を示す流れ図である。
【図８】ホスト計算機からディスクアレイ装置に所定のデータを書き込む際にＩＯパスを切り替える動作の一例を示す流れ図である。
【図９】重複排除処理の一例を示す流れ図である。
【図１０】不揮発性メモリ２３０に書き込んだデータ量の監視動作の一例を示す流れ図である。
【図１１】不揮発性メモリ閾値監視手段３４０から閾値超過通知を受信した磁気ディスク管理手段３３０の動作の一例を示す流れ図である。
【図１２】差分掃き出し指示を受信した差分掃き出し手段の動作の一例を示す流れ図である。
【図１３】ストレージ装置の最小の構成例を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について図面を参照して説明する。図１は、本発明によるストレージシステムの構成の一例を示すブロック図である。図１に示すように、ストレージシステムは、ホスト計算機１００と、ホスト計算機１００に接続されたディスクアレイ装置２００とを備えている。
【００１７】
ホスト計算機１００は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。ホスト計算機１００は、ディスクアレイ装置２００の論理ボリューム２１０に対して、ＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）要求を送信する（以下、ＩＯ発行と表現する）機能を備えている。
【００１８】
ディスクアレイ装置２００は、ホスト計算機１００からアクセス可能な論理ボリューム２１０と、ディスクグループ２２０と、不揮発性メモリ２３０と、ＩＯ制御手段３００と、重複排除制御手段３１０と、差分掃き出し手段３２０と、磁気ディスク管理手段３３０と、不揮発性メモリ閾値監視手段３４０と、磁気ディスク状態管理テーブル４１０とを含む。また、不揮発性メモリ２３０は、重複排除管理テーブル４００と、ダーティ管理テーブル４２０とを含む。なお、ＩＯ制御手段３００、重複排除制御手段３１０、差分掃き出し手段３２０、磁気ディスク管理手段３３０及び不揮発性メモリ閾値監視手段３４０は、プログラムに従って動作するディスクアレイ装置２００のＣＰＵが処理を実行することによって実現される。
【００１９】
論理ボリューム２１０は、上位装置であるホスト計算機１００から認識される論理的な記憶装置であり、物理的な記憶装置であるディスクグループ２２０の構成要素である磁気ディスク２２１、２２２上に構成される。ディスクグループ２２０は、磁気ディスク（マスタディスク）２２１と磁気ディスク（ミラーディスク）２２２とによりミラーリング構成されたＲＡＩＤグループである。磁気ディスク２２１及び磁気ディスク２２２は、ホスト計算機１００から受信したデータを格納している。なお、本実施形態では、ディスクグループ２２０が磁気ディスク（マスタ）２２１と磁気ディスク（ミラー）２２２とをそれぞれ複数台含む例について説明するが、これに限らず、例えば１台ずつ含むように構成されていてもよい。不揮発性メモリ２３０は、重複排除後の実データと、重複排除管理テーブル４００とを格納している。
【００２０】
図２は、ＩＯ制御手段３００の構成例を示すブロック図である。図２に示すように、ＩＯ制御手段３００は、データ書き込み処理を実行可能なスレッドである書き込み用ｗｒｉｔｅ−ｔｈ３０１と、データ読み出し処理を実行可能なスレッドである読み出し用スレッドｒｅａｄ−ｔｈ３０２とを含む。
【００２１】
書き込み用ｗｒｉｔｅ−ｔｈ３０１は、不揮発性メモリ２３０にデータを書き込む処理を実行可能な不揮発性メモリ書き込み用マイクロスレッドＭ−ｍｔｈ３０３と、磁気ディスク（２２１，２２２）にデータを書き込む処理を実行可能な磁気ディスク書き込み用マイクロスレッドＤ−ｍｔｈ３０４とを含む。また、読み出し用ｒｅａｄ−ｔｈ３０２は、不揮発性メモリ２３０からデータを読み出す処理を実行可能な不揮発性メモリ読み出し用マイクロスレッドＭ−ｍｔｈ３０５と、磁気ディスク（２２１，２２２）からデータを読み出す処理を実行可能な磁気ディスク読み出し用マイクロスレッドＤ−ｍｔｈとを含む。以下、これらのスレッドが処理を実行するとの表現を用いるが、具体的には、ディスクアレイ装置２００のＣＰＵがプログラムに従って処理を実行することによって実現される。
【００２２】
ＩＯ制御手段３００は、論理ボリューム２１０に対するアクセスがあると、磁気ディスク状態管理テーブル３４０を参照し、所定のデータを磁気ディスク２２１及び磁気ディスク２２２または磁気ディスク２２１及び不揮発性メモリ２３０から読み書きする機能を備えている。
【００２３】
重複排除制御手段３１０は、ＩＯ制御手段３００から受信したデータに対して重複排除技術を適用して重複排除処理を実行し、不揮発性メモリ２３０に重複排除後のデータを書き込むとともに、重複排除管理テーブル４００に受信したデータのメタデータを書き込む機能を備えている。
【００２４】
差分掃き出し手段３２０は、磁気ディスク管理手段３３０から受信した差分掃き出し指示に従って、不揮発性メモリ２３０から重複排除後のデータを復元し、差分データを掃き出す機能を備えている。差分データを掃き出すとは、具体的には、差分掃き出し手段３２０が、差分掃き出し指示に従って、重複排除管理テーブル４００に基づいて不揮発性メモリ２３０からデータを復元し、復元したデータ（差分データ）を、対応する磁気ディスク２２２に書き込むことである。また、差分掃き出し手段３２０は、差分データ掃き出し後に、磁気ディスク２２２の停止指示を行う機能を備えている。具体的には、差分掃き出し手段３２０は、磁気ディスク管理手段３３０に磁気ディスク２２２の停止指示を出力する。
【００２５】
磁気ディスク管理手段３３０は、差分掃き出し手段３２０から磁気ディスク２２２の停止指示または不揮発性メモリ閾値監視手段３４０から閾値超過通知を受信すると、磁気ディスク状態管理テーブル４１０の更新／参照を行う機能を備えている。また、磁気ディスク管理手段３３０は、ＩＯパス切り替え指示に従って、ＩＯ制御手段３００の動作を制御する機能を備えている。
【００２６】
不揮発性メモリ閾値監視手段３４０は、不揮発性メモリ２３０の監視を行い、不揮発性メモリ２３０のデータ量が閾値を超えた場合に、磁気ディスク管理手段３３０に閾値超過通知を行う機能を備えている。また、例えば、不揮発性メモリ閾値監視手段３４０は、磁気ディスク管理手段３３０に閾値超過通知とともに磁気ディスクの稼働指示を出力する。
【００２７】
重複排除管理テーブル４００は、具体的には、不揮発性メモリ２３０に記憶される。重複排除管理テーブル４００は、重複排除制御手段３１０によって重複排除された重複アドレスを格納する。図３は、重複排除管理テーブル４００に格納されるデータの一例を示す説明図である。図３に示す例では、重複排除管理テーブル４００には、重複排除に用いるハッシュ値、重複排除データの実データ格納アドレス、重複排除されたデータの格納先磁気ディスクＮｏ、磁気ディスク格納アドレス及びダーティフラグが対応付けて記録されている。重複排除管理テーブル４００が格納するデータは、例えば、重複排除制御手段３１０によって登録、更新される。
【００２８】
例えば、図３に示す重複排除管理テーブル４００の第１行目は、書き込まれたデータのハッシュ値がＡであり、その実データの不揮発性メモリ２３０の格納アドレスが１２００であり、本来書き込むべき磁気ディスクＮｏが２であり、磁気ディスクの格納アドレスが２０００、ダーティフラグが１であり、まだ磁気ディスクに書き出されていないことを示している。
【００２９】
磁気ディスク状態管理テーブル４１０は、磁気ディスク２２１、磁気ディスク２２２の状態を示すデータを格納する。図４は、磁気ディスク状態管理テーブルに格納されるデータの一例を示す説明図である。図４に示す例では、磁気ディスク状態管理テーブル４１０には、磁気ディスクの構成情報である磁気ディスクＮｏ、ミラーディスクＮｏ、磁気ディスクの状態を示すディスク状態、電源状態及びＩＯパス状態が対応付けて記録されている。磁気ディスク状態管理テーブル４１０が格納するデータは、例えば、磁気ディスク管理手段３３０によって登録、更新される。
【００３０】
例えば、図４に示す磁気ディスク管理テーブル４１０の第１行目は、磁気ディスクＮｏが１であり、ディスク状態が正常であり、電源状態が稼働中であり、ＩＯパス状態が磁気ディスクであり、ディスクグループを構成しているミラーディスクＮｏが２であることを示している。
【００３１】
ダーティ管理テーブル４２０は、具体的には、不揮発性メモリ２３０に記憶される。ダーティ管理テーブル４２０は、不揮発性メモリ２３０に格納された実データを参照している書き出しされていないデータがいくつあるかを示すデータを格納する。図５は、ダーティ管理テーブルに格納されるデータの一例を示す説明図である。図５に示す例では、ダーティ管理テーブル４２０には、不揮発性メモリ２３０に格納された実データの識別情報であるＩｎｄｅｘに、ダーティカウンタが対応付けて格納されている。ダーティ管理テーブル４２０が格納するデータは、例えば、重複排除制御手段３１０によって登録、更新される。
【００３２】
例えば、図５に示すダーティ管理テーブル４２０の第１行目は、Ｉｎｄｅｘが０であり、ダーティカウンタが２００である。これは、Ｉｎｄｅｘが０である実データを含む重複排除されたデータ２００個が磁気ディスクに書き出されていないことを示している。
【００３３】
次に、本実施形態のストレージシステムの動作について説明する。ここでは、ホスト計算機１００が論理ボリューム２１０に対してＩＯ発行を行う場合を想定する。
【００３４】
なお、本実施形態のストレージシステムの動作は、大きく４つに分けられる。最初に、ホスト計算機１００が論理ボリューム２１０に対して、データ読み込み要求としてＲｅａｄ  ＩＯを発行し、磁気ディスク２２１及び不揮発性メモリ２３０から所定のデータを読み出す動作である。次に、ホスト計算機１００が論理ボリューム２１０に対して、データ書き込み要求としてＷｒｉｔｅ  ＩＯを発行し、所定のデータをディスクグループ２２０の磁気ディスク２２１及びミラー構成にある磁気ディスク２２２に書き込む動作と、磁気ディスク２２１及び不揮発性メモリ２３０に書き込む動作とである。次に、不揮発性メモリ２３０に書き込んだデータ量が閾値を超えた場合に、磁気ディスク２２２に差分データを書き込む動作である。最後に、ディスクグループ２２０のミラーディスクである磁気ディスク２２２を停止する動作である。
【００３５】
まず、ホスト計算機１００が論理ボリューム２１０に対してＲｅａｄ  ＩＯを発行し、磁気ディスク２２１及び不揮発性メモリ２３０から所定のデータを読み出す動作について説明する。図６は、ホスト計算機１００がディスクアレイ装置２００から所定のデータを読み出す動作の一例を示す流れ図である。
【００３６】
ディスクアレイ装置２００から所定のデータを読み出すために、ホスト計算機１００が論理ボリューム２１０に対してＲｅａｄ  ＩＯを発行すると、ＩＯ制御手段３００は、読み出し用ｒｅａｄ−ｔｈ３０２を生成する（ステップＳ１１）。
【００３７】
次いで、ＩＯ制御手段３００は、読み出し用ｒｅａｄ−ｔｈ３０２上で、不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０５と磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０６とを生成する（ステップＳ１２）。
【００３８】
次いで、不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０５は、Ｒｅａｄ  ＩＯに基づいて、重複排除制御手段３１０にデータ読み出し指示を出力する。すると、重複排除制御手段３１０は、データ読み出し指示に従って、不揮発性メモリ２３０からデータを抽出し、不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０５に出力する。そして、不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０５は、重複排除制御手段３１０からデータを受信すると、受信したデータを読み出し用ｒｅａｄ−ｔｈ３０２に出力する（ステップＳ１３）。
【００３９】
また、磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０６は、Ｒｅａｄ  ＩＯに基づいて、磁気ディスク２２１にデータ読み出し指示を出力する。そして、磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０６は、磁気ディスク２２１からデータを受信すると、受信したデータを読み出し用ｒｅａｄ−ｔｈ３０２に出力する（ステップＳ１４）。具体的には、磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０６は、Ｒｅａｄ  ＩＯに基づいて、磁気ディスク２２１からデータを抽出する。
【００４０】
読み出し用ｒｅａｄ−ｔｈ３０２は、不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０５と磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０６とのうち、いずれか早くデータを出力した方からデータを受信し、受信したデータをホスト計算機１００に送信する（ステップＳ１５）。その後、Ｒｅａｄ  ＩＯを発行することによるディスクアレイ装置２００から所定のデータを読み出す処理は終了する。
【００４１】
次に、ホスト計算機１００が論理ボリューム２１０に対してＷｒｉｔｅ  ＩＯを発行し、ディスクグループ２２０の磁気ディスク２２１及びミラー構成にある磁気ディスク２２２に書き込む動作と、磁気ディスク２２１及び不揮発性メモリ２３０に書き込む動作とについて説明する。図７は、ホスト計算機１００からディスクアレイ装置２００に所定のデータを書き込む動作の一例を示す流れ図である。
【００４２】
ディスクアレイ装置２００に所定のデータを書き込むために、ホスト計算機１００が論理ボリューム２１０に対してＷｒｉｔｅ  ＩＯを発行すると、ＩＯ制御手段３００は、Ｗｒｉｔｅ  ＩＯで示される磁気ディスクＮｏのＩＯパスの状態を判断する（ステップＳ２１）。
【００４３】
ステップＳ２１において、ＩＯパスの状態が不揮発性メモリであると判断すると、ＩＯ制御手段３００は、書き込み用ｗｒｉｔｅ−ｔｈ３０１を生成する（ステップＳ２２）。
【００４４】
次いで、ＩＯ制御手段３００は、書き込み用ｗｒｉｔｅ−ｔｈ３０１上で不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０３と磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０４とを生成する（ステップＳ２３）。
【００４５】
不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０３は、重複排除制御手段３１０に対してデータ書き込み指示を出力し、不揮発性メモリ２３０への書き込み処理を行う（ステップＳ２４）。具体的には、重複排除制御手段３１０は、データ書き込み指示に従って、不揮発性メモリ２３０にデータを書き込み、完了後にデータ書き込み完了通知を不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０３に出力する。そして、不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０３は、重複排除制御手段３１０からデータ書き込み完了通知を受信する。なお、重複排除制御手段３１０が実行する処理の詳細については後述する。
【００４６】
また、磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０４は、磁気ディスク２２１に対してデータ書き込み指示を出力し、磁気ディスク２２１への書き込み処理を行う（ステップＳ２５）。具体的には、磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０４は、磁気ディスク２２１にデータを書き込む。
【００４７】
一方、ステップＳ２１において、ＩＯパスの状態が磁気ディスクであると判断すると、ＩＯ制御手段３００は、書き込み用ｗｒｉｔｅ−ｔｈ３０１を生成する（ステップＳ２６）。
【００４８】
次いで、ＩＯ制御手段３００は、書き込み用ｗｒｉｔｅ−ｔｈ３０１上で磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０４とミラー磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０３とを生成する（ステップＳ２７）。
【００４９】
ミラー磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０３は、ミラーディスクである磁気ディスク２２２に対してデータ書き込み指示を出力し、磁気ディスク２２２への書き込み処理を行う（ステップＳ２８）。具体的には、具体的には、ミラー磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０３は、ミラーディスクである磁気ディスク２２２にデータを書き込む。
【００５０】
また、磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０４は、磁気ディスク２２１に対してデータ書き込み指示を出力し、磁気ディスク２２１への書き込み処理を行う（ステップＳ２９）。具体的には、磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０４は、磁気ディスク２２１にデータを書き込む。
【００５１】
以上の処理によって、ステップＳ２４及びステップＳ２５、またはステップＳ２８及びステップＳ２９において書き込み処理が完了すれば、Ｗｒｉｔｅ  ＩＯを発行することによるディスクアレイ装置２００に所定のデータを書き込む処理は終了する。
【００５２】
なお、ホスト計算機１００が論理ボリューム２１０に対してＷｒｉｔｅ  ＩＯを発行する際に、ＩＯパス切り替え指示を含むようにしても良い。以下、ホスト計算機１００が論理ボリューム２１０に対してＷｒｉｔｅ  ＩＯを発行し、所定のデータを書き込む際にＩＯパスを切り替える動作について説明する。図８は、ホスト計算機１００からディスクアレイ装置２００に所定のデータを書き込む際にＩＯパスを切り替える動作の一例を示す流れ図である。
【００５３】
ホスト計算機１００が論理ボリューム２１０に対してＷｒｉｔｅ  ＩＯを発行すると、ＩＯ制御手段３００は、Ｗｒｉｔｅ  ＩＯに含まれるＩＯパス切り替え指示の有無を磁気ディスクＮｏごとに判断する（ステップＳ３１）。
【００５４】
ＩＯパス切り替え指示が無いと判断すると、ＩＯ制御手段３００は、ＩＯパスを変更することなく処理を終了する。一方、ＩＯパス切り替え指示があると判断すると、ＩＯ制御手段３００は、切り替え指示の内容を判断する（ステップＳ３２）。
【００５５】
ステップＳ３２において、ＩＯパス切り替え指示の内容が磁気ディスクへの切り替えであると判断すると、ＩＯ制御手段３００は、ＩＯパス状態を不揮発性メモリから磁気ディスクに切り替える（ステップＳ３３）。具体的には、ＩＯ制御手段３００は、磁気ディスク状態管理テーブル４１０が格納するＩＯパス状態を示すデータを不揮発性メモリから磁気ディスクに変更する。
【００５６】
一方、ステップＳ３２においてＩＯパス切り替え指示の内容が不揮発性メモリへの切り替えであると判断すると、ＩＯ制御手段３００は、ＩＯパス状態を磁気ディスクから不揮発性メモリに切り替える（ステップＳ３４）。具体的には、ＩＯ制御手段３００は、磁気ディスク状態管理テーブル４１０が格納するＩＯパス状態を示すデータを磁気ディスクから不揮発性メモリに変更する。
【００５７】
次に、重複排除制御手段３１０による重複排除処理について説明する。図９は、重複排除処理の一例を示す流れ図である。
【００５８】
重複排除制御手段３１０は、ＩＯ制御手段３００からＷｒｉｔｅ  ＩＯに基づくデータ書き込み指示（例えば、図７のステップＳ２４で出力されるデータ書き込み指示）を受信すると、受信したデータ書き込み指示によって示されるデータのハッシュ値の演算を行う（ステップＳ４１）。
【００５９】
次いで、重複排除制御手段３１０は、重複排除管理テーブル４００を参照し（ステップＳ４２）、算出したハッシュ値と同一のハッシュ値が登録されているか否かを判断する（ステップＳ４３）。
【００６０】
ステップＳ４３において、同一ハッシュ値が登録されていないと判断すると、重複排除制御手段３１０は、重複排除管理テーブル４００にデータ書き込み指示によって示されるデータのメタデータを書き込み、実データを不揮発性メモリ２３０に書き込む（ステップＳ４４）。この際、重複排除制御手段３１０は、不揮発性メモリ２３０の未使用領域またはダーティカウンタが０の領域にデータを書き込む。
【００６１】
また、ここで、重複排除制御手段３１０は、ダーティ管理テーブル４２０を更新する。具体的には、重複排除制御手段３１０は、実データを識別するためのＩｎｄｅｘにダーティカウンタの値を０として対応付けて、ダーティ管理テーブル４２０に登録する。
【００６２】
ステップＳ４４において書き込みが完了すると、重複排除制御手段３１０は、ＩＯ制御手段３００にデータ書き込み完了通知を出力し、重複排除処理を終了する。
【００６３】
一方、ステップＳ４３において、同一ハッシュ値が登録されていると判断すると、重複排除制御手段３１０は、重複排除管理テーブル４００にデータ書き込み指示によって示されるデータのメタデータを書き込む（ステップＳ４５）。具体的には、図３に示すように、重複排除制御手段３１０は、重複排除管理テーブル４００にメタデータとして、ハッシュ値、実データ格納アドレス、磁気ディスクＮｏ、磁気ディスク格納アドレス及びダーティフラグを書き込む。また、重複排除制御手段３１０は、ダーティフラグを「１」として重複排除管理テーブル４００に書き込む。
【００６４】
また、ここで、重複排除制御手段３１０は、ダーティ管理テーブル４２０を更新する。具体的には、重複排除制御手段３１０は、実データを識別するＩｎｄｅｘに対応付けられたダーティカウンタの値を１加算するように更新する。
【００６５】
ステップＳ４５において書き込みが完了すると、重複排除制御手段３１０は、ＩＯ制御手段３００にデータ書き込み完了通知を出力し、重複排除処理を終了する。
【００６６】
次に、不揮発性メモリ２３０に書き込んだデータ量が閾値を超えた場合に、磁気ディスク２２２に差分データを書き込む動作について説明する。図１０は、不揮発性メモリ２３０に書き込んだデータ量の監視動作の一例を示す流れ図である。
【００６７】
不揮発性メモリ閾値監視手段３４０は、所定のタイミングで（例えば所定期間ごとに）不揮発性メモリ２３０を参照し（ステップＳ５１）、不揮発性メモリ２３０が格納するデータ量が予め定められた閾値を越えているか否かを判断する（ステップＳ５２）。
【００６８】
ステップＳ５２において、データ量が閾値未満であると判断すると、不揮発性メモリ閾値監視手段３４０は、次の監視タイミングまで処理を終了する。一方、ステップＳ５２においてデータ量が閾値以上であると判断すると、不揮発性メモリ閾値監視手段３４０は、磁気ディスク管理手段３３０に閾値超過通知とともに磁気ディスクの稼働指示を出力する（ステップＳ５３）。ステップＳ３３で磁気ディスク管理手段３３０への通知が完了すれば、不揮発性メモリ閾値監視手段３４０は、閾値監視処理を終了する。
【００６９】
次に、不揮発性メモリ閾値監視手段３４０から閾値超過通知を受信した磁気ディスク管理手段３３０の動作について説明する。図１１は、不揮発性メモリ閾値監視手段または差分掃き出し手段３２０から所定の指示を受信した磁気ディスク管理手段３３０の動作の一例を示す流れ図である。なお、ここでは、不揮発性メモリ閾値監視手段３４０から閾値超過通知とともに磁気ディスクの稼働指示を受信した例について説明する。
【００７０】
不揮発性メモリ閾値監視手段３４０から閾値超過通知を受信すると、磁気ディスク管理手段３３０は、磁気ディスク状態管理テーブル４１０を参照する（ステップＳ６１）。そして、磁気ディスク管理手段３３０は、次のステップＳ６２に処理を移行する。
【００７１】
次いで、磁気ディスク管理手段３３０は、受信した指示の内容を判断する（ステップＳ６２）。ここでは、不揮発性メモリ閾値監視手段３４０から閾値超過通知とともに磁気ディスクの稼働指示を受信しているため、磁気ディスク管理手段３３０は、ステップＳ６３に処理を移行する。
【００７２】
次いで、磁気ディスク管理手段３３０は、差分掃き出し指示を差分掃き出し手段３２０に出力する（ステップＳ６３）。なお、差分掃き出し手段３２０が実行する差分掃き出しの詳細については後述する。
【００７３】
ステップＳ６３で差分掃き出し指示の出力が完了すると、磁気ディスク管理手段３３０は、次のステップＳ６４に処理を移行する。そして、磁気ディスク管理手段３３０は、稼働指示によって指定された磁気ディスクが停止中か否かを判断する（ステップＳ６４）。
【００７４】
ステップＳ６４において、指定された磁気ディスクが停止中でないと判断すると、磁気ディスク管理手段３３０は、そのまま何もせずに処理を終了する。一方、ステップＳ６４において、指定された磁気ディスクが停止中であると判断すると、磁気ディスク管理手段３３０は、指定された磁気ディスクの稼動指示を出力し（具体的には、磁気ディスク管理手段３３０は、指定された磁気ディスクを稼働させるように制御する）、ＩＯパスの切り替え指示をＩＯ制御手段３００に出力する（ステップＳ６５）。
【００７５】
ステップＳ６５ですべての指示の出力が完了すると、磁気ディスク管理手段３３０は、次のステップＳ６６に処理を移行する。そして、磁気ディスク管理手段３３０は、磁気ディスク状態管理テーブル４１０に格納される磁気ディスクの電源状態とＩＯパス状態とを示すデータを更新する（ステップＳ６６）。ステップＳ６６で磁気ディスク状態管理テーブル４１０の更新が完了すると、磁気ディスク管理手段３３０は、受信した閾値超過通知と磁気ディスクの稼働指示とに基づいて行う磁気ディスクの差分掃き出し準備処理を終了する。
【００７６】
次に、差分掃き出し指示を受信した差分掃き出し手段３２０の動作について説明する。図１２は、差分掃き出し指示を受信した差分掃き出し手段の動作の一例を示す流れ図である。
【００７７】
磁気ディスク管理手段３３０から差分掃き出し指示を受信すると、差分掃き出し手段３２０は、差分掃き出し指示によって指定された磁気ディスクが稼働中か否かを判断する（ステップＳ７１）。具体的には、差分掃き出し手段３２０は、磁気ディスク状態管理テーブル４１０を参照して判断する。
【００７８】
ステップＳ７１において、指定された磁気ディスクが停止中であると判断すると（ステップＳ７１のＮＯ）、差分掃き出し手段３２０は、待ち合わせを行う。一方、指定された磁気ディスクが稼働中であると判断すると（ステップＳ７１のＹＥＳ）、差分掃き出し手段３２０は、ダーティ管理テーブル４２０を参照し、Ｉｎｄｅｘに対応付けられたダーティカウンタを抽出する（ステップＳ７２）。以下、ステップＳ７２において、ダーティ管理テーブル４２０を参照し、Ｉｎｄｅｘに対応付けられたダーティカウンタを抽出することを、エントリを抽出するとも表現する。
【００７９】
次いで、差分掃き出し手段３２０は、ステップＳ７２で抽出したダーティカウンタが０であるか否かを判断する（ステップＳ７３）。０であると判断すると（ステップＳ７３のＹＥＳ）、差分掃き出し手段３２０は、ステップＳ７２に処理を戻し、次のエントリを抽出する。
【００８０】
一方、ステップＳ７２で抽出したダーティカウンタが１以上であると判断すると（ステップＳ７３のＮＯ）、差分掃き出し手段３２０は、該当する重複排除管理テーブル４００の実データ格納アドレスを持つエントリを磁気ディスクに掃き出す処理を行う（ステップＳ７４）。具体的には、差分掃き出し手段３２０は、差分掃き出し指示に従って、重複排除管理テーブル４００に基づいて、不揮発性メモリ２３０からデータを復元し、復元したデータ（差分データ）を、対応する磁気ディスク２２２に書き込む。
【００８１】
掃き出し処理が完了すると、差分掃き出し手段３２０は、ダーティ管理テーブル４２０が格納する該当するダーティカウンタと、重複排除管理テーブル４００が格納する該当するダーティフラグとを０に変更する（ステップＳ７５）。上述のステップＳ４４で示したように、ダーティフラグが０である領域は、新たなデータで上書きすることが許可されている。したがって、このようにダーティフラグを変更することで、不揮発性メモリ２３０の全ての領域をクリアすることなく、磁気ディスク２２２に掃き出したデータを格納していた領域のみを再利用可能にすることができる。
【００８２】
次いで、差分掃き出し手段３２０は、ダーティ管理テーブル４２０の終端に達しているか（すなわち、ダーティ管理テーブル４２０が格納する全てのエントリについて処理を行っているか）否かを判断する（ステップＳ７６）。そして、終端に達していないと判断すると（ステップＳ７６のＮＯ）、差分掃き出し手段３２０は、ステップＳ７２に処理を戻し、次のエントリを抽出する。一方、終端に達していると判断すると（ステップＳ５６のＹＥＳ）、差分掃き出し手段３２０は、差分掃き出し処理を終了する。
【００８３】
次に、磁気ディスク２２２を停止する動作について図１１を参照して説明する。ここでは、差分掃き出し手段３２０が差分掃き出し処理終了後に、磁気ディスク管理手段３３０に磁気ディスクの停止指示を出力した場合について説明する。
【００８４】
磁気ディスク管理手段３３０は、ディスクの停止指示を受信すると、磁気ディスク状態管理テーブル４１０を参照する（ステップＳ６１）。そして、ステップＳ６１で停止指示によって示される磁気ディスクの電源状態を示すデータを抽出すると、磁気ディスク管理手段３３０は、次のステップＳ６２に処理を移行する。
【００８５】
次いで、磁気ディスク管理手段３３０は、受信した指示の内容を判断する（ステップＳ６２）。ここでは、差分掃き出し手段３２０から磁気ディスクの停止指示を受信しているため、磁気ディスク管理手段３３０は、ステップＳ６７に処理を移行する。
【００８６】
指示の内容が停止であると判断すると（ステップＳ６２の停止）、磁気ディスク管理手段３３０は、指定された磁気ディスクが稼働中か否かを判断する（ステップＳ６７）。
【００８７】
ステップＳ４７において、指定された磁気ディスクが稼働中でないと判断すると（ステップＳ６７のＮＯ）、磁気ディスク管理手段３３０は、処理を終了する。一方、指定された磁気ディスクが稼動中であると判断すると（ステップＳ６７のＹＥＳ）、磁気ディスク管理手段３３０は、ミラー対象ディスクが正常か否かを判断する（ステップＳ６８）。
【００８８】
ステップＳ６８において、ミラー対象ディスクが正常でないと判断すると（ステップＳ６８のＮＯ）、磁気ディスク管理手段３３０は、処理を終了する。一方、ミラー対象ディスクが正常であると判断すると（ステップＳ６８のＹＥＳ）、磁気ディスク管理手段３３０は、ＩＯパス切り替え指示と磁気ディスク停止指示とを行う（ステップＳ６９）。具体的には、磁気ディスク管理手段３３０は、ＩＯパス切り替え指示をＩＯ制御手段３００に出力するとともに、指定された磁気ディスクを停止させるように制御する。
【００８９】
ステップＳ６９で各指示が完了すれば、磁気ディスク管理手段３３０は、処理を次のステップＳ７０に移行する。そして、磁気ディスク管理手段３３０は、磁気ディスク状態管理テーブル４１０に格納された電源状態とＩＯパス状態とを示すデータを更新する（ステップＳ７０）。ステップＳ７０の処理が完了すると、磁気ディスク管理手段３３０は、磁気ディスクの停止処理を終了する。
【００９０】
以上のように、本実施形態では、磁気ディスク管理手段３３０の指示により、ミラーリングされた磁気ディスク２２２を停止すると、ＩＯ制御手段３００は、冗長化されたホスト計算機１００からのＩＯ発行に基づいて、磁気ディスク２２１と重複排除制御手段３１０とにデータを書き込む。
【００９１】
また、本実施形態では、重複排除手段３１０は、ＩＯ制御手段３００から受信したデータに対して重複排除処理を実行する。そして、不揮発性メモリ２３０に同一のデータがあれば、重複排除手段３１０は、重複排除管理テーブル４００に実データへのアドレスをメタデータとしてダーティフラグを付与して書き込み、実データの書き込みを行わない。一方、不揮発性メモリ２３０に同一のデータがなければ、重複排除手段３１０は、重複排除管理テーブル４００にダーティフラグを付与したメタデータを、不揮発性メモリ２３０に実データを、ダーティ管理テーブル４２０に実データの識別情報にダーティカウンタを付与して書き込む。
【００９２】
このように、不揮発性メモリ２３０に磁気ディスク２２１に書き込んだデータと冗長性を持ったデータの書き込みを行うことで、磁気ディスク２２２を停止して消費電力の削減をする場合にも信頼性と冗長性とを維持することができる。
【００９３】
そして、本実施形態では、不揮発性メモリ閾値監視手段３４０によって不揮発性メモリ２３０のデータ量が閾値を超えたことが検出された場合、磁気ディスク管理手段３３０は、ＩＯ制御手段３００に対してＩＯパス切り替え指示を出力し、差分吐き出し手段３２０に対して差分掃き出し指示を出力する。すると、差分掃き出し手段３２０は、重複排除管理テーブル４００を参照し、重複排除されたデータを復元して磁気ディスク２２２に書き込みを行う。この際、掃き出しを行ったデータを不揮発メモリ２３０から削除することなく、対応付けられたダーティフラグをクリアし（すなわち、ダーティフラグを１から０に変更する）、書き換え対象とする。
【００９４】
このように、本実施形態では、不揮発性メモリのデータ量が閾値を越えたことによりデータ掃き出しを行う場合、データの全削除を実施するのではなく、ダーティフラグのクリアに変更することで、実データを不揮発性メモリに残したまま、不揮発性メモリを再利用可能な状態とする。そのため、実データを残すことにより、実データの１つ目の書き込みを不要にすることで不揮発性メモリへの書き込み量を削減することができ、不揮発性メモリの長寿命化及び信頼性の向上が期待できる。
【００９５】
例えば、不揮発性メモリが閾値を超えたことによりデータ掃き出しを行う場合に、全てのデータを磁気ディスクに書き込んだ後に、不揮発性メモリのデータを全て削除する方法がある。このような方法を適用した場合には、本実施形態とは異なり、再度不揮発性メモリに重複排除したデータを書き込む際に、１度目の書き込み時にはすべての実データを不揮発性メモリに書き込みを行う必要があり、書き込み量が増加することとなる。そのため、書き込み可能回数が限られている不揮発性メモリの寿命が短くなるという問題が発生することとなる。
【００９６】
また、本実施形態では、Ｒｅａｄ  ＩＯが発生した場合、ＩＯ制御手段３００は、読み出し用スレッドｒｅａｄ−ｔｈｒｅａｄ３０２と、不揮発性メモリ用マイクロスレッドＭ−ｍｔｈ３０５と、磁気ディスク用マイクロスレッドＤ−ｍｔｈ３０６とを生成し、それぞれのマイクロスレッドでｒｅａｄ処理を行わせ、早く出力されたデータを用いて、Ｒｅａｄ  ＩＯに応答する制御を行う。
【００９７】
このため、本実施形態では、Ｒｅａｄ  ＩＯが発生した場合、不揮発性メモリと磁気ディスクとの両方からデータを読み出し、早く準備できたデータを使用することを可能とする。一般に、磁気ディスクはシーケンシャルアクセスが高速であり、不揮発性メモリはランダムアクセスが高速であるという特徴がある。そのため、本実施形態では、それぞれの記憶媒体の特徴を生かすことができ、磁気ディスクのみからデータを読み出す方法に比べて、読み出し性能の向上が期待できる。
【００９８】
ストレージ装置で利用される省電力技術には、重複排除技術を組み合わせて磁気ディスクを停止するものがある。しかし、一般的に、ｒｅａｄ  ＩＯ時には、磁気ディスクを固定的に使用している。すなわち、不揮発性メモリに書き込まれる重複排除されたデータはＲＡＩＤの冗長性を確保するためだけに使用されている。そのため、本実施形態とは異なり、そのような方法では、不揮発性メモリを使用することによる、ランダムアクセスが発生した場合の読み出し性能の向上を期待することができない。
【００９９】
以上に説明したように、本発明は次のような特徴を備えている。すなわち、本発明は、プログラム制御により動作する複数のホスト計算機が接続された、ミラーリングの方系のアクセスを、不揮発性メモリ（例えば、ＳＳＤなど）に実施することにより、ＲＡＩＤ１の冗長性を失わずに本来アクセスすべき方系の磁気ディスクを停止状態にできるストレージ装置において、不揮発性メモリに書き込む重複排除データの管理方法を部分更新に変更することで書き換え量の削減を行い、不揮発性メモリの長寿命化、信頼性を向上させる。また、Ｒｅａｄ  ＩＯ時に不揮発性メモリと磁気ディスクとの両方からデータ読み出しを行い、早く準備できたデータを使用することで、ｒｅａｄ性能を向上させる。
【０１００】
次に、本発明によるストレージ装置の最小構成について説明する。図１３は、ストレージ装置の最小の構成例を示すブロック図である。図１３に示すように、ストレージ装置は、最小の構成要素として、磁気ディスク制御手段１と、重複排除手段２と、データ制御手段３とを含む。
【０１０１】
図１３に示す最小構成のストレージ装置では、磁気ディスク制御手段１は、マスタ磁気ディスクとミラーリング構成されたミラー磁気ディスクを停止させ、ミラー磁気ディスクに書き込むデータを不揮発性メモリに書き込むように制御する停止制御を行う。すると、重複排除手段２は、不揮発性メモリにデータを書き込む際に重複排除を行う。そして、データ制御手段３は、重複排除手段２によって重複排除され不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、不揮発性メモリに書き込まれたデータを抽出し、抽出したデータをミラー磁気ディスクに書き込むように制御するとともに、不揮発性メモリにおけるデータの抽出元の領域を書き込み可能にする。
【０１０２】
従って、最小構成のストレージ装置によれば、不揮発性メモリを活用して磁気ディスクを停止することにより省電力制御を行うストレージ装置において、不揮発性メモリの長寿命化及び信頼性の向上を図ることができる。
【０１０３】
なお、本実施形態では、以下の（１）〜（５）に示すようなストレージ装置の特徴的構成が示されている。
【０１０４】
（１）ストレージ装置（例えば、ディスクアレイ装置２００によって実現される）は、マスタ磁気ディスク（例えば、磁気ディスク２２１によって実現される）と、マスタ磁気ディスクとミラーリング構成されたミラー磁気ディスク（例えば、磁気ディスク２２２によって実現される）と、不揮発性メモリ（例えば、不揮発性メモリ２３０によって実現される）とを備え、ミラー磁気ディスクを停止させ、ミラー磁気ディスクに書き込むデータを不揮発性メモリに書き込むように制御する停止制御を行う磁気ディスク制御手段（例えば、磁気ディスク管理手段３３０によって実現される）と、磁気ディスク制御手段が停止制御を行うと、不揮発性メモリにデータを書き込む際に重複排除を行う重複排除手段（例えば、重複排除制御手段３１０によって実現される）と、重複排除手段によって重複排除され不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、不揮発性メモリに書き込まれたデータを抽出し、抽出したデータをミラー磁気ディスクに書き込むように制御するとともに、不揮発性メモリにおけるデータの抽出元の領域を書き込み可能にするデータ制御手段（例えば、差分掃き出し手段３２０によって実現される）とを備えたことを特徴とする。
【０１０５】
（２）ストレージ装置において、重複排除手段は、不揮発性メモリの未使用領域またはデータ掃き出し手段が書き込み可能にした領域にデータを書き込むように構成されていてもよい。
【０１０６】
（３）ストレージ装置において、マスタ磁気ディスク又はミラー磁気ディスクと不揮発性メモリとのいずれか読み出し速度の早い方からデータを読み出すデータ読み出し手段（例えば、ＩＯ制御手段３００によって実現される）を備えるように構成されていてもよい。
【０１０７】
（４）ストレージ装置において、磁気ディスク制御手段は、重複排除手段によって重複排除され不揮発性メモリに書き込まれたデータ量が予め定められた閾値を超えた場合に、停止させたミラー磁気ディスクを稼働させるように制御する稼働制御を行い、データ制御手段は、不揮発性メモリから抽出したデータを磁気ディスク制御手段が稼働制御を行ったミラー磁気ディスクに書き込むように制御するように構成されていてもよい。
【０１０８】
（５）ストレージ装置において、不揮発性メモリに格納されたデータのメタデータ（例えば、図３に示されるデータ）を格納する記憶手段（例えば、重複排除管理テーブル４００）を備え、重複排除手段は、不揮発性メモリにデータを書き込む際に、記憶手段を参照し、書き込み対象のデータと同一のデータが不揮発性メモリに格納されていると判断すると、不揮発性メモリには書き込まずに、書き込み対象のデータのメタデータを記憶手段に書き込むように構成されていてもよい。
【産業上の利用可能性】
【０１０９】
本発明によれば、ディスクアレイ装置やホスト計算機を管理する用途に適用できる。
【符号の説明】
【０１１０】
１  磁気ディスク制御手段
２  重複排除手段
３  データ制御手段
１００  ホスト計算機
２００  ディスクアレイ装置
２１０  論理ボリューム
２２０  ディスクグループ
２２１，２２２  磁気ディスク
３００  ＩＯ制御手段
３１０  重複排除制御手段
３２０  差分掃き出し手段
３３０  磁気ディスク管理手段
３４０  不揮発性メモリ閾値監視手段
４００  重複排除管理テーブル
４１０  磁気ディスク状態管理テーブル
４２０  ダーティ管理テーブル
【図１】
2012203437.tif 000003
【図２】
2012203437.tif 000004
【図３】
2012203437.tif 000005
【図４】
2012203437.tif 000006
【図５】
2012203437.tif 000007
【図６】
2012203437.tif 000008
【図７】
2012203437.tif 000009
【図８】
2012203437.tif 000010
【図９】
2012203437.tif 000011
【図１０】
2012203437.tif 000012
【図１１】
2012203437.tif 000013
【図１２】
2012203437.tif 000014
【図１３】
2012203437.tif 000015