TIMED(8) | System Manager's Manual | TIMED(8) |
timed
—
タイムサーバデーモン
timed
[-M
]
[-t
] [-d
]
[-i
network]
[-n
network]
[-F
host1 host2 ...]
これはタイムサーバデーモンであり、
通常はブート時に
rc(8)
ファイルから起動される。
このサーバは、ホストの時刻と、
ローカルエリアネットワーク内で
timed 8
を実行している他のホストの時刻を同期させる。
これらのタイムサーバは、マシンの時刻を遅らせたり進ませたりすることで、
マシンの時刻を平均ネットワーク時刻にする。
平均ネットワーク時刻は、
ICMP
タイムスタンプリクエストメッセージを使って、
時刻差を計測することにより計算される。
timed
が提供するサービスは、マスタースレーブの考えに基づいている。
timed(8)
がマシンで起動されると、マスターにネットワーク時刻を問い合わせ、
ホストの時刻をその時刻に合わせる。
その後、マスターが定期的に送る同期メッセージを受け取り、
ホスト時刻に必要な修正を加えるために
adjtime(2)
を呼び出す。
このサーバは、
日付を大域的に設定するために
date(1) と通信し、 timed
制御プログラムである
timedc(8)
とも通信する。
マスターとして実行されているマシンがクラッシュすると、
スレーブは、 -M
フラグで実行されているスレーブの中から、新しいマスターを選ぶ。
-M
や -F
フラグなしで実行されている
timed
を実行しているマシンはスレーブのままである。
-t
フラグを指定した場合、
timed
は、受信したメッセージをファイル
/var/log/timed.log
の中でトレースするようになる。
トレースの有効・無効は、
timedc(8)
プログラムを使って切替えることができる。
-d
フラグは、このデーモンをデバッグするためのものである。
このフラグを指定した場合、デーモンをバックグラウンドにさせない。
通常 timed
は、接続されている各ネットワークのマスタータイムサーバをチェックする。
ただし、以下で説明するオプションで変更されている場合は例外である。
timed
は、見付けた最初のマスターサーバに対して、同期サービスを要求する。
その時点でマスターサーバが接続されているネットワークで検知できない場合、
-M
フラグを指定すると、
同期サービスをそのネットワークに提供することが許可される。
このようなサーバは、トップレベルマスターが計算した時間を提供する。
-n
フラグは、その後にホストが接続されているネットワーク名
(networks(5) を参照)
を続けることにより、
プログラムが決定するネットワークアドレスのデフォルトの選択を上書きする。
-n
フラグが表れる度に、そこで指定されているネットワーク名は、
有効なネットワークのリストに追加される。
他のネットワークは無視される。
-i
フラグは、その後にホストが接続されているネットワーク名
(networks(5) を参照)
を続けることにより、
プログラムが決定するネットワークアドレスのデフォルトの選択を上書きする。
-i
フラグが表れる度に、そこで指定されているネットワーク名は、
無視するネットワークのリストに追加される。
他のネットワークはタイムデーモンによって使われる。
-n
と -i
フラグを同時に使うと、何も意味を持たなくなる。
timed
は、接続されている各ネットワーク上のマスタータイムサーバをチェックする。
ただし、上で説明した
-n
と -i
オプションで変更されている場合は例外である。
2
つ以上のネットワークでマスターサーバが見つかった場合、
「スレーブ」となるべきネットワークを選択する。
そして、定期的に各ネットワークでマスターが消えたかどうかをチェックする。
マシンの同期をとるための
1 つの方法として、 NTP
デーモンを用いてマシンの時刻を
遠距離の標準時刻やラジオ受信機の時刻に同期させ、
かつ、信頼できるマシンが自分自身のみであることを
timed デーモンに -F
hostname
によって通知する、といったものがある。
カーネルによるシステムコンソールへのメッセージ出力は、 割り込みを禁止して行われる。 これは、メッセージが出力されている間は システムのクロックが停止することを意味する。 ディスクやネットワークハードウェアに多くの問題を抱え、 その結果としてメッセージを出力するマシンは、 正確な時間を保持できない。 それぞれのメッセージは、出力される毎に 10ms 程度の時刻遅延を引き起こす。 タイムデーモンは、この結果を補正する。
マシンが応答しないというシステムログメッセージは、 通常、そのクラッシュまたは電源が切れていることを意味する。 マシンが初期時刻設定時に応答に失敗してエラーが出るのは、 大抵の場合、「 “マルチホーム” のマシン (ネットワークインターフェースが複数あるマシン) が 複数のネットワークでタイムマスターを探した後、 別のネットワークでスレーブになることを選択した」ということに関連している。
timed
や ntp
といった複数のタイムデーモンが同じ時計を調整しようとした場合、
一時的に時刻がおかしくなる可能性がある。
timed
と別のタイムデーモンが同じマシンで稼働している場合、
-F
フラグが指定されていることを確認すること。
このようにすれば、
timed
はローカルマシンの時計を調整しようとしなくなる。
このプロトコルは、UDP/IP
ブロードキャストに基づいたものである。
ブロードキャストの範囲内で
TSP
プロトコルを用いている
全てのマシンは、協調しあわなければならない。
ブロードキャストパケットが到達するマシンの間では、
-F
フラグを使用する管理ドメインを
2
つ以上持つことはできない。
このルールに従わない場合は、通常、
“信頼できない”
マシンに関連するエラーがシステムログに書き込まれる。
date(1), adjtime(2), gettimeofday(2), icmp(4), timedc(8) R. Gusella and S. Zatti, TSP: The Time Synchronization Protocol for UNIX 4.3BSD.
timed
デーモンは 4.3BSD
で登場した。
この man ページの翻訳にあたり、 FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/> による翻訳を参考にさせていただいた。
May 11, 1993 | Linux NetKit (0.17) |