У меня есть виртуальная машина CentOS (выпуск 6.2), работающая под HyperV. У меня установлены службы интеграции (сейчас они являются частью базы), и CentOS показывает, что текущий источник часов - это hyperv_clocksource, однако мое время на виртуальной машине составляет около 10 минут после недели безотказной работы. Насколько я понимаю, новая микросхема и подключаемый источник тактовых сигналов таковы, что этого больше не должно происходить. Требуется ли какая-либо дополнительная настройка, чтобы заставить подключаемый источник тактовых сигналов "работать"?
Я знаю, что есть много ссылок о настройке параметров ядра на PIT и тому подобном, но все они, похоже, предшествуют интегрированной поддержке тактового источника, и, как я понимаю, она больше не нужна. Ни ntpd, ни adjtimex.
Изменить: был запущен 3.2 IC (который поставляется с Centos 6.2), обновлен до 3.3 сегодня, машина работала 1 час 22 минуты, а часы уже на 5 секунд быстрее. Так что я сейчас работает последняя версия микросхемы и все еще имеет ту же проблему.
У меня была эта проблема в прошлом, и я исправил ее, настроив переключатели запуска (notsc divider = 10) и настройки ntp:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.6.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.6.1.el5 ro root=/dev/VolGroup00/LogVol00 hda=noprobe hdb=noprobe notsc divider=10
initrd /initrd-2.6.18-164.6.1.el5.img
title CentOS (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-164.el5.img
Пример ntp.conf:
tinker panic 0
restrict 127.0.0.1
restrict default kod nomodify notrap
server 0.vmware.pool.ntp.org
server 1.vmware.pool.ntp.org
server 2.vmware.pool.ntp.org
driftfile /var/lib/ntp/drift
Источник:
Исправление дрейфа часов Linux на Hyper-V на Server 2008 R2
http://hardanswers.net/correct-clock-drift-in-centos-hyper-v
Дрейф гостевых часов Hyper-V Linux под нагрузкой, к сожалению, довольно распространен (дрейф часов в несинхронизированных виртуальных машинах в некоторой степени неизбежен). Видеть Часы Linux теряют 10 минут каждую неделю и Машина Hyper-V дрейфует во времени, даже с NTP для других сообщений об этом. Я видел анекдотические свидетельства, которые говорят следующее:
current_clocksource
является hyperv_clocksource
- твои часы воля дрейф после загрузки и не будет исправлено если вы не запустите одну из программ синхронизации, указанных ниже. Есть много сложный Windows-ориентированный и противоречивый информация по этой теме и часто повторяющиеся термины, такие как «подключаемый источник времени» для понимания.ntpd
не может исправить отклонение суммы, которое может произойти в гостевой системе Linux Hyper-V и вам придется либо использовать обычную синхронизацию грубой силы ntpdate (плохо), либо службу ntp, такую как chrony
(лучше) для исправления больших отклонений часов.Сначала проверьте, обнаруживает ли Hyper-v службы интеграции. Единственный способ, которым я знаю, как использовать диспетчер виртуальных машин системного центра, но я предполагаю, что должен быть способ использования mmc Hyper-v.
Кроме того, я видел, как это происходит, когда синхронизация часов отключена в конфигурации виртуальной машины. Почему часы идут быстрее, мне непонятно. Я приложил для справки снимок экрана с конфигурацией виртуальной машины.