ESXi6.7上に構築したCentOS7の時刻が度々ずれてしまいハマったので、原因と解消方法の備忘録。
VMwareのナレッジベースを見て回っていたところ、VMware Toolsの「時刻同期」が有効になっていると、勝手にゲストOSの時刻をESXiの時刻に同期するそうです。しかもESXiは起動時に自ハードのハードウェアクロックを見て、それをUTCとしてシステムクロックに設定するらしい。JSTでゲストOSを運用している場合、当然両者間のずれが発生します。
解消方法
一番確実な方法はゲストOSとESXiの時刻同期を切り離して、ゲストOS独自にNTPサーバと同期するよう設定することです。
1. VMware Toolsの「時刻同期」を無効化する。
仮想マシンの「設定の編集」から「ホストとゲスト時間を同期」チェックを外します。
2. ゲストOSのNTPクライアント機能を有効にする。
Windowsの場合は「日付と時刻」からインターネット時刻設定で時刻同期を有効にするのが一番楽です。CentOS7の場合はchronyを有効化する必要があります。(通常のサーバ構成なら大抵インストール済み、なければyumでインストール)。
・/etc/chrony.confの編集
デフォルトサーバの記述をコメント化し、使用するNTPサーバを記載します。CentOSではなく、日本のものを使う場合は、東京理科大学か東京大学のNTPサーバを指定しておけば事足りると思います。
必要がある場合はネットマスクの値を変更します。
#allow 192.168.0.0/16
allow 192.168.0.0/24
・chronydの登録と起動
chronydが起動時に自動で立ち上がるように設定し、起動させます。
# systemctl enable chronyd
# systemctl start chronyd
起動確認は以下のコマンドでできます。
# systemctl status chronyd