説明

磁気ディスク装置および制御方法

【課題】 キャッシュメモリのデフラグを実行して停電時に通電すべきキャッシュメモリモジュールを少なくするとともに、バッテリ容量に応じて段階的にハードディスク装置へ必要なデータを待避させることにより、バッテリ電源の消耗を抑えて保持期間を延伸させるとともに停電復旧時のキャッシュデータ再構成を迅速に行えるようにする。
【解決手段】 1以上のハードディスク装置と、上位装置からの書き込みデータおよび前記ハードディスク装置からの読み出しデータが登録される複数のキャッシュメモリモジュールと、外部電源の障害時に代わって電力を供給するバッテリ電源とを備える磁気ディスク装置において、前記キャッシュメモリモジュールのデフラグメントおよび/またはキャッシュデータの並べ替えを行ってキャッシュデータを集中化するとともに、前記バッテリ電源での駆動時にバックアップ対象データのないキャッシュメモリモジュールへの電力供給を停止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、磁気ディスク装置およびその制御方法に関し、特に、障害による外部電源遮断時にキャッシュメモリ内のデータ種別やバッテリ残量に合わせた制御を行うことによりキャッシュデータを保護しつつバッテリ電源の電力消費を低減させる技術に関する。
【背景技術】
【0002】
例えばディスクアレイ装置等の磁気ディスク装置はキャッシュメモリを備えており、データ書き込み時には書き込みデータを一旦キャッシュメモリに取り込んでから磁気ディスクへの書き込みを行い、データ読み出し時には読み出しデータをキャッシュメモリに保存しておき、次に同じデータへの読み出し要求を受けた場合の高速アクセスを可能としている。キャッシュメモリは揮発性であり、電源が遮断された場合には保持しているデータが消去されてしまうため、この種の装置ではバックアップ電源を備えて予期せぬ電源遮断時などにキャッシュメモリの内容を保持するようにしている。
【0003】
この磁気ディスク装置の構成を図6に示す。この装置は複数のハードディスク装置100−1〜100−nをRAID方式で制御しており、HDD制御回路107と、外部商用電源(図示せず)に接続された外部電源回路120と、上位回路101と、バッテリ回路102と、電源制御回路103と、複数のキャッシュメモリ105−1〜105−nとを備えている。外部電力が供給されている通常状態において、各要素には外部電源回路120から得た電力が供給される。障害により外部電源回路120からの供給電力が途絶えると、電源制御回路103はキャッシュメモリ105−1〜105−nへの電源ラインをバッテリ回路102へと切り替え、すべてのキャッシュメモリ105の内容を保持するよう構成されている。
【0004】
このため、キャッシュメモリの数が多いとバッテリ回路102の消耗が早く、長時間のキャッシュデータの保持が難しいという問題があった。換言すれば、多数のキャッシュメモリの内容を長時間保持しようとするとバッテリ回路102を大容量化する必要があった。
【0005】
また、停電時にバッテリ電源を用いてキャッシュメモリの内容をハードディスク装置に書き込み、その内容を後で復旧できるようにした装置がある(例えば、特許文献1)。この種のディスクアレイ装置の構成を図7に示す。本図に示すように、この装置ではハードディスク装置200−1〜200−nも電源制御回路203に接続されており、障害により外部電源回路220からの電力供給が途絶えたときにキャッシュメモリ内のデータをハードディスク装置200−1〜200−nに書き込む。しかしながら、RAID方式でハードディスク装置200−1〜200−nにキャッシュメモリ205−1〜205−n内のデータを書き込む構成では、すべてのハードディスク装置200−1〜200−nを駆動する必要があるためバッテリ電力の消費が激しくなるという問題がある。また、外部電源からの電力供給が再開されたときにハードディスク装置200−1〜200−nから必要なデータを読み出してキャッシュメモリの状態を停電前と同じ状態に戻す必要があるため、停電時間が短くてもキャッシュメモリの内容の復旧に時間がかかってしまうという問題もある。
【0006】
また、この特許文献1の実施例では、ライトキャッシュとリードキャッシュで書き込むメモリモジュールを分けており、停電時にはライトキャッシュデータを書き込むモジュールのみをバックアップ対象として通電する一方、リードキャッシュデータのメモリモジュールへの電源供給を遮断し、バッテリ電源の電力消費を抑えることが開示されている。また、別の文献では、停電時にキャッシュメモリのデータをバックアップディスクへ書き込み待避する際、一部のハードディスクのみを使用するようにして、非バックアップディスクの電力供給を停止させることで補助電源の電力消費を抑える提案がなされている(例えば、特許文献2)。
【0007】
【特許文献1】特開2004−78963号公報
【特許文献2】特開平11−327811号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
上記特許文献1のように、停電時にバックアップ対象データの存在するメモリモジュールだけにバックアップ電力を供給することでバックアップ電源の消耗を抑えることができる。しかしながら、バックアップの必要なデータの量は少ないが、そのデータがフラグメント化されて複数のキャッシュメモリモジュールに点在しているような場合は、これら総てのキャッシュメモリにバックアップ電力を供給する必要があり、バックアップ電源の消耗が抑えられないという問題がある。
【0009】
また、外部電源からの電力が停止したときにリードキャッシュが破棄されてしまうため、例えば停電が短時間で復旧した場合にもリードキャッシュがない状態となりその後の読み出し動作に時間がかかるという不都合も生ずる。
【0010】
本発明は、キャッシュメモリへのアクセスがないときには常にデフラグメントを実行して保持すべきキャッシュメモリを少なくするとともに、バッテリ容量に応じてハードディスク装置へ必要なデータを待避させることにより、バッテリ電源の消耗を抑えて保持期間を延伸させるとともに停電復旧時のキャッシュメモリ再構成を迅速に行えるようにした磁気ディスク装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、1以上のハードディスクと、上位装置からの書き込みデータおよび前記ハードディスク装置からの読み出しデータが登録される複数のキャッシュメモリモジュールと、外部電源の障害時に代わって電力を供給するバッテリ電源とを備える磁気ディスク装置の制御方法において、前記キャッシュメモリモジュールのデフラグおよび/または並べ替えを行ってキャッシュデータを集中化し、前記バッテリ電源での駆動時にバックアップ対象データのないキャッシュメモリモジュールへの電力供給を停止することを最も主要な特徴とする。
【0012】
前記キャッシュメモリモジュールのデフラグおよび/または並べ替えは、前記キャッシュメモリモジュールへのアクセスがないときに実行されることが有効である。
【0013】
実施例において、前記バッテリ電源での駆動時にその残量が所定の第1の値以下となった場合に、前記キャッシュメモリモジュールから読み出しキャッシュデータを古い方から削除するステップを含むことが有効である。
【0014】
また、前記バッテリ電源での駆動時にその残量が所定の第2の値以下となった場合に、前記キャッシュメモリモジュールから、読み出しキャッシュデータに加え読み出しキャッシュ制御情報を削除するステップを含むことが有効である。
【0015】
この場合、前記読み出しキャッシュ制御情報を削除するステップは、前記ハードディスクの1つに電力を供給して前記読み出しキャッシュ制御情報を書き込んでから前記キャッシュメモリモジュールから削除することが有効である。
【0016】
また、前記バッテリ電源での駆動時にその残量が所定の第3の値以下となった場合に、書き込みキャッシュデータおよび書き込みキャッシュ制御情報を前記ハードディスクに書き込むことが有効である。
【発明の効果】
【0017】
複数のキャッシュメモリモジュールを備える環境において、デフラグおよび並べ替えにより使用するキャッシュメモリモジュールの数を可能な限り減らすことにより、停電時にデータを保持させるためにバッテリ電源を投入すべきモジュールの数を減らすことができる。不要なモジュールへの電力供給を停止させることにより、停電時にバッテリ電源の消耗を可能な限り減らして電源バックアップ期間を長期化することができる。このデフラグおよび並べ替えは、キャッシュメモリへのアクセスがないときは常に行うようにすると、不意の停電にもデフラグの時間をかけることなく迅速に電力節約を図ることができる。
【0018】
また、読み出しキャッシュデータは消去されても装置動作に問題は生じないため、外部電力の停止が継続する場合にはこれを削除してキャッシュメモリモジュールの電源を切るようにすると、バッテリ電源の消耗をさらに抑えることができる。なお、この場合に読み出しキャッシュ制御情報をハードディスク装置に待避させておけば、ハードディスクから読み出しキャッシュデータが復旧可能となり、外部電力復旧時にキャッシュデータを復旧させることができる。
【0019】
さらに外部電力の停止が継続した場合、書き込みキャッシュデータおよび書き込みキャッシュ制御情報を前記ハードディスクに待避させるようにすれば、復旧後に支障が生じるのを確実に回避することができる。
【発明を実施するための最良の形態】
【0020】
本発明を実施するための最良の実施形態について、図面を参照しながら以下に詳細に説明する。
【0021】
図1は、本発明に係る磁気ディスク装置の構成を示すブロック図である。図1に示すように、磁気ディスク装置は複数のハードディスク装置10−1、10−2・・・10−nをRAID方式で制御しており、HDD制御回路7と、外部商用電源に接続された外部電源回路20と、上位回路1と、バッテリ回路2と、電源制御回路3と、複数のキャッシュメモリモジュール5−1〜5−nと、これらキャッシュメモリモジュール5および第1のハードディスク装置10−1への電力供給やキャッシュデータの待避を制御する制御部4とを備え、上位装置21に接続されている。
【0022】
上位回路1は上位装置21との通信を行い、上位装置21から送られてくる書き込みデータを制御回路4に送付し、また制御回路4から読み出しデータを受け取って上位装置21に送出する。また外部電源回路20からの電力を、電源制御回路3および2番目以降のハードディスク装置10−2〜10−nに供給する。この上位回路1は通常動作時には外部電源回路20からの電力で動作するが、外部電源回路20からの電力供給が停止した場合は電源制御回路3を介して供給されるバッテリ電源2によって内部の必要な一部の回路のみが動作し、上位装置21に外部電源が切断された旨を連絡する。
【0023】
バッテリ回路2は蓄電池などで構成されており、通常動作時には外部電源により充電され、停電時には電源制御回路3を経由して必要な要素に電力を供給する。電源制御回路3は、上位回路1からの外部電力とバッテリ回路2からのバッテリ電力との切替を行い、バッテリ回路2の充電状態を管理するとともに放電時のバッテリ残量を検出して、制御回路4や上位回路1に通知する回路である。通常動作時には、上位回路1を経由した外部電源回路20からの供給電力を、制御回路4、各キャッシュメモリモジュール5−1〜5−n、HDD制御回路7、1番目のハードディスク装置10−1などに供給し、バッテリ回路2を充電する。外部電源回路20からの供給電力が閾値以下となると制御部4に通知し、制御部4の指令により電源供給元をバッテリ回路2に切り替えて上記要素にバッテリ電力を供給する。
【0024】
ハードディスク装置10−1〜10−nは、HDD制御回路7によりRAID制御される磁気ディスクドライブであり、通常動作時には通常のディスクアレイ動作を行ってデータの読み書きを実行する。上述のように、ハードディスク装置10のうち2番目以降のハードディスク装置10−2〜10−nは上位回路1からの外部供給電力で駆動され、外部電源の障害時には電力供給が絶たれ動作を停止する。これに対し、1番目のハードディスク装置10−1は電源制御回路3から電力を受けており、停電時にもバッテリ回路2の電力で動作し得るよう構成されている。このハードディスク装置10−1にはキャッシュデータ待避領域8が確保されており、必要に応じて停電時にこのハードディスク装置10−1を起動してこの領域8に必要なキャッシュデータを書き込むことができる。
【0025】
キャッシュメモリモジュール5−1〜5−nは揮発性のメモリ回路であり、制御部4の制御下で、上位回路1から送られる書き込みキャッシュデータや書き込みキャッシュ制御情報、HDD制御回路7からの読み出しキャッシュデータや読み出しキャッシュ制御情報を保持する。ここで、書き込みキャッシュ制御情報とはキャッシングしている書き込みアドレスなどの制御情報であり、読み出しキャッシュ制御情報とは先読みキャッシュする予定のアドレスや現在キャッシングしているアドレスなどの制御情報などである。これらのキャッシュメモリモジュール5−1〜5−nは、それぞれ個別に電源制御回路3から電力供給を受けており、個別に電源オン/オフの制御が可能である。電源制御回路3は、外部電源の障害時にバッテリ回路2の電力をキャッシュメモリ5に供給する。
【0026】
制御回路4は、キャッシュメモリ5およびハードディスク装置10の動作を管理し、外部電源の障害時に電源制御回路3を制御して必要な要素への電力供給元をバッテリ回路2に切り替える。この制御回路4は電源制御回路3を介して外部電源回路20からの電力供給状況を監視しており、外部電源回路20が停止したときにはバッテリ回路2からの供給電力に切り替えるよう電源制御回路3へ指示を出し、以降にバッテリ回路2の状況や残量を監視する。また、外部電力が供給されている通常動作時は、キャッシュメモリ5の状態を監視し、キャッシュメモリ5のデフラグ、データ書き込み、読み出し、並べ替えを行い、またHDD制御部7に対し書き込み/読み出しデータの送受信を行う。外部電源回路20からの電力供給が停止すると、バッテリ回路2の残量に応じてバッテリ電力の供給先を決定し、キャッシュメモリ5のデフラグ、データ書き込み、読み出し、並べ替えを行い、必要に応じてハードディスク装置10−1にキャッシュデータを書き込み、また外部電源回路20の復旧時にキャッシュデータの復旧を行う。
【0027】
制御回路4の機能を具体的に説明する。通常動作時は、制御回路4は上位回路1から送られる書き込みデータを書き込みキャッシュデータとしてキャッシュメモリモジュール5−1〜5−nへ書き込み、必要な段階でキャッシュメモリ5から書き込みキャッシュデータを読み出してHDD制御回路7に送出し、当該書き込みキャッシュデータをキャッシュメモリ上から削除する。また上位装置21からのデータ読み出し命令に応じて、HDD制御回路7を介してハードディスク10−1〜10−nからデータを読み出し、読み出しキャッシュデータとしてキャッシュメモリ5−1〜5−nへ書き込み、必要な段階でこれらの読み出しキャッシュデータをキャッシュメモリ5から読み出して上位回路1に送出する。この動作は従来の書き込み/読み出し動作と同様であり、詳細な説明は省略するが、例えば読み出し命令を受けたときに該当するデータが既にキャッシュメモリ5にあればハードディスク装置10から読み出すことなく当該キャッシュデータを上位回路1へ送出し、またハードディスク装置10に書き込まれていない書き込みキャッシュデータのアドレスへ更なる書き込み命令を受けたときには該当する書き込みキャッシュデータを更新するようにしてデータアクセスの高速性を実現する。
【0028】
本発明において、制御回路4は常時キャッシュメモリ5におけるキャッシュデータの配置を監視し、キャッシュメモリ5へのアクセスがないとき、キャッシュデータのデフラグおよび並べ替えを行い、使用しているメモリ領域の集中化を図っている。このデフラグおよび並べ替えは、キャッシュメモリ5のアドレスの前の方から、(1)書き込みキャッシュ制御情報、(2)書き込みキャッシュデータ、(3)読み出しキャッシュ制御情報、(4)読み出しキャッシュデータの順に配置され、さらに読み出しキャッシュデータについては新しくキャッシングされたものから古いものへと順に配置される。本実施例では、外部電源回路20が停止した場合にもバッテリ電源2の電力を用いてこのデフラグおよび並べ替えが行われる。デフラグメント処理によりキャッシュ領域内でアドレスの前の方にキャッシュデータが集中化され、キャッシュ領域の後半部分に空き領域が生じることになる。
【0029】
外部電源回路20からの電力供給が停止した場合、制御回路4はキャッシュデータ保持のためキャッシュメモリ5にバッテリ電力を供給させるが、第1の段階として、キャッシュメモリ5を参照し電力供給不要なキャッシュメモリモジュールがあれば当該モジュールへの電力供給を停止するよう電源制御回路3に通知する。上記のように複数のキャッシュメモリモジュール5−1〜5−nを備える環境において、デフラグおよび並べ替えによりアドレスの前の方にデータが集中し後側に空きがある場合、データのないアドレス後側部分のメモリモジュールは通電させる必要がなく、このようなメモリモジュールへの電力供給を停止することでバッテリ回路2の消耗を軽減させ、停電時のデータ保持期間を延伸することができる。
【0030】
この第1段階の途中で外部電力が復旧すれば電源制御回路3から制御回路4へ通知され、制御部4は上位回路1を介して外部電源回路20からの電力を使用するよう電源制御回路3に指示を出す。これにより装置は停電前と何ら変わらない状態で通常動作を継続することができる。
【0031】
停電が続き、バッテリ回路2のバッテリ残量がある閾値より少なくなった場合、制御回路4は第2の段階として、キャッシュメモリ5上の読み出しキャッシュデータを古いものから削除し、不要となったキャッシュメモリモジュールがあれば電力供給を停止するよう指示を出す。上述のように、デフラグ及び並べ替えによりキャッシュメモリモジュール5−1〜5−nにおいてアドレスの後側に古い読み出しキャッシュデータが配置されるため、制御手段4が読み出しキャッシュ制御情報を参照して古い読み出しキャッシュデータを削除すると、キャッシュメモリ5の後側がさらに空くことになる。これによりキャッシュメモリ5においてこのキャッシュデータが書き込まれていたキャッシュメモリモジュールへの通電が不要となるため、この電力を遮断することによりバッテリ回路2の消耗を軽減することができる。なお、古い読み出しキャッシュデータの削除は、キャッシュメモリ5への書き込みから所定期間経たものをすべて削除するようにしてもよいし、例えば前記閾値からバッテリ残量が5%減るごとにキャッシュメモリ容量の10%分を削除するというように、段階的に行うようにしてもよい。また、古い読み出しキャッシュデータを電気的に削除してからこれが格納されていたキャッシュメモリモジュールの電源を切るのではなく、制御部4が読み出しキャッシュ制御情報を参照して、古い読み出しキャッシュデータが登録されているキャッシュメモリモジュールの電源をそのまま切るよう指示を出してもよい。電源を切ると当該キャッシュメモリモジュールが保持している読み出しキャッシュデータは消去されるため、当該キャッシュデータを削除してからキャッシュメモリモジュールの電源を切断するのと同じ結果となる。この場合の制御もバッテリ残量に応じて段階的にキャッシュメモリモジュールの電源を1つずつ切るようにしてもよい。
【0032】
この第2段階の途中で外部電力が復旧した場合、制御部4は読み出しキャッシュ制御情報を参照し、削除された読み出しキャッシュデータの復旧を指示する。すなわち、読み出しキャッシュ制御情報にはキャッシングしていた読み出しデータのアドレス等が登録されているため、これに基づき該当データをハードディスク装置10から読み出してキャッシュメモリ5に再び格納する。これによりキャッシュメモリ5の登録内容を停電前の状態に復旧することができる。
【0033】
さらに電源障害が続いてバッテリ残量が少なくなった場合、制御部4は第3段階として、読み出しキャッシュデータのすべてを削除し、不要となったキャッシュメモリモジュールの電源を切るよう電源制御回路3に指示を出す。これにより通電させるキャッシュメモリモジュールが減りバッテリ電源の消耗が抑えられる。なお、この処理は上記第2段階の行程を継続した結果のものであってもよいし、第2段階の処理とは別個に、バッテリ残量がある閾値以下となったら優先的に割り込み実行するようにしてもよい。
【0034】
さらに電源障害が続いてバッテリ残量が少なくなった場合、制御部4は第4段階として、読み出しキャッシュ制御情報をハードディスクに待避させてからキャッシュメモリ5から削除し、不要となったキャッシュメモリモジュールの通電を停止するよう電源制御回路3に指示する。すなわち、制御部4はHDD制御回路7および1番目のハードディスク装置10−1に電力を供給させて起動し、キャッシュメモリ5から読み出しキャッシュ制御情報を読み出して、ハードディスク装置10−1のキャッシュデータ待避領域8に書き込むようHDD制御部7に送出し、書き込み終了後にハードディスク装置10−1、HDD制御部7、および他に必要なデータが格納されていなければ読み出しキャッシュ制御情報が格納されていたキャッシュメモリモジュールへの電源供給を停止させる。なお、この場合は後に復旧できるように読み出しキャッシュ制御情報を待避させた旨を記憶しておく。
【0035】
この第4段階の途中で外部電源が復旧した場合、制御部4はハードディスク装置10−1に待避させた読み出しキャッシュ制御情報を読み出してキャッシュメモリ上に登録し、さらにこの読み出しキャッシュ制御情報に基づいて読み出しキャッシュデータをハードディスク装置10−1〜10−5から読み出し、キャッシュメモリ上に復元する。これにより停電前と同じ状態を復元することができる。
【0036】
なお、他の実施例では読み出しキャッシュ制御情報をハードディスク装置10−1に待避させずにキャッシュメモリ上から削除するようにしてもよい。実際、読み出しキャッシュデータはデータ読み出し処理を高速化させるためのものであり、なければないでハードディスクから読み出せばよいため、復旧できなくてもシステムエラー等が生じるものではない。読み出しキャッシュ制御情報をそのまま削除する構成とすると、ハードディスク装置に待避させるための電力が不要となり、バッテリ電源の消耗を抑えることができる。
【0037】
さらに電源障害が続いてバッテリ残量が少なくなった場合、制御部4は第5段階として、キャッシュメモリ上の書き込みキャッシュデータおよび書き込みキャッシュ制御情報をハードディスク装置10−1に待避させ、その旨を記憶する。すなわち、HDD制御回路7およびハードディスク装置10−1に電力を供給させて起動し、キャッシュメモリ5から書き込みキャッシュデータおよび書き込みキャッシュ制御情報を読み出し、ハードディスク装置10−1のキャッシュデータ待避領域8に書き込むようHDD制御部7に送出し、書き込み終了後にハードディスク装置10−1、HDD制御部7への電源供給を停止させる。上記の読み出しキャッシュデータとは異なり、書き込みキャッシュデータおよび制御情報はデータ書き込み途中のキャッシュデータであり消去されると不整合が生じるため、これらについてはすべてハードディスクに待避させるようにしている。この場合にもハードディスク装置10−1のみを駆動してキャッシュデータ待避領域8に待避させるようにしているため、すべてのハードディスク装置10−1〜10−nを起動して書き込むより消費電力が少なくてすむ。したがって、バッテリ電源によるバックアップ時間を延伸してデータ保持性能を向上させることができる。
【0038】
この後に外部電源が復旧した場合、制御部4はハードディスク装置10−1のキャッシュデータ待避領域8に待避させた書き込みキャッシュ制御情報、書き込みキャッシュデータ、読み出しキャッシュ制御情報を読み出してキャッシュメモリ上に登録する。また、上記第4段階と同様に読み出しキャッシュ制御情報に基づいて読み出しキャッシュデータをハードディスク装置10−1〜10−5から読み出し、キャッシュメモリ上に復元する。これにより停電前と同じ状態を復元することができる。なお、第5段階の途中で外部電源が復旧した場合は、書き込みキャッシュデータおよび制御情報はキャッシュメモリ5上に残っている状態であるため、読み出しキャッシュ制御情報のみを読み出して読み出しキャッシュデータを復元すれば足りる。データ復旧後は、ハードディスク装置10−1のキャッシュデータ待避領域8の内容を消去する。
【実施例1】
【0039】
図2〜図5を用いて、この磁気ディスク装置の具体的な動作を説明する。図2はキャッシュメモリ5の登録内容を示す図であり、図3〜図5は磁気ディスク装置の動作を説明するフローチャートである。前提として、外部電源から電力供給を受けている通常動作時、電源制御回路3は制御回路4、キャッシュメモリ5、HDD制御回路7、1番目のハードディスク装置10−1に対し、上位回路1を経由した外部電源回路20からの電力を供給している。また、外部電力でバッテリ回路2を充電し、充電状態や外部電源回路20の状態を制御回路4に通知している。2番目以降のハードディスク装置10−2〜10−nは上位回路1からの電力供給を受け動作している。
【0040】
制御回路4は上位回路1から伝達されるリード/ライト命令に対し通常のキャッシュ動作を行うとともに、キャッシュメモリ5へのアクセスがないときには、キャッシュメモリ5のデフラグメントおよび並べ替えを行う。図2(a)に示すように、通常のキャッシュ動作においてキャッシュデータはキャッシュメモリ5の全域にフラグメント(断片)化されて格納されており、これをデフラグおよび並べ替えすることによって、図2(b)に示す状態となる。本実施例では5つのキャッシュメモリモジュール5−1〜5−5を備えており、アドレスの前の方から、書き込みキャッシュ制御情報、書き込みキャッシュデータ、読み出しキャッシュ制御情報、読み出しキャッシュデータの順に配置され、さらに読み出しキャッシュデータは新しく登録されたものが前側に配置されている。
【0041】
図3に示すように、制御回路4は電源制御回路3からの信号を受け、外部電源回路20の状態を常時監視している(ステップS1)。外部電源20が停止すると(ステップS2)、電源制御回路3は制御回路4に外部電源回路20が停止したことを連絡し、電力供給元をバッテリ回路2に切り替え、上位回路1、制御回路4、キャッシュメモリ5−1〜5−nに供給する。また、制御回路4は上位回路1を介して外部電源回路20が停止したことを上位装置21に連絡し(ステップS3)、その後、上位回路1への電力供給を停止させる。この状態でハードディスク装置10−1〜10−n、HDD制御装置7への電力供給は停止している。なお、このときも制御回路4はキャッシュメモリ5のデフラグおよび並べ替えを行い、データを最小数のキャッシュメモリモジュール上に集中させる。
【0042】
デフラグ終了後、制御部4はキャッシュメモリ5を参照して、キャッシュデータがなく電力供給が不要となったキャッシュメモリモジュールがないかを確認し(ステップS4)、ある場合に当該モジュールへの電力供給を停止させ(ステップS5)、その旨を不揮発記憶する。図2(b)に示す例では、デフラグおよび並べ替えによりキャッシュメモリモジュール5−5が空となっており、このモジュール5−5の電力供給が切断される。これにより、キャッシュメモリモジュール5−1〜5−5すべての電力供給を継続するよりもバッテリ電力を節約でき、データ保持期間を長期化することができる。
【0043】
このとき外部電源回路20が復旧すると(ステップS6)、電源制御回路3はバッテリ回路2から外部電源回路20からの供給電力に切り替え、上位回路1、制御回路4、キャッシュメモリ5、HDD制御回路7、ハードディスク装置10−1などに電力を供給する。またハードディスク装置10−2〜10−nも上位回路1から電力を得て復旧する。このときキャッシュメモリ5の内容は停電前の状態を保っているため、磁気ディスク装置は即時に停電前の状態に復旧することができる。停電が復旧しない場合は工程Aへと進む。
【0044】
図4に示すように、停電時に制御回路4は電源制御回路3から通知されるバッテリ残量を監視し、停電が復旧せずバッテリ残量がある閾値以下となったら(ステップS11)、キャッシュメモリ5を参照して古い読み出しキャッシュデータを削除し、不要となったキャッシュメモリモジュールへの電力供給を停止させる(ステップS12〜S13)。図2(c)に示すように、読み出しキャッシュデータはアドレスの前側から新しい順に配置されており、後側の古い読み出しキャッシュデータを削除するとキャッシュメモリモジュール5−4が空くため、このモジュール5−4への電力供給を停止させ、その旨を不揮発記憶する。外部電力が復旧しない場合は読み出しキャッシュデータがすべて無くなるまでこの工程を段階的に繰り返す(ステップS13)。この状態を図2(d)に示す。読み出しキャッシュデータがすべて無くなったら工程Bへと進む。この段階で外部電源回路20が復旧すると、電源制御回路3は電力供給元を外部電源回路20に切り替え、制御回路4は、必要に応じてキャッシュメモリ5に残っている読み出しキャッシュ制御情報を基に読み出しキャッシュデータをハードディスク装置10−1〜10−nから読み出してキャッシュメモリ5に登録する(ステップS14)。この場合、最後にアクセスを受けてから長時間経ったキャッシュデータはもう再アクセスが見込まれないものとして、復旧しないようにしてもよい。このようにしてキャッシュデータを復旧したら通常動作へ復帰する(C:図3ステップS1へ)。
【0045】
さらに図5に示すように、外部電力が復旧せず(ステップS21)、バッテリ残量がさらに少なくなったら(ステップS22)、制御部4はHDD制御回路7およびハードディスク装置10−1に電源を投入し、読み出しキャッシュ制御情報をハードディスク装置10−1へ待避させてからキャッシュメモリ5上から削除し、不要となったメモリモジュールへの電源供給を停止させ、その旨を不揮発記憶する(ステップS23)。この状態が図2(e)である。この後に外部電力が復旧した場合(ステップS24)、待避させた読み出し制御情報をハードディスク装置10−1から読み出し(ステップS27)、これに基づいて読み出しキャッシュ情報を復旧させる(D:図4ステップS15へ)。
【0046】
また、読み出しキャッシュ制御情報をハードディスクに待避させずに削除する実施例の場合、外部電力が復旧しても読み出しキャッシュデータは復旧できなくなるが、書き込みキャッシュデータおよび書き込みキャッシュ制御情報はキャッシュメモリ5上に置かれているので、特に問題なく動作を再開することができる。
【0047】
さらに停電が継続し(ステップS24)、バッテリ残量がさらに少なくなると(ステップS25)、制御回路4は電源制御回路3を介してHDD制御回路7およびハードディスク装置10−1の電源を投入し、書き込みキャッシュデータおよび書き込みキャッシュ制御情報をハードディスク装置10−1のキャッシュデータ待避領域8に待避させ、その旨を不揮発記憶する(ステップS26)。これにより、バッテリ残量がなくなってすべてのキャッシュメモリモジュールの電源が切れた場合でも、電源復旧時に書き込みキャッシュデータおよび制御情報をハードディスク装置10−1から読み出してキャッシュメモリ5上に置くことにより、特に問題なく動作を再開することができる。
【0048】
このように、フラグメント化されたキャッシュメモリ内のキャッシュデータや制御情報をデフラグメントおよび並べ替えにより集中させ、必要最小限のメモリモジュールへのみ電源を供給することでバッテリ回路によるデータ保持時間の長期化を図り、また外部電力障害の継続時間(すなわちバッテリ残量)に応じて、極力キャッシュメモリ内のデータを残すようにすることで、外部電力復旧時のキャッシュメモリ内容の復旧時間を短縮することができる。
【0049】
以上に本発明の一実施例を詳細に説明したが、本発明は上記実施例に限られるものではなく、他の様々な実施例として実現することができる。例えば図2ではメモリモジュールを5つ備える装置について説明しているが、キャッシュメモリモジュールの数は4以下でも6以上でもよい。また、ハードディスク装置の数も1以上であれば任意に構成することができる。また、実施例のデフラグメント処理ではキャッシュメモリのアドレスの前側にキャッシュデータを集中化させているが、これは前側である必要はなく、制御部4が把握する限りにおいて任意のモジュールに集中させるようにしてもよい。
【産業上の利用可能性】
【0050】
本発明に係る磁気ディスク装置およびその制御方法は、外部電力が障害により停止した場合にキャッシュメモリの内容保持の長期化および復旧時間の短縮を実現するものであり、大容量記憶装置やインターネットサーバなどのコンピュータ産業に好適に利用することができる。
【図面の簡単な説明】
【0051】
【図1】本発明の実施形態に係る磁気ディスク装置の構成を示す図である。
【図2】キャッシュメモリの内容イメージを示す図である。
【図3】磁気ディスク装置の動作を説明するフローチャートである。
【図4】磁気ディスク装置の動作を説明するフローチャートである。
【図5】磁気ディスク装置の動作を説明するフローチャートである。
【図6】従来の磁気ディスク装置の構成を示す図である。
【図7】従来の磁気ディスク装置の構成を示す図である。
【符号の説明】
【0052】
1 上位回路
2 バッテリ回路
3 電源制御回路
4 制御回路
5−1〜5−n キャッシュメモリ
7 HDD制御回路
10−1〜10−n ハードディスク装置
20 外部電源回路
21 上位装置

