最近、私たちのプロジェクトの1つで、仮想マシンとNTPサーバー間の同期がずれたために予期せぬインシデントが発生しました。 その理由はすぐに見つかりました。この時点で、ハイパーバイザーのBIOSの更新が原因で、ホスト間でvMotionの大規模なオンライン移行が行われました。 さらに、ホストもNTPサーバーから時間を受け取りましたが、ハイパーバイザーが完全に時間を同期する時間がないため、仮想マシンはハイパーバイザーをオンにした直後に移行を開始したため、移行が行われたホスト間に時間差がありました。 明らかに、これは仮想化チームの側の誤りでしたが、UNIXチームという私たちに事件の嵐を引き起こしました。
「ホストと時刻を同期する」設定がすべての仮想マシンで無効になったため、状況は非常に驚きました。 理由はVMware KBで見つかりました:
行には特別な注意が必要です。
VMware Toolsコントロールパネルでは、時刻同期チェックボックスは選択されていませんが、次の症状が発生する場合があります。
- 仮想マシンをサスペンドすると、次回その仮想マシンを再開するときに、ホストに合わせて時刻が同期されます。
- vMotionを使用した仮想マシンの移行、スナップショットの取得、スナップショットへの復元、仮想ディスクの縮小、または仮想マシンでのVMware Toolsサービスの再起動(仮想マシンの再起動を含む)すると、時刻が再同期されます。
それはとても予想外です。 Vmvaryaは、移行中に時刻を強制的に同期し、スナップショットを削除するなどの「特別な」場合に判明します。 2つのホスト間に時間差があり、それらの間で仮想マシンを移行する場合、この時間差はシステムクロックに影響し、ntpdで既知の問題を引き起こす可能性があります。
そして最後に、私が記事を書いた最も重要なこと:同じ記事で、この問題を永遠に取り除く方法について述べています-各仮想マシンのプロパティに特定の設定を行う必要があります。つまり、仮想マシンのvmxファイルに変更を加えます。
tools.syncTime = "0"
time.synchronize.continue = "0"
time.synchronize.restore = "0"
time.synchronize.resume.disk = "0"
time.synchronize.shrink = "0"
time.synchronize.tools.startup = "0"
time.synchronize.tools.enable = "0"
time.synchronize.resume.host = "0"
vSphere Clientインターフェイスでも同じことができます。
したがって、人的要因または客観的な理由によって引き起こされるハイパーバイザー側の誤った時間設定から身を守ることができます。