JPWO2012111112A1 - 情報処理装置、時刻設定方法、および時刻設定プログラム - Google Patents
情報処理装置、時刻設定方法、および時刻設定プログラム Download PDFInfo
- Publication number
- JPWO2012111112A1 JPWO2012111112A1 JP2012557715A JP2012557715A JPWO2012111112A1 JP WO2012111112 A1 JPWO2012111112 A1 JP WO2012111112A1 JP 2012557715 A JP2012557715 A JP 2012557715A JP 2012557715 A JP2012557715 A JP 2012557715A JP WO2012111112 A1 JPWO2012111112 A1 JP WO2012111112A1
- Authority
- JP
- Japan
- Prior art keywords
- time
- domain
- information
- clock
- subsystem
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims description 48
- 238000012545 processing Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 21
- 230000003213 activating effect Effects 0.000 claims description 3
- 230000004913 activation Effects 0.000 description 50
- 238000004891 communication Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 230000015654 memory Effects 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000013078 crystal Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- G—PHYSICS
- G04—HOROLOGY
- G04G—ELECTRONIC TIME-PIECES
- G04G5/00—Setting, i.e. correcting or changing, the time-indication
-
- G—PHYSICS
- G04—HOROLOGY
- G04G—ELECTRONIC TIME-PIECES
- G04G7/00—Synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0641—Change of the master or reference, e.g. take-over or failure of the master
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Electric Clocks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
より正確な時刻情報を用いて情報処理装置の時刻合わせを行うことができるようにする。決定手段(1b)は、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報を取得可能な装置を決定する。そして、時刻合わせ手段(1c)は、決定された装置から時刻情報(5)を取得し、時刻情報(5)で示された時刻に、計時手段(1a)の時刻を合わせる。
Description
本発明は計時手段に時刻を設定する情報処理装置、時刻設定方法、および時刻設定プログラムに関する。
コンピュータでは処理の実行に関し、時刻情報を用いる場合がある。そのため、コンピュータは、内部に時刻を計測する計時手段を有している。そしてコンピュータは、所定のタイミングで、内部の計時手段の時刻合わせを行う。時刻合わせでは、コンピュータがアクセス可能な時計の時刻に、コンピュータで動作しているソフトウェア上の計時手段の時刻を合わせる。例えば、ネットワーク経由で接続されたネットワーク・タイム・プロトコル(NTP:Network Time Protocol)サーバを利用して、NTPによる時刻合わせが行われる。
また時刻の正確性を向上させるためのさまざまな技術が考えられている。例えば、ローカル端末とサーバとの間でやり取りされるデータに付記される時刻情報を元に、サーバとローカル端末の間での相対的な時間のずれを検出し、そのずれを補正する形でローカル端末の時刻の同期調整を行う技術がある。
しかし、コンピュータシステムが複雑化すると、時刻情報を提供する装置のうち、どの装置がより正確な時刻を示しているのかの判断が難しくなる。しかも、運用状況に応じて、時刻情報を提供するも変化する。そのため、時刻を合わせる際に、時刻合わせの基準となる時刻情報をどの装置から取得するのかについて適切に判断するのが難しかった。
1つの側面では、本発明は、より正確な時刻情報を用いて時刻合わせを行うことができる情報処理装置、時刻設定方法、および時刻設定プログラムを提供することを目的とする。
1つの案では、要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が提供される。情報処理装置は、計時手段、決定手段、および時刻合わせ手段を有する。決定手段は、管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。時刻合わせ手段は、決定された装置から時刻情報を取得し、取得した時刻情報が示す時刻に、計時手段の時刻を合わせる。
1つの案では、要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が、以下の処理を行う時刻設定方法が提供される。
まず情報処理装置は、管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。そして情報処理装置は、決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、情報処理装置内の計時手段の時刻を合わせる。
まず情報処理装置は、管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。そして情報処理装置は、決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、情報処理装置内の計時手段の時刻を合わせる。
1つの案では、要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置に以下の処理を実行させる時刻設定プログラムが提供される。
時刻設定プログラムに基づいて、まず情報処理装置は、管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。次に情報処理装置は、決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、情報処理装置内の計時手段の時刻を合わせる。
時刻設定プログラムに基づいて、まず情報処理装置は、管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。次に情報処理装置は、決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、情報処理装置内の計時手段の時刻を合わせる。
より正確な時刻情報を用いた時刻合わせが可能となる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る装置の機能構成例を示す図である。情報処理装置1は、例えば要求に応じてデータ処理を行う管理対象装置4を管理する。情報処理装置1は、計時手段1a、決定手段1b、時刻合わせ手段1c、計算手段1d、記憶手段1e、および起動手段1fを有する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る装置の機能構成例を示す図である。情報処理装置1は、例えば要求に応じてデータ処理を行う管理対象装置4を管理する。情報処理装置1は、計時手段1a、決定手段1b、時刻合わせ手段1c、計算手段1d、記憶手段1e、および起動手段1fを有する。
計時手段1aは、時刻を計測する。計時手段1aは、例えば情報処理装置1がOS(Operating System)等のソフトウェアを実行することで実現されている。
決定手段1bは、管理対象装置4を、時刻情報を提供する装置の1つとして認識する。そして決定手段1bは、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報5を取得可能な装置を決定する。例えば決定手段1bは、情報処理装置1の起動時には、電池でバックアップされた時計デバイス2を、最も正確な時刻を示している装置に決定する。また決定手段1bは、情報処理装置1の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバ3から時刻情報を取得可能であれば、サーバ3を最も正確な時刻を示している装置に決定してもよい。
決定手段1bは、管理対象装置4を、時刻情報を提供する装置の1つとして認識する。そして決定手段1bは、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報5を取得可能な装置を決定する。例えば決定手段1bは、情報処理装置1の起動時には、電池でバックアップされた時計デバイス2を、最も正確な時刻を示している装置に決定する。また決定手段1bは、情報処理装置1の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバ3から時刻情報を取得可能であれば、サーバ3を最も正確な時刻を示している装置に決定してもよい。
また、情報処理装置1の稼働中において、他の装置からの要求に応じた時刻情報の提供を行っているサーバ3から時刻情報を取得できない場合もある。この場合、決定手段1bは、サーバ3と時刻合わせが行われた装置から時刻情報を取得可能であれば、その装置を最も正確な時刻を示している装置に決定してもよい。例えば、管理対象装置4が、サーバ3から定期的に時刻情報を取得して、内部の計時手段の時刻合わせを行っている場合、決定手段1bは、管理対象装置4を、最も正確な時刻を示している装置に決定することができる。なお管理対象装置4は、例えばユーザが使用する端末装置からの要求に応じてデータ処理を行う。
さらに情報処理装置1の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバ3から時刻情報を取得できず、サーバ3と時刻合わせが行われた装置からも時刻情報を取得できない場合をあり得る。この場合、例えば決定手段1bは、電池でバックアップされた時計デバイス2を、最も正確な時刻を示している装置に決定することができる。
時刻合わせ手段1cは、決定された装置から時刻情報5を取得し、時刻情報5で示された時刻に、計時手段1aの時刻を合わせる。また時刻合わせ手段1cは、情報処理装置1の稼働中は、電池でバックアップされた時計デバイス2以外の装置から取得した時刻情報が示す時刻に計時手段1aの時刻を設定した場合、計時手段1aが示す時刻に、時計デバイス2の時刻を合わせる。
計算手段1dは、管理対象装置4の内部の計時手段から時刻を示す時刻情報5を取得し、取得した時刻情報5に示された時刻と、計時手段1aが示す時刻との差分時間7を計算する。例えば計算手段1dは、定期的に管理対象装置4の内部の計時手段が示す時刻を取得する。例えば計算手段1dは、計算した時刻を、管理対象装置4に対応付けて、記憶手段1eに格納する。
記憶手段1eは、計算手段1dが計算した差分時間7を記憶する。
起動手段1fは、管理対象装置4の動作を停止させた後に起動する場合、計時手段1aが示す時刻に、管理対象装置4の差分時間を加算して得られる時刻を、管理対象装置4の内部の計時手段の時刻の初期値に指定して、管理対象装置4を起動する。例えば起動手段1fは、管理対象装置4の差分時間を、記憶手段1eから取得する。
起動手段1fは、管理対象装置4の動作を停止させた後に起動する場合、計時手段1aが示す時刻に、管理対象装置4の差分時間を加算して得られる時刻を、管理対象装置4の内部の計時手段の時刻の初期値に指定して、管理対象装置4を起動する。例えば起動手段1fは、管理対象装置4の差分時間を、記憶手段1eから取得する。
このような情報処理装置1によれば、決定手段1bは、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報を取得可能な装置を決定する。例えば、サーバ3が提供している時刻情報の時刻が最も正確であり、次に、時計デバイス2の時刻が正確であるものとする。このとき決定手段1bは、情報処理装置1がサーバ3から時刻情報5を取得可能であれば、サーバ3を最も正確な時刻情報を取得可能な装置と決定する。
なお、情報処理装置1がサーバ3から時刻情報5を取得できない場合であっても、例えば管理対象装置4が、サーバ3から時刻情報5を取得し、内部の計時手段の時刻合わせを行っていることがある。この場合、決定手段1bは、例えば、時計デバイス2の時刻よりも管理対象装置4の内部の計時手段の時刻の方が正確であると判断し、管理対象装置4を、最も正確な時刻情報を取得可能な装置に決定する。
また、情報処理装置1と管理対象装置4とのいずれも、サーバ3から時刻情報5を取得できない場合もある。この場合、決定手段1bは、例えば、時計デバイス2を、最も正確な時刻情報を取得可能な装置に決定する。
決定手段1bによって最も正確な時刻情報を取得可能な装置が決定されると、時刻合わせ手段1cにより、決定された装置から時刻情報5が取得される。そして、時刻合わせ手段1cにより、取得した時刻情報5で示される時刻に、計時手段1aの時刻が合わせられる。
また、情報処理装置1が管理する管理対象装置4がある場合、計算手段1dにより、管理対象装置4の内部の計時手段が示す時刻と、計時手段1aが示す時刻との差を示す差分時間7が算出される。差分時間7の計算は、例えば定期的に実行される。計算された差分時間7は、記憶手段1eに格納される。その後、管理対象装置4が停止し、管理対象装置4を再起動する場合、起動手段1fにより、起動要求8が管理対象装置4に送信される。例えば起動手段1fは、管理対象装置4の起動を指示するユーザからの操作入力に応答して、起動要求8を送信する。送信される起動要求8には、計時手段1aが示す時刻に、管理対象装置4の差分時間を加算して得られる時刻が含まれる。すると、起動要求8を受信した管理対象装置4は、起動要求8に示される時刻を内部の計時手段の初期値に設定し、起動する。
このようにして、管理対象装置4が動作していたときの差分時間を情報処理装置1で保持しておき、管理対象装置4を再起動する際には、計時手段1aが示す時刻に差分時間を加算した時刻を管理対象装置4の内部の計時手段の時刻の初期値とすることができる。その結果、管理対象装置4を再起動しても、停止前の時刻より前の時刻が内部の計時手段の時刻の初期値に設定されるような事態の発生を抑止できる。内部の計時手段の時刻が、停止前よりも前の時刻になると、時刻情報を用いた処理が正常に実行できなくなる可能性がある。そのため、再起動により時刻が遡ることを抑止することで、管理対象装置4の信頼性を向上させることができる。
また、差分時間7で修正した時刻を初期値として管理対象装置4を起動することによって、管理対象装置4が停止していた時間と異なる時間分、管理対象装置4の内部の計時手段の時刻が進んでしまうことを抑止できる。実際に停止していた時間と異なる時間分、管理対象装置4の内部の計時手段の時刻が進んでしまうと、管理対象装置4内のログデータの解析を行う際に正しい解析が行えなくなる。このように、管理対象装置4の停止していた時間分だけ管理対象装置4の内部時計を進ませて管理対象装置4を起動することで、管理対象装置4で記録しているログデータの矛盾などの発生を抑止し、管理対象装置4の動作状況の解析の信頼性を高めることができる。
〔第2の実施の形態〕
第2の実施の形態は、マルチドメインシステムを運用する際に適切な時計を用いて、マルチドメインシステム内の各装置の時刻合わせをするものである。なお、第2の実施の形態では、情報処理装置をコンピュータと呼ぶこととする。
第2の実施の形態は、マルチドメインシステムを運用する際に適切な時計を用いて、マルチドメインシステム内の各装置の時刻合わせをするものである。なお、第2の実施の形態では、情報処理装置をコンピュータと呼ぶこととする。
マルチドメインシステムは、サブシステムと複数のドメインとを有するコンピュータシステムである。サブシステムは、複数のドメインを管理するコンピュータである。例えばサブシステムは、図1に示した情報処理装置1の一例である。複数のドメインは、それぞれが個別に動作可能なコンピュータである。例えば複数のドメインは、それぞれ図1に示した管理対象装置4の一例である。
図2は、第2の実施の形態のシステム構成の一例を示す図である。例えばマルチドメインシステムAは、ネットワーク11を介して端末装置21,22やNTPサーバ501に接続されている。ネットワーク11は、例えば、ローカルエリアネットワーク(LAN:Local Area Network)である。またマルチドメインシステムAは、ネットワーク12を介して端末装置31,32やNTPサーバ500に接続されている。ネットワーク12は、例えばインターネットのような広域ネットワークである。
マルチドメインシステムAは、ドメインと呼ばれる複数のコンピュータを内蔵している。各ドメインは、端末装置31,32からの要求に応じて、各種データ処理を実行する。マルチドメインシステムAは、サブシステムと呼ばれるコンピュータを内蔵している。サブシステムは、端末装置21,22からの指示に従ってマルチドメインシステムA全体を管理する。
NTPサーバ500,501は、正確な時計を有しており、NTPによって他の機器に時刻情報を送信する。例えばNTPサーバ500,501は、GPS(Global Positioning System)、原子時計などの正確な時刻源から、直接または間接的に時刻情報を取得し、内部の時計の時刻合わせを行うことができる。マルチドメインシステムAは、NTPサーバ500,501と通信し、内部時計の時刻合わせを行うことができる。なお、図2ではネットワーク11にNTPサーバ501が接続され、ネットワーク12にNTPサーバ500が接続されているが、いずれのネットワーク11,12にもNTPサーバ500,501が接続されていない場合もある。また、ネットワーク11,12の一方にのみNTPサーバが接続されている場合もある。さらに、NTPサーバ500,501とマルチドメインシステムAとの間で正常に通信できない場合もある。なおNTPサーバ500は、図1に示したサーバ3の一例である。
第2の実施の形態では、マルチドメインシステムAは、ドメインごとに異なるサービスを提供しており、各ドメインで異なる時刻を保持する場合もある。そこで第2の実施の形態では、各ドメインの時刻を意図的に異ならせる場合も想定して、適切な時刻設定を行う。
なお、第2の実施の形態では、サブシステムまたは複数のドメインそれぞれが実行するNTPを用いた時刻合わせは、時間をかけて行われる。例えば、時刻が10秒進んでいた場合、その後の時間の進行を少しだけ遅らせる。すなわち、時間τ秒(τは正の実数)の間に、時計を「τ−10」秒だけ進ませるように調整する。このように、時間をかけて時刻の修正を行うことで、突然時刻が変更されることによるシステムの不具合の発生を抑止することができる。
図3は、第2の実施の形態に係るマルチドメインシステムのハードウェア構成を示す図である。マルチドメインシステムAは、サブシステム100と複数のドメイン200,300,400を有している。またマルチドメインシステムAは、時計デバイスA1を有している。時計デバイスA1は、電池A2によってバックアップされ、水晶発振器などを用いたハードウェアで正確な時刻を刻む時計である。時計デバイスA1は、TOD(Time Of Day)とも呼ばれる。時計デバイスA1は、サブシステム100に接続されている。
サブシステム100と複数のドメイン200,300,400とは、内部バスA3で接続されている。サブシステム100は、ネットワーク11に接続されている。複数のドメイン200,300,400は、ネットワーク12に接続されている。
サブシステム100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してメモリ102と複数の周辺機器が接続されている。
メモリ102は、サブシステム100の主記憶装置として使用される。メモリ102には、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、CPU101による処理に必要な各種データが格納される。
バス107に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、バスインタフェース(IF:InterFace)104、通信IF105、入出力IF106がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、サブシステム100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
バスIF104は、内部バスA3に接続されており、内部バスA3を介してドメイン200,300,400と通信する。
通信IF105は、ネットワーク11に接続されており、ネットワーク11を介して他の機器と通信する。例えば、ネットワーク11を介して接続されたネットワーク上にNTPサーバが接続されている場合、通信IF105によりNTPサーバと通信することができる。
通信IF105は、ネットワーク11に接続されており、ネットワーク11を介して他の機器と通信する。例えば、ネットワーク11を介して接続されたネットワーク上にNTPサーバが接続されている場合、通信IF105によりNTPサーバと通信することができる。
入出力IF106は、入出力ポート108,109を介して、サブシステム100外の機器と接続される。入出力IF106は、入出力ポート108,109に接続された機器からのデータの入力を受け付けると共に、入出力ポート108,109に接続された機器に対してデータを出力する。図3の例では、入出力ポート108を介して時計デバイスA1が接続されている。また入出力ポート109を介して、可搬型の補助記憶装置13が接続されている。
補助記憶装置13は、例えばフラッシュメモリなどの不揮発性の半導体メモリデバイスである。補助記憶装置13には、例えばサブシステム100やドメイン200,300,400で実行させる処理を記述したプログラムを格納しておくことができる。その場合、CPU101は、補助記憶装置13内のプログラムを、入出力IF106を介して読み出し、HDD103にインストールすることができる。またCPU101は、補助記憶装置13内のプログラムを、入出力IF106を介して読み出し、バスIF104を介してドメイン200,300,400に転送することもできる。プログラムを受信したドメイン200,300,400では、それぞれのCPU201,301,401がプログラムをHDD203,303,403にインストールすることができる。
なお、サブシステム100は、光学ドライブ装置を有していてもよい。光学ドライブは、レーザ光などを利用して、光ディスクに記録されたデータの読み取りを行う。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
ドメイン200は、CPU201によって装置全体が制御されている。CPU201には、バス206を介してメモリ202と複数の周辺機器が接続されている。バス206に接続されている周辺機器としては、HDD203、バスIF204、通信IF205がある。
ドメイン300は、CPU301によって装置全体が制御されている。CPU301には、バス306を介してメモリ302と複数の周辺機器が接続されている。バス306に接続されている周辺機器としては、HDD303、バスIF304、通信IF305がある。
ドメイン400は、CPU401によって装置全体が制御されている。CPU401には、バス406を介してメモリ402と複数の周辺機器が接続されている。バス406に接続されている周辺機器としては、HDD403、バスIF404、通信IF405がある。
メモリ202,302,402、HDD203,303,403、バスIF204,304,404、および通信IF205,305,405は、サブシステム100の同名の要素と同じ機能を有している。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
このようなマルチドメインシステムAでは、サブシステム100と複数のドメイン200,300,400それぞれとが、個別に時刻を管理している。すなわちサブシステム100と複数のドメイン200,300,400とは、それぞれソフトウェアによるシステムクロックを有している。そしてサブシステム100と複数のドメイン200,300,400とは、システムクロックを適宜、他の時計に合わせることで、時刻のずれを抑制している。
このようなマルチドメインシステムAでは、サブシステム100と複数のドメイン200,300,400それぞれとが、個別に時刻を管理している。すなわちサブシステム100と複数のドメイン200,300,400とは、それぞれソフトウェアによるシステムクロックを有している。そしてサブシステム100と複数のドメイン200,300,400とは、システムクロックを適宜、他の時計に合わせることで、時刻のずれを抑制している。
サブシステム100と複数のドメイン200,300,400との時刻合わせには、例えばマルチドメインシステムAに内蔵された時計デバイスA1や、ネットワーク経由で接続されたNTPサーバ500,501が利用される。また各ドメイン200,300,400の起動時には、サブシステム100から起動時の時刻の初期値が通知される。
このようなマルチドメインシステムAでは、サブシステム100の時間精度は、時計デバイスA1に比べ低い。しかも、時刻精度の高い時計デバイスA1は、電池A2でバックアップされているため、サブシステム100が停止中であっても時刻を刻んでいる。そのため、サブシステム100の起動時には、時計デバイスA1の時刻がサブシステム100で読み出され、サブシステム100のシステムクロックの初期値に設定される。しかし、サブシステム100のシステムクロックの精度が時計デバイスA1に比べて低いことから、サブシステム100が長時間動作する間にシステムクロックの誤差は徐々に大きくなってしまう。そこで、第2の実施の形態では、サブシステム100のシステムクロックの誤差を、正確な時計を用いて適宜修正可能とする。
また、いずれかのドメインを用いてソフトウェアの動作検証を行う場合などは、意図的にドメインのシステムクロックの時刻を、サブシステム100のシステムクロックの時刻と異なる時刻に設定する場合もある。そこで、サブシステム100では、各ドメイン200,300,400のシステムクロックの時刻と、サブシステム100のシステムクロックの時刻との差分時間を保持しておく。このときドメインのシステムクロックの時刻を、ユーザ操作で意図的に変更した場合の変動分を差分時間としたのでは、差分時間の正確性に欠ける。しかも、各ドメイン200,300,400のシステムクロックの精度は、時計デバイスA1に比べて低い。そのため、マルチドメインシステムAを運用している間に、サブシステム100のシステムクロックの時刻と、各ドメイン200,300,400のシステムクロックの時刻との差分は変動する。
そこで、第2の実施の形態では、適宜、サブシステム100においてドメイン200,300,400のシステムクロックの時刻を示す時刻情報を取得し、差分情報を更新することで、差分情報の正確性を担保する。例えば差分情報を正確に保つことで、各ドメイン200,300,400を再起動しても、停止前の時刻に、停止時間が加算された時刻を各ドメイン200,300,400起動時のシステムクロックの初期値とすることができる。その結果、停止前の差分を保ったままドメイン200,300,400を再起動し、再起動を行ったことによる時刻情報の不整合を抑止することができる。
なお、サブシステム100と各ドメイン200,300,400とのそれぞれを、NTPサーバ500,501と時刻同期させれば、各装置のシステムクロックを正確に保つことが可能である。しかし、実際の運用では、NTPサーバ500,501への接続に制約がある場合がある。例えばドメイン200,300,400については、ユーザへのサービス提供のために、不特定多数のユーザが接続可能な広域ネットワークに接続するが、サブシステム100は、マルチドメインシステムAの管理者のみがアクセスできるようにしたい場合がある。しかも管理者が使用する端末装置21,22とサブシステム100とを接続するネットワーク11に、NTPサーバ501が設置されていない場合がある。この場合、ドメイン200,300,400はNTPサーバ500と時刻同期してシステムクロックを正確に保つことが可能な一方で、サブシステム100はいずれのNTPサーバにも接続できない。すると、サブシステム100のシステムクロックよりも、ドメイン200,300,400のシステムクロックの方が正確となる。そこで、第2の実施の形態では、ドメイン200,300,400がNTPサーバ500と時刻同期している場合、ドメイン200,300,400のシステムクロックを用いて、サブシステム100のシステムクロックの時刻合わせを行う。これにより、サブシステム100のシステムクロックの時刻の正確性を向上させることができる。
以下、このような運用状況に応じた時刻合わせを行うための機能、および処理について、詳細に説明する。
図4は、第2の実施の形態に係るマルチドメインシステムの機能を示すブロック図である。サブシステム100は、システムクロック110、基準時計判別部120、同期部130、ドメイン起動部140、差分記憶部150、および差分計算部160を有している。
図4は、第2の実施の形態に係るマルチドメインシステムの機能を示すブロック図である。サブシステム100は、システムクロック110、基準時計判別部120、同期部130、ドメイン起動部140、差分記憶部150、および差分計算部160を有している。
システムクロック110は、サブシステム100のCPU101がソフトウェアによって実現している時計である。サブシステム100は、所定のイベントにタイムスタンプを付す処理やドメイン200,300,400を起動する処理のような時刻を参照する処理があると、システムクロック110の時刻を参照する。
基準時計判別部120は、ネットワークを経由してアクセス可能な時計を含め、どの時計の時刻を基準とするのかを判別する。第2の実施の形態では、基準とする時刻の参照元として利用可能な時計として、時計デバイスA1、NTPサーバ501、およびドメイン200,300,400それぞれが有するシステムクロック210,310,410がある。基準時計判別部120は、より正確な時計を適宜判断し、その時計を基準時計とする。そして、基準時計判別部120は、基準時計に示される時刻を、時刻合わせの基準とすることを決定する。
同期部130は、システムクロック110の時刻を基準時計に示される時刻に同期させる。ここで時刻の同期とは、同期先の時計の時刻に、同期対象の時計の時刻を合わせる処理である。例えば同期部130は、NTPサーバ501の時刻に、システムクロック110の時刻を同期させる場合、NTPサーバ501に示される時刻と同じ時刻が、システムクロック110に設定される。
ドメイン起動部140は、ドメイン200,300,400の起動制御を行う。ドメイン起動部140は、いずれかのドメインを起動する際には、時刻情報を付加した起動命令を起動対象のドメインに送信する。起動命令に付加される時刻情報は、システムクロック110が示す時刻を、起動対象のドメインに対応する差分時間で修正した時刻である。なおドメインごとの差分時間は、差分記憶部150から取得できる。
差分記憶部150は、ドメイン200,300,400それぞれの時刻の差分時間を記憶する。例えばメモリ102やHDD103の記憶領域の一部が、差分記憶部150として使用される。
差分計算部160は、ドメイン200,300,400から、それぞれのシステムクロック210,310,410が示す時刻を取得する。そして差分計算部160は、ドメイン200,300,400それぞれのシステムクロック210,310,410が示す時刻と、サブシステム100内のシステムクロック110が示す時刻との差分時間を計算する。差分計算部160は、計算した差分時間を差分記憶部150に格納する。
ドメイン200は、システムクロック210、同期部220、および時刻報告部230を有する。
システムクロック210は、ドメイン200のCPU201がソフトウェアによって実現している時計である。ドメイン200は、所定のイベントにタイムスタンプを付す処理のような時刻を参照する処理があると、システムクロック210の時刻を参照する。
システムクロック210は、ドメイン200のCPU201がソフトウェアによって実現している時計である。ドメイン200は、所定のイベントにタイムスタンプを付す処理のような時刻を参照する処理があると、システムクロック210の時刻を参照する。
同期部220は、システムクロック210の時刻を基準時刻に同期させる。例えば同期部220は、NTPによる時刻同期が可能な装置のリストを有する。時刻同期が可能な装置のリストには、例えばNTPサーバ500が最上位に登録され、その次にサブシステム100が登録される。同期部220は、時刻同期が可能な装置のリストの上位から順に、その装置と通信可能か否かを判断し、通信可能な最も上位の装置との間でNTPによる時刻同期を行う。
時刻報告部230は、サブシステム100に対して、ドメイン200内のシステムクロック210が示す時刻を報告する。
ドメイン300は、システムクロック310、同期部320、および時刻報告部330を有する。ドメイン400は、システムクロック410、同期部420、および時刻報告部430を有する。ドメイン300,400それぞれの各要素は、ドメイン200の同名の要素と同じ機能を有している。
ドメイン300は、システムクロック310、同期部320、および時刻報告部330を有する。ドメイン400は、システムクロック410、同期部420、および時刻報告部430を有する。ドメイン300,400それぞれの各要素は、ドメイン200の同名の要素と同じ機能を有している。
なお各ドメイン200,300,400にはドメイン名が設定されている。図4の例では、ドメイン200のドメイン名は「ドメイン#0」、ドメイン300のドメイン名は「ドメイン#1」、ドメイン400のドメイン名は「ドメイン#2」である。
次に差分記憶部150のデータ構造例について説明する。
図5は、差分記憶部のデータ構造の一例を示す図である。差分記憶部150には、差分管理テーブル151が格納されている。差分管理テーブル151には、ドメイン名と差分時間との欄が設けられている。
図5は、差分記憶部のデータ構造の一例を示す図である。差分記憶部150には、差分管理テーブル151が格納されている。差分管理テーブル151には、ドメイン名と差分時間との欄が設けられている。
ドメイン名の欄には、マルチドメインシステムA内の各ドメイン200,300,400の名称が設定されている。差分時間の欄には、対応するドメインの差分時間が設定されている。図5の例ではドメイン名「ドメイン#0」のドメイン200の差分時間は、「+0.152秒」である。ドメイン名「ドメイン#1」のドメイン300の差分時間は、「0秒」である。ドメイン名「ドメイン#2」のドメイン400の差分時間は「−12.38秒」である。
図3〜図5に示した構成のシステムによって、サブシステム100とドメイン200,300,400とが、適宜、その時点で適切な時計を基準時計として、基準時計に自己のシステムクロックを合わせる。第2の実施の形態では、NTPサーバ500,501の時計が最も精度が高く、次にマルチドメインシステムA内の時計デバイスA1の精度が高いものとする。また、サブシステム100内のシステムクロック110の精度は、NTPサーバ500,501や時計デバイスA1に比べて低い。同様に、ドメイン200,300,400内のシステムクロック210,310,410の精度も、NTPサーバ500,501や時計デバイスA1に比べて低い。このようにシステムクロックの精度がNTPサーバ500,501や時計デバイスA1より低いのは、以下の理由による。
時計デバイスA1は、ハードウェアクロックであり、水晶発振器などを用いて高い精度を得ることができる。他方、システムクロック110は、CPU101がソフトウェアで実現した時計であり、CPU101の負荷状況の変化などの不安定要因がある。そのため、時計デバイスA1よりも精度が低い。またNTPサーバ500は、全地球測位システム(GPS:Global Positioning System)、標準電波、原子時計などの正確な時刻源に直接または間接的に接続されており、非常に正確な時刻を用いて適宜時刻合わせが行われている。その結果、相対的に、システムクロックの時刻の精度が最も低くなる。
ところで、マルチドメインシステムAから、NTPサーバ500,501に接続するか否かは、管理者の任意である。例えば、マルチドメインシステムAを、NTPサーバ500またはNTPサーバ501から切り離して運用することも可能である。
サブシステム100は、このような運用されているシステムの構成に応じて、適切な基準時計を判断する。
図6は、サブシステムにおける時刻同期処理の手順を示すフローチャートの前半である。以下、図6に示す処理をステップ番号に沿って説明する。
図6は、サブシステムにおける時刻同期処理の手順を示すフローチャートの前半である。以下、図6に示す処理をステップ番号に沿って説明する。
[ステップS11]サブシステム100が起動する。例えばネットワーク11を介して起動要求が入力されると、サブシステム100が起動する。
[ステップS12]同期部130は、システムクロック110の時刻を初期化する。例えば、同期部130は、時計デバイスA1の時刻を読み出し、読み出した時刻をシステムクロック110の初期値として設定する。
[ステップS12]同期部130は、システムクロック110の時刻を初期化する。例えば、同期部130は、時計デバイスA1の時刻を読み出し、読み出した時刻をシステムクロック110の初期値として設定する。
[ステップS13]基準時計判別部120は、同期対象のNTPサーバが未設定か否かを判断する。例えば、基準時計判別部120には、NTPを有効にするか無効にするかが予め登録されている。基準時計判別部120は、NTPを無効にする旨の設定がされている場合、同期対象のNTPサーバが未設定と判断する。また基準時計判別部120は、時刻同期が可能な装置のリストを有している。時刻同期が可能な装置のリストには、例えばNTPサーバなどの装置のアドレスが含まれる。また時刻同期が可能な装置のリスト内に装置がまったく登録されていない場合、基準時計判別部120は、同期対象のNTPサーバが未設定であると判断する。NTPが有効であり、時刻同期が可能な装置のリスト内に少なくとも1つの装置が登録されている場合、基準時計判別部120は、時刻同期が可能な装置のリストへの登録順が上位の装置から優先的に時刻同期相手に決定する。
なお、マルチドメインシステムA内の各ドメイン200,300,400も、時刻同期が可能な装置のリストに登録することができる。例えば、マルチドメインシステムAの管理者は、時刻同期が可能な装置のリストにNTPサーバを上位に登録した後に、NTPサーバよりも下位にドメイン200,300,400を登録しておく。こうすることで、サブシステム100自身は外部のNTPサーバに時刻同期できない場合であっても、ドメイン200,300,400が外部のNTPサーバと時刻同期していれば、サブシステム100は、ドメイン200,300,400と時刻同期が可能となる。
基準時計判別部120は、NTPサーバが未設定であれば、処理をステップS19に進める。また基準時計判別部120は、NTPサーバが設定されていれば、処理をステップS14に進める。
[ステップS14]基準時計判別部120は、設定されたNTPサーバと同期可能か否かを判断する。例えば基準時計判別部120は、設定されたNTPサーバに対して、状態を問い合わせるコマンドを送信する。そのコマンドに対して、正常に動作していることを示す応答が返された場合、基準時計判別部120は、NTPサーバが同期可能であると判断する。
基準時計判別部120は、NTPサーバが同期可能な場合、そのNTPサーバを基準時計に決定し、処理をステップS15に進める。また基準時計判別部120は、NTPサーバが同期できない場合、処理をステップS16に進める。
[ステップS15]同期部130は、登録されているNTPサーバと時刻同期を行い、システムクロック110の時刻合わせを行う。同期部130は、その後、処理をステップS18に進める。
[ステップS16]基準時計判別部120は、NTPサーバとの間で時刻同期が完了したドメインと時刻同期が可能か否かを判断する。例えば、基準時計判別部120は、ドメイン200,300,400が他のNTPサーバと正しく時刻同期ができたかどうかを、ドメイン200,300,400に問い合わせる。例えば基準時計判別部120は、ドメイン200,300,400に対して同期状態を確認するコマンドを送信することで、時刻同期ができたかどうかを確認することができる。例えば基準時計判別部120は、同期状態を確認するコマンドに対して、同期が正常に完了したことを示す情報を応答したドメインについて、NTPサーバとの同期が完了しているものと認識する。同期状態を確認するコマンドとしては、例えばLinux(登録商標)ではntpstatコマンドを利用することができる。
基準時計判別部120は、NTPサーバとの間で時刻同期が完了したドメインが少なくとも1つあれば、NTPサーバとの間で時刻同期が完了したドメインと時刻同期が可能と判断する。基準時計判別部120は、NTPサーバとの間で時刻同期が完了したドメインと時刻同期が可能であれば、処理をステップS17に進める。また、基準時計判別部120は、NTPサーバとの間で時刻同期が完了したドメインと時刻同期が不可能であれば、処理をステップS19に進める。
[ステップS17]同期部130は、NTPサーバとの間で時刻同期が完了したドメインと時刻同期を行い、システムクロック110の時刻合わせを行う。
[ステップS18]同期部130は、時計デバイスA1の時刻を更新する。例えば同期部130は、システムクロック110が示す時刻を、時計デバイスA1に書き込む。その後、同期部130は処理をステップS21(図7参照)に進める。
[ステップS18]同期部130は、時計デバイスA1の時刻を更新する。例えば同期部130は、システムクロック110が示す時刻を、時計デバイスA1に書き込む。その後、同期部130は処理をステップS21(図7参照)に進める。
[ステップS19]同期部130は、NTPサーバが未設定か、NTPサーバまたはドメインとの時刻同期に失敗した場合、時計デバイスA1を用いてシステムクロック110の時刻合わせを行う。例えば同期部130は、OSに予め用意されている時刻合わせの関数を実行し、時計デバイスA1の時刻にシステムクロック110の時刻を同期させる。時刻合わせの関数としては、例えばLinux(登録商標)ではadjtimex(2)関数がある。その後、同期部130は処理をステップS21(図7参照)に進める。
図7は、サブシステムにおける時刻同期処理の手順を示すフローチャートの後半である。以下、図7に示す処理をステップ番号に沿って説明する。
[ステップS21]ドメイン起動部140は、マルチドメインシステムA内のドメインのうち、ステップS22〜ステップS25の処理を未処理のドメインを1つ選択する。例えばドメイン起動部140は、マルチドメインシステムA内のドメイン名のリストを有する。ドメイン名のリストには、処理済みか否かを示すフラグが設定されている。そしてドメイン起動部140は、ドメイン名のリストの中から、未処理のフラグが設定されているドメインを1つ選択する。
[ステップS21]ドメイン起動部140は、マルチドメインシステムA内のドメインのうち、ステップS22〜ステップS25の処理を未処理のドメインを1つ選択する。例えばドメイン起動部140は、マルチドメインシステムA内のドメイン名のリストを有する。ドメイン名のリストには、処理済みか否かを示すフラグが設定されている。そしてドメイン起動部140は、ドメイン名のリストの中から、未処理のフラグが設定されているドメインを1つ選択する。
[ステップS22]ドメイン起動部140は、選択したドメインについて起動するか否かを判断する。例えばドメイン起動部140には、予めサブシステム100の起動と同時に起動するドメイン名が予め登録されている。そしてドメイン起動部140は、サブシステム100起動後のステップS22の最初の処理では、予め登録されている識別子に対応するドメインについて起動するものと判断する。また、サブシステム100の稼働中に管理者よりドメインの起動指示が入力されると、ドメイン起動部140は、起動指示後の最初のステップS22の処理において、起動指示で指定されたドメインについて起動するものと判断する。
ドメイン起動部140は、選択したドメインを起動すると判断した場合、処理をステップS23に進める。またドメイン起動部140は、選択したドメインを起動しないと判断した場合、処理をステップS24に進める。
[ステップS23]ドメイン起動部140は、選択したドメインに対して、そのドメインの時刻の初期値を指定した起動要求を送信する。選択したドメインの時刻の初期値は、差分記憶部150に示される該当ドメインの差分時間を、サブシステム100のシステムクロック110の時刻に加算した値である。起動要求を取得したドメインは、指定された初期値を、そのドメインのシステムクロックの初期値に設定した上で起動する。
[ステップS24]差分計算部160は、選択したドメインが稼働中か否かを判断する。例えば差分計算部160は、各ドメイン200,300,400に対して定期的に稼働中か否かの確認メッセージを送信し、応答があったドメインを稼働中と認識する。差分計算部160は、選択したドメインが稼働中であれば、処理をステップS25に進める。また差分計算部160は、選択したドメインが停止中であれば、処理をステップS26に進める。
[ステップS25]差分計算部160は、選択したドメインの差分時間を更新する。例えば差分計算部160は、選択したドメインに対してポーリングを行う。すると選択したドメインの時刻報告部が、差分計算部160に対して、システムクロックの時刻を送信する。差分計算部160は、選択したドメインのシステムクロックの時刻と、サブシステム100のシステムクロック110の時刻との差分時間を計算する。例えば差分計算部160は、選択したドメインのシステムクロックの時刻から、サブシステム100のシステムクロック110の時刻を減算する。選択したドメインのシステムクロックの方が、サブシステム100のシステムクロック110より進んでいれば、差分時間は正の値となる。選択したドメインのシステムクロックの方が、サブシステム100のシステムクロック110より遅れていれば、差分時間は負の値となる。
[ステップS26]ドメイン起動部140は、すべてのドメインに対してステップS22〜ステップS25の処理を実行したか否かを判断する。例えばドメイン起動部140は、予め保持しているドメイン名のリスト内の直近に選択したドメイン名に対して、処理済みのフラグを設定する。その後、ドメイン起動部140は、ドメイン名のリスト内に、未処理のフラグが設定されているドメイン名がなければ、すべてのドメインについて処理を実行済みと判断する。ドメイン名のリスト内に、未処理のフラグが設定されているドメイン名が少なくとも1つでもあれば、ドメイン起動部140は、未処理のドメインがあると判断する。
すべてのドメインについて処理が実行済みであれば、ドメイン起動部140は、すべてのドメインの処理状態を未処理に初期化する。例えばドメイン起動部140は、ドメイン名のリスト内のすべてのドメイン名に、未処理のフラグを設定する。その後、ドメイン起動部140は、処理をステップS13(図6参照)に進める。
未処理のドメインがあれば、ドメイン起動部140は、処理をステップS21に進める。
このように、サブシステム100は、NTPサーバの接続状況やドメインの稼働状況に応じて、適切な時計を基準時計に決定し、システムクロック110の時刻を基準時計に合わせる。
このように、サブシステム100は、NTPサーバの接続状況やドメインの稼働状況に応じて、適切な時計を基準時計に決定し、システムクロック110の時刻を基準時計に合わせる。
次に、各ドメインの差分時間処理について詳細に説明する。
図8は、差分時間更新処理の手順を示すシーケンス図である。以下、図8に示すシーケンス図をステップ番号に沿って説明する。なお図8には、ドメイン200の差分時間を更新する場合の例を示している。
図8は、差分時間更新処理の手順を示すシーケンス図である。以下、図8に示すシーケンス図をステップ番号に沿って説明する。なお図8には、ドメイン200の差分時間を更新する場合の例を示している。
[ステップS31]サブシステム100の差分計算部160は、ドメイン200が稼働中か否かを判断する。例えば差分計算部160は、ドメイン200に対して動作しているか否かを問い合わせるコマンドを送信し、正しく応答があれば稼働中であると判断する。差分計算部160は、ドメイン200が稼働中であれば、処理をステップS32に進める。差分計算部160は、ドメイン200が稼働中でなければ、処理を終了する。
[ステップS32]差分計算部160は、変数Ts1に、システムクロック110の時刻を設定する。ここで変数Ts1は、ドメイン200に対する時刻取得要求の開始時刻を示す変数である。
[ステップS33]差分計算部160は、時刻取得要求をドメイン200に対して送信する。
[ステップS34]ドメイン200の時刻報告部230は、サブシステム100から送られた時刻取得要求を受信する。このとき時刻報告部230は、変数Td1に、システムクロック210の時刻を設定する。ここで変数Td1は、ドメインにおける時刻取得要求の取得時刻を示す変数である。
[ステップS34]ドメイン200の時刻報告部230は、サブシステム100から送られた時刻取得要求を受信する。このとき時刻報告部230は、変数Td1に、システムクロック210の時刻を設定する。ここで変数Td1は、ドメインにおける時刻取得要求の取得時刻を示す変数である。
[ステップS35]時刻報告部230は、サブシステム100に対して時刻情報を応答する。このとき時刻報告部230は、変数Td2に、システムクロック210の時刻を設定する。ここで変数Td2は、ドメインにおける時刻取得要求の応答時刻を示す変数である。応答する時刻情報には、変数Td1と変数Td2とが含まれる。
[ステップS36]サブシステム100の差分計算部160は、ドメイン200から送られた時刻情報を受信する。
[ステップS37]差分計算部160は、変数Ts2に、システムクロック110の時刻を設定する。ここで変数Ts2は、ドメイン200からの時刻情報の受信時刻を示す変数である。
[ステップS37]差分計算部160は、変数Ts2に、システムクロック110の時刻を設定する。ここで変数Ts2は、ドメイン200からの時刻情報の受信時刻を示す変数である。
[ステップS38]差分計算部160は、差分時間を計算する。例えば差分計算部160は、「差分時間=((Ts2+Ts1)−(Td2+Td1))/2」とする。
[ステップS39]差分計算部160は、算出した差分時間を差分記憶部150に格納する。具体的には、差分計算部160は、差分計算部160内の差分管理テーブル151のおけるドメイン200のドメイン名「ドメイン#0」の差分時間を、ステップS38で算出した差分時間に変更する。
[ステップS39]差分計算部160は、算出した差分時間を差分記憶部150に格納する。具体的には、差分計算部160は、差分計算部160内の差分管理テーブル151のおけるドメイン200のドメイン名「ドメイン#0」の差分時間を、ステップS38で算出した差分時間に変更する。
このようにして、ドメインごとの差分時間を更新することができる。
ところで、差分時間は、通信の遅延を考慮して計算される。
図9は、差分時間の概念を示す図である。差分時間の算出の際には、ドメイン200とサブシステム100、受信と応答でそれぞれの時刻を記録する。その時刻を用いて、ドメイン200とサブシステム100間で生じる通信遅延時間を含めない差分時間を計算することができる。
ところで、差分時間は、通信の遅延を考慮して計算される。
図9は、差分時間の概念を示す図である。差分時間の算出の際には、ドメイン200とサブシステム100、受信と応答でそれぞれの時刻を記録する。その時刻を用いて、ドメイン200とサブシステム100間で生じる通信遅延時間を含めない差分時間を計算することができる。
図9の例では、ドメイン200のイベントを契機として差分時間を計算している。この場合、ドメイン200の起動時に、ドメイン200の時刻報告部230からサブシステム100に対して、記録開始要求が出される。サブシステム100の差分計算部160は、記録開始要求を受け取ると、ドメイン200のドメイン名を差分管理テーブル151に追加する。この際、ドメイン200の差分時間には、初期値(例えば「0」)が設定される。
その後、サブシステム100の差分計算部160により時刻取得要求が送信される。送信された時刻取得要求は、ドメイン200の時刻報告部230で受信される。このとき、時刻取得要求の送信時刻Ts1から時刻取得要求の受信時刻Td1までに、通信遅延に起因する時間差が存在する。
時刻報告部230は、時刻取得要求を取得すると時刻情報を応答する。応答された時刻情報は、サブシステム100の差分計算部160で受信される。このとき、時刻情報が送信時刻Td2から時刻情報の受信時刻Ts2までに、通信遅延に起因する時間差が存在する。
通信の片道分の通信遅延時間の平均(通信遅延時間)は、
通信遅延時間=((Ts2−Ts1)−(Td2−Td1))/2
となる。すると、ドメイン200のシステムクロック210とサブシステム100のシステムクロック110との差を示す差分時間は、通信遅延時間の分だけ減算することで、正確な差分時間となる。式で表すと以下のようになる。
差分時間=Ts2−通信遅延時間−Td2=((Ts2+Ts1)−(Td2+Td1))/2
このように通信遅延時間を考慮して差分時間を求めることで、差分時間を正確に求めることができる。
通信遅延時間=((Ts2−Ts1)−(Td2−Td1))/2
となる。すると、ドメイン200のシステムクロック210とサブシステム100のシステムクロック110との差を示す差分時間は、通信遅延時間の分だけ減算することで、正確な差分時間となる。式で表すと以下のようになる。
差分時間=Ts2−通信遅延時間−Td2=((Ts2+Ts1)−(Td2+Td1))/2
このように通信遅延時間を考慮して差分時間を求めることで、差分時間を正確に求めることができる。
なお図8、図9では、ドメイン200の差分時間の更新例として説明したが、同様の差分時間の更新処理は、稼働しているすべてのドメインに対して独立に実行される。その結果、各ドメインの差分時間が求められ、差分記憶部150に格納される。
また、差分時間を計算するタイミングは、ドメインのイベントを契機とする以外に、ドメインのシャットダウン、ドメインの時刻変更、サブシステム100の時刻変更、サブシステム100からのポーリングがある。サブシステム100からポーリングを行う場合は、ドメインの負荷を軽減させるため、ポーリングの周期を、例えば1000秒に1回程度とする。
以下、運用状況に応じた、時刻合わせの例を具体的に説明する。
図10は、システムの運用構成に応じた各装置の適切な基準時計の例を示す図である。各装置の関係は、上位、中位、下位で表される。中位の装置は、稼働中であれば、上位の装置の時刻を用いて、自己のシステムクロックの時刻合わせを行う。下位の装置は、稼働中であれば、上位または中位の装置の時刻を用いて、自己のシステムクロックの時刻合わせを行う。
図10は、システムの運用構成に応じた各装置の適切な基準時計の例を示す図である。各装置の関係は、上位、中位、下位で表される。中位の装置は、稼働中であれば、上位の装置の時刻を用いて、自己のシステムクロックの時刻合わせを行う。下位の装置は、稼働中であれば、上位または中位の装置の時刻を用いて、自己のシステムクロックの時刻合わせを行う。
なお各装置の起動時は、時刻情報を取得可能な装置に制限がある。例えばサブシステム100とドメイン200,300,400は、起動時にはNTPサーバ500と通信することができない。ただし、ドメイン200,300,400は、起動時であっても、サブシステム100から時刻情報を取得することはできる。
また、ドメイン200,300,400はサブシステム100からの起動命令によって起動する。そのため、ドメイン200,300,400の起動以前には、サブシステム100は稼働中となっている。
図10の項番「1−1」〜「1−4」には、マルチドメインシステムAに対して、NTPサーバ500を接続しない運用構成(第1の運用構成)の例が示されている。この場合、サブシステム100が上位、ドメイン200,300,400が下位となる。
この運用構成では、サブシステム100の起動時(項番「1−1」)および稼働中(項番「1−2」)は、サブシステム100にとっての基準時計は時計デバイスA1となる。例えばサブシステム100の同期部130は、起動時に時計デバイスA1の時刻を読み出し、システムクロック110の初期値に設定する。またサブシステム100の同期部130は、稼働中に、定期的に同期コマンド(例えばLinux(登録商標)ではadjtimex(8)コマンド)を実行して、時計デバイスA1の時刻にシステムクロック110の時刻を同期させる。
ドメイン200,300,400の起動時(項番「1−3」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。ただし、この場合、ドメイン200,300,400のシステムクロック210,310,410は、システムクロック110の時刻を差分時間で修正した時刻に合わせられる。例えばドメイン200を起動する場合、サブシステム100のドメイン起動部140は、サブシステム100のシステムクロック110にドメイン200に対応する差分時間を加算した時刻を示す時刻情報を付加した起動要求を、ドメイン200に対して送信する。するとドメイン200のCPU201は、起動要求に付加された時刻情報に示される時刻を、システムクロック210,310,410の初期値として、ドメイン200を起動する。
ドメイン200,300,400の稼働中(項番「1−4」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。例えば、同期部220,320,420が定期的に、NTPによりシステムクロック210,310,410の時刻を、サブシステム100のシステムクロック110の時刻に同期させる。
図10の項番「2−1」〜「2−4」には、サブシステム100に対してNTPサーバ501を接続した運用構成(第2の運用構成)の例が示されている。この場合、NTPサーバ501が上位、サブシステム100が中位、ドメイン200,300,400が下位となる。
この運用構成では、サブシステム100の起動時(項番「2−1」)は、サブシステム100にとっての基準時計は時計デバイスA1となる。サブシステム100が稼働中(項番「2−2」)は、サブシステム100にとっての基準時計はNTPサーバ501となる。例えば、サブシステム100の同期部130は定期的に、システムクロック110の時刻をNTPサーバ501の時刻に同期させる。
ドメイン200,300,400の起動時(項番「2−3」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。ただし、この場合、ドメイン200,300,400のシステムクロック210,310,410は、システムクロック110の時刻を差分時間で修正した時刻に合わせられる。ドメイン200,300,400の稼働中(項番「2−4」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。
図10の項番「3−1」〜「3−4」には、ドメイン200,300,400に対してNTPサーバ500を接続した運用構成(第3の運用構成)の例が示されている。この場合、NTPサーバ500が上位、ドメイン200,300,400が中位、サブシステム100が下位となる。
この運用構成では、サブシステム100の起動時(項番「3−1」)は、サブシステム100にとっての基準時計は時計デバイスA1となる。サブシステム100の稼働中(項番「3−2」)は、いずれのドメインも稼働していなければ、サブシステム100にとっての基準時計は時計デバイスA1となる。他方、サブシステム100の稼働中において、少なくとも1つのドメインが稼働していれば、サブシステム100にとっての基準時計は、稼働中のドメインのシステムクロックとなる。この場合、サブシステム100の同期部130が定期的に、NTPによりシステムクロック110の時刻を、稼働中のサブシステムのシステムクロックの時刻に同期させる。
ドメイン200,300,400の起動時(項番「3−3」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。ただし、この場合、ドメイン200,300,400のシステムクロック210,310,410は、システムクロック110の時刻を差分時間で修正した時刻に合わせられる。ドメイン200,300,400の稼働中(項番「3−4」)は、ドメインの基準時計は、NTPサーバ500となる。この場合、ドメイン200,300,400の同期部220,320,420が定期的に、NTPによりシステムクロック210,310,410の時刻を、NTPサーバ500の時刻に同期させる。
次に、図10に示す運用構成が運用中に変化する場合の基準時計の変更例について説明する。
図11は、マルチドメインシステムの運用状況の第1の例を示す図である。運用状況の第1の例は、サブシステム100にNTPサーバが接続されていない場合の例である。また図11の例では、サブシステム100は、ドメイン200,300,400のシステムクロック210,310,410との時刻同期も行わない。
図11は、マルチドメインシステムの運用状況の第1の例を示す図である。運用状況の第1の例は、サブシステム100にNTPサーバが接続されていない場合の例である。また図11の例では、サブシステム100は、ドメイン200,300,400のシステムクロック210,310,410との時刻同期も行わない。
図11の初期状態(図11の上段)では、サブシステム100と複数のドメイン200,300,400とのいずれにもNTPサーバが接続されていない。その後、運用中(図11の下段)にドメイン200,300,400に対してNTPサーバ500が接続されている。
初期状態では、マルチドメインシステムA内のいずれの装置もNTPサーバに接続されていない。そのため、時計デバイスA1の時刻が最も信頼できる。すなわち時計デバイスA1が基準時計となる。そこで、時計デバイスA1の時刻がサブシステム100に渡され、サブシステム100内のシステムクロック110の時刻合わせが行われる。
また、ドメイン200,300,400は、NTPによりサブシステム100と時刻同期を行う。例えばサブシステム100のシステムクロック110が示す時刻がドメイン200,300,400に渡され、ドメイン200,300,400内のシステムクロック210,310,410の時刻が、システムクロック110が示す時刻に合わせられる。
時計デバイスA1の時計精度は、システムクロック110に比べて高いため、NTPサーバがない環境でも、システム全体の時計精度を高く維持できる。
運用中のドメイン200,300,400にNTPサーバ500が接続されると、ドメイン200,300,400は、NTPによりNTPサーバ500と時刻同期を行う。例えばNTPサーバ500が示す時刻がドメイン200,300,400に渡され、ドメイン200,300,400内のシステムクロック210,310,410の時刻が、NTPサーバ500から提供される時刻情報の時刻に合わせられる。ドメイン200,300,400内のシステムクロック210,310,410は、NTPサーバ500の時刻に合わせられる。
運用中のドメイン200,300,400にNTPサーバ500が接続されると、ドメイン200,300,400は、NTPによりNTPサーバ500と時刻同期を行う。例えばNTPサーバ500が示す時刻がドメイン200,300,400に渡され、ドメイン200,300,400内のシステムクロック210,310,410の時刻が、NTPサーバ500から提供される時刻情報の時刻に合わせられる。ドメイン200,300,400内のシステムクロック210,310,410は、NTPサーバ500の時刻に合わせられる。
運用中のドメイン200,300,400にNTPサーバ500が接続された場合、サブシステム100のシステムクロック110が示す時刻より、各ドメイン200,300,400のシステムクロック210,310,410が示す時刻の方が正確となる。サブシステム100のシステムクロック110が示す時刻と、各ドメイン200,300,400のシステムクロック210,310,410が示す時刻とのずれを示す差分時間は、差分記憶部150に保持される。この差分時間を、ドメイン200,300,400起動時のシステムクロック210,310,410の初期値とすることにより、ドメイン200,300,400の停止期間があっても、停止直前の差分時間を維持して起動される。
図12は、マルチドメインシステムの運用状況の第1の例における時刻合わせを時系列に示す図である。サブシステム100の起動時には、時計デバイスA1の時刻が、システムクロック110に設定される。その後、定期的にサブシステム100の同期部130によって時計デバイスA1の時刻が読み出され、システムクロック110の時刻が更新される。
ドメイン200の起動時には、サブシステム100のシステムクロック110で示される時刻にドメイン200の差分時間を加算した時刻が、ドメイン200のシステムクロック210に設定される。その後、ドメイン200がNTPサーバ500に未接続の間は、ドメイン200は、システムクロック210を、サブシステム100のシステムクロック110にNTPによって時刻同期させ、システムクロック210の時刻を合わせる。
ドメイン200がNTPサーバ500に接続されると、NTPサーバ500との時刻同期により、NTPサーバ500で示される時刻がシステムクロック210に設定される。サブシステム100では、ドメイン200のシステムクロック210が示す時刻と、サブシステム100のシステムクロック110が示す時刻との差分時間が定期的に計算され、差分記憶部150に格納される。差分時間の格納は、ドメイン200が停止(シャットダウン)されるまで、定期的に実行される。差分時間が定期的に更新されることで、ドメイン200の動作を停止させ、再起動を行った場合にも、差分時間で調整された正確な時刻によってドメイン200が起動される。
図13は、マルチドメインシステムの運用状況の第2の例を示す図である。運用状況の第2の例は、サブシステムにNTPサーバが接続されている場合の例である。図13の例では、初期状態(図13の上段)では、サブシステム100にはNTPサーバ501が接続されており、複数のドメイン200,300,400にはNTPサーバが接続されていない。その後、運用中(図13の下段)にドメイン200,300,400に対してNTPサーバ500が接続されている。
初期状態では、NTPサーバ501が基準時計となる。そこで、サブシステム100がNTPサーバ501と時刻同期を行い、サブシステム100のシステムクロック110の時刻が、NTPサーバ501が示す時刻に合わせられる。また、ドメイン200,300,400は、NTPによりサブシステム100と時刻同期を行う。
運用中のドメイン200,300,400にNTPサーバ500が接続されると、ドメイン200,300,400は、NTPによりNTPサーバ500と時刻同期を行う。
なお、ドメイン200,300,400がサブシステム100とは異なるNTPサーバ500に接続されると、サブシステム100とドメイン200,300,400との間で時刻に差が生じる可能性がある。そこでサブシステム100のシステムクロック110が示す時刻と、各ドメイン200,300,400のシステムクロック210,310,410が示す時刻とのずれを示す差分時間が、差分記憶部150に保持される。この差分時間を、ドメイン200,300,400起動時のシステムクロック210,310,410の初期値とすることにより、ドメイン200,300,400の停止期間があっても、停止直前の差分時間を維持して起動される。
なお、ドメイン200,300,400がサブシステム100とは異なるNTPサーバ500に接続されると、サブシステム100とドメイン200,300,400との間で時刻に差が生じる可能性がある。そこでサブシステム100のシステムクロック110が示す時刻と、各ドメイン200,300,400のシステムクロック210,310,410が示す時刻とのずれを示す差分時間が、差分記憶部150に保持される。この差分時間を、ドメイン200,300,400起動時のシステムクロック210,310,410の初期値とすることにより、ドメイン200,300,400の停止期間があっても、停止直前の差分時間を維持して起動される。
図14は、マルチドメインシステムの運用状況の第2の例における時刻合わせを時系列に示す図である。サブシステム100の起動時には、時計デバイスA1の時刻が、システムクロック110に設定される。サブシステム100の起動完了後、NTPサーバ501との時刻同期により、NTPサーバ501の示す時刻がシステムクロック110に設定される。その後、時計デバイスA1の時刻は、システムクロック110で示される時刻に定期的に更新される。
ドメイン200の起動時には、サブシステム100のシステムクロック110で示される時刻にドメイン200の差分時間を加算した時刻が、ドメイン200のシステムクロック210に設定される。その後、ドメイン200がNTPサーバ500に未接続の間は、ドメイン200は、システムクロック210を、サブシステム100のシステムクロック110にNTPによって時刻同期させ、システムクロック210の時刻を合わせる。
ドメイン200がNTPサーバ500に接続されると、NTPサーバ500との時刻同期により、NTPサーバ500で示される時刻がシステムクロック210に設定される。サブシステム100では、ドメイン200のシステムクロック210が示す時刻と、サブシステム100のシステムクロック110が示す時刻との差分時間が定期的に計算され、差分記憶部150に格納される。差分時間の格納は、ドメイン200が停止(シャットダウン)されるまで、定期的に実行される。差分時間が定期的に更新されることで、ドメイン200の動作を停止させ、再起動を行った場合にも、差分時間で調整された正確な時刻によってドメイン200が起動される。
図15は、マルチドメインシステムの運用状況の第3の例を示す図である。運用状況の第3の例は、ドメインにNTPサーバが接続されている場合の例である。図15の初期状態(図15の上段)では、サブシステム100にはNTPサーバが接続されておらず、複数のドメイン200,300,400にはNTPサーバ500が接続されているが、ドメイン200,300,400は停止中である。その後、ドメイン200,300,400が起動され、運用が開始されている(図15の下段)。
初期状態では、時計デバイスA1が基準時計となる。そこで、時計デバイスA1の時刻がサブシステム100に渡され、サブシステム100内のシステムクロック110の時刻合わせが行われる。
ドメイン200,300,400が起動され、運用が開始されると、ドメイン200,300,400は、NTPによりNTPサーバ500と時刻同期を行う。ドメイン200,300,400の運用が開始されると、基準時計が、時計デバイスA1からNTPサーバ500に変更される。そのためサブシステム100は、NTPサーバ500側に隣接するドメイン200,300,400のいずれか1つと時刻同期を行う。またサブシステム100は、定期的に、システムクロック110で示される時刻で時計デバイスA1の時刻を更新する。
図16は、マルチドメインシステムの運用状況の第3の例における時刻合わせを時系列に示す図である。サブシステム100の起動時には、時計デバイスA1の時刻が、システムクロック110に設定される。その後、定期的にサブシステム100の同期部130によって時計デバイスA1の時刻が読み出され、システムクロック110の時刻が更新される。
ドメイン200の起動時には、サブシステム100のシステムクロック110で示される時刻にドメイン200の差分時間を加算した時刻が、ドメイン200のシステムクロック210に設定される。ドメイン200の起動が完了し稼働状態となると、ドメイン200は、システムクロック210を、NTPサーバ500とNTPによって時刻同期させる。
サブシステム100は、ドメイン200のNTPサーバ500との時刻同期が完了すると、NTPによりシステムクロック110をドメイン200のシステムクロック210に時刻同期させる。サブシステム100は、ドメイン200との時刻同期後は、システムクロック110に示される時刻により、時計デバイスA1の時刻を定期的に更新する。
またサブシステム100では、ドメイン200のシステムクロック210が示す時刻と、サブシステム100のシステムクロック110が示す時刻との差分時間が定期的に計算され、差分記憶部150に格納される。差分時間の格納は、ドメイン200が停止(シャットダウン)されるまで、定期的に実行される。
このようにして、ドメインに接続されたNTPサーバ500によって、マルチドメインシステムA全体の時刻制度が保障される。すなわち、マルチドメインシステムAの運用状況が変化しても、各時点の運用状況においてより正確な時刻を示す時計を用いて、サブシステム100のシステムクロック110の時刻合わせを行うことができる。その結果、サブシステム100のシステムクロック110を正確に保つことができる。
しかもドメイン200,300,400のシステムクロック210,310,410とサブシステム100のシステムクロック110との差を定期的に計算し、サブシステム100内で保持している。これにより、ドメイン200,300,400の再起動時には、再起動時の時刻を、前回動作していたときの差分時間を反映させた時刻を初期値として起動することができる。これにより、ドメイン200,300,400の再起動に起因する時刻情報の不整合などの障害の発生を抑止することができる。
さらに、サブシステム100のシステムクロック110を、時計デバイスA1よりも正確な時計(例えばNTPサーバ)に時刻同期させた場合、システムクロック110の時刻を用いて、時計デバイスA1の時刻を合わせている。これにより、時計デバイスA1で示される時刻を、より正確に保つことができる。その結果、サブシステム100を再起動した場合に、正確な時刻を用いて再起動することができる。
なお、ドメイン200,300,400内のシステムクロック210,310,410に対しては、ユーザが任意の時刻を設定することができる。例えば、1つのドメインをソフトウェアの動作試験に用いる場合、現在の時刻と異なる時刻を、システムクロックに設定する。このような場合でも、サブシステム100が差分時間を保持していることで、ドメインの再起動を行っても、ユーザが過去に設定した差分を維持した時刻が、ドメインのサブシステムの初期値として設定される。このように意図的にドメインの時刻をずらす場合、ドメインのNTPサーバとの時刻同期は行われない。
〔第3の実施の形態〕
第2の実施の形態に示したドメイン200,300,400それぞれに、ハードウェアクロックを内蔵させることも可能である。
第2の実施の形態に示したドメイン200,300,400それぞれに、ハードウェアクロックを内蔵させることも可能である。
図17は、第3の実施の形態に係るマルチドメインシステムのハードウェア構成例を示す図である。なお第3の実施の形態のハードウェア構成要素のうち、第2の実施の形態と同じ機能の要素には同じ符号を付し、説明を省略する。
第3の実施の形態のマルチドメインシステムA−1に内蔵された各ドメイン200a,300a,400aは、それぞれ時計デバイス207,307,407を有している。時計デバイス207,307,407は、それぞれバス206,306,406に接続されている。
このように各ドメイン200a,300a,400aが時計デバイス207,307,407を有する場合、サブシステム100からドメイン200a,300a,400aの時計デバイス207,307,407の時刻の参照・更新を可能にすることができる。これにより、ドメイン200a,300a,400aごとに、異なる時刻を設定したり、表示したりすることが可能となる。例えば、Linux(登録商標)では、以下のようなコマンドにより、ドメイン200a,300a,400aごとに、異なる時刻を設定したり、表示したりすることができる。
サブシステム100からドメイン200a,300a,400aそれぞれの時計デバイス207,307,407を参照するには、以下のコマンドが実行される。
# showtod
このコマンドの実行により、例えば以下のような情報が端末装置21の画面に表示される。
Domain#0 : Thu Feb 18 11:32:38 JST 2010
Domain#1 : Thu Feb 18 11:32:38 JST 2010
Domain#2 : Thu Feb 18 11:32:38 JST 2010
また、以下のようなコマンドにより、ドメイン200a,300a,400aの時計デバイス207,307,407の時刻を更新可能である。
# settod domain#0 Thu Feb 18 18:33:00 JST 2010
更新された時刻は、ドメイン200a,300a,400aの再起動後に、OSに反映される。
# showtod
このコマンドの実行により、例えば以下のような情報が端末装置21の画面に表示される。
Domain#0 : Thu Feb 18 11:32:38 JST 2010
Domain#1 : Thu Feb 18 11:32:38 JST 2010
Domain#2 : Thu Feb 18 11:32:38 JST 2010
また、以下のようなコマンドにより、ドメイン200a,300a,400aの時計デバイス207,307,407の時刻を更新可能である。
# settod domain#0 Thu Feb 18 18:33:00 JST 2010
更新された時刻は、ドメイン200a,300a,400aの再起動後に、OSに反映される。
また、以下のようなコマンドにより、ドメイン200a,300a,400aの時計デバイス207,307,407をサブシステムの時刻と一致させることができる。
# settod domain#0 subsystem
更新された時刻は、ドメイン200a,300a,400aの再起動後に、OSに反映される。
# settod domain#0 subsystem
更新された時刻は、ドメイン200a,300a,400aの再起動後に、OSに反映される。
さらに、以下のようなコマンドにより、全ドメイン200a,300a,400aの時計デバイス207,307,407をサブシステムの時刻と一致させることができる。
# settod subsystem
更新された時刻は、ドメイン200a,300a,400aの再起動後に、OSに反映される。
# settod subsystem
更新された時刻は、ドメイン200a,300a,400aの再起動後に、OSに反映される。
〔その他の実施の形態〕
上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、サブシステムまたはドメインが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、サブシステムまたはドメインが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
1 情報処理装置
1a 計時手段
1b 決定手段
1c 時刻合わせ手段
1d 計算手段
1e 記憶手段
1f 起動手段
2 時計デバイス
3 サーバ
4 管理対象装置
5,6 時刻情報
7 差分時間
8 起動要求
1a 計時手段
1b 決定手段
1c 時刻合わせ手段
1d 計算手段
1e 記憶手段
1f 起動手段
2 時計デバイス
3 サーバ
4 管理対象装置
5,6 時刻情報
7 差分時間
8 起動要求
しかし、コンピュータシステムが複雑化すると、時刻情報を提供する装置のうち、どの装置がより正確な時刻を示しているのかの判断が難しくなる。しかも、運用状況に応じて、時刻情報を提供する仕方も変化する。そのため、時刻を合わせる際に、時刻合わせの基準となる時刻情報をどの装置から取得するのかについて適切に判断するのが難しかった。
次に、各ドメインの差分時間更新処理について詳細に説明する。
図8は、差分時間更新処理の手順を示すシーケンス図である。以下、図8に示すシーケンス図をステップ番号に沿って説明する。なお図8には、ドメイン200の差分時間を更新する場合の例を示している。
図8は、差分時間更新処理の手順を示すシーケンス図である。以下、図8に示すシーケンス図をステップ番号に沿って説明する。なお図8には、ドメイン200の差分時間を更新する場合の例を示している。
時刻報告部230は、時刻取得要求を取得すると時刻情報を応答する。応答された時刻情報は、サブシステム100の差分計算部160で受信される。このとき、時刻情報の送信時刻Td2から時刻情報の受信時刻Ts2までに、通信遅延に起因する時間差が存在する。
このようにして、ドメインに接続されたNTPサーバ500によって、マルチドメインシステムA全体の時刻精度が保障される。すなわち、マルチドメインシステムAの運用状況が変化しても、各時点の運用状況においてより正確な時刻を示す時計を用いて、サブシステム100のシステムクロック110の時刻合わせを行うことができる。その結果、サブシステム100のシステムクロック110を正確に保つことができる。
しかもドメイン200,300,400のシステムクロック210,310,410とサブシステム100のシステムクロック110との差を定期的に計算し、サブシステム100内で保持している。これにより、ドメイン200,300,400の再起動時には、再起動時の時刻に、前回動作していたときの差分時間を反映させた時刻を初期値として起動することができる。これにより、ドメイン200,300,400の再起動に起因する時刻情報の不整合などの障害の発生を抑止することができる。
Claims (11)
- 要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置であって、
計時手段と、
前記管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する決定手段と、
前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記計時手段の時刻を合わせる時刻合わせ手段と、
を有することを特徴とする情報処理装置。 - 前記管理対象装置の内部計時手段が示す時刻情報を取得し、取得した時刻情報が示す時刻と、前記計時手段が示す時刻との差分時間を計算する計算手段と、
前記管理対象装置の動作を停止させた後に起動する場合、前記計時手段が示す時刻に、該管理対象装置の差分時間を加算して得られる時刻を、該管理対象装置の内部計時手段の初期値に指定して、該管理対象装置を起動する起動手段と、
をさらに有することを特徴とする請求の範囲第1項記載の情報処理装置。 - 前記計算手段は、定期的に前記管理対象装置の内部時計が示す時刻を取得することを特徴とする請求の範囲第2項記載の情報処理装置。
- 電池でバックアップされた時計デバイスを、取得可能な時刻情報を提供する装置の1つとして認識し、
前記決定手段は、前記情報処理装置の起動時には、前記時計デバイスを、最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第1項乃至第3項のいずれかに記載の情報処理装置。 - 前記決定手段は、前記情報処理装置の稼働中は、要求に応じて時刻情報の提供を行うサーバから時刻情報を取得可能であれば、該サーバを最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第1項乃至第4項のいずれかに記載の情報処理装置。
- 前記決定手段は、前記情報処理装置の稼働中は、要求に応じた時刻情報の提供を行うサーバから時刻情報を取得できない場合、該サーバと時刻合わせを行った装置から時刻情報を取得可能であれば、該装置を最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第5項記載の情報処理装置。
- 前記決定手段は、前記情報処理装置の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバから時刻情報を取得できず、該サーバと時刻合わせが行われた装置からも時刻情報を取得できない場合、電池でバックアップされた時計デバイスを、最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第6項記載の情報処理装置。
- 前記時刻合わせ手段は、前記情報処理装置の稼働中は、電池でバックアップされた時計デバイス以外の装置から取得した時刻情報が示す時刻に前記計時手段を設定した場合、該計時手段が示す時刻に、該時計デバイスの時刻を合わせることを特徴とする請求の範囲第5項乃至第7項のいずれかに記載の情報処理装置。
- 前記計時手段は、前記情報処理装置がソフトウェアを実行することで実現されていることを特徴とする請求の範囲第1項乃至第8項のいずれかに記載の情報処理装置。
- 要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が、
前記管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定し、
前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記情報処理装置内の計時手段の時刻を合わせる、
ことを特徴とする時刻設定方法。 - 要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置に、
前記管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定し、
前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記情報処理装置内の計時手段の時刻を合わせる、
処理を実行させることを特徴とする時刻設定プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/053266 WO2012111112A1 (ja) | 2011-02-16 | 2011-02-16 | 情報処理装置、時刻設定方法、および時刻設定プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2012111112A1 true JPWO2012111112A1 (ja) | 2014-07-03 |
Family
ID=46672076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012557715A Pending JPWO2012111112A1 (ja) | 2011-02-16 | 2011-02-16 | 情報処理装置、時刻設定方法、および時刻設定プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130326088A1 (ja) |
EP (1) | EP2677434A1 (ja) |
JP (1) | JPWO2012111112A1 (ja) |
WO (1) | WO2012111112A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016009894A (ja) * | 2014-06-23 | 2016-01-18 | 株式会社 日立産業制御ソリューションズ | 監視装置および監視システム |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6070102B2 (ja) * | 2012-11-20 | 2017-02-01 | 富士通株式会社 | ずれ算出プログラム、プログラム、情報処理装置および情報処理方法 |
DE102015205406A1 (de) * | 2015-03-25 | 2016-09-29 | Siemens Aktiengesellschaft | Vorrichtung, Verfahren und System zur Erfassung und Auflösung von Zeitinformationen unterschiedlicher administrativer Domänen |
US10509434B1 (en) * | 2016-09-27 | 2019-12-17 | Amazon Technologies, Inc. | Oscillator profiling for time synchronization |
JP2018138898A (ja) * | 2017-02-24 | 2018-09-06 | 富士通株式会社 | 情報管理システム、時刻情報補正方法及び時刻情報補正プログラム |
DE102017108571B4 (de) * | 2017-04-21 | 2019-06-27 | Beckhoff Automation Gmbh | Konzept zum übermitteln von zeitsynchronisierten daten von einer eine lokale zeit aufweisenden steuerung eines automatisierungssystems an zumindest einen teilnehmer des automatisierungssystems |
JP7217153B2 (ja) * | 2019-01-10 | 2023-02-02 | 富士通株式会社 | 情報処理装置、時刻同期方法、及び時刻同期プログラム |
JP7103697B1 (ja) * | 2021-05-12 | 2022-07-20 | Necプラットフォームズ株式会社 | 時刻同期化装置、時刻同期方法、及びプログラム |
US20230006807A1 (en) * | 2021-06-30 | 2023-01-05 | Pensando Systems Inc. | Methods and systems for providing a distributed clock as a service |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04367013A (ja) * | 1991-06-14 | 1992-12-18 | Hitachi Ltd | 情報処理装置の時計方式 |
JPH10124465A (ja) * | 1996-10-16 | 1998-05-15 | Fuji Xerox Co Ltd | 情報処理装置 |
JP2000050004A (ja) * | 1998-07-29 | 2000-02-18 | Ricoh Co Ltd | ネットワークファクシミリ装置の制御方法 |
JP2008102713A (ja) * | 2006-10-18 | 2008-05-01 | Matsushita Electric Works Ltd | 制御端末の時刻合わせ方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311283B1 (en) * | 1998-09-17 | 2001-10-30 | Apple Computer, Inc. | Need based synchronization of computer system time clock to reduce loading on network server |
JP2003066170A (ja) * | 2001-08-29 | 2003-03-05 | Nec Corp | Cpuボードの時刻管理装置及びその方法 |
JP2005222368A (ja) * | 2004-02-06 | 2005-08-18 | Hitachi Ltd | ストレージシステム |
JP2006221613A (ja) * | 2005-01-14 | 2006-08-24 | Matsushita Electric Ind Co Ltd | 情報表示システムおよびそのプログラム |
US7617408B2 (en) * | 2006-02-13 | 2009-11-10 | Schweitzer Engineering Labortories, Inc. | System and method for providing accurate time generation in a computing device of a power system |
JP2008262292A (ja) | 2007-04-10 | 2008-10-30 | Hitachi Ltd | サーバおよびローカル端末群の時刻同期方法 |
-
2011
- 2011-02-16 JP JP2012557715A patent/JPWO2012111112A1/ja active Pending
- 2011-02-16 EP EP11858987.8A patent/EP2677434A1/en not_active Withdrawn
- 2011-02-16 WO PCT/JP2011/053266 patent/WO2012111112A1/ja active Application Filing
-
2013
- 2013-08-08 US US13/961,957 patent/US20130326088A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04367013A (ja) * | 1991-06-14 | 1992-12-18 | Hitachi Ltd | 情報処理装置の時計方式 |
JPH10124465A (ja) * | 1996-10-16 | 1998-05-15 | Fuji Xerox Co Ltd | 情報処理装置 |
JP2000050004A (ja) * | 1998-07-29 | 2000-02-18 | Ricoh Co Ltd | ネットワークファクシミリ装置の制御方法 |
JP2008102713A (ja) * | 2006-10-18 | 2008-05-01 | Matsushita Electric Works Ltd | 制御端末の時刻合わせ方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016009894A (ja) * | 2014-06-23 | 2016-01-18 | 株式会社 日立産業制御ソリューションズ | 監視装置および監視システム |
Also Published As
Publication number | Publication date |
---|---|
US20130326088A1 (en) | 2013-12-05 |
WO2012111112A1 (ja) | 2012-08-23 |
EP2677434A1 (en) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012111112A1 (ja) | 情報処理装置、時刻設定方法、および時刻設定プログラム | |
KR101109980B1 (ko) | 조정된 타이밍 네트워크 내의 서버 동기화 촉진 | |
US20220012264A1 (en) | Pipelining Paxos State Machines | |
US6581110B1 (en) | Method and system for reading and propagating authenticated time throughout a worldwide enterprise system | |
US12007956B1 (en) | Time reservations for ensuring consistent reads in a distributed database without logging | |
KR101091460B1 (ko) | 네트워크에서의 복원을 촉진하는 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
US7571268B2 (en) | Consistent updates across storage subsystems coupled to a plurality of primary and secondary units at selected times | |
US9747310B2 (en) | Systems and methods of increasing database access concurrency using granular timestamps | |
JP5042318B2 (ja) | 協定タイミング・ネットワーク内の階層1構成を定義する方法、システム、およびコンピュータ・プログラム | |
US20110231641A1 (en) | Information-processing apparatus and method of starting information-processing apparatus | |
US7925916B2 (en) | Failsafe recovery facility in a coordinated timing network | |
WO2021107988A1 (en) | Distributed processing of transactions in a network using timestamps | |
US20240313987A1 (en) | Method for distributed and secure timekeeping | |
US10970266B2 (en) | Ensuring consistent replication of updates in databases | |
US10445338B2 (en) | Method and system for replicating data in a cloud storage system | |
US20130246832A1 (en) | Information processing device, computer-readable recording medium having stored therein program for setting time of information processing device, monitor, and method for setting time of information processing device | |
JP2012202897A (ja) | クライアント端末、サーバ端末、時刻同期方法、プログラム | |
CN111682916A (zh) | 在启动设备时的设备时钟设置 | |
US12019467B2 (en) | Estimation of event generation times to synchronize recordation data | |
JP2019159536A (ja) | ストレージ管理装置、ストレージシステム、及びストレージ管理プログラム | |
CN116669170B (zh) | 智能消火栓网络时间同步方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140902 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150106 |