(57)【要約】【課題】複数の情報処理装置が共通の電源から電源供給される場合において、突入電流が当該電源の定格以内に収まり、かつ、起動時間が異なる複数のアプリケーションが所望の時刻までに起動することを、効率的に実現する。【解決手段】起動制御装置４０は、複数の情報処理装置５０が電源６０から電源供給される場合において、情報処理装置５０の起動時刻４１０を取得する起動時刻取得部４１と、情報処理装置５０が実行するアプリケーション５００の起動の完了時刻４２０を取得する完了時刻取得部４２と、起動時刻４１０と完了時刻４２０とに基づいて、アプリケーション５００の起動時間４３０を算出する算出部４３と、所望時刻４４０に対して不規則な演算を行った結果と起動時間４３０とに基づいて、起動予定時刻４４１を生成する生成部４４と、起動予定時刻４４１に情報処理装置５０を起動する起動部４５と、を備える。【選択図】      図４
2020047146.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置が共通の電源から電源供給される場合において、
前記情報処理装置の起動が開始された起動時刻を取得する起動時刻取得手段と、
前記情報処理装置によって実行されるアプリケーションの起動が完了した完了時刻を取得する完了時刻取得手段と、
前記起動時刻と前記完了時刻とに基づいて、前記アプリケーションの起動に要する起動時間を算出する算出手段と、
前記アプリケーションの起動が完了する所望時刻に対して不規則な演算を行った結果と、前記起動時間とに基づいて、起動予定時刻を生成する生成手段と、
前記起動予定時刻に前記情報処理装置を起動する起動手段と、
を備える起動制御装置。
【請求項２】
前記生成手段は、前記所望時刻に関する変更可能範囲に基づいて、前記不規則な演算を行う、
請求項１に記載の起動制御装置。
【請求項３】
前記所望時刻、及び、前記変更可能範囲は、前記情報処理装置に関するＢＩＯＳ（Basic Input/Output System）の設定画面において、前記ＢＩＯＳに入力される、
請求項２に記載の起動制御装置。
【請求項４】
前記生成手段は、乱数を用いることによって、前記所望時刻に対する前記不規則な演算を行う、
請求項１乃至請求項３のいずれか一項に記載の起動制御装置。
【請求項５】
前記算出手段は、複数の前記起動時刻と複数の前記完了時刻とに基づいて算出した複数の前記起動時間に対して統計演算を行い、
前記生成手段は、前記算出手段による前記統計演算の結果を用いて、前記起動予定時刻を生成する、
請求項１乃至請求項４のいずれか一項に記載の起動制御装置。
【請求項６】
前記算出手段は、複数の前記起動時間の平均値を算出する、
請求項５に記載の起動制御装置。
【請求項７】
前記完了時刻取得手段は、前記情報処理装置によって実行されるオペレーティングシステムが生成したシステムログを参照することによって、あるいは、前記アプリケーションから出力された情報を参照することによって、前記完了時刻を取得する、
請求項１乃至請求項６のいずれか一項に記載の起動制御装置。
【請求項８】
前記完了時刻取得手段は、前記情報処理装置によって実行されるエージェントソフトウェアによって、あるいは、前記アプリケーションによって実現される、
請求項１乃至請求項７のいずれか一項に記載の起動制御装置。
【請求項９】
複数の第一の情報処理装置が共通の電源から電源供給される場合において、
第二の情報処理装置によって、
前記第一の情報処理装置の起動が開始された起動時刻を取得し、
前記第一の情報処理装置によって実行されるアプリケーションの起動が完了した完了時刻を取得し、
前記起動時刻と前記完了時刻とに基づいて、前記アプリケーションの起動に要する起動時間を算出し、
前記アプリケーションの起動が完了する所望時刻に対して不規則な演算を行った結果と、前記起動時間とに基づいて、起動予定時刻を生成し、
前記起動予定時刻に前記第一の情報処理装置を起動する、
起動制御方法。
【請求項１０】
複数の情報処理装置が共通の電源から電源供給される場合において、
前記情報処理装置の起動が開始された起動時刻を取得する起動時刻取得処理と、
前記情報処理装置によって実行されるアプリケーションの起動が完了した完了時刻を取得する完了時刻取得処理と、
前記起動時刻と前記完了時刻とに基づいて、前記アプリケーションの起動に要する起動時間を算出する算出処理と、
前記アプリケーションの起動が完了する所望時刻に対して不規則な演算を行った結果と、前記起動時間とに基づいて、起動予定時刻を生成する生成処理と、
前記起動予定時刻に前記情報処理装置を起動する起動処理と、
をコンピュータに実行させるための起動制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、情報処理装置を起動する時刻を制御する技術に関する。
【背景技術】
【０００２】
近年、サーバ装置等の情報処理装置は、省スペース等のために、例えばブレードサーバ装置等のように、複数の装置を１つのラックに搭載することが多い。このようなラックに搭載される複数のサーバ装置は、通常、ラックに搭載された電源（以下、「ラックの電源」と略記する場合がある）を共有している。そして、これらの装置の電力仕様は、そのラックの電源の定格電流をふまえて設計されている。
【０００３】
しかしながら、このようなラックに搭載されている複数の装置が一斉に起動した（電源オンされた）場合、突入電流（始動電流）が、ラックの電源の許容値を超えることによって、ラックに搭載されている装置の一部が起動できなくなる場合がある。したがって、このような突入電流による問題を回避可能な、情報処理装置の起動制御技術が期待されている。
【０００４】
このような技術に関連する技術として、特許文献１には、管理者によって起動基準時刻と起動時刻範囲を設定可能なようにしたサーバ装置が開示されている。このサーバ装置は、設定された起動時刻範囲において乱数を発生させることによってランダムにシフト時間を決定し、設定された起動基準時刻をシフト時間によりシフトさせた時刻を起動時刻として設定する。そして、このサーバ装置は、シャットダウンされた状態において、時刻が起動時刻に至るのに応じて、自装置を起動するように動作する。これらの機能は、ＢＩＯＳ（Basic Input/Output System）に実装される。
【０００５】
また、特許文献２には、メインスイッチが操作された後、複数の装置の夫々において、ランダムな時間経過後に自装置の電源を投入するようにした電源投入システムが開示されている。このシステムでは、各装置は、タイマを用いてランダムな時間の計時を行い、このタイマによる計時後に電流値を測定する。そして各装置は、過大電流が流れている場合には、再度ランダムな時間の計時を行うという動作を繰返し、自装置の電源を投入する。
【０００６】
また、特許文献３には、管理サーバが、端末の電源投入から端末の起動完了までの起動時間を複数の端末について各々取得するようにした電源制御方法が開示されている。この方法では、管理サーバは、ユーザが端末の設置位置に到着する到着時刻に合わせて端末の起動が完了するように、ユーザの到着時刻及び端末の起動時間に基づいて、端末の電源投入時刻を制御する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−０２５７４６号公報
【特許文献２】特開平１０−０３１５３６号公報
【特許文献３】特開２０１７−００４１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
近年、消費電力を削減するために、例えば、サービスを提供する時間帯以外は、サーバ装置が起動されていない（電源オフした）状態にしておき、サービスを提供する時間帯になる前にサーバ装置を起動する（電源オンする）というような運用形態を採用する場合がある。サービスを提供する時間帯は、一般的に、そのサービスの内容にかかわらず、共通した時間帯（例えば、一般的な社会活動が営まれる朝から夕方までの時間帯等）である傾向がある。したがって、電源を共有する複数のサーバ装置が起動する時刻が近くなる傾向があることから、上述した突入電流に係る問題を回避する必要がある。
【０００９】
また、提供するサービスを実現する、各サーバ装置が実行するアプリケーション（ソフトウェア）の起動（即ち、アプリケーションを実行することにより提供されるサービスが利用可能な状態になるまで）に要する時間（起動時間）は、一般的にアプリケーション毎に異なる。従って、サービスの提供を開始したい時刻（所望時刻）に確実にサービスの提供を開始できるようにするためには、アプリケーションの起動時間を考慮した、サーバ装置の起動制御も合わせて行う必要がある。
【００１０】
以上のことから、様々なサービスを提供する（様々なアプリケーションを実行する）複数のサーバ装置を、共有電源を備えるラックに搭載する場合において、上述した突入電流に係る問題を回避するとともに、アプリケーションの起動時間を考慮したサーバ装置の起動制御を行うことが求められる。このようなサーバ装置の起動制御は、例えば、各アプリケーションの起動時間を把握したサーバ装置の運用管理者が、各サーバ装置を起動する時刻（起動時刻）が分散するように設定することによって実現することは可能である。
【００１１】
しかしながら、管理対象であるサーバ装置やアプリケーションの数が膨大である場合、このような運用管理者の手作業による起動時刻の設定作業は、運用コストの面から、現実的ではない。即ち、突入電流に係る問題を回避するとともに、アプリケーションの起動時間を考慮したサーバ装置の起動制御を効率的に行うことが課題である。特許文献１乃至３が示す技術は、このような課題を解決するのに十分であるとは言えない。本願発明の主たる目的は、この課題を解決する起動制御装置等を提供することである。
【課題を解決するための手段】
【００１２】
本願発明の一態様に係る起動制御装置は、複数の情報処理装置が共通の電源から電源供給される場合において、前記情報処理装置の起動が開始された起動時刻を取得する起動時刻取得手段と、前記情報処理装置によって実行されるアプリケーションの起動が完了した完了時刻を取得する完了時刻取得手段と、前記起動時刻と前記完了時刻とに基づいて、前記アプリケーションの起動に要する起動時間を算出する算出手段と、前記アプリケーションの起動が完了する所望時刻に対して不規則な演算を行った結果と、前記起動時間とに基づいて、起動予定時刻を生成する生成手段と、前記起動予定時刻に前記情報処理装置を起動する起動手段と、を備える。
【００１３】
上記目的を達成する他の見地において、本願発明の一態様に係る起動制御方法は、複数の第一の情報処理装置が共通の電源から電源供給される場合において、第二の情報処理装置によって、前記第一の情報処理装置の起動が開始された起動時刻を取得し、前記第一の情報処理装置によって実行されるアプリケーションの起動が完了した完了時刻を取得し、前記起動時刻と前記完了時刻とに基づいて、前記アプリケーションの起動に要する起動時間を算出し、前記アプリケーションの起動が完了する所望時刻に対して不規則な演算を行った結果と、前記起動時間とに基づいて、起動予定時刻を生成し、前記起動予定時刻に前記情報処理装置を起動する。
【００１４】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る起動制御プログラムは、複数の情報処理装置が共通の電源から電源供給される場合において、前記情報処理装置の起動が開始された起動時刻を取得する起動時刻取得処理と、前記情報処理装置によって実行されるアプリケーションの起動が完了した完了時刻を取得する完了時刻取得処理と、前記起動時刻と前記完了時刻とに基づいて、前記アプリケーションの起動に要する起動時間を算出する算出処理と、前記アプリケーションの起動が完了する所望時刻に対して不規則な演算を行った結果と、前記起動時間とに基づいて、起動予定時刻を生成する生成処理と、前記起動予定時刻に前記情報処理装置を起動する起動処理と、をコンピュータに実行させるためのプログラムである。
【００１５】
更に、本願発明は、係る起動制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１６】
本願発明は、複数の情報処理装置が共通の電源から電源供給される場合において、突入電流が当該電源の定格以内に収まり、かつ、起動時間が異なる複数のアプリケーションが所望の時刻までに起動することを、効率的に実現することを可能とする。
【図面の簡単な説明】
【００１７】
【図１】本願発明の第１の実施形態に係る起動制御システム１の構成を概念的に示すブロック図である。
【図２】本願発明の第１の実施形態に係る起動制御システム１が、サーバ装置１０が起動する際に、起動時間１２２を算出する動作を示すフローチャートである。
【図３】本願発明の第１の実施形態に係る起動制御システム１が、起動されていない状態にあるサーバ装置１０を起動する動作を示すフローチャートである。
【図４】本願発明の第２の実施形態に係る起動制御装置４０の構成を概念的に示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１９】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係る起動制御システム１の構成を概念的に示すブロック図である。起動制御システム１は、大別して、複数のサーバ装置（起動制御装置）１０、管理端末装置２０、及び、電源３０を含んでいる。
【００２０】
複数のサーバ装置１０及び電源３０は、ラック（不図示）に搭載されており、複数のサーバ装置１０は、いずれも電源３０から電源供給されている。そして、本実施形態に係る複数のサーバ装置１０が一斉に（同等のタイミングに）起動（電源オン）した際に発生する突入電流は、電源３０の定格を超える可能性があることとする。
【００２１】
管理端末装置２０は、サーバ装置１０の管理者が、サーバ装置１０に対して動作環境等を設定する、あるいはサーバ装置１０から出力された情報を確認する際に使用する、例えばパーソナルコンピュータ等の情報処理装置である。管理端末装置２０は、複数のサーバ装置１０と通信可能に接続されている。尚、起動制御システム１は、複数のサーバ装置１０の個々に対して異なる管理端末装置２０を有してもよい。
【００２２】
サーバ装置１０は、ＣＰＵ（Central Processing Unit）１１、ＢＩＯＳ用メモリ１２、ＢＭＣ（Baseboard Management Controller）１３、主記憶１４、Ｉ／Ｏ(Input/Output)コントローラ１５、及び、入出力装置１６を備えている。
【００２３】
ＣＰＵ１１は、主記憶１４及びＩ／Ｏコントローラ１５の間でデータ（情報）を入出力する。ＣＰＵ１１は、また、Ｉ／Ｏコントローラ１５を介して、ＢＩＯＳ用メモリ１２、ＢＭＣ１３、及び、入出力装置１６との間でデータを入出力することが可能である。
【００２４】
入出力装置１６は、例えば、キーボード、マウス、ディスプレイ等の、ユーザインタフェース機能を備えた装置である。入出力装置１６は、あるいは、ＣＤ（Compact Disc）／ＤＶＤ（Digital Versatile Disc）ドライブであり、記録媒体１６０からのデータの読み出しや記録媒体１６０へのデータの書き込みを行なう装置である。
【００２５】
サーバ装置１０は、後述する通り、自装置、及び、同じラックに搭載された他のサーバ装置１０が起動する際に発生する突入電流が、電源３０の定格内に収まるように、自装置を起動するタイミングが他のサーバ装置１０が起動するタイミングと異なる（ずれる）ように制御する、起動制御装置としての機能を備える。そしてサーバ装置１０は、係る起動制御装置として動作する場合、後述する通り、実行するアプリケーション１１４が所望時刻１２３までに起動するように、自装置を制御する。本願では、以降、本実施形態に係るサーバ装置１０が備える起動制御装置としての機能について、その詳細を説明する。
【００２６】
ＢＭＣ１３は、サーバ装置１０に関する構成制御や障害処理などのシステム管理全般を行ない、また、サーバ装置１０の起動（電源オン）を制御する。ＢＭＣ１３は、サーバ装置１０のメイン電源がオフされた状態においても、個別に電源供給を受けることによって動作可能であることとする。本実施形態の説明では、以降、サーバ装置１０の当該メイン電源をオンすることが、サーバ装置１０を起動することを表すこととする。また、本願では以降、当該メイン電源をオンあるいはオフすることを、単に、電源オンする、あるいは、電源オフすると称する場合がある。
【００２７】
ＢＭＣ１３は、ＢＭＣ１３による制御によってサーバ装置１０の起動が開始した起動時刻１２０を取得する起動時刻取得処理１３０を実行する。但しＢＭＣ１３は、計時機能を備えることとする。ＢＭＣ１３は、また、サーバ装置１０を起動する起動処理１３１を実行する。但し、起動時刻取得処理１３０及び起動処理１３１をＢＭＣ１３に実行させるプログラムは、例えばＢＭＣ１３が備えるメモリ（不図示）等に格納されていることとする。尚、本願では以降、ＢＭＣ１３が起動時刻取得処理１３０あるいは起動処理１３１を実行することによって行なう動作に関して、起動時刻取得処理１３０あるいは起動処理１３１を、その動作を行なう主体として記載することとする。
【００２８】
起動時刻取得処理１３０は、取得した起動時刻１２０を、ＢＩＯＳ用メモリ１２に格納する。
【００２９】
ＣＰＵ１１は、サーバ装置１０の起動が開始されたのち、ＢＩＯＳ１１０を、サーバ装置１０の管理者による入力操作を受けることなく自動で実行する。尚、本願では以降、「サーバ装置１０の管理者による入力操作を受けることなく自動で実行する」ことを、「自動で実行する」と略記する場合がある。ＢＩＯＳ１１０の本体（プログラム）は、ＢＩＯＳ用メモリ１２に格納されており、ＣＰＵ１１は、ＢＩＯＳ用メモリ１２からＢＩＯＳ１１０を読み込むことによって、ＢＩＯＳ１１０を実行する。ＢＩＯＳ用メモリ１２は、ＢＩＯＳ１１０が使用する情報を格納しており、具体的には、上述した起動時刻１２０の他、後述する、完了時刻１２１、起動時間１２２、所望時刻１２３、シフト可能時間１２４、及び、起動予定時刻１２５を格納している。尚、ＢＩＯＳ用メモリ１２は、不揮発性のメモリであることとする。
【００３０】
ＣＰＵ１１はＢＩＯＳ１１０を実行することによって、後述する算出処理１１１、及び、生成処理１１２を実行する。即ち、ＢＩＯＳ１１０は、ＣＰＵ１１が算出処理１１１、及び、生成処理１１２を実行するためのプログラムを含んでいる。尚、本願では以降、ＣＰＵ１１が算出処理１１１、及び、生成処理１１２を実行することによって行なう動作に関して、算出処理１１１、及び、生成処理１１２を、その動作を行なう主体として記載することとする。
【００３１】
ＣＰＵ１１は、サーバ装置１０の起動が開始されたのち、主記憶１４に本体（プログラム）が格納されているＯＳ（Operating System）１１３を自動で実行する。
【００３２】
ＣＰＵ１１は、ＯＳ１１３を実行したのち、実行中のＯＳ１１３によって提供される環境において、アプリケーション１１４、及び、エージェント１１６を自動で実行する。
【００３３】
アプリケーション１１４は、ユーザに対してあるサービス（例えば業務を支援する機能等）を提供することを実現するプログラムである。ＣＰＵ１１は、複数のアプリケーション１１４を実行してもよい。また、アプリケーション１１４は、サーバ装置１０毎に異なったアプリケーションでもよい。ＯＳ１１３は、アプリケーション１１４の実行において発生するイベントを表すシステムログ１１５を生成する機能を備える。即ち、システムログ１１５は、例えば、アプリケーション１１４の起動が完了した時刻等を含んでいる。
【００３４】
ＣＰＵ１１はエージェント１１６を実行することによって、後述する完了時刻取得処理１１７を実行する。但し、エージェント１１６は、アプリケーション１１４の実行状態を監視する機能やＢＩＯＳ１１０と通信する機能を備えるプログラムである。尚、本願では以降、ＣＰＵ１１が完了時刻取得処理１１７を実行することによって行なう動作に関して、完了時刻取得処理１１７を、その動作を行なう主体として記載することとする。
【００３５】
完了時刻取得処理１１７は、システムログ１１５を参照することによって、アプリケーション１１４の起動が完了した（アプリケーション１１４によるサービスの提供を開始できる状態になった）完了時刻１２１を取得する。完了時刻取得処理１１７は、あるいは、アプリケーション１１４から直接、完了時刻１２１を取得してもよい。完了時刻取得処理１１７は、取得した完了時刻１２１を、ＢＩＯＳ用メモリ１２に格納する。
【００３６】
ＣＰＵ１１により実行される算出処理１１１は、ＢＩＯＳ用メモリ１２に格納されている完了時刻１２１と起動時刻１２０との差分が表す、アプリケーション１１４の起動時間を算出し、その算出結果をＢＩＯＳ用メモリ１２に格納する。尚、アプリケーション１１４の起動時間の算出結果は、過去に算出された分も含めてＢＩＯＳ用メモリ１２に格納されていることとする。
【００３７】
算出処理１１１は、これまでのアプリケーション１１４の起動時間に関して統計演算を行い（例えば平均値を算出し）、その算出結果を表す起動時間１２２をＢＩＯＳ用メモリ１２に格納する。尚、算出処理１１１が行う統計演算は、平均値の算出に限定されない。算出処理１１１は、例えば、これまでのアプリケーション１１４の起動時間に関して標準偏差を算出し、その標準偏差を用いた統計演算を行ってもよい。
【００３８】
次に、本実施形態に係る起動制御システム１が、起動されていない状態にあるサーバ装置１０を次に起動する起動予定時刻１２５を生成する動作について説明する。
【００３９】
管理端末装置２０は、ＢＩＯＳセットアップメニュー画面（設定画面）２００に対する、サーバ装置１０の管理者による入力操作によって、所望時刻１２３及びシフト可能時間１２４を入力される。ＢＩＯＳセットアップメニュー画面２００を介した情報の入出力を制御する機能は、管理端末装置２０が備えてもよいし、サーバ装置１０が備えてもよい。上述した所望時刻１２３は、当該管理者がアプリケーション１１４の起動を完了したい（即ち、アプリケーション１１４によるサービスの提供を開始したい）時刻であることとする。そして、シフト可能時間１２４は、所望時刻１２３に関する変更可能範囲（サーバ装置１０が実際にサービスの提供を開始する時刻が、所望時刻１２３からシフトすることを許容可能な範囲）を表すこととする。
【００４０】
サーバ装置１０は、当該管理者によって入力された所望時刻１２３及びシフト可能時間１２４を、管理端末装置２０から受信し、受信した所望時刻１２３及びシフト可能時間１２４を、ＢＩＯＳ用メモリ１２に格納する。
【００４１】
ＣＰＵ１１により実行される生成処理１１２は、シフト可能時間１２４に対して、乱数（擬似乱数）を用いた不規則な演算を行い、その結果と所望時刻１２３と起動時間１２２とに基づいて起動予定時刻１２５を生成する。但し、生成処理１１２は、乱数を生成する機能を備えることとする。
【００４２】
生成処理１１２は、より具体的には、例えば、所望時刻１２３から起動時間１２２を減算した時刻Ａを算出する。生成処理１１２は、−１以上１以下の範囲において乱数Ｂを生成する。そして、生成処理１１２は、時刻Ａに対して、シフト可能時間１２４と乱数Ｂとの積を加算した時刻を、起動予定時刻１２５として生成する。
【００４３】
例えば、所望時刻１２３が、ある日の９：００（９時０分）、シフト可能時間１２４が５分、起動時間１２２が１０分であることとする。そして、生成処理１１２によって生成された乱数Ｂが０．８であったとする。この場合、生成処理１１２は、「９：００−１０分＝８：５０」を時刻Ａとして算出する。そして、生成処理１１２は、「８：５０＋５分ｘ０．８＝８：５４」を起動予定時刻１２５として生成する。但し、上述した数式において、「＋」は加算、「−」は減算、「ｘ」は乗算を表す演算子である。
【００４４】
生成処理１１２は、生成した起動予定時刻１２５を、ＢＩＯＳ用メモリ１２に格納するとともにＢＭＣ１３に通知する。
【００４５】
ＢＭＣ１３により実行される起動処理１３１は、現在時刻が起動予定時刻１２５に到達したか監視する。起動処理１３１は、現在時刻が起動予定時刻１２５に到達した場合、起動されていない（電源がオフされた）状態にあるサーバ装置１０を起動する。上述した例の場合、起動処理１３１は、８時５４分にサーバ装置１０を起動し、起動時間１２２が示す１０分後の９時４分に、アプリケーション１１４の起動を完了する。即ち、この場合、サーバ装置１０は、所望時刻１２３が示す９時０分にシフト可能時間１２４が示す５分を加えた９時５分の１分前に、アプリケーション１１４によるサービスの提供を開始することができる。
【００４６】
次に、図２及び図３のフローチャートを参照して、本実施形態に係る起動制御システム１の動作（処理）について詳細に説明する。
【００４７】
図２は、本実施形態に係る起動制御システム１が、サーバ装置１０が起動する際に、起動時間１２２を算出する動作を示すフローチャートである。
【００４８】
ＢＭＣ１３により実行される起動時刻取得処理１３０は、サーバ装置１０の起動が開始した起動時刻１２０を取得し、取得した起動時刻１２０をＢＩＯＳ用メモリ１２に格納する（ステップＳ１０１）。ＣＰＵ１１は、ＢＩＯＳ１１０、及び、ＯＳ１１３を実行し、実行中のＯＳ１１３によって提供される環境において、アプリケーション１１４、及び、エージェント１１６を起動する（ステップＳ１０２）。
【００４９】
ＣＰＵ１１により実行される完了時刻取得処理１１７は、ＯＳ１１３によって生成されるシステムログ１１５を監視することによって、アプリケーション１１４の起動が完了したか確認する（ステップＳ１０３）。
【００５０】
アプリケーション１１４の起動が完了していない場合（ステップＳ１０４でＮｏ）、処理はステップＳ１０３へ戻る。アプリケーション１１４の起動が完了した場合（ステップＳ１０４でＹｅｓ）、完了時刻取得処理１１７は、アプリケーション１１４の起動が完了した完了時刻１２１を取得し、取得した完了時刻１２１をＢＩＯＳ用メモリ１２に格納する（ステップＳ１０５）。
【００５１】
ＣＰＵ１１により実行される算出処理１１１は、完了時刻１２１と起動時刻１２０との差分が表す、アプリケーション１１４の起動時間を算出し、その算出結果をＢＩＯＳ用メモリ１２に格納する（ステップＳ１０５）。算出処理１１１は、これまでのアプリケーション１１４の起動時間の平均値を算出し、その算出結果を表す起動時間１２２をＢＩＯＳ用メモリ１２に格納し（ステップＳ１０７）、全体の処理は終了する。
【００５２】
図３は、本実施形態に係る起動制御システム１が、起動されていない状態にあるサーバ装置１０を起動する動作を示すフローチャートである。
【００５３】
管理端末装置２０は、ＢＩＯＳセットアップメニュー画面２００を介して、サーバ装置１０の管理者によって、所望時刻１２３及びシフト可能時間１２４を入力される（ステップＳ２０１）。サーバ装置１０は、所望時刻１２３及びシフト可能時間１２４を、管理端末装置２０から受信し、受信した所望時刻１２３及びシフト可能時間１２４を、ＢＩＯＳ用メモリ１２に格納する（ステップＳ２０２）。
【００５４】
ＣＰＵ１１により実行される生成処理１１２は、シフト可能時間１２４に対して、乱数を用いた不規則な演算を行い、その結果と所望時刻１２３と起動時間１２２とに基づいて起動予定時刻１２５を生成する（ステップＳ２０３）。生成処理１１２は、生成した起動予定時刻１２５を、ＢＩＯＳ用メモリ１２に格納するとともに、ＢＭＣ１３に通知する（ステップＳ２０４）。
【００５５】
ＢＭＣ１３は、管理端末装置２０を介したサーバ装置１０の管理者による指示に応じて、サーバ装置１０を電源オフする（ステップＳ２０５）。ＢＭＣ１３により実行される起動処理１３１は、現在時刻が起動予定時刻１２５に到達したか監視する（ステップＳ２０６）。
【００５６】
現在時刻が起動予定時刻１２５に到達していない場合（ステップＳ２０７でＮｏ）、処理はステップＳ２０６へ戻る。現在時刻が起動予定時刻１２５に到達した場合（ステップＳ２０７でＹｅｓ）、起動処理１３１は、サーバ装置１０を起動し（ステップＳ２０８）、全体の処理は終了する。
【００５７】
本実施形態に係るサーバ装置（起動制御装置）１０は、複数の情報処理装置が共通の電源から電源供給される場合において、突入電流が当該電源の定格以内に収まり、かつ、起動時間が異なる複数のアプリケーションが所望の時刻までに起動することを、効率的に実現することができる。その理由は、サーバ装置１０は、アプリケーション１１４の起動に要する起動時間１２２を算出し、入力された所望時刻１２３に対して乱数等を用いた不規則な演算を行った結果と、起動時間１２２とに基づいて、起動予定時刻１２５を生成し、生成した起動予定時刻１２５にサーバ装置１０を起動するからである。
【００５８】
以下に、本実施形態に係るサーバ装置１０によって実現される効果について、詳細に説明する。
【００５９】
様々なサービスを提供する複数のサーバ装置を、共有電源を備えるラックに搭載する場合において、突入電流に係る問題を回避するとともに、アプリケーションの起動時間を考慮したサーバ装置の起動制御を行うことが求められる。このようなサーバ装置の起動制御は、例えば、各アプリケーションの起動時間を把握したサーバ装置の運用管理者が、各サーバ装置を起動する起動時刻を互いに異なるように設定することによって実現することは可能である。しかしながら、管理対象であるサーバ装置やアプリケーションの数が膨大である場合、このような運用管理者の手作業による起動時刻の設定作業は、運用コストの面から、現実的ではない。
【００６０】
このような問題に対して、本実施形態に係るサーバ装置（起動制御装置）１０は、起動時刻取得処理１３０と、完了時刻取得処理１１７と、算出処理１１１と、生成処理１１２と、起動処理１３１とを実行することによって、例えば図１乃至図３を参照して上述した通り動作する。即ち、複数のサーバ装置１０（情報処理装置）が共通の電源３０から電源供給される場合において、起動時刻取得処理１３０は、サーバ装置１０の起動が開始された起動時刻１２０を取得する。完了時刻取得処理１１７は、サーバ装置１０によって実行されるアプリケーション１１４の起動が完了した完了時刻１２１を取得する。算出処理１１１は、起動時刻１２０と完了時刻１２１とに基づいて、アプリケーション１１４の起動に要する起動時間１２２を算出する。生成処理１１２は、アプリケーション１１４の起動が完了する所望時刻１２３に対して不規則な演算を行った結果と、起動時間１２２とに基づいて、起動予定時刻１２５を生成する。そして起動処理１３１は、起動予定時刻１２５にサーバ装置１０を起動する。
【００６１】
即ち、本実施形態に係るサーバ装置（起動制御装置）１０は、算出したアプリケーション１１４の起動時間１２２をふまえて、アプリケーション１１４の起動が完了する時刻が、所望時刻１２３の近辺において、複数のサーバ装置１０の間で分散するように、サーバ装置１０の起動予定時刻１２５を設定する。これにより、本実施形態に係るサーバ装置１０は、突入電流が当該電源の定格以内に収まり、かつ、起動時間が異なる複数のアプリケーションが所望の時刻までに起動することを、効率的に実現することができる。
【００６２】
また、本実施形態に係る生成処理１１２は、所望時刻１２３に関するシフト可能時間１２４（変更可能範囲）に基づいて、不規則な演算を行う。これにより、本実施形態に係るサーバ装置１０は、アプリケーション１１４の起動が完了する時刻が、所望時刻１２３からあまり離れた時刻にならないように、起動予定時刻１２５を設定することができる。尚、生成処理１１２は、シフト可能時間１２４を用いずに、所望時刻１２３に対する不規則な演算を行うことにより、処理内容をより簡素化してもよい。
【００６３】
また、本実施形態に係る算出処理１１１は、複数の起動時刻１２０と複数の完了時刻１２１とに基づいて算出した複数の起動時間に対して統計演算（例えば平均値の算出）を行うことによって、起動時間１２２を算出する。これにより、本実施形態に係るサーバ装置１０は、起動時間１２２を高い精度で算出するので、上述した効果を実現する精度を高めることができる。
【００６４】
また、本実施形態に係る算出処理１１１、生成処理１１２、完了時刻取得処理１１７、起動時刻取得処理１３０、及び、起動処理１１３が実現する機能は、上述した本実施形態が示す構成以外の構成によっても実現可能である。
【００６５】
例えば、算出処理１１１及び生成処理１１２は、ＢＩＯＳ１１０とは異なるプログラムによって実現されてもよい。あるいは例えば、完了時刻取得処理１１７は、エージェント１１６ではなく、アプリケーション１１４によって実現されてもよい。その場合、アプリケーション１１４は、例えばＡＰＩ（Application Programming Interface）を通じて、完了時刻１２１をＢＩＯＳ１１０に通知すればよい。
【００６６】
あるいは例えば、起動時刻取得処理１３０、及び、起動処理１１３は、ＢＭＣ１３とは異なる構成によって実行されてもよい。但し、起動時刻取得処理１３０、及び、起動処理１１３を実行する構成は、サーバ装置１０のメイン電源がオフされた状態においても、個別に電源供給を受けることによって動作可能であることを前提とする。
【００６７】
あるいは例えば、サーバ装置１０は、算出処理１１１、生成処理１１２、完了時刻取得処理１１７、起動時刻取得処理１３０、及び、起動処理１３１と同等の機能を実現するハードウェアである算出部、生成部、完了時刻取得部、起動時刻取得部、及び、起動部を備えてもよい。あるいは例えば、起動制御システム１は、算出部、生成部、完了時刻取得部、起動時刻取得部、及び、起動部を備えた、サーバ装置１０を外部から制御する起動制御装置を有してもよい。
【００６８】
また、本実施形態に係る算出処理１１１、生成処理１１２、完了時刻取得処理１１７、起動時刻取得処理１３０、及び、起動処理１３１を実現する、ソフトウェア（コンピュータプログラム）の供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体１６０を介して情報処理装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体１６０によって構成されると捉えることができる。
【００６９】
＜第２の実施形態＞
図４は、本願発明の第２の実施形態に係る起動制御装置４０の構成を概念的に示すブロック図である。
【００７０】
本実施形態に係る起動制御装置４０が制御対象とする複数の情報処理装置５０−１乃至５０−ｎ（ｎは２以上の任意の整数）は、共通の電源６０から電源供給されることとする。起動制御装置４０は、起動時刻取得部４１、完了時刻取得部４２、算出部４３、生成部４４、及び、起動部４５を備えている。
【００７１】
起動時刻取得部４１は、情報処理装置５０−ｉ（ｉは１乃至ｎのいずれかの整数）の起動が開始された起動時刻４１０を取得する。
【００７２】
完了時刻取得部４２は、情報処理装置５０−ｉによって実行されるアプリケーション５００−ｉの起動が完了した完了時刻４２０を取得する。
【００７３】
算出部４３は、起動時刻４１０と完了時刻４２０とに基づいて、アプリケーション５００−ｉの起動に要する起動時間４３０を算出する。
【００７４】
生成部４４は、アプリケーション５００−ｉの起動が完了する所望時刻４４０に対して不規則な演算を行った結果と、起動時間４３０とに基づいて、起動予定時刻４４１を生成する。
【００７５】
起動部４５は、起動予定時刻４４１に情報処理装置５０−ｉを起動する。
【００７６】
本実施形態に係る起動制御装置４０は、複数の情報処理装置が共通の電源から電源供給される場合において、突入電流が当該電源の定格以内に収まり、かつ、起動時間が異なる複数のアプリケーションが所望の時刻までに起動することを、効率的に実現することができる。その理由は、起動制御装置４０は、アプリケーション５００−ｉの起動に要する起動時間４３０を算出し、入力された所望時刻４４０に対して乱数等を用いた不規則な演算を行った結果と、起動時間４３０とに基づいて、起動予定時刻４４１を生成し、生成した起動予定時刻４４１に情報処理装置５０−ｉを起動するからである。
【００７７】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００７８】
１    起動制御システム
１０    サーバ装置
１１    ＣＰＵ
１１０    ＢＩＯＳ
１１１    算出処理
１１２    生成処理
１１３    ＯＳ
１１４    アプリケーション
１１５    システムログ
１１６    エージェント
１１７    完了時刻取得処理
１２    ＢＩＯＳ用メモリ
１２０    起動時刻
１２１    完了時刻
１２２    起動時間
１２３    所望時刻
１２４    シフト可能時間
１２５    起動予定時刻
１３    ＢＭＣ
１３０    起動時刻取得処理
１３１    起動処理
１４    主記憶
１５    Ｉ／Ｏコントローラ
１６    入出力装置
１６０    記録媒体
２０    管理端末装置
２００    ＢＩＯＳセットアップメニュー画面
３０    電源
４０    起動制御装置
４１    起動時刻取得部
４１０    起動時刻
４２    完了時刻取得部
４２０    完了時刻
４３    算出部
４３０    起動時間
４４    生成部
４４０    所望時刻
４４１    起動予定時刻
５０−ｉ    情報処理装置
５００−ｉ    アプリケーション
６０    電源
【図１】
2020047146.tif 000003
【図２】
2020047146.tif 000004
【図３】
2020047146.tif 000005
【図４】
2020047146.tif 000006