ntpdがサーバーの時刻を更新しないのはなぜですか?


20

サーバーでntpdを実行しています。他のマシンのサーバーになる機能をコメントアウトしたことを除いて、すべてデフォルト設定です。

# restrict -4 default kod notrap nomodify nopeer noquery                                                                    
# restrict -6 default kod notrap nomodify nopeer noquery   
restrict default ignore

を実行するntpdate -q ntp.ubuntu.comと、マシンのクロックが7秒ずれていると言われます。

どうしたの?何が起こっているのかを診断するにはどうすればよいですか?有効にできるログはありますか?

詳細#1

# ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 91.189.94.4     193.79.237.14    2 u   30   64    7  108.518   -0.136   0.361

詳細情報#2

私が質問したとき、これは次のように見えました。

# ntpdate -q ntp.ubuntu.com
server 91.189.94.4, stratum 2, offset 7.191308, delay 0.13310
10 Jan 20:38:09 ntpdate[31055]: step time server 91.189.94.4 offset 7.191308 sec

そして、ntpdを2、3回再起動した後、次のようになります(これが修正されたと仮定しています)。

# ntpdate -q ntp.ubuntu.com
server 91.189.94.4, stratum 2, offset 0.000112, delay 0.13164
10 Jan 20:47:03 ntpdate[31419]: adjust time server 91.189.94.4 offset 0.000112 sec

詳細情報#3

ntpをアンインストールし、openntpdとranをインストールしましたが/usr/sbin/ntpd -d、次のような出力が表示されます。

reply from 64.73.32.134: offset 6.715003 delay 0.041152, next query 30s
reply from 208.53.158.34: offset 6.700224 delay 0.036263, next query 31s
adjusting local clock by 6.734120s
reply from 72.18.205.156: offset 6.708575 delay 0.035885, next query 30s
reply from 64.73.32.134: offset 6.701463 delay 0.044199, next query 33s

これは、サーバーで時刻を設定できないことをはっきりと示しています(通常のntpでは、時々更新されるようです...)。

詳細情報#4

私のVPSプロバイダーは言います:

最新のカーネルでは、システムをdom0のクロックにロックしないでください。安全のために、sysctl.confでxen.independent_wallclock = 1を設定できます。

正しいタイミング計算を行うためにCPUが必要なVPSの問題にはまだ対処していないと思います。


それはあなたの設定ファイル全体ですか?を実行ntpq -npすると、出力はどうなりますか?
デビッドマッキントッシュ

残りの設定はどこにありますか?ホストが時間を取得するためのアップストリームサーバーはありません。
アーロンコプリー

6
とった。ntpdは正常に動作していたようです。NTPdは、クロックを徐々に「同期」に戻します。時間の突然の変更は、特定の実行中のプロセスに大きな問題を引き起こす可能性があるため、NTPは1秒の長さを高速化または低速化して徐々に調整することで機能します。
アーロンコプリー

1
はい、カーネルは起動時にハードウェアクロックで起動します。これは、起動時に参照されるためです。あなたが言うように、それが何ヶ月も実行されているなら、それはそうではありません。NTPにハードウェアクロックと同期するように指示できます。Ubuntuについてはわかりませんが、/ etc / sysconfig / ntpdにあるRed Hatベースのシステムについてです。そこを見るか、ハードウェアのドキュメントを参照してください。
アーロンコプリー

1
また、ntpdateがスタンドアロンアプリケーションであることを理解していないと思います。ntpdとは関係ないため、トラブルシューティングに使用しないでください。ntpqが-pオプションで提案され、ピアリングを表示する理由。ntpdがピアを検出した場合、システムを同期状態に戻す必要があります。しかし、今ではすべてがうまくいっているように見えます。さらなる洞察を提供したかっただけです。これが将来役立つことを願っています!
アーロンコプリー

回答:


10

これをntp.confに追加することにより、ntpdでのロギングを有効にできます。

logfile /var/log/ntpd.log

出典:ntpマニュアル

ntpdをオフにした場合、コマンドラインでクロックを更新できますか?ntpdateコマンドを実行し、次のようなエラーを受け取った場合:

# ntpdate ntp.ubuntu.com
10 Jan 23:47:57 ntpdate[26284]: Can't adjust the time of day: Operation not permitted

これは、おそらくVPSを使用していることを意味し、その場合、システムクロックを変更することはできません。これはホストマシンでのみ実行できます。


ntpdateはそれを喜んでやってくれます-しかし、サーバーがリブートすると、クロックがハードウェアのクロックにリセットされるのでしょうか、それともそのようなことになるのでしょうか?
ジョンバチャー

