Назад | Перейти на главную страницу

Гостевой RTC Hyper-V Ubuntu сильно ошибочен

Отслеживая некоторые странные проблемы со временем, я обнаружил, что Ubuntu загружается с совершенно неправильным временем на одном сервере. Сервер - это Proliant, работающий под управлением Windows 2012 Datacenter, и время на сервере синхронизируется с доменом. Кроме того, во время процесса загрузки сервера HyperV, если я просматриваю установленные события времени в журнале событий, корректировки составляют доли секунды, то есть Proliant, кажется, имеет правильное время при загрузке, и оно застревает.

В Ubuntu HyperV синхронизация времени в службах интеграции отключена, а NTP синхронизируется с внешними часами. Синхронизация NTP работает нормально и неплохо сохраняет время, НО начальное время при загрузке неверное - две загрузки сегодня, один раз через 2 месяца, один раз примерно на 3 часа (оба раза вперед). NTP ловит его примерно за 1-2 минуты, но за это время наносится большой урон.

Итак, я попробовал это:

# hwclock -w
# timedatectl
                      Local time: Mon 2019-10-14 20:30:22 CDT
                  Universal time: Tue 2019-10-15 01:30:22 UTC
                        RTC time: Tue 2019-10-15 01:30:30
                       Time zone: America/Chicago (CDT, -0500)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no
#  #### Wait about 90 minutes
# timedatectl
                      Local time: Mon 2019-10-14 21:55:28 CDT
                  Universal time: Tue 2019-10-15 02:55:28 UTC
                        RTC time: Tue 2019-10-15 04:11:32
                       Time zone: America/Chicago (CDT, -0500)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Обратите внимание, что первоначальная настройка пришла без 8 секунд, но проблема близка. Примерно через 90 минут RTC теперь быстрее на 76 минут. Время (поддержание NTP) точное.

Насколько я понимаю, RTC поступает от часов ОС гипервизора при загрузке, и эти часы правильные. Я не нашел подробностей о том, как поддерживается RTC во время работы гостя, но похоже, что что-то в эмуляции RTC не работает.

Другие серверы с аналогичными версиями Linux и программным обеспечением (хотя в основном HyperV 2016 года и одна Windows 10) работают нормально.

Поскольку этот сервер HyperV является производственным сервером, трудно организовать простои для проверки часов BIOS, мы заметили запланированное время простоя для обновлений Windows сегодня гораздо позже.

Некоторые вопросы, которые мне помогут:

Что поддерживает эмулируемый RTC в гостевой виртуальной машине (Linux) во время работы гостевой машины? (Если имеет значение, пока используется NTP)

В Proliant DL380p, если вы перезагружаетесь (например, обновляете Windows), но без выключения и включения питания, используется ли RTC для установки часов Windows O / S, или есть некоторая постоянство в процессе загрузки UEFI? Т.е. если аппаратный RTC неправильный, появляется ли он при перезагрузке? Или связанный с этим вопрос: есть ли способ просмотреть его с поднятыми окнами? Я безуспешно просмотрел все дисплеи МОТ и Агента, и на этом сервере сложно организовать простои.

Опять же, во время работы и гость, и хост держат время нормально. И хост перезагружается в нужное время (по крайней мере, это произошло дважды сегодня - в том смысле, что журналы событий показали незначительные изменения времени). Кроме того, гости виртуальных машин Windows загрузились сегодня в нужное время, ОДНАКО у них установлена ​​синхронизация времени служб интеграции.

И какие-нибудь другие предложения о том, как Ubuntu RTC может так быстро дрейфовать?