LinuxWindows

CentOS7での日時/タイムゾーン設定とchronyによる時刻同期の設定

Linux

CentOS7をHyper-Vで構築したのですが、時刻が大幅にずれていたのでchronyを使って同期してみます。

現在の本当の時刻は「2020年7月29日」なのですがCentOS内の時刻は「2020年 7月 28日」となっており1日程度のズレが生じていました。

どうも調べてみるとHyper-VでLinux系の仮想マシンの場合は、以下にある「時刻の同期」はサポートされていないようで、Linuxマシン側で時刻同期の設定が必要みたいです。

環境と時刻の状態

ホストOS:Windows10 Pro [192.168.10.24]
ホスト側の時刻:あってる

ゲストOS:CentOS7 (ホスト名:gitlab)
ゲスト側の時刻:あってない

CentOS7の時刻を正しくする

日付、時刻、タイムゾーンの確認

まず、CentOS側の日時やタイムゾーンの状態をdateコマンドやtimedatectlコマンドで確認します。

これを見ると時間がずれていますが、タイムゾーンはAsia/Tokyoなので問題なようです。

[root@gitlab ~]# date
2020年 7月 28日 火曜日 09:53:10 JST
[root@gitlab ~]# timedatectl
      Local time: 火 2020-07-28 09:53:12 JST
  Universal time: 火 2020-07-28 00:53:12 UTC
        RTC time: 火 2020-07-28 15:03:32
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

時刻同期が正しく行われてなさそうなので、NTPの設定をしていきます。

Chronyのインストール

CentOS7ではChronyを使って時刻同期をします。インストールされてなければインストールして、サービスを起動して、さらにOS起動時にも起動するように設定します。

[root@gitlab ~]# yum install chrony
[root@gitlab ~]# systemctl start chronyd
[root@gitlab ~]# systemctl enable chronyd

Chronyの設定

Chronyの設定を確認します。

デフォルトではcentosのNTPサーバが設定されていますが、今回はインターネット上にNTPで接続することはせずに、ホストOS(192.168.10.24)と時刻同期をするようにします。

[root@gitlab ~]# vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#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 192.168.10.24 iburst

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
#local stratum 10

# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking
~

CentOSを再起動してから時刻を確認すると正しく同期されています。

[root@gitlab ~]# shutdown -r now

[root@gitlab ~]# date
2020年  7月 29日 水曜日 08:37:54 JST

今回は以上となります。

コメント