ntpdateを使用してクロックを設定したら、「hwclock --systohc」を使用して「実行」時間をハードウェアクロックに同期します。再起動時に同期することになっていますが、マシンがクラッシュした場合(または適切なシャットダウンを実行する際に問題が発生した場合)、同期できませんでした。
デイブDrager

まあ、それは仮想ホストなので、ハードウェアクロックにアクセスできません(少なくともそうではないことを願っています!)
ジョンバチャー

エミュレートされたBIOSと同様に、エミュレートされたハードウェアクロックがあります。
キースストークス

私はいくつかのVPSプラットフォームの管理者でしたが、それらのどれも(openvz、Xen)システムのクロックを設定するアクセス権がありません。それらはすべてホストレベルで行わなければなりませんでした。ホストと一緒にチケットを送信して、時間がオフであることを示します。彼らはntpを実行し、時間を同期させる必要があります。
デイブDrager

7

さて、この質問を聞いてから、ntpをデフォルトのベンダー(Ubuntu 10.0.4)構成で再インストールし、数日間実行しました。この記事の執筆時点でntpdate -q ntp.ubuntu.comは、私の時間は0.000216秒以内に正確であることを示しています。だから、私が抱えていた問題は、カスタマイズされた構成にあったに違いありません(外部ホストがサーバーにクエリできないようにしようとしていましたが、すでにファイアウォールで行っているので、あまり心配していません)。ここに、Ubuntu 10.0.4のntp.conf全体をコメントを削除して示します。

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server ntp.ubuntu.com

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 127.0.0.1
restrict ::1

この設定がどのように改善されるかについてのフィードバックを歓迎します。

また、VPSプロバイダーと一緒にチケットを作成し、最善のことに関する詳細な推奨事項を尋ねました。私は彼らにこのスレッドと、CPUの割り当てがタイミングの問題を引き起こす可能性があることを示す他のドキュメントを示しました。彼らが言ったことは次のとおりです。

最新のカーネルでは、システムをdom0のクロックにロックしないでください。安全のために、sysctl.confでxen.independent_wallclock = 1を設定できます。これにより、サーバーインスタンスがホストサーバーのクロックに従っていないことが確認されます。

そして:

この問題が仮想化環境のNTPクライアントにどの程度影響するかを誤解していると思います。Xenホスト上の仮想化システム(Rackspace Cloudでのセットアップなど)での私の経験では、割り込みを処理する専用のシステムクロックがないことで継承された不正確さは、負荷の高いシステムでも1秒未満になります。このわずかな不正確さは、サーバーの時刻を1日に1回しか更新しないように設定されている(またはそれよりも頻度が低い)場合でも、NTPによって簡単に管理できます。


4

あなたのコメントの1つは、vhostで実行していると言っています。この場合、vhostの時間感覚は、それが実行されている実際のホストと、vhostの全体的なビジー状態の両方に依存するため、あまり成功しないでしょう。

使用される仮想化に応じて、vhostは一定期間内に割り込みを安定して共有できない場合があります。これにより、実際に起こっているよりもクロックが速く、または遅くなります。ntpはあなたの時計が他の世界よりも固定速度で速いか遅いという仮定で変化を測定しようとしているので、このスピードアップとスローダウンはntpフィットを与え、おそらく最終的にはあきらめてしまいます。これntp -npは、ntpが不適切と判断したタイムサーバーを示しています。

これが事実である場合のあなたの最善の策は、おそらくrdate -s $server過度にドリフトしないように鼻で時計をぐるぐる回す(6時間ごとなど)力ずくです。しかし、きめ細かい精度はおそらく手の届かないところにあります。


私のホスティングプロバイダー(ラックスペースクラウド)は、NTPが環境で正常に機能することを教えてくれました。
ジョンバチル

私のVPSプロバイダーが時計について言ったことについて、提出された/受け入れられた回答と、時間の設定へのアクセスを参照してください。
ジョンバチャー

自動rdateは、時計を逆方向に設定できます。これにより、予期しない結果が多数発生する可能性があります。
rackandboneman

4

