ダメ男のアウトプットブログ

アウトプット兼日記帳

vSphere環境の時刻同期についての問題

業務中に出くわした内容についてメモしておく。

 

vSphere環境上で稼働している仮想マシンについて、同様にvSphere上で稼働している仮想マシンをNTPサーバとして時刻同期先に設定したが、時刻同期を行えなかった。

 

原因は、「仮想環境上の仮想マシンは物理環境と比較して時刻制度が低いため、時刻同期が不安定・時刻同期しなくなる現象が起きやすくなる」というものであった。

理由としては、物理仮想問わず、Linux, Windowsなどは一般的にCPUの割り込みを利用して時刻をカウントするためハードウェアの精度によって時刻ずれが発生するためである。仮想OSは物理のCPUを共有して利用しており、すべてのCPUリソースを該当仮想マシンで利用することができないため、物理サーバ上のOSと比較してどうしても時刻制度は低くなってしまう。

NTPクライアントは指定されたポーリング間隔(デフォルトで64~1024秒)でNTPサーバと通信を行い、NTPサーバが信頼できると判断された場合に時刻同期を行う。

 

【NTPサーバより取得する時刻情報の一部】

・stratum(階層)

・offset(時刻差)

・jitter(揺らぎ)

・delay(遅延)

・refid(参照先サーバ)

 

上記値などを総合的に判定し、信頼できる同期先NTPサーバを選定しているため、精度の低いNTPサーバ(ここでいうところの仮想マシン)を指定 した場合は、時刻同期が不安定になる。

 

-----------------------------------------------------------------------------

時刻同期周りについてもっと詳しく知る必要があると感じている。

以下の参考サイトを時間のある時に読んでみよう。残念ながら今の知識ではしっかりと理解することはできなかった。

qiita.com