勃てよ、国民!

下ネタあり、閲覧注意!

【CentOS】ESXi上でのCentOS時刻ずれ

ESXi6.7上に構築したCentOS7の時刻が度々ずれてしまいハマったので、原因と解消方法の備忘録。

VMwareのナレッジベースを見て回っていたところ、VMware Toolsの「時刻同期」が有効になっていると、勝手にゲストOSの時刻をESXiの時刻に同期するそうです。しかもESXiは起動時に自ハードのハードウェアクロックを見て、それをUTCとしてシステムクロックに設定するらしい。JSTでゲストOSを運用している場合、当然両者間のずれが発生します。

 

解消方法

一番確実な方法はゲストOSとESXiの時刻同期を切り離して、ゲストOS独自にNTPサーバと同期するよう設定することです。

 

1. VMware Toolsの「時刻同期」を無効化する。

f:id:self_fella:20210501120539p:plain

仮想マシンの「設定の編集」から「ホストとゲスト時間を同期」チェックを外します。

 

2. ゲストOSのNTPクライアント機能を有効にする。

Windowsの場合は「日付と時刻」からインターネット時刻設定で時刻同期を有効にするのが一番楽です。CentOS7の場合はchronyを有効化する必要があります。(通常のサーバ構成なら大抵インストール済み、なければyumでインストール)。

・/etc/chrony.confの編集

デフォルトサーバの記述をコメント化し、使用するNTPサーバを記載します。CentOSではなく、日本のものを使う場合は、東京理科大学東京大学のNTPサーバを指定しておけば事足りると思います。

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp.sut.ac.jp
server ntp.nc.u-tokyo.ac.jp

必要がある場合はネットマスクの値を変更します。

#allow 192.168.0.0/16
allow 192.168.0.0/24

・chronydの登録と起動

chronydが起動時に自動で立ち上がるように設定し、起動させます。

# systemctl enable chronyd
# systemctl start chronyd

起動確認は以下のコマンドでできます。

# systemctl status chronyd