우리는 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
한 줄에 하나씩).
표시는 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
목록은 원하는 대로 정렬되어야 합니다.