【実施例1】
【0012】
以下の実施例1では、
図1を用いて、差分バックアップを実行するサーバを有する情報処理システムの一例を説明する。
図1は、実施例1に係る情報処理システムを説明するための図である。
【0013】
図1に示すように、情報処理システム1は、電源2、電源3、モニタ4、キーボード5、マウス6、サーバ10、バッテリモジュール50を有する。また、サーバ10は、電源ユニット20、ベースボード30、記憶装置40、外部装置接続部43を有する。
【0014】
また、ベースボード30は、CPU(Central Processing Unit)31、メインメモリ32、LAN(Local Area Network)制御部33、記憶装置制御部34を有する。また、記憶装置40は、持続時間対応情報41を記憶するとともに、ソフトウェア退避領域42を有する。一方、バッテリモジュール50は、バッテリ51、バッテリインターフェース52、LAN制御部53、制御回路54、状態表示LED(Light Emitting Diode:発光ダイオード)部55を有する。なお、
図1に示す例では、サーバ10は、ベースボード30を有することとしたが、実施例はこれに限定されるものではなく、ベースボード30と同様の機能を有する複数のベースボードを有することとしてもよい。
【0015】
電源2は、サーバ10に対して電力を供給する電源である。また、電源3は、モニタ4に対して電力を供給する電源である。ここで、電源2、および電源3は、停電等の障害が発生した場合には、サーバ10、およびモニタ4への電力の供給を停止してしまう。
【0016】
モニタ4は、サーバ10と接続された表示装置であり、サーバ10の状態やサーバ10を操作するためのGUI(Graphic User Interface)を表示させるための表示装置である。また、キーボード5は、サーバ10に対して文字情報等を入力するためのキーボードである。また、マウス6は、サーバ10がモニタ4を介して提供するGUIにおけるカーソル操作を行うためのマウスである。
【0017】
ここで、モニタ4は、サーバ10とは別系統の電源3から電力の供給を受ける。このため、モニタ4は、停電等の障害が発生した場合は、電力の供給を受けることができず、サーバ10の状態等を表示することができないものとする。
【0018】
サーバ10とバッテリモジュール50とは、LANで接続されており、相互に通信することができる。例えば、サーバ10は、バッテリモジュール50に対して、バッテリ51の充電率の問合せを行う。すると、バッテリモジュール50は、サーバ10に対して、バッテリ51の充電率を通知する。
【0019】
また、サーバ10とバッテリモジュール50とは、電力の供給を行う電力線で接続されている。そして、サーバ10は、バッテリモジュール50に対して、電力の供給を行う。すなわち、サーバ10は、電源2がサーバ10に対して供給する電力の一部をバッテリモジュール50に対して供給する。また、バッテリモジュール50は、電源2からサーバ10に対して電力の供給が停止した場合、すなわち停電等が発生した場合は、サーバ10に対して、バッテリ51に蓄積した電力の供給を行う。
【0020】
次に、サーバ10が有する記憶装置40について説明する。記憶装置40は、サーバ10が有する記憶装置であり、サーバ10がバックアップを実行する際にサーバ10の状態のバックアップ先となる記憶装置である。また、記憶装置40は、持続時間対応情報41を記憶するとともに、記憶領域の一部をソフトウェア退避領域42として確保する。
【0021】
ここで、
図2を用いて、サーバ10が有する記憶装置40が記憶する持続時間対応情報41について説明する。
図2は、実施例1に係る持続時間対応情報について説明するための図である。
図2に示すように、持続時間対応情報41は、サーバ10の消費電力(W(Watt))と、バックアップ可能時間(秒)とを対応付けた複数のエントリを有する。
【0022】
ここで、サーバ10の消費電力とは、サーバ10がバックアップを実行する際に消費する電力である。また、バックアップ可能時間とは、サーバ10がバッテリモジュール50から供給される電力でバックアップを実行することができる時間である。すなわち、
図2に示す例では、持続時間対応情報41は、サーバ10の消費電力が400Wである際に、バックアップ可能な時間が120秒である旨を示す。また、持続時間対応情報41は、サーバ10の消費電力が300Wである際に、バックアップ可能な時間が240秒である旨を示す。
【0023】
また、持続時間対応情報41は、サーバ10の消費電力が200Wである際に、バックアップ可能な時間が360秒である旨を示す。また、持続時間対応情報41は、サーバ10の消費電力が100Wである際に、バックアップ可能な時間が780秒である旨を示す。また、持続時間対応情報41は、サーバ10の消費電力が50Wである際に、バックアップ可能な時間が1560秒である旨を示す。
【0024】
次に、記憶装置40が有するソフトウェア退避領域42について説明する。ソフトウェア退避領域42は、サーバ10が実行するOSがサーバ10の状態をバックアップする際にデータを格納するための領域である。以下、サーバ10がソフトウェア退避領域42に格納するデータについて説明する。
【0025】
例えば、サーバ10は、ハイパーバイザと呼ばれる仮想化プログラムを動作させ、ハイパーバイザ上でVM(仮想マシン:Virtual Machine)を稼働させる。そして、サーバ10は、VMにゲストOSをインストールし、ゲストOS上でアプリケーションを動作させる。そして、サーバ10は、ハイパーバイザが有するバックアップ機能を用いて、ハイパーバイザ上で動作するVM、ゲストOS、アプリケーションのデータをソフトウェア退避領域42にバックアップする。
【0026】
具体的には、サーバ10は、バックアップ時におけるサーバ10の状態を再現するために用いられるVM、ゲストOS、アプリケーションの各データをソフトウェア退避領域42に格納する。また、サーバ10は、定期的にバックアップを行っており、例えば、1時間に1回バックアップを行う。ここで、サーバ10は、バックアップに要する時間を短縮するため、2回目以降のバックアップについては、前回のバックアップ時との差分のみをバックアップする差分バックアップを実行する。
【0027】
図1に戻って、サーバ10が有する電源ユニット20、ベースボード30、外部装置接続部43について説明する。電源ユニット20は、電源2から供給される電力を取得すると、取得した電力をベースボード30や、サーバ10が有する各装置に応じた直流電圧に変換し、変換後の電力を各種装置へ供給する。また、電源ユニット20は、取得した電力の一部をベースボード30等、サーバ10が有する各種装置に供給する。また、電源ユニット20は、電源2から供給される電力の一部をバッテリモジュール50に対して供給する。
【0028】
CPU31は、各種演算処理を行う演算処理装置である。具体的には、CPU31は、サーバ10が動作させるハイパーバイザ、VM、ゲストOS、アプリケーション等のソフトウェアを実行し、動作させる。メインメモリ32は、CPU31が動作させる各ソフトウェアを実行する際に用いる記憶装置である。
【0029】
LAN制御部33は、バッテリモジュール50との通信を制御する制御装置である。例えば、LAN制御部33は、サーバ10と、
図1では記載を省略した他のサーバとの間の通信を制御する機能を有する。また、記憶装置制御部34は、記憶装置40が記憶する情報の読込や、記憶装置40に対する情報の書き込みを行う。また、外部装置接続部43は、モニタ4に表示する情報の制御や、キーボード5、マウス6からの入力を制御する。
【0030】
上述したCPU31、メインメモリ32、LAN制御部33、記憶装置制御部34は、後述するハイパーバイザや管理ソフトウェアにより、以下の処理を実行する。まず、CPU31は、所定の時間間隔で、メインメモリ32上に存在するハイパーバイザ、VM、ゲストOS、アプリケーション等のデータの差分バックアップを実行する。
【0031】
具体的には、CPU31は、前回のバックアップ時との差分となるデータを識別し、識別したデータを記憶装置制御部34に送信する。すると、記憶装置制御部34は、CPU31から受信したデータを記憶装置40のソフトウェア退避領域42に格納する。一方、CPU31は、差分バックアップに要した時間を測定し、測定した時間に基づいて、電源喪失時にシャットダウンするまでの時間を予測する。具体的には、CPU31は、ハイパーバイザがゲストOSの動作を停止し、VM、ゲストOS、アプリケーションの差分をバックアップし、その後ハイパーバイザのシャットダウンを行い、サーバ10の電源を落とすまでの時間を予測する。
【0032】
また、CPU31は、LAN制御部33を介して、バッテリモジュール50に、バッテリ51の充電率を問い合わせる。また、CPU31は、サーバ10の消費電力を識別し、識別した消費電力と対応付けられたバックアップ可能時間を持続時間対応情報41から識別する。そして、CPU31は、バッテリ51の充電率と、バックアップ可能時間との積を、バッテリモジュール50がサーバ10を動作させることができる時間とする。
【0033】
その後、CPU31は、バッテリモジュール50がサーバ10を動作させることができる時間よりも、電源喪失時にシャットダウンするまでの時間が長いか否かを判別する。そして、CPU31は、バッテリモジュール50がサーバ10を動作させることができる時間よりも、電源喪失時にシャットダウンするまでの時間が長いと判別した場合は、差分バックアップを行う時間間隔を短縮する。すなわち、CPU31は、差分バックアップを実行する頻度を上げることで、バックアップ対象となるデータ量を少なくし、電源喪失時にシャットダウンを行うまでの時間を短縮する。
【0034】
また、CPU31は、差分バックアップを行う時間間隔を短縮した結果、差分バックアップを行う時間間隔があらかじめ設定された時間よりも短くなった場合は、利用者に対して警告を通知する。すなわち、CPU31は、現在のバッテリ51が有する容量では、正常にシャットダウンできない旨を利用者に通知する。
【0035】
なお、CPU31は、LAN制御部33を介して、バッテリモジュール50から電源2が喪失した旨の通知を取得すると、シャットダウンを実行する。また、CPU31は、シャットダウンを開始する際は、LAN制御部33を介して、バッテリモジュール50に、シャットダウンを実行する旨を通知する。
【0036】
また、CPU31は、サーバ10の電源を落とす場合は、LAN制御部33を介して、バッテリモジュール50にサーバ10の電源を落とす旨を通知する。また、CPU31は、差分バックアップを行う時間間隔があらかじめ設定された時間よりも短くなった場合は、LAN制御部33を介して、バッテリモジュール50に、正常にシャットダウンできない旨を通知する。
【0037】
また、以下の説明では、バッテリモジュール50がサーバ10を動作させることができる時間を、バッテリ時間と記載する。また、以下の説明では、電源2が喪失してからシャットダウンするまでに要すると予測される時間を予測バックアップ時間と記載する。
【0038】
次に、
図3を用いて、電源ユニット20、およびバッテリモジュール50について説明する。
図3は、実施例1に係る電源ユニットとバッテリモジュールの一例を説明するための図である。
図3に示す例では、電源ユニット20は、AC(Alternating Current:交流)/DC(Direct Current:直流)変換回路21とDC/DC変換回路22を有する。また、バッテリインターフェース52は、電圧検出回路52aと放電制御回路52bを有する。
【0039】
AC/DC変換回路21は、電源2から供給された交流電流を直流電流に変換し、変換後の直流電流をDC/DC変換回路22に出力する。また、AC/DC変換回路21は、変換後の直流電流の一部をバッテリモジュール50に対して供給する。DC/DC変換回路22は、AC/DC変換回路21から入力された直流電流の電圧を、ベースボード30に応じた電圧に変換し、変換後の直流電流をベースボード30に入力する。
【0040】
なお、
図3では省略したが、DC/DC変換回路22は、ベースボード30以外にも、AC/DC変換回路21から入力された直流電流を、サーバ10が有する各装置の規格に応じた電圧の直流電流に変換し、変換後の直流電流を各装置に入力する。
【0041】
バッテリ51は、蓄電を行うバッテリである、また、電圧検出回路52aは、AC/DC変換回路21から直流電流が入力されると、入力された直流電流を用いてバッテリ51の充電を行う。また、電圧検出回路52aは、バッテリ51が満充電状態である場合は、バッテリ51の充電を行わない。また、電圧検出回路52aは、AC/DC変換回路21から入力される直流電流の電圧に基づいて、停電等、電源2の喪失を検出する。
【0042】
例えば、電圧検出回路52aは、直流電流の電圧が所定の閾値を下回った場合は、電圧が「0」となった場合には、電源2が喪失したものと判別する。そして、電圧検出回路52aは、電源2が喪失したと判別した場合は、放電制御回路52bに、サーバ10に対する電力の供給を行うよう指示する。
【0043】
放電制御回路52bは、バッテリ51に充電された電力をサーバ10に供給する。具体的には、放電制御回路52bは、電圧検出回路52aからサーバ10に対する電力の供給を行うよう指示された場合には、バッテリ51に充電された電力をDC/DC変換回路22に入力することで、サーバ10に対する電力の供給を行う。
【0044】
LAN制御部53は、サーバ10が有するLAN制御部33との通信を制御する制御部である。制御回路54は、バッテリモジュール50の各種制御を行う制御回路である。具体的には、制御回路54は、LAN制御部53を介して、バッテリ51の充電率の問合せを受付けた場合は、バッテリ51の充電率を測定し、LAN制御部53を介して、測定した充電率をベースボード30に送信する。なお、以下の説明では、バッテリ51の充電率とはパーセントで示される値であるものとする。
【0045】
また、制御回路54は、バッテリ51の充電状態や、サーバ10からの通知に基づいて、状態表示LED部55を制御し、バッテリ51の充電状態やサーバ10の状態を利用者に通知する。また、制御回路54は、電源ユニット20から供給される電力の電圧を用いて、電源2が喪失したか否かを判別し、電源2が喪失したと判別した場合は、LAN制御部53を介して、サーバ10に停電が発生した旨を通知する。なお、バッテリ51の充電率を測定する方法としては、例えば、バッテリ51が蓄電、放電を行う端子の電圧を測定する等、従来の手法を用いるものとする。
【0046】
状態表示LED部55は、サーバ10およびバッテリモジュール50の状態を表示する表示装置である。以下、
図4を用いて、状態表示LED部55の一例について説明する。
図4は、実施例1に係る状態表示LED部の一例を説明するための図である。
図4に示す例では、状態表示LED部55は、
図4中の網掛けで示すように、充電中LED、待機中LED、シャットダウン中LED、電源切断LED、警告LED、通信LEDを有する。
【0047】
ここで、充電中LEDとは、バッテリモジュール50がバッテリ51を充電中であるか否かを示すLEDである。また、待機中LEDとは、停電が発生した際にシャットダウンを待機しているか否かを示すLEDである。また、シャットダウン中LEDとは、サーバ10がハイパーバイザ、VM、ゲストOS、アプリケーションのデータを退避させてシャットダウンを実行しているか否かを示すLEDである。
【0048】
また、電源切断LEDとは、サーバ10の電源を切断しているか否かを示すLEDである。また、警告LEDとは、予測バックアップ時間がバッテリ時間よりも長いか否かを示すLEDである。また、通信LEDとは、バッテリモジュール50とサーバ10とが通信しているか否かを示すLEDである。
【0049】
制御回路54は、状態表示LED部55が有する各LEDを制御することで、利用者にサーバ10およびバッテリモジュール50の状態を通知する。例えば、制御回路54は、バッテリ51を充電中である場合は、充電中を示すLEDを点灯させる。また、制御回路54は、電圧検出回路52aが電源2の喪失を検出してから、シャットダウンを実行する旨の通知を受信するまでの間、待機中LEDを点灯させる。
【0050】
また、制御回路54は、シャットダウンを実行する旨の通知を受信した場合は、シャットダウン中LEDを点灯させる。また、制御回路54は、電源2を落とす旨の通知を受信した場合は、電源切断LEDを点灯させる。また、制御回路54は、正常にシャットダウンできない旨の通知を受信した場合は、警告LEDを点灯させる。また、制御回路54は、LAN制御部53が通信を行う際に、通信LEDを点灯させることで、通信が行われているか否かを利用者に通知する。
【0051】
次に、
図5を用いて、サーバ10が実行するハイパーバイザ、VM、ゲストOS、アプリケーション等のソフトウェアについて説明する。
図5は、実施例1に係るサーバが実行するソフトウェアを説明するための図である。なお、
図5には、サーバ10が実行するソフトウェア35について記載した。
図5に示すように、ソフトウェア35には、ハイパーバイザ37、時間計算サブルーチン38、管理ソフトウェア39が含まれる。
【0052】
また、ハイパーバイザ37上において、複数のVM35c、VM36cが稼働し、VM35c、VM36c上でゲストOS35b、ゲストOS36bが動作する。また、ゲストOS35b上でアプリケーション35aが動作し、ゲストOS36b上でアプリケーション36aが動作する。なお、時間計算サブルーチン38、および管理ソフトウェア39は、アプリケーション36aと同様に、ゲストOS36bの上で動作するプログラムであってもよい。
【0053】
ここで、ハイパーバイザ37は、管理ソフトウェア39から差分バックアップを実行する旨の指示を受信すると、差分バックアップを実行する。具体的には、ハイパーバイザ37は、アプリケーション35a、アプリケーション36a、ゲストOS35b、ゲストOS36b、VM35c、VM36cのデータをソフトウェア退避領域42に差分バックアップする。
【0054】
管理ソフトウェア39は、所定の時間間隔で、ハイパーバイザ37に差分バックアップを実行する旨の指示を発行する。また、管理ソフトウェア39は、ハイパーバイザ37が差分バックアップの開始から終了までに要した時間と、ハイパーバイザ37が差分バックアップの実行中におけるサーバ10のタスク稼働率を測定する。また、管理ソフトウェア39は、差分バックアップ実行中におけるサーバ10の消費電力を測定する。
【0055】
ここで、サーバ10のタスク稼働率とは、例えば、差分バックアップの実行中におけるCPU31の稼働率である。そして、管理ソフトウェア39は、測定した時間と稼働率との積を、電源喪失時のバックアップに要すると予測される時間、すなわち予測バックアップ時間とする。
【0056】
ここで、
図6は、予測バックアップ時間を説明するための図である。
図6には、サーバ10が差分バックアップを実行した時間を横軸とし、各差分バックアップに要した時間を縦軸としたグラフを記載した。なお、
図6の下側に示すグラフは、サーバ10が11時、12時、13時に差分バックアップを行った際に要した時間を拡大したものである。
【0057】
例えば、
図6の上側に示す例では、サーバ10は、1時間ごとに差分バックアップを実行する。ここで、
図6の下側に示すように、サーバ10は、11時に実行した差分バックアップに32秒を要した。ここで、電源喪失時には、サーバ10は、他の処理を停止し、タスク稼働率100パーセントで差分バックアップを実行する。
【0058】
そこで、管理ソフトウェア39は、差分バックアップを実行した際のタスク稼働率が70パーセントであったとすると、予測バックアップ時間を32(秒)×70/100=22(秒)と算出する。つまり、管理ソフトウェア39は、12時までに電源の喪失が発生した場合は、差分バックアップに22秒かかると予測する。
【0059】
また、12時に行った差分バックアップでは、サーバ10の稼働率が70パーセントであり、差分バックアップに30秒かかったものとする。すると、管理ソフトウェア39は、予測バックアップ時間を30(秒)×70/100=21秒とする。つまり、管理ソフトウェア39は、13時までに電源の喪失が発生した場合は、差分バックアップに21秒かかると予測する。
【0060】
次に、管理ソフトウェア39は、時間計算サブルーチン38を呼び出し、バッテリモジュール50がサーバ10を動作させる時間、すなわちバッテリ時間を算出する。その後、管理ソフトウェア39は、予測バックアップ時間がバッテリ時間よりも長いか否かを判別し、予測バックアップ時間がバッテリ時間よりも長い場合は、差分バックアップを実行する旨の指示を発行する時間間隔を短縮する。つまり、管理ソフトウェア39は、差分バックアップを実行する時間間隔を短縮する。
【0061】
また、管理ソフトウェア39は、差分バックアップを実行する時間間隔が所定の閾値よりも短いか否かを判別し、差分バックアップを実行する時間間隔が所定の閾値よりも短い場合は、モニタ4等を介して利用者にバックアップが正常に行えない旨の警告を行う。また、管理ソフトウェア39は、正常にシャットダウンできない旨の通知をバッテリモジュール50の制御回路54に発行する。
【0062】
図5に戻って、時間計算サブルーチン38は、差分バックアップを実行中のサーバ10が消費する電力と、バッテリ51の充電率とを用いて、バックアップ時間を算出する。具体的には、時間計算サブルーチン38は、管理ソフトウェア39から呼び出されると、管理ソフトウェア39が測定した消費電力と対応付けられたバックアップ可能時間を持続時間対応情報41から読み出す。また、時間計算サブルーチン38は、LAN制御部33を介してバッテリモジュール50にバッテリ51の充電率を問い合わせる。
【0063】
そして、時間計算サブルーチン38は、バッテリ51の充電率と読み出したバックアップ可能時間とを用いて、バッテリ時間を算出する。具体的には、時間計算サブルーチン38は、バッテリ51の充電率とバックアップ可能時間との積をバッテリ時間とする。その後、時間計算サブルーチン38は、バッテリ時間を管理ソフトウェア39に返し、処理を終了する。なお、時間計算サブルーチン38のバックアップ可能時間の読み出し、およびバッテリ51の充電率の問合せは、管理ソフトウェア39およびハイパーバイザ37を介して行われる。
【0064】
次に、
図7を用いて、管理ソフトウェア39が実行する処理の流れについて説明する。
図7は、実施例1に係る管理ソフトウェアが実行する処理の流れを説明するための図である。
図7に示す例では、管理ソフトウェア39は、サーバ10の起動とともに、定期バックアップの間隔を最大値に設定する(ステップS101)。
【0065】
次に、管理ソフトウェア39は、ハイパーバイザ37にバックアップを実行させる(ステップS102)。また、管理ソフトウェア39は、バックアップにかかった時間を計測する(ステップS103)。そして、管理ソフトウェア39は、バックアップにかかった時間のデータをファイルとして記憶装置40に記録する(ステップS104)。次に、管理ソフトウェア39は、バックアップにかかった時間のデータとバックアップ実行時のタスク稼動率から予測バックアップ時間を計算する(ステップS105)。
【0066】
続いて、管理ソフトウェア39は、時間計算サブルーチン38を呼び出し、バッテリ時間を算出させる(ステップS106)。そして、管理ソフトウェア39は、予測バックアップ時間がバッテリ時間よりも短いか否かを判別する(ステップS107)。ここで、管理ソフトウェア39は、予測バックアップ時間がバッテリ時間以上となる場合は(ステップS107否定)、定期バックアップの時間間隔を短縮する(ステップS108)。
【0067】
次に、管理ソフトウェア39は、定期バックアップの時間間隔があらかじめ定めた最小時間よりも短いか否かを判別する(ステップS109)。そして、管理ソフトウェア39は、定期バックアップの時間間隔があらかじめ定めた最小時間よりも短い場合は(ステップS109肯定)、オペレータに警告を出し(ステップS110)、定期バックアップの時間を待つ(ステップS111)。
【0068】
その後、管理ソフトウェア39は、ステップS102の処理を再度実行する。一方、管理ソフトウェア39は、予測バックアップ時間がバッテリ時間よりも短い場合は(ステップS107肯定)、ステップS111の処理を実行する。また、管理ソフトウェア39は、定期バックアップの時間間隔があらかじめ定めた最小時間以上である場合は(ステップS109否定)、ステップS111の処理を実行する。
【0069】
次に、
図8を用いて、時間計算サブルーチン38が実行する処理の流れについて説明する。
図8は、時間計算サブルーチンが実行する処理の流れを説明するためのフローチャートである。なお、
図8に示す処理は、
図7中ステップS106に対応する。まず、時間計算サブルーチン38は、サーバ10の消費電力を読み出す(ステップS201)。
【0070】
次に、時間計算サブルーチン38は、バックアップ可能時間を持続時間対応情報41から読み出す(ステップS202)。次に、時間計算サブルーチン38は、バッテリの充電率を呼び出しし(ステップS203)、バックアップ時間を計算する(ステップS204)。そして、時間計算サブルーチン38は、バックアップ時間をメインメモリ32に記録し、管理ソフトウェア39に処理を戻し(ステップS205)、処理を終了する。
【0071】
次に、
図9を用いて、停電が発生した際に情報処理システム1の動作について説明する。
図9は、実施例1に係る情報処理システムの動作の流れを説明するためのシーケンス図である。なお、
図9に示す例では、停電が発生した際の管理ソフトウェア39、ゲストOS35b、ハイパーバイザ37、バッテリモジュール50、状態表示LED部55の動作について記載した。
【0072】
例えば、
図9中(A)に示すように、停電が発生すると、バッテリモジュール50が停電を検出し、ハイパーバイザ37に通知する。すると、
図9中(B)に示すように、ハイパーバイザ37および管理ソフトウェア39は、停電が所定の時間継続するか監視する。そして、管理ソフトウェア39は、停電が所定の時間継続すると、
図9中(C)に示すように、ゲストOS35bを経由して、ハイパーバイザ37にシャットダウン開始を通知する。
【0073】
すると、ハイパーバイザ37は、ゲストOS35bに退避指示を発行し、ゲストOS35bを停止させる。その後、ハイパーバイザ37は、
図9中(D)に示すように、アプリケーション35a、36a、ゲストOS35b、36b、VM35c、36cのデータを退避する。すなわち、ハイパーバイザ37は、ソフトウェア35の差分バックアップを行い、データをソフトウェア退避領域42に格納する。
【0074】
その後、ハイパーバイザ37は、ハイパーバイザ37のシャットダウンを実行する。ここで、バッテリモジュール50は、
図9中(E)に示すように、停電が発生してから、ハイパーバイザ37がシャットダウンし、サーバ10の電源が落とされるまで、バッテリ51から電力を供給し、その後、スリープ状態に移行し、出力をオフにする。
【0075】
その後、
図9中(F)に示すように、停電から復旧すると、ハイパーバイザ37は、BIOS(Basic Input/Output System)を起動させ、VM35cを起動させる。この結果、起動したVM35cは、
図9中(G)において、ゲストOS35bを稼動させる。また、バッテリモジュール50は、
図9中(F)において、停電から復旧すると、バッテリ51の充電を開始する。
【0076】
なお、状態表示LED部55は、
図9中(A)において停電が検出されるまで、充電LEDを点灯させ、
図9中(B)の間、待機中LEDを点灯させる。そして、状態表示LED部55は、
図9中(C)においてハイパーバイザ37がソフトウェア35の退避を開始してから、ハイパーバイザ37がシャットダウンするまで、シャットダウンLEDを点灯させる。その後、状態表示LED部55は、電源切断LEDを点灯させる。また、
図9中(F)に示すように、停電から復旧すると、状態表示LED部55は、充電LEDを点灯する。
【0077】
[実施例1の効果]
上述したように、サーバ10は、電源喪失時にサーバ10の状態、すなわちサーバ10が実行するソフトウェア35のデータを記憶装置40にバックアップする機能を有する。また、サーバ10は、所定の時間間隔で差分バックアップを実行する。また、サーバ10は、差分バックアップに要する予測し、予測バックアップ時間がバッテリ時間よりも長いか否かを判別する。そして、サーバ10は、予測バックアップ時間がバッテリ時間よりも長い場合は、差分バックアップを実行する時間間隔を短縮する。
【0078】
このため、サーバ10は、バッテリ51の容量を削減できる。すなわち、サーバ10は、差分バックアップを定期的に行うことで、電源喪失時のバックアップにかかる時間を短くする。また、サーバ10は、電源喪失時のバックアップにかかる時間を予測し、バッテリ51がサーバ10を動作させる時間よりも予測した時間が長い場合は、差分バックアップを実行する時間間隔を短縮する。
【0079】
この結果、サーバ10は、電源喪失時の差分バックアップの対象となるデータ量を削減し、電源喪失時の差分バックアップにかかる時間を短縮する。このため、サーバ10は、バッテリ51の容量を削減しても、正常なシャットダウンを行うことができる。
【0080】
また、サーバ10は、差分バックアップにかかった時間を測定し、測定した時間に基づいて、電源喪失時の差分バックアップにかかる時間を予測する。このため、サーバ10は、電源喪失時の差分バックアップにかかる時間を正確に予測できる。この結果、サーバ10は、バッテリ51の容量を削減した際に、正常なシャットダウンを行えるか否かを正常に判別することができる。この結果、サーバ10は、ダーティーシャットダウンとなる可能性を削減できる。
【0081】
また、サーバ10は、差分バックアップにかかった時間と、差分バックアップを実行中のタスク稼動率とを測定し、測定した時間とタスク稼動率との積を電源喪失時の差分バックアップにかかる時間とする。ここで、サーバ10は、電源喪失時に差分バックアップのみを実行した場合は、バッテリ51が供給する電力で動作する時間を短縮する。このため、サーバ10は、電源喪失時に差分バックアップのみを実行した際にかかる時間を予測することができるので、バッテリ51が供給する電力で動作する時間を短縮する結果、バッテリ51の容量を削減することができる。
【0082】
また、サーバ10は、サーバ10の消費電力量と、バックアップ可能時間とを対応付けた持続時間対応情報41を記憶する。そして、サーバ10は、サーバ10が差分バックアップを実行する際に消費した電力量と対応付けられたバックアップ可能時間を持続時間対応情報41から読み出しし、読み出した時間よりも予測バックアップ時間が長いか否かを判別する。このため、サーバ10は、正常なシャットダウンを行えるか否かを正確に判別することができる。
【0083】
また、サーバ10は、持続時間対応情報41から読み出したバックアップ可能時間とバッテリ51の充電率との積をバックアップ時間とし、予測バックアップ時間がバックアップ時間よりも長いか否かを判別する。このため、サーバ10は、バッテリ51の充電率に応じたバックアップ時間内に、正常なシャットダウンを行えるか否かを正確に判別できる。
【0084】
また、サーバ10は、CPU31にハイパーバイザ37を稼動させ、ハイパーバイザ37上でVM35c、36cを稼動させる。そして、サーバ10は、ハイパーバイザ37が有するバックアップ機能を用いて、VM35c、36c、ゲストOS35b、36b、アプリケーション35a、36aの差分バックアップを実行する。このため、サーバ10は、差分バックアップに要する時間を短縮するので、バッテリ51の容量を削減できる。
【0085】
また、バッテリモジュール50は、サーバ10が差分バックアップを実行しているか否かを示す状態表示LED部55を有する。このため、バッテリモジュール50は、停電のためにモニタ4が動作しない場合にも、サーバ10による差分バックアップが正常に実行されているか否かを利用者に伝えることができる。
【0086】
また、サーバ10は、差分バックアップを実行する時間間隔が所定の値よりも短くなった場合は、正常なシャットダウンができない旨を利用者に通知する。このため、サーバ10は、現状におけるバッテリ51の容量ではダーティーシャットダウンが発生する際に、利用者に通知を行い、増設等の対策を講じさせることができる。