(57)【要約】【課題】予備記憶部の使用時に予備記憶部の性能を確保できるようにする。【解決手段】現用記憶部３１ａ及び予備記憶部３１ｂを含む複数の記憶部３１と、これらの記憶部３１を制御する制御部１００と、を有し、制御部１００は、予備記憶部３１ｂにおける使用不可領域の量が所定基準を超えているか否かを判定する第１判定部１５１と、使用不可領域の量が所定基準を超えていると判定された場合に、予備記憶部１３ｂに初期化を実行させる第１コマンドを、予備記憶部３１ｂに対し発行する。【選択図】図２
2017228078.tif 000002
【特許請求の範囲】
【請求項１】
現用記憶部及び予備記憶部を含む複数の記憶部と、
前記複数の記憶部を制御する制御部と、を有し、
前記制御部は、
前記予備記憶部における使用不可領域の量が所定基準を超えているか否かを判定する第１判定部と、
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定された場合に、前記予備記憶部に初期化を実行させる第１コマンドを、前記予備記憶部に対し発行する第１コマンド発行部と、を有する、ストレージ装置。
【請求項２】
前記制御部は、
前記現用記憶部における故障の予兆の有無を判定する第２判定部をさらに有し、
前記第１コマンド発行部は、前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定され且つ前記第２判定部によって前記現用記憶部における故障の予兆が有ると判定された場合に、前記第１コマンドを前記予備記憶部に対し発行する、請求項１に記載のストレージ装置。
【請求項３】
前記制御部は、
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定され且つ前記第２判定部によって前記現用記憶部における故障の予兆が無いと判定された場合に、前記予備記憶部に前記使用不可領域の解放処理を実行させる第２コマンドを、前記予備記憶部に対し発行する第２コマンド発行部をさらに有する、請求項２に記載のストレージ装置。
【請求項４】
前記第２判定部は、前記現用記憶部から取得されるログ情報に基づき前記現用記憶部毎に算出される統計値に応じて、前記現用記憶部における故障の予兆の有無を判定する、請求項２または請求項３に記載のストレージ装置。
【請求項５】
前記予備記憶部は、前記予備記憶部の状態に応じて前記使用不可領域の解放処理を自律的に実行する機能を有し、
前記第１判定部は、前記予備記憶部の状態を確認し、前記予備記憶部の状態が前記使用不可領域の解放処理を実行する状態である場合に、前記使用不可領域の量が前記所定基準を超えていると判定する、請求項１〜請求項４のいずれか一項に記載のストレージ装置。
【請求項６】
前記第１判定部は、前記予備記憶部の状態を確認し、前記予備記憶部の状態が前記使用不可領域の解放処理を実行する状態でない場合に、前記使用不可領域の量が前記所定基準を超えていないと判定する、請求項５に記載のストレージ装置。
【請求項７】
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていないと判定された場合に、前記制御部は、前記予備記憶部の前記機能に前記使用不可領域の解放処理を委ねる、請求項６に記載のストレージ装置。
【請求項８】
現用記憶部及び予備記憶部を含む複数の記憶部を制御するストレージ制御装置であって、
前記予備記憶部における使用不可領域の量が所定基準を超えているか否かを判定する第１判定部と、
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定された場合に、前記予備記憶部に初期化を実行させる第１コマンドを、前記予備記憶部に対し発行する第１コマンド発行部と、を有する、ストレージ制御装置。
【請求項９】
現用記憶部及び予備記憶部を含む複数の記憶部を制御するコンピュータに、
前記予備記憶部における使用不可領域の量が所定基準を超えているか否かを判定し、
前記使用不可領域の量が前記所定基準を超えていると判定された場合に、前記予備記憶部に初期化を実行させる第１コマンドを、前記予備記憶部に対し発行する、
処理を実行させる、ストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、ストレージ制御装置、及びストレージ制御プログラムに関する。
【背景技術】
【０００２】
業務で取り扱うデータ量の増大に伴い、ストレージ装置に備えられる記憶デバイス（記憶部）の数が増大するとともに、各記憶デバイスの容量も増大している。記憶デバイスとしては、一般にＨＤＤが用いられるが、近年、ＨＤＤに代わって、記憶媒体として不揮発性半導体メモリを採用する記憶デバイス、例えばＮＡＮＤ型フラッシュメモリを採用するＳＳＤが用いられる場合がある。ＨＤＤはHard Disk Driveの略称であり、ＳＳＤはSolid State Driveの略称である。
【０００３】
ＳＳＤに採用されるＮＡＮＤ型フラッシュメモリでは、データの上書き処理ができないなどの制約があるため、データの更新を繰り返し行なっていると、断片的な使用不可領域が徐々に増加する。当該断片的な使用不可領域は、ゴミ領域あるいは無駄領域と称されてもよい。そこで、ＳＳＤには、当該ゴミ領域を収集して解放する、ガベージコレクションと称される解放処理を自律的に実行する機能が備えられる場合がある。
【０００４】
一方、ストレージ装置では、複数の記憶デバイス（例えばＳＳＤ）を用いてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）が構成される。このとき、ＲＡＩＤを構成し実際の運用に用いられる記憶デバイスは、現用記憶部あるいはＲＡＩＤ構成メンバＳＳＤと称されてもよい。
【０００５】
また、ストレージ装置における複数の記憶デバイスには、現用記憶部に故障が生じた際にデータのリビルド処理に用いられる、予備の記憶デバイスが含まれる。当該予備の記憶デバイスは予備記憶部と称されてもよい。当該予備記憶部としてのＳＳＤは、以下、ＨＳ−ＳＳＤと表記される場合がある。ＨＳはHot Spareの略称であり、ＨＳ−ＳＳＤはホットスペアと称される場合もある。
【０００６】
ストレージ装置における複数の現用記憶部の一つが故障した場合、まず、当該故障した現用記憶部（以下、故障記憶部という）以外の現用記憶部におけるデータに基づき、故障記憶部におけるデータをＨＳ−ＳＳＤ上に復旧するリビルド処理が実行される。そして、ＨＳ−ＳＳＤ上にリビルドされた復旧データが、故障記憶部と交換された新たな現用記憶部にコピーバックされた後、ＨＳ−ＳＳＤが解放される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−１１２８３６号公報
【特許文献２】国際公開第２０１４／１９６０００号パンフレット
【特許文献３】特開昭６３−２２５９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、故障記憶部のデータを復旧させるべくＨＳ−ＳＳＤを用いてリビルド処理を行なう場合、当該ＨＳ−ＳＳＤに対するライト処理が行なわれる。その際、ＨＳ−ＳＳＤにゴミ領域が残っていると、ガベージコレクション処理が実行される場合がある。
【０００９】
このような場合、ライト処理とガベージコレクション処理とが競合するため、ガベージコレクション処理によってゴミ領域を解消する間、ＨＳ−ＳＳＤのライト性能が低下した状態になる（図４参照）。したがって、迅速に故障記憶部のデータを復旧してデータの冗長性を回復させることができず、ストレージ装置の性能の低下を招くおそれがある。
【００１０】
このため、ＨＳ−ＳＳＤの使用時つまり故障記憶部の発生時に、ＨＳ−ＳＳＤのライト性能を確保できるようにすることで、迅速に故障記憶部のデータを復旧できるようにして、ストレージ装置の性能を確保することが望まれている。
【００１１】
一つの側面で、本件明細書に開示の発明は、予備記憶部の使用時に予備記憶部の性能を確保できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
本件のストレージ制御装置は、現用記憶部及び予備記憶部を含む複数の記憶部と、前記複数の記憶部を制御する制御部と、を有する。前記制御部は、第１判定部及び第１コマンド発行部を有する。前記第１判定部は、前記予備記憶部における使用不可領域の量が所定基準を超えているか否かを判定する。前記第１コマンド発行部は、前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定された場合に、前記予備記憶部に初期化を実行させる第１コマンドを、前記予備記憶部に対し発行する。
【発明の効果】
【００１３】
予備記憶部の使用時に予備記憶部の性能を確保することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のストレージ制御装置を含むストレージ装置のハードウェア構成の一例を示すブロック図である。
【図２】第１実施形態のストレージ制御装置の機能構成の一例を示すブロック図である。
【図３】図２に示すストレージ制御装置の動作を説明するフローチャートである。
【図４】ホットスペア（ＨＳ−ＳＳＤ）の使用時における従来のライト性能の一例（ワーストケース）を示す図である。
【図５】ホットスペア（ＨＳ−ＳＳＤ）の使用時における、本実施形態で得られるライト性能の一例を示す図である。
【図６】第２実施形態のストレージ制御装置の機能構成の一例を示すブロック図である。
【図７】図６に示すストレージ制御装置の動作を説明するフローチャートである。
【図８】図６に示すストレージ制御装置の具体的な動作例を説明する図である。
【発明を実施するための形態】
【００１５】
以下に、図面を参照し、本願の開示するストレージ装置、ストレージ制御装置、及びストレージ制御プログラムの実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１６】
〔１〕本実施形態の概要
ストレージ装置においては、複数の現用記憶部（ＲＡＩＤ構成メンバＳＳＤ）を用いてＲＡＩＤが構成されるとともに、現用記憶部に故障が生じた際にデータのリビルド処理に用いられる少なくとも一の予備記憶部（ＨＳ−ＳＳＤ）が備えられる場合がある。
【００１７】
このようなストレージ装置の運用中、現用記憶部や予備記憶部を管理制御するストレージ制御装置（制御部）は、以下のようなパトロール処理を実行する。当該パトロール処理では、現用記憶部や予備記憶部に対しVERIFYコマンドあるいはREADコマンドが定期的に発行され、これらのコマンドに対する現用記憶部や予備記憶部からの応答が監視される。これにより、各記憶部（各ＳＳＤ）の正常性、つまり各記憶部（各ＳＳＤ）がアクセス可能な状態で接続されていることが確認される。
【００１８】
また、上述のようなストレージ装置において、運用に供していたＳＳＤが保守交換や機器リプレース等のために撤去される際、情報漏えい対策として、当該ＳＳＤに格納された情報を初期化する処理が行なわれる場合がある。この場合、ストレージ装置には、例えば、初期化処理をＳＳＤに実行させるSANITIZEコマンド（サニタイズコマンド）が用意される。そして、ＳＳＤの撤去時に当該ＳＳＤに対しSANITIZEコマンドを発行して初期化処理（サニタイズ処理）を実行させる場合がある。なお、ＳＳＤの初期化処理後にＳＳＤのフォーマット処理は不要である。
【００１９】
一方、ＳＳＤにおいては、上述したように、ゴミ領域を収集解放するガベージコレクション処理が、ＳＳＤの自律動作によって決定されるタイミングで、ＳＳＤの自律動作によって実行される場合がある。ガベージコレクション処理の実行中には、上述したように、ＳＳＤのアクセス性能（ライト性能）が低下することが知られている（図４参照）。
【００２０】
このため、故障記憶部の発生に伴ってＨＳ−ＳＳＤ（予備記憶部）を使用する際、リビルド動作やコピーバック動作とガベージコレクション動作とが同時に実行されると、迅速に故障記憶部のデータを復旧してデータの冗長性を回復させることができない。したがって、ストレージ装置の性能の低下を招くおそれがある。
【００２１】
そこで、本実施形態（第１及び第２実施形態）では、ＨＳ−ＳＳＤの使用時つまり故障記憶部の発生時に、ＨＳ−ＳＳＤのライト性能を確保可能にすることで、迅速に故障記憶部のデータを復旧できるようにして、ストレージ装置の性能が確保される。その際、本実施形態では、ＨＳ−ＳＳＤの正常性を確認するパトロール処理が改善され、ＨＳ−ＳＳＤ使用時におけるガベージコレクション処理によるライト性能への影響が低減される。
【００２２】
特に、図２及び図３を参照しながら後述する第１実施形態では、ストレージ装置の通常運用中において、定期的なパトロール処理のタイミングで、ＨＳ−ＳＳＤの状態が確認される。そして、ＨＳ−ＳＳＤの状態がガベージコレクション処理を実行されるような状況（例えば、ゴミ領域が多い状況、空き領域の少ない状況）である場合に、第１コマンド（サニタイズコマンド）が発行されＨＳ−ＳＳＤの初期化処理が実行される。つまり、ＨＳ−ＳＳＤは、ストレージ装置の通常運用中にガベージコレクション処理を実行されるような状況になると、サニタイズコマンドによって迅速に初期化され、ＨＳ−ＳＳＤは最高性能を有する状態に回復する。ここで、サニタイズコマンドによる初期化処理は、ＨＳ−ＳＳＤについての、処理時間に対する性能回復度合いに優れている。
【００２３】
したがって、第１実施形態では、故障記憶部の発生に伴ってＨＳ−ＳＳＤを実際に使用する際にはＨＳ−ＳＳＤにおいてガベージコレクション処理を実行する必要がなくなる。これにより、ＨＳ−ＳＳＤの使用時にＨＳ−ＳＳＤのライト性能が確保され迅速に故障記憶部のデータを復旧することができるので、ストレージ装置の性能を確保することができる。
【００２４】
また、過度なサニタイズ処理は、ＨＳ−ＳＳＤ（ＮＡＮＤ型フラッシュメモリ）の寿命を縮め、ＨＳ−ＳＳＤの信頼性の低下を招くことになる。
【００２５】
そこで、図６及び図７を参照しながら後述する第２実施形態では、第１実施形態と同様、ストレージ装置の通常運用中において、定期的なパトロール処理のタイミングで、ＨＳ−ＳＳＤの状態が確認される。
【００２６】
そして、第２実施形態では、ＨＳ−ＳＳＤの状態がガベージコレクション処理を実行されるような状況で、且つ、現用記憶部における故障の予兆が有る場合（つまり緊急度の高い場合）に、第１コマンドが発行されＨＳ−ＳＳＤの初期化処理が実行され、ＨＳ−ＳＳＤは最高性能を有する状態に回復する。一方、ＨＳ−ＳＳＤの状態がガベージコレクション処理を実行されるような状況で、且つ、現用記憶部における故障の予兆が無い場合（つまり緊急度の低い場合）に、第２コマンドが発行される。第２コマンドは、ＨＳ−ＳＳＤにガベージコレクション処理を実行させるガベージコレクションコマンドである。
【００２７】
したがって、第２実施形態では、ガベージコレクション処理を実行する状況下で故障の予兆が有る緊急度の高い状況でのみ、ＨＳ−ＳＳＤに対するサニタイズ処理（初期化処理）が実行され、ＨＳ−ＳＳＤは最高性能を有する状態に回復する。そして、ガベージコレクション処理を実行する状況下で故障の予兆が無い緊急度の低い状況では、ＨＳ−ＳＳＤに対し、サニタイズ処理が実行されず、ガベージコレクション処理が実行される。
【００２８】
これにより、サニタイズ処理の過度な実行が抑止されＨＳ−ＳＳＤの短寿命化を抑止しながら、緊急度の高い場合には、第１実施形態と同様、ＨＳ−ＳＳＤのライト性能が確保され迅速に故障記憶部のデータを復旧することができる。つまり、第２実施形態によれば、ＨＳ−ＳＳＤの高信頼性とストレージ装置の高性能とが両立される。
【００２９】
〔２〕本実施形態のストレージ装置のハードウェア構成
まず、図１を参照しながら、本実施形態（第１及び第２実施形態）のストレージ制御装置１００を含むストレージ装置１について説明する。なお、図１は、本実施形態のストレージ制御装置１００を含むストレージ装置１のハードウェア構成の一例を示すブロック図である。
【００３０】
本ストレージ装置１は、複数の記憶部（記憶デバイス）３１を格納されるＤＥ（Drive Enclosure；記憶装置；ＲＡＩＤ装置）３０を有する。各記憶部３１は、後述するごとく、ストレージ制御装置１００（１００ａまたは１００ｂ）によって制御され、上位装置であるホスト装置（サーバ）２によってアクセスされる。
【００３１】
本ストレージ装置１は、一以上（図１に示す例では一）のホスト装置２に対して通信可能に接続されている。ホスト装置２とストレージ装置１とは、後述するＣＡ（Communication Adapter）１０１，１０２により接続されている。
【００３２】
ホスト装置２は、例えば、サーバ機能をそなえた情報処理装置であり、本ストレージ装置１との間において、ＮＡＳ（Network Attached Storage）やＳＡＮ（Storage Area Network）のコマンドを送受信する。ホスト装置２は、例えば、ストレージ装置１に対してＮＡＳにおけるリード／ライト等のストレージアクセスコマンドを送信することにより、ストレージ装置１が提供するボリュームにデータの書込または読出を行なう。
【００３３】
そして、本ストレージ装置１は、ホスト装置２からボリュームに対して行なわれる入出力要求（例えば、書込み要求や読出し要求）に応じて、このボリュームに対応する記憶部３１に対して、データの読出（リード）や書込（ライト）等の処理を行なう。なお、ホスト装置２からの入出力要求のことをＩ／Ｏ要求という場合がある。
【００３４】
なお、ストレージ装置１には、管理端末３が通信可能に接続されている。管理端末３は、キーボードやマウス等の入力装置や、表示装置を備える情報処理装置であって、システム管理者等のユーザが各種情報の入力操作を行なう。例えば、ユーザは、管理端末３を介して、各種設定等に係る情報を入力する。入力された情報は、ホスト装置２やストレージ装置１に送信される。
【００３５】
本ストレージ装置１は、図１に示すように、複数（本実施形態では二）のＣＭ（Controller Module）１００ａ，１００ｂ及び一以上（図１に示す例では一のみ図示）のＤＥ３０をそなえる。
【００３６】
ＤＥ３０は、二以上の記憶部３１を搭載可能であり、これらの記憶部３１の記憶領域（実ボリューム，実ストレージ）を、本ストレージ装置１に対して提供する。ＤＥ３０は、複数段のスロット（図示省略）をそなえ、これらのスロットに、記憶部３１を挿入することにより、実ボリューム容量を随時変更することができる。また、複数の記憶部３１を用いてＲＡＩＤを構成することができる。
【００３７】
例えば、図１に示すＤＥ３０において、４つの記憶部３１は、後述するメモリ１０６と比較すると容量の大きいＳＳＤである。４つの記憶部３１のうちの３つの記憶部３１ａは実際の運用に用いられる現用記憶部であり、これら３つの現用記憶部３１ａによってＲＡＩＤ５（２＋１）が構成される。また、４つの記憶部３１のうちの残りの一つの記憶部３１ｂは、現用記憶部３１ａのうちの一つに故障が生じた際にデータのリビルド処理に用いられる予備記憶部である。なお、３つの現用記憶部３１ａはそれぞれＳＳＤ＃１〜＃３と表記されてもよいし、一つの予備記憶部３１ｂはＳＳＤ＃４またはＨＤ−ＳＳＤと表記されてもよい。
【００３８】
ＤＥ３０は、ＣＭ１００ａのデバイスアダプタ（Device Adapter：ＤＡ）１０３，１０３とＣＭ１００ｂのＤＡ１０３，１０３とそれぞれ接続されている。そして、ＤＥ３０には、ＣＭ１００ａ，１００ｂのいずれからもアクセスして、データの書込や読出を行なうことができる。すなわち、ＤＥ３０の各記憶部３１に対して、ＣＭ１００ａ，１００ｂのそれぞれを接続することにより、記憶部３１へのアクセス経路が冗長化されている。
【００３９】
ＣＥ（Controller Enclosure）４０は、一以上（図１に示す例では二）のＣＭ１００ａ，１００ｂを備える。
【００４０】
ＣＭ１００ａ，１００ｂは、ストレージ装置１内の動作を制御するコントローラ（ストレージ制御装置）であり、ホスト装置２から送信されるＩ／Ｏ要求に従って、ＤＥ３０の記憶部３１へのデータアクセス制御等、各種制御を行なう。又、ＣＭ１００ａ，１００ｂは互いに同様の構成を有している。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する場合には符号１００ａ，１００ｂを用い、任意のＣＭを指すときには符号１００を用いる。また、ＣＭ１００ａをＣＭ＃１と、ＣＭ１００ｂをＣＭ＃２と、それぞれ表す場合がある。
【００４１】
ＣＭ１００ａ，１００ｂは二重化されており、通常は、ＣＭ１００ａ（ＣＭ＃１）がプライマリとして各種制御を行なう。しかし、プライマリＣＭ１００ａの故障時には、セカンダリのＣＭ１００ｂ（ＣＭ＃２）がプライマリとしてＣＭ１００ａの動作を引き継ぐ。
【００４２】
ＣＭ１００ａ，１００ｂは、ＣＡ１０１，１０２を介して、それぞれホスト装置２に接続される。そして、ＣＭ１００ａ，１００ｂは、ホスト装置２から送信されるリード／ライト等のＩ／Ｏ要求を受信し、ＤＡ１０３等を介して記憶装置３１の制御を行なう。また、ＣＭ１００ａ，１００ｂは、ＰＣＩｅ（Peripheral Component Interconnect Express）等の図示しないインタフェースを介して相互に通信可能に接続される。
【００４３】
ＣＭ１００は、図１に示すように、ＣＡ１０１，１０２と複数（図１に示す例では二）のＤＡ１０３，１０３とをそなえるとともに、ＣＰＵ（Central Processing Unit）１０５，メモリ１０６，フラッシュメモリ１０７およびＩＯＣ（Input Output Controller）１０８をそなえる。ＣＡ１０１，１０２，ＤＡ１０３，ＣＰＵ１０５，メモリ１０６，フラッシュメモリ１０７，ＩＯＣ１０８は、例えばＰＣＩｅインタフェース１０４を介して相互に通信可能に接続される。
【００４４】
ＣＡ１０１，１０２は、ホスト装置２や管理端末３等から送信されたデータを受信したり、ＣＭ１００から出力するデータをホスト装置２や管理端末３等に送信する。すなわち、ＣＡ１０１，１０２は、ホスト装置２等の外部装置との間でのデータの入出力を制御する。
【００４５】
ＣＡ１０１は、ＮＡＳを介してホスト装置２や管理端末３と通信可能に接続するネットワークアダプタであり、例えば、ＬＡＮ（Local Area Network）インタフェース等である。各ＣＭ１００は、ＣＡ１０１により図示しない通信回線を介してホスト装置２等とＮＡＳにより接続され、Ｉ／Ｏ要求の受信やデータの送受信等を行なう。図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに二つのＣＡ１０１，１０１がそなえられている。
【００４６】
ＣＡ１０２は、ＳＡＮを介してホスト装置２と通信可能に接続するネットワークアダプタであり、例えば、ｉＳＣＳＩ（Internet Small Computer System Interface）インタフェースやＦＣ（Fibre Channel）インタフェースである。各ＣＭ１００は、ＣＡ１０２により図示しない通信回線を介してホスト装置２等とＳＡＮにより接続され、Ｉ／Ｏ要求の受信やデータの送受信等を行なう。図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに１つのＣＡ１０２がそなえられている。
【００４７】
ＤＡ１０３は、ＤＥ３０や記憶部３１等と通信可能に接続するためのインタフェースである。ＤＡ１０３は、ＤＥ３０の記憶部３１が接続され、各ＣＭ１００は、ホスト装置２から受信したＩ／Ｏ要求に基づき、記憶部３１に対するアクセス制御を行なう。
【００４８】
各ＣＭ１００は、ＤＡ１０３を介して、記憶部３１に対するデータの書込や読出を行なう。また、図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに二つのＤＡ１０３，１０３がそなえられている。そして、ＣＭ１００ａ，１００ｂのそれぞれにおいて、各ＤＡ１０３にＤＥ３０が接続されている。
【００４９】
これにより、ＤＥ３０の記憶装置３１には、ＣＭ１００ａ，１００ｂのいずれからもデータの書込や読出を行なうことができる。
【００５０】
フラッシュメモリ１０７は、ＣＰＵ１０５が実行するプログラムや種々のデータ等を格納する記憶装置である。
【００５１】
メモリ１０６は、種々のデータやプログラムを一時的に格納する記憶装置であり、後述するキャッシュ領域１６１やメモリ領域１６２をそなえる（図２，図６参照）。キャッシュ領域１６１は、ホスト装置２から受信したデータや、ホスト装置２に対して送信するデータを一時的に格納する。アプリケーション用メモリ領域１６２は、ＣＰＵ１０５がアプリケーションプログラムを実行する際に、データやプログラムを一時的に格納する。
【００５２】
アプリケーションプログラムは、例えば、本実施形態のストレージ制御機能を実現すべくＣＰＵ１０５が実行するストレージ制御プログラム１６０または１６０Ａ（図２，図６参照）である。ストレージ制御プログラム１６０または１６０Ａは、メモリ１０６あるいはフラッシュメモリ１０７に保存される。なお、メモリ１０６は、前述した記憶部３１と比較するとアクセス速度は高速であるが容量の小さい、ＲＡＭ（Random Access Memory）等である。
【００５３】
ＩＯＣ１０８は、各ＣＭ１００内におけるデータ転送を制御する制御装置であり、例えば、メモリ１０６に格納されたデータをＣＰＵ１０５を介することなく転送させるＤＭＡ（Direct Memory Access）転送を実現する。
【００５４】
ＣＰＵ１０５は、種々の制御や演算を行なう処理装置であり、例えばマルチコアプロセッサ（マルチＣＰＵ）である。ＣＰＵ１０５は、メモリ１０６，フラッシュメモリ１０７等に格納されたＯＳ（Operating System）やプログラムを実行することにより、種々の機能を実現する。
【００５５】
〔３〕第１実施形態
ついで、図２を参照しながら、第１実施形態のストレージ制御装置（ＣＭ）１００の機能構成について説明する。なお、図２は、第１実施形態のＣＭ１００の機能構成の一例を示すブロック図である。
【００５６】
第１実施形態のＣＭ１００において、ＣＰＵ１０５は、ストレージ制御プログラム１６０を実行することで、図２に示すように、第１判定部１５１及び第１コマンド発行部１５２として機能する。
【００５７】
なお、ストレージ制御プログラム１６０は、コンピュータ読取可能な記録媒体であって可搬型の非一時的な記録媒体に記録された形態で提供される。当該記録媒体としては、磁気ディスク，光ディスク，光磁気ディスクなどが挙げられる。また、光ディスクとしては、ＣＤ（Compact Disk），ＤＶＤ（Digital Versatile Disk），ブルーレイディスクなどが挙げられる。ＣＤは、ＣＤ−ＲＯＭ（Read Only Memory），ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などを含む。ＤＶＤは、ＤＶＤ−ＲＡＭ，ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ(High Definition) ＤＶＤなどを含む。
【００５８】
このとき、ＣＰＵ１０５は、上述のごとき記録媒体からストレージ制御プログラム１６０を読み取って内部記憶装置（例えばメモリ１０６やフラッシュメモリ１０７）または外付けの記憶装置に格納して用いる。なお、ＣＰＵ１０５は、ストレージ制御プログラム１６０を、ネットワーク（図示略）を介して受信し内部記憶装置または外付けの記憶装置に格納して用いてもよい。
【００５９】
第１判定部１５１は、上述した定期的なパトロール処理のタイミング（VERIFYコマンド／READコマンドの発行タイミング）で、ＨＳ−ＳＳＤ３１ｂにおける使用不可領域（ゴミ領域）の量が所定基準を超えているか否かを判定する。
【００６０】
本実施形態において、ＨＳ−ＳＳＤ３１ｂは、上述したように、ＨＳ−ＳＳＤ３１ｂの状態に応じて、ゴミ領域の解放処理であるガベージコレクション処理を自律的に実行する機能を有している。
【００６１】
また、ＨＳ−ＳＳＤ３１ｂは、当該ＨＳ−ＳＳＤ３１ｂの状態がゴミ領域の解放処理を実行する状態（ガベージコレクションが実行されるような状況）であるか否かを把握する機能を有している。このとき、ＨＳ−ＳＳＤ３１ｂは、例えば、VERIFYコマンドによって検出されるＲＡＩＤ構成メンバＳＳＤの数以下のＨＳ−ＳＳＤのフリースペースの量が第１閾値以下であるか否かを把握している。当該フリースペースの量が第１閾値以下である状況は、ガベージコレクションを実行する状況に相当する一方、当該フリースペースの量が第１閾値を超える状況は、ガベージコレクションを実行しない状況に相当する。第１閾値としては、予め設定されたデフォルト値が用いられてもよいし、ユーザによって設定された値が用いられてもよい。
【００６２】
このとき、第１判定部１５１は、ＨＳ−ＳＳＤ３１ｂの状態を確認し、ＨＳ−ＳＳＤ３１ｂがガベージコレクションを実行する状態であるか否かを確認する。第１判定部１５１は、ＨＳ−ＳＳＤ３１ｂがガベージコレクションを実行する状態である場合に、ＨＳ−ＳＳＤ３１ｂにおけるゴミ領域の量が所定基準を超えていると判定する。一方、第１判定部１５１は、ＨＳ−ＳＳＤ３１ｂがガベージコレクションを実行する状態でない場合に、ＨＳ−ＳＳＤ３１ｂにおけるゴミ領域の量が所定基準を超えていないと判定する。
【００６３】
第１コマンド発行部１５２は、第１判定部１５１によってゴミ領域の量が所定基準を超えていると判定された場合に、ＨＳ−ＳＳＤ３１ｂに初期化処理（サニタイズ処理）を実行させるサニタイズコマンドを、ＨＳ−ＳＳＤ３１ｂに対し発行する。
【００６４】
また、第１コマンド発行部１５２は、第１判定部１５１によってゴミ領域の量が所定基準を超えていないと判定された場合に、ＨＳ−ＳＳＤ３１ｂに対し何らコマンドを発行しない。つまり、ストレージ制御装置１００は、ＨＳ−ＳＳＤ３１ｂが有する前述した自律動作機能に、ガベージコレクション処理を委ねる。
【００６５】
次に、図３に示すフローチャート（ステップＳ１１〜Ｓ１４）に従って、図２に示すストレージ制御装置１００の動作（パトロール処理）について説明する。
【００６６】
ストレージ装置１の運用中、ストレージ制御装置（制御部）１００は、パトロール処理を定期的に実行する。つまり、ＲＡＩＤ装置３０内の全てのＳＳＤ３１に対し、VERIFYコマンドあるいはREADコマンドが定期的に発行され、これらのコマンドに対するＳＳＤ３１からの応答が監視される（ステップＳ１１）。これにより、各ＳＳＤ３１の正常性、つまり各ＳＳＤ３１がアクセス可能な状態で接続されていることが確認される。
【００６７】
この後、第１判定部１５１（制御部１００）は、ＨＳ−ＳＳＤ３１ｂの状態を確認するコマンドを、ＨＳ−ＳＳＤ３１ｂに発行する（ステップＳ１２）。当該コマンドは、VERIFYコマンドによって検出されるＲＡＩＤ構成メンバＳＳＤ３１ａの数以下のＨＳ−ＳＳＤ３１ｂのフリースペースの量が第１閾値以下であるか否かを確認するためのコマンドである。
【００６８】
第１判定部１５１は、当該コマンドに対するＨＳ−ＳＳＤ３１ｂからの応答内容を確認することで、ＨＳ−ＳＳＤ３１ｂのフリースペースの量が第１閾値以下であるか否かを確認する（ステップＳ１３）。
【００６９】
ＨＳ−ＳＳＤ３１ｂのフリースペースの量が第１閾値以下である場合つまりガベージコレクションを実行する状況である場合（ステップＳ１３のＹＥＳルート）、第１コマンド発行部１５２は、サニタイズコマンドをＨＳ−ＳＳＤ３１ｂに対し発行する（ステップＳ１４）。これにより、第１コマンド発行部１５２は、ＨＳ−ＳＳＤ３１ｂに初期化処理（サニタイズ処理）を実行させる。
【００７０】
一方、ＨＳ−ＳＳＤ３１ｂのフリースペースの量が第１閾値を超える場合つまりガベージコレクションを実行しない状況である場合（ステップＳ１３のＮＯルートから処理終了）、第１コマンド発行部１５２は、ＨＳ−ＳＳＤ３１ｂに対し何らコマンドを発行しない。このとき、ガベージコレクション処理は、ＨＳ−ＳＳＤ３１ｂが有する自律動作機能によって実行される。
【００７１】
なお、ガベージコレクション処理が実行されるような状況でないと判断された後（ステップＳ１３のＮＯルート）に、現用記憶部３１ａで故障が発生したとする。その際、ＨＳ−ＳＳＤ３１ｂを使用してデータ復旧を行なうことになる。しかし、ＨＳ−ＳＳＤ３１ｂはガベージコレクション処理が実行されるような状況ではないため、ガベージコレクション処理と、データ復旧処理に伴うリビルド動作やコピーバック処理とが競合することはない。また、ガベージコレクション処理が実行されるような状況でないと判断された後に、断片的なゴミ領域が増加してガベージコレクション処理が実行されるような状況になった場合には、ＨＳ−ＳＳＤ３１ｂは、ガベージコレクション処理を自律的に実行する。
【００７２】
上述したように、第１実施形態によれば、ストレージ装置１の通常運用中において、定期的なパトロール処理のタイミングで、ＨＳ−ＳＳＤ３１ｂの状態が確認される。そして、ＨＳ−ＳＳＤ３１ｂの状態がガベージコレクション処理を実行されるような状況（例えば、ゴミ領域の占める割合が所定閾値を超えた状況）である場合に、サニタイズコマンドが発行されＨＳ−ＳＳＤ３１ｂの初期化処理が実行される。つまり、ＨＳ−ＳＳＤ３１ｂは、ストレージ装置１の通常運用中にガベージコレクション処理を実行されるような状況になると、サニタイズコマンドによって迅速に初期化され、ＨＳ−ＳＳＤ３１ｂは最高性能を有する状態に回復する。
【００７３】
したがって、第１実施形態によれば、故障記憶部の発生に伴ってＨＳ−ＳＳＤ３１ｂを実際に使用する際には、ＨＳ−ＳＳＤ３１ｂにおいてガベージコレクション処理を実行する必要がなくなる。これにより、ＨＳ−ＳＳＤ３１ｂの使用時に、ＨＳ−ＳＳＤ３１ｂのライト性能が、図４に示す従来例に比較して図５に示すように確保され、迅速に故障記憶部のデータを復旧することができるので、ストレージ装置１の性能を確保することができる。
【００７４】
なお、図４は、ＨＳ−ＳＳＤ３１ｂの使用時における従来のライト性能の一例（ワーストケース）を示す図である。図５は、ＨＳ−ＳＳＤ３１ｂの使用時における、本実施形態で得られるライト性能の一例を示す図である。
【００７５】
〔４〕第２実施形態
ついで、図６を参照しながら、第２実施形態のストレージ制御装置（ＣＭ）１００の機能構成について説明する。なお、図６は、第２実施形態のＣＭ１００の機能構成の一例を示すブロック図である。
【００７６】
第２実施形態のＣＭ１００において、ＣＰＵ１０５は、ストレージ制御プログラム１６０Ａを実行することで、図６に示すように、第１判定部１５１，第１コマンド発行部１５２，第２判定部１５３及び第１コマンド発行部１５４として機能する。
【００７７】
なお、ストレージ制御プログラム１６０Ａも、コンピュータ読取可能な記録媒体であって可搬型の非一時的な記録媒体に記録された形態で提供される。当該記録媒体としては、磁気ディスク，光ディスク，光磁気ディスクなどが挙げられる。また、光ディスクとしては、ＣＤ，ＤＶＤ，ブルーレイディスクなどが挙げられる。ＣＤは、ＣＤ−ＲＯＭ，ＣＤ−Ｒ／ＲＷなどを含む。ＤＶＤは、ＤＶＤ−ＲＡＭ，ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ ＤＶＤなどを含む。
【００７８】
このとき、ＣＰＵ１０５は、上述のごとき記録媒体からストレージ制御プログラム１６０Ａを読み取って内部記憶装置（例えばメモリ１０６やフラッシュメモリ１０７）または外付けの記憶装置に格納して用いる。なお、ＣＰＵ１０５は、ストレージ制御プログラム１６０Ａを、ネットワーク（図示略）を介して受信し内部記憶装置または外付けの記憶装置に格納して用いてもよい。
【００７９】
第１判定部１５１は、第１実施形態の第１判定部１５１と同様にして、定期的なパトロール処理のタイミング（VERIFYコマンド／READコマンドの発行タイミング）で、ＨＳ−ＳＳＤ３１ｂにおけるゴミ領域の量が所定基準を超えているか否かを判定する。
【００８０】
第２判定部１５３は、ＲＡＩＤ構成メンバＳＳＤ（現用記憶部）３１ａにおける故障の予兆の有無を判定する。このとき、第２判定部１５３は、ＲＡＩＤ構成メンバＳＳＤ３１ａから取得されるログ情報に基づき、ＲＡＩＤ構成メンバＳＳＤ３１ａ毎に算出される統計値に応じて、ＲＡＩＤ構成メンバＳＳＤ３１ａにおける故障の予兆の有無を判定する。
【００８１】
特に、第２実施形態において、制御部１００（第２判定部１５３）は、各ＲＡＩＤ構成メンバＳＳＤ３１ａに対しログセンスコマンド（ログ情報収集コマンド）を発行し、各ＲＡＩＤ構成メンバＳＳＤ３１ａから各種ログ情報を収集する。第２判定部１５３は、収集した各種ログ情報に基づき、ＲＡＩＤ構成メンバＳＳＤ３１ａ毎に統計値を算出確認し、算出確認した統計値を第２閾値と比較する。そして、第２判定部１５３は、算出した統計値が第２閾値を超えた場合、当該統計値に対応するＲＡＩＤ構成メンバＳＳＤ３１ａにおいて故障の予兆が有ると判定する。一方、第２判定部１５３は、算出した統計値が第２閾値以下の場合、当該統計値に対応するＲＡＩＤ構成メンバＳＳＤ３１ａにおいて故障の予兆が無いと判定する。第２閾値としては、予め設定されたデフォルト値が用いられてもよいし、ユーザによって設定された値が用いられてもよい。
【００８２】
各ＲＡＩＤ構成メンバＳＳＤ３１ａから収集される各種ログ情報としては、例えば、各ＲＡＩＤ構成メンバＳＳＤ３１ａにおける、ライト量、リード量、ライトエラー数、リードエラー数、ＳＳＤ寿命情報、余裕容量、稼働時間などが挙げられる。第２判定部１５３は、各ＲＡＩＤ構成メンバＳＳＤ３１ａのリード及びライトエラー情報と内部ログのエラー累積値とを統計的手法により解析することで、ＲＡＩＤ構成メンバＳＳＤの故障予兆を検知判定する。
【００８３】
なお、各ＲＡＩＤ構成メンバＳＳＤ３１ａについての統計値は、第２判定部１５３において算出されてもよいし、各ＲＡＩＤ構成メンバＳＳＤ３１ａにおいて算出されてもよい。統計値を各ＲＡＩＤ構成メンバＳＳＤ３１ａにおいて算出する場合、第２判定部１５３は、ログセンスコマンドを各ＲＡＩＤ構成メンバＳＳＤ３１ａに発行することで、各ＲＡＩＤ構成メンバＳＳＤ３１ａによって算出された統計値を収集してもよい。
【００８４】
また、第２判定部１５３としての機能は、各ＲＡＩＤ構成メンバＳＳＤ３１ａに備えられてもよい。この場合、故障の予兆の有無は、各ＲＡＩＤ構成メンバＳＳＤ３１ａ側で検知判定され、第２判定部１５３（制御部１００）からのコマンドによって確認されるようにしてもよい。
【００８５】
第１コマンド発行部１５２は、第１判定部１５１によってゴミ領域の量が所定基準を超えていると判定され且つ第２判定部１５３によってＲＡＩＤ構成メンバ３１ａにおける故障の予兆が有ると判定された場合に、サニタイズコマンドをＨＳ−ＳＳＤ３１ｂに対し発行する。
【００８６】
第２コマンド発行部１５４は、第１判定部１５１によってゴミ領域の量が所定基準を超えていると判定され且つ第２判定部１５３によってＲＡＩＤ構成メンバ３１ａにおける故障の予兆が無いと判定された場合に、ガベージコレクション処理の実行を指示する第２コマンド（ガベージコレクションコマンド）を、ＨＳ−ＳＳＤ３１ｂに対し発行する。
【００８７】
なお、第１コマンド発行部１５２は、第１実施形態と同様、第１判定部１５１によってゴミ領域の量が所定基準を超えていないと判定された場合に、ＨＳ−ＳＳＤ３１ｂに対し何らコマンドを発行しない。つまり、ストレージ制御装置１００は、ＨＳ−ＳＳＤ３１ｂが有する前述した自律動作機能に、ガベージコレクション処理を委ねる。
【００８８】
次に、図７に示すフローチャート（ステップＳ１１〜Ｓ１４，Ｓ２１〜Ｓ２３）に従って、図６に示すストレージ制御装置１００の動作（パトロール処理）について説明する。
【００８９】
第２実施形態においても、ストレージ装置１の運用中、ストレージ制御装置（制御部）１００は、パトロール処理を定期的に実行する。つまり、ＲＡＩＤ装置３０内の全てのＳＳＤ３１に対し、VERIFYコマンドあるいはREADコマンドが定期的に発行され、これらのコマンドに対するＳＳＤ３１からの応答が監視される（ステップＳ１１）。これにより、各ＳＳＤ３１の正常性、つまり各ＳＳＤ３１がアクセス可能な状態で接続されていることが確認される。
【００９０】
この後、第１判定部１５１（制御部１００）は、ＨＳ−ＳＳＤ３１ｂの状態を確認するコマンドを、ＨＳ−ＳＳＤ３１ｂに発行する（ステップＳ１２）。当該コマンドは、VERIFYコマンドによって検出されるＲＡＩＤ構成メンバＳＳＤ３１ａの数以下のＨＳ−ＳＳＤ３１ｂのフリースペースの量が第１閾値以下であるか否かを確認するためのコマンドである。
【００９１】
第１判定部１５１は、当該コマンドに対するＨＳ−ＳＳＤ３１からの応答内容を確認することで、ＨＳ−ＳＳＤ３１ｂのフリースペースの量が第１閾値以下であるか否かを確認する（ステップＳ１３）。
【００９２】
ＨＳ−ＳＳＤ３１ｂのフリースペースの量が第１閾値を超える場合つまりガベージコレクションを実行しない状況である場合（ステップＳ１３のＮＯルートから処理終了）、第１コマンド発行部１５２は、ＨＳ−ＳＳＤ３１ｂに対し何らコマンドを発行しない。このとき、ガベージコレクション処理は、ＨＳ−ＳＳＤ３１ｂが有する自律動作機能によって実行される。
【００９３】
なお、ガベージコレクション処理が実行されるような状況でないと判断された後（ステップＳ１３のＮＯルート）に、現用記憶部３１ａで故障が発生したとする。その際、ＨＳ−ＳＳＤ３１ｂを使用してデータ復旧を行なうことになる。しかし、ＨＳ−ＳＳＤ３１ｂはガベージコレクション処理が実行されるような状況ではないため、ガベージコレクション処理と、データ復旧処理に伴うリビルド動作やコピーバック処理とが競合することはない。また、ガベージコレクション処理が実行されるような状況でないと判断された後に、断片的なゴミ領域が増加してガベージコレクション処理が実行されるような状況になった場合には、ＨＳ−ＳＳＤ３１ｂは、ガベージコレクション処理を自律的に実行する。
【００９４】
一方、ＨＳ−ＳＳＤ３１ｂのフリースペースの量が第１閾値以下である場合つまりガベージコレクションを実行する状況である場合（ステップＳ１３のＹＥＳルート）、制御部１００は、各ＲＡＩＤ構成メンバＳＳＤ３１ａに対しログセンスコマンドを発行する。第２判定部１５３は、当該ログセンスコマンドに応じて収集された各種ログ情報に基づき、ＲＡＩＤ構成メンバＳＳＤ３１ａ毎に統計値を算出し確認する（ステップＳ２１）。
【００９５】
そして、第２判定部１５３は、ＲＡＩＤ構成メンバＳＳＤ３１ｂ毎に確認した統計値と第２閾値とを比較する（ステップＳ２２）。
【００９６】
ステップＳ２２での比較の結果、算出した統計値が第２閾値を超えた場合（ＹＥＳルート）、第２判定部１５３は、当該統計値に対応するＲＡＩＤ構成メンバＳＳＤ３１ａにおいて故障の予兆が有ると判定する。この判定結果に応じて、第１コマンド発行部１５２は、サニタイズコマンドをＨＳ−ＳＳＤ３１ｂに対し発行する（ステップＳ１４）。これにより、第１コマンド発行部１５２は、ＨＳ−ＳＳＤ３１ｂに初期化処理（サニタイズ処理）を実行させる。
【００９７】
一方、ステップＳ２２での比較の結果、算出した統計値が第２閾値以下の場合（ＮＯルート）、第２判定部１５３は、当該統計値に対応するＲＡＩＤ構成メンバＳＳＤ３１ａにおいて故障の予兆が無いと判定する。この判定結果に応じて、第２コマンド発行部１５４は、ガベージコレクション処理の実行を指示するガベージコレクションコマンドを、ＨＳ−ＳＳＤ３１ｂに対し発行する（ステップＳ２３）。これにより、第２コマンド発行部１５４は、ＨＳ−ＳＳＤ３１ｂにガベージコレクション処理を実行させる。
【００９８】
次に、図８を参照しながら、図６に示すストレージ制御装置１００の、より具体的な動作例（下記手順(1)〜(7)）について説明する。
【００９９】
ここで制御対象となるＲＡＩＤ装置（ＤＥ）３０は、図８に示すように、４本のＳＳＤ＃１〜ＳＳＤ＃４を含み、これらのうち３本のＳＳＤ＃１〜ＳＳＤ＃３によってＲＡＩＤ５（２＋１）が構成され、残りの１本のＳＳＤ＃４がＨＳ（ホットスペア）であるものとする。また、ここで、簡便のために、４本のＳＳＤ＃１〜ＳＳＤ＃４は、同一容量（例えば４００ＧＢ）を有し、同一モデルのＳＳＤであるとする。
【０１００】
(1)  ＲＡＩＤ装置３０の初期設定に際しＳＳＤ＃４をＨＳに設定する際、制御部１００は、ＳＳＤ＃４に対しサニタイズコマンドを発行する。これにより、ＨＳ−ＳＳＤ３１ｂとしてのＳＳＤ＃４は、初期化され、最高性能を有する状態に回復する。
【０１０１】
(2)  制御部１００は、ＳＳＤ＃１〜ＳＳＤ＃４に対し、定期的に各ＳＳＤ３１にVERIFY処理を実行させるVERIFYコマンドを、定期的に発行する。
【０１０２】
(3)  制御部１００は、ＳＳＤ＃４の状態がガベージコレクション処理を実行するような状況（例えば、ゴミ領域が多い状況、空き領域の少ない状況）であるか否かを判定する。
【０１０３】
(4)  制御部１００は、ＳＳＤ＃１〜ＳＳＤ＃３に対し、例えば一日一回、ログセンスコマンドを発行して、ログ情報（例えば、ライト量、リード量、ライトエラー数、リードエラー数、ＳＳＤ寿命情報、余裕容量、稼働時間など）を収集する。そして、制御部１００は、収集したログ情報の統計値を分析し、ＳＳＤ＃１〜ＳＳＤ＃３のそれぞれについて故障予兆の有無の監視を行なう。
【０１０４】
(5)  制御部１００は、上記手順(3)でＳＳＤ＃４の状態がガベージコレクション処理を実行するような状況であると判定し、且つ上記手順(4)でＳＳＤ＃１〜ＳＳＤ＃３に故障予兆が有ると判定した場合に、サニタイズコマンドをＳＳＤ＃４に対し発行する。これにより、制御部１００は、ＳＳＤ＃４に初期化処理（サニタイズ処理）を実行させる。
【０１０５】
(6)  制御部１００は、上記手順(3)でＳＳＤ＃４の状態がガベージコレクション処理を実行するような状況であると判定し、且つ上記手順(4)でＳＳＤ＃１〜ＳＳＤ＃３に故障予兆が無いと判定した場合、ガベージコレクションコマンドを、ＳＳＤ＃４に対し発行する。これにより、制御部１００は、ＳＳＤ＃４にガベージコレクション処理を実行させる。
【０１０６】
(7)  制御部１００は、上記手順(3)でＳＳＤ＃４の状態がガベージコレクション処理を実行するような状況でないと判定した場合、ＳＳＤ＃４に対し何らコマンドを発行しない。このとき、ガベージコレクション処理は、ＳＳＤ＃４が有する自律動作機能によって実行される。
【０１０７】
上述のような手順(1)〜(7)の処理（特に手順(5)の処理）によって、ガベージコレクション処理を実行するような状態のＳＳＤ＃４は、例えばＳＳＤ＃１の故障の予兆が検知された段階で（つまりＳＳＤ＃１で故障が発生する前に）初期化される。したがって、ＳＳＤ＃４は、故障発生前に、図４に示すごとく性能の低下した状態から、最高性能を有する状態（図５参照）に回復する。これにより、制御部１００は、所定の時間内に、ＳＳＤ＃１のデータのリビルド等の復旧処理を完了させることができる。
【０１０８】
上述したように、第２実施形態によっても、ストレージ装置１の通常運用中において、定期的なパトロール処理のタイミングで、ＨＳ−ＳＳＤ３１ｂの状態が確認される。
【０１０９】
そして、第２実施形態では、ＨＳ−ＳＳＤ３１ｂの状態がガベージコレクション処理を実行されるような状況で、且つ、ＲＡＩＤ構成メンバＳＳＤ３１ａにおける故障の予兆が有る場合（つまり緊急度の高い場合）に、サニタイズコマンドが発行されＨＳ−ＳＳＤ１３ｂの初期化処理が実行され、ＨＳ−ＳＳＤ３１ｂは最高性能を有する状態に回復する。
【０１１０】
一方、ＨＳ−ＳＳＤ１３ｂの状態がガベージコレクション処理を実行されるような状況で、且つ、ＲＡＩＤ構成メンバＳＳＤ３１ａにおける故障の予兆が無い場合（つまり緊急度の低い場合）に、ガベージコレクションコマンドが発行される。
【０１１１】
したがって、第２実施形態では、ガベージコレクション処理を実行する状況下で故障の予兆が有る緊急度の高い状況でのみ、ＨＳ−ＳＳＤ３１ｂに対するサニタイズ処理が実行され、ＨＳ−ＳＳＤ３１ｂは最高性能を有する状態に回復する。そして、ガベージコレクション処理を実行する状況下で故障の予兆が無い緊急度の低い状況では、ＨＳ−ＳＳＤ３１ｂに対し、サニタイズ処理が実行されず、ガベージコレクション処理が実行される。
【０１１２】
これにより、サニタイズ処理の過度な実行が抑止されＨＳ−ＳＳＤ３１ｂの短寿命化を抑止しながら、緊急度の高い場合には、第１実施形態と同様、ＨＳ−ＳＳＤ３１ｂのライト性能が確保され（図５参照）、迅速に故障記憶部のデータを復旧することができる。つまり、第２実施形態によれば、ＨＳ−ＳＳＤ３１ｂの高信頼性とストレージ装置１の高性能ととの両立が可能になる。
【０１１３】
〔５〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１１４】
例えば、上述した実施形態では、記憶部がＳＳＤである場合について説明したが、本発明は、これに限定されるものではなく、ＳＳＤと同様のガベージコレクション処理を必要とする記憶デバイスを備えるストレージ装置であれば、本実施形態と同様に適用され、本実施形態と同様の作用効果を得ることができる。
【０１１５】
また、上述した実施形態では、ＲＡＩＤ５（２＋１）を構成する３つの現用記憶部と、１つの予備記憶部とを備えるストレージ装置を対象とする場合について説明したが、本発明は、これらの数やＲＡＩＤ構成に限定されるものではない。
【０１１６】
〔６〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
【０１１７】
（付記１）
現用記憶部及び予備記憶部を含む複数の記憶部と、
前記複数の記憶部を制御する制御部と、を有し、
前記制御部は、
前記予備記憶部における使用不可領域の量が所定基準を超えているか否かを判定する第１判定部と、
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定された場合に、前記予備記憶部に初期化を実行させる第１コマンドを、前記予備記憶部に対し発行する第１コマンド発行部と、を有する、ストレージ装置。
【０１１８】
（付記２）
前記制御部は、
前記現用記憶部における故障の予兆の有無を判定する第２判定部をさらに有し、
前記第１コマンド発行部は、前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定され且つ前記第２判定部によって前記現用記憶部における故障の予兆が有ると判定された場合に、前記第１コマンドを前記予備記憶部に対し発行する、付記１に記載のストレージ装置。
【０１１９】
（付記３）
前記制御部は、
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定され且つ前記第２判定部によって前記現用記憶部における故障の予兆が無いと判定された場合に、前記予備記憶部に前記使用不可領域の解放処理を実行させる第２コマンドを、前記予備記憶部に対し発行する第２コマンド発行部をさらに有する、付記２に記載のストレージ装置。
【０１２０】
（付記４）
前記第２判定部は、前記現用記憶部から取得されるログ情報に基づき前記現用記憶部毎に算出される統計値に応じて、前記現用記憶部における故障の予兆の有無を判定する、付記３に記載のストレージ装置。
【０１２１】
（付記５）
前記予備記憶部は、前記予備記憶部の状態に応じて前記使用不可領域の解放処理を自律的に実行する機能を有し、
前記第１判定部は、前記予備記憶部の状態を確認し、前記予備記憶部の状態が前記使用不可領域の解放処理を実行する状態である場合に、前記使用不可領域の量が前記所定基準を超えていると判定する、付記１〜付記４のいずれか一項に記載のストレージ装置。
【０１２２】
（付記６）
前記第１判定部は、前記予備記憶部の状態を確認し、前記予備記憶部の状態が前記使用不可領域の解放処理を実行する状態でない場合に、前記使用不可領域の量が前記所定基準を超えていないと判定する、付記５に記載のストレージ装置。
【０１２３】
（付記７）
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていないと判定された場合に、前記制御部は、前記予備記憶部の前記機能に前記使用不可領域の解放処理を委ねる、付記６に記載のストレージ装置。
【０１２４】
（付記８）
現用記憶部及び予備記憶部を含む複数の記憶部を制御するストレージ制御装置であって、
前記予備記憶部における使用不可領域の量が所定基準を超えているか否かを判定する第１判定部と、
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定された場合に、前記予備記憶部に初期化を実行させる第１コマンドを、前記予備記憶部に対し発行する第１コマンド発行部と、を有する、ストレージ制御装置。
【０１２５】
（付記９）
前記現用記憶部における故障の予兆の有無を判定する第２判定部をさらに有し、
前記第１コマンド発行部は、前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定され且つ前記第２判定部によって前記現用記憶部における故障の予兆が有ると判定された場合に、前記第１コマンドを前記予備記憶部に対し発行する、付記８に記載のストレージ制御装置。
【０１２６】
（付記１０）
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていると判定され且つ前記第２判定部によって前記現用記憶部における故障の予兆が無いと判定された場合に、前記予備記憶部に前記使用不可領域の解放処理を実行させる第２コマンドを、前記予備記憶部に対し発行する第２コマンド発行部をさらに有する、付記９に記載のストレージ制御装置。
【０１２７】
（付記１１）
前記第２判定部は、前記現用記憶部から取得されるログ情報に基づき前記現用記憶部毎に算出される統計値に応じて、前記現用記憶部における故障の予兆の有無を判定する、付記９または付記１０に記載のストレージ制御装置。
【０１２８】
（付記１２）
前記予備記憶部は、前記予備記憶部の状態に応じて前記使用不可領域の解放処理を自律的に実行する機能を有し、
前記第１判定部は、前記予備記憶部の状態を確認し、前記予備記憶部の状態が前記使用不可領域の解放処理を実行する状態である場合に、前記使用不可領域の量が前記所定基準を超えていると判定する、付記８〜付記１１のいずれか一項に記載のストレージ制御装置。
【０１２９】
（付記１３）
前記第１判定部は、前記予備記憶部の状態を確認し、前記予備記憶部の状態が前記使用不可領域の解放処理を実行する状態でない場合に、前記使用不可領域の量が前記所定基準を超えていないと判定する、付記１２に記載のストレージ制御装置。
【０１３０】
（付記１４）
前記第１判定部によって前記使用不可領域の量が前記所定基準を超えていないと判定された場合に、前記予備記憶部の前記機能に前記使用不可領域の解放処理を委ねる、付記１３に記載のストレージ制御装置。
【０１３１】
（付記１５）
現用記憶部及び予備記憶部を含む複数の記憶部を制御するコンピュータに、
前記予備記憶部における使用不可領域の量が所定基準を超えているか否かを判定し、
前記使用不可領域の量が前記所定基準を超えていると判定された場合に、前記予備記憶部に初期化を実行させる第１コマンドを、前記予備記憶部に対し発行する、
処理を実行させる、ストレージ制御プログラム。
【０１３２】
（付記１６）
前記現用記憶部における故障の予兆の有無を判定し、
前記使用不可領域の量が前記所定基準を超えていると判定され且つ前記現用記憶部における故障の予兆が有ると判定された場合に、前記第１コマンドを前記予備記憶部に対し発行する、
処理を、前記コンピュータに実行させる、付記１５に記載のストレージ制御プログラム。
【０１３３】
（付記１７）
前記使用不可領域の量が前記所定基準を超えていると判定され且つ前記現用記憶部における故障の予兆が無いと判定された場合に、前記予備記憶部に前記使用不可領域の解放処理を実行させる第２コマンドを、前記予備記憶部に対し発行する、
処理を、前記コンピュータに実行させる、付記１６に記載のストレージ制御プログラム。
【０１３４】
（付記１８）
前記現用記憶部から取得されるログ情報に基づき前記現用記憶部毎に算出される統計値に応じて、前記現用記憶部における故障の予兆の有無を判定する、
処理を、前記コンピュータに実行させる、付記１６または付記１７に記載のストレージ制御プログラム。
【０１３５】
（付記１９）
前記予備記憶部は、前記予備記憶部の状態に応じて前記使用不可領域の解放処理を自律的に実行する機能を有し、
前記予備記憶部の状態を確認し、前記予備記憶部の状態が前記使用不可領域の解放処理を実行する状態である場合に、前記使用不可領域の量が前記所定基準を超えていると判定する、
処理を、前記コンピュータに実行させる、付記１５〜付記１８のいずれか一項に記載のストレージ制御プログラム。
【０１３６】
（付記２０）
前記予備記憶部の状態を確認し、前記予備記憶部の状態が前記使用不可領域の解放処理を実行する状態でない場合に、前記使用不可領域の量が前記所定基準を超えていないと判定する、
処理を、前記コンピュータに実行させる、付記１９に記載のストレージ制御プログラム。
【符号の説明】
【０１３７】
１    ストレージ装置
２    ホスト装置（サーバ）
３    管理端末
１００，１００ａ，１００ｂ    ＣＭ（ストレージ制御装置，制御部）
１０１，１０２    ＣＡ
１０３    ＤＡ
１０４    ＰＣＩｅインタフェース
１０５    ＣＰＵ（処理部，コンピュータ）
１５１    第１判定部
１５２    第１アクセス発行部
１５３    第２判定部
１５４    ）第２アクセス発行部
１０６    メモリ
１６０，１６０Ａ    ストレージ制御プログラム
１６１    キャッシュ領域
１６２    アプリケーション用メモリ領域
１０７    フラッシュメモリ
１０８    ＩＯＣ
３０    ＤＥ（記憶装置，ＲＡＩＤ装置）
３１    記憶部（ＳＳＤ＃１〜ＳＳＤ＃４）
３１ａ    現用記憶部（ＳＳＤ＃１〜ＳＳＤ＃３；ＲＡＩＤ構成メンバＳＳＤ）
３１ｂ    予備記憶部（ＳＳＤ＃４；ＨＳ−ＳＳＤ）
４０    ＣＥ
【図１】
2017228078.tif 000003
【図２】
2017228078.tif 000004
【図３】
2017228078.tif 000005
【図４】
2017228078.tif 000006
【図５】
2017228078.tif 000007
【図６】
2017228078.tif 000008
【図７】
2017228078.tif 000009
【図８】
2017228078.tif 000010