Почему гостевая система Debian Hyper-V не обновляет время после выхода хоста из спящего режима?

Почему гостевая система Debian Hyper-V не обновляет время после выхода хоста из спящего режима?

У меня есть физический хост (ноутбук) под управлением Windows 10 с установленным и включенным Hyper-V, и у меня возникла проблема: в довольно простой гостевой установке Debian 9 часы не обновляются после того, как хост на некоторое время переводится в спящий режим, а затем снова пробуждается (я предполагаю, что гостевая система приостанавливается вместе с хостом).

Насколько я понимаю, эта проблема должна быть легко решена службами интеграции Hyper-V, которыеявляютсявключено как в настройках виртуальной машины (все службы интеграции включены), так и в гостевой (все hv_*модули загружены), и одна из служб синхронизирует время и следит за его актуальностью.

Итак, почему это не работает в моем случае? У меня не установлен NTP, и я не хочу его устанавливать, частично из принципа (чтобы устранить проблему с Hyper-V в частности), а частично потому, что гость должен работать без подключения к Интернету и удаленных хостовых служб. Мой хостовый часовой пояс явно настроен на UTC (я много перемещаюсь с ноутбуком и не хочу и не хочу статически связывать гостя с определенным часовым поясом), и TZвместо этого использую переменную по мере необходимости.

Я прочитал кучу страниц на Microsoft и несколько статей Altaro, которые показались мне очень информативными, но не смогли просветить меня по этому вопросу. Я также прочитал несколько ответов на сайтах Stack Exchange, где половина рекомендует использовать NTP, а другая половина в основном о чем-то другом или просто не дает желаемых советов.

Я понимаю, что, возможно, есть какой-то сигнал, который не срабатывает на госте, когда хост выходит из спящего режима (как это было бы, если бы вы перевели гостя в спящий режим с помощью ACPI, например), но разве это не должно быть решенной проблемой?

Какие неполадки и где я могу устранить, чтобы быть уверенным, что я могу надежно закрыть крышку ноутбука (перевести его в спящий режим) и вернуться к гостю с актуальной временной меткой?

решение1

Проверь это:https://github.com/clearlinux/distribution/issues/39

Рабочее решение — отключить все остальные службы времени и использовать chrony, а не настраивать только источник времени LIS hyperv ptp0.

Обеспечьте доступность источника времени LIS с помощью:

ls /sys/class/ptp
ptp0

cat /sys/class/ptp/ptp0/clock_name 
hyperv

Теперь установите chrony для вашего дистрибутива и проверьте расположение конфигурации, затем создайте конфигурацию, соответствующую расположению вашего устройства ptp?.

/etc/chrony.conf:

refclock PHC /dev/ptp0 trust
makestep 1 -1

Это позволит chrony скорректировать системное время через источник hyperv ptp0 за один большой шаг.

Время опроса можно сократить до 4 секунд (степень 2) с помощью:

refclock PHC /dev/ptp0 trust poll 2

PS: Похоже, это ошибка/недосмотр в hyperv/LIS.

Связанный контент