サーバーを同期するこれら2つの方法の長所と短所は何ですか?
あなたのサーバーはおそらく毎日1秒以上ドリフトしないので、crontabのntpdateは大丈夫でしょう。しかし、ここで冗長なNTPサーバーを使用できると聞きました
http://www.pool.ntp.org/en/use.html
障害が発生した場合に時刻の同期を維持するため。
何か提案はありますか?
NTPアルゴリズムには、サーバーのクロックのドリフトを計算して修正するための情報が含まれています。NTPDには、これを使用してクロックを同期させる機能があり、クロックよりも正確に実行されますNTPDを実行していないコンピュータNTPDは、精度を向上させるために複数のサーバーも使用します。
ntpdateは、このサービスを実行するための状態を保持しないため、同じ種類の精度は提供されません。これにより、より良い結果を提供するために使用するサーバーのリストを提供できますが、これは、時間の経過とともに各サーバーからのドリフトを追跡するNTPDで提供される高度なアルゴリズムに代わるものではありません。
NTPDATEはシステム時刻を瞬時に修正するため、一部のソフトウェアで問題が発生する可能性があります(たとえば、古いセッションの破棄など)。 NTPDは意図的にシステム時刻をゆっくりと修正し、その問題を回避します。 NTPDの起動時に-gスイッチを追加すると、NTPDが初めて更新するときに、一度にntpdateを実行してからNTPDを起動するのとほぼ同等の大きな更新を行うことができます。
セキュリティ上の懸念に関しては、ntpサーバーは開始されていない接続に接続しません。つまり、ファイアウォールはntpリクエストを開始したことを認識し、リターントラフィックを許可する必要があります。 NTPDを機能させるために、任意の接続に対してポートを開いたままにする必要はありません。
Ntpdate(8)のmanページから:
ntpdateは、必要に応じて手動で実行してホストのクロックを設定するか、ホストの起動スクリプトから実行して起動時にクロックを設定することができます。これは、NTPデーモンntpdを開始する前に最初にクロックを設定する場合に便利です。cronスクリプトからntpdateを実行することも可能です。ただし、ntpdateがcronスクリプトはNTPデーモンに代わるものではありません。デーモンはリソースの使用を最小限に抑えながら精度と信頼性を最大化するために高度なアルゴリズムを使用します。最後に、ntpdateはntpdのようにホストクロック周波数を統制しないため、精度はntpdateの使用は制限されています。
ntpdはntpdateよりも優先されます。時計のジャンプよりもスムーズな時刻修正ができるからです。ログに逆方向の時間ジャンプがある場合、ログをどのように理解しますか? ntpdateは、必要に応じてサーバーを透過的に切り替えます。
(Kyleによって言及された)開いているポートを要求することに関しては、新しいバージョンのntpd(たとえば、Debianサーバーの4.2.4)を暗号化認証でLANにブロードキャスト/マルチキャストするように構成できます。
編集: この質問 も参照してください。
通常、NTPDを実行し、サーバーを組織内の指定されたタイムサーバーと同期することをお勧めします。その内部サーバーは通常、公開されているNTP=サーバーの1つとリンクしています)と同期します。
私はntpdateメソッドを問題なく使用しましたが、本当のntpdデーモンを実行するよりもハックに思えます。
他で言及されているように、NTPはスムーズな時刻修正を提供します。サーバー上のアプリケーションで秒数が足りなくなったり、同じ秒数を繰り返しても問題がない場合、ntpdはntpdateよりも多くのメリットを得ることができません。
一方、秒に敏感な、またはさらに悪いことに部分的な秒に敏感な、時間に敏感なアプリケーションがある場合、ntpdがはるかに良い選択です。 Novell eDirectoryは、更新の衝突処理のために更新にタイムスタンプを付けます。これは、更新が非常に高速になる場合(朝のログインRushなど)に重要になります。正常なログを保持するために、syslogサーバーには少なくとも0.5秒の正確な時間が必要です。
自宅のMythTVボックスの場合、ケーブルプロバイダーが考慮している時間から数秒ずれていることに気付いたので、NTPを使用しています。 UPS監視サーバーでは、Kyle Hodgsonが指摘したのと同じ理由でcrontabbed ntpdateを使用します。これは、アプリケーションをロックダウンした場合でも、そのポートを開いて欲しくないホストであるためです。そのアプリケーションが真の2番目のオフであることは悲惨ではありません。
冗長性については、ネットワーク上に少なくとも2つのタイムホストを維持し、すべての内部ホストがそれら2つを指すようにします。これら2つは、異なるインターネットNTPホストを追跡します。さらに、それらはピア配置で構成されているため、インターネットリンクがダウンした場合でも、コンセンサス方式で相互間の時間を保つことができます。堅牢なNTPを設計することは間違いなく可能です。
Ntpdを実行している仮想マシンのクロックスキューに関する問題を聞いたことがあります。また、いくつかのプールサーバーに対してntpdateを呼び出す通常のcronジョブを実行してこの問題を修正している人もいます。私にはこれらの問題はありませんでしたが、何度か聞いたことがあります。
アクセスと強化が重要なサーバーでは、私が依存していたntpdのバージョンであるxntpdには、UDPポート123を開く必要があるという推論を使用しました。代わりにcrontabで。なぜそれが必要なのか、あるいは思い出せないのかという理由は聞いたことがありません。
Crontabされたntpdate呼び出しを使用することの短所の1つは、ドリフト修正をエレガントに処理できないことです。 ntpdate、iircは、古くなっていることがわかるとすぐにクロックを更新します。通常、ntpデーモンはドリフトを穏やかに修正します。これには、ログが正常に保たれるという利点があります。たとえば、忙しいWebサーバーでは、RTCが数分ずれていた場合、翌日Webログを読み取ると想像できます。 Webヒットが故障しているため、ログイン前に人々が安全なURLにアクセスできたと推測できます。
ntpdateは、1回限りの更新を目的としています。定期的に同期を取りたい場合は、ntpdというサービスを使用してください。
私の知る限り、ntpdを使用しないという説得力のある理由はありません。
「ntpdate」が依然として望まれ、使用されている理由の理解については、 この説明 を参照してください。
まとめると、-gオプションを使用しても、大幅な時間調整を行う場合と比較して、ntpdはslowです。
Crontabを使用する必要はありません。それがntpdの目的です。
最初にタイムアウトが発生した場合の1つの方法は、ntpdを停止し、ntpdate ntp.server.com
を実行して同期を取り、ntpを再起動することです。
ただし、大規模なネットワークを使用している場合は、ローカルのntpサーバーをいくつかセットアップし、すべてのホストで使用できるようにするでしょう。