【特許請求の範囲】
【請求項1】
1以上のハードディスク装置と、上位装置からの書き込みデータおよび前記ハードディスク装置からの読み出しデータが登録される複数のキャッシュメモリモジュールと、外部電源の障害時に代わって電力を供給するバッテリ電源とを備える磁気ディスク装置において、前記キャッシュメモリモジュールのデフラグメントおよび/またはキャッシュデータの並べ替えを行ってキャッシュデータを集中化するとともに、前記バッテリ電源での駆動時にバックアップ対象データのないキャッシュメモリモジュールへの電力供給を停止することを特徴とする磁気ディスク装置。
【請求項2】
請求項1に記載の磁気ディスク装置において、前記バッテリ電源での駆動時に前記バッテリ電源の残量が所定以下となった場合に、前記ハードディスクの1台を駆動してバックアップ対象データを書き込むことを特徴とする磁気ディスク装置。
【請求項3】
請求項2に記載の磁気ディスク装置において、前記バックアップ対象データは、少なくとも書き込みキャッシュデータと書き込みキャッシュ制御情報を含み、好ましくはさらに読み出しキャッシュ制御情報を含むことを特徴とする磁気ディスク装置。
【請求項4】
1以上のハードディスクと、上位装置からの書き込みデータおよび前記ハードディスク装置からの読み出しデータが登録される複数のキャッシュメモリモジュールと、外部電源の障害時に代わって電力を供給するバッテリ電源とを備える磁気ディスク装置の制御方法であって、前記キャッシュメモリモジュールのデフラグおよび/または並べ替えを行ってキャッシュデータを集中化し、前記バッテリ電源での駆動時にバックアップ対象データのないキャッシュメモリモジュールへの電力供給を停止することを特徴とする磁気ディスク装置の制御方法。
【請求項5】
請求項4に記載の方法において、前記キャッシュメモリモジュールのデフラグおよび/または並べ替えは、前記キャッシュメモリモジュールへのアクセスがないときに実行されることを特徴とする磁気ディスク装置の制御方法。
【請求項6】
請求項4または5に記載の方法において、前記バッテリ電源での駆動時にその残量が所定の第1の値以下となった場合に、前記キャッシュメモリモジュールから読み出しキャッシュデータを削除するステップを含むことを特徴とする磁気ディスク装置の制御方法。
【請求項7】
請求項6に記載の方法において、前記読み出しキャッシュデータの削除は、先にキャッシングされたものから削除されることを特徴とする磁気ディスク装置の生業方法。
【請求項8】
請求項4乃至7のいずれかに記載の方法において、前記バッテリ電源での駆動時にその残量が所定の第2の値以下となった場合に、前記キャッシュメモリモジュールから、読み出しキャッシュデータに加え読み出しキャッシュ制御情報を削除するステップを含むことを特徴とする磁気ディスク装置の制御方法。
【請求項9】
請求項8に記載の方法において、前記読み出しキャッシュ制御情報を削除するステップは、前記ハードディスクの1つに電力を供給して前記読み出しキャッシュ制御情報を書き込んでから削除することを特徴とする磁気ディスク装置の制御方法。
【請求項10】
請求項4乃至9に記載の方法において、前記バッテリ電源での駆動時にその残量が所定の第3の値以下となった場合に、書き込みキャッシュデータおよび書き込みキャッシュ制御情報を前記ハードディスクに書き込むことを特徴とする磁気ディスク装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2006−172355(P2006−172355A)
【公開日】平成18年6月29日(2006.6.29)
【国際特許分類】
【出願番号】特願2004−367249(P2004−367249)
【出願日】平成16年12月20日(2004.12.20)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】