openntpdの代わりにntpdを使用したときに過去に見つけたもの:

  1. ntpdが正しく起動して実際に動作するためには、localhostへのアクセスを許可する必要があります

    restrict 127.0.0.1
    restrict ::1
    
  2. サーバールールにはホスト名を使用できますが、それらのサーバーと通信するためにバックアップホールを開くことrestrictは、IPアドレスを必要とするものを使用することを意味するため、結局はすべてにIPを使用することになりました。

  3. restrictサーバーへのアクセスを開くために使用することは言及していません。それは問題です。次のようなブロックを試してください。

    # ntp.xs4all.nl
    server          194.109.22.18
    restrict        194.109.22.18
    
  4. ntpdには複数のピアまたはサーバーが必要です。これは、多数のルールによる投票を使用して不正なアクターに対処しようとするためです。したがって、1つ、できれば5を失っても過半数を持つことができるように、最低4つ。

  5. デフォルトのアクセスをロックダウンするには、次を使用できます。

    restrict default notrust nomodify
    

    クエリを実行できるようにrestrict default ignore、ntpd 4.2がの意味を変更したときと同じように使用しましたnotrustため息

  6. 他人にタイムサービスを提供していない場合は、通常のntpdの全機能を必要としない可能性があり、openntpd代わりに検討する必要があります。OpenBSDクルーによって書かれた、それははるかに最小限の実装であり、特権分離とはるかに単純な設定ファイルを使用します。伝えられるところでは、ntpdが提供するような非常に正確な時間は提供されませんが、通常のサーバーまたはワークステーションには十分に簡単です。


これは素晴らしい情報です。openntpdをチェックアウトしています。質問:vhostに時計を設定することは不可能であると主張する他の人々に同意または反対しますか?
ジョンバチャー

そして、おそらくあなたはこの質問に答えることができます。serverfault.com/questions/223511/...
ジョンBachir

さまざまなrestrictルールであなたが言っていることを理解していません…これらのルールは、どのサーバーに時間を照会できるかに影響しますか?どのノードが時間を要求できるかだけに影響すると思いました。
ジョンバチャー

1
ここにアイデアがあります:答えをコメント付きの完全な最小限のntp.confファイルに変更したいですか?:-)
ジョンバチャー

常に少なくとも1つのCPUでスケジュールされることが保証されていない限り、vhostでクロックを設定することはお勧めしません。dom0は時間を維持する必要があります。他の質問の答えは良いです。NTPはUDPなので、時間を照会するサーバーからのパケットを許可する必要があります。数年前にOpenNTPDに移行したため、私のntpdは古くなっています。
フィルP

3
  • ntpdがリモートサーバーに接続できない場合、そのサーバーのオフセットは表示されません。
  • ntpqがntpdによってブロックされる場合、ntpqから明確なエラーメッセージが表示されます。
  • 他のサービスも時間を設定する場合(vmwareツールなど)、サーバーのジャンプオフセットが表示されます(70秒ごとにntpq -pを実行します)。

reach 7ntpqの出力には、あなたがntpdのわずか約4分間実行してみましょうことを、示しました。7は111バイナリで、サーバーにすでに3回到達したことを意味します。ntpは、64秒ごと(poll値)に到達しwhen、最後のコンタクトからすでに30秒(値)待機しました。

offset -0.136システムがすでに同期していることを、示しました。ntpdのみがサーバーをソースとしてマークしていません。もっと時間をかけるだけで、小さな星が現れます。

したがって、実際にはntpdが同期していました。しかし、ntpdは通常1回の大きなジャンプ(ntpdateなど)で同期しませんが、時間をゆっくり調整し、数サイクルにわたって時間を安定させようとします。

PS:質問は非常に古いことを知っています。しかし、問題は時代を超越しています。そして、他のすべての答えは私見を誤解させるだけです。時刻の同期を保つために、VMWareはntpdを推奨しています。


すばらしい最初の答え、ロバート。サイトへようこそ。
クバンチク

1

システムをオフにして、クリーンシャットダウン時にHWクロックがシステムクロックと同期していない理由を知りました。sysconfigには、それを実現するために編集が必要なNTP設定があるようです。

/etc/sysconfig/ntpd

# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no

に設定しyesます。もちろん、最初にNTPサーバーが安定しており、システムクロックが信頼できることを確認してください。

私はそれがわかっていました-私のスキューは47秒で、HWクロックも47秒オフでした。ビンゴ!私の最初の手がかりは、ログに見られるKerberosの失敗でした。クロックスキューが大きすぎる場合、Kerberosおよび多くのNASは機能しません。

良い一日を!


1
スナップ..それはRHEL / Centosに関連しています。おそらくUbuntuではありません。
ウェインスウェット


0

ハイ

このリファレンスを参照して、問題のトラブルシューティングに役立つかどうかを確認してください。

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_: CH24:_The_NTP_Server

ntpd.confファイルの内容(ntpq -pなどのデバッグコマンドの出力)を投稿することができます。

日付と時刻を確認しますか?

これも確認し、ntpdateを実行し、ntpdを起動します。時間は同期していますか?

よろしくお願いします

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.