(57)【要約】  【課題】本発明は、停電発生後のシャットダウン処理による確実なデータ保証を確保し、さらに、復電後からバッテリの充電完了までの間、また、通常運用中のバッテリ装置の故障、劣化時においてＩ／Ｏ処理のレスポンス性能の低下を最小限に抑えることを目的とする。  【解決手段】記憶装置が有するバッテリ残容量を監視しながら、前記バッテリ残容量に伴って前記記憶装置が有するキャッシュメモリ内のダーティデータの許容量を制御し、前記ダーティデータの許容量が閾値以下のときにはライトスルー運用を、前記ダーティデータの許容量が閾値より大きいときにはライトバック運用を行なう。  【選択図】図１
2006313407.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置が有するバッテリ残容量を監視するステップと、
前記バッテリ残容量に伴って前記記憶装置が有するキャッシュメモリ内のダーティデータの許容量を制御するステップと、
前記ダーティデータの許容量が閾値以下のときは、ライトスルー運用を行なうステップと、
前記ダーティデータの許容量が閾値より大きいときには、ライトバック運用を行なうステップとを、
有することを特徴とするダーティデータ処理方法。
【請求項２】
前記記憶装置は停電発生からシャットダウン開始までの間、前記キャッシュメモリ内のダーティデータ許容量の可変処理を行なわずにシャットダウン処理を行なうことを特徴とする請求項１におけるダーティデータ処理方法。
【請求項３】
記憶装置が有するバッテリ残容量を監視するバッテリ残容量監視手段と、
前記バッテリ残容量に伴って前記記憶装置が有するキャッシュメモリ内のダーティデータの許容量を制御するダーティデータ許容量制御手段と、
前記ダーティデータの許容量が閾値以下のときは、ライトスルー運用を行なう手段と、
前記ダーティデータの許容量が閾値より大きいときには、ライトバック運用を行なう手段とを
有することを特徴とするダーティデータ処理装置。
【請求項４】
前記記憶装置は停電発生からシャットダウン開始までの間、前記キャッシュメモリ内のダーティデータ許容量の可変処理を行なわずにシャットダウン処理を行なうことを特徴とする請求項３におけるダーティデータ処理装置。
【請求項５】
ダーティデータ処理プログラムであって、コンピュータを、
記憶装置が有するバッテリ残容量を監視するバッテリ残容量監視手段と、
前記バッテリ残容量に伴って前記記憶装置が有するキャッシュメモリ内のダーティデータの許容量を制御するダーティデータ許容量制御手段と、
前記ダーティデータの許容量が閾値以下のときは、ライトスルー運用を行なう手段と、
前記ダーティデータの許容量が閾値より大きいときには、ライトバック運用を行なう手段として、
機能させるためのダーティデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッテリ残容量の低下時における、特にＲＡＩＤ装置のデータ保証及びＩ／Ｏ処理のレスポンス性能低下防止に関する。
【背景技術】
【０００２】
従来、ＲＡＩＤ装置では停電などの予期しない電源断が発生したときに、装置に内蔵したバッテリを用いてキャッシュメモリ内の未だディスクに書き込んでいない更新データ（以下、“ダーティデータ”と称す）を一時退避するためのディスク（以下、“バックアップディスク”と称す）に書き込むという処理を行っていた。
【０００３】
従来技術では、通常時には書き込みを高速にするため、例えば、キャッシュメモリに書き込みを行う際、書き込み先のディスク（以下、“ターゲットディスク”と称す）には書き込みを行わず、Ｉ／Ｏと非同期にキャッシュメモリ内のデータをターゲットディスクに書き込んでターゲットディスクに反映させるライトバック方式を使用している。そして、バッテリ等の故障や電源断によってバッテリ残容量が低下したとき、すべてのダーティデータをバックアップディスクに書き込む時間が保障されなくなってしまうため、Ｉ／Ｏと同期してキャッシュデータをターゲットディスクに書き込むライトスルー方式に切り替えて運用を行っている。ライトスルー方式ではターゲットディスクへの書き込みが完了したところではじめてホストコンピュータが応答を受け取るので、Ｉ／Ｏ処理のレスポンス性能が低下してしまうという問題があった。
【０００４】
公知例として、例えば、特開平７−１４６８２２号公報においては、情報処理システムの無停電電源装置による停電時等のバックアップ可能な時間を可変とすることにより、システム停止を最小限に抑えるべく、無停電電源装置でバックアップ可能時間に対応する値を初期値としてレジスタに格納し、停電等の発生時にレジスタの値をタイマーにより減少させ、ＯＳがレジスタの値を監視しながらディスクキャッシュメモリのデータ格納容量を減らしてシャットダウン処理開始時にディスクキャッシュメモリのデータを零にするため、ディスクキャッシュメモリのデータを二次記憶装置に移送する技術が開示されている。
【０００５】
上記の公知例は、ディスクキャッシュメモリの容量を無停電電源装置でバックアップ可能な時間に応じて動的に可変にすることにより、ユーザへの警告やアプリケーションプログラムの停止処理等のシャットダウン処理の開始を無停電電源装置によるバックアップ限界に近い時点まで遅らせて極力業務継続を可能にするようにしたシステムであり、無停電電源装置によるバックアップ可能な時間に対応したディスクキャッシュメモリ量の使用を行なうため、例えば、停電発生中に無停電電源装置が故障した場合、ディスクキャッシュメモリ内のダーティデータを二次記憶装置に退避できなかったり、また、停電発生中にＩ／Ｏ処理が不安定になる可能性がある。また、別の方法として、停電発生中の無停電電源装置の故障を考慮して、常時、ディスクキャッシュメモリの使用容量に対する無停電電源装置によるバックアップ可能な時間を短く見積もって余裕を見ておくことも考えられるが無駄が多い。
【０００６】
ＲＡＩＤ装置においては、停電発生時、あるいは、通常時のバッテリ残容量異常時もデータ保証を最優先課題とし、かつ、Ｉ／Ｏ処理を行ないながらレスポンス性能の低下を最小限に抑える必要がある。
【特許文献１】特開平７−１４６８２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、停電発生後のシャットダウン処理による確実なデータ保証を確保し、さらに、復電後からバッテリの充電完了までの間、また、通常運用中のバッテリ装置の故障、劣化時においてＩ／Ｏ処理のレスポンス性能の低下を最小限に抑えることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の請求項１に記載の発明は、記憶装置が有するバッテリ残容量を監視するステップと、前記バッテリ残容量に伴って前記記憶装置が有するキャッシュメモリ内のダーティデータの許容量を制御するステップと、前記ダーティデータの許容量が閾値以下のときは、ライトスルー運用を行なうステップと、前記ダーティデータの許容量が閾値より大きいときには、ライトバック運用を行なうステップとを有することを特徴とするダーティデータ処理方法である。
【０００９】
本発明によれば、記憶装置の停電時においても、すべてのダーティデータをバックアップディスクへ書き込む時間が保障されるように、バッテリ残容量に依存してダーティデータの許容量を変化させる。バッテリ残容量が十分な通常値の場合には、キャッシュメモリは最大許容量の使用が許可され、ライトバック運用される。
【００１０】
バッテリ残容量が通常値から外れて減少した場合、閾値を設け、閾値に達する迄はダーティデータの許容量を減少させ、ライトスルー運用に移行することなくライトバック運用を継続し、Ｉ／Ｏ処理のレスポンス性能低下を防ぐ。このように、停電が起こってもすべてのダーティデータをバックアップディスクへ書き込む時間が保証できるように、バッテリ残容量に依存してダーティデータの許容量を変化させ、ライトバック運用からライトスルー運用に移行することなく処理が継続される。
【００１１】
さらにバッテリ残容量が下がり、バッテリ残容量が閾値に達するとライトバック運用からライトスルー運用に移行する。このように、バッテリ残容量が減った場合でも定常的にライトスルー運用にすることなく、一定の閾値より下がった時にライトスルー運用に移行する。停電が起こる直前のバッテリ残容量が通常値よりも少ない場合であっても、ダーティデータはバッテリ残容量に依存して少なくなっているため、停電時のバックアップ時間は通常のバッテリ残容量のときより短縮され、バッテリ残容量が減少している場合でもバックアップ処理が保障される。そして、バッテリ残容量が閾値に達していないときのライトバック運用では、閾値を適切に選ぶことによりＩ／Ｏ処理のレスポンスも安定に行なわせることができる。また、バッテリ残容量がさらに減少し閾値に達するとライトバック運用からライトスルー運用に移行するため、一定のＩ／Ｏレスポンスを保障できる。
【００１２】
このように、バッテリ残容量に伴ってダーティデータ許容量を制御し、さらに、バッテリ残容量に閾値を設けてライトバック運用とライトスルー運用とを使い分けることにより、停電発生時においても、ダーティデータのバックアップディスクへの退避を確実に行ない、一定のＩ／Ｏレスポンスを保障できるようになっている。
【００１３】
ここで、停電発生の検知およびバッテリ残容量の監視は、例えば、公知の方法で行なわれる。
【００１４】
本発明の請求項２に記載の発明は、前記記憶装置は、停電発生からシャットダウン開始までの間においては、前記キャッシュメモリ内のダーティデータ許容量を一定とする制御を行なうことを特徴とする請求項１におけるダーティデータ処理方法である。
【００１５】
本発明によれば、記憶装置が特にＲＡＩＤ装置である場合には、データ保証を最優先に
するため、あえて停電発生からシャットダウン開始までの間にダーティデータ許容量の可変処理を行なわずにシャットダウン処理をすることにより確実にデータを保証する。
【００１６】
本発明の請求項３に記載の発明は、記憶装置が有するバッテリ残容量を監視するバッテリ残容量監視手段と、前記バッテリ残容量に伴って前記記憶装置が有するキャッシュメモリ内のダーティデータの許容量を制御するダーティデータ許容量制御手段と、前記ダーティデータの許容量が閾値以下のときは、ライトスルー運用を行なう手段と、前記ダーティデータの許容量が閾値より大きいときには、ライトバック運用を行なう手段とを有することを特徴とするダーティデータ処理装置である。
【００１７】
本発明の請求項４に記載の発明は、前記記憶装置は停電発生からシャットダウン開始までの間、前記キャッシュメモリ内のダーティデータ許容量の可変処理を行なわずにシャットダウン処理を行なうことを特徴とする請求項３におけるダーティデータ処理装置である。
【００１８】
本発明の請求項５に記載の発明は、ダーティデータ処理プログラムであって、コンピュータを、記憶装置が有するバッテリ残容量を監視するバッテリ残容量監視手段と、前記バッテリ残容量に伴って前記記憶装置が有するキャッシュメモリ内のダーティデータの許容量を制御するダーティデータ許容量制御手段と、前記ダーティデータの許容量が閾値以下のときは、ライトスルー運用を行なう手段と、前記ダーティデータの許容量が閾値より大きいときには、ライトバック運用を行なう手段として、機能させるためのダーティデータ処理プログラムである。
【発明の効果】
【００１９】
本発明によれば、停電発生後のシャットダウン処理による確実なデータ保証を確保し、さらに、復電後からバッテリの充電完了までの間、また、通常運用中のバッテリ装置の故障、劣化時においてＩ／Ｏ処理のレスポンス性能の低下を最小限に抑えシステムの運用をすることができる。
【００２０】
ダーティデータが０になる迄ライトバック運用を行なうのではなく、バッテリの残容量に閾値を設け、かつ、ダーティデータ容量に応じてライトバック運用と、ライトスルー運用とを使い分けるため、ダーティデータが０になる迄ライトバック運用を行なう場合と比べて、Ｉ／Ｏ処理のレスポンスが不安定になりにくい。
【発明を実施するための最良の形態】
【００２１】
図１は、本発明による装置の一実施例である。ＲＡＩＤ装置１は、ホストコンピュータ２に接続されている。ＲＡＩＤ装置１は、ＲＡＩＤコントローラ１−１、バックアップディスク１−２、ディスク１−３、キャッシュメモリ１−４、ダーティデータ１−５、バッテリ通常時のダーティデータ許容領域１−６、バッテリ１−７を有する。
【００２２】
ＲＡＩＤコントローラ１−１は、ＲＡＩＤ装置１内、そしてまた、ホストコンピュータ２とＲＡＩＤ装置１との情報のやりとりを制御するコントローラである。バックアップディスク１−２は、ＲＡＩＤ装置１に係るバックアップ用のディスク装置であって、停電発生時にはダーティデータ１−５が退避される。ディスク１−３は、ＲＡＩＤ装置１に納められているメインのディスク装置である。そしてキャッシュメモリ１−４はＲＡＩＤ装置１内のディスク装置のキャッシュメモリであり、例えば、高速な半導体メモリで構成されている。ダーティデータ１−５はキャッシュメモリ１−４内に記憶され、所定時に逐次ディスク１−３内の該当情報領域に上書きされる。バッテリの残容量がフルとなっている通常時のダーティデータ許容領域１−６は、ＲＡＩＤ装置１のバッテリ１−７がフルに充電されているときに使用が許可されているダーティデータ書き込みデータ領域であり、バッテリ１−７がフルに充電されていない状態、すなわち、バッテリ１−７の故障時や修復時には、ダーティデータ１−５に示されるようにバッテリ通常時のダーティデータ許容領域１−６よりも少ない容量で運用される。
【００２３】
図２は、ダーティデータ容量可変処理の説明図である。２種類の MAX Dirty Page、すなわち、Default MAX Dirty Page２−１とCurrent MAX Dirty Page２−２とを図１のＲＡＩＤコントローラ１−１の内部にもっている。Default MAX Dirty Page２−１は構成上のMAX Dirty Pageであり、バッテリ残容量に異常がない場合に保持可能なDirty Page数が設定される。装置の電源投入時に決定され、バッテリ残容量の異常時にも変動せず、Current MAX Dirty Page２−２の値を決定するのに使用される。Current MAX Dirty Page２−２は、運用上のMAX Dirty Pageであり、通常動作時はDefault MAX Dirty Page２−１と同じ値であるが、バッテリ残容量の異常時には減少し、Dirty Pageの制限のために使用される。
【００２４】
現在のDirty Page数（以下 Dirty Countと称す）を、例えば、内部カウンタにより管理してCurrent MAX Dirty Page２−２を越えないように制御する。図２には、バッテリ残容量に異常のない通常動作時のDirty Count２−３が示されている。
【００２５】
ここで、バッテリ残容量に変動があった場合に、図１のＲＡＩＤコントローラに何パーセント分のDirty Pageまでバックアップ可能かが通知される。キャッシュ制御部では通知されたダーティページ・パーセンテージから以下のようにCurrent MAX dirty pageを変更する。
Current MAX Dirty Page = Default MAX Dirty Page × Dirty Pageパーセンテージ。
ここで、DirtyPageパーセンテージが低く、Current MAX Dirty Pageが少なく設定されるとダーティデータが枯渇して、動作保障が難しくなるため、Dirty Pageパーセンテージが一定の閾値を下回った場合にはライトスルー運用を行う。
【００２６】
変更後のCurrent MAX Dirty Pageにより以下のように処理が分かれる。
Current MAX Dirty Pageに変動がない場合には、特に処理を行わない。
そして、Current MAX Dirty Pageが減った場合の処理を、図３のCurrent MAX Dirty Pageが減った場合の処理例を基に説明する。
はじめに、例えば、バッテリ故障により、バックアップ可能なダーティデータ許容量が一度に大きく減少した場合、例として、４つのバッテリのうち１つが故障して一度に２５％の容量減少した場合、その時点でのバッテリ残容量でバックアップ可能なダーティデータ容量になるまでキャッシュメモリのデータをターゲットディスクへ書き戻す。ここで、ライトバック運用を行なうと、キャッシュメモリのデータをターゲットディスクへ書き戻し完了するまでＩ／Ｏ処理を全く受け付けることができない。そこで、本発明においてはライトバック運用とライトスルー運用とを組み合わせることによりＩ／Ｏ処理を受け付けることができるようになっている。ここで、Dirty Pageパーセンテージが一定の閾値を下回った場合に移行するライトスルー運用を「バッテリ異常要因のライトスルー運用」、バッテリ故障によりDirty CountがCurrent MAX Dirty Pageを越えてしまった場合に移行するライトスルー運用を「Dirty枯渇要因のライトスルー運用」と称すことにする。
【００２７】
図３において、バッテリ残容量の変動通知を受け取ったことによりCurrent MAX Dirty Page３−４が閾値以下になった場合は、バッテリ異常要因のライトスルー運用に移行する。ただし、それまでDirty枯渇要因のライトスルー運用を行っていたときは、Dirty枯渇要因のライトスルー運用をいったん解除し、あらためてバッテリ異常要因のライトスルー運用に移行する。また、もともとバッテリ異常要因のライトスルー運用を行っていたときは移行の制御は行わない。
【００２８】
通知を受け取ってもCurrent MAX Dirty Page３−４が閾値以上の場合、かつ、Dirty Count３−３がCurrent MAX Dirty Page３−４より大きい場合には、Dirty枯渇要因のライトスルー運用に移行する。
【００２９】
ここで、現在の状態がDirty枯渇要因のライトスルー運用以外の場合には処理を完了するが、Dirty枯渇要因のライトスルー運用である場合には、Over Dirty Countが０になるまでターゲットディスクへのライトバックを加速して行い、Over Dirty Countが０になった時点でDirty枯渇要因のライトスルー運用を解除し、ライトバック運用へ移行する。
【００３０】
Current MAX Dirty Pageが増えた場合について、図４のCurrent MAX Dirty Pageが増えた場合の処理例を基に説明する。
【００３１】
バッテリ残容量の変動通知を受け取った時点でバッテリ異常要因のライトスルー運用を行っていたときは、ライトバック運用に移行する。ただし、Current MAX Dirty Page４−４が閾値を越えない場合は移行の制御は行なわない。
【００３２】
通知を受け取った時点でDirty枯渇要因のライトスルー運用を行っていたときは、Dirty枯渇要因のライトスルー運用をいったん解除し、ライトバック運用へ移行する。
【００３３】
通知を受け取った時点でDirty Count４−３がCurrent MAX Dirty Page４−４より大きい場合には、Dirty枯渇要因のライトスルー運用に移行する。
【００３４】
ここで、現在の状態がDirty枯渇要因のライトスルー運用以外の場合には処理を完了するが、Dirty枯渇要因のライトスルー運用である場合には、0ver Dirty Countが０になるまでターゲットディスクへのライトバックを加速して行い、Over Dirty Countが０になった時点でDirty枯渇要因のライトスルー運用を解除し、ライトバック運用へ移行する。
【００３５】
以上のように、本発明においては、バッテリ残容量に所定の閾値を設けてダーティデータ量に応じてライトバック運用とライトスルー運用に移行しながら運用するため、バッテリ残容量の多少にかかわらず一定のＩ／Ｏレスポンスを保障できる。また、バッテリ異常が発生したとしても、一定のＩ／Ｏレスポンスを保障でき、さらに、停電発生時はバッテリ故障が起こってもデータを失うことのないように、停電発生後はシャットダウン処理により確実なデータ保証を行なうこともできる。
【図面の簡単な説明】
【００３６】
【図１】本発明による装置の一実施例
【図２】ダーティデータ容量可変処理の説明図
【図３】Current MAX Dirty Pageが減った場合の処理例
【図４】Current MAX Dirty Pageが増えた場合の処理例
【符号の説明】
【００３７】
１      ＲＡＩＤ装置
１−１  ＲＡＩＤコントローラ
１−２  バックアップディスク
１−３  ディスク
１−４  キャッシュメモリ
１−５  ダーティデータ
１−６  バッテリ通常時のダーティデータ許容領域
１−７  バッテリ
２     ホストコンピュータ
【図１】
2006313407.tif 000003
【図２】
2006313407.tif 000004
【図３】
2006313407.tif 000005
【図４】
2006313407.tif 000006