chronydを無効にし、代わりにhypervデーモンを使用してサーバークロックを同期して、仮想マシンを実行しているコンピュータでゲストOSの時間を管理することを選択しました。
chronydを無効にし、hyperv-daemonを有効にした後、サーバークロックはもはやドリフトしません。
ただし、実行すると、timedatectl
システムクロックが同期していないことを示す出力を表示できます。
[user@server ~]$ timedatectl
Local time: Tue 2021-09-07 10:54:08 BST
Universal time: Tue 2021-09-07 09:54:08 UTC
RTC time: Tue 2021-09-07 09:54:08
Time zone: Europe/London (BST, +0100)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
timedatectlはchronydサービスが実行されていることを確認するだけで「システムクロック同期」値を設定しますか?
答え1
timedatectl
から同期情報を取得しますsystemd-timedated.service
。
バージョンによっては、systemd-timedated.service
次のことを認識できます。
- ただ
systemd-timesyncd.service
、 - 組み込み同期サービスのリスト、
- プロセス環境
SYSTEMD_TIMEDATED_NTP_SERVICES
の環境変数にあるコロンで区切られたサービスのリストsystemd-timedated.service
- および/またはファイルのサービスのリスト(
(/usr/lib)|(/usr/local/lib)|(/etc)/systemd/ntp-units.d/*.list
1行に1つ)。
表示は、デフォルトNTP service
で「実行中のNTP同期サービスとしてリストされているサービスはありますか?」によって決まります。
このSystem clock synchronized
情報はカーネルから来ます。時間同期サービスがアップデートを提供していることをカーネルが知っている場合、カーネルはtime_status
カーネル内の変数からビット7をクリアします。次のコマンドを使用して、この変数の値を表示できますadjtimex --print
。ビット7(値64)がに設定されている場合、status
システムクロックはいいえ同期中です。 / このビットをtimedatectl
表示ソースとして使用します。systemd-timedated.service
System clock synchronized: yes/no
バージョンが環境変数をsystemd-timedated.service
サポートしている場合SYSTEMD_TIMEDATED_NTP_SERVICES
(サービスマニュアルページの確認)、次のオーバーライドファイルを作成できます/etc/systemd/system/systemd-timedated.service.d/override.conf
。
[Service]
Environment=SYSTEMD_TIMEDATED_NTP_SERVICES=<name of HyperV daemon .service here>:chronyd.service:ntp.service:systemd-timesyncd.service
明らかに、対応するHyperVデーモンをファイル<name of HyperV daemon .service here>
の実際の名前に置き換えます。.service
このオーバーレイファイルを作成して再起動した後、コマンドはsystemd-timedated.service
環境変数にリストされているサービスが実行されているかどうかを表示する必要があります(に従って)。timedatectl
NTP service: active
systemd
HyperVデーモン自体がシステムクロック同期ステータスビットを更新しない場合は、adjtimex --status 0
それを直接実行して、クロックが同期していることを示すか、クロックがadjtimex --status 64
同期していないことを示します。 (注:私はカーネルタイミングシステムを完全に理解しているとは主張しません。したがって、これを選択した場合自分の責任で使用してください。HyperVデーモンがこのステータスビットを更新しない理由は何でもあります。 )
これを使用すると、時刻timedatectl set-ntp true
同期systemd-timedated
サーバーのリストに記載されているサービスを確認し、インストールされた最初のサービスを有効にして開始しようとするため、リストSYSTEMD_TIMEDATED_NTP_SERVICES
は必要に応じてソートする必要があります。