web-dev-qa-db-ja.com

VMware ESXi 5がWindowsと時刻を強制的に同期させるために微調整が必​​要なのはなぜですかNTPサーバー

一見シンプルなのに面倒な問題に悩んでいるので、こちらに助けを求めます。

症状

VMware Workstation内にVMware ESXi 5.1のインスタンスをインストールして、さまざまなESXi機能について学びました。これをvESXiマシンと呼びます。 vESXiを実行しているときの問題は、夜にvESXiを一時停止して翌日に再開するたびに、vESXiの時間が遅れることです。つまり、昨夜の22:00にvESXiを一時停止し、今日の朝に再開すると、vESXiは昨夜も22:00であると報告します。 PCシステムはハードウェアタイマーティック割り込みをカウントすることで時間を維持するため、これは正常なことです。そこで、vESXiでNTPを使用してNTPサーバーと同期することにしました。私のNTPサーバーは、同じLANセグメントで実行されているWindows Server 2003ドメインコントローラーです。

私はすぐに問題を観察しました。vESXiは、待機時間が長くても、時間をWindow NTPサーバーと同期しません。

一時停止する代わりにvESXiをシャットダウンすることをお勧めしますが、私はVMware Workstationが提供する一時停止機能が大好きです。これは非常に迅速で流暢です。

snap0327-esxi-time-drift.png

ご質問

私は読んだ http://kb.vmware.com/kb/10358 回避策(Windows NTPサーバーで動作させるための微調整)を提供しますが、そのKB記事で作成されます最初の読書でより多くのバッフル。さらに、vESXiの数が非常に多い場合、すべてのvESXiを調整するのは非常に面倒です。

Q1(プライマリ):これらのステートメントは一体何を意味しますか?

デフォルトでは、非同期のWindowsサーバーは10秒の分散を選択し、同期を維持する各ポーリング間隔の分散に追加します。 ESXi/ESXホストは、デフォルトで、root分散が1.5秒を超えるNTP応答を受け入れません。

Q2:KBで追加するように言われました

tos maxdist 30

/ etc/ntp.confにその行はどういう意味ですか? ntpd.conf manページ http://linux.die.net/man/5/ntp.conf は、tosまたはmaxdistについて何も言わないようです。

Q3:ESXi NTPクライアント(デーモン)は割り当てられたNTPサーバーと正常に同期しないので、ESXiは詳細を説明するログメッセージを生成しますか?

Q4:ESXiのntpクライアントを特定のNTPサーバーとすぐに同期させる方法はありますか?手動でも大丈夫です。バンドルされているntpdコマンドがこれを実行できるかどうかはわかりません。

Q5:ESXiで手動/ etc/ntp.confを調整しないと、vESXiボックスにタイムソースを提供するためにどのようなNTPサーバーを設定できますか? Linux ntpdまたは何ですか?サーバー側で特別な設定が必要ですか?

前もって感謝します。

実験で更新

NTP FAQ を読み、いくつかの実験を行った後、次の事実を確認しました。

  1. KB1035833 Tweakを使用すると、vESXiの時間がサーバーから7日遅れている場合でも(5〜10分の待機のみ)、vESXiは実際にWindows NTPサーバーと同期できます。
  2. Viclientを使用してNTPサーバーとしてLANにLinuxマシン(openSUSE 11.4、私の場合はntpパッケージ4.2.6)を割り当てると、KB1035833 TweakのないvESXiだけでNTPサーバーと同期できます。 7日間のタイムラグがある場合でも、5〜10分の遅延。しかし、覚えておかなければならないことの1つは、再起動NTPサービスにチェックを入れて、viclientに変更を適用して、時刻同期を強制的に強制することです( 5〜10分)。つまり、ESXiのNTPサービスを再起動しないと、一晩のタイムラグでvESXiを再開した後、時刻同期を取得するのにかかる時間を予測するのが非常に難しくなります(場合によっては1時間かかる)以上)-おそらく、再開されたNTPクライアントコードは、その期間中のNTPサーバー時間のジッターを許容できないと見なしているためです。

だから:vESXiの時間管理に関する私の実際的な問題は解決されました(Linux NTPサーバーとの時間の同期を優先)。

今、焦点はQ1にあります。Windows NTPサーバーの何が問題になっていますか? NTPプロトコルの観点からQ1の2つのステートメントを説明できる人がいると思います。

QuadruplebuckyとReality Extractorの有用な情報に感謝しますが、私の特定の問題に対する回答は正確ではありません。

3
Jimm Chen

私はついにそれを理解します。 Q1のVMware KBステートメントを理解する鍵は、dispersionの意味です。実際には、NTP応答パケットのRoot Dispersionフィールドを参照しています。Windowsは、約10秒のRoot Dispersionフィールドをアドバタイズします。 、Linux ntpdは約0.01秒をアドバタイズします。

Microsoftはこれを意図的に行い、この動作を http://support.Microsoft.com/kb/939322/en-us で発表していると思います。

以下の画像は、10秒の分散フィールドを示しています(Microsoftネットワークモニター3.4で取得)。

enter image description here

3
Jimm Chen

時差が大きすぎる場合NTP=は同期しません。これは予想される動作です。

通常、これは問題ではありません。ゲストOSにインストールされたVMwareツールは、時間のずれに関係なく、時間をホストに同期します。実験的でサポートされていないオプションを使用してESXiをVMとして実行しているため、VMware Toolsの機能を利用できず、同期されません。

ために tos maxdist確認できます 自動NTP構成オプション ですが、時間が離れすぎているため問題は解決しません。

5

VMWare Workstation内のESXiはかなりひどい設定です。あなたに脱帽。

NTPDは、実行されている(たとえば、スリープ状態になっている)ことを「考える」場合、そのような大幅な時間調整を行いません。残念ながら、ESXiにはntpdateバイナリがないようです(これは、30分ごとにcronを介して実行し、ntpdを完全に無効にすることができます)。

サービスを停止および開始すると(おそらく数回)、ntpはそれ自体を修正する傾向があることに気づきました。

醜い回避策ですが、おそらくntpdを停止/開始するcronジョブですか?

ESXiへのcronジョブの追加に関するリンクです

停止および開始するコマンドは次のとおりです

/etc/init.d/ntpd stop
/etc/init.d/ntpd start
4
quadruplebucky