(57)【特許請求の範囲】
【請求項１】
主電源を制御する電源制御手段と、
ライト要求で指定されたライトデータを一時格納する揮発性記憶媒体と、
前記揮発性記憶媒体に格納されているデータを保存する不揮発性記憶媒体と、
前記主電源の遮断に応じて電力を供給する補助電源と、
前記揮発性記憶媒体に格納されているデータを前記主電源の遮断に応じて前記不揮発性記憶媒体に移動するための電源遮断時データ移動動作を実行する電源遮断時データ移動部と、
前記揮発性記憶媒体にデータを書き込み、前記データの書き込み完了後に前記電源制御手段により前記主電源を遮断させ、所定時間後に前記電源制御手段により前記主電源を再投入させ、その後に前記不揮発性記憶媒体から前記データを読み出し、当該読み出されたデータに基づいて、前記電源遮断時データ移動動作を検証する検証部と、
前記主電源が投入されている状態において、前記揮発性記憶媒体に格納されているデータを前記不揮発性記憶媒体に移動するための通常時データ移動動作を実行する通常時データ移動部とを具備し、
前記検証部は、前記データの書き込みの前に、前記電源遮断時データ移動動作を検証することを前記通常時データ移動部に通知し、
前記通常時データ移動部は、前記電源遮断時データ移動動作の検証の通知に応じ、前記主電源が遮断されるまで、前記通常時データ移動動作を抑止する
ストレージ装置。
【請求項２】
前記検証部は、前記ストレージ装置の立ち上げ時に起動される請求項１記載のストレージ装置。
【請求項３】
記憶ドライブにおいて、
ライト要求で指定されたライトデータを一時格納する揮発性記憶媒体と、
前記揮発性記憶媒体に格納されているデータを保存する不揮発性記憶媒体と、
前記記憶ドライブの主電源の遮断に応じて前記記憶ドライブに電力を供給する補助電源と、
ドライブコントローラとを具備し、
前記ドライブコントローラは、
前記揮発性記憶媒体に格納されているデータを前記主電源の遮断に応じて前記不揮発性記憶媒体に移動するための電源遮断時データ移動動作を実行する電源遮断時データ移動部と、
前記揮発性記憶媒体にテストデータを書き込み、前記テストデータの書き込み完了後に前記主電源を遮断させ、所定時間後に前記主電源を再投入させ、その後に前記不揮発性記憶媒体から前記テストデータを読み出し、当該読み出されたテストデータに基づいて、前記電源遮断時データ移動動作を検証する検証部と、
前記主電源が投入されている状態において、前記揮発性記憶媒体に格納されているデータを前記不揮発性記憶媒体に移動するための通常時データ移動動作を実行する通常時データ移動部とを具備し、
前記ドライブコントローラは、前記テストデータの書き込みのためのライト要求に先行して前記記憶ドライブをデータ移動禁止モードに設定し、且つ前記主電源の遮断に応じて前記データ移動禁止モードを解除し、
前記通常時データ移動部は、前記データ移動禁止モードが設定されている期間、前記通常時データ移動動作を抑止する
記憶ドライブ。
【請求項４】
記憶ドライブと、前記記憶ドライブの主電源を制御する電源制御手段と、前記記憶ドライブへのアクセスを制御するストレージコントローラとを具備し、前記記憶ドライブが、前記ストレージコントローラからのライト要求で指定されたライトデータを一時格納する揮発性記憶媒体と、前記揮発性記憶媒体に格納されているデータを保存する不揮発性記憶媒体と、前記主電源の遮断に応じて前記記憶ドライブに電力を供給する補助電源と、前記揮発性記憶媒体に格納されているデータを前記主電源の遮断に応じて前記不揮発性記憶媒体に移動するための電源遮断時データ移動動作、及び前記主電源が投入されている状態において、前記揮発性記憶媒体に格納されているデータを前記不揮発性記憶媒体に移動するための通常時データ移動動作を実行するドライブコントローラとを具備するストレージ装置において、電源遮断時データ移動動作を検証する方法であって、
前記ストレージコントローラの検証手段が、前記記憶ドライブの前記不揮発性記憶媒体へのテストデータの書き込みの前に、前記電源遮断時データ移動動作を検証することを前記記憶ドライブに通知し、
前記記憶ドライブの前記ドライブコントローラは、前記電源遮断時データ移動動作の検証の通知に応じ、前記主電源が遮断されるまで、前記通常時データ移動動作を抑止し、
前記電源遮断時データ移動動作の検証の通知後に、前記検証手段が前記記憶ドライブに前記テストデータの書き込みを要求し、
前記テストデータの書き込み完了後に、前記検証手段が前記電源制御手段により前記主電源を遮断させ、
所定時間後に、前記検証手段が前記電源制御手段により前記主電源を再投入させ、
その後に、前記検証手段が前記記憶ドライブから前記テストデータを読み出し、
前記読み出されたテストデータに基づいて、前記検証手段が前記記憶ドライブにおける前記電源遮断時データ移動動作を検証する
電源遮断時データ移動動作を検証する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、揮発性記憶媒体及び不揮発性記憶媒体を含む記憶ドライブを備えたストレージ装置、記憶ドライブ、及び記憶ドライブの電源遮断時データ移動動作を検証する方法に関する。
【背景技術】
【０００２】
記憶ドライブとしてソリッドステートドライブ（ＳＳＤ）が知られている。ＳＳＤは、不揮発性記憶媒体としてフラッシュメモリのような不揮発性メモリを用いている。一般に、不揮発性メモリに対するデータの書き込みでは、データのサイズや書き込み回数の制限を受ける。このような制限を考慮して、ＳＳＤでは、不揮発性メモリに書き込まれるべきデータが、一時的に揮発性メモリ（揮発性記憶媒体）に格納される。
【０００３】
しかし、揮発性メモリに格納されているデータは、ＳＳＤの電源（主電源）が停電などに起因して突然遮断した場合に消失してしまう。そこで、ＳＳＤに、バッテリ、或いはキャパシタのような補助電源を備え、主電源の遮断時に当該補助電源に切り替えることにより、揮発性メモリに格納されているデータを不揮発性メモリに移動（保存）する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−１９１７８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、補助電源は、経年劣化等の要因で、電源容量が減少したり故障したりするおそれがある。つまり、補助電源は、出荷時の検査では正常に動作することが確認されても、使用されている間に徐々に劣化が進むおそれがある。補助電源が劣化すると、停電等の要因で記憶ドライブの主電源が遮断された場合、揮発性メモリから不揮発性メモリにデータを退避するのに十分な電源容量を確保できなくなる。このような状態では、揮発性メモリから不揮発性メモリにデータを移動する動作（電源遮断時データ移動動作）を正常に行うことができず、データを消失してしまう。
【０００６】
本発明が解決しようとする課題は、電源遮断時データ移動動作を予め検証できる、揮発性記憶媒体及び不揮発性記憶媒体を含む記憶ドライブを備えたストレージ装置、記憶ドライブ、及び記憶ドライブの電源遮断時データ移動動作を検証する方法を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態によれば、ストレージ装置は、電源制御手段と、揮発性記憶媒体と、不揮発性記憶媒体と、補助電源と、電源遮断時データ移動部と、検証部とを具備する。前記電源制御手段は、主電源を制御する。前記揮発性記憶媒体は、ライト要求で指定されたライトデータを一時格納する。前記不揮発性記憶媒体は、前記揮発性記憶媒体に格納されているデータを保存する。前記補助電源は、前記主電源の遮断に応じて電力を供給する。前記電源遮断時データ移動部は、前記揮発性記憶媒体に格納されているデータを前記主電源の遮断に応じて前記不揮発性記憶媒体に移動する。前記検証部は、前記揮発性記憶媒体にデータを書き込み、前記データの書き込み完了後に前記電源制御手段により前記主電源を遮断させ、所定時間後に前記電源制御手段により前記主電源を再投入させ、その後に前記不揮発性記憶媒体から前記データを読み出し、当該読み出されたデータに基づいて、前記電源遮断時データ移動部の動作を検証する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係るストレージ装置を備えたストレージシステムの構成を示すブロック図。
【図２】第１の実施形態において、記憶ドライブの主電源が遮断された場合に実行される電源遮断時データ移動動作を検証する処理を説明するためのシーケンスチャート。
【図３】第２の実施形態において、記憶ドライブの主電源が遮断された場合に実行される電源遮断時データ移動動作を検証する処理を説明するためのシーケンスチャート。
【発明を実施するための形態】
【０００９】
以下、実施の形態につき図面を参照して説明する。  
［第１の実施形態］
図１は第１の実施形態に係るストレージ装置を備えたストレージシステムの構成を示すブロック図である。
【００１０】
図１に示すストレージシステムは、ストレージ装置１０と、当該ストレージ装置１０を利用するホスト（ホスト装置）２０とから構成される。ストレージ装置１０及びホスト２０は、例えばＳＣＳＩ（Small Computer System Interface）規格に準拠したインタフェースによって接続されているものとする。しかし、ストレージ装置１０及びホスト２０の接続がＳＣＳＩによる接続である必要はない。
【００１１】
ストレージ装置１０は、例えば２つの記憶ドライブ１１-0及び１１-1と、ストレージコントローラ１２と、電源制御部１３とから構成される。記憶ドライブ１１-0及び１１-1がＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成していても構わない。なお、ストレージ装置１０が備える記憶ドライブの数は２である必要はない。つまり、ストレージ装置１０が、１つの記憶ドライブ、或いは２を超える記憶ドライブを備えていても構わない。
【００１２】
第１の実施形態において、記憶ドライブ１１-0及び１１-1はＳＳＤである。記憶ドライブ１１-0は、揮発性メモリ１１１と、不揮発性メモリ１１２と、ドライブコントローラ１１３と、補助電源１１５とから構成される。記憶ドライブ１１-1も記憶ドライブ１１-0と同様の構成を有しているものとする。但し、図１では、記憶ドライブ１１-1の構成は省略されている。
【００１３】
揮発性メモリ１１１は、ＤＲＡＭのような揮発性記憶媒体である。揮発性メモリ１１１は、ストレージコントローラ１２からのライト要求で指定されたライトデータ、つまり不揮発性メモリ１１２に書き込まれるべきデータを、ドライブコントローラ１１３の制御の下で一時格納するのに用いられる。第１の実施形態において、ライトデータを揮発性メモリ１１１に一時格納する理由は、背景技術の欄にも記載されているように、不揮発性メモリ１１２に対するデータの書き込みが、データのサイズや書き込み回数の制限を受けることを考慮しているためである。しかし、ライトデータを揮発性メモリ１１１に一時格納する理由が他の理由であっても構わない。
【００１４】
不揮発性メモリ１１２は、フラッシュメモリのような不揮発性記憶媒体である。不揮発性メモリ１１２は、揮発性メモリ１１１に一時格納されているデータを保存するのに用いられる。
【００１５】
第１の実施形態では、通常は、ブロックと呼ばれる一定サイズのデータを単位に、不揮発性メモリ１１２に一時格納されているデータが、不揮発性メモリ１１２に移動される。つまり通常は、一部のみがライトデータで更新されたブロックは、揮発性メモリ１１１から不揮発性メモリ１１２への移動の対象とならない。一方、記憶ドライブ１１-0の主電源が遮断された場合には、揮発性メモリ１１１に格納されているデータが消失しないように、当該データが不揮発性メモリ１１２に移動（保存）される。ここでは、上述の通常時及び電源遮断時のデータの移動が、いずれもコピーによって行われるものとする。
【００１６】
ドライブコントローラ１１３は、ストレージコントローラ１２との間で例えばＳＣＳＩ規格に準拠した通信を行う。ドライブコントローラ１１３は、ストレージコントローラ１２からのリード要求（リードコマンド）に応じて、記憶ドライブ１１-0からのデータの読み出し（より詳細には、揮発性メモリ１１１または不揮発性メモリ１１２からのデータの読み出し）を行う。ドライブコントローラ１１３は、読み出されたデータをストレージコントローラ１２に転送する。ドライブコントローラ１１３はまた、ストレージコントローラ１２からのライト要求（ライトコマンド）に応じて、記憶ドライブ１１-0へのデータの書き込み（より詳細には、揮発性メモリ１１１へのデータの書き込み）を行う。
【００１７】
ドライブコントローラ１１３は、電源遮断時データ移動部１１３ａ及び通常時データ移動部１１３ｂを備えている。  
電源遮断時データ移動部１１３ａは、記憶ドライブ１１-0の主電源が遮断された場合、揮発性メモリ１１１に一時格納されているデータを不揮発性メモリ１１２に移動（退避）するための電源遮断時データ移動動作を実行する。つまりドライブコントローラ１１３は、周知の電源遮断時データ移動機能を有している。
【００１８】
通常時データ移動部１１３ｂは、記憶ドライブ１１-0の主電源が投入されている通常状態において、揮発性メモリ１１１に一時格納されているデータを不揮発性メモリ１１２に自律的に移動するための通常時データ移動動作を実行する。つまりドライブコントローラ１１３は、周知の通常時データ移動機能を有している。  
補助電源１１５は、バッテリ、或いはキャパシタであり、停電等により記憶ドライブ１１-0の主電源が遮断された場合に、当該記憶ドライブ１１-0内の揮発性メモリ１１１、不揮発性メモリ１１２及びドライブコントローラ１１３のような構成要素群に電力を供給する。補助電源１１５がキャパシタの場合、当該キャパシタは、記憶ドライブ１１-0の主電源によって充電される。また、電源制御部１３の制御によって記憶ドライブ１１-0の主電源が強制的に遮断された場合にも、当該主電源から補助電源１１５に切り替えられる
ストレージコントローラ１２は、例えばホスト２０からのアクセス要求（リード要求またはライト要求）に応じて、記憶ドライブ１１-0または１１-1へのアクセスを制御する。ストレージコントローラ１２は検証部１２０を備えている。検証部１２０は、記憶ドライブ１１-0または１１-1の通常状態（つまり、主電源が正常に機能している状態）において、当該主電源が停電等の要因で遮断された場合を模擬することにより、前述の電源遮断時データ移動動作を検証する。
【００１９】
電源制御部１３は、記憶ドライブ１１-0及び１１-1の主電源を個別に投入（オン）／遮断（オフ）する。第１の実施形態において電源制御部１３は、検証部１２０が記憶ドライブ１１-0または１１-1の電源遮断時データ移動動作を検証する場合に、当該検証部１２０からの指示に従い、記憶ドライブ１１-0または１１-1の主電源の遮断／投入（再投入）を制御する。
【００２０】
次に、第１の実施形態の動作について、記憶ドライブ（ＳＳＤ）１１-0の主電源が遮断された場合に実行される電源遮断時データ移動動作を検証する処理を例に、図２のシーケンスチャートを参照して説明する。
【００２１】
記憶ドライブ１１-0の補助電源１１５は、発明が解決しようとする課題の欄に記載されているように、使用されている間に徐々に劣化が進むおそれがある。補助電源１１５の劣化が進むと、停電等の要因で記憶ドライブ１１-0の主電源が遮断された場合、揮発性メモリ１１１から不揮発性メモリ１１２にデータを移動するのに十分な電源容量を確保できなくなる。また、補助電源１１５の劣化が進むと、やがて当該補助電源１１５が故障するおそれもある。もし、補助電源１１５の電源容量が減少したり、或いは当該補助電源１１５が故障している状態で記憶ドライブ１１-0の主電源が遮断された場合、揮発性メモリ１１１から不揮発性メモリ１１２にデータを移動する電源遮断時データ移動動作を正常に行うことができずに、データが消失してしまう。
【００２２】
そこで、第１の実施形態では、通常状態において、ストレージコントローラ１２の検証部１２０が、当該主電源の停電等の要因による遮断を模擬し、記憶ドライブ１１-0において補助電源１１５からの電力の供給を受けて実行される電源遮断時データ移動動作を事前に検証するようにしている。
【００２３】
ストレージコントローラ１２の検証部１２０は、例えばストレージ装置１０の立ち上げ時に起動される。検証部１２０はまず、記憶ドライブ１１-0に主電源が投入されている状態で、記憶ドライブ１１-0にデータを書き込むためのライト要求を、当該記憶ドライブ１１-0に送出する（ステップ２０１）。なお、検証部１２０は、必ずしもストレージ装置１０の立ち上げ時に起動される必要はない。例えば、ストレージ装置１０が一定時間稼動される毎に、検証部１２０が起動されても構わない。また、検証部１２０が起動される稼動時間間隔が、ストレージ装置１０の総稼動時間に応じて徐々に短くなるように予め定められていても構わない。また、例えばホスト２０を介してのユーザからの指定に応じて、任意のタイミングで検証部１２０が起動されても構わない。
【００２４】
上記ライト要求で指定されるライトデータにはテストデータが用いられる。このテストデータは、後述するように、記憶ドライブ１１-0に書き込まれた後に主電源が遮断され、しかる後に当該主電源が再投入されて読み出された際に、データ化けの有無を判別するのに用いられる。上記ライト要求は、当該ライト要求で指定されるライトデータが書き込まれるべき記憶ドライブ１１-0のアドレスＡｔと当該ライトデータのデータ長（サイズ）Ｌｔを示す情報とを含む。第１の実施形態において、データ長Ｌｔは、説明の簡略化のために、不揮発性メモリ１１２の消去単位である１ブロックの長さ（ブロック長）であるとするが、これに限らない。例えばデータ長Ｌｔが、記憶管理の最小単位であるセクタ長であっても構わない。
【００２５】
記憶ドライブ１１-0のドライブコントローラ１１３は、ストレージコントローラ１２の検証部１２０からのライト要求に応じて、指定のライトデータ（ここでは、１ブロック長のテストデータ）を、揮発性メモリ１１１に書き込む（ステップ２０２）。このように、ストレージコントローラ１２の検証部１２０からのライト要求に応じて、テストデータが揮発性メモリ１１１に格納される。
【００２６】
揮発性メモリ１１１は一種のキャッシュメモリとして管理され、テストデータは、当該揮発性メモリ１１１内の空きのキャッシュブロックに格納される。周知のようにドライブコントローラ１１３は、ライトデータが格納されているキャッシュブロックを、当該ライトデータが本来書き込まれるべき記憶ドライブ１１-0（より詳細には、記憶ドライブ１１-0内の不揮発性メモリ１１２）のアドレスと対応付けて管理する。ドライブコントローラ１１３は、上記テストデータが格納されたキャッシュブロックについても同様に管理する。
【００２７】
ドライブコントローラ１１３は、要求されたライトデータの揮発性メモリ１１１への書き込みを完了すると、ストレージコントローラ１２に対してライト完了通知を返す（ステップ２０３）。
【００２８】
ストレージコントローラ１２の検証部１２０は、ドライブコントローラ１１３からのライト完了通知に応じて、電源制御部１３に対して記憶ドライブ１１-0の主電源の遮断を要求する（ステップ２０４）。すると電源制御部１３は、記憶ドライブ１１-0の主電源を遮断する（ステップ２０５）。つまり検証部１２０は、記憶ドライブ１１-0の主電源を電源制御部１３によって強制的に遮断させることにより、当該主電源の停電等の要因による遮断を模擬する。
【００２９】
記憶ドライブ１１-0は、主電源の遮断を検出すると、補助電源１１５からの電力供給に切り替える（ステップ２０６）。このときドライブコントローラ１１３の電源遮断時データ移動部１１３ａが起動される。
【００３０】
すると電源遮断時データ移動部１１３ａは、揮発性メモリ１１１に格納されているライトデータ（より詳細には、揮発性メモリ１１１に書き込まれたライトデータのうち、不揮発性メモリ１１２に未書き込みのライトデータ）を、不揮発性メモリ１１２の本来書き込まれるべき領域に移動（退避）する周知の電源遮断時データ移動動作を実行する（ステップ２０７）。もし、電源遮断時データ移動動作が正常に行われたならば、上記テストデータは、ストレージコントローラ１２の検証部１２０からステップ２０１で送出されたライト要求の指定するアドレスＡｔの領域、つまり不揮発性メモリ１１２の本来書き込まれるべきアドレスＡｔから始まる１ブロックの領域に移動される。
【００３１】
これに対し、例えば補助電源１１５が劣化しているならば、電源遮断時データ移動動作は正常に行われないおそれがある。また、補助電源１１５が故障しているならば、電源遮断時データ移動動作は正常に行われない。同様に、主電源から補助電源１１５に切り替えられなかった場合にも、電源遮断時データ移動動作は正常に行われない。
【００３２】
検証部１２０は、電源制御部１３に対して記憶ドライブ１１-0の主電源の遮断を要求した時点から所定時間待機する（ステップ２０８）。この所定時間は、記憶ドライブ１１-0における電源遮断時データ移動動作が正常に行われる場合に、当該電源遮断時データ移動動作が完了するのに十分な時間に予め設定されている。
【００３３】
検証部１２０は所定時間を待機すると、電源制御部１３に対して記憶ドライブ１１-0の主電源の投入を要求する（ステップ２０９）。すると電源制御部１３は、記憶ドライブ１１-0の主電源を再投入する（ステップ２１０）。
【００３４】
この状態で検証部１２０は、ステップ２０１で送出したライト要求に応じて記憶ドライブ１１-0に書き込まれているべきライトデータ（つまり１ブロック長のテストデータ）をアドレスＡｔの領域から読み出すためのリード要求を、当該記憶ドライブ１１-0に送出する（ステップ２１１）。
【００３５】
すると記憶ドライブ１１-0のドライブコントローラ１１３は、検証部１２０からのリード要求に応じて、指定されたアドレスＡｔの領域からのデータ（つまり記憶ドライブ１１-0の主電源が遮断される直前に当該記憶ドライブ１１-0に書かれたライトデータ）の読み出しを行う（ステップ２１２）。もし、先の電源遮断時データ移動動作が正常に行われたならば、たとえ当該電源遮断時データ移動動作の完了後に揮発性メモリ１１１のデータが全て消失していたとしても、記憶ドライブ１１-0の主電源が遮断される直前に当該記憶ドライブ１１-0に書かれたライトデータが、不揮発性メモリ１１２のアドレスＡｔの領域から読み出されることになる。
【００３６】
ドライブコントローラ１１３は、リード要求に応じて読み出されたリードデータをストレージコントローラ１２に返す（ステップ２１３）。ストレージコントローラ１２の検証部１２０は、ドライブコントローラ１１３から返されたリードデータに基づき、記憶ドライブ１１-0の主電源を強制的に遮断した際に当該記憶ドライブ１１-0において電源遮断時データ移動動作が正常に行われているかを確認する（ステップ２１４）。つまり検証部１２０は、ドライブコントローラ１１３から返されたリードデータを、ステップ２０１で記憶ドライブ１１-0に送出したライト要求によりライトデータとして指定したテストデータと比較することにより、当該ライトデータが電源遮断時データ移動動作によって不揮発性メモリ１１２に正常に移動（保存）されているかを確認する。
【００３７】
もし、上記両データの一致が検出されたならば、検証部１２０は、記憶ドライブ１１-0の主電源を強制的に遮断した際に電源遮断時データ移動動作が正常に行われて、揮発性メモリ１１１から不揮発性メモリ１１２にライトデータが正しく移動されたとことを確認する。これに対し、上記両データの不一致が検出されたならば、検証部１２０は、上述の電源遮断時データ移動動作が正常に行われず、揮発性メモリ１１１から不揮発性メモリ１１２にライトデータが正しく移動されなかったことを確認する。ストレージコントローラ１２は、この電源遮断時データ移動動作の検証結果を例えばホスト２０を介してユーザに通知する。ストレージコントローラ１２の検証部１２０は、以上のような電源遮断時データ移動動作の検証を、記憶ドライブ１１-1に対しても行う。
【００３８】
第１の実施形態によれば、記憶ドライブ１１-0及び１１-1側に特別な機能を持たせることなく、当該記憶ドライブ１１-0及び１１-1の主電源の遮断時に実行される電源遮断時データ移動動作を事前に検証する機能を持ったストレージ装置１０を実現できる。また、この機能をストレージ装置１０が持つことにより、当該ストレージ装置１０の立ち上げ時など任意の時期に、記憶ドライブ１１-0及び１１-1の電源遮断時データ移動動作を検証することができる。このため第１の実施形態によれば、経年劣化による補助電源の故障等に起因する電源遮断時データ移動動作の異常を、記憶ドライブ１１-0及び１１-1の主電源が停電等のために実際に遮断してデータが消失する前に検出することができる。
【００３９】
［第２の実施形態］
次に、第２の実施形態について説明する。第２の実施形態に係るストレージ装置を備えたストレージシステムの構成は、第１の実施形態と同様である。したがって、第２の実施形態の説明に図１を援用する。
【００４０】
第２の実施形態は、次の２つの点で第１の実施形態と相違する。第１は、ストレージコントローラ１２の検証部１２０が記憶ドライブ１１-0の電源遮断時データ移動動作を検証するに際し、その旨を前記ステップ２０１に先行して当該記憶ドライブ１１-0に明示的に通知する点である。第２は、検証部１２０からの電源遮断時データ移動動作の検証の通知に応じて、記憶ドライブ１１-0がデータ移動禁止モードに設定される点である。
【００４１】
以下、第２の実施形態の動作について、記憶ドライブ１１-0の主電源が遮断された場合に実行される電源遮断時データ移動動作を検証する処理を例に、図３のシーケンスチャートを参照して説明する。なお、図３のシーケンスチャートにおいて、図２のシーケンスチャートと等価なステップには同一参照番号を付してある。具体的には、第２の実施形態においても、第１の実施形態と同様に、ステップ２０１乃至２１４が実行される。第２の実施形態が第１の実施形態と相違する動作は、以下に述べるように、ステップ２０１に先行して実行される。
【００４２】
ストレージコントローラ１２の検証部１２０は、第１の実施形態で適用されたような、記憶ドライブ１１-0の電源遮断時データ移動動作を検証しようとする際には、まず当該記憶ドライブ１１-0に対し、電源遮断時データ移動動作を検証することを明示的に通知する（ステップ３０１）。この通知は、例えば記憶ドライブ１１-0内の入出力レジスタに割り当てられている所定のアドレスに所定のデータを書き込むこと、つまり所定の入出力レジスタに所定のデータを書き込むことによって実現される。しかし、電源遮断時データ移動動作の検証が行われることを、記憶ドライブ１１-0のドライブコントローラ１１３が認識できる通知の手法であれば、他の手法であっても構わない。
【００４３】
記憶ドライブ１１-0のドライブコントローラ１１３は、電源遮断時データ移動動作の検証の通知を検出すると、当該記憶ドライブ１１-0を当該記憶ドライブ１１-0の主電源が遮断されるまでデータ移動禁止モードに設定する（ステップ３０２）。このデータ移動禁止モードの期間、ドライブコントローラ１１３は、揮発性メモリ１１１に格納されているライトデータを通常時データ移動部１１３ｂが不揮発性メモリ１１２に移動するのを抑止する。つまりドライブコントローラ１１３はデータ移動禁止手段として機能して、通常時データ移動部１１３ｂによる通常時データ移動動作を抑止する。なお、制御の簡略化のために、データ移動禁止モードの期間、電源遮断時データ移動部１１３ａの電源遮断時データ移動動作も抑止される構成であっても構わない。
【００４４】
次に検証部１２０は、第１の実施形態と同様に、電源遮断時データ移動動作の検証に必要なライト要求、つまり記憶ドライブ１１-0にデータ（テストデータ）を書き込むためのライト要求を、当該記憶ドライブ１１-0に送出する（ステップ２０１）。記憶ドライブ１１-0のドライブコントローラ１１３は、ストレージコントローラ１２の検証部１２０からのライト要求に応じて、第１の実施形態と同様に、指定のライトデータ（テストデータ）を揮発性メモリ１１１に書き込む（ステップ２０２）。
【００４５】
ドライブコントローラ１１３は、要求されたライトデータの揮発性メモリ１１１への書き込みを完了すると、ストレージコントローラ１２に対してライト完了通知を返す（ステップ２０３）。
【００４６】
ストレージコントローラ１２の検証部１２０は、ドライブコントローラ１１３からのライト完了通知に応じて、電源制御部１３に対して記憶ドライブ１１-0の主電源の遮断を要求する（ステップ２０４）。すると電源制御部１３は、記憶ドライブ１１-0の主電源を遮断する（ステップ２０５）。
【００４７】
記憶ドライブ１１-0は、主電源の遮断を検出すると、補助電源１１５からの電力供給に切り替える（ステップ２０６）。このときドライブコントローラ１１３は、データ移動禁止モードを解除する。同時に電源遮断時データ移動部１１３ａが起動される。すると電源遮断時データ移動部１１３ａは、第１の実施形態と同様に、揮発性メモリ１１１に格納されているライトデータを、不揮発性メモリ１１２の本来書き込まれるべき領域に移動する（ステップ２０７）。以後、第１の実施形態と同様に、ステップ２０８乃至２１４が実行される。
【００４８】
第２の実施形態によれば、記憶ドライブ１１-0での電源遮断時データ移動動作の検証に必要なライト要求（ステップ２０１）に先行して、記憶ドライブ１１-0がデータ移動禁止モードに設定される（ステップ３０２）。このデータ移動禁止モードは、電源遮断時データ移動動作の検証のために記憶ドライブ１１-0の主電源が遮断されるまで設定される。このため、上記ライト要求時から記憶ドライブ１１-0の主電源が遮断されるまでの間、ドライブコントローラ１１３の通常時データ移動部１１３ｂが動作するのが抑止される。よって、上記ライト要求に応じて揮発性メモリ１１１に書き込まれたライトデータ（テストデータ）が、記憶ドライブ１１-0の主電源が遮断される前に不揮発性メモリ１１２に移動されること（いわゆるデステージング）が抑止される。以上は、記憶ドライブ１１-1における電源遮断時データ移動動作を検証する場合にも同様に行われる。
【００４９】
一方、第１の実施形態では、上記ライト要求時から記憶ドライブ１１-0の主電源が遮断されるまでの間に通常時データ移動部１１３ｂが動作する可能性がある。通常時データ移動部１１３ｂが動作する場合、ライト要求に応じて揮発性メモリ１１１に書き込まれたライトデータ（テストデータ）が、上記主電源の遮断前に不揮発性メモリ１１２に移動される可能性がある。もし、主電源の遮断前にテストデータが不揮発性メモリ１１２に移動されたならば、電源遮断時データ移動部１１３ａによる電源遮断時データ移動動作が正常に行われなくてもテストデータが消失することはない。この場合、検証部１２０は、電源遮断時データ移動動作が正常に行われていると確認してしまう。
【００５０】
つまり第１の実施形態では、ライト要求の実行後から主電源の遮断までの間に、当該ライト要求の実行により揮発性メモリ１１１に書き込まれたライトデータが不揮発性メモリ１１２に移動されているかを確認できない。このため第１の実施形態では、ライト要求の実行後から主電源の遮断までの間にライトデータが移動されていない場合には電源遮断時データ移動動作を正しく検証できるものの、移動されている場合には電源遮断時データ移動動作を正しく検証することは難しい。
【００５１】
これに対して第２の実施形態では、ライト要求の実行後から主電源の遮断までの間に、当該ライト要求の実行により揮発性メモリ１１１に書き込まれたライトデータが不揮発性メモリ１１２に移動されるのが抑止される。つまり、ライト要求の実行後から主電源の遮断までの間、揮発性メモリ１１１から不揮発性メモリ１１２にデータが移動されないことが保証され、テストデータが不揮発性メモリ１１２に移動されることなく揮発性メモリ１１１内に保持される。このため、第２の実施形態では、常に電源遮断時データ移動動作を正しく検証できる。
【００５２】
第１及び第２の実施形態では、補助電源１１５が正常な場合、検証部１２０からの主電源投入要求（ステップ２０９）に応じて電源制御部１３が記憶ドライブ１１-0の主電源を再投入する（ステップ２１０）時点まで、補助電源１１５から記憶ドライブ１１-0に対して電力が十分に供給されている可能性がある。この場合、電源遮断時データ移動部１１３ａ自体の要因で電源遮断時データ移動動作が正常に行われなくても、揮発性メモリ１１１のデータは消失しないため、電源遮断時データ移動動作は正常であると見なされることになる。そこで、補助電源１１５の故障等に起因する電源遮断時データ移動動作の異常に加えて、電源遮断時データ移動部１１３ａ自体の要因による電源遮断時データ移動動作の異常も検出することが必要ならば、前述の所定時間として、補助電源１１５から供給される電力が減少して揮発性メモリ１１１のデータが消失するのに十分な時間を設定すればよい。
【００５３】
なお、上記第１及び第２の実施形態では、記憶ドライブ１１-0及び１１-1がＳＳＤである場合を想定している。しかし、記憶ドライブ１１-0及び１１-1がハードディスクドライブ（ＨＤＤ）であっても構わない。つまり、例えば記憶ドライブ１１-0の不揮発性メモリ１１２に代えて、不揮発性記憶媒体としてＨＤＤの磁気ディスクが用いられても構わない。この場合、揮発性メモリ１１１はＨＤＤのキャッシュメモリとして、周知のライトバックモードで用いられるものとする。
【００５４】
また、上記第１及び第２の実施形態では、検証部１２０がストレージコントローラ１２に備えられている。しかし、記憶ドライブ１１-0のドライブコントローラ１１３に、検証部１２０と同様の検証部が備えられていても構わない。つまり、記憶ドライブ１１-0のドライブコントローラ１１３に備えられた検証部が、ストレージコントローラ１２から独立に電源遮断時データ移動部を検証してもよい。この場合、検証部は、揮発性メモリ１１１にテストデータを書き込み、テストデータの書き込み完了後に主電源を遮断させて、電源遮断時データ移動部１１３ａによる電源遮断時データ移動動作を行わせるとよい。また検証部は、主電源の遮断から所定時間後に当該主電源を再投入させ、しかる後に不揮発性メモリ１１２からテストデータを読み出し、当該読み出されたテストデータに基づいて、電源遮断時データ移動動作を検証すればよい。
【００５５】
以上説明した少なくとも１つの実施形態によれば、電源遮断時データ移動動作を予め検証できる、揮発性記憶媒体及び不揮発性記憶媒体を含む記憶ドライブを備えたストレージ装置、記憶ドライブ、及び記憶ドライブの電源遮断時データ移動動作を検証する方法を提供することができる。
【００５６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５７】
１０…ストレージ装置、１１-0，１１-1…記憶ドライブ、１２…ストレージコントローラ、１３…電源制御部、２０…ホスト、１１１…揮発性メモリ（揮発性記憶媒体）、１１２…不揮発性メモリ（不揮発性記憶媒体）、１１３…ドライブコントローラ、１１３ａ…電源遮断時データ移動部、１１３ｂ…通常時データ移動部、１１５…補助電源、１２０…検証部。
【図１】
0005426617.tif 000002
【図２】
0005426617.tif 000003
【図３】
0005426617.tif 000004