(57)【特許請求の範囲】
【請求項１】
ホスト装置から送信されるデータを記憶する記憶部と、
前記ホスト装置と前記記憶部との間で送受信される前記データを一時的に記憶し、消費電力を低く抑える省電力モードを有する複数の揮発性記憶部と、
前記データの送受信を制御するデータ制御部と、
外部電源から供給される電力を前記複数の揮発性記憶部および前記データ制御部に供給する電源ユニットと、
前記データ制御部および前記複数の揮発性記憶部に電力を供給可能な蓄電部と、
前記外部電源からの電力供給が電源遮断処理を経ずに遮断された場合に、前記蓄電部による前記データ制御部および前記複数の揮発性記憶部への電力供給を開始させ、前記複数の揮発性記憶部の全てを前記省電力モードに切り替え、前記複数の揮発性記憶部のうち一部の揮発性記憶部に記憶されている前記データを、前記データを退避させるための不揮発性記憶部に記憶させるときには、前記一部の揮発性記憶部の前記省電力モードを一時的に解除する電力制御を行う電力供給制御部と、
前記省電力モードが解除された前記一部の揮発性記憶部に記憶されている前記データを前記不揮発性記憶部に記憶させるデータ退避制御部と、
前記蓄電部によって前記データ制御部および前記複数の揮発性記憶部に電力が供給されているときに、前記データ制御部および前記複数の揮発性記憶部を前記電源ユニットと接続するためのコネクタの挿抜を検知する挿抜検知部と、
前記挿抜検知部によって前記コネクタの抜き取りが検知された場合に、前記蓄電部による電力の供給を停止させる放電停止部と、を備え、
前記電力供給制御部による前記電力制御は、前記複数の揮発性記憶部に記憶されている全てのデータが前記不揮発性記憶部に記憶されるまで繰り返されることを特徴とするディスクアレイ装置。
【請求項２】
前記データ退避制御部は、前記外部電源からの電力供給が電源遮断処理を経ずに遮断されてから所定時間経過した後または前記蓄電部の残容量が所定の下限容量未満になった場合に、前記揮発性記憶部に記憶されている前記データを前記不揮発性記憶部に記憶させることを特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
ホスト装置から送信されるデータを記憶する記憶部と、前記ホスト装置と前記記憶部との間で送受信される前記データを一時的に記憶し、消費電力を低く抑える省電力モードを有する複数の揮発性記憶部と、前記データの送受信を制御するデータ制御部と、外部電源から供給される電力を前記複数の揮発性記憶部および前記データ制御部に供給する電源ユニットと、前記データ制御部および前記複数の揮発性記憶部に電力を供給可能な蓄電部と、前記データを退避させるための不揮発性記憶部とを備えるディスクアレイ装置において実行される方法であって、
外部電源からの電力供給が電源遮断処理を経ずに遮断された場合に、前記蓄電部による前記データ制御部および前記複数の揮発性記憶部への電力供給を開始させ、前記複数の揮発性記憶部の全てを前記省電力モードに切り替え、前記複数の揮発性記憶部のうち一部の揮発性記憶部に記憶されている前記データを前記不揮発性記憶部に記憶させるときには、前記一部の揮発性記憶部の前記省電力モードを一時的に解除する電力制御を行うステップと、
前記省電力モードが解除された前記一部の揮発性記憶部に記憶されている前記データを、前記不揮発性記憶部に記憶させるステップと、
前記蓄電部によって前記データ制御部および前記複数の揮発性記憶部に電力が供給されているときに、前記データ制御部および前記複数の揮発性記憶部を前記電源ユニットと接続するためのコネクタの挿抜を検知するステップと、
前記コネクタの抜き取りが検知された場合に、前記蓄電部による電力の供給を停止させるステップと、を含み、
前記電力制御は、前記複数の揮発性記憶部に記憶されている全てのデータが前記不揮発性記憶部に記憶されるまで繰り返されることを特徴とする方法。
【請求項４】
請求項３に記載の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置に関する。
【背景技術】
【０００２】
複数の記憶装置を有するディスクアレイ装置では、ホスト装置からのアクセスを高速化するために、揮発性のキャッシュメモリを備えている。このようなディスクアレイ装置において、外部電源からの電力供給が停電等によって電源遮断処理を経ずに遮断されてしまうと、キャッシュメモリ内の未書き込みデータが消滅してしまうことになる。これを防止するために、例えば、下記特許文献１および特許文献２に記載のディスクアレイ装置では、バックアップ用の電源としてバッテリを備えている。これらのディスクアレイ装置では、停電が発生した場合に、バッテリからキャッシュメモリに電力を供給し、キャッシュメモリ内の未書き込みデータを不揮発性の記憶装置等に退避させている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−３３０２７７号公報
【特許文献２】特開２００５−１６５４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、停電等により外部電源からの電力供給が遮断されると、点検等のために電源ユニットから制御基板が取り外されることも考えられる。このような場合にバッテリからの供給電力が継続されていると感電するおそれがある。
【０００５】
本発明は、上述した課題を解決するためになされたものであり、安全性を向上させることができるディスクアレイ装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のディスクアレイ装置は、ホスト装置から送信されるデータを記憶する記憶部と、ホスト装置と記憶部との間で送受信されるデータを一時的に記憶する揮発性記憶部と、データの送受信を制御するデータ制御部と、外部電源から供給される電力を揮発性記憶部およびデータ制御部に供給する電源ユニットと、外部電源からの電力供給が電源遮断処理を経ずに遮断された場合に、データ制御部および揮発性記憶部に電力を供給する蓄電部と、データ制御部および揮発性記憶部を電源ユニットと接続するためのコネクタの挿抜を検知する挿抜検知部と、蓄電部によってデータ制御部および揮発性記憶部に電力が供給されているときに、挿抜検知部によってコネクタの抜き取りが検知された場合に、蓄電部による電力の供給を停止させる放電停止部と、を備える。
【０００７】
本発明の方法は、ホスト装置から送信されるデータを記憶する記憶部と、ホスト装置と記憶部との間で送受信されるデータを一時的に記憶する揮発性記憶部と、データの送受信を制御するデータ制御部と、外部電源から供給される電力を揮発性記憶部およびデータ制御部に供給する電源ユニットと、データ制御部および揮発性記憶部に電力を供給可能な蓄電部と、を備えるディスクアレイ装置において実行される方法であって、外部電源からの電力供給が電源遮断処理を経ずに遮断された場合に、蓄電部によるデータ制御部および揮発性記憶部への電力供給を開始させるステップと、蓄電部によってデータ制御部および揮発性記憶部に電力が供給されているときに、データ制御部および揮発性記憶部を電源ユニットと接続するためのコネクタの挿抜を検知するステップと、コネクタの抜き取りが検知された場合に、蓄電部による電力の供給を停止させるステップと、を含む。
【０００８】
本発明のプログラムは、上記方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【０００９】
本発明によれば、安全性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態におけるディスクアレイ装置の構成を示すブロック図である。
【図２】図１に示すディスクアレイ制御部の電力供給機構を示す図である。
【図３】図２に示す電力供給機構の変形例を示す図である。
【図４】図１に示すディスクアレイ制御部におけるバッテリの電力供給停止機能を実現するための構成図である。
【図５】図１に示すディスクアレイ制御部におけるバッテリ使用時の点灯機能を実現するための構成図である。
【図６】ホスト装置から受信したデータをディスクに記憶させる際の動作を説明するためのフローチャートである。
【図７】ホスト装置から要求されたデータをホスト装置に送信する際の動作を説明するためのフローチャートである。
【図８】外部電源からの電力供給が遮断された際のディスクアレイ制御部の動作を説明するためのフローチャートである。
【図９】外部電源復旧時の動作を説明するためのフローチャートである。
【図１０】バッテリの電力供給停止処理時の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明に係るディスクアレイ装置の好適な実施形態について説明する。
【００１２】
まず、図１を参照して、実施形態におけるディスクアレイ装置の構成について説明する。図１は、ディスクアレイ装置の概略構成を示すブロック図である。
【００１３】
図１に示すように、ディスクアレイ装置１は、電源ユニット１０、１１と、ディスクアレイ制御部１２、１３と、ディスクエンクロージャ１４とを有する。
【００１４】
電源ユニット１０、１１は、例えばコンセント等の外部電源から供給される交流の電力を直流の電力に変換してディスクアレイ制御部１２、１３に供給する。電源ユニット１０、１１とディスクアレイ制御部１２、１３は、バックボード６００を介してそれぞれ相互に接続可能となっている。電源ユニット１０、１１およびディスクアレイ制御部１２、１３は、コネクタを挿抜することでそれぞれバックボード６００から着脱可能に構成されている。
【００１５】
ディスクエンクロージャ１４は、複数のハードディスク（記憶部。以下、「ディスク」という。）を有する。
【００１６】
ディスクアレイ制御部１２とディスクアレイ制御部１３は同一の構成を有する。したがって、以下においてはディスクアレイ制御部１２の各部について説明することとし、ディスクアレイ制御部１３の各部についてはその説明を省略する。
【００１７】
ディスクアレイ制御部１２は、バッテリ１００（蓄電部）と、バッテリモニタ１０２（放電停止部）と、ＣＰＵ（Central Processing Unit ）１１０（データ制御部、データ退避制御部、電力供給制御部、クロック供給制御部）と、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）コントローラ（データ制御部。以下、「ＲＡＩＤＣ（Redundant Arrays of Inexpensive Disks Controller）」という。）１２０と、不揮発性メモリコントローラ（データ制御部。以下、「ＮＶＭＣ（Non Volatile Memory Controller）」という。）１３０と、スイッチ１４０と、ホストインターフェース（以下、「ホストＩ／Ｆ（Interface）」という。）１５０と、ディスクインターフェース（以下、「ディスクＩ／Ｆ」という。）１６０と、を有する。なお、ＲＡＩＤとは、複数台のハードディスクを組み合わせることで仮想的な１台のハードディスクとして運用する技術をいう。
【００１８】
また、ディスクアレイ制御部１２は、ローカルメモリ（揮発性記憶部。以下、「ＭＥＭ（Memory）」という。）２００、２０１と、キャッシュメモリ（揮発性記憶部。以下、「ＣＨＥ（Cache）」という。）２１０〜２１３と、不揮発性メモリ（不揮発性記憶部。以下、「ＮＶＭ（Non Volatile Memory）」という。）２２０、２２１と、ＢＫＶＡＬＩＤ（Backup Valid）１３２とを、さらに有する。
【００１９】
バッテリ１００は、外部電源からの電力供給が電源遮断処理を経ずに遮断された場合に、ＣＰＵ１１０、ＲＡＩＤＣ１２０、ＮＶＭＣ１３０、ＭＥＭ２００、２０１、ＣＨＥ２１０〜２１３、ＮＶＭ２２０、２２１およびＢＫＶＡＫＩＤ１３２の動作に必要な電力を供給する二次電池である。外部電源からの電力供給が電源遮断処理を経ずに遮断される場合としては、例えば、停電や、誤って電源コードが引き抜かれること等が該当する。
【００２０】
バッテリモニタ１０２は、バッテリ１００の充放電を制御する。バッテリモニタ１０２は、バッテリ１００の残容量を監視する。バッテリモニタ１０２は、ディスクアレイ制御部１２から取り外し可能に設計してもよいし、ディスクアレイ制御部１２の外部に取り付け可能に設計してもよい。これにより、例えばバッテリ１００の性能が劣化した場合等にバッテリ１００交換を容易に行うことが可能となる。
【００２１】
ＣＰＵ１１０は、ディスクアレイ制御部１２の各デバイスを管理するプロセッサである。ＣＰＵ１１０には、ＭＥＭ２００、２０１が接続されている。ＣＰＵ１１０は、ファームウエア等を格納するＲＯＭ（Read Only Memory；不図示）に格納されているソフトウェアコードを実行して動作する。なお、ＭＥＭは、２つであることには限定されず、１つであってもよいし、３つ以上であってもよい。
【００２２】
ＭＥＭ２００、２０１には、例えば、ＣＰＵ１１０の動作に必要なオペレーティングシステム（以下、「ＯＳ（Operating System）」という。）のソフトウェアコード等が格納される。ＭＥＭ２００、２０１は、ホストコンピュータ（以下、「ホスト装置」という。）２から読み書きされるデータを一時的にキャッシュする際にも用いられる。ＭＥＭ２００、２０１としては、例えば、ディスクエンクロージャ１４のディスクよりも高速な揮発性のメモリ、例えばＤＲＡＭを用いることができる。より好ましくは、セルフリフレッシュモード等の省電力状態を有するメモリ、例えばＪＥＤＥＣ(Joint Electron Device Engineering Council)仕様のＳＤＲＡＭ(Synchronous Dynamic Random Access Memory)を用いるのがよい。
【００２３】
ＲＡＩＤＣ１２０は、ＲＡＩＤの機能を実現するためのＬＳＩ(Large Scale Integration)である。ＲＡＩＤＣ１２０には、ＣＨＥ２１０〜２１３が接続されている。なお、ＣＨＥは、４つであることには限定されず、４つ未満であってもよいし、５つ以上であってもよい。また、ＣＨＥの機能をＭＥＭに組み込むこととしてもよい。
【００２４】
ＲＡＩＤＣ１２０は、ＣＨＥ２１０〜２１３ごとに、省電力モードのＯＮ／ＯＦＦを制御することや、クロック周波数の設定変更を制御することができる。省電力モードとしては、例えば、ＤＲＡＭ(Dynamic Random Access Memory)におけるセルフリフレッシュモードが該当する。
【００２５】
ＲＡＩＤＣ１２０は、ＲＡＩＤで必要なパリティ計算機能や、２つのディスクに同一のデータを同時に書き込む機能（以下、「デュアルライト」という。）を有する。また、ＲＡＩＤＣ１２０は、ディスクアレイ制御部１２のＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１のキャッシュデータと、ディスクアレイ制御部１３のＣＨＥ２１４〜２１７およびＭＥＭ２０２、２０３のキャッシュデータとの同一性を、スイッチ１４０を介して確保する機能を有する。さらに、ＲＡＩＤＣ１２０は、ディスクアレイ制御部１３側の各デバイスの状態をディスクアレイ制御部１２のＣＰＵ１１０に取得させる機能を有する。各デバイスの状態としては、例えば、電源のＯＮ／ＯＦＦ状態、ハードウェアリセットの解除状態、ＣＰＵ１１１の動作状態、ＲＡＩＤＣ１２１の動作状態等がある。
【００２６】
なお、ＲＡＩＤＣ１２０の機能は、ＣＰＵ１１０で実行されるソフトウェアによって実現させることもできる。この場合には、ＣＨＥ２１０〜２１３の機能をＭＥＭ２００、２０１に組み込むこととすればよい。
【００２７】
ＣＨＥ２１０〜２１３は、ホスト装置２から読み書きされるデータを一時的にキャッシュする際に用いられる。ＣＨＥ２１０〜２１３は、ＲＡＩＤＣ１２０のワークエリアとしても使用できる。ＣＨＥ２１０〜２１３としては、例えば、ディスクエンクロージャ１４のディスクよりも高速な揮発性のメモリ、例えばＤＲＡＭを用いることができる。より好ましくは、セルフリフレッシュモード等の省電力状態を有するメモリ、例えばＪＥＤＥＣ仕様のＳＤＲＡＭを用いるのがよい。
【００２８】
ＮＶＭＣ１３０は、ＮＶＭ２２０、２２１のデータの読み書きと、ＢＫＶＡＬＩＤ１３２のデータのセットおよびリセットを行う。ＮＶＭＣ１３０は、ＤＭＡ(Direct Memory Access)コントローラを内蔵する。ＮＶＭＣ１３０は、ＣＰＵ１１０の指示に従ってＣＨＥ２１０〜２１３やＭＥＭ２００、２０１からデータを読み出し、ＮＶＭ２２０、２２１に書き込む。ＮＶＭＣ１３０は、ＣＰＵ１１０によって任意に設定されるタイマ機能を有する。
【００２９】
ＮＶＭＣ１３０は、バッテリモニタ１０２からバッテリの残容量情報を取得する。ＮＶＭＣ１３０は、バッテリ１００の残容量が所定の下限容量未満になったか否かを検出する機能を有する。下限容量としては、例えば、バッテリ１００によるデータ退避処理を実行するのに必要となる容量の下限値が該当する。データ退避処理としては、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１に保持されているデータをＮＶＭ２２０、２２１にコピーする処理が該当する。
【００３０】
なお、ＮＶＭＣ１３０の機能をＲＡＩＤＣ１２０に組み込むこととしてもよい。この場合には、ＮＶＭ２２０、２２１をＲＡＩＤＣ１２０に接続すればよい。また、ＮＶＭＣ１３０の機能をＣＰＵ１１０に組み込むこととしてもよい。この場合には、ＮＶＭ２２０、２２１をＣＰＵ１１０に接続すればよい。
【００３１】
ＮＶＭ２２０、２２１は、外部電源からの電力供給が電源遮断処理を経ずに遮断された場合に、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１に保持されているデータを退避させるための不揮発性メモリである。ＮＶＭ２２０、２２１には、退避完了フラグが設けられている。退避完了フラグは、データ退避処理によって、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１に保持されている全データがＮＶＭ２２０、２２１に退避されているか否かを示すフラグである。したがって、退避完了フラグがＯＮである場合には、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１に保持されている全データが退避されている状態であることを示す。なお、ＮＶＭは、２つであることには限定されず、２つ未満であってもよいし、３つ以上であってもよい。
【００３２】
ＮＶＭ２２０、２２１としては、例えば、ＣＨＥ２１０〜２１３やＭＥＭ２００、２０１よりも低速な不揮発性メモリ、例えばＮＡＮＤ型のフラッシュメモリを用いることができる。また、小型のＨＤＤ(Hard Disk Drive)やＳＳＤ(Solid State Drive)であってもよい。また、例えばＳＤメモリカードやコンパクトフラッシュ（登録商標）等のように、コントローラを内蔵している不揮発性メモリであってもよい。
【００３３】
不揮発性メモリの中には書き換え回数制限や故障頻度の高いものがあるため、ＮＶＭ２２０、２２１は、ディスクアレイ制御部１２から取り外して交換可能にすることが好ましい。さらに、ディスクアレイ装置１が動作中であってもＮＶＭ２２０、２２１を交換可能にすることが好ましい。ＮＶＭ２２０、２２１を交換するときには、交換対象となるＮＶＭの電源をＯＦＦにしてから行うこととすればよい。
【００３４】
ＢＫＶＡＬＩＤ１３２は、バッテリ２００がバックアップ処理可能な状態であるか否かを示すデータを格納するメモリである。ＢＫＶＡＬＩＤ１３２としては、例えば、１ｂｉｔのフリップフロップを用いることができる。ＢＫＶＡＬＩＤ１３２は、揮発性メモリであってもよい。ＢＫＶＡＬＩＤ１３２として１ｂｉｔのフリップフロップを用いる場合には、バッテリ２００がバックアップ処理可能な状態であるときにはデータとして“１”をセットし、バッテリ２００がバックアップ処理不可能な状態であるときにはデータをクリアして“０”にリセットする。バッテリ２００がバックアップ処理可能な状態であるか否かは、バッテリの残容量がバックアップ処理を行うことができる容量以上あるか否かにより判定することができる。バックアップ処理には、外部電源の代わりにディスクアレイ制御部１２の各デバイスに電力を供給する処理と、上記データ退避処理とが含まれる。
【００３５】
具体的には、例えば、バッテリ１００のバックアップ処理によってデータを退避している際に、バッテリ１００の電力が不足した場合には、ＢＫＶＡＬＩＤ１３２のデータがクリアされて“０”にリセットされる。その後、ディスクアレイ装置１が起動し、バッテリ１００が充電されてバックアップ処理が可能になると、ＢＫＶＡＬＩＤ１３２のデータとして“１”がセットされる。ＢＫＶＡＬＩＤ１３２のデータのセット／リセットは、例えばＣＰＵ１１０がＮＶＭＣ１３０を介して制御する。
【００３６】
スイッチ１４０は、ＲＡＩＤＣ１２０、ホストＩ／Ｆ１５０、ディスクＩ／Ｆ１６０およびディスクアレイ制御部１３側のスイッチ１４１とそれぞれ接続され、これらを相互接続するバスのスイッチング機能を有する。
【００３７】
なお、図１に示すＣＰＵ１１０はスイッチ１４０に接続されていないが、ＣＰＵ１１０がスイッチ１４０に直接接続されていてもよい。また、スイッチ１４０の機能をＣＰＵ１１０またはＲＡＩＤＣ２１０に組み込むこととしてもよい。この場合には、ホストＩ／Ｆ１５０およびディスクＩ／Ｆ１６をＣＰＵ１１０またはＲＡＩＤＣ１２０に直接接続すればよい。
【００３８】
ホストＩ／Ｆ１５０は、ホスト装置２と接続されるインターフェースである。ホストＩ／Ｆ１５０としては、例えば、FibreChannelやiSCSI(Internet Small Computer System Interface)、Infiniband等を用いることができる。ホストＩ／Ｆ１５０に接続されるホスト装置は２台以上であってもよい。
【００３９】
ディスクＩ／Ｆ１６０は、ディスクエンクロージャ１４と接続されるインターフェースである。ディスクＩ／Ｆ１６０としては、例えば、SAS(Serial Attached SCSI)やSATA(Serial Advanced Technology Attachment)、SCSI(Small Computer System Interface)、FibreChannel等を用いることができる。ディスクＩ／Ｆ１６０に接続されるディスクエンクロージャは２台以上であってもよい。
【００４０】
次に、図２を参照して、ディスクアレイ制御部における電力供給機構について説明する。なお、上述したようにディスクアレイ制御部１２の構成はディスクアレイ制御部１３の構成と同様であるため、ここではディスクアレイ制御部１２の電力供給機構について説明し、ディスクアレイ制御部１３の電力供給機構についてはその説明を省略する。
【００４１】
図２に示すように、電源ユニット１０と電源ユニット１１とは、ダイオード５０１、５０２によってディスクアレイ制御部１２の一部にＯＲ接続する。これにより、一方の電源ユニットが故障した場合であっても、ディスクアレイ制御部１２への電力供給を継続することができる。なお、電源ユニットは、２台であることには限定されず、３台以上であってもよい。
【００４２】
電源ユニット１０、１１とバッテリ１００とは、ダイオード５１１、５１２によってディスクアレイ制御部１２の一部にＯＲ接続する。これにより、停電等によって電源ユニット１０、１１から電力を供給できなくなった場合であっても、バッテリ１００からディスクアレイ制御部１２に電力を供給することができる。上述した各ＯＲ接続はダイオードを用いているが、これに限定されない。例えば、一方の電源が故障した場合に他方の電源に切り替えるセレクタを用いることとしてもよい。
【００４３】
ＤＣ／ＤＣコンバータ４００〜４２２は、入力された直流電圧を昇圧または降圧して出力する電源回路である。
【００４４】
ＤＣ／ＤＣコンバータ４００、４０１は、電源ユニット１０、１１およびバッテリ１００のいずれか一の電源から出力された直流電圧に基づいて、ＣＰＵ１１０およびＲＡＩＤＣ１２０の動作に必要な電力をそれぞれ出力する。ＤＣ／ＤＣコンバータ４００、４０１は、２つであることには限定されず、必要に応じて適宜増減することができる。ＤＣ／ＤＣコンバータ４００、４０１は、ＮＶＭＣ１３０からの指示に従って出力のＯＮ／ＯＦＦをそれぞれ個別に切り替えることができる。
【００４５】
ＤＣ／ＤＣコンバータ４０２は、電源ユニット１０、１１およびバッテリ１００のいずれか一の電源から出力された直流電圧に基づいて、ＮＶＭＣ１３０の動作に必要な電力を出力する。
【００４６】
ＤＣ／ＤＣコンバータ４１０〜４１７は、電源ユニット１０、１１およびバッテリ１００のいずれか一の電源から出力された直流電圧に基づいて、ＭＥＭ２００、２０１、ＣＨＥ２１０〜２１３およびＮＶＭ２２０、２２１の動作に必要な電力をそれぞれ出力する。ＤＣ／ＤＣコンバータ４１０〜４１７は、ＮＶＭＣ１３０からの指示に従って出力のＯＮ／ＯＦＦをそれぞれ個別に切り替えることができる。
【００４７】
ＤＣ／ＤＣコンバータ４２０〜４２２は、電源ユニット１０および電源ユニット１１のいずれか一方の電源から出力された直流電圧に基づいて、スイッチ１４０、ホストＩ／Ｆ１５０およびディスクＩ／Ｆ１６０の動作に必要な電力をそれぞれ出力する。ＤＣ／ＤＣコンバータ４２０〜４２２は、３つであることには限定されず、必要に応じて適宜増減することができる。
【００４８】
なお、ＤＣ／ＤＣコンバータ４１０〜４１７による出力のＯＮ／ＯＦＦ制御を、図３に示すＦＥＴ(Field effect transistor；電界効果トランジスタ)ゲート４４０〜４４７のＯＮ／ＯＦＦ制御に置き換えることができる。この場合には、ＤＣ／ＤＣコンバータを、ＤＣ／ＤＣコンバータ４３０とＤＣ／ＤＣコンバータ４３１の２つにすることができるため、簡素かつ安価に図２と同等の機能を実現することが可能となる。なお、この場合には、ＦＥＴゲート４４０〜４４７を通過することで生ずる電圧降下を考慮してＤＣ／ＤＣコンバータ４３０、４３１の電圧を設定する必要がある。
【００４９】
次に、図４を参照して、ディスクアレイ制御部１２におけるバッテリの電力供給停止機能について説明する。なお、上述したようにディスクアレイ制御部１２の構成はディスクアレイ制御部１３の構成と同様であるため、ここでは、ディスクアレイ制御部１２のバッテリ電力供給停止機能について説明し、ディスクアレイ制御部１３のバッテリ電力供給停止機能についてはその説明を省略する。
【００５０】
図４に示すように、ディスクアレイ制御部１２は、挿抜検知部６１０と、挿抜保護部６１１とをさらに有する。ディスクアレイ制御部１２は、コネクタ６０１、６０２を挿抜することでバックボード６００に着脱することができる。バックボード６００には電源ユニット１０、１１が接続している。なお、図４に示す電力消費部Ｌには、例えば、ＣＰＵ１１０、ＲＡＩＤＣ１２０、ＮＶＭＣ１３０、ＭＥＭ２００、２０１、ＣＨＥ２１０〜２１３、ＮＶＭ２２０、２２１およびＢＫＶＡＫＩＤ１３２が含まれる。
【００５１】
ディスクアレイ制御部１２がバックボード６００に装着されている場合にはコネクタ６０１、６０２が導通して、Ｌｏｗレベルの電位信号が挿抜検知部６１０および挿抜保護部６１１に送信される。ディスクアレイ制御部１２がバックボード６００から取り外された場合には、プルアップ抵抗６０３によってＨｉｇｈレベルの電位信号が挿抜検知部６１０および挿抜保護部６１１に送信される。
【００５２】
挿抜検知部６１０は、上記電位信号に基づいてコネクタ６０１、６０２の挿抜状態を監視する。挿抜検知部６１０は、コネクタ６０１、６０２が抜き取られたときに、その旨をバッテリモニタ１０２に通知する。具体的に、挿抜検知部６１０は、Ｈｉｇｈレベルの電位信号を受信したときに、コネクタ６０１、６０２が抜き取られたことを示す信号をバッテリモニタ１０２に通知する。
【００５３】
バッテリモニタ１０２は、コネクタ６０１、６０２が抜き取られたことを示す信号を受信した場合に、バッテリ１００による電力の供給を停止させる。つまり、バッテリ１００の放電を停止させる。
【００５４】
これにより、バッテリ１００によるバックアップ処理の最中にディスクアレイ制御部１２が取り外された場合には、バッテリ１００の放電を停止させることができる。したがって、ディスクアレイ制御部１２を取り外した後もバッテリ１００による通電状態が継続してしまうという危険性を回避することができる。すなわち、コネクタ６０１、６０２を介して感電してしまう事態を回避することができるため、安全性を向上させることができる。
【００５５】
挿抜保護部６１１は、ディスクアレイ制御部１２がバックボード６００に脱着されるときに、電源ユニット１０から供給される電力の急激な変化を緩和する機能を有する。これにより、ディスクアレイ制御部１２内の各デバイスを過電圧等から保護することができる。
【００５６】
次に、図５を参照して、バッテリ使用時の点灯機能について説明する。なお、上述したようにディスクアレイ制御部１２の構成はディスクアレイ制御部１３の構成と同様であるため、ここでは、ディスクアレイ制御部１２のバッテリ使用時の点灯機能について説明し、ディスクアレイ制御部１３のバッテリ使用時の点灯機能についてはその説明を省略する。
【００５７】
図５に示す発光ダイオードＬＥＤ１は、バッテリ１００が電力を供給しているときには点滅し、バッテリ１００が電力を供給していないときには消灯する。これにより、バッテリ１００によって電力が供給されていることを外部に視覚的に知らせることが可能となる。したがって、バッテリ１００によりキャッシュデータがバックアップされている最中にディスクアレイ制御部１２がバックボード６００から引き抜かれてしまう事態を抑止することができる。つまり、安全性をより向上させることが可能となる。
【００５８】
図５に示す電界効果トランジスタ（ＦＥＴ）Ｔ１は、ＮＶＭＣ１３０からの制御信号がコンデンサＣ１の動作に影響を及ぼすことがないように設けられている。抵抗Ｒ１、Ｒ３、Ｒ４、Ｒ５は、回路に流れる電流を制限するために設けられている。シュミットトリガＮＯＴゲートＬ１と、ダイオードＤ１と、時定数設定用抵抗Ｒ２と、時定数設定用コンデンサＣ１とで発振回路を形成する。シュミットトリガＮＯＴゲートＬ２は、電界効果トランジスタＴ２を駆動するためのＮＯＴゲートである。電源Ｖ１は、発光ダイオードＬＥＤ１を点灯させるための電源である。電源Ｖ１には、ＮＶＭＣ１３０を動作させる電源と同一の電源を用いることができる。電界効果トランジスタＴ２は、発光ダイオードＬＥＤ１を点灯／消灯させるためのスイッチングＦＥＴである。シュミットトリガＮＯＴゲートＬ１、Ｌ２のゲートを駆動するための電源には電源Ｖ１を用いることができる。電源Ｖ１と抵抗Ｒ５とでプルアップ抵抗が構成される。同様に電源Ｖ１と抵抗Ｒ６とでプルアップ抵抗が構成される。
【００５９】
図５を参照して、バッテリ１００が電力供給を停止しているときに発光ダイオードが消灯するしくみについて説明する。まず、バッテリ１００が電力供給停止状態になると、ＮＶＭＣ１３０の出力がＨｉｇｈレベルとなる。これにより電界効果トランジスタＴ１がＯＮ状態となり、コンデンサＣ１の電荷が放出される。これによりシュミットトリガＮＯＴゲートＬ１の出力がＨｉｇｈレベルとなり、シュミットトリガＮＯＴゲートＬ２の出力がＬｏｗレベルとなる。これにより電界効果トランジスタＴ２がＯＦＦ状態となり、発光ダイオードＬＥＤ１が消灯状態になる。
【００６０】
図５を参照して、バッテリが電力を供給しているときに発光ダイオードが点滅するしくみについて説明する。まず、バッテリ１００が電力供給状態になると、ＮＶＭＣ１３０の出力がＬｏｗレベルとなる。これにより電界効果トランジスタＴ１がＯＦＦ状態となり、シュミットトリガＮＯＴゲートＬ１の出力がＨｉｇｈレベルのまま発振回路で発振が生ずる。これにより、発振回路の抵抗Ｒ２を経由して流れる電荷がコンデンサＣ１に蓄電されていく。その後、コンデンサＣ１の電圧がシュミットトリガＮＯＴゲートＬ１のターンオン電圧を超えると、シュミットトリガＮＯＴゲートＬ１の出力がＬｏｗレベルとなる。これによりシュミットトリガＮＯＴゲートＬ２の出力がＨｉｇｈレベルとなり、電界効果トランジスタＴ２がＯＮ状態となるため、発光ダイオードＬＥＤ１が点灯する。
【００６１】
その後、コンデンサＣ１の電荷がダイオードＤ１を経由して放出されていく。コンデンサＣ１の電荷がシュミットトリガＮＯＴゲートＬ１のターンオフ電圧を下回ると、シュミットトリガＮＯＴゲートＬ１の出力がＨｉｇｈレベルとなる。これによりシュミットトリガＮＯＴゲートＬ２の出力がＬｏｗレベルとなり、電界効果トランジスタＴ２がＯＦＦ状態となるため、発光ダイオードＬＥＤ１が消灯する。
【００６２】
これにより、バッテリ１００が電力供給状態になったときに、発光ダイオードを所定の周期で点滅させることができる。
【００６３】
点滅周期はコンデンサＣ１の容量および抵抗Ｒ２の抵抗値を変更することで調整することができる。点滅周期としては、例えば１〜２秒程度にすることが好ましい。また、発光ダイオードの点灯時間と消灯時間とのデューティ比は視認性が損なわれない範囲で設定することが好ましい。例えば１：１０００程度にすることが好ましい。このデューティ比は抵抗Ｒ３および抵抗Ｒ２の抵抗値を変更することで調整することができる。ダイオードＤ１として、逆方向電流の温度変化が小さいものを用いることで、デューティ比や点滅周期への影響を小さくすることができる。具体的には、シリコンのダイオードを用いることが好ましい。一方、逆方向電流の温度変化が大きいものとしては、例えばショットキーバリアダイオードがある。
【００６４】
このように発光ダイオードを点滅させることによって、発光ダイオードを点灯させ続けた場合に比べて電流を１０００分の１程度にまで抑えることが可能となる。つまり、バッテリ１００の電力がディスクアレイ制御部１２に供給されているときに発光ダイオードを点滅させることで、バッテリが通電状態であることを、最小限の電流を使用することで外部に認識させることができる。
【００６５】
次に、図面を参照して本実施形態におけるディスクアレイ装置１の各種の動作について説明する。なお、上述したようにディスクアレイ制御部１２の構成はディスクアレイ制御部１３の構成と同様であるため、ここでは、ディスクアレイ装置１の動作のうちディスクアレイ制御部１２の動作について説明し、ディスクアレイ制御部１３の動作についてはその説明を省略する。
【００６６】
まず、図６を参照して、ホスト装置から受信したデータをディスクに記憶させる際の動作について説明する。
【００６７】
最初に、ＲＡＩＤＣ１２０は、ホストＩ／Ｆ１５０を介してホスト装置２から受信したデータをＣＨＥ２１０〜２１３またはＭＥＭ２００、２０１に書き込む（ステップＳ１０１）。
【００６８】
続いて、ＲＡＩＤＣ１２０は、ＲＡＩＤに必要なパリティ計算を実行する。続いて、ＲＡＩＤＣ１２０は、パリティチェックが終了したデータをディスクＩ／Ｆ１６０を介してディスクエンクロージャ１４のディスクに書き込ませる（ステップＳ１０２）。
【００６９】
次に、図７を参照して、ホスト装置から要求されたデータをホスト装置に送信する際の動作について説明する。
【００７０】
最初に、ＲＡＩＤＣ１２０は、ホスト装置２から要求されたデータがＣＨＥ２１０〜２１３またはＭＥＭ２００、２０１にキャッシュされているか否かを判定する（ステップＳ２０１）。この判定がＹＥＳである場合（ステップＳ２０１；ＹＥＳ）に、ＲＡＩＤＣ１２０は、ＣＨＥ２１０〜２１３またはＭＥＭ２００、２０１からデータを読み出す（ステップＳ２０２）。
【００７１】
一方、上記ステップＳ２０１における判定で、ホスト装置２から要求されたデータがＣＨＥ２１０〜２１３またはＭＥＭ２００、２０１にキャッシュされていないと判定された場合（ステップＳ２０１；ＮＯ）に、ＲＡＩＤＣ１２０は、ディスクＩ／Ｆ１６０を介してディスクエンクロージャ１４のディスクからデータを読み出す（ステップＳ２０３）。
【００７２】
続いて、ＲＡＩＤＣ１２０は、読み出したデータをホストＩ／Ｆ１５０を介してホスト装置２に送信する（ステップＳ２０４）。
【００７３】
次に、図８を参照して、外部電源からの電力供給が遮断された際のディスクアレイ制御部の動作について説明する。
【００７４】
最初に、例えば停電により外部電源からの電力供給が電源遮断処理を経ずに遮断される（ステップＳ３０１）と、ＣＰＵ１１０は、バッテリ１００によるバックアップ処理を開始させる（ステップＳ３０２）。
【００７５】
ＣＰＵ１１０は、バッテリ１００に接続していないＤＣ／ＤＣコンバータ４２０〜４２２をＯＦＦにしてスイッチ１４０、ホストＩ／Ｆ１５０およびディスクＩ／Ｆ１６０への電力供給を停止させる（ステップＳ３０３）。これと並行してＣＰＵ１１０は、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１を省電力モード（例えばセルフリフレッシュモード）に切り替え、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１へのクロックの供給を停止する（ステップＳ３０４）。なお、クロックの供給を停止せずに、供給するクロックの周波数を規格上の下限周波数付近にまで低下させることとしてもよい。また、ＣＰＵ１１０は、ＭＥＭ２００、２０１を省電力モードに切り替えた後は、ＭＥＭ２００、２０１に格納されているソフトウェアコードを参照することができなくなる。したがって、ＣＰＵ１１０は、ファームウエア等を格納するＲＯＭに格納されているソフトウェアコードを参照してその後の処理を実行する。
【００７６】
続いて、ＮＶＭＣ１３０は、ＤＣ／ＤＣコンバータ４１６、４１７をＯＦＦにしてＮＶＭ２２０、２２１への電力供給を停止するとともに、ＤＣ／ＤＣコンバータ４００、４０１をＯＦＦにしてＣＰＵ１１０およびＲＡＩＤＣ１２０への電源供給を停止する（ステップＳ３０５）。これにより、消費電力を最小限にした状態でＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１の内容を保持させることができる。
【００７７】
続いて、ＮＶＭＣ１３０は、外部電源が投入されたか否かを判定する（ステップＳ３０６）。この判定がＹＥＳの場合（ステップＳ３０６；ＹＥＳ）には、後述する外部電源復旧時の動作を実行する（ステップＳ３０７）。
【００７８】
一方、上記ステップＳ３０６における判定で外部電源が未投入であると判定された場合（ステップＳ３０６；ＮＯ）に、ＮＶＭＣ１３０は、予めタイマ設定された所定時間が経過したか否か、または、バッテリの残容量が予め設定された下限容量未満になったか否かを判定する（ステップＳ３０８）。この判定がＮＯである場合には、上記ステップＳ３０６に処理を移行する。
【００７９】
一方、上記ステップＳ３０８における判定で所定時間が経過したか、バッテリの残容量が下限容量未満になったと判定された場合（ステップＳ３０８；ＹＥＳ）に、ＮＶＭＣ１３０は、ＤＣ／ＤＣコンバータ４００、４０１をＯＮにしてＣＰＵ１１０およびＲＡＩＤＣ１２０への電力供給を開始させる（ステップＳ３０９）。
【００８０】
続いて、ＣＰＵ１１０は、ＮＶＭＣ１３０を介してＢＫＶＡＬＩＤ１３２のデータをクリアさせる（ステップＳ３１０）。
【００８１】
続いて、ＣＰＵ１１０は、ＤＣ／ＤＣコンバータ４１６、４１７をＯＮさせてＮＶＭ２２０、２２１への電力供給を開始させる（ステップＳ３１１）。
【００８２】
続いて、ＣＰＵ１１０は、ＮＶＭＣ１３０のＤＭＡコントローラを起動して、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１に保持されているデータを順次ＮＶＭ２２０、２２１にコピーさせることで、データを退避させる（ステップＳ３１２）。
【００８３】
続いて、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１に保持されている全データの退避が完了した場合に、ＣＰＵ１１０は、ＮＶＭ２２０、２２１に設けられた退避完了フラグをＯＮにする（ステップＳ３１３）。これにより、退避完了フラグがＯＮであるときは、ディスクに書き込まれていない有効なキャッシュデータがＮＶＭ２２０、２２１に保持されていることになる。
【００８４】
続いて、ＣＰＵ１１０は、バッテリ１００を停止させる（ステップＳ３１４）。これにより、ディスクアレイ装置１は停止状態となる。
【００８５】
なお、上記ステップＳ３１２におけるデータ退避処理は、例えば、以下のように行うことができる。ＣＰＵ１１０は、ＮＶＭ２２０、２２１への最大書き込み速度を超えない範囲で動作させることができる数のＣＨＥおよびＭＥＭを指定する。ＣＰＵ１１０は、指定したＣＨＥおよびＭＥＭの省電力モードを解除する。ＣＰＵ１１０は、省電力モードを解除したＣＨＥおよびＭＥＭに対して、必要最低限の転送速度が得られる周波数に低下させたクロック信号を供給する。ＣＰＵ１１０は、指定したＣＨＥおよびＭＥＭに保持されているデータの退避を開始させる。データの退避が終了すると、ＣＰＵ１１０は、指定したＣＨＥおよびＭＥＭを省電力モードにして、クロック信号の供給を停止する。ＣＰＵ１１０は、次にデータを退避させるＣＨＥおよびＭＥＭを指定して、上記と同様に省電力モードの解除およびクロック信号の供給を行ってからデータを退避させる。そして、この手順をＣＨＥおよびＭＥＭに保持されている全てのデータの退避が完了するまで繰り返す。
【００８６】
このように、複数あるＣＨＥおよびＭＥＭの電力およびクロック信号を個別に制御することによって、ＣＨＥおよびＭＥＭの内容をＮＶＭに退避させる際の消費電力を低減させることができるため、バッテリの容量を減らしてバッテリを小さくすることができる。
【００８７】
また、上記ステップＳ３１４におけるバッテリ停止処理を行う前に、ＮＶＭＣ１３０が、ＤＣコンバータ４１６、４１７をＯＦＦしてＮＶＭ２２０、２２１への電力供給を停止させるとともに、ＤＣ／ＤＣコンバータ４００、４０１をＯＦＦしてＣＰＵ１１０およびＲＡＩＤＣ１２０への電力供給を停止させることとしてもよい。
【００８８】
また、上記ステップＳ３１０でＢＫＶＡＬＩＤ１３２のデータをクリアしてから、上記ステップＳ３１２でＮＶＭ２２０、２２１へのデータの退避処理が完了するまでの間に、外部電源が投入された場合には、データの退避処理を最後まで実行した後に、後述する外部電源復旧時の動作を実行すればよい。
【００８９】
次に、図９を参照して、上記ステップＳ３０７で実行される外部電源復旧時の動作について説明する。
【００９０】
最初に、外部電源が投入されると、ディスクアレイ制御部１２内の各デバイスに電力が供給され、ＣＰＵ１１０が起動する（ステップＳ４０１）。なお、この時点では、ＭＥＭ２００、２０１の状態が不明である。したがって、ＣＰＵ１１０は、ＭＥＭ２００、２０１が使用可能になるまでは、ファームウエア等を格納するＲＯＭに格納されているソフトウェアコードを参照してその後の処理を実行する。
【００９１】
続いて、ＣＰＵ１１０は、ＢＫＶＡＬＩＤ１３２のデータがセットされている状態であるか否かを判定する（ステップＳ４０２）。この判定がＹＥＳである場合（ステップＳ４０２；ＹＥＳ）に、ＣＰＵ１１０は、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１のデータがバッテリ１００によって保持されていたと判断し、後述するステップＳ４０６に処理を移行する。この場合には、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１のデータが全て保持されていることになるため、起動時のＯＳのブート処理を省略することができ、通常よりも高速に起動することが可能となる。
【００９２】
一方、上記ステップＳ４０２における判定でＢＫＶＡＬＩＤ１３２のデータがセットされていない状態であると判定された場合（ステップＳ４０２；ＮＯ）に、ＣＰＵ１１０は、ＮＶＭ２２０、２２１の退避完了フラグがＯＮであるか否かを判定する（ステップＳ４０３）。この判定がＹＥＳである場合（ステップＳ４０３；ＹＥＳ）に、ＣＰＵ１１０は、ＮＶＭ２２０、２２１にデータが退避されていたと判断し、ＮＶＭ２２０、２２１に保持されているデータをＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１にコピーしてデータを復元する（ステップＳ４０４）。そして、後述するステップＳ４０６に処理を移行する。
【００９３】
一方、上記ステップＳ４０３の判定で退避完了フラグがＯＦＦであると判定された場合（ステップＳ４０３；ＮＯ）に、ＣＰＵ１１０は、通常の起動処理としてＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１の初期化を行い、ＣＰＵ１１０に接続されたファームウエア格納用のＲＯＭからＯＳをロードする（ステップＳ４０５）。
【００９４】
続いて、ＣＰＵ１１０は、ＲＡＩＤＣ１２０、スイッチ１４０、ホストＩ／Ｆ１５０およびディスクＩ／Ｆ１６０の初期化を含む起動処理を実行する（ステップＳ４０６）。
【００９５】
続いて、ＣＰＵ１１０は、バッテリ１００の残容量がバックアップ処理をするのに十分であるか否かを判定する（ステップＳ４０７）。この判定がＮＯである場合（ステップＳ４０７；ＮＯ）に、ＣＰＵ１１０は、ＢＫＶＡＬＩＤ１３２のデータをクリアしてバッテリ１００の充電を開始する（ステップＳ４０８）。なお、いずれかのバッテリ１００、１０１に十分な残容量があればバッテリによるバックアップ処理を実行可能とする場合には、バッテリの残容量を判定する際に、バッテリ１００、１０１の残容量をそれぞれ判定すればよい。
【００９６】
続いて、ＣＰＵ１１０は、ディスクに書き込まれていないキャッシュデータ（以下、「ダーティキャッシュ」という。）がＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１に記憶されている場合には、ダーティキャッシュをディスクに記憶させる（ステップＳ４０９）。
【００９７】
続いて、ＣＰＵ１１０は、ＮＶＭ２２０、２２１の退避完了フラグをＯＦＦにする（ステップＳ４１０）。
【００９８】
続いて、ＣＰＵ１１０は、データの更新方式を、ライトスルーモードにする（ステップＳ４１１）。
【００９９】
ここで、データの更新方式としては、ライトスルーモードとライトバックモードとがある。ライトスルーモードは、データを記憶させる際に、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１にデータをキャッシュさせるのと同時に、ディスクにもデータを書き込むモードである。ライトバックモードは、データを記憶させる際に、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１にのみデータをキャッシュさせておき、ＣＰＵの空き時間等を利用してキャッシュしたデータをディスクに書き込むモードである。つまり、ライトスルーモードでは、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１にダーティキャッシュが存在しないのに対して、ライトバックモードでは、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１にダーティキャッシュが存在することとなる。
【０１００】
続いて、ＣＰＵ１１０は、ホスト装置２からのＩ／Ｏアクセスの受け付けを開始する（ステップＳ４１２）。なお、ライトスルーモードでは、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１に保持されているデータは、全てディスクに書き込まれているデータ（以下、「クリーンキャッシュ」という。）となる。したがって、外部電源からの電力供給が電源遮断処理を経ずに遮断されてもダーティキャッシュが失われることはない。
【０１０１】
続いて、ＣＰＵ１１０は、上記ステップＳ４０８で開始したバッテリ１００の充電が終了したか否かを判定し（ステップＳ４１２）、充電が終了しない場合（ステップＳ４１２；ＮＯ）には待機し、充電が終了した場合（ステップＳ４１２；ＹＥＳ）には、後述するステップＳ４１４に処理を移行する。
【０１０２】
一方、上記ステップＳ４０７の判定でバッテリ１００の残容量が十分であると判定された場合（ステップＳ４０７；ＹＥＳ）に、ＣＰＵ１１０は、バッテリ１００を放電可能な状態にする（ステップＳ４１４）。
【０１０３】
続いて、ＣＰＵ１１０は、ＮＶＭ２２０、２２１の退避完了フラグをＯＦＦする（ステップＳ４１５）。
【０１０４】
続いて、ＣＰＵ１１０は、データの更新方式を、ライトバックモードにする（ステップＳ４１６）。
【０１０５】
続いて、ＣＰＵ１１０は、ＢＫＶＡＬＩＤ１３２のデータをセットし（ステップＳ４１７）、ホスト装置２からのＩ／Ｏアクセスの受け付けを開始する（ステップＳ４１８）。ＢＫＶＡＬＩＤ１３２のデータをセットすることで、外部電源からの電力供給が電源遮断処理を経ずに遮断された場合であっても、ＣＨＥ２１０〜２１３およびＭＥＭ２００、２０１に保持されているデータがバッテリ１００によってバックアップされることとなる。
【０１０６】
これにより、外部電源からの電力供給が電源遮断処理を経ずに遮断された場合であっても、所定時間経過前やバッテリの残容量が十分あるうちに外部電源が投入された場合には、バッテリ電力によって保持されたＣＨＥやＭＥＭのデータをそのまま使用してディスクアレイ装置の動作を再開することが可能となる。また、この場合には、ＮＶＭにデータを退避させないため、書き込み回数に制限がある不揮発性メモリの寿命を維持させることが可能となる。
【０１０７】
一方、所定時間経過前やバッテリの残容量が十分あるうちに外部電源が投入されなかった場合には、ＣＨＥやＭＥＭのデータを、不揮発性メモリであるＮＶＭに退避させることができるため、ダーティキャッシュが消失する事態を回避させることができる。
【０１０８】
次に、図１０を参照して、バッテリの電力供給停止処理時の動作について説明する。この動作は、バッテリによるバックアップ処理中に繰り返し実行される。
【０１０９】
最初に、挿抜検知部６１０は、コネクタ６０１、６０２が抜き取られたか否かを判定する（ステップＳ５０１）。この判定がＮＯである場合（ステップＳ５０１；ＮＯ）には処理を終了する。
【０１１０】
一方、ステップＳ５０１における判定でコネクタ６０１、６０２が抜き取られたと判定された場合（ステップＳ５０１；ＹＥＳ）に、バッテリモニタ１０２は、バッテリ１００による電力の供給を停止させる（ステップＳ５０２）。
【０１１１】
これにより、バッテリ１００によるバックアップ処理の最中にディスクアレイ制御部１２が取り外された場合にバッテリ１００の放電を停止させることが可能となる。
【０１１２】
なお、ディスクアレイ装置１には、上述した各部の機能を実現させるプログラムがインストールされている。このプログラムを実行することで、上述した各部の機能を実現することができる。
【０１１３】
また、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【０１１４】
例えば、ディスクアレイ装置１は、上述した実施形態における各要素（図１参照）を全て備えている必要はない。ディスクアレイ装置１は、少なくとも、ＣＰＵ１１０、ＣＨＥ２１０（ＭＥＭ２００）、バッテリ１００、バッテリモニタ１０２、コネクタ６０１、６０２および挿抜検知部６１０を有するディスクアレイ制御部１２と、電源ユニット１０と、ハードディスクを有するディスクエンクロージャ１４と、を備えていればよい。
【０１１５】
これにより、挿抜検知部６１０によってコネクタ６０１、６０２の抜き取りが検知された場合に、バッテリモニタ１０２がバッテリ１００による電力の供給を停止させることができる。つまり、バッテリ駆動時にディスクアレイ制御部１２が取り外されてもバッテリ１００による通電状態が継続してしまうことを回避することができる。
【符号の説明】
【０１１６】
１…ディスクアレイ装置、２…ホスト装置、１０、１１…電源ユニット、１２、１３…ディスクアレイ制御部、１４…ディスクエンクロージャ、１００、１０１…バッテリ、１０２、１０３…バッテリモニタ、１１０、１１１…ＣＰＵ、１２０，１２１…ＲＡＩＤＣ、１３０、１３１…ＮＶＭＣ、１３２、１３３…ＢＫＶＡＬＩＤ、１４０、１４１…スイッチ、１５０、１５１…ホストＩ／Ｆ、１６０、１６１…ディスクＩ／Ｆ、２００〜２０３…ＭＥＭ、２１０〜２１７…ＣＨＥ、２２０〜２２３…ＮＶＭ、４００〜４０２、４１０〜４１７、４２０〜４２２…ＤＣ／ＤＣコンバータ、６００…バックボード、６０１、６０２…コネクタ、６１０…挿抜検知部、ＬＥＤ１…発光ダイオード。
【図１】
0005397609.tif 000002
【図２】
0005397609.tif 000003
【図３】
0005397609.tif 000004
【図４】
0005397609.tif 000005
【図５】
0005397609.tif 000006
【図６】
0005397609.tif 000007
【図７】
0005397609.tif 000008
【図８】
0005397609.tif 000009
【図９】
0005397609.tif 000010
【図１０】
0005397609.tif 000011