JP5454177B2 - ディスクアレイ装置及びディスクアレイ装置制御方法 - Google Patents

ディスクアレイ装置及びディスクアレイ装置制御方法 Download PDF

Info

Publication number
JP5454177B2
JP5454177B2 JP2010020543A JP2010020543A JP5454177B2 JP 5454177 B2 JP5454177 B2 JP 5454177B2 JP 2010020543 A JP2010020543 A JP 2010020543A JP 2010020543 A JP2010020543 A JP 2010020543A JP 5454177 B2 JP5454177 B2 JP 5454177B2
Authority
JP
Japan
Prior art keywords
cache
memory
data
dirty data
disk array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010020543A
Other languages
English (en)
Other versions
JP2011159124A (ja
Inventor
健太郎 湯浅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010020543A priority Critical patent/JP5454177B2/ja
Priority to US13/013,729 priority patent/US9286215B2/en
Publication of JP2011159124A publication Critical patent/JP2011159124A/ja
Application granted granted Critical
Publication of JP5454177B2 publication Critical patent/JP5454177B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • G06F2212/2228Battery-backed RAM
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、ディスクアレイ装置及びディスクアレイ装置制御方法に関する。
ディスクアレイ装置は、高速デバイスであるキャッシュ(ディスクキャッシュメモリ)を内蔵することにより、データへのアクセス時間を短くしている。例えば、ディスクアレイ装置は、ホストコンピュータからデータの書き込み要求を受信すると、当該データを一旦キャッシュに保存し、ホストコンピュータへ処理完了を通知する。換言すれば、ディスクアレイ装置は、データをディスク(磁気ディスク)ではなくキャッシュに書き込む処理(ライトバック状態での書き込み処理)により、ホストコンピュータに対してデータ処理時間を短く見せている。キャッシュに書き込まれ、ディスクに書き込まれていないデータは「ダーティデータ」と呼ばれる。ダーティデータは、ホストコンピュータへ処理完了を通知した後に、ディスクへ書き込まれる。
なお、ダーティデータ処理方法、ダーティデータ処理装置及びダーティデータ処理プログラムにおいて、記憶装置が有するバッテリ残容量を監視しながら、前記バッテリ残容量に伴って前記記憶装置が有するキャッシュメモリ内のダーティデータの許容量を制御し、前記ダーティデータの許容量が閾値以下のときにはライトスルー運用を、前記ダーティデータの許容量が閾値より大きいときにはライトバック運用を行なうことが、提案されている。
また、制御ルールがフレキシブルに拡張する機能を有する電池管理システムチップにおいて、中央処理装置(CPU)、ROM及びROM_RAMデコーダ、SRAMが内蔵された電池管理チップに、電池管理のアプリケーションプログラムが格納された不揮発性メモリを外付けし、本体の電源投入又はリセット時に不揮発性メモリの内容をSRAMに書き込み、本体がシャットダウンする前に、SRAMの内容を不揮発性メモリに戻され再格納することが、提案されている。
特開2006−313407号公報 特開2008−204935号公報
キャッシュに書き込まれたダーティデータは、その時点では、まだ不揮発性記憶装置であるディスクに書き込まれていない。ディスクへ書き込み処理を行う前に、停電などが発生してキャッシュへの電源供給が停止すると、ダーティデータは、消失してしまう。このため、キャッシュに記憶されたダーティデータを保護する必要がある。
そこで、ダーティデータの保護のため、ダーティデータのバックアップ処理が実行される。例えば、停電発生時にはバックアップ電源によりキャッシュに電力を供給して、数十時間データを格納する方法が採用される。又は、ディスクアレイ装置を一部だけ稼動させて、ダーティデータを不揮発デバイスへ強制的に書き込む方法が採用される。
しかし、ダーティデータ量の許容量は、バックアップ電源によりその時点で実際に保護できるダーティデータ量である。バックアップ電源の電力供給能力は、例えば経年劣化や充電状態等に起因して徐々に低下する。一方、許容量の閾値は固定されている。このため、バックアップ電源の電力供給能力が閾値以下になると、ディスクアレイ装置は、それまでのライトバック状態からライトスルー状態へ移行しなければならない。
この移行により、ディスクアレイ装置は、ホストコンピュータからデータの書き込み要求を受信すると、当該データをディスクに書き込んだ後で無ければ、ホストコンピュータへ処理完了を通知できず、データ処理時間が長くなる。また、ディスクアレイ装置は、バックアップ電源の電力供給能力が閾値より大きくなるまではライトスルー状態で動作しなければならず、データ処理時間が長くなる期間が長時間に及んでしまう。
本発明は、バックアップ電源の電力供給能力に応じて、キャッシュメモリにおけるダーティデータの書き込みの禁止領域を動的に割り当てるディスクアレイ装置を提供することを目的とする。
開示されるディスクアレイ装置の制御方法は、ディスクアレイと、キャッシュメモリと、停電時にキャッシュメモリに電力を供給するバッテリと、キャッシュメモリにデータを格納するキャッシュコントローラとを含むディスクアレイ装置の制御方法である。前記ディスクアレイ装置の制御方法は、取得ステップと、設定ステップと、格納ステップとを含む。取得ステップにおいて、キャッシュコントローラが、予め定められた更新周期で、バッテリの電力供給能力を示す電力供給能力情報を取得する。設定ステップにおいて、キャッシュコントローラが、電力供給能力情報の取得の都度に、電力供給能力情報に応じて、前記キャッシュメモリにおける、ディスクアレイへ書き込むべきライトデータであってディスクアレイに書き込まれていないデータであるダーティデータの書き込みが許容された許容領域のサイズと、ダーティデータの書き込みが禁止された禁止領域のサイズとを定め、複数のメモリバンクの各々について、禁止領域又は許容領域であることを示す識別情報を、許容領域の数が電力供給能力情報に応じて定まる数となるように、キャッシュテーブルに設定する。格納ステップにおいて、キャッシュコントローラが、キャッシュテーブルに基づいて、禁止領域とされたメモリバンクにディスクアレイから読み出したリードデータのみを格納し、許容領域とされたメモリバンクにダーティデータ又はリードデータを格納する。
開示されるディスクアレイ装置の制御方法によれば、経年劣化や充電状態等に起因するバックアップ電源の電力供給能力に応じて、キャッシュメモリにおいて、メモリバンクを単位としてダーティデータの書き込みを禁止する禁止領域とダーティデータの書き込みを許容する許容領域とを設定することにより、動的にダーティデータ禁止領域を割り当てることができ、これにより、ディスクアレイ装置がライトスルー状態で動作することにより書き込み速度性能が低下する期間を短縮することができる。
ディスクアレイ装置の構成を示す図である。 キャッシュコントローラの構成を示す図である。 キャッシュテーブル及びバッテリテーブルの一例を示す図である。 キャッシュ制御処理フローを示す図である。 キャッシュ制御処理フローを示す図である。 キャッシュ制御処理フローを示す図である。 キャッシュ制御処理フローを示す図である。 キャッシュメモリ上のローカル領域へのデータ格納を説明する図である。 キャッシュメモリ上のローカル領域へのデータ格納を説明する図である。
(第1の実施態様)
図1は、ディスクアレイ装置の構成を示す図である。
ディスクアレイ装置1は、2個のホストアダプタ11、2個のキャッシュコントローラ12、2個のディスクアダプタ14、2個のスイッチ15、2個のディスクアレイ16、キャッシュ間信号線17、2個の監視コントローラ18、複数のバッテリユニット19を含む。2個のキャッシュコントローラ12は、各々、一時的にデータを格納するキャッシュメモリ13を備える。
ディスクアレイ装置1は、2個のホストコンピュータ2と接続される。ディスクアレイ装置1は、ホストコンピュータ2からの書き込み要求に応じて、ホストコンピュータ2からデータを受信して、ディスクアレイ16に書き込む。また、ディスクアレイ装置1は、ホストコンピュータ2からの読み出し要求に応じて、ディスクアレイ16からデータを読み出して、ホストコンピュータ2へ送信する。
キャッシュコントローラ12は、ホストコンピュータ2に対応して設けられる。キャッシュコントローラ12に対応して、ホストアダプタ11、キャッシュメモリ13、ディスクアダプタ14、スイッチ15、ディスクアレイ16、監視コントローラ18が設けられる。
従って、このコンピュータシステム又はディスクアレイ装置1は、データの信頼性の向上のために、データの二重化、換言すれば、ミラーリングを行う。2個のホストコンピュータ2を区別する場合には、例えばホストコンピュータA、B等と表す。ホストコンピュータAに対応するキャッシュコントローラ12をキャッシュコントローラAと表す。ホストアダプタ11、キャッシュメモリ13、ディスクアダプタ14、スイッチ15、バッテリユニット19についても同様である。
ホストアダプタ11は、ホストコンピュータ2とキャッシュコントローラ12との間に接続され、ホストコンピュータ2とディスクアレイ装置1との間のデータ転送を制御する。例えば、ホストアダプタ11は、ホストコンピュータ2から書き込み要求とライトデータとを受信して、キャッシュコントローラ12に書込み要求を転送する。「ライトデータ」は、ディスクアレイ16に書き込むべきデータである。また、ホストアダプタ11は、ホストコンピュータ2から読み出し要求を受信して、キャッシュコントローラ12に読み出し要求を転送する。この後、ホストアダプタ11は、キャッシュコントローラ12からリードデータを受信して、読み出し要求に対する応答として、ホストコンピュータ2に転送する。「リードデータ」は、ディスクアレイ16から読み出されたデータである。
キャッシュコントローラ12は、ホストコンピュータ2から受信した書き込み要求に従って、キャッシュメモリ13又はディスクアレイ16へのデータの書き込みを制御する。また、キャッシュコントローラ12は、ホストコンピュータ2から受信した読み出し要求に従って、キャッシュメモリ13又はディスクアレイ16からのデータの読み出しを制御する。キャッシュコントローラAとキャッシュコントローラBとは、キャッシュ間信号線17により相互に接続される。
キャッシュメモリ13は、ディスクアレイ16よりも十分に高速な揮発性メモリ、例えばDRAM(Dynamic Random Access Memory)のような半導体メモリである。キャッシュメモリ13は、キャッシュコントローラ12に接続される。キャッシュメモリ13には、ホストコンピュータ2から転送されたライトデータ、又は、ディスクアレイ16から読み出されたリードデータが、一時的に格納される。ここで、キャッシュメモリ13に書き込まれたライトデータであって、未だディスクアレイ16へ書き込まれていないライトデータを、「ダーティデータ」と言う。キャッシュメモリ13は、ミラー領域131とローカル領域132とを含む。ミラー領域131とローカル領域132については図2を参照して後述する。
一方、ディスクアレイ16は、高速なキャッシュメモリ13よりも低速な不揮発性メモリであり、複数の磁気ディスク装置を含む。ディスクアレイ16は、スイッチ15及びディスクアダプタ14を介して、キャッシュコントローラ12に接続される。
キャッシュコントローラ12は、「ライトバック状態」で動作中に書き込み要求とライトデータとを受信した場合、ライトデータをキャッシュメモリ13に書き込み、その後、書込み要求の転送元であるホストアダプタ11に書き込み完了を通知する。この通知を受信したホストアダプタ11は、書込み要求の要求元であるホストコンピュータ2に書き込みの完了を通知する。この後、キャッシュメモリ13に格納されたライトデータ、換言すれば、ダーティデータは、キャッシュコントローラ12により、ディスクアダプタ14を介して、ディスクアレイ16に書き込まれる。
キャッシュコントローラ12は、「ライトスルー状態」で動作中に書き込み要求とライトデータとを受信した場合、ライトデータを一旦キャッシュメモリ13に書き込み、その後、キャッシュメモリ13に書き込んだライトデータを読み出してディスクアレイ16に書き込み、更にその後、書込み要求の転送元であるホストアダプタ11に書き込み完了を通知する。この通知を受信したホストアダプタ11は、書込み要求の要求元であるホストコンピュータ2に書き込みの完了を通知する。
キャッシュコントローラ12は、状態情報を生成して保持する。状態情報は、ディスクアレイ装置1の動作モードを示し、具体的には、ライトデータの書込み処理の状態が「ライトバック状態」であるか「ライトスルー状態」であるかを示す。例えば、通常バッテリユニット19が充電されているので、状態情報は、例えばディスクアレイ装置1の初期化処理において「ライトバック状態」とされる。状態情報は、後述するダーティデータ制限フラグとは別に設けられる。
キャッシュコントローラA及びBは、各々、独立して状態情報を生成する。例えば、キャッシュコントローラAは、状態情報を「ライトスルー状態」から「ライトバック状態」に変更した場合、キャッシュ間信号線17を介して、状態情報の変更をキャッシュコントローラBに通知する。また、キャッシュコントローラBは、状態情報を「ライトスルー状態」から「ライトバック状態」に変更した場合、キャッシュ間信号線17を介して、状態情報の変更をキャッシュコントローラAに通知する。これにより、キャッシュコントローラA及びBにおける状態情報が一致させられる。
キャッシュコントローラ12は、読み出し要求を受信した場合、要求されたデータがキャッシュメモリ13に存在するかキャッシュメモリ13を検索する。具体的には、キャッシュコントローラ12は、キャッシュメモリ13にどのようなデータが記憶されているかを管理するリストを検索する。要求されたデータ(リードデータ)がキャッシュメモリ13に存在する場合、キャッシュコントローラ12は、要求されたリードデータをキャッシュメモリ13から読み出して、ホストアダプタ11に送信する。ホストアダプタ11は、受信したリードデータをホストコンピュータ2に送信する。
要求されたデータがキャッシュメモリ13に存在しない場合、キャッシュコントローラ12は、要求されたデータをディスクアレイ16から直接読み出して、ホストアダプタ11に送信する。ホストアダプタ11は、受信したデータをホストコンピュータ2に送信する。なお、同一データを再度読み出す可能性があるので、ディスクアレイ16から読み出したデータを一旦キャッシュメモリ13に格納してから、ホストコンピュータ2に送信するようにしても良い。
ディスクアダプタ14は、キャッシュコントローラ12とスイッチ15との間に設けられ、キャッシュコントローラ12とスイッチ15との間のデータ転送を制御する。例えば、ディスクアダプタ14は、キャッシュコントローラ12から書き込み命令とダーティデータ又はライトデータとを受信して、スイッチ15に転送する。書き込み命令は、キャッシュコントローラ12により書き込み要求に基づいて生成される。また、ディスクアダプタ14は、キャッシュコントローラ12から読み出し命令を受信して、スイッチ15に転送する。この後、ディスクアダプタ14は、スイッチ15からリードデータを受信して、読み出し命令に対する応答として、キャッシュコントローラ12に転送する。読み出し命令は、キャッシュコントローラ12により読み出し要求に基づいて生成される。
スイッチ15は、書き込み命令を受信した場合、ディスクアレイ16の複数のディスク装置の中の書き込み対象のディスク装置に、書き込み命令と受信したダーティデータ又はライトデータとを転送する。また、スイッチ15は、読み出し命令を受信した場合、ディスクアレイ16の複数のディスク装置の中の読み出し対象のディスク装置に読み出し命令を転送し、読出し対象のディスク装置から読み出されたデータ(リードデータ)を、ディスクアダプタ14を介して、キャッシュコントローラ12に転送する。
前述したように、キャッシュコントローラAとキャッシュコントローラBとは相互に接続され、例えば、キャッシュメモリAの後述するローカル領域132に格納されたデータが、キャッシュメモリBにおける後述するミラー領域131へコピーされる。換言すれば、キャッシュメモリAのローカル領域132に格納されたデータとキャッシュメモリBのミラー領域131に格納されたデータとがミラーリングされる。
例えば、キャッシュコントローラAは、ダーティデータについてホストアダプタAに書き込み完了を通知した後、当該ダーティデータのコピーをキャッシュコントローラBに送信する。キャッシュコントローラBは、受信したダーティデータのコピーをキャッシュメモリBのミラー領域に格納する。また、キャッシュコントローラAは、リードデータについてキャッシュメモリAに格納した後、当該リードデータのコピーをキャッシュコントローラBに送信する。キャッシュコントローラBは、受信したリードのコピーをキャッシュメモリBのミラー領域に格納する。キャッシュコントローラBからキャッシュコントローラAに対しても、同様にデータ転送が行われる。
なお、ディスクアレイ16においても、データが二重化されるようにしても良い。このために、ディスクアダプタ14は、2個のスイッチ15を介して、2個のディスクアレイ16と接続される。この場合、例えば、ディスクアダプタAは、キャッシュコントローラAから書き込み命令とダーティデータ又はライトデータとを受信して、スイッチA及びスイッチBの双方に転送する。これにより、当該ダーティデータ又はライトデータは、ディスクアレイA及びディスクアレイBの双方に書き込まれる。従って、例えば、キャッシュメモリAのライトデータがディスクアレイA及びBに格納され、かつ、キャッシュメモリAのライトデータのコピーであるキャッシュメモリBのデータがディスクアレイA及びBに格納される。従って、データは4重化される。
2個の監視コントローラ18は、各々、複数のバッテリユニット19の電力供給能力を監視する。監視コントローラ18は、例えば、キャッシュコントローラ12の要求に応じて、監視したバッテリユニット19の電力供給能力を通知する。また、監視コントローラ18は、キャッシュコントローラ12からの指示に基づいて、バッテリユニット19からキャッシュメモリ13へのバックアップ電源、換言すれば、バッテリからの電力の供給を制御する。
バッテリユニット19は、例えば鉛蓄電池等のバッテリであり、ディスクアレイ装置1に複数設けられる。バッテリユニット19は、通常時には主電源により充電され、主電源が停電した場合には、例えば2個のキャッシュコントローラ12の双方及び2個のキャッシュメモリ13の双方にバックアップ電源から電力を供給する。ホストアダプタ11、ディスクアダプタ14、スイッチ15、ディスクアレイ16、監視コントローラ18のバックアップ電源は、別に設けられる。
なお、バッテリユニット19は、1個であってもよく、ディスクアレイ装置1の内部に直接設けられなくても良い。また、バッテリユニット19が、主電源が停電した場合において、キャッシュメモリ13以外に、ホストアダプタ11、キャッシュコントローラ12、ディスクアダプタ14、スイッチ15、ディスクアレイ16、監視コントローラ18に、バックアップ電源から電力を供給するようにしても良い。
図2は、図1のディスクアレイ装置に含まれるキャッシュメモリ及びキャッシュコントローラの構成を示す図である。なお、図2は、キャッシュメモリA及びキャッシュコントローラAについて示すが、キャッシュメモリBはキャッシュメモリAと同様の構成を備え、キャッシュコントローラBはキャッシュコントローラAと同様の構成を備える。
キャッシュメモリ13は、ミラー領域131と、ローカル領域132とを含む。ミラー領域131には、ローカル領域132に格納されたデータのコピー、換言すればミラーリングされたデータ、が格納される。ローカル領域132には、ダーティデータ及びリードデータが格納される。例えば、キャッシュメモリAのローカル領域Aに格納されたデータが、キャッシュメモリBのミラー領域にコピーされる。キャッシュメモリAのミラー領域Aに格納されたデータは、キャッシュメモリBのローカル領域に格納されたデータのコピーである。
キャッシュコントローラ12Aは、メモリコントローラ121、キャッシュテーブル122、テーブル管理部123、バッテリテーブル124を含む。
メモリコントローラ121は、キャッシュコントローラ12の全体を制御する。具体的には、メモリコントローラ121は、キャッシュコントローラ12が実行する処理として前述した処理、換言すれば、ホストアダプタ11との通信、キャッシュメモリ13の制御、状態情報の生成と保持、ディスクアダプタ14との通信、他方のキャッシュコントローラ12との間の通信を実行する。
キャッシュメモリ13の制御において、メモリコントローラ121は、キャッシュメモリ13Aをミラー領域131とローカル領域132とに2分割して管理する。換言すれば、ミラー領域131のサイズとローカル領域132のサイズは等しい。これは、前述したように、ローカル領域132の全てのデータを、ミラー領域131にコピーできるようにするためである。更に、メモリコントローラ121は、ローカル領域132を、複数のメモリバンク133に細かく分割して管理する。なお、図2においては、図示の便宜上、1個のメモリバンクのみについて、斜線を施し符号133を付す。
例えば、キャッシュメモリ13のメモリ容量が32GB(ギガバイト)である場合、ミラー領域131及びローカル領域132は、各々、16GBとされる。また、16GBのローカル領域132は、例えば32個のメモリバンク133に分割される。この場合、1個のメモリバンク133のサイズは、512MB(メガバイト)である。
メモリコントローラ121は、メモリバンク133毎にメモリバンクNo(メモリバンク番号)を割り当てる。メモリバンクNoは、メモリバンク133毎に一意に定められた識別番号である。例えば、図3(B)に示すように、32個のメモリバンク133に対して、#1〜#32のメモリバンクNoが付与される。
ミラー領域131は、ローカル領域132とは異なり、メモリバンクに細分化されない。ミラー領域131においては、ローカル領域132に格納されたデータのコピーが、例えば、先頭から順に格納される。
メモリコントローラ121は、メモリバンクNoを用いてキャッシュメモリ13を制御する。このために、メモリコントローラ121は、キャッシュテーブル122を参照する。キャッシュテーブル122は、ディスクアレイ装置1の起動時にメモリコントローラ121により用意され、テーブル管理部123により更新される。なお、テーブル管理部123が、メモリコントローラ121からメモリバンクNoの通知を受けて、キャッシュテーブル122を用意するようにしても良い。また、メモリコントローラ121が、テーブル管理部123からバッテリの電力供給能力を示す電力供給能力情報の通知を受けて、キャッシュテーブル122を更新するようにしても良い。
テーブル管理部123は、バッテリテーブル124を参照して、キャッシュテーブル122を更新する。バッテリテーブル124は、ディスクアレイ装置1の起動時にテーブル管理部23により用意され、監視コントローラ18により更新される。バッテリユニット19の数は、テーブル管理部123に予め設定される。なお、テーブル管理部123が、監視コントローラ18から電力供給能力情報の通知を受けて、バッテリテーブル124を更新するようにしても良い。
図3(A)は、バッテリテーブル124の一例を示す。
バッテリテーブル124は、バッテリユニット19毎に、電力供給能力情報を含む。電力供給能力情報は、例えば、充電量X(%)、劣化係数Yを含む。充電量X(%)は、バッテリユニット19の充電の程度を示す。劣化係数Yは、バッテリの経年劣化の程度を示す。
充電量Xは、例えば、バッテリユニット19が完全に充電された状態を「100%」、全く充電されていない状態を「0%」として、%により表される。監視コントローラ18は、バッテリユニット19毎に、その出力電圧を測定し、これに基づいて充電量Xを算出して、バッテリテーブル124の充電量Xを更新する。監視コントローラ18は、バッテリユニット19の出力電圧を測定する手段を備える。
劣化係数Yは、バッテリユニット19が全く劣化していない状態を「1」、完全に劣化した状態を「0」として、表される。劣化係数Yは、例えば、バッテリユニット19の製造年月日に基づいて決定される。監視コントローラ18は、バッテリユニット19の製造年月日と現在の年月日とを比較して製造日からの経過期間を算出し、これに基づいて劣化係数Yを算出して、バッテリテーブル124の劣化係数Yを更新する。製造年月日は、例えば、ディスクアレイ装置1の出荷時に、オペレータにより、監視コントローラ18に入力され、保持される。現在の年月日は、例えば、キャッシュコントローラ12の備えるCPUのCPUタイマの値であり、キャッシュコントローラ12から与えられる。経過期間を劣化係数Yに変換するための変換テーブルは、予め監視コントローラ18に与えられる。
なお、実際には、劣化係数Yの値としては、後述する図5に示すように、「1」〜「0.3」が用いられる。バッテリユニット19の製造年月日から長期間が経過すると、劣化係数Yの値が、例えば「0.2」となる場合がある。この場合、充電量Xの値が大きくても、後述するように、X×Yの平均値に基づいて定まるバッテリユニット19の電力供給能力が小さくなってしまう。そこで、劣化係数Yの値として「0.2」以下の値は用いられない。劣化係数Yの値「0.3」は、例えば、バッテリユニット19の交換時期に対応すると考えることができる。
充電量X及び劣化係数Yの更新は、予め定められた更新周期で周期的に実行される。更新周期は、充電量Xの急激な変化に対応するために、例えば数分とされる。更新周期は、例えば、数秒、数10分又は数時間であっても良い。なお、劣化係数Yの変化は予め知ることができるので、前述の更新周期よりも長い周期、例えば、数日、数週間毎又は数ヶ月で更新するようにしても良い。また、劣化係数Yは、前記経過期間に加えて、バッテリユニット19の周囲の温度、周囲の湿度、放電回数等に基づいて、決定するようにしても良い。周囲の温度は、監視コントローラ18の備える温度センサにより測定され、監視コントローラ18に保持される。周囲の湿度は、監視コントローラ18の備える湿度センサにより測定され、監視コントローラ18に保持される。放電回数は、放電の都度に監視コントローラ18によりカウントされ保持される。
テーブル管理部123は、前述の更新周期で、電力供給能力情報を取得する。具体的には、テーブル管理部123は、バッテリテーブル124を参照してバッテリチェックを実行する。具体的には、テーブル管理部123は、バッテリユニット19毎に、充電量X%、劣化係数YについてX×Yを算出し、更に、複数のバッテリユニット19についての値X×Yの平均値を算出する。この平均値が、バッテリユニット19の電力供給能力を示す電力供給能力情報である。バッテリチェックは、例えば前述の更新周期で周期的に実行されるので、バッテリユニット19の電力供給能力の急激な変化に対応することができる。
テーブル管理部123は、バッテリチェックの結果である電力供給能力情報に基づいてキャッシュテーブル122を更新し、更に、この更新に続けて、キャッシュメモリ13のローカル領域132においてメモリバンク133毎にダーティデータの書き込みを制限する。キャッシュテーブル122の更新は、例えば前述の更新周期で周期的に実行される。これにより、バッテリユニット19の電力供給能力の急激な変化に対応して、ダーティデータの書き込みを制限し、ライトデータが失われることを回避することができる。なお、キャッシュテーブル122の更新は、更新周期以外の周期で実行するようにしても良い。また、キャッシュテーブル122の更新とダーティデータの書き込みの制限とを、異なる周期で実行するようにしても良い。
図3(B)は、キャッシュテーブル122の一例を示す。
キャッシュテーブル122は、メモリバンク133毎に、換言すれば、メモリバンクNo毎に、ダーティデータ制限フラグ、ダーティデータ量(MB;メガバイト)の情報を含む。
ダーティデータ制限フラグは、複数のメモリバンク133の各々について、ダーティデータの書き込みを許可する許容領域であるか、ダーティデータの書き込みを禁止する禁止領域であるかを示す識別情報である。例えば、図3(B)に示すように、ダーティデータの書き込みを禁止するメモリバンク#32にはダーティデータ制限フラグとして「1」が設定され、ダーティデータの書き込みを許可するメモリバンク#1、#2にはダーティデータ制限フラグとして「0」が設定される。
ダーティデータ制限フラグ「1」を有するメモリバンク133は、禁止領域であり、ダーティデータの書き込みを禁止される。従って、メモリコントローラ121は、キャッシュテーブル122に基づいて、ダーティデータ制限フラグ「1」を有するメモリバンク133に、ディスクアレイ16から読み出したリードデータのみを書き込む。これにより、ダーティデータ制限フラグ「1」を有するメモリバンク133には、ダーティデータが存在せず、リードデータが存在するのみである。
ダーティデータ制限フラグ「0」を有するメモリバンク133は、ダーティデータの書き込みが許容された許容領域である。従って、メモリコントローラ121は、キャッシュテーブル122に基づいて、ダーティデータ制限フラグ「0」を有するメモリバンク133に、リードデータ及びダーティデータを書き込む。これにより、ダーティデータ制限フラグ「0」を有するメモリバンク133には、リードデータの他に、ダーティデータが存在する可能性がある。
以上から、ローカル領域132に格納されるダーティデータ量は、最大で、ダーティデータ制限フラグ「0」を有するメモリバンク133の合計のサイズSに等しい。1個のキャッシュメモリ13に格納されるダーティデータ量は、ミラー領域131に存在する他方のキャッシュメモリ13のローカル領域132のデータのコピーを考慮して、最大で、前記サイズSの2倍のサイズ2Sである。2個のキャッシュメモリ13に格納されるダーティデータ量は、最大で、前記サイズSの4倍のサイズ4Sである。
そこで、主電源の停電時において、バッテリユニット19からの放電によりバックアップ電源から電力が供給されている期間に、前記サイズ4Sのデータをディスクアレイ16に転送することができれば良い。換言すれば、前記サイズ4Sのデータをディスクアレイ16に転送することができれば、全てのダーティデータをバックアップする、換言すれば、全てのダーティデータの退避を保証することができる。一方、キャッシュメモリ13からディスクアレイ16へのデータ転送の時間は、経験的に知ることができる。また、バッテリユニット19からの有効なレベルの放電が持続する時間も、その時点でのバッテリユニット19の電力供給能力に基づいて、知ることができる。
従って、ダーティデータ制限フラグ「1」の数は、その時点でのバッテリユニット19の電力供給能力に基づいて、前記サイズ4Sのデータが、ディスクアレイ16に転送することができるデータサイズ以下となるように設定される。換言すれば、メモリコントローラ121は、許容領域の数、従って、禁止領域の数が、バッテリユニット19の電力供給能力に応じて定まる数となるように、キャッシュテーブル122に設定する。
なお、キャッシュメモリ13の全容量は定まっているので、許容領域の数を定めれば、結果的に、禁止領域の数も定まる。従って、許容領域及び禁止領域のサイズを決定することには、許容領域及び禁止領域の一方のサイズを定め、これにより、結果的に許容領域及び禁止領域の他方のサイズが定まる場合を含む。
ダーティデータ制限フラグ「1」は、例えば、メモリバンク133のメモリバンクNoの降順に、メモリバンクNo#32から順に設定される。また、ダーティデータ制限フラグ「1」を、メモリバンクNoの昇順に設定するようにしても良く、メモリバンクNoとは無関係にランダムに設定するようにしても良い。
なお、2個のキャッシュメモリ13について、ダーティデータ制限フラグ「1」の数は等しくされ、また、ダーティデータ制限フラグ「1」が設定されるメモリバンク133のメモリバンクNoも等しくされる。これにより、ダーティデータの退避の保証のための処理が煩雑になることを回避することができる。例えば、2個のメモリコントローラ121の一方がダーティデータ制限フラグ「1」の数及び設定されるメモリバンク133を変更した場合、これらの結果が他方のメモリコントローラ121にキャッシュ間信号線17を介して送信される。これらの結果に従って、他方のメモリコントローラ121は、ダーティデータ制限フラグ「1」の数及び設定されるメモリバンク133を変更する。
ダーティデータ量は、メモリバンク133に書き込まれたダーティデータの量を示す。例えば、メモリバンク#1に512MBのダーティデータが書き込まれた場合、図3(B)に示すように、メモリバンク#1のダーティデータ量が「512(MB)」に更新される。
ここで、キャッシュテーブル122において、ダーティデータ制限フラグが「1」のメモリバンク133であっても、そのダーティデータ量が「0」でない場合がある。このようなメモリバンク133を、書き込みを禁止するという制限を越えてダーティデータが格納されているので、「ダーティデータ制限値を越えるメモリバンク133」ということとする。また、ダーティデータ制限フラグ「0」を有するメモリバンク133の数を、「ダーティデータ制限値」ということとする。
なお、ダーティデータ制限フラグ「0」を有するメモリバンク133において、そのダーティデータ量が「0」でない場合、実際には、ダーティデータ制限値を越えないことになる。従って、ダーティデータ制限値を越えるメモリバンク133は、ダーティデータ制限値を越える可能性のあるメモリバンク133と言うことができる。
ダーティデータ制限値を越えるメモリバンク133は、ダーティデータ制限フラグが「0」のメモリバンク133にダーティデータが書き込まれた後にダーティデータ制限フラグが「1」とされた場合に、発生する。メモリコントローラ121は、キャッシュテーブル122を参照して、キャッシュテーブル122にダーティデータ制限値を越えるメモリバンク133が存在する場合、ダーティデータ制限値を越えるメモリバンク133のダーティデータをディスクアレイ16に転送する。
例えば、最初に、テーブル管理部123により、ダーティデータ制限フラグが「0」から「1」に変更される。この後、メモリコントローラ121により、ダーティデータ制限フラグが「0」から「1」に変更されたメモリバンク133のダーティデータが、ディスクアダプタ14及びスイッチ15を介して、ディスクアレイ16に転送され、書き込まれる(退避される)。この書き込みは、ディスクアレイ16へのアクセスが可能となった時点で、他のメモリバンク133に格納されたダーティデータ、換言すれば、ダーティデータ制限フラグが「0」のメモリバンク133のダーティデータの書き込みよりも優先して実行される。これにより、ダーティデータが失われる可能性を低減することができる。また、ダーティデータ制限フラグが「0」から「1」に変更されるであろうメモリバンク133に、更に、ダーティデータが書き込まれることを回避することができる。
テーブル管理部123は、バッテリチェックの結果である電力供給能力情報の取得の都度に、電力供給能力情報に応じて、キャッシュテーブル122において、メモリバンク133の各々について、ダーティデータ制限フラグを設定する。換言すれば、テーブル管理部123は、電力供給能力情報に応じて、メモリバンク133を単位として、ダーティデータの書き込みを禁止する禁止領域と、ダーティデータの書き込みを許容する許容領域とを設定する。これにより、キャッシュメモリ13のローカル領域132における、禁止領域と許容領域との比率が定まる。禁止領域のサイズ、許容領域のサイズ、禁止領域と許容領域の比率は、経験的に定めることができ、電力供給能力に応じて予め定められる。
なお、前述したように、ミラー領域131はメモリバンクに細分化されないので、ミラー領域131においては、禁止領域と許容領域との比率が定められることはない。
例えば、テーブル管理部123は、禁止領域と許容領域との比率が電力供給能力に応じて予め定められた比率となるように、ダーティデータ制限フラグを設定する。換言すれば、ダーティデータ制限フラグ「1」を有するメモリバンク133の数(従って、禁止領域のサイズ)と、ダーティデータ制限フラグ「0」を有するメモリバンク133の数(従って、許容領域のサイズ)とが、電力供給能力に応じて定められる。
メモリコントローラ121は、キャッシュメモリ13にライトデータ、換言すれば、ダーティデータを書き込む場合、キャッシュテーブル122を参照する。そして、メモリコントローラ121は、ダーティデータ制限フラグが「0」であるメモリバンク133に、ダーティデータを書き込み、書き込んだダーティデータの量をキャッシュテーブル122における当該メモリバンクNoのダーティデータ量の値に加算する。これにより、メモリコントローラ121は、メモリバンク133毎に、書き込まれたダーティデータ量を管理する。
メモリコントローラ121は、主電源の停電時において、バッテリユニット19を制御して、キャッシュコントローラ12自体及びキャッシュメモリ13へバッテリユニット19から電力を供給する。これにより、メモリコントローラ121は、ダーティデータ制限フラグが「0」であるメモリバンク133に格納されたダーティデータを、ディスクアレイ16に転送する。
なお、実際には、ダーティデータの転送のために、キャッシュメモリ13においてダーティデータが格納されたアドレスを知る必要がある。このために、メモリコントローラ121は、キャッシュテーブル122とは別に、キャッシュメモリ管理テーブルを備え、ダーティデータ毎に、キャッシュメモリ13においてダーティデータが書き込まれたアドレスを格納する。ダーティデータは、ディスクアレイ16において、キャッシュコントローラ12が使用する領域であるシステム領域内における予め定められたダーティデータの書込み領域に格納される。リードデータは、ディスクアレイ16において、キャッシュコントローラ12が使用する領域であるシステム領域内における予め定められたリードデータの書込み領域に格納される。なお、キャッシュテーブル122とキャッシュメモリ管理テーブルとを一体に設けるようにしても良い。
図4〜図6は、一体となってキャッシュ制御処理フローを示す図であり、図1に示すディスクアレイ装置1の起動時におけるキャッシュ制御処理を示す。
ディスクアレイ装置1の主電源、例えばAC(交流)電源が投入されると、当該主電源からディスクアレイ装置1にAC電力が供給(AC On)され(ステップS11)、これに応じて、ディスクアレイ装置1の内部電源装置を介して、バッテリユニット19の充電が開始される(ステップS12)。
一方、ディスクアレイ装置1の主電源が投入されると、ディスクアレイ装置1はパワーオン(PowerOn)状態となり(ステップS13)、これに応じて、ディスクアレイ装置1が起動され、初期化処理を実行する。初期化処理において、例えば、メモリコントローラ121が、キャッシュメモリ13のメモリ容量(例えば、32GB)を認識し、また、キャッシュテーブル122とバッテリテーブル124とを生成し、状態情報を「ライトバック状態」とする。通常バッテリユニット19は100%に近い程度まで充電されているので、状態情報は、「ライトバック状態」とされる。なお、全く又は殆ど充電されていないバッテリユニット19が用いられる場合、初期化処理において、状態情報を「ライトスルー状態」とするようにすれば良い。
初期化処理の後、メモリコントローラ121は、キャッシュメモリ13のメモリ容量を、ローカル領域132とミラー領域131に対して、50%(例えば、16GB)ずつ割当てる(ステップS14)。更に、メモリコントローラ121は、キャッシュメモリ13のローカル領域132を、複数のメモリバンク133(例えば、512MB)に細分化する(ステップS15)。換言すれば、キャッシュコントローラ12は、ローカル領域132を32個のメモリバンク133に分割して、32個のメモリバンク133にメモリバンクNo#1〜#32を付与する。また、キャッシュテーブル122にメモリバンクNoを格納する。
以上のステップS11〜S15は、ディスクアレイ装置1の起動時に実行される処理である。一方、以下のステップS16〜S120は、起動後のディスクアレイ装置1の運用時に繰り返し実行される処理である。
監視コントローラ18は、バッテリユニット19毎に、バッテリチェックを実行して、充電量X%及び劣化係数Yを求め、求めた充電量X%及び劣化係数Yを電力供給能力情報としてバッテリテーブル124に格納する(ステップS16)。なお、ステップS16は、例えば前述の更新周期である数分間隔で繰り返し実行される。
また、キャッシュコントローラ12のテーブル管理部123は、バッテリテーブル124を参照して、複数のバッテリユニット19についての充電量X%、劣化係数YについてX×Yを算出し、更に、その平均値を算出する。テーブル管理部123は、平均値をバッテリユニット19の電力供給能力を示す電力供給能力情報として用いる。なお、以下の図5、図6を参照した説明において、「電力供給能力情報」を「バッテリチェック結果X×Y」ということとする。
テーブル管理部123は、バッテリチェック結果X×Yが90%以上であるか否かを判断する(ステップS17)。バッテリチェック結果X×Yが90%以上である場合(ステップS17 Yes)、テーブル管理部123は、キャッシュテーブル122において、全ての、換言すれば、32個のメモリバンク#1〜#32のダーティデータ制限フラグを解除する、換言すれば、「0」とする(ステップS18)。換言すれば、バッテリチェック結果X×Yの値が複数の閾値20%〜90%における最大の閾値90%よりも大きい場合、32個の(例えば、16GBの)メモリバンク133が、ダーティデータの書き込みを許容する許容領域に設定される。
なお、監視コントローラ18が、ステップS17を実行するようにしても良い。同様に、監視コントローラ18が、後述するステップS19、S112及びS115を実行するようにしても良い。
以上により、メモリコントローラ121は、ライトバック状態で、全ての、換言すれば、32個のメモリバンク133にダーティデータを書き込むことができる。リードデータは、32個のメモリバンク133に書き込むことができる。この場合、バッテリチェック結果X×Yが90%以上である、換言すれば、バッテリユニット19の電力供給能力が十分に大きいので、主電源が停電した場合、32個のメモリバンク133に格納されたデータは、バッテリユニット19からのバックアップ電源からの電力の供給期間内にディスクアレイ16に退避することができる。以後、この状態でディスクアレイ装置1が運用され、ステップS16が実行される。従って、状態情報は変更されない。
バッテリチェック結果X×Yが90%以上でない場合(ステップS17 No)、テーブル管理部123は、更に、バッテリチェック結果X×Yが60%以上であるか否かを判断する(ステップS19)。バッテリチェック結果X×Yが60%以上である場合(ステップS19 Yes)、テーブル管理部123は、例えば、メモリバンク#1〜#32の60%について、ダーティデータ制限フラグを「0」に設定することを決定し(ステップS110)、メモリバンク#1〜#32の中の19個のメモリバンク133のダーティデータ制限フラグを「0」に設定し、他の13個のメモリバンク133のダーティデータ制限フラグを「1」に設定する(ステップS111)。換言すれば、19個の(例えば、9.5GBの)メモリバンク133が、ダーティデータの書き込みを許容する許容領域に設定される。
なお、ステップS111において、メモリコントローラ121は、キャッシュテーブル122を参照して、ダーティデータ制限フラグが「1」でダーティデータ量が「0」でないメモリバンク133、換言すれば、ダーティデータ制限値を越えるメモリバンク133が存在するか否かを判断する。ダーティデータ制限値を越えるメモリバンク133が存在する場合、メモリコントローラ121は、ステップS111の実行後に、ダーティデータ制限値を越えるメモリバンク133のダーティデータをディスクアレイ16に書き込む。
以上により、メモリコントローラ121は、バッテリユニット19の電力供給能力が低下したにも拘らず、ライトバック状態で、19個のメモリバンク133にダーティデータを書き込むことができる。リードデータは、32個のメモリバンク133に書き込むことができる。この場合、主電源が停電した場合、19個のメモリバンク133に格納されたデータは、バッテリユニット19からのバックアップ電源からの電力の供給期間内に退避することができる。換言すれば、バッテリユニット19のバックアップ対象を19個のメモリバンク133に制限することにより、ライトバック状態での動作を維持することができる。以後、この状態でディスクアレイ装置1が運用され、ステップS16が実行される。従って、状態情報は変更されない。
バッテリチェック結果X×Yが60%以上でない場合(ステップS19 No)、テーブル管理部123は、更に、バッテリチェック結果X×Yが40%以上であるか否かを判断する(ステップS112)。バッテリチェック結果X×Yが40%以上である場合(ステップS112 Yes)、テーブル管理部123は、例えば、メモリバンク#1〜#32の40%について、ダーティデータ制限フラグを「0」に設定することを決定し(ステップS113)、メモリバンク#1〜#32の中の12個のメモリバンク133のダーティデータ制限フラグを「0」に設定し、他の20個のメモリバンク133のダーティデータ制限フラグを「1」に設定する(ステップS114)。換言すれば、12個の(例えば、6GBの)メモリバンク133が、ダーティデータの書き込みを許容する許容領域に設定される。
なお、ステップS114において、メモリコントローラ121は、キャッシュテーブル122を参照して、ダーティデータ制限フラグが「1」でダーティデータ量が「0」でないメモリバンク133、換言すれば、ダーティデータ制限値を越えるメモリバンク133が存在するか否かを判断する。ダーティデータ制限値を越えるメモリバンク133が存在する場合、メモリコントローラ121は、ステップS114の実行後に、ダーティデータ制限値を越えるメモリバンク133のダーティデータをディスクアレイ16に書き込む。
以上により、メモリコントローラ121は、バッテリユニット19の電力供給能力が低下したにも拘らず、ライトバック状態で、12個のメモリバンク133にダーティデータを書き込むことができる。リードデータは、32個のメモリバンク133に書き込むことができる。この場合、主電源が停電した場合、12個のメモリバンク133に格納されたデータは、バッテリユニット19からのバックアップ電源からの電力の供給期間内に退避することができる。換言すれば、ダーティデータ制限フラグを用いてバッテリユニット19のバックアップ対象を12個のメモリバンク133に制限することにより、更に長くライトバック状態での動作を維持することができる。以後、この状態でディスクアレイ装置1が運用され、ステップS16が実行される。従って、状態情報は変更されない。
なお、この場合、バックアップ対象である12個のメモリバンク133のデータが全て退避される。従って、バックアップ対象である12個のメモリバンク133において、書き込まれたデータがダーティデータであるかリードデータであるかの判別処理を実行する必要がない。
バッテリチェック結果X×Yが40%以上でない場合(ステップS112 No)、テーブル管理部123は、更に、バッテリチェック結果X×Yが20%以上であるか否かを判断する(ステップS115)。バッテリチェック結果X×Yが20%以上である場合(ステップS115 Yes)、テーブル管理部123は、例えば、メモリバンク#1〜#32の20%について、ダーティデータ制限フラグを「0」に設定することを決定し(ステップS116)、メモリバンク#1〜#32の中の6個のメモリバンク133のダーティデータ制限フラグを「0」に設定し、他の26個のメモリバンク133のダーティデータ制限フラグを「1」に設定する(ステップS117)。換言すれば、バッテリチェック結果X×Yが複数の閾値90%〜20%における最少の閾値20%よりも大きい場合、6個の(例えば、3GBの)メモリバンク133が、ダーティデータの書き込みを許容する許容領域に設定される。これにより、バッテリチェック結果X×Yが複数の閾値90%〜20%における最少の閾値20%よりも大きい場合、メモリコントローラ121は、ライトバック状態で動作することができる。
なお、ステップS117において、メモリコントローラ121は、キャッシュテーブル122を参照して、ダーティデータ制限フラグが「1」でダーティデータ量が「0」でないメモリバンク133、換言すれば、ダーティデータ制限値を越えるメモリバンク133が存在するか否かを判断する。ダーティデータ制限値を越えるメモリバンク133が存在する場合、メモリコントローラ121は、ステップS117の実行後に、ダーティデータ制限値を越えるメモリバンク133のダーティデータをディスクアレイ16に書き込む。
以上により、メモリコントローラ121は、バッテリユニット19の電力供給能力が低下したにも拘らず、ライトバック状態で、6個のメモリバンク133にダーティデータを書き込むことができる。リードデータは、32個のメモリバンク133に書き込むことができる。この場合、主電源が停電した場合、6個のメモリバンク133に格納されたデータは、バッテリユニット19からのバックアップ電源からの電力の供給期間内に退避することができる。換言すれば、バッテリユニット19のバックアップ対象を6個のメモリバンク133に制限することにより、更に長くライトバック状態での動作を維持することができる。以後、この状態でディスクアレイ装置1が運用され、ステップS16が実行される。従って、状態情報は変更されない。
一方、例えば、全く充電されていないバッテリユニット19を充電してバッテリチェック結果X×Yが20%以上に達した時点で、直ちに、それまでのライトスルー状態からライトバック状態に移行することができる。これにより、ディスクアレイ装置1がライトバック状態で動作する期間を、更に長くすることができる。
バッテリチェック結果X×Yが20%以上でない場合(ステップS115 No)、換言すれば、バッテリチェック結果X×Yが20%未満である場合、テーブル管理部123は、例えば、全てのメモリバンク133について、ダーティデータ制限フラグを「0」に設定しないことを決定し(ステップS118)、32個のメモリバンク133のダーティデータ制限フラグを「1」に設定する(ステップS119)。換言すれば、バッテリチェック結果X×Yが複数の閾値90%〜20%における最少の閾値20%よりも小さい場合、ダーティデータの書き込みを許容する許容領域に設定されるメモリバンク133が存在しない状態になる。これにより、ダーティデータの保護が保証されないので、後述するように、バッテリチェック結果X×Yが複数の閾値90%〜20%における最少の閾値20%よりも小さい場合、メモリコントローラ121は、ライトスルー状態で動作することになる。
なお、ステップS119において、メモリコントローラ121は、キャッシュテーブル122を参照して、ダーティデータ制限フラグが「1」でダーティデータ量が「0」でないメモリバンク133、換言すれば、ダーティデータ制限値を越えるメモリバンク133が存在するか否かを判断する。ダーティデータ制限値を越えるメモリバンク133が存在する場合、メモリコントローラ121は、ステップS119の実行後に、ダーティデータ制限値を越えるメモリバンク133のダーティデータをディスクアレイ16に書き込む。
以上により、メモリコントローラ121は、この時点で初めてそれまでのライトバック状態からライトスルー状態に移行する(ステップS120)。具体的には、メモリコントローラ121は、自己が保持する状態情報を「ライトバック状態」から「ライトスルー状態」に変更し、キャッシュ間信号線17を介して、状態情報の変更を他方のメモリコントローラ121に通知する。以後、この状態でディスクアレイ装置1が運用され、ステップS16が実行される。この結果、メモリコントローラ121は、ライトデータを、一旦キャッシュメモリ13に書き込み、その後、キャッシュメモリ13に書き込んだライトデータを読み出してディスクアレイ16に書き込み、更にその後、書込み要求の転送元であるホストアダプタ11に書き込み完了を通知する。
なお、60%、40%及び20%以外の値のバッテリチェック結果X×Yに基づいて、ダーティデータ制限フラグ「0」であるメモリバンク133の個数、換言すれば、ダーティデータの許容領域であるメモリバンク133の個数を決定するようにしても良い。メモリバンク133の個数を決定するために用いられるバッテリチェック結果X×Yの値は、3段階に限られない。換言すれば、ダーティデータ制限フラグ「0」であるメモリバンク133の個数は、3段階で動的に変更される以外に、更に多くの段階で動的に変更されるようにしても良い。また、バッテリチェック結果X×Yが何%の時に何個のメモリバンク133のダーティデータ制限フラグを「0」とするかは、種々変更することができる。
(第2の実施態様)
図1に示すディスクアレイ装置1においては、ダーティデータ量がダーティデータ制限値を越える可能性のあるメモリバンク133、換言すれば、ダーティデータ制限フラグが「0」から「1」に変更されたメモリバンク133のダーティデータを、ディスクアレイ16に転送する必要がある。この際、当該ダーティデータがディスクアレイ16に転送される前に、主電源が停電すると、当該ダーティデータのいずれか一部が失われてしまう。従って、ダーティデータの退避の保証ができない。そこで、ダーティデータ制限値を越えるメモリバンク133のダーティデータが、図7に示すように、ディスクアレイ16に転送されるまでの期間について、退避が保証される。
図7は、他のキャッシュ制御処理フローを示す図であり、ディスクアレイ装置1の運用時における他のキャッシュ制御処理を示す。
監視コントローラ18及びテーブル管理部123は、前述の更新周期で、ディスクアレイ装置1の運用中に、図5に示すステップS16のバッテリチェックを実行する(ステップS21)。ステップS16の後において、ステップS18、S111、S114、S117及びS119を実行する場合、メモリコントローラ121は、ステップS18、S111、S114、S117及びS119の処理に加えて、以下のステップS22〜S29を実行する。なお、ステップS26が、ステップS18、S111、S114、S117及びS119に相当する。
メモリコントローラ121は、ダーティデータ制限値、換言すれば、ダーティデータ制限フラグ「0」を有するメモリバンク133の数の変更が必要であるか否かを判断する(ステップS22)。このために、メモリコントローラ121は、キャッシュテーブル122を参照して現在のダーティデータ制限値を求める。この後、メモリコントローラ121は、現在のダーティデータ制限値と、S17、S110、S113、S116、S118の処理により決定された新たなダーティデータ制限値とを比較する。ダーティデータ制限値の変更が必要でない場合(ステップS22 No)、メモリコントローラ121は、ステップS21を繰り返す。
ダーティデータ制限値の変更が必要である場合(ステップS22 Yes)、メモリコントローラ121は、更に、キャッシュメモリ13が新しいダーティデータ制限値を超える容量のダーティデータを格納しているか否かを判断する(ステップS23)。換言すれば、メモリコントローラ121は、ダーティデータ制限フラグを「0」から「1」に変更する必要があるメモリバンク133を決定し、決定されたメモリバンク133がダーティデータを格納しているか否かを判断する。決定されたメモリバンク133がダーティデータを格納している場合、キャッシュメモリ13が新しいダーティデータ制限値を超える容量のダーティデータを格納していることになる。
キャッシュメモリ13が新しいダーティデータ制限値を超える容量のダーティデータを格納していない場合(ステップS23 No)、メモリコントローラ121は、ダーティデータ制限値を変更し(ステップS24)、ステップS21を繰り返す。
キャッシュメモリ13が新しいダーティデータ制限値を超える容量のダーティデータを格納している場合(ステップS23 Yes)、メモリコントローラ121は、バッテリユニット19によるバックアップ電源からの電力の供給対象を、2個のキャッシュメモリ13のいずれか一方、例えばキャッシュメモリAのみに制限する(ステップS25)。これにより、許容領域から禁止領域に変更されたメモリバンク133がダーティデータを格納している場合、許容領域から禁止領域に変更されたメモリバンク133に格納されたダーティデータをディスクアレイ16に書き込むまでの間、キャッシュメモリAのみが、前記バッテリによるバックアップ電源からの電力の供給対象とされる。なお、バックアップ電源からの電力の供給対象をキャッシュメモリBとしても良い。
これにより、主電源の停電時において、バッテリユニット19は、バックアップ電源からの電力を、キャッシュメモリAにのみ供給し、キャッシュメモリBには供給しない。これにより、キャッシュメモリAに格納されたダーティデータのみがディスクアレイ16に書き込まれる。しかし、キャッシュメモリBのローカル領域132に格納されたダーティデータは、キャッシュメモリAのミラー領域Aにコピーされている。このため、一時的にキャッシュメモリBのバックアップを停止しても、キャッシュメモリBのダーティデータが失われたことにはならない。
以上から、主電源の停電時において、バッテリユニット19からの放電によりバックアップ電源からの電力が供給されている期間に、1個のキャッシュメモリAにおける合計サイズ2Sのダーティデータをディスクアレイ16に転送することができれば良い。換言すれば、例えば1個のキャッシュコントローラA及び1個のキャッシュメモリAに通電すればよいので、停電処理時の消費電力を少なく抑えることができる。これにより、ダーティデータ制限値を越えるメモリバンク133についても、ダーティデータの退避を保証することができる。
ステップS25の後、メモリコントローラ121は、ダーティデータ制限値を変更する(ステップS26)。具体的には、メモリコントローラ121は、キャッシュテーブル122において、ダーティデータ制限フラグを「0」から「1」に変更する。
この後、メモリコントローラ121は、キャッシュメモリAのメモリバンク133であって、ダーティデータ制限フラグが「0」から「1」に変更されたメモリバンク133に格納されたダーティデータをディスクアレイ16に書き込む(ステップS27)。この処理の結果、ダーティデータ制限フラグが「0」から「1」に変更されたメモリバンク133に格納されたダーティデータが存在しなくなると、メモリコントローラ121は、キャッシュメモリAを、新しいダーティデータ制限値を超える容量のダーティデータを格納していない状態とする(ステップS28)。
この後、メモリコントローラ121は、ステップS25において設定したバッテリユニット19によるバックアップ電源からの電力の供給対象の制限を解除する(ステップS29)。換言すれば、メモリコントローラ121は、バックアップ電源からの電力の供給対象から除外したキャッシュメモリBを、再度、バックアップ電源からの電力の供給対象とする。
(第3の実施態様)
図7のキャッシュ制御処理において、ステップS25の処理に代えて、メモリコントローラ121が、バッテリユニット19によるバックアップ電源からの電力の供給対象を、2個のキャッシュメモリ13におけるローカル領域132のみに制限するようにしても良い。換言すれば、許容領域から禁止領域に変更されたメモリバンク133にダーティデータが格納されている場合、許容領域から禁止領域に変更されたメモリバンク133に格納されたダーティデータをディスクアレイ16に書き込むまでの間、キャッシュメモリAのローカル領域A及びキャッシュメモリBのローカル領域のみが、バッテリユニット19によるバックアップ電源からの電力の供給対象とされる。
これにより、主電源の停電時において、バッテリユニット19は、バックアップ電源からの電力を、2個のキャッシュメモリ13のローカル領域132にのみ供給し、ミラー領域131には供給しない。これにより、2個のキャッシュメモリ13のローカル領域132に格納されたダーティデータのみがディスクアレイ16に書き込まれる。従って、ダーティデータが失われることはない。この結果、ステップS25の処理の場合と同様に、ダーティデータ制限値を越えるメモリバンク133についても、ダーティデータの退避を保証することができる。
(第4の実施態様)
図7のキャッシュ制御処理のステップS25においては、バッテリユニット19によるバックアップ電源からの電力の供給対象とされるキャッシュメモリ13は、キャッシュメモリAに固定される。しかし、ステップS25において、2個のメモリコントローラ121がキャッシュ間信号線17を介して相互に通信を行うことにより、バックアップ電源からの電力の供給対象から一時的に除外するキャッシュメモリ13を決定するようにしても良い。
例えば、キャッシュメモリAにおいてダーティデータを格納しているメモリバンク133の数が18個であり、キャッシュメモリBにおいてダーティデータを格納しているメモリバンク133の数が16個であるとする。この状態で、ダーティデータ制限値が19個から12個に変更されたとする。従って、キャッシュメモリAでは6個のメモリバンク133のダーティデータを転送する必要があり、キャッシュメモリBでは4個のメモリバンク133のダーティデータを転送する必要がある。
そこで、メモリコントローラA及びBは、キャッシュメモリA及びキャッシュメモリBにおいて、書き込まれたダーティデータの量が少ない方を、バッテリユニット19によるバックアップ電源からの電力の供給対象とする。ここで、例えばキャッシュメモリAが電力の供給対象でないとされたとする。この場合、キャッシュメモリAのデータのコピーは、キャッシュメモリBのミラー領域131に存在する。従って、この場合には、キャッシュメモリA又はキャッシュメモリBのいずれが電力の供給対象とされた場合でも、そのミラー領域131のデータは、ディスクアレイ16に退避する必要がある。ミラー領域131のデータの量は、キャッシュメモリA又はキャッシュメモリBにおいて同一である。従って、キャッシュメモリA又はキャッシュメモリBのいずれを電力の供給対象とするかは、そのローカル領域132においてダーティデータを格納しているメモリバンク133の数に基づいて決定される。
この場合、メモリコントローラA及びBは、ステップS25において、キャッシュメモリBの方がデータを転送すべきメモリバンク133の数が少ない、換言すれば、ダーティデータ量が少ないと判断する。そこで、メモリコントローラA及びBは、ダーティデータ量の少ないキャッシュメモリBを、バッテリユニット19によるバックアップ電源からの電力の供給対象とする。
これにより、バックアップ電源からの電力の供給対象の制限に加えて、ダーティデータの転送時間をより短くして、ダーティデータ制限値を越えるメモリバンク133について、より確実にダーティデータの退避を保証することができる。
(第5の実施態様)
図1に示すディスクアレイ装置1においては、ダーティデータ制限フラグ「1」は、メモリバンク133のメモリバンクNoの降順に、換言すれば、メモリバンクNo#32から順に設定される。しかし、個々のメモリバンク133のダーティデータ量に基づいて、ダーティデータ制限フラグ「1」を設定するメモリバンク133、換言すれば、ディスクアレイ16へダーティデータを書き込むメモリバンク133を決定するようにしても良い。
図8は、キャッシュメモリ13のローカル領域132のメモリバンク133へのダーティデータの格納の状態を示す図である。
図8(A)に示すように、例えば、ダーティデータ制限値が19個の状態で、メモリバンク#1〜#19に、ダーティデータが格納されている。なお、図8及び後述する図9において、メモリバンク#1〜#32におけるダーティデータ量を斜線で示す。メモリバンク#1〜#32におけるダーティデータ量は、各々異なる。斜線の無いメモリバンク#20〜#32にはダーティデータが格納されていないものとする。また、メモリバンク#3、#5、#8、#10、#13、#15及び#17のダーティデータ量が、他のメモリバンク133のダーティデータ量より少ないものとする。
この状態で、ダーティデータ制限値が19個から12個に変更されたとする。従って、7個のメモリバンク133について、ダーティデータ制限フラグを「0」から「1」に変更する必要がある。そこで、メモリコントローラ121は、複数のメモリバンク133の各々について、書き込まれたダーティデータの量が少ない順に優先順位を決定し、この優先順位に従って、複数のメモリバンク133に格納されたダーティデータをディスクアレイ16に書き込む。
この場合、メモリコントローラ121は、メモリバンク133のダーティデータ量に基づいて、ダーティデータ制限フラグ「1」を設定するメモリバンク133を決定する。そこで、メモリコントローラ121は、図8(B)において点線で囲んで示すように、ダーティデータ量が少ないメモリバンク#3、#5、#8、#10、#13、#15及び#17を、ダーティデータ制限フラグ「1」を設定するメモリバンク133として選択する。
この後、メモリコントローラ121は、例えば図7のキャッシュ制御処理のステップS27において、メモリバンク#3、#5、#8、#10、#13、#15及び#17のダーティデータをディスクアレイ16に書き込む。
これにより、バックアップ電源からの電力の供給対象の制限に加えて、ダーティデータの転送時間をより短くして、ダーティデータ制限値を越えるメモリバンク133について、より確実にダーティデータの退避を保証することができる。また、ダーティデータの転送時間をより短くすることにより、メモリバンク133をより早く解放することができる。
(第6の実施態様)
図1に示すディスクアレイ装置1においては、ダーティデータ制限フラグ「1」は、メモリバンク133毎に設定される。一方、ダーティデータ制限フラグ「0」を有するメモリバンク133が、ダーティデータにより満たされているとは限らない。換言すれば、ダーティデータ制限フラグ「0」を有するメモリバンク133が、リードデータを格納している場合や、「空」である場合がある。そこで、ダーティデータをダーティデータ制限フラグ「0」を有するメモリバンク133に集中的に書き込むようにしても良い。換言すれば、メモリバンク133に一旦書き込んだダーティデータを、ダーティデータを格納するメモリバンク133の数が最少となるように、ダーティデータを再配置するようにしても良い。
図9は、キャッシュメモリ13のローカル領域132のメモリバンク133へのダーティデータの格納の状態を示す図である。
図9(A)に示すように、例えば、ダーティデータ制限値が19個の状態で、メモリバンク#1〜#19に、ダーティデータが格納されている。
この状態で、ダーティデータ制限値が19個から12個に変更されたとする。キャッシュメモリ13が図9(A)の状態であれば、7個のメモリバンク133について、ダーティデータ制限フラグを「0」から「1」に変更する必要がある。
しかし、このダーティデータ制限値の変更に先立って、メモリコントローラ121が、図9(B)に示すように、ダーティデータの再配置を実行する。この再配置により、例えば、メモリバンク#1〜#14には、そのメモリ容量と等しいサイズのダーティデータが格納され、メモリバンク#15〜#19には、ダーティデータが存在しなくなったとする。
この場合、ダーティデータ制限値が19個から12個に変更されたことに応じて、メモリコントローラ121は、例えば図7のキャッシュ制御処理のステップS27において、メモリバンク#13及び#14のダーティデータをディスクアレイ16に書き込む。従って、ダーティデータをディスクアレイ16に書き込むメモリバンク133の数は、ダーティデータの再配置前の7個から2個に減っている。
これにより、バックアップ電源からの電力の供給対象の制限に加えて、ダーティデータの転送時間をより短くして、ダーティデータ制限値を越えるメモリバンク133について、より確実にダーティデータの退避を保証することができる。
1 ディスクアレイ装置
2 ホストコンピュータ
11 ホストアダプタ
12 キャッシュコントローラ
13 キャッシュメモリ
14 ディスクアダプタ
15 スイッチ
16 ディスクアレイ
17 キャッシュ間信号線
18 監視コントローラ
19 バッテリユニット
121 メモリコントローラ
122 キャッシュテーブル
123 テーブル管理部
124 バッテリテーブル

Claims (9)

  1. ディスクアレイと、キャッシュメモリと、停電時に前記キャッシュメモリに電力を供給するバッテリと、前記キャッシュメモリにデータを格納するキャッシュコントローラとを含むディスクアレイ装置の制御方法であって、
    前記キャッシュコントローラが、前記キャッシュメモリを複数のメモリバンクに分割するステップと、
    前記キャッシュコントローラが、予め定められた更新周期で、前記バッテリの電力供給能力を示す電力供給能力情報を取得するステップと、
    前記キャッシュコントローラが、前記電力供給能力情報の取得の都度に、前記電力供給能力情報に応じて、前記キャッシュメモリにおける、前記ディスクアレイへ書き込むべきライトデータであって前記ディスクアレイに書き込まれていないデータであるダーティデータの書き込みが許容された許容領域のサイズと、前記ダーティデータの書き込みが禁止された禁止領域のサイズとを定め、前記複数のメモリバンクの各々について、前記禁止領域又は前記許容領域であることを示す識別情報を、前記許容領域の数が前記電力供給能力情報に応じて定まる数となるように、キャッシュテーブルに設定するステップと、
    前記キャッシュコントローラが、前記キャッシュテーブルに基づいて、前記禁止領域とされたメモリバンクに前記ディスクアレイから読み出したリードデータのみを格納し、前記許容領域とされたメモリバンクに前記ダーティデータ又は前記リードデータを格納するステップとを含む
    ことを特徴とするディスクアレイ装置の制御方法。
  2. 前記キャッシュコントローラが、前記電力供給能力情報が複数の閾値における最大の閾値よりも大きい場合に前記複数のメモリバンクを全て前記許容領域に設定し、前記電力供給能力情報が前記複数の閾値における最少の閾値よりも大きい場合に前記ライトデータを前記キャッシュメモリに格納しかつ前記ライトデータの書込み要求の要求元へ書込み完了を通知した後に前記ディスクアレイに書き込むライトバック状態で動作し、前記電力供給能力情報が前記複数の閾値における最少の閾値よりも小さい場合に前記複数のメモリバンクを全て前記禁止領域に設定して前記ライトデータを前記キャッシュメモリに一旦書き込み、前記キャッシュメモリに書き込んだ前記ライトデータを前記ディスクアレイに書き込んだ後に前記ライトデータの書込み要求の要求元へ書込み完了を通知するライトスルー状態で動作する
    ことを特徴とする請求項に記載のディスクアレイ装置の制御方法。
  3. 前記キャッシュコントローラが、前記複数のメモリバンクの各々について、書き込まれた前記ダーティデータの量が少ない順に優先順位を決定し、前記優先順位に従って、前記複数のメモリバンクに格納されたダーティデータを前記ディスクアレイに書き込む
    ことを特徴とする請求項に記載のディスクアレイ装置の制御方法。
  4. 前記キャッシュコントローラが、前記ダーティデータが格納されたメモリバンクの数が最小となるように、前記複数のメモリバンクに格納されたダーティデータを再配置する
    ことを特徴とする請求項に記載のディスクアレイ装置の制御方法。
  5. 前記キャッシュメモリが、ローカル領域と第2のキャッシュメモリのローカル領域のデータのコピーを格納するミラー領域とを含む第1のキャッシュメモリと、ローカル領域と第1のキャッシュメモリのローカル領域のデータのコピーを格納するミラー領域とを含む第2のキャッシュメモリとを含み、
    前記キャッシュコントローラが、前記第1のキャッシュメモリに対応して設けられる第1のキャッシュコントローラと、前記第2のキャッシュメモリに対応して設けられ、前記第1のキャッシュコントローラと接続される第2のキャッシュコントローラとを含み、
    前記第1のキャッシュコントローラが、前記第1のキャッシュメモリにおいて、前記ローカル領域を前記複数のメモリバンクに分割し、前記メモリバンクの各々について、前記識別情報を、前記許容領域の数が前記電力供給能力情報に応じて定まる数となるように、前記第1のキャッシュメモリのキャッシュテーブルに設定し、
    前記第2のキャッシュコントローラが、前記第2のキャッシュメモリにおいて、前記ローカル領域を前記複数のメモリバンクに分割し、前記メモリバンクの各々について、前記識別情報を、前記許容領域の数が前記電力供給能力情報に応じて定まる数となるように、前記第2のキャッシュメモリのキャッシュテーブルに設定し、
    前記第1及び第2のキャッシュコントローラが、前記第1のキャッシュメモリの前記ローカル領域に格納されたデータを前記第2のキャッシュメモリの前記ミラー領域にコピーし、前記第2のキャッシュメモリの前記ローカル領域に格納されたデータを前記キャッシュメモリの前記第1のミラー領域にコピーする
    ことを特徴とする請求項に記載のディスクアレイ装置の制御方法。
  6. 前記キャッシュコントローラが、前記許容領域から前記禁止領域に変更されたメモリバンクに前記ダーティデータが格納されている場合、前記許容領域から前記禁止領域に変更されたメモリバンクに格納された前記ダーティデータを前記ディスクアレイに書き込むまでの間、前記第1のキャッシュメモリ及び第2のキャッシュメモリのいずれか一方のみを、前記バッテリによるバックアップ電源の供給対象とする
    ことを特徴とする請求項に記載のディスクアレイ装置の制御方法。
  7. 前記キャッシュコントローラが、前記第1のキャッシュメモリ及び第2のキャッシュメモリにおいて、書き込まれた前記ダーティデータの量が少ない方を、前記バッテリによるバックアップ電源の供給対象とする
    ことを特徴とする請求項に記載のディスクアレイ装置の制御方法。
  8. 前記キャッシュコントローラが、前記許容領域から前記禁止領域に変更されたメモリバンクに前記ダーティデータが格納されている場合、前記許容領域から前記禁止領域に変更されたメモリバンクに格納された前記ダーティデータを前記ディスクアレイに書き込むまでの間、前記第1のキャッシュメモリの前記ローカル領域及び第2のキャッシュメモリの前記ローカル領域のみを、前記バッテリによるバックアップ電源の供給対象とする
    ことを特徴とする請求項に記載のディスクアレイ装置の制御方法。
  9. ディスクアレイと、
    前記ディスクアレイから読み出したリードデータと、前記ディスクアレイへ書き込むべきライトデータであって前記ディスクアレイに書き込まれていないデータであるダーティデータとを格納するキャッシュメモリと、
    停電時に前記キャッシュメモリに電力を供給するバッテリと、
    予め定められた更新周期で、前記バッテリの電力供給能力を示す電力供給能力情報を取得し、前記電力供給能力情報の取得の都度に、前記電力供給能力情報に応じて、前記キャッシュメモリにおける、前記ダーティデータの書き込みが許容された許容領域のサイズと、前記ダーティデータの書き込みが禁止された禁止領域のサイズとを定め、前記複数のメモリバンクの各々について、前記禁止領域又は前記許容領域であることを示す識別情報を、前記許容領域の数が前記電力供給能力情報に応じて定まる数となるように、キャッシュテーブルに設定し、前記キャッシュテーブルに基づいて、前記禁止領域とされたメモリバンクに前記ディスクアレイから読み出したリードデータのみを格納し、前記許容領域とされたメモリバンクに前記ダーティデータ又は前記リードデータを格納するキャッシュコントローラとを含む
    ことを特徴とするディスクアレイ装置。
JP2010020543A 2010-02-01 2010-02-01 ディスクアレイ装置及びディスクアレイ装置制御方法 Active JP5454177B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010020543A JP5454177B2 (ja) 2010-02-01 2010-02-01 ディスクアレイ装置及びディスクアレイ装置制御方法
US13/013,729 US9286215B2 (en) 2010-02-01 2011-01-25 Method and apparatus for controlling cache memory areas

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010020543A JP5454177B2 (ja) 2010-02-01 2010-02-01 ディスクアレイ装置及びディスクアレイ装置制御方法

Publications (2)

Publication Number Publication Date
JP2011159124A JP2011159124A (ja) 2011-08-18
JP5454177B2 true JP5454177B2 (ja) 2014-03-26

Family

ID=44342635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010020543A Active JP5454177B2 (ja) 2010-02-01 2010-02-01 ディスクアレイ装置及びディスクアレイ装置制御方法

Country Status (2)

Country Link
US (1) US9286215B2 (ja)
JP (1) JP5454177B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141527B2 (en) * 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US8874848B2 (en) * 2011-09-30 2014-10-28 Net App, Inc. Intelligence for controlling virtual storage appliance storage allocation
CN102725752B (zh) * 2011-10-20 2014-07-16 华为技术有限公司 处理脏数据的方法及装置
US9606929B2 (en) * 2011-11-08 2017-03-28 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Simulated NVRAM
US9152568B1 (en) * 2011-12-05 2015-10-06 Seagate Technology Llc Environmental-based device operation
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
JP6036819B2 (ja) * 2012-05-25 2016-11-30 富士通株式会社 情報処理装置、複製方法および複製プログラム
US9063864B2 (en) * 2012-07-16 2015-06-23 Hewlett-Packard Development Company, L.P. Storing data in presistent hybrid memory
US9189409B2 (en) * 2013-02-19 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Reducing writes to solid state drive cache memories of storage controllers
US9304902B2 (en) 2013-03-15 2016-04-05 Saratoga Speed, Inc. Network storage system using flash storage
US9509604B1 (en) 2013-12-31 2016-11-29 Sanmina Corporation Method of configuring a system for flow based services for flash storage and associated information structure
WO2015136655A1 (ja) * 2014-03-13 2015-09-17 株式会社日立製作所 ストレージシステム及び制御方法
US9608936B1 (en) 2014-07-03 2017-03-28 Sanmina Corporation Network system with offload services for flash storage
US9672180B1 (en) * 2014-08-06 2017-06-06 Sanmina Corporation Cache memory management system and method
US9715428B1 (en) * 2014-09-24 2017-07-25 Sanmina Corporation System and method for cache data recovery
JP6540202B2 (ja) * 2015-04-30 2019-07-10 富士通株式会社 情報処理システム、制御装置および制御プログラム
JP6536160B2 (ja) * 2015-04-30 2019-07-03 富士通株式会社 ストレージシステム、制御装置および制御プログラム
US20170097887A1 (en) * 2015-10-02 2017-04-06 Netapp, Inc. Storage Controller Cache Having Reserved Parity Area
JP6524889B2 (ja) * 2015-11-05 2019-06-05 富士通株式会社 ストレージシステムおよび監視装置
TWI564717B (zh) * 2015-12-02 2017-01-01 宇瞻科技股份有限公司 資料緩衝調整裝置及其方法
US10656848B2 (en) * 2018-06-17 2020-05-19 International Business Machines Corporation Data loss avoidance in multi-server storage systems
US10664189B2 (en) * 2018-08-27 2020-05-26 International Business Machines Corporation Performance in synchronous data replication environments
WO2020175720A1 (ko) * 2019-02-28 2020-09-03 엘지전자 주식회사 디지털 디바이스 및 그 제어 방법
US10805223B1 (en) * 2019-04-10 2020-10-13 Dell Products L.P. Systems and methods for handling data congestion for shared buffer switches with dynamic thresholding
US11237917B1 (en) 2020-08-28 2022-02-01 Dell Products L.P. System and method for data protection during power loss of a storage system
US11449229B2 (en) * 2020-10-20 2022-09-20 Red Hat, Inc. Dynamically resizing a region of volatile memory based on a charge level of a backup battery supply

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0511930A (ja) * 1991-07-03 1993-01-22 Oki Electric Ind Co Ltd デイスクキヤツシユ装置
JPH06309232A (ja) * 1993-04-20 1994-11-04 Hitachi Ltd ディスクキャッシュの制御方式
US5664106A (en) * 1993-06-04 1997-09-02 Digital Equipment Corporation Phase-space surface representation of server computer performance in a computer network
US7062675B1 (en) * 2002-06-25 2006-06-13 Emc Corporation Data storage cache system shutdown scheme
US6957355B2 (en) * 2002-09-18 2005-10-18 Sun Microsystems, Inc. Method and system for dynamically adjusting storage system write cache based on the backup battery level
US7231497B2 (en) * 2004-06-15 2007-06-12 Intel Corporation Merging write-back and write-through cache policies
JP4383321B2 (ja) * 2004-11-09 2009-12-16 富士通株式会社 記憶制御装置および外部記憶装置
JP4349274B2 (ja) * 2004-12-20 2009-10-21 日本電気株式会社 磁気ディスク装置および制御方法
JP4561462B2 (ja) * 2005-05-06 2010-10-13 富士通株式会社 ダーティデータ処理方法、ダーティデータ処理装置およびダーティデータ処理プログラム
JP4345979B2 (ja) * 2005-06-30 2009-10-14 富士通株式会社 Raid装置、通信接続監視方法及びプログラム
JP4897499B2 (ja) * 2007-01-19 2012-03-14 株式会社日立製作所 記憶システム又はストレージ移行方法
JP5026102B2 (ja) * 2007-02-07 2012-09-12 株式会社日立製作所 ストレージ制御装置及びデータ管理方法
TWI318352B (en) 2007-02-16 2009-12-11 Neotec Semiconductor Ltd Configurable battery management system chip with embedded sram caching architecture
US8275930B2 (en) * 2008-12-04 2012-09-25 Hitachi, Ltd. Storage system having volatile memory and non-volatile memory
US8103894B2 (en) * 2009-04-24 2012-01-24 International Business Machines Corporation Power conservation in vertically-striped NUCA caches
US8745334B2 (en) * 2009-06-17 2014-06-03 International Business Machines Corporation Sectored cache replacement algorithm for reducing memory writebacks

Also Published As

Publication number Publication date
US20110191535A1 (en) 2011-08-04
US9286215B2 (en) 2016-03-15
JP2011159124A (ja) 2011-08-18

Similar Documents

Publication Publication Date Title
JP5454177B2 (ja) ディスクアレイ装置及びディスクアレイ装置制御方法
JP5402693B2 (ja) ディスクアレイ装置の制御方法及びディスクアレイ装置
CN110795027B (zh) 固态存储设备及包括该固态存储设备的电子***
US9158700B2 (en) Storing cached data in over-provisioned memory in response to power loss
US8200999B2 (en) Selective power reduction of memory hardware
US10248322B2 (en) Memory system
KR101976452B1 (ko) 반도체 장치
JP5989574B2 (ja) 計算機、メモリ管理方法およびプログラム
JP5071798B2 (ja) 計算機システム,メモリ管理方法,およびそのプログラム
KR102329762B1 (ko) 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법
US9785564B2 (en) Hybrid memory with associative cache
US9507719B2 (en) Garbage collection in hybrid memory system
KR20140042546A (ko) 반도체 장치 및 그 동작 방법
US8347024B2 (en) Memory system monitoring data erasing time or writing time
US20020091965A1 (en) System and method for early detection of impending failure of a data storage system
JPH07146820A (ja) フラッシュメモリの制御方法及び、それを用いた情報処理装置
JP2009211153A (ja) メモリ装置、情報処理装置及び電力制御方法
US20170109085A1 (en) Memory device that writes data into a block based on time passage since erasure of data from the block
US20170177482A1 (en) Computing system having multi-level system memory capable of operating in a single level system memory mode
CN110780811B (zh) 数据保护方法、装置及存储介质
US10929061B2 (en) Memory system and memory control method
US10235049B2 (en) Device and method to manage access method for memory pages
JP6805110B2 (ja) ストレージシステム及びその制御方法
JP2015118423A (ja) リフレッシュ装置及び電子機器
JP2019510284A (ja) 不揮発性メモリとしての揮発性メモリの使用

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131223

R150 Certificate of patent or registration of utility model

Ref document number: 5454177

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150