(57)【要約】【課題】少数のバッテリを用いてバッテリを冗長化する。【解決手段】電子部品１ａ〜１ｃのそれぞれは、バッテリ２ａ〜２ｄのうちの２台に接続される。ただし、電子部品１ａ〜１ｃのそれぞれに接続される２台のバッテリの組合せは、すべて異なる。また、バッテリ２ａ〜２ｄのうち、全体の台数から２台を減算した台数のバッテリのそれぞれは、電子部品１ａ〜１ｃのうちの２台に接続される。ただし、バッテリ２ａ〜２ｄにそれぞれ接続される２台の電子部品の組合せは、すべて異なる。選択回路３ａ，３ｂ，３ｃは、それぞれ電子部品１ａ，１ｂ，１ｃに接続された２台のバッテリから出力される電力の少なくとも一方を、駆動電力として電子部品１ａ，１ｂ，１ｃに供給する。【選択図】図１
2019133316.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ台の電子部品（ただし、Ｎは２以上の整数）と、（Ｎ＋１）台のバッテリと、前記Ｎ台の電子部品にそれぞれ対応付けて設けられたＮ台の選択回路とを有し、
前記Ｎ台の電子部品のそれぞれは、前記（Ｎ＋１）台のバッテリのうちの２台のバッテリに接続され、前記Ｎ台の電子部品のそれぞれに接続される２台のバッテリの組合せはすべて異なり、
前記（Ｎ＋１）台のバッテリのうち（Ｎ−１）台のバッテリのそれぞれは、前記Ｎ台の電子部品のうちの２台の電子部品に接続され、前記（Ｎ−１）台のバッテリのそれぞれに接続される２台の電子部品の組合せはすべて異なり、
前記Ｎ台の選択回路のそれぞれは、前記Ｎ台の電子部品のうち対応する電子部品に接続された２台のバッテリから出力される電力の少なくとも一方を、駆動電力として前記対応する電子部品に供給する、
電子システム。
【請求項２】
前記（Ｎ＋１）台のバッテリのうち一のバッテリが故障したとき、前記一のバッテリ以外のＮ台のバッテリと前記Ｎ台の電子部品との間で一対一で電力が授受されるように、前記Ｎ台の選択回路の動作が制御される、
請求項１に記載の電子システム。
【請求項３】
前記（Ｎ＋１）台のバッテリが正常に動作している正常状態において、外部電源からの電力供給が停止した停電が発生したとき、前記Ｎ台の電子部品のうち一の電子部品に対して前記（Ｎ＋１）台のバッテリのうち２台のバッテリから電力が供給され、残りの（Ｎ−１）台の電子部品に対して前記（Ｎ＋１）台のバッテリのうち１台のバッテリから電力が供給されるように、前記Ｎ台の選択回路の動作が制御される、
請求項１または２に記載の電子システム。
【請求項４】
前記Ｎ台の電子部品のそれぞれは、制御部と、キャッシュ領域を含む揮発性メモリと、不揮発性メモリとを有し、
前記Ｎ台の電子部品のそれぞれは、記憶装置に対するアクセスを前記キャッシュ領域を用いて制御する制御装置であり、
前記Ｎ台の電子部品のそれぞれにおいて、前記制御部は、前記停電が発生したとき、前記対応する選択回路を介して供給される電力を用いて、前記キャッシュ領域に含まれるダーティデータを前記不揮発性メモリに書き込み、
前記正常状態において前記停電が発生したとき、前記Ｎ台の電子部品の中から、前記キャッシュ領域に含まれるダーティデータの量が最大の電子部品が、前記一の電子部品として選択される、
請求項３に記載の電子システム。
【請求項５】
前記外部電源からの電力供給が復旧したとき、
前記外部電源からの電力による前記（Ｎ＋１）台のバッテリの充電が開始され、
前記Ｎ台の電子部品のそれぞれにおいて、前記制御部は、前記キャッシュ領域を用いた前記記憶装置に対するアクセス制御を、書き込み制御方式としてライトスルー方式を用いて再開し、接続されているバッテリの残量が所定量に達すると、前記書き込み制御方式をライトバック方式に切り替える、
請求項４に記載の電子システム。
【請求項６】
情報処理装置において、
電力の供給を受けて駆動する負荷と、
前記負荷に供給する電力を制御する制御部と、
を有し、
前記情報処理装置を含むＮ台の情報処理装置（ただし、Ｎは２以上の整数）のそれぞれは、（Ｎ＋１）台のバッテリのうちの２台のバッテリに接続され、前記Ｎ台の情報処理装置のそれぞれに接続される２台のバッテリの組合せはすべて異なり、
前記（Ｎ＋１）台のバッテリのうち（Ｎ−１）台のバッテリのそれぞれは、前記Ｎ台の情報処理装置のうちの２台の情報処理装置に接続され、前記（Ｎ−１）台のバッテリのそれぞれに接続される２台の情報処理装置の組合せはすべて異なり、
前記Ｎ台の情報処理装置のそれぞれに対応付けてＮ台の選択回路が設けられ、前記Ｎ台の選択回路のそれぞれは、前記Ｎ台の情報処理装置のうち対応する情報処理装置に接続された２台のバッテリから出力される電力の少なくとも一方を、駆動電力として前記対応する情報処理装置に供給し、
前記制御部は、前記Ｎ台の選択回路のうち前記情報処理装置に対応する一の選択回路において、前記情報処理装置に接続された２台のバッテリのうちどのバッテリから出力される電力を前記負荷に供給するかを、前記（Ｎ＋１）台のバッテリの故障発生状況に基づいて制御する、
情報処理装置。
【請求項７】
コンピュータが、前記コンピュータに含まれる負荷に供給する電力を制御する制御方法であって、
前記コンピュータを含むＮ台のコンピュータ（ただし、Ｎは２以上の整数）のそれぞれは、（Ｎ＋１）台のバッテリのうちの２台のバッテリに接続され、前記Ｎ台のコンピュータのそれぞれに接続される２台のバッテリの組合せはすべて異なり、
前記（Ｎ＋１）台のバッテリのうち（Ｎ−１）台のバッテリのそれぞれは、前記Ｎ台のコンピュータのうちの２台のコンピュータに接続され、前記（Ｎ−１）台のバッテリのそれぞれに接続される２台のコンピュータの組合せはすべて異なり、
前記Ｎ台のコンピュータのそれぞれに対応付けてＮ台の選択回路が設けられ、前記Ｎ台の選択回路のそれぞれは、前記Ｎ台のコンピュータのうち対応するコンピュータに接続された２台のバッテリから出力される電力の少なくとも一方を、駆動電力として前記対応するコンピュータに供給し、
前記電力の制御では、前記Ｎ台の選択回路のうち前記コンピュータに対応する一の選択回路において、前記コンピュータに接続された２台のバッテリのうちどのバッテリから出力される電力を前記負荷に供給するかを、前記（Ｎ＋１）台のバッテリの故障発生状況に基づいて制御する、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子システム、情報処理装置および制御方法に関する。
【背景技術】
【０００２】
一般的に、情報処理装置は、外部電源から供給される電力によって稼働するが、このような情報処理装置に対して、停電対策用のバッテリが接続される場合がある。この構成により、停電が発生したとき、バッテリからの電力を利用して情報処理装置が所定の処理を実行できることが保証される。例えば、揮発性の記憶装置を備える情報処理装置は、停電が発生したとき、バッテリからの電力を利用して、揮発性の記憶装置に格納されたデータを不揮発性の記憶装置にコピーする。これにより、揮発性の記憶装置に格納されたデータの消失を防止できる。
【０００３】
また、バッテリを用いた次のような技術が提案されている。例えば、それぞれキャッシュメモリを有する２つのアレイ制御ユニットと、それぞれバッテリを有する２つの電源ユニットとが交差接続されたディスクアレイ装置が提案されている。また、例えば、バッテリ残量を監視し、バッテリ残量に基づいてキャッシュメモリ内のダーティデータの許容量を制御するようにしたＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１６３４５５号公報
【特許文献２】特開２００６−３１３４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、複数の情報処理装置が存在する場合に、停電対策用のバッテリを情報処理装置ごとに個別に接続する構成を採用するケースがある。このようなケースにおいて、バッテリの故障に備えてバッテリを冗長化する方法としては、情報処理装置ごとに複数のバッテリを接続する方法が考えられる。しかし、この方法では、情報処理装置の数が多くなるほど、接続すべきバッテリの数も多くなり、バッテリのコストや設置スペースが増大するという問題がある。
【０００６】
また、このような問題は、情報処理装置に限らず、外部電源からの供給電力によって駆動するどのような電子部品についても発生する。
１つの側面では、本発明は、少数のバッテリを用いてバッテリを冗長化することが可能な電子システム、情報処理装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、Ｎ台の電子部品（ただし、Ｎは２以上の整数）と、（Ｎ＋１）台のバッテリと、Ｎ台の電子部品にそれぞれ対応付けて設けられたＮ台の選択回路とを有する電子システムが提供される。この電子システムにおいて、Ｎ台の電子部品のそれぞれは、（Ｎ＋１）台のバッテリのうちの２台のバッテリに接続され、Ｎ台の電子部品のそれぞれに接続される２台のバッテリの組合せはすべて異なる。また、（Ｎ＋１）台のバッテリのうち（Ｎ−１）台のバッテリのそれぞれは、Ｎ台の電子部品のうちの２台の電子部品に接続され、（Ｎ−１）台のバッテリのそれぞれに接続される２台の電子部品の組合せはすべて異なる。そして、Ｎ台の選択回路のそれぞれは、Ｎ台の電子部品のうち対応する電子部品に接続された２台のバッテリから出力される電力の少なくとも一方を、駆動電力として対応する電子部品に供給する。
【０００８】
また、１つの案では、電力の供給を受けて駆動する負荷と、負荷に供給する電力を制御する制御部と、を有する情報処理装置が提供される。ここで、情報処理装置を含むＮ台の情報処理装置（ただし、Ｎは２以上の整数）のそれぞれは、（Ｎ＋１）台のバッテリのうちの２台のバッテリに接続され、Ｎ台の情報処理装置のそれぞれに接続される２台のバッテリの組合せはすべて異なる。また、（Ｎ＋１）台のバッテリのうち（Ｎ−１）台のバッテリのそれぞれは、Ｎ台の情報処理装置のうちの２台の情報処理装置に接続され、（Ｎ−１）台のバッテリのそれぞれに接続される２台の情報処理装置の組合せはすべて異なる。さらに、Ｎ台の情報処理装置のそれぞれに対応付けてＮ台の選択回路が設けられ、Ｎ台の選択回路のそれぞれは、Ｎ台の情報処理装置のうち対応する情報処理装置に接続された２台のバッテリから出力される電力の少なくとも一方を、駆動電力として対応する情報処理装置に供給する。そして、制御部は、Ｎ台の選択回路のうち情報処理装置に対応する一の選択回路において、情報処理装置に接続された２台のバッテリのうちどのバッテリから出力される電力を負荷に供給するかを、（Ｎ＋１）台のバッテリの故障発生状況に基づいて制御する。
【０００９】
さらに、１つの案では、上記の情報処理装置と同様の処理をコンピュータが実行する制御方法が提供される。
【発明の効果】
【００１０】
１つの側面では、少数のバッテリを用いてバッテリを冗長化できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係る電子システムの構成例および動作例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】ＢＢＵの設置に関する第１の比較例を示す図である。
【図４】ＢＢＵの設置に関する第２の比較例を示す図である。
【図５】ＢＢＵにおける復電後の充電量の例を示す図である。
【図６】第２の実施の形態におけるＢＢＵの接続例を示す図である。
【図７】ＣＭにおける受電回路の構成例を示す図である。
【図８】ストレージ装置における通信用のバスの接続例を示す図である。
【図９】ＢＢＵが故障した場合の接続例を示す図である。
【図１０】ＢＢＵが故障した場合の制御パターンの例を示す図である。
【図１１】ＢＢＵにおける復電後の充電量の例を示す図である。
【図１２】ＣＭ増設後におけるＢＢＵの接続例を示す図である。
【図１３】ＣＭ増設後における通信用のバスの接続例を示す図である。
【図１４】ＢＢＵが故障した場合の制御パターンの例を示す図である。
【図１５】ＢＢＵが故障していない場合の接続例を示す図である。
【図１６】ＢＢＵにおける復電後の充電量の例を示す図である。
【図１７】ＢＢＵが故障していない場合の制御パターンの例を示す図である。
【図１８】ＢＢＵが故障していない場合の制御パターンの他の例を示す図である。
【図１９】ＣＭが備える処理機能の構成例を示すブロック図である。
【図２０】正常状態におけるＣＭの処理手順を示すフローチャートの例である。
【図２１】停電発生時におけるＣＭの処理手順を示すフローチャートの例である。
【図２２】復電時におけるＣＭの処理手順を示すフローチャートの例（その１）である。
【図２３】復電時におけるＣＭの処理手順を示すフローチャートの例（その２）である。
【図２４】第３の実施の形態に係るストレージ装置について示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る電子システムの構成例および動作例を示す図である。図１に示す電子システムは、２台以上の電子部品と、電子部品の数より１台多いバッテリとを含む。図１では例として、電子システムは、３台の電子部品１ａ〜１ｃと、４台のバッテリ２ａ〜２ｄとを含む。また、電子部品１ａ，１ｂ，１ｃにそれぞれ対応付けられた選択回路３ａ，３ｂ，３ｃが設けられている。
【００１３】
電子部品１ａ〜１ｃは、外部から電力の供給を受けて動作する。本実施の形態では、電子部品１ａ〜１ｃとバッテリ２ａ〜２ｄとの間が以下の接続条件にしたがって接続されることで、電子部品１ａ〜１ｃのそれぞれは、バッテリ２ａ〜２ｄの少なくとも１つからの電力によって動作する。
【００１４】
電子部品１ａ〜１ｃのそれぞれは、バッテリ２ａ〜２ｄのうちの２台に接続される。ただし、電子部品１ａ〜１ｃのそれぞれに接続される２台のバッテリの組合せは、すべて異なる。図１の例では、電子部品１ａはバッテリ２ａ，２ｂに接続され、電子部品１ｂはバッテリ２ｂ，２ｃに接続され、電子部品１ｃはバッテリ２ｃ，２ｄに接続されている。
【００１５】
また、バッテリ２ａ〜２ｄのうちの２台のバッテリ（全体の台数から２台を減算した台数のバッテリ）のそれぞれは、電子部品１ａ〜１ｃのうちの２台に接続される。ただし、バッテリ２ａ〜２ｄにそれぞれ接続される２台の電子部品の組合せは、すべて異なる。図１の例では、バッテリ２ｂは２台の電子部品１ａ，１ｂに接続され、バッテリ２ｃは２台の電子部品１ｂ，１ｃに接続されている。一方、バッテリ２ａは１台の電子部品１ａにのみ接続され、バッテリ２ｄは１台の電子部品１ｃにのみ接続されている。
【００１６】
選択回路３ａは、電子部品１ａに接続された２台のバッテリ２ａ，２ｂから出力される電力の少なくとも一方を、駆動電力として電子部品１ａに供給する。選択回路３ｂは、電子部品１ｂに接続された２台のバッテリ２ｂ，２ｃから出力される電力の少なくとも一方を、駆動電力として電子部品１ｂに供給する。選択回路３ｃは、電子部品１ｃに接続された２台のバッテリ２ｃ，２ｄから出力される電力の少なくとも一方を、駆動電力として電子部品１ｃに供給する。
【００１７】
なお、選択回路３ａ，３ｂ，３ｃは、それぞれ電子部品１ａ，１ｂ，１ｃの内部に設けられていてもよい。
上記構成の電子システムによれば、バッテリ２ａ〜２ｄのうちどの１台が故障したとしても、選択回路３ａ〜３ｃの切り替え制御により、電子部品１ａ〜１ｃのそれぞれに対して、互いに異なる正常なバッテリからの電力を確実に供給できる。例えば、図１の下側に示すように、バッテリ２ｂが故障したとする。この場合、選択回路３ａは、バッテリ２ａからの電力を電子部品１ａに供給する。選択回路３ｂは、バッテリ２ｃからの電力を電子部品１ｂに供給する。選択回路３ｃは、バッテリ２ｄからの電力を電子部品１ｃに供給する一方、バッテリ２ｃからの電力供給を遮断する。
【００１８】
また、図示しないが、バッテリ２ａが故障した場合は、次のような制御が行われる。選択回路３ａは、バッテリ２ｂからの電力を電子部品１ａに供給する。選択回路３ｂは、バッテリ２ｃからの電力を電子部品１ｂに供給する。選択回路３ｃは、バッテリ２ｄからの電力を電子部品１ｃに供給する一方、バッテリ２ｃからの電力供給を遮断する。
【００１９】
また、バッテリ２ｃが故障した場合は、次のような制御が行われる。選択回路３ａは、バッテリ２ａからの電力を電子部品１ａに供給する一方、バッテリ２ｂからの電力供給を遮断する。選択回路３ｂは、バッテリ２ｂからの電力を電子部品１ｂに供給する。選択回路３ｃは、バッテリ２ｄからの電力を電子部品１ｃに供給する。
【００２０】
また、バッテリ２ｄが故障した場合は、次のような制御が行われる。選択回路３ａは、バッテリ２ａからの電力を電子部品１ａに供給する一方、バッテリ２ｂからの電力供給を遮断する。選択回路３ｂは、バッテリ２ｂからの電力を電子部品１ｂに供給する。選択回路３ｃは、バッテリ２ｃからの電力を電子部品１ｃに供給する。
【００２１】
このように、本実施の形態に係る電子システムによれば、バッテリ２ａ〜２ｄのうちどの１台が故障したとしても、電子部品１ａ〜１ｃのそれぞれに対して互いに異なる正常なバッテリからの電力を確実に供給できる。すなわち、電子部品より１台多いバッテリを用いて、バッテリを確実に冗長化できる。
【００２２】
また、例えば、電子部品を増設する場合には、その増設台数と同じ台数のバッテリ（および選択回路）が増設され、上記の接続条件にしたがって電子部品とバッテリとが接続されればよい。これによって、増設前と同様に、各電子部品に対して互いに異なる正常なバッテリからの電力を供給できる。
【００２３】
このように、本実施の形態に係る電子システムによれば、少数のバッテリを用いて、バッテリを確実に冗長化できる。
〔第２の実施の形態〕
次に、図１に示した電子部品１ａ〜１ｃの一例としてストレージ制御装置を用いたストレージシステムについて説明する。
【００２４】
＜システム構成＞
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ストレージ装置１０００とホスト装置１１００とを含む。ストレージ装置１０００には、複数台のＣＭ（Controller Module）と、１台以上のドライブ部と、複数台のＰＳＵ（Power Supply Unit）と、複数台のＢＢＵ（Battery Backup Unit）とが搭載されている。図２では例として、ストレージ装置１０００には、２台のＣＭ１００ａ，１００ｂと、２台のドライブ部２００ａ，２００ｂと、２台のＰＳＵ３００ａ，３００ｂと、３台のＢＢＵ３１０ａ〜３１０ｃとが搭載されている。なお、後述するように、ＢＢＵは、ＣＭの台数より１台多く搭載されている。
【００２５】
なお、ＣＭ１００ａ，１００ｂは、図１に示した電子部品１ａ〜１ｃの一例である。また、ＢＢＵ３１０ａ〜３１０ｃは、図１に示したバッテリ２ａ〜２ｄの一例である。
ＣＭ１００ａ，１００ｂは、ホスト装置１１００に接続されている。ＣＭ１００ａ，１００ｂは、ホスト装置１１００からの要求に応じて、ドライブ部２００ａ，２００ｂに搭載された記憶装置にアクセスするストレージ制御装置である。例えば、ドライブ部２００ａ，２００ｂに搭載された記憶装置の記憶領域を用いた論理ボリュームが、ＣＭ１００ａ，１００ｂのそれぞれに対して１つ以上設定される。ＣＭ１００ａは、自装置に設定された論理ボリュームに対するアクセス要求をホスト装置１１００から受け付け、要求に応じたアクセス制御処理を実行する。ＣＭ１００ｂも同様に、自装置に設定された論理ボリュームに対するアクセス要求をホスト装置１１００から受け付け、要求に応じたアクセス制御処理を実行する。
【００２６】
ＣＭ１００ａは、ＣＰＵ（Central Processing Unit）１０１ａ、ＲＡＭ（Random Access Memory）１０２ａ、ＨＤＤ（Hard Disk Drive）１０３ａおよびバックアップメモリ１０４ａを有する。
【００２７】
ＣＰＵ１０１ａは、ＣＭ１００ａ全体を統括的に制御する。ＣＰＵ１０１ａは、例えば、１または複数のプロセッサを有する。ＲＡＭ１０２ａは、ＣＭ１００ａの主記憶装置である。ＲＡＭ１０２ａは、ＣＰＵ１０１ａに実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２ａは、ＣＰＵ１０１ａによる処理に用いる各種データを記憶する。
【００２８】
ＨＤＤ１０３ａは、ＣＭ１００ａの補助記憶装置である。ＨＤＤ１０３ａには、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ＣＭ１００ａは、補助記憶装置として、ＨＤＤ１０３ａの代わりにＳＳＤ（Solid State Drive）を備えていてもよい。
【００２９】
バックアップメモリ１０４ａは、停電が発生した場合に、ＲＡＭ１０２ａに格納されていたデータの一部をバックアップするための不揮発性記憶装置である。本実施の形態では、ＲＡＭ１０２ａにキャッシュ領域が確保され、停電が発生すると、キャッシュ領域内のキャッシュデータのうち、ドライブ部２００ａ，２００ｂの記憶領域に書き込まれていないダーティデータがバックアップメモリ１０４ａにバックアップされる。なお、バックアップメモリ１０４ａは、例えば、ＮＶＲＡＭ（Non-Volatile RAM）として実現される。
【００３０】
ＣＭ１００ｂもＣＭ１００ａと同様に、ＣＰＵ１０１ｂ、ＲＡＭ１０２ｂ、ＨＤＤ１０３ｂおよびバックアップメモリ１０４ｂを有する。ＣＰＵ１０１ｂ、ＲＡＭ１０２ｂ、ＨＤＤ１０３ｂおよびバックアップメモリ１０４ｂの機能は、それぞれＣＭ１００ａのＣＰＵ１０１ａ、ＲＡＭ１０２ａ、ＨＤＤ１０３ａおよびバックアップメモリ１０４ａと同様であるので、ここでは説明を省略する。
【００３１】
ドライブ部２００ａ，２００ｂのそれぞれには、ホスト装置１１００からのアクセス対象の記憶装置として、複数のＨＤＤが搭載されている。例えば、ドライブ部２００ａには、ＨＤＤ２０１，２０２，２０３，・・・が搭載されている。なお、ドライブ部２００ａ，２００ｂに搭載される記憶装置は、ＨＤＤに限らず、ＳＳＤなどの他の種類の不揮発性記憶装置であってもよい。
【００３２】
ＰＳＵ３００ａ，３００ｂは、図示しない外部電源から供給された電力を受け付け、その電力を基にストレージ装置１０００内の各部に対して電源を供給する。ストレージ装置１０００では、ＰＳＵが冗長化されることで、ＰＳＵの故障による停電の発生確率が低減されている。
【００３３】
ＢＢＵ３１０ａ〜３１０ｃは、外部電源からの電力供給が停止された停電時において、ＣＭ１００ａ，ＣＭ１００ｂに電力を供給するためのバックアップ電源であり、それぞれバッテリを備えている。後述するように、停電時においては、ＢＢＵ３１０ａ〜３１０ｃのそれぞれは、ＣＭ１００ａ，１００ｂの少なくとも１つに対して電力を供給するように制御される。
【００３４】
ホスト装置１１００は、例えば、種々の業務処理を実行するコンピュータである。なお、ホスト装置１１００とＣＭ１００ａ，１００ｂとの間は、例えば、ファイバチャネル（ＦＣ：Fibre Channel）やｉＳＣＳＩ（Internet Small Computer System Interface）などを用いたＳＡＮ（Storage Area Network）を介して接続される。
【００３５】
＜キャッシュ領域を用いた書き込み制御＞
ストレージ装置１０００では、論理ボリュームに対するデータの書き込み制御において、キャッシュ領域が用いられる。具体的には、ＣＭ１００ａは、ＲＡＭ１０２ａにキャッシュ領域を確保し、書き込みデータの一部をキャッシュ領域に一時的に格納しながら、論理ボリュームに対するアクセスを制御する。ＣＭ１００ｂも同様に、ＲＡＭ１０２ｂにキャッシュ領域を確保し、読み書きするデータの一部をキャッシュ領域に一時的に格納しながら、論理ボリュームに対するアクセスを制御する。
【００３６】
外部電源から電力が正常に供給されている状態では、ＣＭ１００ａ，１００ｂは、ライトバック方式で論理ボリュームに対する書き込み制御を行う。すなわち、ＣＭ１００ａ，１００ｂは、ホスト装置１１００から書き込みが要求された書き込みデータをキャッシュ領域に書き込み、ホスト装置１１００に書き込み完了の応答を行う。そして、ＣＭ１００ａ，１００ｂは、キャッシュ領域への書き込み後の所定のタイミングにおいて、書き込みデータをキャッシュ領域からドライブ部２００ａ，２００ｂの記憶領域にコピーする（ライトバックする）。
【００３７】
一方、ＢＢＵは、停電が発生したときにＣＭ１００ａ，１００ｂに電力を供給するために設けられている。ＣＭ１００ａ，１００ｂは、停電が発生すると、ＢＢＵからの電力を用いて、キャッシュ領域に含まれるダーティデータをバックアップメモリ１０４ａ，１０４ｂにそれぞれバックアップする。これにより、ダーティデータを保護し、その消失を防止する。
【００３８】
この後、外部電源からの電力供給が復旧する（復電する）と、ＣＭ１００ａ，１００ｂは、バックアップメモリに格納されたダーティデータの復旧処理を実行する。復旧処理では、例えば、バックアップメモリに格納されたダーティデータが、ドライブ部２００ａ，２００ｂの記憶領域に書き込まれる。また、ＢＢＵは、ＰＳＵから供給される電力によって充電される。
【００３９】
ＣＭ１００ａ，１００ｂは、ダーティデータの復旧処理が完了すると、ホスト装置１１００からの要求に応じた論理ボリュームに対するアクセス制御を再開できる。ただし、ＣＭ１００ａ，１００ｂは、ＢＢＵの充電量が一定量に達するまでの間、ライトスルー方式で論理ボリュームに対する書き込み制御を行う。これは、ＢＢＵの充電量が一定量に達するまで、もし再度停電が発生した場合に、キャッシュ領域内のすべてのダーティデータをバックアップできることが保証されないからである。なお、ライトスルー方式では、ＣＭ１００ａ，１００ｂは、ホスト装置１１００から書き込みが要求された書き込みデータを、キャッシュ領域に書き込むとともに、ドライブ部２００ａ，２００ｂの記憶領域にも書き込んだ後、ホスト装置１１００に書き込み完了の応答を行う。
【００４０】
その後、ＣＭ１００ａ，１００ｂは、ＢＢＵの充電量が一定量に達すると、書き込み制御方式をライトスルー方式からライトバック方式に切り替える。ライトバック方式では、ライトスルー方式と比較して、ホスト装置１１００からの書き込み要求に対する応答時間を短縮できる。換言すると、復電直後には、書き込み要求に対する応答性能が低い期間が生じることになる。
【００４１】
なお、ライトバック方式への切り替えタイミングを判定するためのバッテリ残量の閾値は、キャッシュ領域の大きさに応じて決まる。すなわち、キャッシュ領域全体のデータをバックアップメモリに転送するための必要最小限のバッテリ容量が、閾値に決定される。以下、この判定のためのバッテリ残量の閾値を「残量閾値ＴＨ」と記載する。そして、この残量閾値ＴＨと、復電直前におけるＢＢＵのバッテリ残量とから、復電からライトバック方式に切り替えるまでの期間、すなわち、書き込み要求に対する応答性能が低い期間の長さが決まることになる。
【００４２】
＜ＢＢＵの設置に関する比較例と、その課題＞
次に、ＢＢＵを冗長化する上での課題について説明する。
停電発生時にＢＢＵが故障していた場合、ダーティデータのバックアップが不可能となる。そのため、ＢＢＵの故障に備えてＢＢＵが冗長化される。ここで、図３、図４を用いて、ＢＢＵの設置に関する比較例について説明する。
【００４３】
図３は、ＢＢＵの設置に関する第１の比較例を示す図である。なお、図３では、図２と共通の構成要素には同じ符号を付して示している。
図３に示すストレージ装置２００１は、図２に示したストレージ装置１０００と同様に、２台のＣＭ１００ａ，１００ｂを有している。また、図２に示したストレージ装置１０００と同様に、２台のドライブ部２００ａ，２００ｂと２台のＰＳＵ３００ａ，３００ｂも搭載されている。
【００４４】
ＰＳＵ３００ａ，３００ｂは、５Ｖの電圧を有する電力（５Ｖ系電力）と１２Ｖの電圧を有する電力（１２Ｖ系電力）とを出力する。５Ｖ系電力はドライブ部２００ａ，２００ｂに供給され、１２Ｖ系電力はＣＭ１００ａ，１００ｂとＢＢＵに供給される。この構成では、ＰＳＵ３００ａ，３００ｂの一方が故障した場合、他方が５Ｖ系電力をドライブ部２００ａ，２００ｂに共通に供給し、１２Ｖ電力をＣＭ１００ａ，１００ｂに共通に供給できるようになっている。すなわち、ＰＳＵは、複数のＣＭに対して共通に設置されており、ストレージ装置単位で冗長化されている。
【００４５】
また、図３の例では、ストレージ装置２００１には１台のＢＢＵ３１０ａ１が搭載されている。そして、ＢＢＵ３１０ａ１は停電が発生すると、ＣＭ１００ａ，１００ｂに対して共通に電力を供給する。このように、ＢＢＵ３１０ａ１は、複数台のＣＭ１００ａ，１００ｂに対して共通に設置されているので、ＣＭ１００ａ，１００ｂの両方のキャッシュ領域に含まれるすべてのダーティデータをバックアップメモリに転送できるだけのバッテリ容量を有している。
【００４６】
このような構成において、故障に備えてＢＢＵを冗長化する方法としては、図３に破線で示すように、ＣＭ１００ａ，１００ｂに対して共通に電力を供給するもう１台のＢＢＵ３１０ｂ１を追加する方法が考えられる。この方法では、次のような利点がある。ＢＢＵ３１０ａ１，３１０ｂ１のいずれも、ＣＭ１００ａ，１００ｂの両方のキャッシュ領域に含まれるすべてのダーティデータを転送できるだけのバッテリ容量を有している。このため、どちらのＢＢＵが故障した場合でも、他方のＢＢＵからの電力によって、ＣＭ１００ａ，１００ｂの両方のキャッシュ領域に含まれるすべてのダーティデータをバックアップメモリに転送できる。
【００４７】
その一方で、次のような課題がある。ＢＢＵ３１０ａ１，３１０ｂ１のそれぞれのバッテリ容量が大きいので、ＢＢＵの冗長化によってコストが増大する。また、１つのＢＢＵから複数のＣＭのそれぞれに対して電力を供給するための並列放電回路が、ＢＢＵ３１０ａ，３１０ｂのそれぞれについて必要になるので、ＢＢＵの設置スペースが大きくなるという課題もある。
【００４８】
これに対して、次の図４に示すように、ＣＭ単位でＢＢＵを冗長化する方法も考えられる。
図４は、ＢＢＵの設置に関する第２の比較例を示す図である。なお、図４では、図２、図３と共通の構成要素には同じ符号を付して示している。また、これ以降、ＣＭ１００ａ、ＣＭ１００ｂをそれぞれＣＭ＃０、ＣＭ＃１と表記し、ＰＳＵ３００ａ、ＰＳＵ３００ｂをそれぞれＰＳＵ＃０、ＰＳＵ＃１と表記し、ＢＢＵ３１０ａ、ＢＢＵ３１０ｂ、ＢＢＵ３１０ｃ、ＢＢＵ３１０ｄをそれぞれＢＢＵ＃０、ＢＢＵ＃１、ＢＢＵ＃２、ＢＢＵ＃３と表記する場合がある。
【００４９】
図４に示すストレージ装置２００２では、ＣＭ１００ａ（ＣＭ＃０）に電力を供給するためのＢＢＵ３１０ａ（ＢＢＵ＃０）と、ＣＭ１００ｂ（ＣＭ＃１）に電力を供給するためのＢＢＵ３１０ｂ（ＢＢＵ＃１）とが、個別に搭載されている。この構成によれば、ＢＢＵ３１０ａ，３１０ｂは、それぞれ１台のＣＭのキャッシュ領域に含まれるダーティデータを転送できるだけのバッテリ容量を有していればよい。このため、図３の構成と比較して、個々のＢＢＵのバッテリ容量を小さくすることができる。また、上記の並列放電回路が不要になるので、個々のＢＢＵの内部構成が簡易になり、その設置スペースも小さくなる。
【００５０】
さらに、図３の構成（ただし、ＢＢＵが冗長でない場合の構成）と比較して、復電後にライトバック方式での書き込み制御を再開できるまでの時間を短縮できる可能性がある。以下、図５を用いてこの効果について説明する。
【００５１】
図５は、ＢＢＵにおける復電後の充電量の例を示す図である。ここでは、ＢＢＵ＃０，＃１（ＢＢＵ３１０ａ，３１０ｂ）のそれぞれのバッテリ容量が同一であるものとし、前述の残量閾値ＴＨを、ＢＢＵ＃０，＃１のそれぞれのバッテリ容量の７０％とする。すなわち、バッテリ容量の７０％に相当する電力により、ＣＭ＃０，＃１（ＣＭ１００ａ，１００ｂ）のそれぞれが有するキャッシュ領域内のすべてのデータをバックアップメモリに転送できるものとする。また、停電の発生前（すなわち、バッテリの放電前）では、ＢＢＵ＃０，＃１のそれぞれのバッテリ残量は１００％であったとする。
【００５２】
ここで、ＣＭ＃０のキャッシュ領域に含まれるダーティデータの量と、ＣＭ＃１のキャッシュ領域に含まれるダーティデータの量とは、ＣＭ＃０，＃１のそれぞれにおけるアクセス制御の状態によって異なり、これらの量が大きくばらつく場合もある。このため、停電が発生してからＣＭ＃０，＃１のそれぞれがダーティデータのバックアップ処理を完了するまでの時間は異なる場合が多く、その場合には、バックアップ処理完了後におけるＢＢＵ＃０，＃１のそれぞれのバッテリ残量も異なる値となる。
【００５３】
図５では例として、ＣＭ＃０の方がダーティデータの量が多く、バックアップ処理完了後におけるＢＢＵ＃０，＃１のバッテリ残量は、それぞれ３０％、５０％になったとする。すなわち、ＢＢＵ＃０は、ＣＭ＃０でのバックアップ処理の間に７０％分の電力を放電し、ＢＢＵ＃１は、ＣＭ＃１でのバックアップ処理の間に５０％分の電力を放電する。
【００５４】
この場合、復電後にＢＢＵ＃０に対して充電が必要な量（必要充電量）は、７０％−３０％＝４０％となる。一方、復電後にＢＢＵ＃１に対して充電が必要な量（必要充電量）は、７０％−５０％＝２０％となるので、ＢＢＵ＃０よりＢＢＵ＃１の方が、バッテリ残量が残量閾値ＴＨに短時間で到達する。ＢＢＵのバッテリ残量が残量閾値ＴＨに到達すれば、そのＢＢＵに対応するＣＭの書き込み制御方式をライトスルー方式からライトバック方式に切り替えることができる。したがって、図５の例では、ＣＭ＃０よりＣＭ＃１の方が、復電からライトバック方式に切り替えるまでの期間が短くなる。
【００５５】
一方、図３の構成（ただし、ＢＢＵが冗長でない場合の構成）では、図５におけるバッテリ容量の尺度に合わせて表現すると、ＢＢＵ３１０ａ１の残量閾値ＴＨは７０％×２＝１４０％となる。そして、図３の構成では、ＣＭ１００ａ，１００ｂの各キャッシュ領域に含まれるダーティデータの量が異なっていたとしても、復電後には、ＢＢＵ３１０ａ１のバッテリ残量が１４０％に相当する量に到達するまで、ＣＭ１００ａ，１００ｂの両方とも書き込み制御方式をライトバック方式に切り替えることができない。
【００５６】
このように、図４の構成によれば、ＣＭのキャッシュ領域に含まれるダーティデータの量によっては、図３の構成と比較して、復電後にＣＭがライトバック方式での書き込み制御を再開できるまでの時間を短縮できる。
【００５７】
以下、図４に戻って説明を続ける。
図４の構成においてＢＢＵを冗長化する方法としては、図４に破線で示すように、ＣＭ１００ａに電力を供給するためのもう１台のＢＢＵ３１０ｃ（ＢＢＵ＃２）と、ＣＭ１００ｂに電力を供給するためのもう１台のＢＢＵ３１０ｄ（ＢＢＵ＃３）とを追加する方法が考えられる。この方法を採用することで、ＢＢＵ３１０ａ〜３１０ｄのうちのどれが故障しても、他のＢＢＵからの電力によって、ＣＭ１００ａ，１００ｂの両方のキャッシュ領域に含まれるすべてのダーティデータをバックアップメモリに転送できる。
【００５８】
しかしながら、図３に示した冗長化方法と比較した場合、個々のＢＢＵのコストや設置スペースは抑制できるものの、ＢＢＵの台数は多くなってしまう。このため、ＢＢＵ全体のコストや設置スペースが大きくなる可能性がある。また、ＣＭを１台増設するたびに、ＢＢＵを２台増設しなくてはならない。このため、ＣＭを増設するほどＢＢＵの台数も多くなり、コストや設置スペースが増大してしまう。
【００５９】
これに対し、下記で説明するように、第２の実施の形態に係るストレージ装置１０００は、ＢＢＵの台数をＣＭの台数より１台多い台数に抑えつつ、図４の構成と同様な、復電後におけるライトバック方式への切り替え時間の短縮効果を得られるような構成を有する。
【００６０】
＜第２の実施の形態に係るストレージ装置の詳細＞
図６は、第２の実施の形態におけるＢＢＵの接続例を示す図である。本実施の形態に係るストレージ装置１０００には、ＣＭの台数より１台だけ多い台数のＢＢＵが搭載される。図６の例では、ストレージ装置１０００には、２台のＣＭ１００ａ，１００ｂと、３台のＢＢＵ３１０ａ〜３１０ｃが搭載される。
【００６１】
また、ＣＭ１００ａ，１００ｂはそれぞれ、電力供給を受けるための入力端子ＩＮ０〜ＩＮ２を備える。入力端子ＩＮ０は、ＰＳＵから１２Ｖ系電力の供給を受けるための端子である。ＣＭ１００ａ，１００ｂのどちらの入力端子ＩＮ０も、ＰＳＵ３００ａ（ＰＳＵ＃０）からの電力供給と、ＰＳＵ３００ｂ（ＰＳＵ＃１）からの電力供給のどちらも受けることが可能になっている。
【００６２】
一方、入力端子ＩＮ１，ＩＮ２は、ＢＢＵからの電力供給を受けるための端子である。図６の例では、ＢＢＵと入力端子ＩＮ１，ＩＮ２との間は、次のように配線されている。ＢＢＵ３１０ａの出力は、ＣＭ１００ａの入力端子ＩＮ１に接続される。ＢＢＵ３１０ｂの出力は、ＣＭ１００ａの入力端子ＩＮ２と、ＣＭ１００ｂの入力端子ＩＮ１の両方に接続される。ＢＢＵ３１０ｃの出力は、ＣＭ１００ｂの入力端子ＩＮ２に接続される。
【００６３】
なお、ＰＳＵ３００ａ，３００ｂからの１２Ｖ系電力は、ＢＢＵ３１０ａ〜３１０ｃにも供給される。したがって、外部電源から電力が正常に供給されている状態では、１２Ｖ系電力によってＢＢＵ３１０ａ〜３１０ｃが充電される。
【００６４】
図７は、ＣＭにおける受電回路の構成例を示す図である。図７では、例としてＣＭ１００ａの構成を示している。ＣＭ１００ａは、図７に示すような受電回路１１０を備える。この受電回路１１０は、図１に示した選択回路３ａ〜３ｃの一例である。受電回路１１０は、入力端子ＩＮ０〜ＩＮ２から供給される電力をＣＭ１００ａの内部に伝達するための回路であり、ダイオード１１１，１１１ａ，１１１ｂとスイッチ１１２ａ，１１２ｂを備える。
【００６５】
ダイオード１１１は、ＰＳＵから入力端子ＩＮ０を介して供給された電力の逆流を防止する。ダイオード１１１ａは、ＢＢＵ３１０ａから入力端子ＩＮ１を介して供給された電力の逆流を防止する。ダイオード１１１ｂは、ＢＢＵ３１０ｂから入力端子ＩＮ２を介して供給された電力の逆流を防止する。
【００６６】
ダイオード１１１，１１１ａ，１１１ｂからの電力は、電源線１１３を介してＣＭ１００ａの内部領域１１５ａに供給される。内部領域１１５ａには、停電直後に動作する必要があるデバイスが含まれる。このようなデバイスとしては、バックアップ処理を制御するＣＰＵ１０１ａ、バックアップ元となるＲＡＭ１０２ａ、バックアップ先となるバックアップメモリ１０４ａがある。また、図示しないが、これらのデバイスを冷却するためのファンも、内部領域１１５ａに含まれる。一方、入力端子ＩＮ０からの電力は、電源線１１４によって分岐され、ＣＭ１００ａの内部領域１１５ｂに供給される。内部領域１１５ｂには、停電時に動作する必要のないデバイスが含まれる。このようなデバイスとしては、ＨＤＤ１０３ａ、外部装置（例えば、ホスト装置１１００、ドライブ部２００ａ，２００ｂなど）と通信するためのインタフェース（Ｉ／Ｆ）１０５ａなどがある。
【００６７】
スイッチ１１２ａは、ＣＰＵ１０１ａの制御の下で、入力端子ＩＮ１とダイオード１１１ａとの間の接続と切断とを切り替える。スイッチ１１２ｂは、ＣＰＵ１０１ａの制御の下で、入力端子ＩＮ２とダイオード１１１ｂとの間の接続と切断とを切り替える。このような構成により、停電が発生したとき、内部領域１１５ａに含まれるデバイスを駆動するための駆動電力を、入力端子ＩＮ１からの電力と、入力端子ＩＮ２からの電力と、これらの両方からの電力とに切り替えることが可能になっている。
【００６８】
図示しないが、ＣＭ１００ｂも、図７と同様の構成を有する受電回路１１０を備えている。
図８は、ストレージ装置における通信用のバスの接続例を示す図である。本実施の形態では、ＣＭ１００ａとＣＭ１００ｂとの間は、例えば、ＰＣＩｅ（Peripheral Component Interconnect express）バスを介して接続されて、互いに通信可能になっている。例えば、ＣＭ１００ａ，１００ｂは、他方のＣＭのキャッシュ領域に含まれるダーティデータの量を、ＰＣＩｅバスを介して収集できる。また、ＣＭ１００ａ，１００ｂとＢＢＵ３１０ａ〜３１０ｃとの間は、例えば、Ｉ2Ｃ（登録商標）バスを介して接続されて、互いに通信可能になっている。例えば、ＣＭ１００ａ，１００ｂは、ＢＢＵ３１０ａ〜３１０ｃのそれぞれのバッテリ残量を、Ｉ2Ｃバスを介して取得できる。
【００６９】
以上の図６〜図８に示した構成により、ストレージ装置１０００では次のような動作が行われる。
図９は、ＢＢＵが故障した場合の接続例を示す図である。図９では例として、ＢＢＵ３１０ａが故障した場合について示している。この場合、ＣＭ１００ａ，１００ｂのスイッチ１１２ａ，１１２ｂは次のように制御される。
【００７０】
ＣＭ１００ａは、スイッチ１１２ａをオフ（切断状態）にし、スイッチ１１２ｂをオン（接続状態）にする。ＢＢＵ３１０ａの故障により、ＢＢＵ３１０ａから入力端子ＩＮ１に対する電力供給が停止している。そこで、スイッチ１１２ｂがオンになることで、ＣＭ１００ａは、ＢＢＵ３１０ｂから入力端子ＩＮ２を介して供給される電力によって、バックアップ処理を実行できる。また、ＣＭ１００ｂは、スイッチ１１２ａをオフにし、スイッチ１１２ｂをオンにする。これにより、ＣＭ１００ｂは、ＢＢＵ３１０ｃから入力端子ＩＮ２を介して供給される電力によって、バックアップ処理を実行できる。
【００７１】
図１０は、ＢＢＵが故障した場合の制御パターンの例を示す図である。図１０に示す制御テーブル１２３ａには、どのＢＢＵが故障したとき、ＣＭ＃０，＃１（ＣＭ１００ａ，１００ｂ）のそれぞれが備えるどの入力端子をオンにするかを示す制御パターンが登録されている。ＣＭ＃０，＃１は、例えば、この制御テーブル１２３ａにしたがってスイッチ１１２ａ，１１２ｂを制御する。
【００７２】
図１０に示すように、ＢＢＵ＃０（ＢＢＵ３１０ａ）が故障した場合、ＣＭ＃０は入力端子ＩＮ２をオンにし、ＣＭ＃１は入力端子ＩＮ２をオンにする。ＢＢＵ＃１（ＢＢＵ３１０ｂ）が故障した場合、ＣＭ＃０は入力端子ＩＮ１をオンにし、ＣＭ＃１は入力端子ＩＮ２をオンにする。ＢＢＵ＃２（ＢＢＵ３１０ｃ）が故障した場合、ＣＭ＃０は入力端子ＩＮ１をオンにし、ＣＭ＃１は入力端子ＩＮ１をオンにする。なお、「入力端子ＩＮ１をオンにする」とは、スイッチ１１２ａをオンにすることを意味し、「入力端子ＩＮ２をオンにする」とは、スイッチ１１２ｂをオンにすることを意味する。
【００７３】
このような制御により、どのＢＢＵが故障した場合でも、各ＣＭに対して個別のＢＢＵからの電力を供給することができる。したがって、ＢＢＵの台数をＣＭの台数より１台だけ多い台数に抑えつつ、ＢＢＵが故障した場合でもすべてのＣＭがバックアップ処理を実行できる。また、次の図１１で説明するように、ＣＭのキャッシュ領域に含まれるダーティデータの量が少ないＣＭほど、復電後に書き込み制御方式をライトバック方式へ切り替えるまでの期間を短縮できる。
【００７４】
図１１は、ＢＢＵにおける復電後の充電量の例を示す図である。この図１１では、図９の例のように、ストレージ装置１０００のＢＢＵ＃０（ＢＢＵ３１０ａ）が故障した状態で、停電が発生し、その後復電した場合について示す。ＢＢＵ＃０〜＃３（ＢＢＵ３１０ａ〜３１０ｃ）のそれぞれのバッテリ容量は同一であるものとする。また、図５の場合と同様に、残量閾値ＴＨを各ＢＢＵのバッテリ容量の７０％とする。
【００７５】
さらに、図５の場合と同様に、ＣＭ＃１よりＣＭ＃０の方がダーティデータの量が多く、ＣＭ＃０のバックアップ処理にはバッテリ容量の７０％に相当する電力を要し、ＣＭ＃１のバックアップ処理にはバッテリ容量の５０％に相当する電力を要するものとする。この場合、図１１に示すように、バックアップ処理完了後におけるＢＢＵ＃１，＃２のバッテリ残量は、それぞれ３０％、５０％になる。
【００７６】
復電後にＢＢＵ＃１に対して充電が必要な量（必要充電量）は、７０％−３０％＝４０％となり、これは、図５に示したＢＢＵ＃０の必要充電量と同じである。また、復電後にＢＢＵ＃２に対して充電が必要な量（必要充電量）は、７０％−５０％＝２０％となり、これは、図５に示したＢＢＵ＃１の必要充電量と同じである。したがって、ＣＭ＃０，＃１のそれぞれにおいて、復電から書き込み制御方式をライトバック方式に切り替えるまでの期間は、図５のケースと同じになり、ＣＭ＃０よりＣＭ＃１の方がこの期間が短くなる。
【００７７】
次に、ＣＭの増設について説明する。上記のストレージ装置１０００では、ＣＭを１台増設するごとに、ＢＢＵも１台増設すればよい。以下、ストレージ装置１０００に対して２台のＣＭを増設した場合の例について説明する。
【００７８】
図１２は、ＣＭ増設後におけるＢＢＵの接続例を示す図である。図１２では、２台のＣＭ１００ｃ，１００ｄ（ＣＭ＃２，＃３）が増設された状態のストレージ装置１０００を「ストレージ装置１０００ａ」と表している。また、ＣＭ１００ｃ，１００ｄの増設に伴い、ストレージ装置１０００ａには２台のＢＢＵ３１０ｄ，３１０ｅ（ＢＢＵ＃３，＃４）が増設されている。
【００７９】
ＣＭ１００ｃ，１００ｄも、ＣＭ１００ａ，１００ｂと同様に、入力端子ＩＮ０〜ＩＮ２を備えている。また、ＣＭ１００ｃ，１００ｄも、ＣＭ１００ａ，１００ｂと同様に、図７に示した受電回路１１０を備えており、受電回路１１０によって入力端子ＩＮ１，ＩＮ２からの入力をオン、オフできるようになっている。
【００８０】
ＣＭ１００ａ〜１００ｄとＢＢＵ３１０ａ〜３１０ｅとの間は、次のように配線される。ＢＢＵ３１０ａの出力は、ＣＭ１００ａの入力端子ＩＮ１に接続される。ＢＢＵ３１０ｂの出力は、ＣＭ１００ａの入力端子ＩＮ２と、ＣＭ１００ｂの入力端子ＩＮ１の両方に接続される。ＢＢＵ３１０ｃの出力は、ＣＭ１００ｂの入力端子ＩＮ２と、ＣＭ１００ｃの入力端子ＩＮ１の両方に接続される。ＢＢＵ３１０ｄの出力は、ＣＭ１００ｃの入力端子ＩＮ２と、ＣＭ１００ｄの入力端子ＩＮ１の両方に接続される。ＢＢＵ３１０ｅの出力は、ＣＭ１００ｄの入力端子ＩＮ２に接続される。
【００８１】
また、図１２では例として、ＰＳＵ３００ｃ，ＰＳＵ３００ｄも増設されている。ＰＳＵ３００ａ〜３００ｄからの１２Ｖ系電力は、ＢＢＵ３１０ａ〜３１０ｃに加え、増設されたＢＢＵ３１０ｄ，３１０ｅにも供給される。したがって、外部電源から電力が正常に供給されている状態では、１２Ｖ系電力によってＢＢＵ３１０ａ〜３１０ｅが充電される。
【００８２】
図１３は、ＣＭ増設後における通信用のバスの接続例を示す図である。ＣＭ１００ａ〜１００ｄは、ＰＣＩｅバスを介して互いに接続されて、通信可能になっている。例えば、ＣＭ１００ａ〜１００ｄは、他のＣＭのキャッシュ領域に含まれるダーティデータの量を、ＰＣＩｅバスを介して収集できる。また、ＣＭ１００ａ〜１００ｄとＢＢＵ３１０ａ〜３１０ｅとの間は、Ｉ2Ｃバスを介して接続されて、互いに通信可能になっている。例えば、ＣＭ１００ａ〜１００ｄは、ＢＢＵ３１０ａ〜３１０ｅのそれぞれのバッテリ残量を、Ｉ2Ｃバスを介して取得できる。
【００８３】
図１４は、ＢＢＵが故障した場合の制御パターンの例を示す図である。図１４に示す制御テーブル１２３ｂには、ストレージ装置１０００ａにおいて、どのＢＢＵが故障したとき、ＣＭ＃０〜＃３（ＣＭ１００ａ〜１００ｄ）のそれぞれが備えるどの入力端子をオンにするかを示す制御パターンが登録されている。ＣＭ＃２，＃３が増設された後、ＣＭ＃０〜＃３は、例えば、この制御テーブル１２３ｂにしたがってスイッチ１１２ａ，１１２ｂを制御する。
【００８４】
図１４に示すように、ＢＢＵ＃０（ＢＢＵ３１０ａ）が故障した場合、ＣＭ＃０〜＃３はいずれも入力端子ＩＮ２をオンにする。ＢＢＵ＃１（ＢＢＵ３１０ｂ）が故障した場合、ＣＭ＃０は入力端子ＩＮ１をオンにし、ＣＭ＃１〜＃３は入力端子ＩＮ２をオンにする。ＢＢＵ＃２（ＢＢＵ３１０ｃ）が故障した場合、ＣＭ＃０，＃１は入力端子ＩＮ１をオンにし、ＣＭ＃２，＃３は入力端子ＩＮ２をオンにする。ＢＢＵ＃３（ＢＢＵ３１０ｄ）が故障した場合、ＣＭ＃０〜＃２は入力端子ＩＮ１をオンにし、ＣＭ＃３は入力端子ＩＮ２をオンにする。ＢＢＵ＃４（ＢＢＵ３１０ｄ）が故障した場合、ＣＭ＃０〜＃３はいずれも入力端子ＩＮ１をオンにする。
【００８５】
このような制御により、ＣＭ＃２，＃３の増設前と同様に、どのＢＢＵが故障した場合でも、各ＣＭに対して個別のＢＢＵからの電力を供給することができる。したがって、ＢＢＵの台数をＣＭの台数より１台だけ多い台数に抑えつつ、ＢＢＵが故障した場合でもすべてのＣＭがバックアップ処理を実行できる。また、ＣＭのキャッシュ領域に含まれるダーティデータの量が少ないＣＭほど、復電後に書き込み制御方式をライトバック方式へ切り替えるまでの期間を短縮できる。
【００８６】
ところで、上記構成のＣＭ１０００，１０００ａでは、どのＢＢＵも故障していない場合、各ＣＭに１台ずつのＢＢＵから電力を供給させると１台のＢＢＵが余剰となる。一方、ＣＭのキャッシュ領域に含まれるダーティデータの量が多いほど、バックアップ処理にかかる時間が長くなり、バックアップ処理完了後におけるＢＢＵのバッテリ残量は小さくなる。そして、復電後にバッテリ残量が残量閾値ＴＨに達するまでの時間が長くなり、書き込み制御方式をライトバック方式へ切り替えるまでの期間が長くなる。
【００８７】
そこで、本実施の形態では、ＢＢＵが故障していない場合、余剰のＢＢＵの電力を、ダーティデータの量が最大のＣＭに供給する。これにより、当該ＣＭには２台のＢＢＵからの電力が供給されるので、バックアップ処理によるこれら２台のＢＢＵの放電量を、１台のＢＢＵを用いる場合の１／２に低減できる。その結果、復電後に書き込み制御方式をライトバック方式へ切り替えるまでの期間を短縮できる。
【００８８】
図１５は、ＢＢＵが故障していない場合の接続例を示す図である。この図１５では、図６に示したストレージ装置１０００において、ＢＢＵ３１０ａ〜３１０ｃのいずれも正常に動作している場合について示している。また、ＣＭ１００ｂのキャッシュ領域に含まれるダーティデータより、ＣＭ１００ａのキャッシュ領域に含まれるダーティデータの量の方が大きいものとする。この状態において停電が発生すると、ＣＭ１００ａ，１００ｂのスイッチ１１２ａ，１１２ｂは次のように制御される。
【００８９】
ダーティデータ量が最大であるＣＭ１００ａは、スイッチ１１２ａ，１１２ｂの両方をオンにする。これにより、ＣＭ１００ａには、入力端子ＩＮ１，ＩＮ２を介してＢＢＵ３１０ａ，３１０ｂの両方から電力が供給される。このため、ＣＭ１００ａでのバックアップ処理によるＢＢＵ３１０ａ，３１０ｂのそれぞれの消費電力は、１台のＢＢＵを用いた場合の１／２となる。一方、ＣＭ１００ｂは、スイッチ１１２ａをオフにし、スイッチ１１２ｂをオンにする。これにより、ＣＭ１００ｂは、ＢＢＵ３１０ｃから入力端子ＩＮ２を介して供給される電力によって、バックアップ処理を実行する。
【００９０】
図１６は、ＢＢＵにおける復電後の充電量の例を示す図である。この図１６では、図１５の例のように、ストレージ装置１０００のＢＢＵ＃０〜＃２（ＢＢＵ３１０ａ〜３１０ｃ）がいずれも故障していない状態で、停電が発生し、その後復電した場合について示す。ＢＢＵ＃０〜＃２のそれぞれのバッテリ容量は同一であるものとする。また、図１１の場合と同様に、残量閾値ＴＨを各ＢＢＵのバッテリ容量の７０％とする。
【００９１】
さらに、図１１の場合と同様に、ＣＭ＃１よりＣＭ＃０の方がダーティデータの量が多く、ＣＭ＃０のバックアップ処理にはバッテリ容量の７０％に相当する電力を要し、ＣＭ＃１のバックアップ処理にはバッテリ容量の５０％に相当する電力を要するものとする。そして、図１５に示すように、ＢＢＵ＃０，＃１からの電力がＣＭ＃０に供給され、ＢＢＵ＃２からの電力がＣＭ＃１に供給されるとする。
【００９２】
この場合、図１６に示すように、バックアップ処理完了後におけるＢＢＵ＃２のバッテリ残量は５０％になるので、復電後にＢＢＵ＃２に対して充電が必要な量（必要充電量）は、７０％−５０％＝２０％となる。したがって、ＣＭ＃０１において復電から書き込み制御方式をライトバック方式に切り替えるまでの期間は、２０％分の充電にかかる時間となり、これは図１１のケースと同じである。
【００９３】
一方、バックアップ処理完了後におけるＢＢＵ＃０，＃１のバッテリ残量はいずれも、１００％−７０％／２＝６５％となる。したがって、復電後にＢＢＵ＃０，＃１に対して充電が必要な量（必要充電量）はいずれも、７０％−６５％＝５％となる。これにより、ＣＭ＃０において復電から書き込み制御方式をライトバック方式に切り替えるまでの期間は、５％分の充電にかかる時間となり、２０％分の充電が必要な図１１のケースより大幅に短縮される。その結果、ホスト装置１１００からの書き込み要求に対する応答性能を、復電から短時間で回復させることができる。
【００９４】
図１７は、ＢＢＵが故障していない場合の制御パターンの例を示す図である。図１７に示す制御テーブル１２４ａには、ダーティデータ量が最大のＣＭがどのＣＭであるときに、ＣＭ＃０，＃１（ＣＭ１００ａ，１００ｂ）のそれぞれが備えるどの入力端子をオンにするかを示す制御パターンが登録されている。ＣＭ＃０，＃１は、例えば、この制御テーブル１２４ａにしたがってスイッチ１１２ａ，１１２ｂを制御する。
【００９５】
図１７に示すように、ＣＭ＃０のダーティデータ量が最大である場合、ＣＭ＃０は入力端子ＩＮ１，ＩＮ２の両方をオンにし、ＣＭ＃１は入力端子ＩＮ２だけをオンにする。一方、ＣＭ＃１のダーティデータ量が最大である場合、ＣＭ＃０は入力端子ＩＮ１だけをオンにし、ＣＭ＃１は入力端子ＩＮ１，ＩＮ２の両方をオンにする。このような制御により、ダーティデータ量が最大のＣＭについて、復電から書き込み制御方式をライトバック方式に切り替えるまでの期間を短縮できる。
【００９６】
図１８は、ＢＢＵが故障していない場合の制御パターンの他の例を示す図である。この図１８では、図１２に示した、４台のＣＭ＃０〜＃３（ＣＭ１００ａ〜１００ｄ）と５台のＢＢＵ＃０〜＃４（ＢＢＵ３１０ａ〜３１０ｅ）とを備えるストレージ装置１０００ａにおいて、ＢＢＵの故障が発生していない場合の制御パターンを示す。
【００９７】
すなわち、図１８に示す制御テーブル１２４ｂには、ダーティデータ量が最大のＣＭがどのＣＭであるときに、ＣＭ＃０〜＃３のそれぞれが備えるどの入力端子をオンにするかを示す制御パターンが登録されている。ＣＭ＃０〜＃３は、例えば、この制御テーブル１２４ｂにしたがってスイッチ１１２ａ，１１２ｂを制御する。
【００９８】
図１８に示すように、ＣＭ＃０のダーティデータ量が最大である場合、ＣＭ＃０は入力端子ＩＮ１，ＩＮ２の両方をオンにし、ＣＭ＃１〜＃３は入力端子ＩＮ２だけをオンにする。ＣＭ＃１のダーティデータ量が最大である場合、ＣＭ＃０は入力端子ＩＮ１だけをオンにし、ＣＭ＃１は入力端子ＩＮ１，ＩＮ２の両方をオンにし、ＣＭ＃２，＃３は入力端子ＩＮ２だけをオンにする。ＣＭ＃２のダーティデータ量が最大である場合、ＣＭ＃０，＃１は入力端子ＩＮ１だけをオンにし、ＣＭ＃２は入力端子ＩＮ１，ＩＮ２の両方をオンにし、ＣＭ＃３は入力端子ＩＮ２だけをオンにする。ＣＭ＃３のダーティデータ量が最大である場合、ＣＭ＃０〜＃２は入力端子ＩＮ１だけをオンにし、ＣＭ＃３は入力端子ＩＮ１，ＩＮ２の両方をオンにする。
【００９９】
以上のような制御により、ＣＭの台数が増えた場合でも、ダーティデータ量が最大のＣＭについて、復電から書き込み制御方式をライトバック方式に切り替えるまでの期間を短縮できる。
【０１００】
次に、各ＣＭの処理の詳細について説明する。
図１９は、ＣＭが備える処理機能の構成例を示すブロック図である。なお、図１９では、例としてＣＭ１００ａについて説明するが、ＣＭ１００ｂ〜１００ｄもＣＭ１００ａと同様の処理機能を備える。
【０１０１】
ＣＭ１００ａは、記憶部１２０、アクセス制御部１３１、電源制御部１３２およびバックアップ処理部１３３を有する。記憶部１２０は、ＲＡＭ１０２ａの記憶領域によって実現される。アクセス制御部１３１、電源制御部１３２およびバックアップ処理部１３３の処理は、例えば、ＣＰＵ１０１ａが所定のプログラムを実行することで実現される。
【０１０２】
記憶部１２０には、論理ボリュームに対するアクセス制御において用いられるキャッシュ領域１２１が確保される。また、記憶部１２０には、キャッシュ管理情報１２２および制御テーブル１２３，１２４が記憶される。
【０１０３】
キャッシュ管理情報１２２は、キャッシュ領域１２１の使用状況を管理するための情報である。キャッシュ管理情報１２２は、例えば、キャッシュ領域１２１内のキャッシュページごとのエントリを有し、各エントリには、キャッシュページに格納されているデータに関する情報が登録される。例えば、各エントリには、キャッシュページに格納されたデータがどの論理ボリュームのどのアドレスのデータかを示す情報や、そのデータがダーティデータであるか否かを示すフラグ情報などが登録される。この場合、キャッシュ領域１２１内のデータがダーティデータであるか否かは、キャッシュページを単位として判定される。
【０１０４】
制御テーブル１２３は、ＢＢＵが故障している場合のスイッチ１１２ａ，１１２ｂの制御パターン（すなわち、入力端子ＩＮ１，ＩＮ２のオン、オフのパターン）を示す情報を保持する。例えば、ストレージ装置に２台のＣＭが搭載されている場合、制御テーブル１２３として、図１０に示した制御テーブル１２３ａが記憶される。また、ストレージ装置に４台のＣＭが搭載されている場合、制御テーブル１２３として、図１４に示した制御テーブル１２３ｂが記憶される。
【０１０５】
制御テーブル１２４は、ＢＢＵが故障していない場合のスイッチ１１２ａ，１１２ｂの制御パターンを示す情報を保持する。例えば、ストレージ装置に２台のＣＭが搭載されている場合、制御テーブル１２４として、図１７に示した制御テーブル１２４ａが記憶される。また、ストレージ装置に４台のＣＭが搭載されている場合、制御テーブル１２４として、図１８に示した制御テーブル１２４ｂが記憶される。
【０１０６】
なお、本実施の形態では、ストレージ装置に搭載されているすべてのＣＭの記憶部に、共通内容の制御テーブル１２３，１２４が記憶されるものとする。
アクセス制御部１３１は、キャッシュ領域１２１を利用しながら、ホスト装置１１００からの要求に応じた所定の論理ボリュームに対するアクセスを制御する。アクセス制御部１３１は、外部電源から電力が正常に供給されている状態では、論理ボリュームに対する書き込みをライトバック方式で制御する。例えば、ホスト装置１１００から論理ボリュームに対するデータの書き込みが要求された場合、アクセス制御部１３１は、書き込みデータをキャッシュ領域１２１に書き込み、ホスト装置１１００に対して書き込み完了の応答を行う。そして、アクセス制御部１３１は、その後の所定のタイミングで、キャッシュ領域１２１に書き込んだ書き込みデータを、ドライブ部２００ａ，２００ｂ内のＨＤＤによる記憶領域のうち、論理ボリュームに対応する記憶領域に書き込む。
【０１０７】
また、アクセス制御部１３１は、停電から復旧した直後では、論理ボリュームに対する書き込みをライトスルー方式で制御する。例えば、ホスト装置１１００から論理ボリュームに対するデータの書き込みが要求された場合、アクセス制御部１３１は、書き込みデータをキャッシュ領域１２１に書き込むとともに、ドライブ部２００ａ，２００ｂ内のＨＤＤによる記憶領域のうち、論理ボリュームに対応する記憶領域にも書き込む。アクセス制御部１３１は、これらの書き込みが完了した後に、ホスト装置１１００に対して書き込み完了の応答を行う。
【０１０８】
電源制御部１３２は、ストレージ装置に搭載されたすべてのＢＢＵの稼働状況と、ストレージ装置に搭載された他のすべてのＣＭの稼働状況を、定期的に監視する。また、電源制御部１３２は、ＣＭ１００ａを含む、ストレージ装置に搭載されたすべてのＣＭから、ダーティデータ量を定期的に収集する。電源制御部１３２は、ＢＢＵおよびＣＭの稼働状況や各ＣＭのダーティデータ量に基づいて、スイッチ１１２ａ，１１２ｂを制御する。これにより、入力端子ＩＮ１，ＩＮ２のどれから電力の供給を受けるかが制御される。
【０１０９】
また、電源制御部１３２は、停電から復帰したとき、電力供給元のＢＢＵのバッテリ残量を監視し、バッテリ残量が残量閾値ＴＨに達した場合に、その旨をバックアップ処理部１３３に通知する。
【０１１０】
バックアップ処理部１３３は、停電時において、キャッシュ領域１２１に格納されているキャッシュデータのうちのダーティデータを、バックアップメモリ１０４ａにコピーする。また、バックアップ処理部１３３は、停電から復帰したとき、バックアップメモリ１０４ａに格納されているダーティデータを、ドライブ部２００ａ，２００ｂの記憶領域に書き込む。
【０１１１】
次に、ＣＭ１００ａの処理についてフローチャートを用いて説明する。なお、ＣＭ１００ｂ〜１００ｄも、ＣＭ１００ａと同様の処理を実行する。
まず、図２０は、正常状態におけるＣＭの処理手順を示すフローチャートの例である。なお、正常状態とは、外部電源から電力が正常に供給されている状態を示す。ＣＭ１００ａは、正常状態において、図２０に示す処理を一定時間ごとに実行する。なお、記憶部１２０には、ストレージ装置内のデバイスの状態を示すステータス情報が設定されているものとする。
【０１１２】
［ステップＳ１１］電源制御部１３２は、ストレージ装置に搭載されたすべてのＢＢＵの稼働状況を示す情報を収集する。例えば、電源制御部１３２は、Ｉ2Ｃバスを介して各ＢＢＵに生存確認のための情報を送信し、その情報に対する応答を受信できた場合に、ＢＢＵが正常に動作していると判定する。
【０１１３】
また、電源制御部１３２は、ストレージ装置に搭載された他のすべてのＣＭの稼働状況を示す情報を収集する。例えば、電源制御部１３２は、ＰＣＩｅバスを介して各ＣＭに生存確認のための情報を送信し、その情報に対する応答を受信できた場合に、ＣＭが正常に動作していると判定する。
【０１１４】
さらに、電源制御部１３２は、ＣＭ１００ａを含む、ストレージ装置に搭載されたすべてのＣＭから、キャッシュ領域に含まれるダーティデータの量を収集し、記憶部１２０に記録する。例えば、電源制御部１３２は、ＰＣＩｅバスを介して、他のすべてのＣＭに対してダーティデータ量の送信を要求する。要求を受けたＣＭは、自装置のキャッシュ管理情報１２２に基づいてダーティデータ量を計算し、ＣＭ１００ａに送信する。また、ＣＭ１００ａの電源制御部１３２は、ＣＭ１００ａのキャッシュ管理情報１２２に基づいてＣＭ１００ａのダーティデータ量も計算する。
【０１１５】
［ステップＳ１２］電源制御部１３２は、ステップＳ１１で収集された、ＣＭの稼働状況を示す情報に基づいて、故障しているＣＭがあるかを判定する。電源制御部１３２は、１台のＣＭが故障している場合、ステップＳ１３の処理を実行し、故障しているＣＭがない場合、ステップＳ１３の処理を実行する。
【０１１６】
［ステップＳ１３］電源制御部１３２は、記憶部１２０に設定されたステータス情報を、ＣＭが故障しているＣＭ異常状態であることを示すように更新する。そして、電源制御部１３２は、ＣＭ１００ａ内のスイッチ１１２ａ，１１２ｂを両方ともオンにする。
【０１１７】
［ステップＳ１４］電源制御部１３２は、ステップＳ１１で収集された、ＢＢＵの稼働状況を示す情報に基づいて、故障しているＢＢＵがあるかを判定する。電源制御部１３２は、１台のＢＢＵが故障している場合、ステップＳ１５の処理を実行し、故障しているＢＢＵがない場合、ステップＳ１６の処理を実行する。
【０１１８】
［ステップＳ１５］電源制御部１３２は、記憶部１２０に設定されたステータス情報を、ＢＢＵが故障しているＢＢＵ異常状態であることを示すように更新する。そして、電源制御部１３２は、故障しているＢＢＵの位置（どのＢＢＵが故障しているか）に基づいて、ＣＭ１００ａ内のスイッチ１１２ａ，１１２ｂを制御する。このとき、電源制御部１３２は、制御テーブル１２３に基づいて、スイッチ１１２ａ，１１２ｂをそれぞれオンにするか、オフにするかを判定する。
【０１１９】
［ステップＳ１６］電源制御部１３２は、記憶部１２０に設定されたステータス情報を、ＣＭおよびＢＢＵの故障が発生していない正常状態であることを示すように更新する。そして、電源制御部１３２は、ＣＭ１００ａ内のスイッチ１１２ａ，１１２ｂを両方ともオンにする。
【０１２０】
なお、ＰＳＵから電力が供給されているため、ステップＳ１３，Ｓ１５，Ｓ１６においてスイッチがオンにされても、そのスイッチに接続されているＢＢＵの電力は消費されない。
【０１２１】
図２１は、停電発生時におけるＣＭの処理手順を示すフローチャートの例である。ＣＭ１００ａの電源制御部１３２によってＰＳＵからの電源供給が断絶したことが検知されると、図２１の処理が実行される。
【０１２２】
［ステップＳ２１］電源制御部１３２は、記憶部１２０に設定されたステータス情報に基づいて、ＣＭ１００ａの現在の状態が正常状態かを判定する。電源制御部１３２は、正常状態の場合、ステップＳ２２の処理を実行し、正常状態でない場合（ＣＭ異常状態またはＢＢＵ異常状態の場合）、ステップＳ２４の処理を実行する。
【０１２３】
［ステップＳ２２］電源制御部１３２は、直近に実行された図２０のステップＳ１１の処理で収集された情報に基づいて、ダーティデータ量が最大のＣＭを判定する。
［ステップＳ２３］電源制御部１３２は、ステップＳ２２での判定結果に基づいて、ＣＭ１００ａ内のスイッチ１１２ａ，１１２ｂを制御する。このとき、電源制御部１３２は、制御テーブル１２４に基づいて、スイッチ１１２ａ，１１２ｂをそれぞれオンにするか、オフにするかを判定する。
【０１２４】
［ステップＳ２４］電源制御部１３２は、図２０のステップＳ１３またはステップＳ１５で制御されたスイッチ１１２ａ，１１２ｂの状態を維持する。
［ステップＳ２５］電源制御部１３２は、バックアップ処理部１３３に対してバックアップ処理の開始を指示する。バックアップ処理部１３３は、指示に応じて、キャッシュ領域１２１のキャッシュデータのうちダーティデータを、記憶部１２０（ＲＡＭ１０２ａ）からバックアップメモリ１０４ａに転送して退避させる。このとき、バックアップ処理部１３３は、キャッシュ管理情報１２２に基づいて、キャッシュ領域１２１内のキャッシュデータの中からダーティデータを抽出する。また、電源制御部１３２は、キャッシュ管理情報１２２および制御テーブル１２３，１２４も、バックアップメモリ１０４ａに転送して退避させる。
【０１２５】
バックアップ処理が完了すると、ＣＭ１００ａはシャットダウンする。
図２２、図２３は、復電時におけるＣＭの処理手順を示すフローチャートの例である。外部電源からの電力供給が復旧すると、ＰＳＵからの電力供給が再開される。ＣＭ１００ａは、ＰＳＵからの電力によって起動すると、図２２の処理を実行する。
【０１２６】
［ステップＳ３１］バックアップ処理部１３３は、バックアップメモリ１０４ａに退避されたデータの復旧処理を実行する。具体的には、バックアップ処理部１３３は、バックアップメモリ１０４ａにバックアップされたキャッシュ管理情報１２２および制御テーブル１２３，１２４を、記憶部１２０（ＲＡＭ１０２ａ）に書き戻す。また、バックアップ処理部１３３は、キャッシュ管理情報１２２を参照しながら、バックアップメモリ１０４ａに退避されたダーティデータを、ドライブ部２００ａ，２００ｂの記憶領域における所定の位置に書き込む。
【０１２７】
［ステップＳ３２］復旧処理が完了すると、その旨が電源制御部１３２を介してアクセス制御部１３１に伝達される。アクセス制御部１３１は、ホスト装置１１００からの要求に応じた論理ボリュームに対するアクセス制御を開始する。このとき、アクセス制御部１３１は、書き込み制御をライトスルー方式で実行する。
【０１２８】
［ステップＳ３３］電源制御部１３２は、図２０のステップＳ１１と同様の手順で、ストレージ装置に搭載されたすべてのＢＢＵの稼働状況、ストレージ装置に搭載された他のすべてのＣＭの稼働状況をそれぞれ示す情報と、ＣＭ１００ａを含む、ストレージ装置に搭載されたすべてのＣＭから、キャッシュ領域に含まれるダーティデータの量とを収集する。
【０１２９】
この後、図２３の処理が実行される。
［ステップＳ４１］電源制御部１３２は、ステップＳ３３で収集された、ＣＭの稼働状況を示す情報に基づいて、故障しているＣＭがあるかを判定する。電源制御部１３２は、１台のＣＭが故障している場合、ステップＳ４２の処理を実行し、故障しているＣＭがない場合、ステップＳ４４の処理を実行する。
【０１３０】
［ステップＳ４２］電源制御部１３２は、ＣＭが故障しているＣＭ異常状態であることを示すステータス情報を、記憶部１２０に設定する。そして、電源制御部１３２は、ＣＭ１００ａ内のスイッチ１１２ａ，１１２ｂを両方ともオンにする。
【０１３１】
［ステップＳ４３］電源制御部１３２は、ＣＭ１００ａに電力供給可能なＢＢＵのバッテリ残量を、そのＢＢＵから取得する。電源制御部１３２は、取得されたバッテリ残量が所定の閾値以上かを判定し、閾値に達していない場合、一定時間待機した後、ステップＳ４３の処理を再度実行する。そして、電源制御部１３２は、取得されたバッテリ残量が閾値以上になると、ステップＳ４９の処理を実行する。
【０１３２】
ここで、「ＣＭ１００ａに電力供給可能なＢＢＵ」とは、オンになっているスイッチに対応する入力端子に接続されているＢＢＵを指す。ステップＳ４２においてスイッチ１１２ａ，１１２ｂの両方がオンになっているので、ステップＳ４３では、入力端子ＩＮ１，ＩＮ２にそれぞれ接続されているＢＢＵ３１０ａ，３１０ｂのバッテリ残量が取得される。
【０１３３】
また、判定に用いられる閾値は、隣接ＣＭの状態によって決められる。隣接ＣＭとは、ストレージ装置に搭載された各ＣＭに対して順番に識別番号が付与された場合に、ＣＭ１００ａの１つ前および１つ後の識別番号を有するＣＭを指す。例えば、図１２のようにＣＭ１００ａ〜１００ｄとＢＢＵ３１０ａ〜３１０ｅとが接続され、ＣＭ１００ａ，１００ｂ，１００ｃ，１００ｄの順に識別番号が付与されたとする。この場合、ＣＭ１００ａの隣接ＣＭはＣＭ１００ｂであり、ＣＭ１００ｂの隣接ＣＭはＣＭ１００ａ，１００ｃであり、ＣＭ１００ｃの隣接ＣＭはＣＭ１００ｂ，１００ｄであり、ＣＭ１００ｄの隣接ＣＭはＣＭ１００ｃである。
【０１３４】
ＣＭが備える入力端子ＩＮ１，ＩＮ２のうちの少なくとも１つには、隣接ＣＭと共通のＢＢＵが接続されている。例えば、ＣＭ１００ａの入力端子ＩＮ２には、隣接ＣＭであるＣＭ１００ｂと共通のＢＢＵ３１０ｂが接続されている。この場合に、隣接ＣＭであるＣＭ１００ｂが故障しているとき、ＢＢＵ３１０ｂからの電力をＣＭ１００ａだけが受けることになる。この状態では、ＣＭ１００ａには入力端子ＩＮ１，ＩＮ２にそれぞれ接続されたＢＢＵ３１０ａ，３１０ｂの両方から独占的に電力供給を受けられる状態となっている。このため、ＢＢＵ３１０ａ，３１０ｂのそれぞれのバッテリ残量が前述の残量閾値ＴＨの１／２に達すれば、ＣＭ１００ａは停電時にバックアップ処理を確実に実行できる。
【０１３５】
したがって、ステップＳ４３では、隣接ＣＭが故障している場合、バッテリ残量がＴＨ／２以上かが判定され、隣接ＣＭが故障していない場合、バッテリ残量がＴＨ以上かが判定される。なお、ステップＳ４３では、ＣＭに電力供給可能なＢＢＵが２台存在するので、それら２台のＢＢＵの両方のバッテリ残量が閾値以上かが判定される。
【０１３６】
［ステップＳ４４］電源制御部１３２は、ステップＳ３３で収集された、ＢＢＵの稼働状況を示す情報に基づいて、故障しているＢＢＵがあるかを判定する。電源制御部１３２は、１台のＢＢＵが故障している場合、ステップＳ４５の処理を実行し、故障しているＢＢＵがない場合、ステップＳ４７の処理を実行する。
【０１３７】
［ステップＳ４５］電源制御部１３２は、ＢＢＵが故障しているＢＢＵ異常状態であることを示すステータス情報を、記憶部１２０に設定する。そして、電源制御部１３２は、故障しているＢＢＵの位置（どのＢＢＵが故障しているか）に基づいて、ＣＭ１００ａ内のスイッチ１１２ａ，１１２ｂを制御する。このとき、電源制御部１３２は、制御テーブル１２３に基づいて、スイッチ１１２ａ，１１２ｂをそれぞれオンにするか、オフにするかを判定する。
【０１３８】
［ステップＳ４６］電源制御部１３２は、ＣＭ１００ａに電力供給可能なＢＢＵのバッテリ残量を、そのＢＢＵから取得する。ステップＳ４６では、ＢＢＵの故障が発生しているので、ＣＭ１００ａに電力供給可能なＢＢＵは１台のみとなっている。電源制御部１３２は、取得されたバッテリ残量が残量閾値ＴＨ以上かを判定し、残量閾値ＴＨに達していない場合、一定時間待機した後、ステップＳ４６の処理を再度実行する。そして、電源制御部１３２は、取得されたバッテリ残量が残量閾値ＴＨ以上になると、ステップＳ４９の処理を実行する。
【０１３９】
［ステップＳ４７］電源制御部１３２は、ＣＭおよびＢＢＵの故障が発生していない正常状態であることを示すステータス情報を、記憶部１２０に設定する。そして、電源制御部１３２は、ＣＭ１００ａ内のスイッチ１１２ａ，１１２ｂを両方ともオンにする。
【０１４０】
［ステップＳ４８］電源制御部１３２は、ＣＭ１００ａに電力供給可能なＢＢＵのバッテリ残量を、そのＢＢＵから取得する。ステップＳ４８では、ＣＭ１００ａに電力供給可能なＢＢＵは２台となっているので、それら２台のＢＢＵからバッテリ残量が取得される。電源制御部１３２は、取得されたバッテリ残量が残量閾値ＴＨ以上かを判定し、少なくとも一方のＢＢＵのバッテリ残量が残量閾値ＴＨに達していない場合、一定時間待機した後、ステップＳ４８の処理を再度実行する。そして、電源制御部１３２は、両方のＢＢＵのバッテリ残量が残量閾値ＴＨ以上になると、ステップＳ４９の処理を実行する。
【０１４１】
［ステップＳ４９］ステップＳ４３，Ｓ４６，Ｓ４８のいずれかの処理により、停電時のバックアップ処理の実行のために必要な最小限の電力がＢＢＵに蓄積されていると判断されている。このため、電源制御部１３２は、ライトバック方式への切り替えを許可する旨をアクセス制御部１３１に通知する。通知を受けたアクセス制御部１３１は、論理ボリュームに対する書き込み制御方式を、ライトスルー方式からライトバック方式に切り替える。
【０１４２】
〔第３の実施の形態〕
上記の第２の実施の形態では、ストレージ装置に搭載されたＣＭのそれぞれが、他のＣＭやＢＢＵから収集された情報を用いて、自装置に設けられたスイッチ１１２ａ，１１２ｂの制御を行った。しかし、他の例として、ストレージ装置に搭載されたＣＭのうちの１台がマスタＣＭとなって、すべてのＣＭのスイッチ１１２ａ，１１２ｂを統括的に制御してもよい。以下、第３の実施の形態として、この場合の例を説明する。
【０１４３】
図２４は、第３の実施の形態に係るストレージ装置について示す図である。図２４に示すストレージ装置１０００ｂは、一例として、４台のＣＭ１００ａ〜１００ｄと５台のＢＢＵ３１０ａ〜３１０ｅを備えている。また、ＣＭ１００ａ〜１００ｄとＢＢＵ３１０ａ〜３１０ｅとの間やＣＭ間の接続関係は、図１２、図１３と同様であるとする。
【０１４４】
図２４は例として、ＣＭ１００ａがマスタＣＭに設定されているとする。この場合、ＣＭ１００ａは、ＢＢＵ３１０ａ〜３１０ｅのそれぞれの稼働状況を示す情報や、ＣＭ１００ａ〜１００ｄのそれぞれの稼働状況を示す情報、ＣＭ１００ａ〜１００ｄのそれぞれにおけるダーティデータ量を収集する。
【０１４５】
そして、ＣＭ１００ａは、１台のＣＭが故障している場合には、スイッチ１１２ａ，１１２ｂを両方ともオンにするように、故障したＣＭ以外のすべてのＣＭに指示する。また、ＣＭ１００ａは、１台のＢＢＵが故障している場合には、制御テーブル１２３に基づいて、ＣＭ１００ａ〜１００ｄのそれぞれに対してスイッチ１１２ａ，１１２ｂのオン、オフを指示するためのスイッチ制御信号を送信する。
【０１４６】
さらに、ＣＭ１００ａは、すべてのＣＭおよびＢＢＵが故障していない状態で停電が発生した場合、ダーティデータ量が最大のＣＭを判別する。そして、ＣＭ１００ａは、その判別結果と制御テーブル１２４とに基づいて、ＣＭ１００ａ〜１００ｄのそれぞれに対してスイッチ１１２ａ，１１２ｂのオン、オフを指示するためのスイッチ制御信号を送信する。また、ＣＭ１００ａは、停電発生時には、ＣＭ１００ａ〜１００ｄのそれぞれに対してバックアップ処理の開始を指示する。これにより、ＣＭ１００ａ〜１００ｄのそれぞれにおいて、バックアップメモリに対するバックアップ処理が実行される。
【０１４７】
一方、復電後には、ＣＭ１００ａは、ＢＢＵ３１０ａ〜３１０ｅのそれぞれの稼働状況を示す情報や、ＣＭ１００ａ〜１００ｄのそれぞれの稼働状況を示す情報を収集する。また、ＣＭ１００ａは、ＢＢＵ３１０ａ〜３１０ｅのそれぞれのバッテリ残量を一定時間間隔で収集する。
【０１４８】
ＣＭ１００ａは、１台のＣＭが故障している場合、および、いずれのＣＭおよびＢＢＵも故障していない場合には、スイッチ１１２ａ，１１２ｂを両方ともオンにするように、故障したＣＭ以外のすべてのＣＭに指示する。また、ＣＭ１００ａは、１台のＢＢＵが故障している場合には、制御テーブル１２３に基づいて、ＣＭ１００ａ〜１００ｄのそれぞれに対してスイッチ１１２ａ，１１２ｂのオン、オフを指示する。そして、ＣＭ１００ａは、稼働中のＢＢＵのそれぞれのバッテリ残量と閾値との比較に基づくタイミングで、稼働中のＣＭのそれぞれに対して、書き込み制御方式をライトバック方式に切り替えるように指示する。なお、比較に用いられる閾値は、ＣＭごとに図２３のステップＳ４３，Ｓ４６，Ｓ４８の手順で決定される。
【０１４９】
以上の処理により、ストレージ装置１０００ｂも、第２の実施の形態と同様に、ＢＢＵの台数をＣＭの台数より１台だけ多い台数に抑えつつ、ＢＢＵが故障した場合でもすべてのＣＭがバックアップ処理を実行できる。また、ＣＭのキャッシュ領域に含まれるダーティデータの量が少ないＣＭほど、復電後に書き込み制御方式をライトバック方式へ切り替えるまでの期間を短縮できる。さらに、ダーティデータ量が最大のＣＭについて、復電から書き込み制御方式をライトバック方式に切り替えるまでの期間を短縮できる。
【０１５０】
なお、上記の各実施の形態に示した装置（電子部品１ａ〜１ｃ、ＣＭ１００ａ〜１００ｄ）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク（ＢＤ）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１５１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１５３】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  Ｎ台の電子部品（ただし、Ｎは２以上の整数）と、（Ｎ＋１）台のバッテリと、前記Ｎ台の電子部品にそれぞれ対応付けて設けられたＮ台の選択回路とを有し、
前記Ｎ台の電子部品のそれぞれは、前記（Ｎ＋１）台のバッテリのうちの２台のバッテリに接続され、前記Ｎ台の電子部品のそれぞれに接続される２台のバッテリの組合せはすべて異なり、
前記（Ｎ＋１）台のバッテリのうち（Ｎ−１）台のバッテリのそれぞれは、前記Ｎ台の電子部品のうちの２台の電子部品に接続され、前記（Ｎ−１）台のバッテリのそれぞれに接続される２台の電子部品の組合せはすべて異なり、
前記Ｎ台の選択回路のそれぞれは、前記Ｎ台の電子部品のうち対応する電子部品に接続された２台のバッテリから出力される電力の少なくとも一方を、駆動電力として前記対応する電子部品に供給する、
電子システム。
【０１５４】
（付記２）  前記（Ｎ＋１）台のバッテリのうち一のバッテリが故障したとき、前記一のバッテリ以外のＮ台のバッテリと前記Ｎ台の電子部品との間で一対一で電力が授受されるように、前記Ｎ台の選択回路の動作が制御される、
付記１に記載の電子システム。
【０１５５】
（付記３）  前記（Ｎ＋１）台のバッテリが正常に動作している正常状態において、外部電源からの電力供給が停止した停電が発生したとき、前記Ｎ台の電子部品のうち一の電子部品に対して前記（Ｎ＋１）台のバッテリのうち２台のバッテリから電力が供給され、残りの（Ｎ−１）台の電子部品に対して前記（Ｎ＋１）台のバッテリのうち１台のバッテリから電力が供給されるように、前記Ｎ台の選択回路の動作が制御される、
付記１または２に記載の電子システム。
【０１５６】
（付記４）  前記Ｎ台の電子部品のそれぞれは、制御部と、キャッシュ領域を含む揮発性メモリと、不揮発性メモリとを有し、
前記Ｎ台の電子部品のそれぞれは、記憶装置に対するアクセスを前記キャッシュ領域を用いて制御する制御装置であり、
前記Ｎ台の電子部品のそれぞれにおいて、前記制御部は、前記停電が発生したとき、前記対応する選択回路を介して供給される電力を用いて、前記キャッシュ領域に含まれるダーティデータを前記不揮発性メモリに書き込み、
前記正常状態において前記停電が発生したとき、前記Ｎ台の電子部品の中から、前記キャッシュ領域に含まれるダーティデータの量が最大の電子部品が、前記一の電子部品として選択される、
付記３に記載の電子システム。
【０１５７】
（付記５）  前記外部電源からの電力供給が復旧したとき、
前記外部電源からの電力による前記（Ｎ＋１）台のバッテリの充電が開始され、
前記Ｎ台の電子部品のそれぞれにおいて、前記制御部は、前記キャッシュ領域を用いた前記記憶装置に対するアクセス制御を、書き込み制御方式としてライトスルー方式を用いて再開し、接続されているバッテリの残量が所定量に達すると、前記書き込み制御方式をライトバック方式に切り替える、
付記４に記載の電子システム。
【０１５８】
（付記６）  情報処理装置において、
電力の供給を受けて駆動する負荷と、
前記負荷に供給する電力を制御する制御部と、
を有し、
前記情報処理装置を含むＮ台の情報処理装置（ただし、Ｎは２以上の整数）のそれぞれは、（Ｎ＋１）台のバッテリのうちの２台のバッテリに接続され、前記Ｎ台の情報処理装置のそれぞれに接続される２台のバッテリの組合せはすべて異なり、
前記（Ｎ＋１）台のバッテリのうち（Ｎ−１）台のバッテリのそれぞれは、前記Ｎ台の情報処理装置のうちの２台の情報処理装置に接続され、前記（Ｎ−１）台のバッテリのそれぞれに接続される２台の情報処理装置の組合せはすべて異なり、
前記Ｎ台の情報処理装置のそれぞれに対応付けてＮ台の選択回路が設けられ、前記Ｎ台の選択回路のそれぞれは、前記Ｎ台の情報処理装置のうち対応する情報処理装置に接続された２台のバッテリから出力される電力の少なくとも一方を、駆動電力として前記対応する情報処理装置に供給し、
前記制御部は、前記Ｎ台の選択回路のうち前記情報処理装置に対応する一の選択回路において、前記情報処理装置に接続された２台のバッテリのうちどのバッテリから出力される電力を前記負荷に供給するかを、前記（Ｎ＋１）台のバッテリの故障発生状況に基づいて制御する、
情報処理装置。
【０１５９】
（付記７）  前記制御部は、前記（Ｎ＋１）台のバッテリのうち一のバッテリが故障したとき、前記一のバッテリ以外のＮ台のバッテリと前記Ｎ台の情報処理装置との間で一対一で電力が授受されるように、前記一の選択回路の動作を制御する、
付記６に記載の情報処理装置。
【０１６０】
（付記８）  前記制御部は、前記（Ｎ＋１）台のバッテリが正常に動作している正常状態において、外部電源からの電力供給が停止した停電が発生したとき、前記Ｎ台の情報処理装置のうち一の情報処理装置に対して前記（Ｎ＋１）台のバッテリのうち２台のバッテリから電力が供給され、残りの（Ｎ−１）台の情報処理装置に対して前記（Ｎ＋１）台のバッテリのうち１台のバッテリから電力が供給されるように、前記一の選択回路の動作を制御する、
付記６または７に記載の情報処理装置。
【０１６１】
（付記９）  前記Ｎ台の情報処理装置のそれぞれは、キャッシュ領域を含む揮発性メモリと、不揮発性メモリとを有し、記憶装置に対するアクセスを前記キャッシュ領域を用いて制御し、
前記制御部は、
前記停電が発生したとき、前記一の選択回路を介して供給される電力を用いて、前記キャッシュ領域に含まれるダーティデータを前記不揮発性メモリに書き込み、
前記正常状態において前記停電が発生した場合には、前記Ｎ台の電子部品の中から、前記キャッシュ領域に含まれるダーティデータの量が最大の電子部品が、前記一の電子部品として選択されるように、前記一の選択回路の動作を制御する、
付記８に記載の情報処理装置。
【０１６２】
（付記１０）  前記外部電源からの電力供給が復旧したとき、
前記外部電源からの電力による前記（Ｎ＋１）台のバッテリの充電が開始され、
前記制御部は、前記キャッシュ領域を用いた前記記憶装置に対するアクセス制御を、書き込み制御方式としてライトスルー方式を用いて再開し、接続されているバッテリの残量が所定量に達すると、前記書き込み制御方式をライトバック方式に切り替える、
付記９に記載の情報処理装置。
【０１６３】
（付記１１）  コンピュータが、前記コンピュータに含まれる負荷に供給する電力を制御する制御方法であって、
前記コンピュータを含むＮ台のコンピュータ（ただし、Ｎは２以上の整数）のそれぞれは、（Ｎ＋１）台のバッテリのうちの２台のバッテリに接続され、前記Ｎ台のコンピュータのそれぞれに接続される２台のバッテリの組合せはすべて異なり、
前記（Ｎ＋１）台のバッテリのうち（Ｎ−１）台のバッテリのそれぞれは、前記Ｎ台のコンピュータのうちの２台のコンピュータに接続され、前記（Ｎ−１）台のバッテリのそれぞれに接続される２台のコンピュータの組合せはすべて異なり、
前記Ｎ台のコンピュータのそれぞれに対応付けてＮ台の選択回路が設けられ、前記Ｎ台の選択回路のそれぞれは、前記Ｎ台のコンピュータのうち対応するコンピュータに接続された２台のバッテリから出力される電力の少なくとも一方を、駆動電力として前記対応するコンピュータに供給し、
前記電力の制御では、前記Ｎ台の選択回路のうち前記コンピュータに対応する一の選択回路において、前記コンピュータに接続された２台のバッテリのうちどのバッテリから出力される電力を前記負荷に供給するかを、前記（Ｎ＋１）台のバッテリの故障発生状況に基づいて制御する、
制御方法。
【符号の説明】
【０１６４】
１ａ〜１ｃ  電子部品
２ａ〜２ｄ  バッテリ
３ａ〜３ｃ  選択回路
【図１】
2019133316.tif 000003
【図２】
2019133316.tif 000004
【図３】
2019133316.tif 000005
【図４】
2019133316.tif 000006
【図５】
2019133316.tif 000007
【図６】
2019133316.tif 000008
【図７】
2019133316.tif 000009
【図８】
2019133316.tif 000010
【図９】
2019133316.tif 000011
【図１０】
2019133316.tif 000012
【図１１】
2019133316.tif 000013
【図１２】
2019133316.tif 000014
【図１３】
2019133316.tif 000015
【図１４】
2019133316.tif 000016
【図１５】
2019133316.tif 000017
【図１６】
2019133316.tif 000018
【図１７】
2019133316.tif 000019
【図１８】
2019133316.tif 000020
【図１９】
2019133316.tif 000021
【図２０】
2019133316.tif 000022
【図２１】
2019133316.tif 000023
【図２２】
2019133316.tif 000024
【図２３】
2019133316.tif 000025
【図２４】
2019133316.tif 000026