(57)【要約】【課題】メモリ上のログ書き出しを短時間で行なう。【解決手段】管理情報を第１の記憶媒体３０に格納するために要するページ数を算出する算出部１３と、算出したページ数に相当するページをフリーページとして設定し、設定したフリーページに管理情報を格納することで第１の記憶媒体３０に管理情報を格納する格納処理部１３と、第１の記憶媒体３０における管理情報の格納位置を示す位置管理情報を更新する処理を行なう更新処理部１３とを備える。【選択図】図１
2014120092.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶媒体と、
管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する算出部と、
前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する格納処理部と、
前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理を行なう更新処理部と、
を備えることを特徴とする、情報処理装置。
【請求項２】
第２の記憶媒体を備え、
前記格納処理部が、
前記管理情報を前記第２の記憶媒体に格納し、当該第２の記憶媒体に格納した前記管理情報を前記フリーページに格納する
ことを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記算出部が、前記管理情報のデータサイズを前記ページのサイズで除算して、前記ページ数を算出する
ことを特徴とする、請求項１又は２記載の情報処理装置。
【請求項４】
主電源の電源断状態において電力供給を行なうバックアップ電源を備え、
前記バックアップ電源による動作中の場合に、前記算出部，前記格納処理部及び前記更新処理部が機能する
ことを特徴とする、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
既に管理情報に対して割り当てられている１つのページを新たな管理情報に対して割り当て、当該割り当てに応じて前記位置管理情報を更新し、前記新たな管理情報を前記１つのページに格納することで前記第１の記憶媒体に前記管理情報を格納し、当該格納に応じて前記位置管理情報を更新した場合での前記管理情報の前記第１の記憶媒体への格納処理に要する予測時間が、前記バックアップ電源の放電残り時間のうち、前記管理情報の前記第１の記憶媒体への格納に割り当て可能な時間以上の場合に、前記算出部，前記格納処理部及び前記更新処理部による、前記管理情報の前記第１の記憶媒体への格納処理を行なうことを特徴とする、請求項４記載の情報処理装置。
【請求項６】
管理情報を第１の記憶媒体に格納する格納処理方法であって、
前記管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する処理と、
前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する処理と、
前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理と、
を備えることを特徴とする、格納処理方法。
【請求項７】
第１の記憶媒体を有するコンピュータにおいて、
管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する処理と、
前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する処理と、
前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理と、
を前記コンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、格納処理方法及びプログラムに関する。
【背景技術】
【０００２】
ストレージ装置においては、バックアップ用電源とバックアップ用メモリとを備え、ディスクへのＩ／Ｏデータを格納するキャッシュ上のデータを、停電発生時にバックアップ用メモリに格納する機能を備えるものが知られている。又、停電発生時の処理シーケンスにおいては、メモリ上に蓄えられているログ（障害情報等）の書き出しも行なわれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２９３０８５号公報
【特許文献２】特開２００８−７７６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような従来のストレージ装置においては、搭載されるメモリサイズが大きくなり、キャッシュサイズが大きくなると、このキャッシュのデータをバックアップ用メモリに書き出すために要する時間（書き出し時間）が長くなる。
その一方で、バックアップ用電源の電源容量は限られているので、キャッシュデータの書き出し処理に時間を要すると、ログ書き出し処理に割り当てることができる時間が短くなる。従って、メモリ上のログ書き出しを短時間で行なう必要があるという課題がある。
【０００５】
１つの側面では、本発明は、メモリ上のログ書き出しを短時間で行なうことを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【０００６】
このため、この情報処理装置は、第１の記憶媒体と、管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する算出部と、前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する格納処理部と、前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理を行なう更新処理部と、を備える。
【０００７】
また、この格納処理方法は、管理情報を第１の記憶媒体に格納する格納処理方法であって、前記管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する処理と、前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する処理と、前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理と、を備える。
【０００８】
さらに、このプログラムは、第１の記憶媒体を有するコンピュータにおいて、管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する処理と、前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する処理と、前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理と、
を前記コンピュータに実行させる。
【発明の効果】
【０００９】
一実施形態によれば、メモリ上の管理情報の書き出しを短時間で行なうことができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の一例としてのストレージシステムの機能構成を示す図である。
【図２】（ａ），（ｂ）は実施形態の一例としてのストレージシステムにおけるログの管理手法を説明する図である。
【図３】（ａ），（ｂ），（ｃ）は、実施形態の一例としてのストレージシステムにおける第２モードでのログの管理手法を説明する図である。
【図４】実施形態の一例としてのストレージシステムにおけるメモリログ域に格納されているログの使用サイズを例示する図である。
【図５】実施形態の一例としてのストレージシステムにおけるログ書き出し処理を説明するための図である。
【図６】実施形態の一例としてのストレージシステムにおけるメモリログ書き出し手法を説明するためのフローチャートである。
【図７】実施形態の一例としてのストレージシステムにおけるメモリログ書き出し手法を説明するためのフローチャートである。
【図８】実施形態の一例としてのストレージシステムの変形例におけるメモリログ書き出し手法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本情報処理装置、格納処理方法及びプログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１２】
（Ａ）実施形態
図１は実施形態の一例としてのストレージシステム１の機能構成を示す図である。
本実施形態のストレージシステム１は、図１に示すように、ストレージ装置（情報処理装置）１００と１以上（図１に示す例では１つ）のホスト装置２とを備え、このホスト装置２に対して記憶領域を提供する。ホスト装置２は、例えば、サーバ機能をそなえたコンピュータ（ホストコンピュータ）であり、ＬＡＮ（Local Area Network）等のネットワークを介して、ストレージ装置１００と通信可能に接続される。
【００１３】
ストレージ装置１００は、図１に示すように、ＣＭ（Controller Module）１０１，ＢＰＳＵ（Buck Up Power Supply Unit）４０及び１以上（図１に示す例では３つ）の記憶装置３を備える。
記憶装置３は、ハードディスクドライブ（Hard Disk Drive：ＨＤＤ）やＳＳＤ（Solid State Drive）等のデータを読み書き可能に格納する記憶装置であり、ホスト装置２から受信したデータを記憶可能な記憶部として機能する。本実施形態においては、記憶装置３としてＨＤＤを用いる例について示す。以下、記憶装置３をＨＤＤ３と表す場合もある。
【００１４】
なお、図１中においては、便宜上、ストレージ装置１００に３つのＨＤＤ３を示しているが、これに限定されるものではなく、２つ以下もしくは４つ以上のＨＤＤ３を備えてもよい。そして、ストレージ装置１００は、これらの複数のＨＤＤ３を組み合わせて、冗長化された１つのストレージとして管理する、Redundant Arrays of Inexpensive Disks（ＲＡＩＤ）装置であってもよい。本実施形態においては、ストレージ装置１００が、これらの複数のＨＤＤ３を用いてＲＡＩＤを形成するＲＡＩＤ装置である例について説明する。
【００１５】
ＢＰＳＵ４０は、ストレージ装置１００における停電時に、ＣＭ１０１の少なくとも一部の部位に電力を供給する電力供給装置である。このＢＰＳＵ４０は、ストレージ装置１００の停電時に、例えば、ＣＭ１０１の、ＣＰＵ１０，メモリ２０及びバックアップ用メモリ３０に対して電力を供給する。
このＢＰＳＵ４０は、図１に示すように、バッテリ４１を備える。バッテリ４１は、例えば、鉛蓄電池やニッケル水素電池（Ni-H），リチウムイオン（Li-ION）電池等の二次電池である。なお、バッテリ４１に代えて、電気二重層コンデンサ（電気二重層キャパシタ）等のキャパシタを備えてもよい。
【００１６】
ＣＭ１０１は、ストレージ装置１００内の動作を制御するコントローラ（制御装置，コンピュータ）であり、例えば、ホスト装置２からのリード／ライト等のコマンドを受け取り、種々の制御を行なう。ＣＭ１０１はフロントエンド５１を介してネットワークに接続される。そして、このＣＭ１０１は、ホスト装置２から受信するリード／ライト等のディスクアクセスコマンドに従ってＨＤＤ３のデータアクセス制御を行なう。
【００１７】
ＣＭ１０１は、図１に示すように、フロントエンド５１，バックエンド５２，ＣＰＵ１０，メモリ２０及びバックアップ用メモリ３０を備える。
フロントエンド５１は、ホスト装置２等と通信可能に接続するインタフェースコントローラ（通信アダプタ）であり、例えば、ＣＡ（Channel Adapter）である。フロントエンド５１は、ホスト装置２等から送信されたデータを受信し、又、ＣＭ１０１から出力するデータをホスト装置２等に送信する。すなわち、フロントエンド５１は、ホスト装置２等の外部装置との間でのデータの入出力（Ｉ／Ｏ）を制御する。
【００１８】
バックエンド５２は、ＨＤＤ３と通信可能に接続するインタフェースコントローラ（通信アダプタ）であり、例えば、ＤＡ（Device Adapter）である。バックエンド５２は、ＨＤＤ３に書き込むデータをＨＤＤ３に送信し、又、ＨＤＤ３から読み出されたデータを受信する。すなわち、バックエンド５２は、ＨＤＤ３との間でのデータの入出力（Ｉ／Ｏ）を制御する。
【００１９】
メモリ２０は、Read Only Memory（ＲＯＭ）及びRandom Access Memory（ＲＡＭ）を含む記憶装置である。メモリ２０のＲＯＭには、本ストレージ装置１００における各種制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。すなわち、ＲＯＭには、本ストレージ装置１００における停電発生時に実行されるキャッシュデータのバックアップ制御に係るプログラム等も書き込まれている。
【００２０】
メモリ２０上のプログラムは、ＣＰＵ１０に適宜読み込まれて実行される。又、メモリ２０のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
メモリ２０のＲＡＭは、図１に示すように、ＲＡＩＤキャッシュ（キャッシュメモリ）２１，メモリログ域２２及びライトバッファ２３として機能する。
ＲＡＩＤキャッシュ２１は、ホスト装置２から受信したデータや、ＨＤＤ３から読み出したデータを格納する。ホスト装置２から受信し、ＨＤＤ３に書き込まれるデータ（ライトデータ，ライトキャッシュデータ）は、このＲＡＩＤキャッシュ２１における所定の領域（ユーザ領域）に格納された後、ＨＤＤ３に転送される。
【００２１】
本ストレージシステム１においては、このＲＡＩＤキャッシュ２１におけるライトデータを格納するための所定の領域をバックアップ対象領域とし、このバックアップ対象領域に格納されているデータの複写を、後述するバックアップ用メモリ３０に格納する（メモリバックアップ）。
また、ＨＤＤ３から読み出されたデータ（リードデータ）は、ＲＡＩＤキャッシュ２１におけるリードデータを格納するための領域に格納された後、ホスト装置２に送信される。
【００２２】
メモリログ域２２には、ＣＭ１０１において行なわれた各種処理に関するログ（管理情報）が格納される。このログには、障害情報のログも含まれる。ログとしては、例えば、エラーログ，イベントログ，デグレードログ，デグレードファクターログ等の種々の種類のログがあり、例えば、ＣＭ１０１のＣＰＵ１０がエラー検出機能を実行することにより生成される。１つのログのデータサイズは、例えば、３０Ｂｙｔｅ〜１ＫＢｙｔｅ（ＫＢ）程度である。なお、このＣＭ１０１におけるエラー検出機能は既知の種々の手法により実現され、その説明は省略する。
【００２３】
ライト用バッファ（第２の記憶媒体）２３は、後述するバックアップ用メモリ３０へログを書き出すためにログを一時的に格納するバッファである。このライト用バッファ２３は、後述するバックアップ用メモリ３０の１ページ（Page）と同じサイズを有する。
すなわち、ライト用バッファ２３には、後述するキャッシュ制御部１２やログ制御部１３がバックアップ用メモリ３０にデータ（バックアップデータ）を格納する際に、このバックアップ用メモリ３０に書き込まれる１ページ分のデータが格納（展開）される。
【００２４】
なお、メモリ２０におけるＲＡＩＤキャッシュ２１，メモリログ域２２及びライト用バッファ２３としての少なくとも一部の機能を、メモリ２０とは別に備えられた他の記憶装置により実現してもよく、種々変形して実施することができる。
バックアップ用メモリ（第１の記憶媒体）３０は、フラッシュメモリ等の電力を供給しなくても記憶を保持するメモリ（不揮発性メモリ）である。このバックアップ用メモリ３０としては、例えば、ＳＳＤが用いられる。ただし、バックアップ用メモリ３０は、これに限定されるものではなく、例えば、磁気抵抗ＲＡＭやＰＲＡＭ（Phase change RAM），強誘電体メモリを用いてもよく、種々変形して実施することができる。
【００２５】
そして、このバックアップ用メモリ３０には、ストレージ装置１００の停電時に、メモリ２０のＲＡＩＤキャッシュ２１やメモリログ域２２のバックアップ対象領域のデータ（ログ）が格納される。
ＣＰＵ１０は、種々の制御や演算を行なう処理装置であり、メモリ２０に格納されたプログラムを実行することにより、種々の機能を実現する。
【００２６】
例えば、ＣＰＵ１０は、システム制御部としての機能を備え、ストレージ装置１００における、ＲＡＩＤの実現や、アラーム監視機能，経路制御機能，ＲＡＳ機能等の種々の機能を実現する。又、ＣＰＵ１０は、図１に示すように、電源制御部１１，キャッシュ制御部１２及びログ制御部１３としての機能を備える。
電源制御部１１は、ストレージ装置１００における電力供給を制御する。電源制御部１１は、停電を検知すると、ＢＰＳＵ４０に対して電力供給指示を行なう。これにより、図示しない電力供給装置からの電力が遮断された場合においても、ＣＭ１０１の各部にＢＰＳＵ４０からの電力が供給される。
【００２７】
なお、電源制御部１１は、例えば、電力供給装置から供給される電力の電圧値を所定の基準値と比較することで停電を検知してもよく、又、電力供給装置等の他の装置から停電が生じた旨の通知を受け取ることにより、停電を検知してもよい。
また、電源制御部１１は、停電の発生を検知すると、キャッシュ制御部１２及びログ制御部１３に停電発生を通知する。
【００２８】
キャッシュ制御部１２は、ＲＡＩＤキャッシュ２１のデータを制御する。例えば、キャッシュ制御部１２は、ホスト装置２から受信したＩ／Ｏ（Input/Output）要求に対応するデータがＲＡＩＤキャッシュ２１にある場合には、そのデータをフロントエンド５１に受け渡す。
また、電源制御部１１から停電発生の通知を受け取ると、ＲＡＩＤキャッシュ２１のキャッシュデータをバックアップ用メモリ３０の所定の領域にコピーする（ＲＡＩＤキャッシュデータ書き出し）。
【００２９】
ログ制御部１３は、電源制御部１１から停電発生の通知を受け取ると、メモリログ域２２のログをバックアップ用メモリ３０の所定の領域に書き出す（メモリログ書き出し，メモリログ吐き出し）。なお、このログ制御部１３によるメモリログ書き出しは、キャッシュ制御部１２によるＲＡＩＤキャッシュデータ書き出しの後に行なうことが望ましい。
ログ制御部１３は、ログを所定サイズのブロック単位で管理する。すなわち、ログ制御部１３は、バックアップ用メモリ３０のメモリ領域をページ（Page）と呼ばれる所定サイズ（例えば、６４ＫＢｙｔｅ）の領域に分割し、これらのページにログを格納することで管理する。以下、１ページのデータサイズをページサイズという。
【００３０】
なお、前述の如く、１つのログのデータサイズは、例えば、３０Ｂｙｔｅ〜１ＫＢｙｔｅ（ＫＢ）程度であり、１つのページには１以上のログが格納される。又、１ページサイズよりも大きいログは、この１ページサイズよりも小さい複数のログに分割される。
また、前述の如く、ライト用バッファ２３は、１ページ分（６４ＫＢ）のサイズを有している。ログ制御部１３は、バックアップ用メモリ３０の１ページに書き込み可能なログをライト用バッファ２３にコピーしてから、バックアップ用メモリ３０の所定の領域に書き込む。
【００３１】
すなわち、ログ制御部１３は、バックアップ用メモリ３０に書き込むログをメモリログ域２２から読み出してライト用バッファ２３に格納し、バックアップ用メモリ３０へ格納するページのイメージ（１ページ分のデータ）を作成する。そして、ログ制御部１３は、このライト用バッファ２３に用意した１ページ分のデータを、バックアップ用メモリ３０の所定の領域にそのまま書き込む。
【００３２】
図２（ａ），（ｂ）は実施形態の一例としてのストレージシステム１におけるログの管理手法を説明する図であり、図２（ａ）はログ格納前の状態を、図２（ｂ）はログ格納後の状態を、それぞれ例示する。
図２（ａ），（ｂ）に示すように、ログ制御部１３は、ログを、ログデータを格納するページ部（Page部，ログ域）と、ページ部の管理情報（Header）を保持するヘッダ部（Header部，管理域）とを用いて管理する。これらのページ部及びヘッダ部はバックアップ用メモリ３０に格納される。
【００３３】
ページ部には複数のページが備えられ、これらのページに１以上のログがそれぞれ格納される。又、ページは、図２（ａ），（ｂ）に示すように、ログの種類に応じたタイプ（Type）に分類されて管理される。図２（ａ），（ｂ）においては、ページ（ログ）が、Type#0〜Type#238の２３９種類のタイプに分類された例を示す。
ログ制御部１３は、ログの種別となるタイプ毎にページをアサインし、各タイプにアサインしたページをリンクすることで順序を保つ。
【００３４】
一つのページには同じ種類のログが格納され、同種のログが格納された複数のページは、同一のタイプにリンクされる。各ページのリンクにおいて、ページはＦＩＦＯ（First In, First Out）で処理される。
図２（ａ），（ｂ）に示す例においては、タイプ毎にページを重積して示すことで、各タイプに複数のページがリンクされている状態を示している。又、図中、各タイプについて重積して示される複数のページのうち、下側のページ程古いページであることを示しており、各最下段のページが先頭のページ（Top Page）である。
【００３５】
すなわち、ログ部において、タイプにリンクされている複数のページは、それらの内、最下段の先頭のページから順番に処理される。
ログが格納されていないページは、フリーページ（Free Page）として扱われ、このフリーページは、フリーページのタイプ（図２（ａ），（ｂ）に示す例ではType#239）にリンク付けられる。
【００３６】
ヘッダ部には、ログ部において各タイプに関連付けられているページについての情報（管理情報）が格納される。
図２（ａ），（ｂ）に示す例においては、ヘッダ部において、Type Number，Page Count，Top Page Number及びBottom Page Numberが管理されている。
Type Numberはタイプを識別するための情報（番号）であり、Page Countはそのタイプにリンクされているページの数を表す。Top Page Numberはそのタイプにリンクされているページのうち先頭のページを、又、Bottom Page Numberは、そのタイプにリンクされているページのうち最後尾のページを、それぞれ表す。
【００３７】
また、ログを格納する際に、そのログに対応するタイプに先にリンクされているページに、当該ログを格納することができない場合には、フリーページが用いられる。
例えば、図２（ａ）に示す状態において、Type#237に対応するログを新たに格納する際には、ログ制御部１３は、管理部のBottom Page Numberを参照して、Type#237にリンクされている最後尾のページを確認する。図２（ａ）において、Type#237の最後尾のページは、Page#9である。
【００３８】
そして、このPage#9に新たなログを格納することができない場合には、ログ制御部１３は、ヘッダ部のBottom Page Numberを参照して、フリーページ（Type#239）にリンクされている先頭のページを確認する。図２（ａ）において、Type#239の先頭のページは、Page#10である。
ログ制御部１３は、このフリーページ（Type#239）に使用可能なページがリンクされている場合には、図２（ｂ）に示すように、その先頭のページ（Page#10）をType#237の最後尾にアサインして、このPage#10にログを格納する。
【００３９】
また、ログ部において、全てのページが使用され、フリーページ（Type#239）に使用可能なページがリンクされていない場合も考えられる。このような、全てのページが使用され、フリーページ（Type#239）に使用可能なページがリンクされていない状態を、以下、フリーページが枯渇した状態という場合がある。
ログ制御部１３は、ログの書き出しを、第１のモードと第２のモードとの２種類のモードで行なうことができ、これらの２種類のモードのうちいずれかでログの書き出しを行なう。
【００４０】
第１モードにおいては、ログ制御部１３は、タイプ毎のメモリログを全て書き出すまでに、ログ及びヘッダをバックアップ用メモリ３０に対して書き出すアクセス処理を繰り返し行なう。
具体的には、既にタイプに対してアサインされているページにログを書き込む空きが無い場合（場合Ａ）には、以下のステップ１〜３のライト処理を行なう。すなわち、その格納するログのタイプに対して、新しいフリーページをアサインしてヘッダを更新し（ステップ１）、ライト用バッファ２３にアサインしたフリーページにログを書き出してから、このページをバックアップ用メモリ３０へ書き出し（ステップ２）、更に、更新したヘッダをバックアップ用メモリ３０に書き込む（ステップ３）。
【００４１】
このように、第１モードの場合Ａにおいては、ステップ１〜３の３回のライト処理が行なわれる。そして、バックアップ用メモリ３０に書き出すログが複数ある場合には、ログ毎に上記のステップ１〜３の処理を繰り返し行なう。
このように、第１モードにおいては、バックアップ用メモリ３０に対して１ページ分のログの書き出しを行なう度にヘッダの更新を行なうことで、ログを確実にバックアップ用メモリ３０に書き出すことができる。
【００４２】
なお、既にタイプに対してアサインされているページにログを書き込む空きがある場合（場合Ｂ）には、以下のステップ１′，２′，３の処理を行なう。すなわち、タイプにアサインされているページをライト用バッファ２３へ読み出し（ステップ１′）、ライト用バッファ２３に読み出したページにログを書き出してから、このページをバックアップ用メモリ３０へ書き出し（ステップ２′）、更新したヘッダをバックアップ用メモリ３０に書き込む（ステップ３）。
【００４３】
このように、場合Ｂにおいては、ステップ１′，２′，３において、１回のリード処理と２回のライト処理とが行なわれる。そして、バックアップ用メモリ３０に書き出すログが複数ある場合には、ログ毎に上記のステップ１′，２′，３の処理を繰り返し行なう。
このような場合Ｂは、前回のログ書き出しで、ページ内に空き領域が存在する場合である。ここで、ほとんどのケースで、１ページ目のログ書き出しは、前回の空き領域にライトする場合Ｂとなる。又、２ページ目以降のログ書き出しは、１ページがフルになった後の処理となり、新たにページをアサインする必要があるため場合Ａとなる。
【００４４】
一般に、メモリログ域２２のログをバックアップ用メモリ３０に書き出す場合に、ある程度メモリログ域２２にログを蓄えてから書き出し処理を行なう。そのため、ログ書き出し時には、複数ページ（例えば、数１０ページ）分のログデータを扱うこととなる。これにより、ほとんどのログ書き出しは、上記のページにログを書き込む空きが無い場合（場合Ａ）に相当する。つまり、第１モードにおいては、１ページのログを書き出す際に３回のライト処理が行なわれることが多い。
【００４５】
次に第２モードについて説明する。
図３（ａ），（ｂ），（ｃ）は、実施形態の一例としてのストレージシステム１における第２モードでのログの管理手法を説明する図である。図３（ａ）はそのフェーズ（Phase）１を、図３（ｂ）はそのフェーズ２を、図３（ｃ）はそのフェーズ３を、それぞれ例示する。又、図４は実施形態の一例としてのストレージシステム１におけるメモリログ域２２に格納されているログの使用サイズを例示する図である。
【００４６】
ログ制御部１３は、第２モードにおいては、図３（ａ），（ｂ），（ｃ）に示すようなフェーズ１〜３からなる３つのフェーズでログ書き出しを行なう。
ログ制御部１３は、フェーズ１において、先ず、ログを格納するために必要なフリーページページの数（必要フリーページ数）の算出を行なう。
ログ制御部１３は、図４に示すように、メモリ２０のメモリログ域２２に格納されているログのタイプ毎の総量のサイズ（使用サイズ；Used Size）を管理している。
【００４７】
図４に示す例においては、メモリログ域２２においては、タイプ２（Type#2）のログの総量（Used Size）が987654byteである。なお、この図４中においては、便宜上、タイプ２以外のログのデータサイズをxxxx，yyyy，zzzz等で示している。
そして、ログ制御部１３は、このように管理しているメモリログ域２２におけるログの使用サイズと、バックアップ用メモリ３０におけるページサイズ（例えば６４ＫＢ）とを用いて、必要フリーページ数を算出する。
【００４８】
具体的には、ログ制御部１３は、各タイプのログの使用サイズをページサイズで除算することにより、必要フリーページ数を算出する。例えば、図４に示す例において、タイプ２のログ（987654byte）をバックアップ用メモリ３０に格納するためには、
必要フリーページ数＝987654÷（64×1024）＝15.07
となり、必要フリーページ数は１６（１６ページ）となる。
【００４９】
そして、ログ制御部１３は、算出した必要数のページを、先にタイプに割り当てられているページの中から選択し、フリーページにアサインする。
ここで、先にタイプに割り当てられているページの中から、フリーページにアサインするページの選択手法としては、例えば、ログ部において先にタイプにリンクされている（最も古い）ページから順に選択することが望ましい。
【００５０】
図３（ａ）に示す例においては、タイプ１（Type#1）の３つのページ（Page#1,#13,#14）とタイプ２３７（Type#237）の２つのページ（Page#3,#4）との、合計５つのページが選択されている。
ログ制御部１３は、これらの選択したページをフリーページ（Type#239）にアサインする。
【００５１】
ログデータを格納するためのページを、一旦フリーページとしてアサインすることにより、ヘッダ内での矛盾の発生を防止することができる。フリーページとしてアサインされている状態では、ページ内のデータは無効であり、後述するフェーズ３においてヘッダの更新が完了するまでデータは確定しないからである。
次に、ログ制御部１３は、図３（ｂ）に示すように、フェーズ２において、ログデータをアサインした各フリーページに格納する。
【００５２】
ログ制御部１３は、ライト用バッファ２３を介してログデータをバックアップ用メモリ３０に格納する。具体的には、ライト用バッファ２３において、バックアップ用メモリ３０に記録する１ページ分のデータを作成し、このライト用バッファ２３に作成したデータをバックアップ用メモリ３０に格納する。
図５は実施形態の一例としてのストレージシステム１におけるログ書き出し処理を説明するための図である。
【００５３】
この図５に示すように、メモリログ域２２のログデータは、ライト用バッファ２３に１ページに書き込み可能な分ずつコピーされ、このライト用バッファ２３からバックアップ用メモリ３０のフリーページに書き込まれる。
ここで、フリーページへのログデータの書き込み時に、ファームパニック等の異常が発生した場合には、バックアップ用メモリ３０内にログは残らないが、メモリログ域２２やライト用バッファ２３からはメモリダンプファイルを採取することができる。このメモリダンプ上にはログが残るので、異常発生時のログを採取して障害解析が可能となる。
【００５４】
その後、図３（ｃ）に示すように、フェーズ３において、ログ制御部１３は、バックアップ用メモリ３０のページ部の更新に伴いヘッダを書き換える。
そして、本実施形態においては、ログ制御部１３は、ストレージシステム１への電力供給が遮断されている（停電中）場合に、第２モードでのログの書き出しを行ない、それ以外の通常時には第１モードでのログの書き出しを行なう。すなわち、停電時にはログ吐出速度を優先して行なう。
【００５５】
上述の如く構成された実施形態の一例としてのストレージシステム１におけるメモリログ書き出し手法を、図６及び図７に示すフローチャート（ステップＡ１〜Ａ２０）に従って説明する。なお、図６はステップＡ１〜Ａ１４を、図７はステップＡ１５〜Ａ２０をそれぞれ示す。
例えば、メモリログ域２２に格納されているログのサイズが予め設定された所定量以上となった場合に、本処理が開始される。
【００５６】
ステップＡ１において、ログ制御部１３は、バックアップ用メモリ３０からヘッダを読み出す。そして、ステップＡ２において、メモリログ域２２のログについて、ログが存在するタイプを検索する。
ステップＡ３において、ログ制御部１３は、ログが存在するタイプがあるか否かを判断する。ログが存在するタイプが無い場合には（ステップＡ３のＮＯルート参照）、バックアップ対象のログが無いと判断し、処理を終了する。
【００５７】
ログが存在するタイプがある場合には（ステップＡ３のＹＥＳルート参照）、ログ制御部１３は、そのログがあるタイプを一つ選択し、ヘッダを参照して、その選択したタイプ（検出タイプ）にアサインされている（リンクされている）全てのページに対するライトを抑止する（ステップＡ４）。具体的には、当該タイプに対して既にアサインされているページに関してのライトを抑止する。なお、ここで、当該タイプに対して新たなページを追加アサイン（ログ追加）することは可能であり、このように追加アサインされたページは次回のログ書き出しで処理される。
【００５８】
ステップＡ５において、ログ制御部１３は、停電中であるか否かを確認する。停電中ではない場合には（ステップＡ５のＮＯルート参照）、ログ制御部１３は、第１モードでのログ書き出しを行なう。
この第１モードにおいては、ログ制御部１３は、先ず、ステップＡ６において、検出タイプにアサインされているページに空き領域があるか否かを判断する。すなわち、ログ制御部１３は、検出タイプにリンクされているページのうち、最後にリンクされたページにログを書き込むことができるだけの容量が空いているかを確認する。
【００５９】
検出タイプにアサインされているページに空き領域がある場合には（ステップＡ６のＹＥＳルート参照；場合Ｂ）、ステップＡ７において、ログ制御部１３は、バックアップ用メモリ３０からそのページをライト用バッファ２３に読み出す。一方、検出タイプにアサインされているページに空き領域がない場合には（ステップＡ６のＮＯルート参照；場合Ａ）、ステップＡ８において、ログ制御部１３は、フリーページを当該タイプにアサインする。更に、ログ制御部１３は、このフリーページのアサインに基づいて更新したヘッダを、バックアップ用メモリ３０にライトする。
【００６０】
その後、ステップＡ９において、ログ制御部１３は、バックアップ対象のログ（対象ログ）をメモリログ域２２から読み出し、ライト用バッファ２３のページに格納する。すなわち、メモリログをライト用バッファ２３にコピーする。
そして、ステップＡ１０において、ログ制御部１３は、ライト用バッファ２３のページのデータをバックアップ用メモリ３０にライトする。
【００６１】
また、ステップＡ１１において、ログ制御部１３は、ヘッダをバックアップ用メモリ３０にライトし、その後、ステップＡ１２において、メモリログ域２２から対象ログを削除する。
ステップＡ１３において、ログ制御部１３は、同一タイプにおいて未処理のページの有無を確認し、未処理のページがある場合には（ステップＡ１３のＹＥＳルート参照）、ステップＡ６に戻る。又、同一タイプにおいて未処理のページがない場合には（ステップＡ１３のＮＯルート参照）、次に、ステップＡ１４において、未処理のタイプの有無を確認する。
【００６２】
未処理のタイプがある場合には（ステップＡ１４のＹＥＳルート参照）、ステップＡ３に戻り、ログが存在するタイプがあるか否かの判断を行なう。すなわち、ステップＡ３においてログが存在するタイプがまだある場合には、そのタイプに切り替えて、再度、ステップＡ４以下の処理を行なう。又、未処理のタイプが無い場合には（ステップＡ１４のＮＯルート参照）、処理を終了する。
【００６３】
一方、ステップＡ５において、停電中である場合には（ステップＡ５のＹＥＳルート参照）、ログ制御部１３は、第２モードでログの書き出しを行なう。
この第２モードにおいては、ログ制御部１３は、先ず、ステップＡ１５において、ログを格納するための必要フリーページ数の算出を行なう（フェーズ１）。すなわち、ログ制御部１３は、検出タイプのログのデータサイズに基づいて、必要フリーページ数を算出する。
【００６４】
ログ制御部１３は、算出した必要数のページを、先にタイプに割り当てられているページの中から選択してフリーページにアサインし、更に、このフリーページのアサインに基づいて更新したヘッダをライト用バッファ２３にライトする。
その後、ログ制御部１３は、ステップＡ１６において、メモリログ域２２のログ（対象ログ）をライト用バッファ２３にコピーして、１ページ（例えば、６４ＫＢｙｔｅ）分のデータを作成する。その後、ステップＡ１７において、このライト用バッファ２３のログをバックアップ用メモリ３０のページにライトする（フェーズ２）。
【００６５】
そして、ステップＡ１８において、ログ制御部１３は、同一タイプにおいて未処理のページの有無を確認し、未処理のページがある場合には（ステップＡ１８のＹＥＳルート参照）、ステップＡ１６に戻る。又、同一タイプにおいて未処理のページがない場合には（ステップＡ１８のＮＯルート参照）、次に、ステップＡ１９において、ログ制御部１３は、ヘッダをバックアップ用メモリ３０にライトする（フェーズ３）。その後、ステップＡ２０において、ログ制御部１３は、メモリログ域２２から対象ログを削除し、ステップＡ１４に移行する。
【００６６】
このように、実施形態の一例としてのストレージシステム１によれば、ログ書き出しを行なうに際して、ログ制御部１３が、第２モードにおいて、ログを格納するために必要なフリーページ数を算出してアサインする。そして、ログ制御部１３は、これらの複数のフリーページにログのライトを行なってからヘッダの書き換えを行なう。
すなわち、アサインした各フリーページにログデータの書き出しを行なった後にヘッダの更新を一括して行なうことで、バックアップ用メモリ３０に対して行なうライト処理数を減らすことができる。
【００６７】
上述した第１モードの場合Ａにおいては、１ページ分のデータの書き出しを行なうに際して、上記ステップ１〜３の３回のライト処理が行なわれる。従って、各タイプで書き出しするページ数をＸとした場合に、バックアップ用メモリ３０へのライト回数は、３Ｘとして算出される。
例えば、あるタイプの５ページ分のログをバックアップ用メモリ３０に書き出す場合には（Ｘ＝５）、５×３＝１５回のライト処理が行なわれる。
【００６８】
これに対して、第２モードの場合においては、各タイプで書き出しするページ数をＸとした場合に、バックアップ用メモリ３０へのライト回数は、Ｘ＋２として算出される。
従って、あるタイプの５ページ分のログをバックアップ用メモリ３０に書き出す場合には（Ｘ＝５）、５＋２＝７回のライト処理が行なわれる。
つまり、第２モードにおいては、各タイプのログデータ書き出しに要する時間（Ｘ＋２）は、第１モードにおける各タイプのログデータ書き出しに要する時間（３Ｘ）に比べて、（Ｘ＋２）／３Ｘとなり、ほぼ１／３の処理時間で行なうことができる。
【００６９】
例えば、５ＭＢのサイズを有するメモリログ域２２がフルとなるケースにおいては、ログが約３つのタイプに偏ってＸの値が大きくなり、第２モードでログ書き出しを行なうことにより、第１モードに比べて１／３〜１／２の時間で処理を完了させることができる。
そして、例えば、本ストレージシステム１の停電時に第２モードでログの書き出しを行なうことにより、メモリログ域２２のデータを確実にバックアップ用メモリ３０に退避させることができ、信頼性を向上させることができる。
【００７０】
また、第２モードにおいては、バックアップ用メモリ３０へのライト回数を低減することにより、バックアップ用メモリ３０の寿命を延ばすことにも寄与し、これによっても信頼性を向上させることができる。
一方、第１モードでログの書き出しを行なうことにより、バックアップ用メモリ３０に対して１ページ分のログの書き出しを行なう度にヘッダの更新を行なうことで、ログを確実にバックアップ用メモリ３０に書き出すことができる。
【００７１】
また、第１モードにおいては、１ページのログをライトする毎にメモリログ域２２上のログが削除されるため、メモリログ域２２の空きを確保することができ、この確保した空き領域に新たなログを記録することができる。
（Ｂ）変形例
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００７２】
例えば、上述した実施形態においては、停電中であるか否かを判断することにより、第１モードと第２モードとのいずれでログ書き出しを行なうかを決定しているが、これに限定されるものではない。
前述の如く、ストレージシステム１の停電発生時には、搭載されているバッテリ４１の放電時間内で、ＲＡＩＤキャッシュ２１のキャッシュデータ（ＲＡＩＤキャッシュデータ）の書き出しとメモリログ域２２のログの書き出しとを行なう必要がある。
【００７３】
また、停電発生時において、ＲＡＩＤキャッシュデータの書き出しはログの書き出しに優先して行なわれる。
本変形例においては、バッテリ放電時間のうち、ＲＡＩＤキャッシュデータの書き出しを行なった後にログ書き出しにかけることができる時間（バッテリ放電残り時間：時間Ａ）と、第１モードでのログ書き出しに要する予測時間（メモリログ書き出し時間：時間Ｂ）とを比較する。
【００７４】
そして、バッテリ放電残り時間がメモリログ書き出し時間よりも長い場合には第１モードでログ書き出しを行ない、バッテリ放電残り時間がメモリログ書き出し時間以下の場合には第２モードでログ書き出しを行なう。
そこで、ログ制御部１３はバッテリ放電残り時間の算出と、メモリログ書き出し時間の算出とを行なう。以下に、バッテリ放電残り時間の算出手法と、メモリログ書き出し時間の算出手法とを示す。
【００７５】
（１）バッテリ放電残り時間 
メモリログ書き出しに割当てられるバッテリ放電残り時間は、バッテリ４１によるバッテリ放電の全体時間から、ＲＡＩＤキャッシュデータの書き出しに要する時間（キャッシュ書き出し時間）を減算することにより求められる。
バッテリ放電の全体時間は、例えば、以下の式（１）により算出する。
バッテリ放電の全体時間 =［バッテリ放電で稼動可能な最大時間］×［バッテリ充電率］
×［バッテリ経年劣化率］                  ・・・（１）
ここで、「バッテリ放電で稼動可能な最大時間」は、ストレージシステム１の仕様によって決定され、例えば、600secである。
【００７６】
「バッテリ充電率」は、バッテリ４１の充電状態であり、例えば百分率で示す。充電率＝100%の状態でバッテリ放電で稼動可能な最大時間が保証される。
「バッテリ経年劣化率」は、バッテリの劣化状態を表す値であり、例えば百分率で示す。バッテリ４１は経年劣化し、この経年劣化により稼動可能な時間も減少する。
キャッシュ書き出し時間は、例えば、以下の式（２）により算出する。
【００７７】
キャッシュデータ書き出し時間 = ［キャッシュデータがフルの時の書き出し処理に必要な最大時間］×［キャッシュ使用率］        ・・・（２）
ここで、「キャッシュデータがフルの時の書き出し処理に必要な最大時間」は、ＲＡＩＤキャッシュ２１にフルの状態で格納されたキャッシュデータをバックアップ用メモリ３０に書き込むのに要する時間である。このキャッシュデータがフルの時の書き出し処理に必要な最大時間は、例えば、ＲＡＩＤキャッシュ２１のサイズやＩ／Ｏ性能、バックアップ用メモリ３０のＩ／Ｏ性能等によって決定される。キャッシュデータがフルの時の書き出し処理に必要な最大時間は、例えば、300secである。
【００７８】
「キャッシュ使用率」は、ＲＡＩＤキャッシュ２１に格納されているキャッシュデータのデータサイズであり、ＲＡＩＤキャッシュ２１の領域に占める割合を、例えば百分率で示す。キャッシュ使用率が100%の場合に、キャッシュデータがフルの時の書き出し処理に最大時間（例えば、300sec）を要する。
そして、バッテリ放電残り時間（時間Ａ）は、以下の式（３）により求められる。
【００７９】
時間Ａ=［バッテリ放電の全体時間］−［キャッシュデータ書き出し時間］・・（３）
なお、ストレージシステム１においては、ＢＰＳＵ４０の故障時やバッテリ４１の充電率が明らかに低い場合（所定の閾値未満の場合）には、停電処理は行なわれない。
（２）メモリログ書き出し時間
メモリログ書き出し時間（時間Ｂ）は、例えば、以下の式（４）により求められる。
【００８０】
時間Ｂ =［第１モードでのメモリログ書き出し時間］×｛［使用ページ数］／［最大ページ数］｝      ・・・（４）
ここで、「使用ページ数」は、メモリログ域２２に格納されているバックアップ対象のログのデータサイズをページ数で表した値である。すなわち、バックアップ対象のログデータサイズに相当する。
【００８１】
「第１モードでのログ書き出しに要する時間」は、例えば、以下の式（５）により求められる。
第１モードでのメモリログ書き出し時間＝３×ページ数×ライト時間    ・・・（５）  
「ライト時間」は、バックアップ用メモリ３０への１回あたりのライト時間であり、例えば、約５〜６Tick（ただし、1Tick=1/60sec）である。
【００８２】
「最大ページ数」メモリログ域２２のログデータをページ数で表す場合の最大値であり、メモリログ域２２の全データがログとなる場合のページ数である。すなわち、最大ページ数は、メモリログ域２２の全データサイズをページ数で表した値である。例えば、メモリログ域２２のサイズが５MBの場合には、
最大ページ数＝５MB／６４KB＝８０ページ
となる。これらにより、
第１モードでのメモリログ書き出し時間＝３×最大ページ数×ライト時間
＝３×８０ページ×（５〜６／６０）sec
＝２０〜２４sec
となる。
【００８３】
ここで、２０〜２４secのライト時間とそれ以外のオーバヘッドも考慮し、第１モードでのメモリログ書き出し時間を例えば２５secとすると、メモリログ書き出し時間（時間Ｂ）は以下の式（６）で表される。
時間Ｂ＝２５sec×（［使用ページ数］／８０ページ）  ・・・（６）
そして、ログ制御部（比較部）１３は、上述の如く求めた時間Ａと時間Ｂとを比較することで、メモリログを従来処理で書き出し可能かどうかを判定する。判定の結果は、処理フラグとして設定され、例えば、メモリ２０の所定の領域等に記憶される。
【００８４】
具体的には、ログ制御部１３は、メモリログ書き出し時間（時間Ｂ）がバッテリ放電残り時間（時間Ａ）以上の場合に、第２モードでのログ書き出しを行なう。
上述の如く構成された実施形態の一例としてのストレージシステム１の変形例におけるメモリログ書き出し手法を、図８に示すフローチャート（ステップＢ１〜Ｂ７，Ａ２〜Ａ４，Ａ１７）に従って説明する。なお、図中、既述の符号と同一の符号のステップは、同一の処理を示しているので、その詳細な説明は省略する。
【００８５】
ログ制御部１３は、ステップＢ１において、先ず、上記式（３）及び式（４）に基づき、バッテリ放電残り時間（時間Ａ）及びメモリログ書き出し時間（時間Ｂ）を算出する。
そして、ログ制御部１３は、ステップＢ２において、時間Ａと時間Ｂとを比較して、時間Ａが時間Ｂよりも大きいか否かを判断する。時間Ａが時間Ｂよりも大きい場合には（ステップＢ２のＹＥＳルート参照）、ステップＢ３において、メモリログをバックアップ用メモリ３０に書き出すためにバッテリ放電残り時間が充分にあると判断される。ログ制御部１３は、処理フラグとして第１モードを設定する。
【００８６】
一方、時間Ａが時間Ｂ以下の場合には（ステップＢ２のＮＯルート参照）、ステップＢ４において、バッテリ放電残り時間が残り少ないと判断される。すなわち、第１モードではメモリログをバックアップ用メモリ３０に書き出すためにバッテリ放電残り時間が足りないと判断される。ログ制御部１３は、処理フラグとして第２モードを設定する。
その後、ステップＡ２〜Ａ４が行なわれた後、ステップＢ５において、ログ制御部１３は、処理フラグに第１モードを示す値が設定されているか否かを判断する。処理フラグが第１モードを示す場合には（ステップＢ５のＹＥＳルート参照）、ステップＢ６において第１モードでのログデータの書き出し処理が行なわれる。すなわち、図６のステップＡ６〜Ａ１３の処理が行なわれる。
【００８７】
また、処理フラグが第２モードを示す場合には（ステップＢ５のＮＯルート参照）、ステップＢ７において第２モードでのログデータの書き出し処理が行なわれる。すなわち、図７のステップＡ１５〜Ａ２０の処理が行なわれる。
その後、ステップＡ１４において、ログ制御部１３は、未処理のタイプの有無を確認する。
【００８８】
未処理のタイプがある場合には（ステップＡ１４のＹＥＳルート参照）、ステップＡ３に戻り、ログが存在するタイプがあるか否かの判断を行なう。すなわち、ステップＡ３においてログが存在するタイプがまだある場合には、そのタイプに切り替えて、再度、ステップＡ４以下の処理を行なう。又、未処理のタイプが無い場合には（ステップＡ１４のＮＯルート参照）、処理を終了する。
【００８９】
このように、実施形態の一例としてのストレージシステム１の変形例によれば、上述した実施形態と同様の作用効果を得ることができる他、ログ制御部１３が、バッテリ放電残り時間がメモリログ書き出し時間よりも長い場合には第１モードでログ書き出しを行ない、バッテリ放電残り時間がメモリログ書き出し時間以下の場合には第２モードでログ書き出しを行なう。
【００９０】
バッテリ放電残り時間がメモリログ書き出し時間よりも長い場合には、メモリログをバックアップ用メモリ３０に書き出すためにバッテリ放電残り時間が充分にあると判断できるので、ログ制御部１３は、ログを確実にバックアップ用メモリ３０に書き出すことができる第１モードでログ書き出しを行なうことで信頼性を向上させることができる。
一方、バッテリ放電残り時間がメモリログ書き出し時間以下の場合には、第１モードではメモリログをバックアップ用メモリ３０に書き出すためにバッテリ放電残り時間が足りないと判断できるので、ログ制御部１３は、短時間でログ書き出しを行なうことができる第２モードでログ書き出しを行なうことで信頼性を向上させることができる。
【００９１】
（Ｃ）その他
上述した、電源制御部１１，キャッシュ制御部１２及びログ制御部１３としての機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
【００９２】
電源制御部１１，キャッシュ制御部１２及びログ制御部１３としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ２０等）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、ＣＭ１０１がコンピュータとしての機能を有している。
【００９３】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、図１に示す例においては、１つのＣＭ１０１を示しているが、これに限定されるものではなく、ストレージ装置１００に２以上のＣＭ１０１を備えることで冗長化してもよい。
【００９４】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
（Ｄ）付記
（付記１）
第１の記憶媒体と、
管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する算出部と、
前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する格納処理部と、
前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理を行なう更新処理部と、
を備えることを特徴とする、情報処理装置。
【００９５】
（付記２）
第２の記憶媒体を備え、
前記格納処理部が、
前記管理情報を前記第２の記憶媒体に格納し、当該第２の記憶媒体に格納した前記管理情報を前記フリーページに格納する
ことを特徴とする、付記１記載の情報処理装置。
【００９６】
（付記３）
前記算出部が、前記管理情報のデータサイズを前記ページのサイズで除算して、前記ページ数を算出する
ことを特徴とする、付記１又は２記載の情報処理装置。
（付記４）
主電源の電源断状態において電力供給を行なうバックアップ電源を備え、
前記バックアップ電源による動作中の場合に、前記算出部，前記格納処理部及び前記更新処理部が機能する
ことを特徴とする、付記１〜３のいずれか１項に記載の情報処理装置。
【００９７】
（付記５）
既に管理情報に対して割り当てられている１つのページを新たな管理情報に対して割り当て、当該割り当てに応じて前記位置管理情報を更新し、前記新たな管理情報を前記１つのページに格納することで前記第１の記憶媒体に前記管理情報を格納し、当該格納に応じて前記位置管理情報を更新した場合での前記管理情報の前記第１の記憶媒体への格納処理に要する予測時間が、前記バックアップ電源の放電残り時間のうち、前記管理情報の前記第１の記憶媒体への格納に割り当て可能な時間以上の場合に、前記算出部，前記格納処理部及び前記更新処理部による、前記管理情報の前記第１の記憶媒体への格納処理を行なうことを特徴とする、付記４記載の情報処理装置。
【００９８】
（付記６）
管理情報を第１の記憶媒体に格納する格納処理方法であって、
前記管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する処理と、
前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する処理と、
前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理と、
を備えることを特徴とする、格納処理方法。
【００９９】
（付記７）
前記管理情報を第２の記憶媒体に格納し、当該第２の記憶媒体に格納した前記管理情報を前記フリーページに格納する
ことを特徴とする、付記６記載の格納処理方法。
（付記８）
前記管理情報のデータサイズを前記ページのサイズで除算して、前記ページ数を算出する
ことを特徴とする、付記６又は７記載の格納処理方法。
【０１００】
（付記９）
主電源の電源断状態において電力供給を行なうバックアップ電源による動作中の場合に、
前記ページ数を算出する処理と、前記第１の記憶媒体に前記管理情報を格納する処理と、前記位置管理情報を更新する処理とを行なう
ことを特徴とする、付記６〜８のいずれか１項に記載の格納処理方法。
【０１０１】
（付記１０）
既に管理情報に対して割り当てられている１つのページを新たな管理情報に対して割り当て、当該割り当てに応じて前記位置管理情報を更新し、前記新たな管理情報を前記１つのページに格納することで前記第１の記憶媒体に前記管理情報を格納し、当該格納に応じて前記位置管理情報を更新した場合での前記管理情報の前記第１の記憶媒体への格納処理に要する予測時間が、前記バックアップ電源の放電残り時間のうち、前記管理情報の前記第１の記憶媒体への格納に割り当て可能な時間以上の場合に、前記ページ数を算出する処理と、前記第１の記憶媒体に前記管理情報を格納する処理と、前記位置管理情報を更新する処理とを行なうことを特徴とする、付記９記載の格納処理方法。
【０１０２】
（付記１１）
第１の記憶媒体を有するコンピュータにおいて、
管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する処理と、
前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する処理と、
前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理と、
を前記コンピュータに実行させることを特徴とするプログラム。
【０１０３】
（付記１２）
前記管理情報を第２の記憶媒体に格納し、当該第２の記憶媒体に格納した前記管理情報を前記フリーページに格納する
処理を前記コンピュータに実行させることを特徴とする、付記１１記載のプログラム。
（付記１３）
前記管理情報のデータサイズを前記ページのサイズで除算して、前記ページ数を算出する
処理を前記コンピュータに実行させることを特徴とする、付記１１又は１２記載のプログラム。
【０１０４】
（付記１４）
主電源の電源断状態において電力供給を行なうバックアップ電源による動作中の場合に、
前記ページ数を算出する処理と、前記第１の記憶媒体に前記管理情報を格納する処理と、前記位置管理情報を更新する処理と
を前記コンピュータに実行させることを特徴とする、付記１１〜１３のいずれか１項に記載のプログラム。
【０１０５】
（付記１５）
既に管理情報に対して割り当てられている１つのページを新たな管理情報に対して割り当て、当該割り当てに応じて前記位置管理情報を更新し、前記新たな管理情報を前記１つのページに格納することで前記第１の記憶媒体に前記管理情報を格納し、当該格納に応じて前記位置管理情報を更新した場合での前記管理情報の前記第１の記憶媒体への格納処理に要する予測時間が、前記バックアップ電源の放電残り時間のうち、前記管理情報の前記第１の記憶媒体への格納に割り当て可能な時間以上の場合に、前記ページ数を算出する処理と、前記第１の記憶媒体に前記管理情報を格納する処理と、前記位置管理情報を更新する処理とを前記コンピュータに実行させることを特徴とする、付記１４記載のプログラム。
【０１０６】
（付記１６）
第１の記憶媒体を有するコンピュータにおいて、
管理情報を前記第１の記憶媒体に格納するために要するページ数を算出する処理と、
前記算出したページ数に相当するページをフリーページとして設定し、設定した前記フリーページに前記管理情報を格納することで前記第１の記憶媒体に前記管理情報を格納する処理と、
前記第１の記憶媒体における前記管理情報の格納位置を示す位置管理情報を更新する処理と、
を前記コンピュータに実行させることを特徴とするプログラムを記録したコンピュータ読取可能な記録媒体。
【符号の説明】
【０１０７】
１    ストレージシステム
３    記憶装置
１０    ＣＰＵ
１１    電源制御部
１２    キャッシュ制御部
１３    ログ制御部
２０    メモリ
２１    ＲＡＩＤキャッシュ
２２    メモリログ域
２３    ライト用バッファ
３０    バックアップ用メモリ
４０    ＢＰＳＵ
４１    バッテリ
５１    フロントエンド
５２    バックエンド
１００    ストレージ装置（情報処理装置）
１０１    ＣＭ（コンピュータ）
【図１】
2014120092.tif 000003
【図２】
2014120092.tif 000004
【図３】
2014120092.tif 000005
【図４】
2014120092.tif 000006
【図５】
2014120092.tif 000007
【図６】
2014120092.tif 000008
【図７】
2014120092.tif 000009
【図８】
2014120092.tif 000010