仮想マシンでNTPサーバーを実行する際の制限は何ですか?


15

ローカルネットワークに複数のStratum 2タイムサーバーをセットアップしたい。バーチャルマシンは、3台の1Uサーバーを購入するよりも安価に実行できます。そうすることでどのような制限が課せられますか?つまり、精度はどの程度悪影響を受けますか?

さらに、私の本能は、ハードウェアの異常を緩和するために、これらのローカルタイムサーバーを異なる物理マシンに常駐させることです。この直感は正しいですか?

編集 私は、「仮想マシン」で、私はなかったと言うべきで、特に意味のVMwareを。むしろ、仮想化されたインスタンスの一般的な概念を意味しました。

回答:


19

単純な事実は、VM内のクロック精度が依然として非常に悪いことです。これはいくつかの点に由来しますが、致命的なことは、時間ドリフトが一定ではないことです。ドリフト係数は時々刻々と変化します。NTPは、クロック補正が組み込まれたプロトコルですが、静的ドリフト係数が組み込まれた設計になっています。たとえば、物理マシンが30日ごとに12秒失われた場合、NTPはそれを補正できます。しかし、そのマシンが30日ごとに4〜70秒の損失を被る可能性がある場合、NTPはそのレベルの変更を追跡するのにあまり適していません。

NTPがVM環境に遅れずについていくのを本当に難しくしているのは、NTPが見るローカルクロックが1分間でドリフトファクターを変更できることです。親のタイムソースをチェックしている頻度に応じて、大きなドリフトファクターの変化を引き起こし、はるかに頻繁に非同期になる可能性があります。組織全体で非同期の時間カスケード。

ローカルネットワークのNTPは、メモリフットプリントが非常に小さい比較的影響の少ないプロトコルであり、DNSサーバーやDHCPサーバーなどの他のネットワークインフラストラクチャサーバーに喜んで便乗できます。一部のルーターはNTP機能を提供することもできるので、調べてみてください。

理想的には、それぞれが異なる上位階層サーバーのセットと同期する別々の場所に2つの個別のサーバーが必要です。また、両方のタイムサーバーが他のサーバーを「ピア」として使用するように構成されていることをお勧めします。階層の変更はありますが、少なくとも非同期を報告することはありません。そして最後に、アップストリームのタイムプロバイダーに優しくして、時間が十分に確立されたら、ポーリング間で非常に長い時間をかけるようにサーバーを構成します。これは、「サーバー」行の「maxpoll」パラメーターであり、同期試行間の秒単位の2の累乗です。

このために絶対にVMを使用する必要がある場合は、3つ以上のそのようなNTPサーバーをセットアップします。これらはそれぞれ異なるホスト上に存在する必要があり、可能であれば異なるデータセンターに存在する必要があります。私がちょうど提案したように、それらは異なるタイムソースを必要とし、互いにピアリングする必要があります。次に、3つすべてを親ソースとして使用するようにすべてのNTPクライアントを構成します。maxpollの値が、ネットワーク外の同期パケットとネットワーク上で30分の間で1時間半を超えないように十分に低くなるようにしてください。3つのうち少なくとも1つがいつでも同期している可能性があります。1人のタイムホストのみと通信できるクライアントの場合、偶発的な非同期イベントに我慢する必要があります。全体として、このシナリオの時間品質は、物理サーバーの場合ほど正確ではありません。

ボールパークをしなければならなかったとしたら、純粋なVM環境でのコンセンサス時間は、おそらく30〜100ミリ秒以内であると思います。純粋に物理的な環境では、タイムサーバーが安定するまでの時間が十分に長くなれば、コンセンサス時間はおそらく10ミリ秒以内になります。


1
2台のローカルNTPサーバーではなく、少なくとも3台が必要であることはかなり確信しています。クライアントは、2つだけをどのように区別しますか?
ジェームズA.ローゼン

何らかの難解な理由により、最低4つ必要です。そうは言っても、6台の外部サーバー(およびそれらのローカルクロックをバックアップとして)に同期する2つの内部サーバーがあります。私たちにとって十分に機能します。
ジェームズ

James A Rosen-ピアグループ構成の喜びです。ピアグループの少なくとも1つのメンバーが外部接続を持ち、同期している限り、ピアグループ全体が同期しています。クライアントは階層を劣化させる可能性がありますが、少なくとも非同期にはなりません。ピアグループに3人いますか?問題ない。
sysadmin1138

1
必要なサーバーの数に関しては、すべてsupport.ntp.orgにあります。1つだけをリストする場合、「正しい」または「間違っている」と見なされる質問はありません。[...] 2つでは、どちらが優れているかを判断することは不可能です[...]。これは実際には最悪の設定です[...]。3台のサーバーを使用すると、タイムソースの数が最小になります[...] 少なくとも4つのアップストリームサーバーがある場合、[...] ntpdには十分な数のソースを選択できます。
マチュー

11

VMwareのタイムキーピングドキュメントを参照してください。VMでNTPデーモンを実行することは、特に信頼性の高い時間を必要とする場合は、おそらく良い考えではありません。


2
母- 「あなたは信頼性の高い時間を必要とする場合は特に、」
squillman

1
私はあなたにもっと同意できませんでした。実際、VMで実行するのが適切でない単一のサーバーを考えることはできません:)
Chopper3

6

残念ながら、ntpと仮想化はあまりうまくいきません。ほとんどの場合、クライアントは問題ありませんが、通常、ntpサーバー(esp str2以上)は仮想サーバー上で確実に動作しません。

私はxenとxenエンタープライズの観点からコメントしていますが、vmware / kvmも同じだと思います。

異なるサーバーで、はい、あなたは正しいです。理想的には、異なる環境にもあるべきです。そのため、温度/湿度も精度に影響しませんが、少なくとも私はそれを気にしません。また、何をするにしても適切な原子時計ほど正確ではないことを忘れないでください。


1

仮想環境でNTPを実行すると、20ミリ秒の精度を達成することができます(これはVMwareを使用して行ったことです)。特に、リソースの競合がある仮想化環境では、仮想化されたクロックスキューは不良です。

それはあなたがどれだけ正確である必要があるかによります。2番目(Webサーバーの場合)のみに関心がある場合は、リソースの競合がない限り問題はないでしょう。ミリ秒単位の精度(ビジーなデータベース、ログサーバー、研究プロジェクトなど)が必要な場合は、仮想化されたタイムサーバーを忘れてください。

NTPサーバーは常に物理ホスト上にある必要があります。プール内で少なくとも3つのピアリングを行う必要があります(そのため、1つの不正なサーバーがプールによって投票されます)。また、可能であれば、インターネット経由ではなく、GPSまたはその他のローカルTier-0ソースから時間を取得します。

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