(57)【特許請求の範囲】
【請求項１】
上位装置からの要求に応じてデータを入出力する記憶制御装置であって、
複数クラスタによる冗長構成を備えており、
前記各クラスタは、
前記上位装置と通信するための第１通信制御部と、
データを記憶する記憶装置と通信するための第２通信制御部と、
前記第１通信制御部及び前記第２通信制御部により共用されるメモリ部と、
前記第１通信制御部及び前記第２通信制御部を制御する制御部と、
クラスタ内部の状態を管理するための管理端末と、
を含み、
前記各クラスタ内の前記メモリ部は、
揮発性を有し、データを記憶するためのデータメモリと、管理データを記憶するための管理データメモリとを含む第１メモリと、
不揮発性を有する第２メモリと、
前記第１メモリに電力を供給するバッテリと、
を含み、
前記各制御部は、前記各バッテリの残量に基づいて、データを保護するための動作モードを制御するものであり、
前記各制御部には、前記データメモリに記憶されている前記データと前記管理データメモリに記憶されている前記管理データとを前記第２メモリに退避させるために必要なバッテリ残量を示す第１閾値と、前記管理データメモリに記憶されている管理データを前記第２メモリに退避させるために必要な他のバッテリ残量を示す第２閾値とが変更可能に設定されており、
前記各制御部は、
前記各クラスタ内の前記各バッテリの残量を検出し、
前記各バッテリの残量が前記第１閾値以上であるか否かを判定するための第１判定を実行し、
前記第１判定の結果が肯定的な場合、前記上位装置からのライトデータを、前記各データメモリに記憶させた時点でライト処理完了を前記上位装置に通知するという通常モードを実行し、
前記第１判定の結果が否定的な場合、前記各バッテリのうちいずれか一方のバッテリの残量が前記第１閾値以上であって、かつ、前記各バッテリのうちいずれか他方のバッテリの残量が前記第１閾値未満であるか否かを判定するための第２判定を実行し、
前記第２判定の結果が肯定的な場合、前記管理端末を介して警告を出力し、さらに、前記通常モードを実行し、
前記第２判定の結果が否定的な場合、前記各バッテリの残量が前記第２閾値以上であって、かつ、前記第１閾値未満であるか否かを判定するための第３判定を実行し、
前記第３判定の結果が肯定的な場合、前記管理端末を介して警告を出力し、さらに、前記上位装置からのライトデータを前記制御部と同一クラスタに属する前記データメモリ及び前記記憶装置にそれぞれ記憶させた後でライト処理完了を前記上位装置に通知するというライトスルーモードを実行し、
前記第３判定の結果が否定的な場合、前記各バッテリのうちいずれか一方のバッテリの残量が前記第２閾値以上であって、かつ、前記各バッテリのうちいずれか他方のバッテリの残量が前記第２閾値未満であるか否かを判定するための第４判定を実行し、
前記第４判定の結果が肯定的な場合、前記管理端末を介して警告を出力し、さらに、前記制御部と同一クラスタにおいて前記ライトスルーモードを実行し、
前記第４判定の結果が否定的な場合、前記上位装置からのアクセスを禁止するアクセス不可状態に設定し、さらに、前記管理端末を介して警告を出力し、
所定時間が経過しても前記第４判定の結果が否定的な場合、前記上位装置によるアクセスを許可するアクセス可能状態に設定変更し、さらに、前記ライトスルーモードを実行し、
前記バッテリへの入力電圧が停止した場合には、前記制御部と同一クラスタにおいて、前記第１メモリに記憶されている前記データ及び前記管理データを前記第２メモリに転送させる退避処理を開始し、
前記バッテリへの入力電圧が回復した場合であって、前記バッテリの残量が前記第１閾値以上の場合は、前記退避処理を中止し、前記バッテリの残量が前記第１閾値未満の場合は、前記退避処理を継続し、
前記第１メモリに搭載される前記データメモリの数に応じて前記第１閾値を設定し、さらに、前記第１メモリに搭載される前記管理データメモリの数に応じて前記第２閾値を設定する、
記憶制御装置。
【請求項２】
上位装置からの要求に応じてデータを入出力する記憶制御装置であって、
複数クラスタによる冗長構成を備えており、
前記各クラスタは、
前記上位装置と通信するための第１通信制御部と、
データを記憶する記憶装置と通信するための第２通信制御部と、
前記第１通信制御部及び前記第２通信制御部により共用されるメモリ部と、
前記第１通信制御部及び前記第２通信制御部を制御する制御部と、
を含み、
前記各クラスタ内の前記メモリ部は、
揮発性を有し、データを記憶するためのデータメモリと、管理データを記憶するための管理データメモリとを含む第１メモリと、
不揮発性を有する第２メモリと、
前記第１メモリに電力を供給するバッテリと、
を含み、
前記各制御部は、前記各バッテリの残量に基づいて、データを保護するための動作モードを制御するものであり、
データを保護するための前記動作モードには、
前記上位装置からのライトデータを前記データメモリに記憶させた時点でライト処理完了を前記上位装置に通知するという通常モードと、
前記上位装置からのライトデータを前記データメモリ及び前記記憶装置にそれぞれ記憶させた後でライト処理完了を前記上位装置に通知するというライトスルーモードと、
前記上位装置からのアクセスを禁止するアクセス不可モードと、
が含まれており、
前記各バッテリの残量のうち少なくともいずれか一方のバッテリの残量が、前記各第１メモリ内の前記データ及び前記管理データを前記各第２メモリに退避させることができる第１閾値以上の場合、前記通常モードが選択され、
前記各バッテリの残量の両方が前記第１閾値未満であって、かつ、前記各バッテリの残量のうち少なくともいずれか一方のバッテリの残量が前記各第１メモリ内の前記管理データを前記第２メモリに退避させることができる第２閾値以上の場合、前記ライトスルーモードが選択され、
前記各バッテリの残量の両方が前記第２閾値未満であって、かつ、所定時間が経過する前は、前記アクセス不可モードが選択される、
記憶制御装置。
【請求項３】
前記各バッテリの残量の両方が前記第２閾値未満であって、かつ、前記所定時間が経過した場合は、前記アクセス不可モードから前記ライトスルーモードに切り換えられる、
請求項２に記載の記憶制御装置。
【請求項４】
前記各制御部は、自分の属するクラスタにおいて、
前記バッテリへの入力電圧が停止した場合、前記第１メモリに記憶されている前記データ及び前記管理データを前記第２メモリに転送させる退避処理を開始し、
前記バッテリへの入力電圧が回復した場合であって、前記バッテリの残量が前記各第１メモリ内の前記データ及び前記管理データを前記各第２メモリに退避させることができる第１閾値以上の場合は、前記退避処理を中止し、
前記バッテリへの入力電圧が回復した場合であって、前記バッテリの残量が前記第１閾値未満の場合は、前記退避処理を継続する、
請求項２に記載の記憶制御装置。
【請求項５】
前記第１メモリに搭載される前記データメモリの数に応じて、前記第１閾値を設定する、請求項４に記載の記憶制御装置。
【請求項６】
前記第１メモリに搭載される前記管理データメモリの数に応じて、前記第２閾値を設定する、請求項５に記載の記憶制御装置。
【請求項７】
前記各制御部は、前記各クラスタのうち自分の属するクラスタのバッテリを交換する場合、相手方の制御部の有する前記第１閾値を所定値だけ増加させる、請求項２に記載の記憶制御装置。
【請求項８】
記憶制御装置の動作モードを制御するための方法であって、
前記記憶制御装置は、複数クラスタによる冗長構成を備えており、
前記各クラスタは、
上位装置と通信するための第１通信制御部と、
データを記憶する記憶装置と通信するための第２通信制御部と、
前記第１通信制御部及び前記第２通信制御部により共用されるメモリ部と、
を含み、
前記各クラスタ内の前記メモリ部は、
揮発性を有する第１メモリであって、データを記憶するためのデータメモリと管理データを記憶するための管理データメモリとを備える第１メモリと、
前記第１メモリに電力を供給するバッテリと、
不揮発性を有する第２メモリと、
を含み、
前記動作モードには、
前記上位装置からのライトデータを前記データメモリに記憶させた時点でライト処理完了を前記上位装置に通知するという通常モードと、
前記上位装置からのライトデータを前記データメモリ及び前記記憶装置にそれぞれ記憶させた後でライト処理完了を前記上位装置に通知するというライトスルーモードと、
前記上位装置からのアクセスを禁止するアクセス不可モードと、
が含まれており、
前記各バッテリの残量のうち少なくともいずれか一方のバッテリの残量が、前記各第１メモリ内の前記データ及び前記管理データを前記各第２メモリに退避させることができる第１閾値以上の場合、前記通常モードが選択され、
前記各バッテリの残量の両方が前記第１閾値未満であって、かつ、前記各バッテリの残量のうち少なくともいずれか一方のバッテリの残量が前記各第１メモリ内の前記管理データを前記第２メモリに退避させることができる第２閾値以上の場合、前記ライトスルーモードが選択され、
前記各バッテリの残量の両方が前記第２閾値未満であって、かつ、所定時間が経過する前は、前記アクセス不可モードが選択される、
記憶制御装置の動作モード制御方法。
【請求項９】
前記各バッテリの残量の両方が前記第２閾値未満であって、かつ、前記所定時間が経過した場合は、前記アクセス不可モードから前記ライトスルーモードに切り換えられる、
請求項８に記載の記憶制御装置の動作モード制御方法。
【請求項１０】
前記第１メモリに搭載される前記データメモリの数に応じて、前記第１閾値を設定する、請求項８に記載の記憶制御装置の動作モード制御方法。
【請求項１１】
前記各バッテリのうちいずれか一方のバッテリを交換する場合、前記各クラスタのうち交換対象のバッテリを備えていないクラスタについての前記第１閾値を所定値だけ増加させる、請求項８に記載の記憶制御装置の動作モード制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置及び記憶制御装置の動作モード制御方法に関する。
【背景技術】
【０００２】
企業等のユーザは、記憶制御装置を用いてデータを管理する。記憶制御装置は、データを保護するために、ユーザデータをＲＡＩＤ（Redundant Array of Independent Disks）に基づく冗長な記憶領域に記憶させる。
【０００３】
記憶制御装置はバッテリを備えており、停電が発生した場合には、バッテリからの電力により、キャッシュメモリにのみ記憶されているダーティデータを記憶装置に書き込むようになっている（特許文献１）。前記文献に記載の従来技術では、バッテリの残容量が少なくなるにつれてダーティデータの許容量を低下させ、さらに、バッテリの残容量が閾値以下になった場合は、ライトバック運用からライトスルー運用に切り替える。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１３４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前記文献に記載の従来技術は冗長構成を備えていないため、バッテリ等を複数備える、冗長構成を有する記憶制御装置に、そのまま適用するのは難しい。さらに、記憶制御装置は、必要に応じて構成を変化させることができるが、従来技術では、データを保護するための動作モードを構成変更に対応させることができない。
【０００６】
そこで、本発明の目的は、冗長構成を有する記憶制御装置において、信頼性と使い勝手の両立を図ることができるようにした記憶制御装置及び記憶制御装置の動作モード制御方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００７】
上記課題を解決すべく、本発明の第１観点に従う記憶制御装置は、上位装置からの要求に応じてデータを入出力する記憶制御装置であって、複数クラスタによる冗長構成を備えており、各クラスタは、上位装置と通信するための第１通信制御部と、データを記憶する記憶装置と通信するための第２通信制御部と、第１通信制御部及び第２通信制御部により共用されるメモリ部と、第１通信制御部及び第２通信制御部を制御する制御部と、を含み、各クラスタ内のメモリ部は、揮発性を有する第１メモリと、第１メモリに電力を供給するバッテリと、を含み、各制御部は、各バッテリの残量に基づいて、データを保護するための動作モードを制御する。
【０００８】
第２観点では、第１観点において、各クラスタには、それぞれのクラスタ内部の状態を管理するための管理端末が含まれており、各メモリ部には、不揮発性を有する第２メモリが含まれており、各第１メモリには、データを記憶するためのデータメモリと、管理データを記憶するための管理データメモリとが含まれており、各制御部には、データメモリに記憶されているデータと管理データメモリに記憶されている管理データとを第２メモリに退避させるために必要なバッテリ残量を示す第１閾値と、管理データメモリに記憶されている管理データを第２メモリに退避させるために必要な他のバッテリ残量を示す第２閾値とが変更可能に設定されており、各制御部は、各クラスタ内の各バッテリの残量を検出し、各バッテリの残量が第１閾値以上であるか否かを判定するための第１判定を実行し、第１判定の結果が肯定的な場合、上位装置からのライトデータを、各データメモリに記憶させた時点でライト処理完了を上位装置に通知するという通常モードを実行し、第１判定の結果が否定的な場合、各バッテリのうちいずれか一方のバッテリの残量が第１閾値以上であって、かつ、各バッテリのうちいずれか他方のバッテリの残量が第１閾値未満であるか否かを判定するための第２判定を実行し、第２判定の結果が肯定的な場合、管理端末を介して警告を出力し、さらに、通常モードを実行し、第２判定の結果が否定的な場合、各バッテリの残量が第２閾値以上であって、かつ、第１閾値未満であるか否かを判定するための第３判定を実行し、第３判定の結果が肯定的な場合、管理端末を介して警告を出力し、さらに、上位装置からのライトデータを制御部と同一クラスタに属するデータメモリ及び記憶装置にそれぞれ記憶させた後でライト処理完了を上位装置に通知するというライトスルーモードを実行し、第３判定の結果が否定的な場合、各バッテリのうちいずれか一方のバッテリの残量が第２閾値以上であって、かつ、各バッテリのうちいずれか他方のバッテリの残量が第２閾値未満であるか否かを判定するための第４判定を実行し、第４判定の結果が肯定的な場合、管理端末を介して警告を出力し、さらに、制御部と同一クラスタにおいてライトスルーモードを実行し、第４判定の結果が否定的な場合、上位装置からのアクセスを禁止するアクセス不可状態に設定し、さらに、管理端末を介して警告を出力し、所定時間が経過しても第４判定の結果が否定的な場合、上位装置によるアクセスを許可するアクセス可能状態に設定変更し、さらに、ライトスルーモードを実行し、バッテリへの入力電圧が停止した場合には、制御部と同一クラスタにおいて、第１メモリに記憶されているデータ及び管理データを第２メモリに転送させる退避処理を開始し、バッテリへの入力電圧が回復した場合であって、バッテリの残量が第１閾値以上の場合は、退避処理を中止し、バッテリの残量が第１閾値未満の場合は、退避処理を継続し、第１メモリに搭載されるデータメモリの数に応じて第１閾値を設定し、さらに、第１メモリに搭載される管理データメモリの数に応じて第２閾値を設定する。
【０００９】
第３観点では、第１観点において、各メモリ部には、不揮発性を有する第２メモリが含まれており、各第１メモリには、データを記憶するためのデータメモリと、管理データを記憶するための管理データメモリとが含まれており、データを保護するための動作モードには、上位装置からのライトデータをデータメモリに記憶させた時点でライト処理完了を上位装置に通知するという通常モードと、上位装置からのライトデータをデータメモリ及び記憶装置にそれぞれ記憶させた後でライト処理完了を上位装置に通知するというライトスルーモードと、上位装置からのアクセスを禁止するアクセス不可モードと、が含まれており、各バッテリの残量のうち少なくともいずれか一方のバッテリの残量が、各第１メモリ内のデータ及び管理データを各第２メモリに退避させることができる第１閾値以上の場合、通常モードが選択され、各バッテリの残量の両方が第１閾値未満であって、かつ、各バッテリの残量のうち少なくともいずれか一方のバッテリの残量が各第１メモリ内の管理データを第２メモリに退避させることができる第２閾値以上の場合、ライトスルーモードが選択され、各バッテリの残量の両方が第２閾値未満であって、かつ、所定時間が経過する前は、アクセス不可モードが選択される。
【００１０】
第４観点では、第３観点において、各バッテリの残量の両方が第２閾値未満であって、かつ、所定時間が経過した場合は、アクセス不可モードからライトスルーモードに切り換えられる。
【００１１】
第５観点では、第３観点において、各制御部は、自分の属するクラスタにおいて、バッテリへの入力電圧が停止した場合、第１メモリに記憶されているデータ及び管理データを第２メモリに転送させる退避処理を開始し、バッテリへの入力電圧が回復した場合であって、バッテリの残量が各第１メモリ内のデータ及び管理データを各第２メモリに退避させることができる第１閾値以上の場合は、退避処理を中止し、バッテリへの入力電圧が回復した場合であって、バッテリの残量が第１閾値未満の場合は、退避処理を継続する。
【００１２】
第６観点では、第５観点において、第１メモリに搭載されるデータメモリの数に応じて、第１閾値を設定する。
【００１３】
第７観点では、第６観点において、第１メモリに搭載される管理データメモリの数に応じて、第２閾値を設定する。
【００１４】
第８観点では、第３観点において、各制御部は、各クラスタのうち自分の属するクラスタのバッテリを交換する場合、相手方の制御部の有する第１閾値を所定値だけ増加させるようになっている。
【００１５】
本発明は、記憶制御装置の動作モードを制御するための方法として把握可能である。さらに、本発明の構成の少なくとも一部は、コンピュータプログラムとして構成できる。このコンピュータプログラムは、記録媒体に固定して配布したり、通信ネットワークを介して配信することができる。さらに、前記観点の組合せ以外の他の組合せも本発明の範囲に含まれる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施形態の概要を示す説明図である。
【図２】図２は、記憶制御装置のハードウェア構成図である。
【図３】図３は、メモリパッケージの斜視図である。
【図４】図４は、管理画面の構成を示す説明図である。
【図５】図５は、各バッテリの残量と動作モードの関係を示す説明図である。
【図６】図６は、通常の監視処理を示すフローチャートである。
【図７】図７は、図６に続くフローチャートである。
【図８】図８は、停電時の監視処理を示すフローチャートである。
【図９】図９は、停電後の再起動時の監視処理を示すフローチャートである。
【図１０】図１０は、バッテリ交換時の処理を示すフローチャートである。
【図１１】図１１は、図１０に続くフローチャートである。
【図１２】図１２は、メモリ枚数に応じて閾値を変更する処理を示すフローチャートである。
【図１３】図１３は、閾値の初期値を管理するテーブルである。
【図１４】図１４は、閾値の変更に使用するテーブルである。
【図１５】図１５は、メモリ枚数に応じて閾値が変化する様子を示す説明図。
【図１６】図１６は、バッテリ交換時に閾値を変更する処理のフローチャート。
【発明を実施するための形態】
【００１７】
以下、図面に基づいて、本発明の実施の形態を説明する。最初に、図１を参照して本発明の概要を説明し、次に、図２以降を参照して実施例について説明する。図１は、本発明の理解及び実施に必要な程度で記載されている。本発明の範囲は、図１に記載の構成に限定されない。図１に記載されていない特徴は、後述の実施例で明らかにされる。
【００１８】
図１の上側に示すように、記憶制御装置は、クラスタ１とクラスタ２とにより冗長構成を備えている。各クラスタ１，２及び記憶制御装置の詳細な構成例は後述する。各クラスタ１，２は、メモリパッケージを備えている。各メモリパッケージは、例えば、複数のキャッシュメモリ３と、フラッシュメモリデバイス４と、バッテリ５とを備える。
【００１９】
各キャッシュメモリ３は、バッテリ５からの給電により、データを保持する。フラッシュメモリデバイス４は、各キャッシュメモリ３に接続されている。フラッシュメモリデバイス４には、バッテリ５の残量が低下した場合に、各キャッシュメモリ３に記憶されているデータが転送されて記憶される。バッテリ５の残量が回復した場合、フラッシュメモリデバイス４に退避されたデータは、キャッシュメモリ３に戻される。
【００２０】
図１の下側には、各クラスタ１，２内のバッテリ３の状態と動作モードとの関係が模式的に示されている。図１の下側には、（１）−（５）の５つのバッテリ残量状態と、動作モードとが示されている。
【００２１】
バッテリ残量は、複数の閾値Ｔｈ１，Ｔｈ２と比較される。第１閾値Ｔｈ１は、キャッシュメモリ３に記憶されているデータ（ユーザデータ）及び管理データの両方をフラッシュメモリデバイス４に退避させることのできるバッテリ残量として設定される。第２閾値Ｔｈ２は、キャッシュメモリ３に記憶されている管理データのみをフラッシュメモリデバイス４に退避させることのできるバッテリ残量として設定される。ユーザデータとは、ホストにより使用されるデータである。管理データとは、データの格納先等の管理情報を管理するためのデータである。後述のように、各閾値Ｔｈ１，Ｔｈ２は、キャッシュメモリ３の枚数に応じて変更することができる。
【００２２】
状態（１）に示すように、各バッテリ５の残量が第１閾値Ｔｈ１以上の場合、動作モードとして通常モードが選択される。通常モードでは、ホストから受信したライトデータをキャッシュメモリ３に書き込んだ時点で、ライト処理が完了した旨をホストに通知する。その後、タイミングを見計らって、キャッシュメモリ３に記憶されたライトデータを記憶装置に書き込む。従って、記憶制御装置が通常モードで動作する場合、記憶制御装置の応答性が向上する。
【００２３】
状態（２）に示すように、各クラスタ１，２のうちいずれか一方のクラスタ（図１（２）では、クラスタ２）のバッテリ残量が第１閾値Ｔｈ１を下回ると、記憶制御装置を管理するユーザ（管理者）に、警告が発せられる。例えば、記憶制御装置に接続された管理端末の画面を介して、または、ユーザ宛に送信される電子メールを介して、ユーザに警告が与えられる。動作モードとしては、引き続き通常モードが選択される。
【００２４】
状態（３）に示すように、各クラスタ１，２の両方でバッテリ残量が第１閾値Ｔｈ１を下回ると、ユーザに警告が発せられる。各バッテリ残量が、第２閾値Ｔｈ２以上であって、かつ、第１閾値Ｔｈ１未満の場合である。
【００２５】
動作モードは、通常モードからライトスルーモードに変更される。ライトスルーモードとは、ホストから受領したライトデータをキャッシュメモリ３に記憶させ、さらに記憶装置に書き込んだ後で、ライト処理が完了した旨をホストに通知するモードである。ライトスルーモードは、記憶装置にライトデータを書き込んだことを確認した後でホストに処理完了を通知する。従って、ライトスルーモードでは、通常モードよりもホストへの通知が遅れるため、応答性が低下する。
【００２６】
状態（３）の場合において停電すると、キャッシュメモリ３に記憶されたデータ及び管理データが、フラッシュメモリデバイス４に転送されて記憶される。例えば、管理データから先にフラッシュメモリデバイス４に退避し、続いて、ユーザデータがフラッシュメモリデバイス４に退避する。ユーザデータと管理データとを特に区別しない場合は、「データ」と呼ぶ。
【００２７】
さらに、後述のように、フラッシュメモリデバイス４へのデータ退避中に停電が解消された場合、バッテリ残量に応じて、データ退避を継続するか、または、中止するかが決定される。例えば、バッテリ残量が第１閾値Ｔｈ１以上の場合はキャッシュメモリ３からフラッシュメモリデバイス４へのデータ退避を中止する。バッテリ残量が十分あるため、再び停電が生じた場合でも、キャッシュメモリ３からフラッシュメモリデバイス４にデータを退避させることができるためである。これに対し、停電解消後のバッテリ残量が第１閾値Ｔｈ１未満の場合は、データ退避を継続する。停電が繰り返されると、データ退避を正常に完了できない可能性があるためである。従って、バッテリ残量が不十分な場合は、停電が解消しても、データ退避を続行する。
【００２８】
なお、説明の便宜上、状態（３）において停電する場合を述べたが、状態（１）−（５）のいずれの場合でも停電する可能性はある。
【００２９】
状態（４）に示すように、各バッテリ５のうちいずれか一方のバッテリ残量が第２閾値Ｔｈ２以上であって、かつ、いずれか他方のバッテリ残量が第２閾値Ｔｈ２未満になると、状態（３）と同様にユーザに警告が発せられ、動作モードとしてライトスルーモードが選択される。いずれか一つのバッテリ残量が第２閾値Ｔｈ２以上であれば、キャッシュメモリ３内の管理データをフラッシュメモリデバイス４に退避可能である。冗長化されている管理データのうちの少なくとも一つを退避させることができれば、データ格納先等を管理することができる。従って、ライトスルーモードで運用を続ける。
【００３０】
状態（５）に示すように、各バッテリ残量がいずれも第２閾値Ｔｈ２未満になると、ユーザに警告が発せられ、かつ、記憶制御装置はノットレディ状態に設定される。つまり、記憶制御装置は、ホストからのアクセス要求の受付を停止する。両方のバッテリ残量が第２閾値未満の場合において、もしも停電になると、キャッシュメモリ３内の管理データをフラッシュメモリデバイス４に退避させることができない可能性がある。ホストから受領したユーザデータを記憶装置に書き込んでも、その書込先等を管理する管理データが消失してしまうと、そのユーザデータにアクセスすることができなくなる。そこで、状態（５）の場合は、ホストによる記憶制御装置の使用を禁止する。
【００３１】
記憶制御装置がノットレディ状態の間に、バッテリ５が充電されると、上述した状態（１）−（４）のいずれかに切り替わる。これに対し、各バッテリ５に十分充電されず、記憶制御装置のノットレディ状態が所定時間以上継続した場合、記憶制御装置は強制的にレディ状態に設定される。記憶制御装置が長時間使用不能になると、使い勝手が低下し、ユーザの不満が増大するためである。
【００３２】
換言すれば、各バッテリ残量が第２閾値未満になった場合は、所定時間だけ各バッテリ５の回復を待ち、所定時間経過しても各バッテリ５のうちいずれか一つの残量が第２閾値Ｔｈ２以上に回復しない場合は、強制的に記憶制御装置をレディ状態に設定する。
【００３３】
このように構成される本実施形態によれば、複数クラスタ１，２による冗長構成を備えた記憶制御装置において、各バッテリ５の残量に応じて、データを保護するための動作モードを変化させることができる。
【００３４】
本実施形態では、各メモリパッケージ内にキャッシュメモリ３とフラッシュメモリデバイス４及びバッテリ５を設け、停電時にはバッテリ５からの電力を利用して、キャッシュメモリ３内のデータ（管理データ及びユーザデータ）をフラッシュメモリデバイス４に退避させる。このような冗長化されたハードウェア構成において、本実施形態では、各バッテリ５の残量を複数の閾値Ｔｈ１，Ｔｈ２と比較することにより、通常モードと、ライトスルーモードと、アクセス不可モード（ノットレディ状態に設定するモード）という複数のモードの中からいずれか一つを動作モードとして選択する。従って、本実施形態では、記憶制御装置の冗長構成を利用して、信頼性向上と使い勝手の改善との両立を図ることができる。
【００３５】
本実施形態では、各バッテリ５の残量が第２閾値Ｔｈ２未満になった場合に、記憶制御装置をノットレディ状態に設定し、ノットレディ状態が所定時間以上継続した場合は、強制的にレディ状態に変更する。これにより、記憶制御装置が長時間停止するのを防止して、使い勝手の低下を抑制できる。
【実施例１】
【００３６】
図２は、本実施例に係る記憶制御装置ＳＣの全体構成を示す。記憶制御装置ＳＣは、例えば、一つのコントローラシャーシ１０と、少なくとも一つのドライブシャーシ２０とを含む。記憶制御装置ＳＣは、図２中左側に示す第１クラスタと図２中右側に示す第２クラスタとによる冗長構成を備えている。各クラスタは同一構成を備えており、かつ、各クラスタは連携して動作可能である。従って、いずれか一方のクラスタが故障等により停止した場合でも、他方のクラスタにより記憶制御装置ＳＣを動作させることができる。
【００３７】
コントローラシャーシ１０は、記憶制御装置ＳＣの動作を制御するためのコントローラ１００を備える。コントローラ１００には、第１クラスタ及び第２クラスタが設定されており、各クラスタには複数のＡＣ／ＤＣ電源１０１からそれぞれ電力が供給される。即ち、ＡＣ／ＤＣ電源１０１も冗長化されており、いずれか一方のＡＣ／ＤＣ電源１０１が故障等で停止した場合でも、他方のＡＣ／ＤＣ電源１０１がコントローラ１００に電力を供給できるようになっている。
【００３８】
コントローラ１００に設定される第１クラスタ及び第２クラスタのうち、第１クラスタに着目してコントローラ１００の構成を説明する。コントローラ１００のうち第１クラスタに属する部分には、例えば、複数のチャネルアダプタ１１０と、複数のディスクアダプタ１２０と、複数の制御パッケージ１３０と、複数のメモリパッケージ１４０と、複数のスイッチ１５０と、少なくとも一つの管理端末１６０とが設けられている。第２クラスタに含まれる部分も同様の構成である。
【００３９】
チャネルアダプタ１１０は、「第１通信制御部」に該当する。チャネルアダプタ１１０（以下、ＣＨＡ１１０）は、ホストとの通信を制御する。ＣＨＡ１１０は、ホストから発行された各種コマンドまたはライトデータを受信する。受信されたライトデータは、メモリパッケージ１４０内のキャッシュメモリ１４３（図３参照）に記憶される。さらに、ＣＨＡ１１０は、記憶装置２１０から読み出されたデータをホストに送信する。
【００４０】
図外のホストは、例えば、メインフレームコンピュータまたはオープン系のサーバコンピュータとして構成される。ホストがメインフレームコンピュータの場合、ＣＨＡ１１０は、例えば、ＦＩＣＯＮ（Fibre Connection：登録商標）、ＥＳＣＯＮ（Enterprise System Connection：登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture：登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture：登録商標）等の通信プロトコルに従ってホストと通信する。これに対し、ホストがサーバコンピュータの場合、例えば、ＦＣＰ（Fibre Channel Protocol）、ｉＳＣＳＩ（internet Small Computer System Interface）、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）等の通信プロトコルに従って、データ通信が行われる。なお、ホストとしては、サーバコンピュータまたはメインフレームコンピュータに限らず、例えば、携帯電話、携帯情報端末、テレビジョン装置のような、コマンドを発行できる各種装置を利用できる場合もある。
【００４１】
ディスクアダプタ１２０は、「第２通信制御部」に該当する。ディスクアダプタ１２０（以下、ＤＫＡ１２０）は、ドライブシャーシ２０内の各記憶装置２１０との通信を制御する。通信プロトコルは特に問わないが、ＤＫＡ１２０は、例えば、ＦＣＰ等の通信プロトコルを用いて記憶装置２１０と通信する。ＤＫＡ１２０は、一つまたは複数の記憶装置２１０からデータを読み出して、メモリパッケージ１４０内のキャッシュメモリ１４３に記憶させる。
【００４２】
マイクロプロセッサパッケージ１３０は、「制御部」に該当する。マイクロプロセッサパッケージ１３０は、各ＣＨＡ１１０及び各ＤＫＡ１２０と通信して、それらの動作を制御する。マイクロプロセッサパッケージ１３０は、例えば、複数のマイクロプロセッサと、ローカルメモリを備える。
【００４３】
マイクロプロセッサパッケージ１３０は、各管理端末１６０に接続されており、管理端末１６０からの指示に応じて、記憶制御装置ＳＣ内の構成を変更する。さらに、マイクロプロセッサパッケージ１３０は、記憶制御装置ＳＣ内の状態に関する情報を収集して、管理端末１６０に送信する。
【００４４】
メモリパッケージ１４０は、「メモリ部」に該当する。図３は、メモリパッケージ１４０の斜視図である。メモリパッケージ１４０は、例えば、パッケージ１４１と、パッケージ１４１の前面に着脱可能に設けられるフェイスプレート１４２と、複数のキャッシュメモリ１４３と、複数のフラッシュメモリデバイス１４４と、メモリコントローラ１４５と、バッテリパック１４６と、バッテリコントローラ１４７とを備える。
【００４５】
「第１メモリ」としてのキャッシュメモリ１４３は、揮発性メモリから構成される。キャッシュメモリ１４３は、例えば、２枚１組の単位で、メモリパッケージ１４０の基板に取り付けられる。キャッシュメモリ１４３は、記憶制御装置ＳＣを稼働中に、その枚数を増減させることができる。
【００４６】
キャッシュメモリ１４３は、目的の異なる複数種類のメモリから構成される。一つは、ユーザデータを記憶するためのデータキャッシュである。他の一つは、管理データを記憶するための管理データキャッシュである。本実施例では、例えば、データキャッシュを最大８枚搭載することができ、管理データキャッシュは最大４枚搭載することができる。データキャッシュの最低搭載枚数は２である。同様に、管理データキャッシュの最低搭載枚数も２である。
【００４７】
「第２メモリ」としてのフラッシュメモリデバイス１４４は、不揮発性を有する。フラッシュメモリデバイス１４４には、停電時に、キャッシュメモリ１４３に記憶されたデータ（ユーザデータ及び／または管理データ）が転送されて記憶される。停電が解消すると、フラッシュメモリデバイス１４４に退避したデータは、キャッシュメモリ１４３に書き戻される。フラッシュメモリデバイス１４４は、キャッシュメモリ１４３を取り外すことなく、交換したり、または、増加あるいは減少させたりすることができる。
【００４８】
メモリコントローラ１４５は、キャッシュメモリ１４３に関するデータ入出力と、フラッシュメモリデバイス１４４に関するデータ入出力とを制御する。
【００４９】
「バッテリ」としてのバッテリパック１４６は、例えば、リチウム電池等のセルを複数備えている。バッテリパック１４６（以下、バッテリ１４６）は、通常時に、ＡＣ／ＤＣ電源１０１から充電される。停電時に、バッテリ１４６は、キャッシュメモリ１４３等に電力を供給して作動させる。バッテリコントローラ１４７は、バッテリ１４６についての充放電を制御する。
【００５０】
バッテリ１４６は、キャッシュメモリ１４３を取り外すことなく、かつ、ＡＣ／ＤＣ電源１０１からメモリパッケージ１４０への通電を停止させることなく、交換できるようになっている。具体的には、フェイスプレート１４２を取り外して、パッケージ１４１の前面を開けることにより、保守員は、バッテリ１４６を交換できる。
【００５１】
図２に戻る。スイッチ１５０は、各ＣＨＡ１１０、各ＤＫＡ１２０、各マイクロプロセッサパッケージ１３０、各メモリパッケージ１４０を相互に接続する。一方のクラスタに属する回路１１０−１４０は、スイッチ１５０を介して、他方のクラスタに属する同種回路に接続される。
【００５２】
管理端末１６０（以下、ＳＶＰ１６０）は、記憶制御装置ＳＣの各種状態に関する情報を収集して端末画面に表示したり、収集した情報をそのままでまたは加工して、外部の保守センタ３０に送信したりする。さらに、ユーザまたは保守員は、ＳＶＰ１６０を介して記憶制御装置ＳＣに指示することができる。その指示に基づいて、コントローラ１００は、例えば、論理ボリュームの作成、論理ボリュームの消去、論理ボリュームと通信ポートとの対応付け、アクセス制御の設定等を行う。
【００５３】
なお、図２では図示を省略しているが、各回路１１０−１４０を結ぶ配線（通信経路）も冗長化することができる。
【００５４】
ドライブシャーシ２０の構成を説明する。ドライブシャーシ２０は、複数の記憶装置２１０を収容する。ドライブシャーシ２０は、ディスクユニット２００（以下、ＤＫＵ２００）と、ＤＫＵ２００に電力を供給するＡＣ／ＤＣ電源２０１を備える。
【００５５】
ＤＫＵ２００は、複数の記憶装置２１０と、スイッチ回路２２０（以下、ＳＳＷ２２０）とを備える。ＤＫＵ２００にも第１クラスタ及び第２クラスタが設定されており、ＤＫＵ２００は冗長構成を備えている。各クラスタには、複数のＡＣ／ＤＣ電源２０１からそれぞれ電力が供給される。
【００５６】
ＳＳＷ２２０は、記憶装置２１０等と通信するための通信回路（以下、エキスパンダ）２２１を備えている。上流側のエキスパンダ２２１は、コントローラ１００内のＤＫＡ１２０に接続されている。下流側のエキスパンダ２２１は、隣接する次のＤＫＵ２００内の上流側エキスパンダに接続されている。紙面の都合上、ＤＫＵ２００を一つだけ示すが、コントローラ１００には、複数のＤＫＵ２００がデイジーチェーン接続されている。
【００５７】
記憶装置２１０としては、例えば、ハードディスク装置、半導体メモリ装置、光ディスク装置、光磁気ディスク装置等の、データを読み書き可能な種々の記憶装置を利用可能である。
【００５８】
記憶装置としてハードディスク装置を用いる場合、例えば、ＦＣ（Fibre Channel）ディスク、ＳＣＳＩ（Small Computer System Interface）ディスク、ＳＡＴＡディスク、ＡＴＡ（AT Attachment）ディスク、ＳＡＳ（Serial Attached SCSI）ディスク等を用いることができる。記憶装置として半導体メモリ装置を用いる場合、例えば、フラッシュメモリ、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（MagnetoresistiveRandom Access Memory）、相変化メモリ（Ovonic Unified Memory）、ＲＲＡＭ（Resistance RAM）、ＰＲＡＭ（Phase change RAM）等の種々のメモリ装置を利用できるかも知れない。
【００５９】
図４は、ＳＶＰ１６０により提供される管理画面Ｇ１０の例を示す。管理画面Ｇ１０には、メモリパッケージ１４０の構成が模式的に表示される。図４には、第１クラスタ（Ｃ１）のメモリパッケージ１４０の構成及び状況が示されている。
【００６０】
管理画面Ｇ１０は、例えば、メモリパッケージ１４０の構成を模式的に示す構成表示部Ｇ１１と、メモリパッケージ１４０の状態を示す状態表示部Ｇ１２と、メッセージ表示部Ｇ１３とを備える。
【００６１】
状態表示部Ｇ１２には、選択された動作モードの名称と、バッテリ１４６の残量とが表示される。メッセージ表示部Ｇ１３には、ユーザへ警告するための警告メッセージ、または、ユーザの操作を促すための案内メッセージ等が表示される。
【００６２】
構成表示部Ｇ１１において、故障中、交換中、異常発生中等のイベントが発生している箇所は、点滅させたり、他の箇所と異なる色に表示させたりして、ユーザの注意を集めることもできる。なお、図示せぬ切替ボタンを操作することにより、もう一つのクラスタのメモリパッケージの構成及び状態を確認することができる。あるいは、複数クラスタに属する複数メモリパッケージの構成及び状態を一覧形式で表示させる構成でもよい。
【００６３】
図５は、各クラスタに属するバッテリ１４６の残量変化と、キャッシュメモリ１４３の動作モードの関係を示す。ここでは、第１クラスタ（Ｃ１）及び第２クラスタ（Ｃ２）は、それぞれ一つずつバッテリ１４６を備えているものとする。第１クラスタ（Ｃ１）に属するバッテリ１４６の残量変化を実線で示す。第２クラスタ（Ｃ２）に属するバッテリ１４６の残量変化を点線で示す。図５の説明では、第１クラスタ（Ｃ１）に属するバッテリ１４６を第１バッテリと呼び、第２クラスタ（Ｃ２）に属するバッテリ１４６を第２バッテリと呼ぶ。
【００６４】
時刻ｔ０以前において、第１バッテリ及び第２バッテリのいずれもほぼ１００％の残量を備えている。しかし、時刻ｔ０において、第２バッテリが故障したとする。第２バッテリは時刻ｔ０で故障したため、その残量は次第に低下していく。時刻ｔ１において、第２バッテリの残量は第１閾値Ｔｈ１に到達する。
【００６５】
第１閾値Ｔｈ１は、例えば、キャッシュメモリ１４３に記憶されているユーザデータ及び管理データをフラッシュメモリデバイス１４４に退避させることのできる値として設定される。キャッシュメモリ１４３に記憶されているデータの量が多いほど、フラッシュメモリデバイスへの退避が完了するまでに要する時間が長くなる。退避に要する時間が長くなるほど、第１閾値Ｔｈ１の値は大きく設定する必要がある。
【００６６】
そこで、後述のように、キャッシュメモリ１４３の搭載枚数に応じて、第１閾値Ｔｈ１の値を調整する。ここでは、キャッシュメモリ１４３のうちデータキャッシュが最大数搭載されているものと仮定するので、第１閾値Ｔｈ１は、例えば、５０％に設定される。データキャッシュの搭載枚数が減少すると、第１閾値Ｔｈ１の値も減少する。
【００６７】
さらに、時刻ｔ２の少し手前で、第２バッテリの残量は第２閾値Ｔｈ２を下回り、時刻ｔ２ではほぼ０に近づく。第２閾値Ｔｈ２は、キャッシュメモリ１４３のうち管理データキャッシュに記憶されている管理データをフラッシュメモリデバイス１４４に退避させることのできる値として設定される。
【００６８】
第２閾値Ｔｈ２の値も、フラッシュメモリデバイス１４４への退避対象となる管理データのサイズに依存する。ここでは、管理データキャッシュも最大数搭載されていると仮定するため、第２閾値Ｔｈ２は、例えば、２５％に設定される。管理データキャッシュの搭載枚数が少なくなると、第２閾値Ｔｈ２の値も減少する。
【００６９】
時刻ｔ２において、第１バッテリも故障したとする。第１バッテリの残量は次第に低下していく。時刻ｔ３で、第１バッテリの残量は第１閾値Ｔｈ１に到達する。時刻ｔ３で、第１バッテリの残量及び第２バッテリの残量は、ともに第１閾値Ｔｈ１を下回る。但し、時刻ｔ３では、第１バッテリの残量は第２閾値Ｔｈ２を超えている。
【００７０】
時刻ｔ３では、第１バッテリの残量のみが第２閾値Ｔｈ２以上であって、かつ、第１閾値Ｔｈ１を下回っている。第１バッテリの残量は第１閾値Ｔｈ１を下回っているので、第１バッテリの電力を利用して、キャッシュメモリ１４３内の全ユーザデータをフラッシュメモリデバイス１４４に退避させるのは難しい。
【００７１】
しかし、第１バッテリの残量は第２閾値Ｔｈ２を超えている。従って、第１バッテリの電力を利用して、キャッシュメモリ１４３からフラッシュメモリデバイス１４４に管理データを退避させることができる。管理データを保護できれば、ユーザデータの格納先等を管理することができる。そこで、時刻ｔ３では、キャッシュメモリの動作モードを、通常モードからライトスルーモードに切り替える。
【００７２】
時刻ｔ４で、第１バッテリの残量は第２閾値Ｔｈ２まで低下する。第１バッテリの残量が第２閾値Ｔｈ２を下回ると、キャッシュメモリ１４３内の管理データをフラッシュメモリデバイス１４４に退避させることができない可能性がある。そこで、時刻ｔ４を僅かに過ぎた時刻、即ち、第１バッテリの残量が第２閾値Ｔｈ２を下回った時点で、動作モードをライトスルーモードからアクセス不可モードに切り替える。
【００７３】
ライトスルーモードに移行した時点（ｔ３）で、管理端末１６０の画面には警告メッセージが表示され、さらに、管理端末１６０から保守センタ３０に警告が送信される。その警告を受けた保守センタ３０から、または、最寄りのサービス拠点から、新品のバッテリを持った保守員が記憶制御装置ＳＣの設置場所に派遣される。
【００７４】
そこで、時刻ｔ５において、第２バッテリが新品バッテリに交換されたとする。さらに、時刻ｔ５と次の時刻ｔ６の間で、第１バッテリも新品バッテリに交換されたとする。第２バッテリが先に新品に交換されることにより、第２バッテリの残量は１００％まで回復する。動作モードは、アクセス不可モードから通常モードに切り替えられる。
【００７５】
時刻ｔ６で停電になったとすると、ホストが記憶制御装置ＳＣにアクセスすることは禁止される。停電が検出されると、キャッシュメモリ１４３内のデータ（ユーザデータ及び管理データ）は、フラッシュメモリデバイス１４４に転送されて記憶される。停電中は、ＡＣ／ＤＣ電源１０１からバッテリ１４６に給電されず、かつ、バッテリ１４６の電力はデータ退避に使用される。従って、第１バッテリの残量及び第２バッテリの残量は、次第に低下していく。
【００７６】
時刻ｔ７で停電が解消し、記憶制御装置ＳＣが再起動したとする。時刻ｔ７の時点では、第１バッテリの残量も第２バッテリの残量も第２閾値Ｔｈ２を下回っている。従って、記憶制御装置ＳＣは、アクセス不可モードのままで運用される。その間、各バッテリは充電される。
【００７７】
時刻ｔ８になると、各バッテリの残量が第２閾値Ｔｈ２に到達する。従って、動作モードは、アクセス不可モードからライトスルーモードに切り替わる。
【００７８】
時刻ｔ９で、各バッテリの残量は第１閾値Ｔｈ１に到達する。従って、動作モードは、ライトスルーモードから通常モードに切り替わる。
【００７９】
図６，図７は、通常の監視処理のフローチャートを示す。以下に述べる各フローチャートは、各処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。いわゆる当業者であれば、図示されたステップの一部を変更または削除したり、新たなステップを追加したりすることができるであろう。
【００８０】
通常の監視処理とは、通常時において各クラスタ内のバッテリ１４６の残量を監視し、それらの残量に応じてデータ保護のための動作モードを切り替える処理である。本処理は、各クラスタ毎に実行される。以下、コントローラ１００を主語として説明する。
【００８１】
コントローラ１００は、第１クラスタＣ１に属する第１バッテリ１４６の残量を検出し（Ｓ１０）、続いて、第２クラスタＣ２に属する第２バッテリ１４６の残量を検出する（Ｓ１１）。コントローラ１００は、例えば、バッテリ１４６への充電電圧及び充電電流等に基づいて、バッテリ１４６の残量（蓄電容量）を算出することができる。
【００８２】
コントローラ１００は、各バッテリ１４６の残量が第１閾値Ｔｈ１であるか否かを判定する（Ｓ１２）。Ｓ１２は「第１判定」に該当する。第１バッテリの残量をＢＬ１、第２バッテリの残量をＢＬ２とすると、Ｓ１２では、「ＢＬ１≧Ｔｈ１  ＡＮＤ  ＢＬ２≧Ｔｈ１」が成立するか否かが判定される。
【００８３】
各バッテリ１４６の残量ＢＬ１，ＢＬ２が第１閾値Ｔｈ１以上である場合（Ｓ１２：ＹＥＳ）、通常モードが選択される（Ｓ１３）。図５のタイムチャートでは、時刻ｔ０以前の状態、または、時刻ｔ９以降の状態がＳ１３の状態に該当する。
【００８４】
通常モードでは、ホストから受信したライトデータをキャッシュメモリ１４６に記憶させた時点で、ライト処理が完了した旨をホストに通知する。その後、所定のタイミングを見計らって、キャッシュメモリ１４６に記憶されたライトデータを所定の記憶装置２１０に記憶させる。従って、記憶制御装置ＳＣが通常モードで運用される場合、応答性を高くして、使い勝手を向上できる。
【００８５】
各バッテリ１４６の残量ＢＬ１，ＢＬ２の少なくともいずれか一方が第１閾値Ｔｈ１以上ではない場合（Ｓ１２：ＮＯ）、コントローラ１００は、一方のバッテリ残量が第１閾値Ｔｈ１以上であって、かつ、他方のバッテリ残量が第１閾値Ｔｈ１未満であるか否かを判定する（Ｓ１４）。Ｓ１４は「第２判定」に該当する。即ち、コントローラ１００は、「ＢＬ１≧Ｔｈ１  ＡＮＤ  ＢＬ２＜Ｔｈ１」または「ＢＬ２≧Ｔｈ１  ＡＮＤ  ＢＬ１＜Ｔｈ１」のいずれかの状態であるか否かを判定する。
【００８６】
各バッテリ１４６のうちいずれか一方のバッテリ残量が第１閾値Ｔｈ１以上であり、かつ、他方のバッテリ残量が第１閾値Ｔｈ１未満である場合（Ｓ１４：ＹＥＳ）、コントローラ１００は、管理端末１６０を介して、第１閾値Ｔｈ１未満のバッテリが存在することを警告する（Ｓ１５）。この警告は、管理端末１６０の端末画面に表示され、さらに、保守センタ３０に送信される。
【００８７】
警告を発した後、コントローラ１００は、通常モードを選択する（Ｓ１３）。いずれか一方のバッテリ残量が第１閾値Ｔｈ１以上であるため、万が一停電になっても、キャッシュメモリ１４３内のデータをフラッシュメモリデバイス１４４に退避させることができるためである。なお、Ｓ１４及びＳ１５を経由してＳ１３に至る状態は、図５中の時刻ｔ０から時刻ｔ３までの状態と、時刻５から時刻ｔ５と時刻ｔ６の中間の時刻までの状態とに該当する。
【００８８】
Ｓ１４で「ＮＯ」と判定された場合、コントローラ１００は、各バッテリ１４６の残量が第２閾値Ｔｈ２以上であって、かつ、第１閾値Ｔｈ１未満であるか否かを判定する（Ｓ１６）。Ｓ１６は「第３判定」に該当する。
【００８９】
Ｔｈ２≦ＢＬ１，ＢＬ２＜Ｔｈ１である場合（Ｓ１６：ＹＥＳ）、コントローラ１００は、各バッテリ１４６の残量が第２閾値Ｔｈ２以上であるが第１閾値Ｔｈ１未満であることを知らせるための警告を発する（Ｓ１７）。その警告は、管理端末１６０を介して保守センタ３０に送信される。コントローラ１００は、警告を発した後、ライトスルーモードを選択する（Ｓ１８）。Ｓ１６を経由してＳ１８に至る状態は、図５中の時刻ｔ８から時刻ｔ９までの状態に該当する。
【００９０】
Ｓ１６で「ＮＯ」と判定された場合、コントローラ１００は、一方のバッテリ残量が第２閾値Ｔｈ２以上であって、かつ、他方のバッテリ残量が第２閾値Ｔｈ２未満であるかを判定する（Ｓ１９）。Ｓ１９は「第４判定」に該当する。
【００９１】
一方のバッテリ残量が第２閾値Ｔｈ２以上であって、かつ、他方のバッテリ残量が第２閾値Ｔｈ２未満の場合（Ｓ１９：ＹＥＳ）、コントローラ１００は、警報を発し（Ｓ２０）、ライトスルーモードを選択する（Ｓ１８）。その警報には、一方のバッテリ残量が第２閾値Ｔｈ２以上であり、他方のバッテリ残量が第２閾値Ｔｈ２未満であることを示すメッセージが含まれている。Ｓ１９及びＳ２０を経由してＳ１８に至る状態は、図５中の時刻ｔ３から時刻ｔ４までの状態に該当する。
【００９２】
Ｓ１９で「ＮＯ」と判定された場合は、図７に示すフローチャートに移る。コントローラ１００は、記憶制御装置ＳＣをノットレディ状態に設定し（Ｓ２１）、警告を出力する（Ｓ２２）。その警告には、両方のバッテリ１４６の残量が第２閾値Ｔｈ２未満であることを示すメッセージが含まれている。ノットレディ状態とは、記憶制御装置ＳＣの準備が整っていないため、ホストからのコマンドを受け付けない状態である。
【００９３】
コントローラ１００は、記憶制御装置ＳＣをノットレディ状態に設定してから所定時間ＴＭ１が経過したか否かを判定する（Ｓ２３）。所定時間ＴＭ１が経過していない場合（Ｓ２３：ＮＯ）、図６のＳ１０に戻る。
【００９４】
従って、所定時間ＴＭ１が経過するまでの間に、各バッテリの少なくともいずれか一つのバッテリの残量が回復した場合は、ノットレディ状態が解除され、通常モードまたはライトスルーモードに設定変更される。図６では省略しているが、ノットレディ状態に設定された後でバッテリ残量が回復した場合、上述の第１判定−第３判定のいずれかに該当すれば、ノットレディ状態からレディ状態に移行し、通常モードまたはライトスルーモードのいずれかに設定変更される。
【００９５】
所定時間ＴＭ１が経過しても、各バッテリ残量が第２閾値Ｔｈ２未満の場合（Ｓ１９：ＮＯ）、コントローラ１００は、ノットレディ状態からレディ状態に強制的に変更し（Ｓ２４）、ライトスルーモードを選択する（Ｓ２５）。
【００９６】
所定時間Ｔｈ２が経過しても事態が改善しない場合は、停電発生によるデータ消失の可能性と長時間のサービス停止による不便とを比較考量し、記憶制御装置ＳＣの作動を開始させる。これにより、ユーザの利便性を優先させる。
【００９７】
図８は、停電時の監視処理を示すフローチャートである。本処理は、各クラスタ毎にそれぞれ実行される。
【００９８】
コントローラ１００は、冗長化された各ＡＣ／ＤＣ電源１０１へ入力されるＡＣ電圧を監視している。各ＡＣ／ＤＣ電源１０１への入力ＡＣ電圧がほぼ同時に０ボルト付近まで低下した場合、コントローラ１００は、停電を検出することができる（Ｓ３０）。
【００９９】
コントローラ１００は、キャッシュメモリ１４３からフラッシュメモリデバイス１４４へのデータ退避を開始させる（Ｓ３１）。コントローラ１００は、データ退避を開始させた後、各ＡＣ／ＤＣ電源１０１への入力ＡＣ電圧の少なくともいずれか一方が回復したか否かを判定する（Ｓ３２）。つまり、停電が解消したか否かを判定する。但し、各ＡＣ／ＤＣ電源１０１のいずれか一方が故障した場合に備えて、Ｓ３２では、各入力ＡＣ電圧のうちいずれか一方が回復したか否かを判定している。
【０１００】
停電中の場合（Ｓ３２：ＮＯ）、コントローラ１００は、各キャッシュメモリグループのデータが退避したか否かを判定する（Ｓ３３）。キャッシュメモリグループとは、例えば、２枚１組のグループを示す。本実施例では、グループ単位で、キャッシュメモリからフラッシュメモリデバイスにデータを退避させる。
【０１０１】
停電が解消する前に、全キャッシュメモリグループのデータ退避が完了すると（Ｓ３３：ＹＥＳ）、コントローラ１００は、フラッシュメモリデバイス１４４へのデータ退避が正常に完了したか否かを判定する（Ｓ３４）。
【０１０２】
キャッシュメモリ１４３からフラッシュメモリデバイス１４４へのデータ退避（データ転送）が正常に終了した場合（Ｓ３４：ＹＥＳ）、コントローラ１００は、データ退避が正常に終了したことを記憶する（Ｓ３５）。例えば、マイクロプロセッサパッケージ１３０内のローカルメモリに、データ退避の結果が記憶される。
【０１０３】
キャッシュメモリ１４３からフラッシュメモリデバイス１４４へのデータ退避が正常終了しなかった場合（Ｓ３４：ＮＯ）、コントローラ１００は、データ退避が異常終了したことを記憶する（Ｓ３６）。
【０１０４】
データ退避中に、各ＡＣ／ＤＣ電源１０１への入力ＡＣ電圧のうち少なくともいずれか一方が回復した場合（Ｓ３２：ＹＥＳ）、コントローラ１００は、バッテリ残量が第１閾値Ｔｈ１以上であるか否かを判定する（Ｓ３７）。
【０１０５】
バッテリ残量が第１閾値Ｔｈ１以上の場合（Ｓ３７：ＹＥＳ）、コントローラ１００は、キャッシュメモリ１４３からフラッシュメモリデバイス１４４へのデータ退避を中断させる（Ｓ３８）。停電が解消されており、かつ、バッテリ１４６に十分な残量があるためである。この場合、再び停電になったとしても、バッテリ１４６の電力を用いてキャッシュメモリ１４３のデータをフラッシュメモリデバイス１４４に退避可能である。従って、Ｓ３１で開始されたデータ退避を中止する。
【０１０６】
これに対し、各ＡＣ／ＤＣ電源１０１への入力ＡＣ電圧のうち少なくともいずれか一方が回復した場合であって、かつ、バッテリ残量が第１閾値Ｔｈ１未満の場合、コントローラ１００は、キャッシュメモリ１４３からフラッシュメモリデバイス１４４へのデータ退避を継続し（Ｓ３９）、Ｓ３３に移る。停電が解消した場合であっても、バッテリ残量が第１閾値Ｔｈ１未満である場合は、再び停電すると、キャッシュメモリ１４３のデータを安全に退避させることができない可能性がある。そこで、本処理では、停電が解消しても、バッテリ１４６が充電されていない場合は、データの安全を確保すべく、データ退避を続行する。
【０１０７】
図９は、停電解消後において、記憶制御装置ＳＣを再起動させた場合の監視処理を示すフローチャートである。本処理も、各クラスタ毎に実行される。コントローラ１００は、停電解消後の再起動であるか否かを判定する（Ｓ４０）。
【０１０８】
コントローラ１００は、図８で述べた停電時の監視処理によって、キャッシュメモリ１４３のデータがフラッシュメモリデバイス１４４に正常に退避したか否かを判定する（Ｓ４１）。
【０１０９】
データ退避が正常に完了している場合（Ｓ４１：ＹＥＳ）、コントローラ１００は、フラッシュメモリデバイス１４４に退避されたデータをキャッシュメモリ１４３に転送し、キャッシュメモリ１４３のデータを復元する（Ｓ４２）。
【０１１０】
コントローラ１００は、データ復元が正常に終了したか否かを判定する（Ｓ４３）。データ復元が正常終了した場合（Ｓ４３：ＹＥＳ）、コントローラ１００は、図６及び図７で述べた通常時の監視処理を実行する（Ｓ４４）。データ復元が正常終了しなかった場合（Ｓ４３：ＮＯ）、後述のＳ４６に移る。
【０１１１】
キャッシュメモリ１４３からフラッシュメモリデバイス１４４へのデータ退避が正常に終了しなかった場合（Ｓ４１：ＮＯ）、コントローラ１００は、メモリパッケージ１４０を閉塞させる（Ｓ４５）。キャッシュメモリ１４３のデータを停電前の状態に戻すことができないため、そのキャッシュメモリ１４３の使用を禁止する。
【０１１２】
コントローラ１００は、他方のクラスタのメモリパッケージ１４０においてもデータ退避が失敗したか否かを判定する（Ｓ４６）。他方のクラスタではデータ退避が成功している場合（Ｓ４６：ＮＯ）、コントローラ１００は、対象クラスタ内のメモリパッケージ１４０だけを閉塞させたまま（Ｓ４７）、Ｓ４４に移る。一方のクラスタのメモリパッケージ１４０のみが閉塞され、他方のクラスタのメモリパッケージ１４０が正常に動作している状態を、Ｓ４７では「キャッシュを部分的に縮退」と表現している。
【０１１３】
他方のクラスタのメモリパッケージ１４０においても、データ退避またはデータ復元のいずれかに失敗した場合（Ｓ４６：ＹＥＳ）、コントローラ１００は、記憶制御装置ＳＣをノットレディ状態に設定する（Ｓ４８）。両方のクラスタにおいて、キャッシュメモリ１４３のデータを復元することができないため、記憶制御装置ＳＣの運用を継続することはできない。そこで、コントローラ１００は、ノットレディ状態に設定する。
【０１１４】
図１０，図１１は、バッテリ交換時の処理を示すフローチャートである。本処理は、バッテリ１４６が交換されるクラスタにおいて実行される。本処理の少なくとも一部は、保守員またはユーザにより実行することができる。
【０１１５】
コントローラ１００は、交換対象のバッテリ１４６の残量が第１閾値Ｔｈ１未満であることを検出し（Ｓ５０）、さらに、他方のクラスタに属するバッテリ残量を算出する（Ｓ５１）。コントローラ１００は、他方のクラスタのバッテリ残量が第１閾値Ｔｈ１以上であるか否かを判定する（Ｓ５２）。他方のクラスタのバッテリ残量が第１閾値Ｔｈ１以上である場合（Ｓ５２：ＹＥＳ）、コントローラ１００は、バッテリ交換を許可し（Ｓ５３）、バッテリ交換が正常に終了したか否かを判定する（Ｓ５４）。
【０１１６】
なお、Ｓ５２−Ｓ５４は保守員またはユーザにより実行させることもできる。例えば、保守員またはユーザは、管理端末１６０に表示される管理画面Ｇ１０を介して、各クラスタのバッテリ残量を確認することができる。保守員またはユーザは、他方のバッテリ（交換対象ではない方のバッテリ）の残量が第１閾値Ｔｈ１以上であることを管理画面Ｇ１０で確認した後（Ｓ５２：ＹＥＳ）、交換対象のバッテリ１４６を新品に交換する（Ｓ５３，Ｓ５４）。
【０１１７】
交換対象ではない他方のクラスタに属するバッテリ１４６の残量が第１閾値Ｔｈ１以上ではない場合（Ｓ５２：ＮＯ）、図１１のフローチャートに移る。コントローラ１００は、各バッテリ１４６の残量が第１閾値Ｔｈ１未満である状態が所定時間ＴＭ２以上継続したか否かを判定する（Ｓ５５）。
【０１１８】
なお、各バッテリ残量が第１閾値Ｔｈ１未満の場合は、図６に示すＳ１６で「ＹＥＳ」と判定されるため、ライトスルーモードに設定されている。
【０１１９】
各バッテリ１４６の残量が第１閾値Ｔｈ１未満である状態が所定時間ＴＭ２以上継続していない場合（Ｓ５５：ＮＯ）、コントローラ１００は、他方のクラスタに属するバッテリ１４６の残量が第１閾値Ｔｈ１以上になるのを待つ（Ｓ５６）。
【０１２０】
コントローラ１００は、他の所定時間ＴＭ３が経過したか否かを判定する（Ｓ５７）。他の所定時間ＴＭ３は、バッテリ１４６の残量が第１閾値Ｔｈ１以上まで回復するのに十分と考えられる時間として設定される。ＴＭ３の値は、図７のＳ２３に示すＴＭ１の値と同一に設定してもよいし、異なる値に設定してもよい。
【０１２１】
他の所定時間ＴＭ３が経過していない場合（Ｓ５７：ＮＯ）、Ｓ５２に戻る。従って、他の所定時間ＴＭ３が経過するまで、Ｓ５２，Ｓ５５，Ｓ５６，Ｓ５７が繰り返し実行される。
【０１２２】
他の所定時間ＴＭ３が経過しても他方のバッテリ１４６の残量が第１閾値Ｔｈ１以上にならない場合（Ｓ５７：ＹＥＳ）、コントローラは、各バッテリ１４６のうちいずれか一方のバッテリの交換を許可する（Ｓ５８）。それ以上待ってもバッテリ残量が回復する可能性は低いためである。そこで、コントローラ１００は、より早くデータ保護の安全性を回復すべく、バッテリ交換を許可する。
【０１２３】
各バッテリ残量が第１閾値Ｔｈ１未満である状態が所定時間ＴＭ２以上継続している場合も（Ｓ５５：ＹＥＳ）、コントローラ１００は、各バッテリ１４６のうちいずれか一方のバッテリの交換を許可する（Ｓ５８）。
【０１２４】
コントローラ１００は、各バッテリ１４６のうちいずれかのバッテリ１４６の残量が第１閾値Ｔｈ１以上になったか否かを判定する（Ｓ５９）。Ｓ５８でのバッテリ交換が正常に終了した場合は、その交換されたバッテリの残量は第１閾値Ｔｈ１以上になっているはずである（Ｓ５９：ＹＥＳ）。そこで、コントローラ１００は、ライトスルーモードから通常モードに切り替える（Ｓ６０）。
【０１２５】
図１１に示すフローチャートの一部は、保守員またはユーザが実行可能である。例えば、保守員またはユーザは、Ｓ５５，Ｓ５６，Ｓ５７，Ｓ５８を実行できる。
【０１２６】
図１２は、キャッシュメモリ１４３の搭載枚数に応じて閾値を変更する処理を示すフローチャートである。コントローラ１００は、メモリパッケージ１４０内のキャッシュメモリ１４３が増設されたか否かを判定する（Ｓ７０）。キャッシュメモリ１４３が増設された場合（Ｓ７０：ＹＥＳ）、コントローラ１００は、データキャッシュが増設されたか否かを判定する（Ｓ７１）。
【０１２７】
データキャッシュが増設された場合（Ｓ７１：ＹＥＳ）、コントローラ１００は、メモリパッケージ１４０に搭載されているデータキャッシュの枚数を取得し（Ｓ７２）、各クラスタのバッテリ残量を監視するための閾値（Ｔｈ１）を変更する（Ｓ７３）。
【０１２８】
データキャッシュの増設ではない場合（Ｓ７１：ＮＯ）、管理データキャッシュが増設された場合である（Ｓ７４）。そこで、コントローラ１００は、管理データキャッシュ搭載枚数を取得し（Ｓ７５）、各クラスタのバッテリ残量を監視するための閾値（Ｔｈ２）を変更する（Ｓ７６）。
【０１２９】
図１３は、第１閾値Ｔｈ１及び第２閾値Ｔｈ２の初期値を管理するテーブルＴ１０Ａ，Ｔ１０Ｂを示す。図１３（ａ）に示すように、第１閾値の初期値を管理するテーブルＴ１０Ａは、クラスタ番号欄Ｃ１０Ａと、初期閾値欄Ｃ１１Ａとを備える。クラスタ番号欄Ｃ１０Ａには、第１クラスタ及び第２クラスタを識別するための番号が設定される。初期閾値欄Ｃ１１Ａには、各クラスタについての第１閾値の初期値が設定される。各クラスタの第１閾値の初期値は、それぞれＴｈ１に設定されている。
【０１３０】
図１３（ｂ）に示すように、第２閾値の初期値を管理するテーブルＴ１０Ｂは、クラスタ番号欄Ｃ１０Ｂと、初期閾値欄Ｃ１１Ｂとを備える。各クラスタについての第２閾値の初期値として、それぞれＴｈ２が設定されている。
【０１３１】
図１４は、キャッシュメモリ１４３の搭載枚数に応じて閾値を変更するためのテーブルＴ２０Ａ，Ｔ２０Ｂを示す。図１４（ａ）に示すように、第１閾値変更テーブルＴ２０Ａは、データキャッシュ枚数欄Ｃ２０Ａと、第１閾値欄Ｃ２１Ａとを備える。
【０１３２】
本実施例では、データキャッシュが搭載可能な最大数まで搭載されている場合に、第１閾値が最大値Ｔｈ１になるように設定している。最大値Ｔｈ１は初期値と同一である。つまり、本実施例では、第１閾値の初期値を最大値に設定している。そして、データキャッシュの枚数が少なくなるにつれて第１閾値の値が低下するように、テーブル２０Ａは構成されている。
【０１３３】
例えば、データキャッシュが上限値である８枚搭載されている場合、第１閾値はＴｈ１（例えば、５０％）に設定され、データキャッシュが６枚搭載されている場合、第１閾値はＴｈ１ｃ（例えば、４５％）に設定される。データキャッシュが４枚搭載されている場合、第１閾値はＴｈ１ｂ（例えば、４０％）に設定され、データキャッシュが下限値である２枚搭載されている場合、第１閾値はＴｈ１ａ（例えば、３５％）に設定される。
【０１３４】
図１４（ｂ）に示すように、第２閾値変更テーブルＴ２０Ｂは、管理データキャッシュ枚数欄Ｃ２０Ｂと、第２閾値欄Ｃ２１Ｂとを備える。
【０１３５】
本実施例では、管理データキャッシュが上限値である４枚搭載されている場合、第２閾値はＴｈ２（例えば、２５％）に設定される。Ｔｈ２は、第２閾値の初期値であり、かつ、最大値でもある。管理データキャッシュが下限値である２枚搭載されている場合、第２閾値はＴｈ２ａ（例えば、２０％）に設定される。このように、管理データキャッシュの初期値は最大値であるＴｈ２に設定されており、管理データキャッシュの枚数が少なくなると第２閾値も低下するように、テーブル２０Ｂは構成されている。
【０１３６】
図１５は、データキャッシュの搭載枚数の変化に応じて第１閾値が変化する様子を示すタイムチャートである。
【０１３７】
時刻ｔ１０において、データキャッシュは上限値である８枚搭載されているため、第１閾値はＴｈ１（５０％）に設定される。時刻ｔ１１で、データキャッシュの枚数が上限値である８枚から下限値である２枚に減らされると、第１閾値はＴｈ１からＴｈ１ａ（３５％）に低下する。時刻ｔ１２で、データキャッシュの枚数が２枚から６枚に増加した場合、第１閾値はＴｈ１ａからＴｈ１ｃ（４５％）に上昇する。時刻ｔ１３において、データキャッシュの枚数が６枚から８枚に増加されると、第１閾値はＴｈ１ｃからＴｈ１に上昇する。
【０１３８】
図１２−図１５で説明したように、本実施例では、キャッシュメモリ１４３の搭載枚数に応じて第１閾値及び第２閾値を調整する。本実施例では、データキャッシュの搭載枚数が増減した場合、その増減に応じて第１閾値を変更する（Ｓ７３）。同様に、本実施例では、管理データキャッシュの搭載枚数が増減した場合、その増減に応じて第２閾値を変更する（Ｓ７６）。
【０１３９】
図１６は、バッテリ交換時での閾値変更処理を示すフローチャートである。コントローラ１００は、バッテリ交換対象のクラスタではない方の他のクラスタに属するバッテリの残量を算出する（Ｓ８０）。
【０１４０】
コントローラ１００は、他のバッテリ１４６の残量が第１閾値Ｔｈ１以上であるか否かを判定する（Ｓ８１）。他のバッテリの残量が第１閾値Ｔｈ１未満の場合（Ｓ８１：ＮＯ）、コントローラ１００は、他のバッテリの残量が第１閾値Ｔｈ１以上になってからバッテリ交換作業を開始するようにとのメッセージを、管理端末１６０の画面に表示させる（Ｓ８２）。コントローラ１００は、他のバッテリの残量の回復を待つ（Ｓ８３）。
【０１４１】
他のバッテリの残量が第１閾値Ｔｈ１以上になると（Ｓ８１：ＹＥＳ）、コントローラ１００は、他のバッテリに関する第１閾値Ｔｈ１に所定値ｎを加算する（Ｓ８４）。例えば、所定値ｎを１０％とし、かつ、他のバッテリの第１閾値Ｔｈ１が５０％であるとすると、コントローラ１００は、他のバッテリの第１閾値Ｔｈ１を６０％に変更する（５０％＋１０％＝６０％）。
【０１４２】
コントローラ１００は、他のバッテリの残量がＴｈ１＋ｎ以上であるか否かを判定する（Ｓ８５）。他のバッテリの残量がＴｈ１＋ｎ以上の場合（Ｓ８５：ＹＥＳ）、コントローラ１００は、バッテリ交換作業を許可するメッセージを管理端末１６０の画面に表示させる（Ｓ８６）。保守員またはユーザは、そのメッセージを確認すると、バッテリ１４６を交換する。
【０１４３】
コントローラ１００は、バッテリ交換作業が正常に終了した場合（Ｓ８７：ＹＥＳ）、他のバッテリに関する第１閾値をＴｈ１＋ｎからＴｈ１に変更する（Ｓ８８）。
【０１４４】
このように、一方のクラスタのバッテリ１４６を交換する場合は、他方のクラスタのバッテリを監視するための第１閾値Ｔｈ１を所定値ｎだけ増加させ（Ｓ８４）、監視レベルを引き上げる。従って、他のバッテリの残量は通常時よりも余裕があるため、もしも、バッテリ交換作業を開始する直前に停電が発生した場合でも、キャッシュメモリ１４３のデータをフラッシュメモリデバイス１４４に安全に退避させることができる。
【０１４５】
このように構成される本実施例では、複数クラスタによる冗長構成を備えた記憶制御装置ＳＣにおいて、各バッテリの残量に応じて、データを保護するための動作モードを変化させることができる。
【０１４６】
本実施例では、メモリパッケージ１４０内にキャッシュメモリ１４３とフラッシュメモリデバイス１４４及びバッテリ１４６を設け、停電時にはバッテリ１４６からの電力を利用して、キャッシュメモリ１４３内のデータ（管理データ及びユーザデータ）をフラッシュメモリデバイス１４４に退避させる。本実施例では、各バッテリ１４６の残量を複数の閾値Ｔｈ１，Ｔｈ２と比較することにより、通常モードと、ライトスルーモードと、アクセス不可モード（ノットレディ状態に設定するモード）という複数のモードの中からいずれか一つを動作モードとして選択する。従って、記憶制御装置の冗長構成を利用して、信頼性向上と使い勝手の改善との両立を図ることができる。
【０１４７】
本実施例では、各バッテリ１４６の残量が第２閾値Ｔｈ２未満になった場合に、記憶制御装置をノットレディ状態に設定し、ノットレディ状態が所定時間以上継続した場合は、強制的にレディ状態に変更する。これにより、記憶制御装置が長時間停止するのを防止して、使い勝手の低下を抑制できる。
【０１４８】
本実施例では、キャッシュメモリ１４３の搭載枚数に応じて閾値Ｔｈ１，Ｔｈ２を変更するようになっている。従って、退避させるべきデータ量に応じて閾値Ｔｈ１，Ｔｈ２を設定変更することができ、データをより安全に保護できる。
【０１４９】
本実施例では、バッテリ交換時に、交換対象ではない他方のバッテリに関する閾値を一時的に増加させる。従って、バッテリ交換時に停電しても、キャッシュメモリのデータをフラッシュメモリデバイスに退避させることができる。これにより、安全性を向上させることができる。
【０１５０】
なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【符号の説明】
【０１５１】
１，２：クラスタ、３：キャッシュメモリ、４：フラッシュメモリデバイス、５：バッテリ、ＳＣ：記憶制御装置、１０：コントローラシャーシ、２０：ドライブシャーシ、３０：保守センタ、１００：コントローラ、１０１：ＡＣ／ＤＣ電源、１３０：マイクロプロセッサパッケージ、１４０：メモリパッケージ、２１０：記憶装置
【図１】
0005514364.tif 000002
【図２】
0005514364.tif 000003
【図３】
0005514364.tif 000004
【図４】
0005514364.tif 000005
【図５】
0005514364.tif 000006
【図６】
0005514364.tif 000007
【図７】
0005514364.tif 000008
【図８】
0005514364.tif 000009
【図９】
0005514364.tif 000010
【図１０】
0005514364.tif 000011
【図１１】
0005514364.tif 000012
【図１２】
0005514364.tif 000013
【図１３】
0005514364.tif 000014
【図１４】
0005514364.tif 000015
【図１５】
0005514364.tif 000016
【図１６】
0005514364.tif 000017