(57)【特許請求の範囲】
【請求項１】
情報処理装置としての機能を提供し、時刻を計時するタイムサーバから前記タイムサーバの時刻に同期した時刻情報を取得する機能を有するメインシステムと、前記メインシステムの管理を行なうサブシステムとを有する情報処理装置において、
前記メインシステムは、前記サブシステムからの起動モードの指示に応じて、情報処理装置としての機能を提供するための通常起動モード、又は前記タイムサーバから前記タイムサーバの時刻に同期した時刻情報を取得する特定モードのいずれかの起動モードで起動する機能を有し、
前記サブシステムは、停止中の前記メインシステムを起動させる場合に、前記停止中のメインシステムを前記特定モードで起動させ、
前記サブシステムが、前記特定モードで起動した前記メインシステムが取得した前記タイムサーバの時刻に同期した時刻情報を用いて、前記サブシステムが制御する時計デバイスから得られる管理用システム時刻を補正した後に、補正後の前記管理用システム時刻を前記メインシステムの起動を行うための初期時刻として前記メインシステムを通常起動モードで再度起動させる
ことを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記情報処理装置は、タイムサーバにアクセス可能なメインシステムを含む複数のメインシステムを有し、
前記サブシステムは、前記メインシステムの時刻と、前記管理用システム時刻との差分を、前記メインシステムに対応した時刻差分情報として保持し、
前記サブシステムが停止中のメインシステムを起動させる際に、前記タイムサーバに時刻が同期したメインシステムが稼動している場合には、前記サブシステムは、前記停止中のメインシステムを前記特定モードで起動させることなく、前記タイムサーバと同期して稼動中のメインシステムに対応した時刻差分情報を用いて、前記サブシステムの管理用システム時刻を補正し、
補正した前記管理用システム時刻を初期時刻として、前記サブシステムが前記停止中のメインシステムを通常起動モードで起動させる
ことを特徴とする情報処理装置。
【請求項３】
請求項１又は２のいずれかに記載の情報処理装置であって、
起動中のメインシステムが一定期間以上の間、前記タイムサーバから前期タイムサーバの時刻に同期した時刻情報を取得していない状態で、前記サブシステムが停止中のメインシステムを起動させる場合、前記サブシステムが前記停止中のメインシステムを前記特定モードで起動させ、タイムサーバの時刻に同期した時刻情報を取得して前記管理用システム時刻を補正し、補正した管理用システム時刻を初期時刻として、前記起動対象のメインシステムを通常起動モードで再度起動させ、
前記起動中のメインシステムが、一定期間内に、前記タイムサーバから前期タイムサーバの時刻に同期した時刻情報を取得している状態で、前記サブシステムが停止中のメインシステムを起動させる場合、前記サブシステムは、前記起動中のメインシステムに対応した時刻差分情報を用いて、前記サブシステムの管理用システム時刻を補正し、補正した管理用システム時刻を初期時刻として、前記停止中のメインシステムを通常起動モードで起動させる
ことを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれかに記載の情報処理装置であって、
前記メインシステムの起動は、前記メインシステムを動作させるオペレーティング・システムをブートさせるプログラムであるブートローダーを用いて行い、
前記メインシステムのブートローダーは、前記タイムサーバにアクセスして前記タイムサーバの時刻に同期した時刻情報を取得するタイムサーバ・アクセス手段を有し、
前記サブシステムから前記特定モードで起動された前記メインシステムが、前記メインシステムのブートローダーが有するタイムサーバ・アクセス手段により前記タイムサーバの時刻に同期した時刻情報を取得する
ことを特徴とする情報処理装置。
【請求項５】
情報処理装置としての機能を提供し、時刻を計時するタイムサーバから前記タイムサーバの時刻に同期した時刻情報を取得する機能を有するメインシステムと、前記メインシステムの管理を行なうサブシステムとを有する情報処理装置の起動方法であって、
前記サブシステムは、停止中の前記メインシステムを起動させる際に、前記停止中のメインシステムを、前記タイムサーバから前記タイムサーバの時刻に同期した時刻情報を取得する特定モードで起動させるステップと、
前記サブシステムが、特定モードで起動した前記メインシステムが取得した前記タイムサーバに同期した時刻情報を用いて、前記サブシステムが制御する時計デバイスから得られる管理用システム時刻を補正するステップと、
前記サブシステムが、補正後の前記管理用システム時刻を前記メインシステムの起動を行うための初期時刻として、前記メインシステムを情報処理装置としての機能を提供するための通常起動モードで再度起動させるステップと、
を有することを特徴とする情報処理装置の起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置としての所定の機能を提供するメインシステムと、メインシステムの管理を行なうサブシステムとを有する情報処理装置において、サブシステムからメインシステムの起動を行う起動方法に関する。
【背景技術】
【０００２】
従来から、サーバ等の情報処理装置として、情報処理装置としての所定の機能を提供するメインシステムと、メインシステムの管理を行なうサブシステムとを有する情報処理装置が存在する。図１１に、このような情報処理装置の構成例を示す。図１１に示す情報処理装置１は、サブシステム１０、複数のメインシステム２１〜２３、時計デバイス３０、及び電池３１を有する。ここで、図１１に示す情報処理装置１のシステム構成では３つのメインシステムを有する例が示されているが、２つのメインシステムを有するシステム構成であってもよく、又、数十、あるいは数百等の多数のメインシステムを有するシステム構成であってもよい（以下、本実施例において同じ）。
【０００３】
メインシステム２１〜２３は、ＣＰＵ（Central Processing Unit）等の演算処理装置上で特定のオペレーティング・システム（ＯＳ）を実行して得られるシステムである。各メインシステム（２１〜２３）は、一般に、サブシステム１０により起動される。また、少なくとも一部のメインシステムは、通信ネットワーク、例えば、ＬＡＮ（Local Area Network）に接続される。便宜上、メインシステムが接続されているＬＡＮを「運用ＬＡＮ」と呼ぶこととする。図１１の例では、各メインシステム２１〜２３は、運用ＬＡＮ５に接続されている。
【０００４】
サブシステム１０は、情報処理装置１の電源プラグ３２の商用電源コンセントへの挿入、又は電源スイッチのオンだけで起動するシステムであり、主として、情報処理装置１内部のバス１５を介して、複数のメインシステム２１〜２３の管理を行なう。ここで、情報処理装置１内部のバス１５は、高速シリアルバスやパラレルバスのようなバスであってもよく、また、所定のプロトコルに従って動作する通信回線であってもよい。
【０００５】
サブシステム１０も、ＬＡＮ等の特定の通信ネットワーク６に接続される。便宜上、サブシステム１０が接続されているＬＡＮ６を「管理ＬＡＮ」と呼ぶこととする。サブシステム１０は、管理ＬＡＮ６に接続されるＰＣ（パーソナルコンピュータ）端末等（不図示）から操作される。
【０００６】
情報処理装置は、１つの時計デバイス３０を有し、この時計デバイス３０はサブシステム１０により制御される。ここで、時計デバイス３０としては、例えば、ＴＯＤ（Time Of Day）クロックや、ＲＴＣ（Real Time Clock）デバイス等が用いられる。ＴＯＤクロック等の時計デバイスは、情報処理装置１の電源がオフ状態となっているときには、時計デバイス３０に接続されているバッテリー３１から電源供給を受けて動作する。
このような情報処理装置１において、サブシステム１０が複数のメインシステム２１〜２３を管理するには、サブシステム１０が正確な時刻情報を取得している必要がある。サブシステム１０が正確な時刻情報を取得していない場合には、以下に説明するように、サブシステムからメインシステムを起動する際に、メインシステム内の時刻に関して時刻飛びや時刻の逆行等の問題が生じる場合があるためである。例えば、サブシステム１０がメインシステム２１を起動する場合、メインシステム２１は、サブシステム１０から初期時刻を取得して起動する。多くの場合、メインシステム２１は、起動中又は起動後にメインシステム２１に接続されている運用ＬＡＮ５を介してＮＴＰ（Network Time Protocol）サーバ３にアクセスして、メインシステム２１内の時刻をＮＴＰサーバ３の正確な時刻に同期させる。その際、最初にサブシステム１０から取得した初期時刻がずれているような場合には、時刻飛びや時刻の逆行等の問題が生じてしまう場合がある。
【０００７】
図１２を用いて、サブシステム１０からメインシステム２１を起動する際の動作を説明する。図１２では、情報処理装置１に含まれるサブシステム１０及びメインシステム２１以外のシステム構成要素は省略されている。メインシステム２１は、メインシステム２１の起動を行なうブートローダー４０と、ドメインＯＳ５０とを有する。ブートローダー４０は、例えば１ＭＢ（メガバイト）程度のプログラムであり、図１３に示すような構成を有する。図１３に示すように、ブートローダーは、ブートローダー基本機能部４０−１、ネットワークライブラリ４０−２、各種ライブラリ４０−３、及びハードウェア制御ドライバ４０−４を有し、これらの各構成要素によりドメインＯＳ５０をブートさせる機能を有する。ブートローダー４０のプログラムは、メインシステム１内のＲＯＭ（Read Only Memory）等に予め格納しておいてもよいし、サブシステム側から、メインシステム内の命令コードを格納するためのＲＡＭ（Random Access Memory）に所定のプログラム内容を書き込むようにしてもよい（以下、本実施例において同じ）。
【０００８】
サブシステム１０が、メインシステム２１のシステムリセットを解除すると、メインシステム２１の所定の初期診断処理（後述）等を行なった後、メインシステム２１のブートローダー４０が起動される。ブートローダー４０のブートローダー基本機能部４０−１は、ネットワークライブラリ４０−２や各種機能ライブラリ４０−３、ハードウェア制御ドライバ４０−４を用いて、メインシステム２１内の各種ハードウェア２１−１０を制御し、ドメインＯＳ５０を起動させる。
【０００９】
ブートローダー４０により、メインシステム２１のドメインＯＳ５０が起動されると、メインシステム２１は、運用ＬＡＮ５を介してＮＴＰサーバ３にアクセスし、メインシステム２１内の時刻をＮＴＰサーバの時刻に同期させる。その後、メインシステム２１は、定期的にＮＴＰサーバにアクセスして、ＮＴＰサーバに同期しながら時刻を刻む。
【００１０】
ところで、サブシステム１０の基準時刻であるＴＯＤクロック等の時計デバイス３０の時刻がずれているような場合には、メインシステム２１の起動時に、問題を引き起こす場合がある。例えば、サブシステム１０から不正確な初期時刻を渡してメインシステム２１の起動を行なうと、メインシステム２１の起動後に、メインシステム１がＮＴＰサーバ３にアクセスしてメインシステム２１内の時刻をＮＴＰサーバ３の時刻に同期させると、時刻飛びや時刻の逆行が生じる場合がある。時刻飛びや時刻の逆行が生じると、メインシステム上で動作するソフトウェアプログラムに悪影響を及ぼす可能性がある。特に、複数のメインシステムで構成される情報処理システムの冗長化、異常検出、業務引継ぎ等の管理を行なう、いわゆるクラスタリング・ソフトウェア等は、メインシステム上で動作するソフトウェアであるが、時刻飛び等が発生すると動作に支障を来たす恐れがある。これは、クラスタリング・ソフトウェア等は、メインシステムのブート直後に起動され、メインシステム内の時刻を基準として様々な処理を行なうためである。
【００１１】
一方、ＴＯＤクロック等の時計デバイス３０を基に生成されるサブシステム１０の時刻は、月に１０秒程度ずれてしまう場合がある。例えば、全てのメインシステム２１〜２３が停止している状態が長期間続いた後に、メインシステム２１を起動しようとするような場合には、メインシステム２１の起動前に、サブシステム１０の時刻をＮＴＰサーバの時刻に同期させることができなければ、メインシステム２１の起動時に時刻飛び等を引き起こしてしまう可能性がある。
【００１２】
そのため、従来、サブシステム１０が接続される管理ＬＡＮ６にもＮＴＰサーバ４を設けるか、あるいは、管理ＬＡＮ６と運用ＬＡＮ５を共通化して用いるといった運用がなされてきた。
【００１３】
尚、複数のシステムあるいは情報処理装置の時刻を同期化させる方法としては、以下のような先行技術がある。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００５−１３５０６３号公報
【特許文献２】特開２００８−１０２７１３号公報
【特許文献３】特開２００５−７１０８２号公報
【特許文献４】特開２０００−３４９７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
前述の通り、従来、サブシステム１０の時刻を正確な時刻とするために、サブシステム１０が接続される管理ＬＡＮ６にＮＴＰサーバ４を設けたり、サブシステム１０を直接運用ＬＡＮ５に接続したりすることにより、サブシステム１０からＮＴＰサーバ３にアクセスできるようなシステム構成が用いられてきた。
【００１６】
しかし、情報処理装置１の管理を行なうサブシステム１０をＮＴＰサーバが接続された通信ネットワークに接続すると、サブシステム１０のセキュリティを確保するための特別なセキュリティ対策が必要となる場合が生じてくる。そのため、簡便かつ安全な方法により情報処理装置１のシステム構築をするためには、サブシステム１０が接続される管理ＬＡＮ６は、運用ＬＡＮ５とは切り離された、情報処理装置１の管理のみに用いる専用の通信回線であることが望ましい。また、運用ＬＡＮ５とは別の通信ネットワークである管理ＬＡＮ６にもＮＴＰサーバ４を接続しようとすると、システムを構築するためのコストが高くなるという問題があるため、管理ＬＡＮ６にはＮＴＰサーバ４を設けなくても済むシステム構成が望ましい。
【００１７】
従って、ＮＴＰサーバ等が接続された運用ＬＡＮから切り離された管理ＬＡＮ６に接続されるサブシステム１０からメインシステム２１〜２３を起動する際に、サブシステム１０が運用ＬＡＮ５に接続されたＮＴＰサーバ３を用いて正確な時刻を取得することを課題とする。
【課題を解決するための手段】
【００１８】
上記課題を解決するために、本発明に係る情報処理装置は、情報処理装置としての機能を提供し、時刻を計時するタイムサーバから前記タイムサーバの時刻に同期した時刻情報を取得する機能を有するメインシステムと、前記メインシステムの管理を行なうサブシステムとを有し、前記メインシステムは、前記サブシステムからの起動モードの指示に応じて、情報処理装置としての機能を提供するための通常起動モード、又は前記タイムサーバから前記タイムサーバの時刻に同期した時刻情報を取得する特定モードのいずれかの起動モードで起動する機能を有し、前記サブシステムは、停止中の前記メインシステムを起動させる場合に、前記停止中のメインシステムを前記特定モードで起動させ、前記サブシステムが、前記特定モードで起動した前記メインシステムが取得した前記タイムサーバの時刻に同期した時刻情報を用いて、前記サブシステムが制御する時計デバイスから得られる管理用システム時刻を補正した後に、補正後の前記管理用システム時刻を前記メインシステムの起動を行うための初期時刻として前記メインシステムを通常起動モードで再度起動させる。
【発明の効果】
【００１９】
サブシステムが接続される管理ＬＡＮにＮＴＰサーバが接続されていない場合においても、メインシステムのブートローダーを介して、サブシステムが運用ＬＡＮに接続されたＮＴＰサーバにアクセスして正確な時刻情報を取得することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】実施例に係る情報処理装置の構成例を示した図である。
【図２】実施例におけるメインシステム起動時の構成を説明する図である。
【図３】実施例に係るブートローダーの構成を示した図である。
【図４】実施例に係るＮＴＰライブラリの構成を説明する図である。
【図５】実施例に係るメインシステム起動フローの例を示した図である。
【図６】実施例に係るメインシステム起動時のサブシステムの動作フローの例を示した図である。
【図７】実施例に係るメインシステム起動時のメインシステムの時刻取得モードでの動作フローの例を示した図である。
【図８】実施例に係るメインシステム起動時のメインシステムの通常起動モードでの動作フローの例を示した図である。
【図９】実施例に係るメインシステム起動フローの第２の例を示した図である。
【図１０】実施例に係るメインシステム起動フローの第３の例を示した図である。
【図１１】従来例に係る情報処理装置の構成例を示した図である。
【図１２】従来例におけるメインシステム起動時の構成を説明する図である。
【図１３】従来例に係るブートローダーの構成を示した図である。
【発明を実施するための形態】
【００２１】
以下、本発明を実施するための形態について詳細に説明する。
【００２２】
図１は、実施例に係る情報処理装置２の構成例を示した図である。図１の情報処理装置２のサブシステム１１に接続される管理ＬＡＮ７には、ＮＴＰサーバが接続されておらず、管理ＬＡＮ７と運用ＬＡＮ５とは接続されていない独立した通信ネットワークであるものとする。図１における他の構成要素で、図１１に係る構成要素と同じ番号が付されているものについては、図１１のものと同じであるので説明を省略する。
【００２３】
図１に示すサブシステム１１は、各メインシステム２１〜２３の時刻と、時計デバイス３０から得られるシステム時刻との差分情報である時刻差分を保持する回路１１−１〜１１−３を有する。時刻差分を保持する回路１１−１〜１１−３は、図１では３つ描かれているが、メインシステムの数だけ時刻差分を保持する回路も存在するものとする。また、時刻差分を保持する回路は、時刻差分情報を更新した日時情報も合わせて保持するようにしておくことができる。時刻差分情報の更新頻度や更新日時を確認できるようにするためである。尚、時刻差分の情報をどのように取り扱うかについては後述する。
【００２４】
図２は、実施例に係るメインシステム起動時の構成を説明する図であり、この図２を用いて、サブシステム１１からメインシステム２１を起動する際の動作を説明する。図２に示すメインシステム２１は、従来例に係るブートローダー４０とは異なるブートローダー４１を有する。図２のブートローダー４１は、メインシステムの起動を行なう通常起動モードに加え、サブシステムからの起動指示に応じて、運用ＬＡＮ５に接続されたＮＴＰサーバ３にアクセスして時刻情報を取得する時刻取得モードの機能を有する。サブシステム１１は、ブートローダー４１を時刻取得モードで起動させる機能である、時刻取得モードでのブートローダー呼び出し機能６０を有する。
【００２５】
メインシステム１を通常起動モードと時刻取得モードとのいずれのモードで起動させるかを示す起動モードは、メインシステム１のブートローダー４１が参照可能なレジスタ等の記憶回路に、メインシステム１の起動前にサブシステム１１のブートローダー呼び出し機能６０が予め設定する。この起動モードを保持する記憶回路（不図示）は、サブシステム内部に設けてもよいし、各メインシステムの周辺装置に設けてもよい。起動モードを保持する記憶回路をサブシステム１１内部に設ける場合には、各メインシステムはバス１５等を介して起動モードを保持する記憶回路にアクセスする。そして、メインシステム１のブートローダー４１は、起動時にこの起動モードを保持している記憶回路の値を参照して、通常起動モードと時刻取得モードとのいずれのモードで起動するかの情報を得る。
【００２６】
ブートローダー４１の時刻取得モードの機能は、図３に示すように、ブートローダー４１に、ＮＴＰサーバ３にアクセスする機能を有するＮＴＰライブラリ４１−５を設けることにより実現する。ＮＴＰライブラリ４１−５は、ＮＴＰサーバに対して、時刻情報を取得するためのインターフェイス機能を有し、具体的には、図４に示すような構成により実現される。ＮＴＰライブラリ４１−５は、大きく分けて、ＮＴＰサーバに時刻取得要求を送信する処理（４１−５１〜４１−５３）と、ＮＴＰサーバから時刻情報を受信等する処理（４１−５４、４１−５５）とを行なう。
【００２７】
ＮＴＰライブラリ４１−５は、ブートローダー基本機能部４１−１から時刻取得要求があった場合に（４１−５１）、ＮＴＰサーバへの時刻取得要求のためのＩＰパケットを生成し（４１−５２）、生成したＩＰパケットをネットワークライブラリ４１−２に渡す（４１−５３）。ここで、ＩＰとはInternet Protocolの略で、ＩＰパケットとは、インターネット上で送受信されるデータのまとまりのことをいう。ネットワークライブラリ４１−２は、ハードウェア制御ドライバ４１−４を介して、メインシステム２１内部のハードウェア回路２１−１０を制御して、運用ＬＡＮ５に接続されたＮＴＰサーバ３に生成されたＩＰパケットを送信する。そして、ＮＴＰライブラリ４１−５は、ＮＴＰサーバ３から返信されて来る、時刻情報を含むＩＰパケットを受信し（４１−５４）、メインシステム２１の内部時刻を補正する処理を行なう（４１−５５）。
図５は、実施例に係るメインシステム起動フローの例を示した図である。図５では、情報処理装置２のサブシステム１１、メインシステム２１及びメインシステム２２に着目し、その他のメインシステムについては考慮しないものとする。また、図５では、サブシステム１１、メインシステム２１、メインシステム２２、及びＮＴＰサーバ３を、単にサブシステム、メインシステム１、メインシステム２、及びＮＴＰサーバと表記する。
【００２８】
図５の例において、ＮＴＰサーバはメインシステム１及びメインシステム２が接続された運用ＬＡＮ５にのみ接続されているものとし、図５のフローの全体を通してＮＴＰサーバは運用中の状態であるものとする。また、メインシステム１及びメインシステム２は停止中の状態であるものとする。このような状態において、サブシステムからメインシステム１の起動を行なおうとする場合、最初にサブシステムの時刻をＮＴＰサーバに同期した正確な時刻に補正してから、メインシステム１の起動処理を行なう必要がある。以下、図５を用いて、メインシステム起動フローの例を説明する。
【００２９】
まず、サブシステムは、情報処理装置２の起動時、例えば、情報処理装置２の電源プラグ３２を商用電源コンセントへ挿入して起動したときに、時計デバイス３０から初期時刻を取得する（図５において不図示）。そして、サブシステムは、サブシステム内のタイマー回路によるタイマー割込み等を用いて、サブシステムのシステム時刻を刻む。ここで、前述の通り、情報処理装置２の起動時点でのサブシステムの時刻は、月差１０秒程度の精度でずれている可能性がある。
【００３０】
サブシステムの時刻を運用ＬＡＮに接続されたＮＴＰサーバに同期した時刻を用いて補正するために、図５のＳ１０１において、サブシステムはメインシステム１を時刻取得モードで起動する。その際、サブシステムは、その時点でのサブシステム時刻を初期時刻としてメインシステム１に渡して、メインシステム１を時刻取得モードで起動する。メインシステム１のブートローダー４１は、サブシステムから時刻取得モードで起動されたことを認識すると、Ｓ１１１で、時刻取得モードでの起動を開始する。
【００３１】
メインシステム１のブートローダー４１は、時刻取得モードで起動された場合には、最初にサブシステムから渡された初期時刻を自らの時刻として設定し、メインシステム１内のタイマー回路（不図示）等によるタイマー割込みで時刻を刻む。その後、ブートローダー４１は、前述のＮＴＰライブラリ４１−５を用いて、ＮＴＰサーバから時刻情報を取得する（Ｓ１１２）。
【００３２】
メインシステム１は、ＮＴＰサーバにアクセスして取得した時刻情報をサブシステムに渡す（Ｓ１１３）。具体的には、メインシステム１はＮＴＰサーバに同期した時刻情報を情報処理装置２内部のバス１５を介してサブシステムに渡す。メインシステム１から時刻情報を受け取ったサブシステムは、ハードウェア回路により、又は特定のプログラム処理により、メインシステム１から渡された時刻情報とサブシステムの時刻情報との時刻差分を求めて、前記時刻差分保持回路１１−１に書き込む。サブシステムは、時刻差分保持回路１１−１に保持された時刻差分情報とサブシステムの時刻情報とを加えることにより、ＮＴＰサーバに同期した時刻情報を得ることができる。尚、メインシステム１側からサブシステムの時刻を参照できる場合には、メインシステム１のプログラム処理によりＮＴＰサーバから取得した時刻とサブシステムの時刻との差分を求め、求めた時刻差分情報を時刻差分保持回路１１−１にメインシステム１側から書き込むようにしてもよい（以下、同じ）。
【００３３】
メインシステム１は、Ｓ１１３でサブシステムに時刻情報を通知した後、Ｓ１１４において、サブシステムからの指示を待つ。
【００３４】
Ｓ１０２で時刻情報待ちをしていたサブシステムは、メインシステム１から時刻情報が通知されると、通知された時刻でサブシステムの時刻を補正し、サブシステム内にある、メインシステム１の時刻とサブシステムの時刻との差分情報である時刻差分１をクリアする処理を行なう（Ｓ１０３）。この時点で、サブシステムの時刻は、ＮＴＰサーバに同期した時刻に補正されることになる。尚、時刻差分１は、メインシステム１の時刻とサブシステムの時刻との差分を秒オーダーで保持するようにしておけばよい。
【００３５】
Ｓ１０３の処理により、サブシステムの時刻をＮＴＰサーバの時刻に合わせることができたので、サブシステムは、メインシステム１を通常モードで起動させるために、Ｓ１０４で、一旦、メインシステム１への停止指示を出す。サブシステムからの停止指示（Ｓ１０４）を受けて、メインシステム１はメインシステム１の停止処理を行なう（Ｓ１１５）。
【００３６】
サブシステムは、所定のシステム監視手段（不図示）や所定の時間経過を計測するタイマーカウンタ（不図示）等により、メインシステム１の停止を認識すると、次に、通常の起動モードでメインシステム１を起動させる（Ｓ１０５）。サブシステムは、メインシステム１の起動（Ｓ１０５）を行なった後、メインシステム１からの応答を待つ（Ｓ１０６）。
【００３７】
メインシステム１のブートローダー４１が、サブシステムから通常モードでの起動指示がされたことを認識すると、ブートローダー４１は通常モードでのメインシステム１のドメインＯＳ５０のブート処理を開始する（Ｓ１１６）。通常モードでの起動処理の場合、メインシステム１の起動中のドメインＯＳ５０は、ブートローダー４１に対して、初期時刻を要求する。ドメインＯＳ５０からの初期時刻要求を受けたブートローダー４１は、ドメインＯＳ５０を起動するための初期時刻情報をサブシステムに要求し（Ｓ１１７）、サブシステムから初期時刻情報が通知されるのを待つ（Ｓ１１８）。
【００３８】
サブシステムは、メインシステム１からの初期時刻要求（Ｓ１１７）を受けて、サブシステムの時刻にメインシステム１の時刻差分１を加えた時刻情報を、メインシステム１を起動するための初期時刻として、メインシステム１に返す（Ｓ１０７）。尚、前述のＳ１０３において、サブシステムの時刻をＮＴＰサーバに同期した時刻に補正済みで、時刻差分１のクリア処理も行なわれているので、Ｓ１０７においてサブシステム時刻に時刻差分１を加える処理は省略することも可能である。すなわち、Ｓ１０７において、Ｓ１０３で補正したサブシステム時刻をメインシステム１の初期時刻として、サブシステムからメインシステム１に返すようにしてもよい。
【００３９】
メインシステム１のブートローダー４１は、サブシステムから初期時刻情報を取得すると、取得した初期時刻情報を初期時刻としてメインシステム１のドメインＯＳ５０に渡して、メインシステム１のドメインＯＳ５０を起動する（Ｓ１１９）。ブートローダー４１により、メインシステム１のドメインＯＳ５０が起動されると、メインシステム１はＮＴＰサーバと時刻同期を行い（Ｓ１２０）、その後、定期的にＮＴＰサーバと時刻同期をする処理を継続する（Ｓ１２１）。
【００４０】
以上に述べた図５の起動フローにより、全てのメインシステムが停止している状態でサブシステムから特定のメインシステムを起動するような場合においても、サブシステムが、運用ＬＡＮに接続されたＮＴＰサーバに同期した時刻情報を取得してから、メインシステムの起動を行なうことが可能となる。
【００４１】
尚、図５の例では、最初にメインシステム１とメインシステム２の両方が停止している状態を想定したフローであるが、例えば、メインシステム２が起動しているような状態であっても、サブシステムの時刻がＮＴＰサーバに同期した時刻になっていない可能性がある場合には、図５の処理フローでメインシステム１の起動を行なうこともできる。例えば、メインシステム２が所定の期間内にＮＴＰサーバに同期する処理をしていない場合には、メインシステム２の時刻はＮＴＰサーバの時刻とずれている可能性がある。そのような場合、サブシステム時刻をメインシステム２の時刻情報を用いて補正したとしても、サブシステム時刻はＮＴＰサーバに同期した時刻とはならないので、メインシステム１の起動を行なう前に、サブシステム時刻をＮＴＰサーバに同期した時刻に補正する処理が必要となる。
図５におけるサブシステム及びメインシステム１のそれぞれの動作の詳細について、図６〜図８を用いて説明する。
【００４２】
図６は、実施例に係る図５のメインシステム起動フローにおけるサブシステムの動作フローチャートを示した図である。図５の例のように、サブシステムの時刻がＮＴＰサーバの時刻と同期していない場合には、サブシステムは、時刻取得モードでメインシステムを起動するように起動モードを保持する記憶回路に起動モードを設定する（Ｓ１４１）。メインシステムを時刻取得モードで起動させるか否かの指示については、特定の制御信号を用いてメインシステムに通知するようにしてもよいし、メインシステムが参照できるメモリ領域等に所定の情報を書き込むことにより通知してもよい。
【００４３】
次に、サブシステムは、起動対象のメインシステムの初期化を行なうリセット処理を行なう（Ｓ１４２）。具体的には、サブシステムは、メインシステムのリセット制御を行うリセット制御回路（不図示）に対して、メインシステムのリセット印加を指示して、メインシステムを初期化する。その際、サブシステムからのメインシステムのリセット印加指示に替えて、サブシステムが停止中のメインシステムを起動させるためのウェイクアップ指示を行い、そのウェイクアップ指示を検出したメインシステムのリセット制御回路が、メインシステム起動用のリセット信号を生成するようにしてもよい。リセット制御回路から出力されるリセット信号の印加によりメインシステムが初期化された後、リセットが解除されると、メインシステムは初期化された状態からブートローダー４１を起動させる。
【００４４】
サブシステムは、メインシステムのリセット処理（Ｓ１４２）を行なった後、メインシステムのブートローダー４１の時刻取得モードでの起動、および、ＮＴＰサーバからの時刻情報の取得処理の完了待ちを行なう（Ｓ１４３）。
【００４５】
その後、サブシステムは、メインシステムのブートローダー４１からの時刻設定指示があった場合には（Ｓ１４４  Ｙｅｓ）、サブシステムの時刻を補正し、メインシステムの時刻差分情報をクリアする処理を行なう（Ｓ１４５）。一方、一定期間経過しても、メインシステムのブートローダー４１からの時刻設定指示がない場合には（Ｓ１４４  Ｎｏ）、メインシステムで何らかの異常が発生して、メインシステムが正常に起動していないことになるため、サブシステムは、メインシステムの停止指示（Ｓ１５２）をする。そして、異常終了についての所定の処理、例えば、異常が発生した際の状況等をログ情報に出力してからメインシステムをリセットするといった処理を行ない（Ｓ１５３）、メインシステムの起動処理を終了する。
【００４６】
メインシステムのブートローダー４１からの時刻設定指示があった場合（Ｓ１４４  Ｙｅｓ）、サブシステムは、サブシステムの時刻を補正し、起動対象のメインシステムの時刻差分情報をクリアする（Ｓ１４５）。この時点でサブシステムがＮＴＰサーバに同期した時刻情報を取得できたことになるので、サブシステムは一旦、メインシステムの停止指示を行う（Ｓ１４６）。ここでのメインシステムの停止指示は、必ずしもメインシステムの電源供給の停止まで行わせる必要はなく、メインシステムをすぐに再起動できるように、単にメインシステムを機能停止状態にさせておけば足りる。
【００４７】
その後、サブシステムは、通常モードによるメインシステムの起動を行うための起動モードの設定を行ない（Ｓ１４７）、メインシステムのリセット処理を行なってメインシステムを再起動させる（Ｓ１４８）。Ｓ１４８のリセット処理では、サブシステムからメインシステムのリセット制御回路に対して、メインシステム全体を初期化するように指示してもよいし、メインシステム内のＣＰＵのみを再起動させる特定のリセット信号のみを印加するように指示してもよい。サブシステムは、メインシステムのリセット処理（Ｓ１４８）を行った後、所定の期間、メインシステムのブートローダー４１が起動するのを待つ（Ｓ１４９）。
【００４８】
サブシステムはメインシステムのブートローダー４１からの初期設定時刻の要求を待ち（Ｓ１４９）、初期設定時刻の要求が来た場合には（Ｓ１５０  Ｙｅｓ）、メインシステムのブートローダー４１に初期設定時刻情報を渡して（Ｓ１５１）、メインシステムの起動処理を終了する。メインシステムのブートローダー４１からの初期設定時刻の要求が来ていない場合には（Ｓ１５０  Ｎｏ）、要求が来るまでループしながら待つ（Ｓ１５０）。
【００４９】
尚、Ｓ１５０でメインシステムのブートローダー４１からの時刻要求待ちを行なうので、Ｓ１４９は省略してもよい。
【００５０】
図７は、実施例に係る図５のメインシステム起動フローにおける時刻取得モードでのメインシステムの動作フローチャートを示した図である。サブシステムから時刻取得モードで起動されると（Ｓ１６１）、メインシステムは最初にメインシステム起動時の診断処理を行なう（Ｓ１６２）。このメインシステム起動時の診断処理では、予めメインシステムのＲＯＭ等に準備された自己診断プログラムにより、メインシステムで使用されるメモリや、各種機能回路が正常動作するかを確認する処理が実行される。この自己診断プログラムは、メインシステム内のＲＯＭに予め格納されている場合の他、サブシステム側から、メインシステム内の命令コードを格納するためのＲＡＭ等に所定のプログラム内容を書き込んだ後に実行させるようにしてもよい。
【００５１】
メインシステム診断（Ｓ１６２）で異常が検出された場合には、例えば、異常が発生した際の状況等をログ情報に出力するといった処理を行ない、メインシステムの起動処理を終了する（不図示）。メインシステム診断（Ｓ１６２）で問題がない場合には、メインシステムのブートローダー４１が起動される（Ｓ１６３）。時刻取得モードでメインシステムのブートローダー４１が起動されると、ブートローダー４１は、図３及び図４に示したＮＴＰライブラリ４１−５を用いて、ＮＴＰサーバにアクセスして時刻情報を取得する（Ｓ１６４）。
【００５２】
ブートローダー４１がＮＴＰサーバから時刻情報を取得できた場合には（Ｓ１６４  Ｙｅｓ）、取得した時刻情報をサブシステムに通知する（Ｓ１６５）。一方、ＮＴＰサーバから時刻を取得できなかった場合には（Ｓ１６４  Ｎｏ）、サブシステムに異常を通知する（Ｓ１６８）。
【００５３】
その後、メインシステムは、サブシステムからの停止指示を待ち（Ｓ１６６）、サブシステムからの停止指示があると、停止処理を行なう（Ｓ１６７）。
【００５４】
図８は、実施例に係る図５のメインシステム起動フローにおける通常起動モードでのメインシステムの動作フローチャートを示した図である。メインシステムが通常起動モードで起動されると（Ｓ１７１）、図７の場合と同様にメインシステムの自己診断プログラムが実行される（Ｓ１７２）。そして、自己診断の結果に問題がなければ、通常起動モードでブートローダー４１が起動される（Ｓ１７３）。
【００５５】
ブートローダー４１が通常起動モードで起動された場合には、図７の場合のようにＮＴＰサーバへのアクセス処理等は行なわずに、そのままメインシステムのドメインＯＳ５０の起動処理を行なう。ブートローダー４１は、まず、ドメインＯＳ５０を起動するための初期時刻をサブシステムに要求する（Ｓ１７４）。この時点において、サブシステムの時刻は、前述の図７の処理によりＮＴＰサーバに同期した時刻となっているはずなので、サブシステムは、ブートローダー４１からの時刻取得要求に対して、正確な時刻を返すことができる。
【００５６】
そして、ブートローダー４１は、サブシステムから初期時刻を取得した後、メインシステムのドメインＯＳ５０を起動する（Ｓ１７５）。メインシステム１のドメインＯＳ５０が起動されると、ドメインＯＳ５０は、ＮＴＰサーバと時刻同期を行う（Ｓ１７６）。この時点で、ドメインＯＳ５０の時刻とＮＴＰサーバの時刻は一致しているので、Ｓ１７６における時刻同期処理において、時刻飛びや時刻の逆行等の問題は発生しないことになる。その後、一定期間毎に、ドメインＯＳ５０がＮＴＰサーバとの時刻同期を継続する（Ｓ１７７）。
【００５７】
このように、本実施例では、サブシステムからメインシステムを起動する際に、サブシステムの時刻がＮＴＰサーバに同期した時刻となっていない場合には、メインシステムのブートローダー４１を時刻取得モードで起動させ、ＮＴＰサーバにアクセスさせることにより、ＮＴＰサーバに同期した時刻情報を取得する。そして、サブシステムの時刻をＮＴＰサーバに同期した時刻とした後に、通常の起動モードでメインシステムの起動を行なう。このようにすることで、サブシステムが接続されている管理ＬＡＮ７にＮＴＰサーバが接続されていないような場合でも、メインシステムが接続されている管理ＬＡＮ５を介してＮＴＰサーバ３にアクセスし、サブシステムがＮＴＰサーバに同期した時刻を取得することが可能となる。
図９は、図５に示すメインシステム起動フローにおけるＳ１０２，Ｓ１０３の処理を他の方法により行なう実施例を示した図である。図９において、Ｓ１０８以外の処理については図５における対応する処理と同じ内容であるので、ここでは詳細な説明を省略する。
【００５８】
図５のメインシステム起動フローにおいては、メインシステム１がＮＴＰサーバに同期した時刻情報をサブシステムに渡した後（Ｓ１１３）、サブシステムがサブシステムの時刻を補正すると共に、時刻差分１をクリアする処理を行なっている（Ｓ１０３）。しかし、本実施例においては、サブシステムが時刻差分保持回路（１１−１〜１１−３）により各メインシステムの時刻とサブシステムの時刻との時刻差分情報を保持しているので、図９に示すようにＳ１０３の処理を行なわないようにすることもできる。
【００５９】
図９のフローでは、メインシステム１からＮＴＰサーバに同期した時刻情報が渡されると（Ｓ１１３）、メインシステム１から渡された時刻情報に基づいて時刻差分保持回路１１−１に保持された時刻差分１を更新する（Ｓ１０８）。サブシステムは、更新された時刻差分１とサブシステムの時刻情報とを加えることにより、ＮＴＰサーバに同期した時刻情報を得ることができるので、図５のＳ１０３でサブシステムの時刻を補正することなく、Ｓ１０４以降の処理を行なう。
【００６０】
図９のＳ１０４、Ｓ１０５の処理により、サブシステムはメインシステム１を再起動させ、メインシステム１からの初期時刻要求を待つ（Ｓ１０６）。そして、メインシステム１のブートローダー４１から、メインシステム１を起動するための初期時刻の要求があると（Ｓ１１７）、サブシステムは、サブシステムの時刻情報にＳ１０８で更新した時刻差分１を加えた時刻情報、すなわち、時刻差分１を加えることにより補正したサブシステムの時刻情報を初期時刻としてメインシステム１へ返す（Ｓ１０７）。その後、メインシステム１は、図５の場合と同様にＳ１１８〜Ｓ１２１の処理を経て起動される。
【００６１】
図９の例では、図５のＳ１０３の処理、すなわち、ＮＴＰサーバに同期した時刻情報を用いてサブシステムの時刻を補正する処理を省略しているが、Ｓ１０８で更新した時刻差分１をサブシステムの時刻に加えることにより、ＮＴＰサーバに同期した時刻情報を得ることができる。そのため、図９に示すサブシステムの処理（Ｓ１０８、Ｓ１０７等）を用いても、図５と同様にメインシステム１の起動を行なうことが可能である。
図１０は、図５及び図９の場合とは異なる状況における本実施例に係るメインシステム起動フロー例を示した図である。図１０では、サブシステムからメインシステム１を起動させる際に、既にメインシステム２が稼動中であり、メインシステム２がＮＴＰサーバと時刻同期している場合の例を示したものである。
【００６２】
サブシステムからメインシステム１を起動する際に、メインシステム２がＮＴＰサーバと時刻同期を継続している場合には、サブシステムは、メインシステム２の時刻とサブシステムの時刻との差分である時刻差分２の情報を用いて正確な時刻を知ることができる。ここで、各メインシステムの時刻とサブシステムの時刻との差分情報である時刻差分の情報は、図１に示すように、例えばサブシステム中に時刻差分１〜３を保持するレジスタ等の回路（１１−１〜１１−３）により保持される。
【００６３】
時刻差分の情報に関して、例えば、メインシステム２がＮＴＰサーバと定期的に時刻同期する度に、メインシステム２からサブシステムにＮＴＰサーバに同期した時刻情報を渡し、時刻差分２保持回路１１−２に保持される時刻差分２の情報を更新するようにしておく。そのようにしておくことで、ある時点で、サブシステムから停止中のメインシステム１を起動しようとする場合、稼働中のメインシステム２の時刻に対応した時刻差分２の情報を用いて、サブシステムの時刻を補正し、ＮＴＰサーバの時刻に同期した初期時刻を設定してメインシステム１を起動することができる。この様子を図１０を用いて説明する。
【００６４】
ＮＴＰサーバと時刻同期しているメインシステム２が稼働中の状態で、サブシステムからメインシステム１を起動しようとする場合、サブシステムは、まずメインシステム２の時刻とサブシステムの時刻との差分情報である時刻差分２の情報を取得する（Ｓ１８１）。この時刻差分２の情報は、例えば、メインシステム２により、定期的なＮＴＰサーバとの時刻同期を行なった際に更新される。
【００６５】
図１０のＳ１８１において、サブシステムがＮＴＰサーバに同期した時刻情報に基づく時刻差分２の情報を取得すると、サブシステムは、取得した時刻差分２の情報を用いてサブシステムの時刻を補正し、メインシステム１の時刻差分１をクリアする（Ｓ１８２）。その後、メインシステム１を通常起動モードで起動させ（Ｓ１８３）、メインシステム１からの応答を待つ（Ｓ１８４）。
【００６６】
メインシステム１のブートローダー４１は、通常起動モードで起動されると（Ｓ１８６）、サブシステムに、ドメインＯＳ５０を起動するための初期時刻を要求し（Ｓ１８７）、サブシステムからの応答を待つ（Ｓ１８８）。
【００６７】
サブシステムは、メインシステム１のブートローダー４１からの初期時刻要求があると、補正後のサブシステムの時刻に時刻差分１を加えた時刻情報をメインシステム１の初期時刻情報として返す（Ｓ１８５）。尚、Ｓ１８２で時刻差分１はクリアされているので、Ｓ１８５における時刻差分１を加える処理は省略することができる。尚、図１０におけるＳ１８２の処理、すなわち、ＮＴＰサーバに同期した時刻情報を用いたサブシステム時刻の補正処理を省略する場合には、図９の実施例のように、Ｓ１８５において、サブシステムの時刻に時刻差分２を加えた時刻を初期時刻としてメインシステム１に返すようにすることができる。
【００６８】
メインシステム１のブートローダー４１は、サブシステムから初期時刻を取得すると、図５におけるＳ１１９以降の処理と同様に、図１０のＳ１８９でメインシステム１のドメインＯＳ５０に初期時刻を設定して、ドメインＯＳ５０を起動する（Ｓ１８９）。ブートローダー４１により、メインシステム１のドメインＯＳ５０が起動されると、メインシステム１はＮＴＰサーバと時刻同期を行い（Ｓ１９０）、その後、定期的にＮＴＰサーバと時刻同期をする処理を継続する（Ｓ１９１）。
【００６９】
図１０のようにサブシステムからメインシステム１を起動しようとする際に、すでにメインシステム２がＮＴＰサーバと時刻同期しているような場合には、サブシステムが、メインシステム２の時刻とサブシステムの時刻との差分である時刻差分２の情報を用いて正確な時刻情報を取得し、メインシステム１の起動をすることが可能となる。尚、メインシステム２がＮＴＰサーバと時刻同期しているか否かについては、例えば、時刻差分２の情報と合わせて保持されている時刻差分２の更新日時情報を参照して、参照時点から一定期間内に更新されたか否かを調べること等により判定することができる。
【００７０】
また、図１０では、メインシステム２のみがＮＴＰサーバに時刻同期した状態で稼働中の例を示したが、さらに複数のメインシステムがＮＴＰサーバに時刻同期して運用している場合においても、各メインシステムの時刻に対する時刻差分情報を用いて、サブシステムから停止中のメインシステムの起動を行なうことができる。その場合、運用中の複数のメインシステムに対応した複数の時刻差分情報のうち、最も新しい時刻に更新した時刻差分情報を用いることによって、より正確な時刻でサブシステムの時刻を補正することが可能となる。このように、複数のメインシステムに対応した時刻差分情報を保持する回路（図１の１１−１〜１１−３等）をサブシステムに設け、各メインシステムがＮＴＰサーバと時刻同期する度に、各メインシステムがこれらの回路に保持された時刻差分情報を更新することで、サブシステムがより正確な時刻を取得することが可能となる。
【００７１】
なお、複数のメインシステムが稼動しているような状況であっても、ある一定期間以上、それぞれのメインシステムがＮＴＰサーバとの時刻同期を行なっていないような場合には、各メインシステムの時刻に誤差が生じる場合が出てくる。具体的には、例えば、各メインシステムに対応した時刻差分情報が一定期間以上更新されていないような場合には、サブシステムが正確な時刻を取得できない場合が生じ得るので、前述の図５に示したフローのように、サブシステムから、まず時刻取得モードで起動対象のメインシステムのブートローダー４１を起動する。そして、サブシステムが正確な時刻情報を取得した後に、通常起動モードで再度メインシステムの起動を行なうようにすればよい。
以上に述べたように、メインシステムを管理するサブシステムが接続された管理ＬＡＮ７にＮＴＰサーバが接続されていないような場合においても、サブシステムが正確な時刻を取得してメインシステムの起動を行なうことが可能となる。すなわち、メインシステムのブートローダー４１にＮＴＰサーバにアクセスする機能を持たせ、この機能を用いてサブシステムが正確な時刻を取得した後に、取得した正確な時刻を初期時刻としてメインシステムを起動することが可能となる。また、各メインシステムに対応した時刻差分情報を保持し、各メインシステムに更新させ、最も新しく更新された差分情報を用いてサブシステムの時刻を補正することにより、サブシステムの時刻をより正確なものとすることが可能となる。
【産業上の利用可能性】
【００７２】
本発明は、情報処理装置を構成するサブシステムが正確な時刻を取得する手段として利用することができる。
【符号の説明】
【００７３】
１、２      情報処理装置
３、４      ＮＴＰサーバ
５          運用ＬＡＮ
６、７      管理ＬＡＮ
１０、１１  サブシステム
１５        バス
２１〜２３  メインシステム
３０        時計デバイス
４０、４１  ブートローダー
４１−１    ブートローダー基本機能部
４１−２    ネットワークライブラリ
４１−３    各種ライブラリ
４１−４    ハードウェア制御ドライバ
４１−５    ＮＴＰライブラリ
５０        ドメインＯＳ
【図１】
0005381843.tif 000002
【図２】
0005381843.tif 000003
【図３】
0005381843.tif 000004
【図４】
0005381843.tif 000005
【図５】
0005381843.tif 000006
【図６】
0005381843.tif 000007
【図７】
0005381843.tif 000008
【図８】
0005381843.tif 000009
【図９】
0005381843.tif 000010
【図１０】
0005381843.tif 000011
【図１１】
0005381843.tif 000012
【図１２】
0005381843.tif 000013
【図１３】
0005381843.tif 000014