Как устранить смещение часов на моей виртуальной машине?

StackOverflow https://stackoverflow.com/questions/117422

  •  02-07-2019
  •  | 
  •  

Вопрос

Часы моей виртуальной машины довольно сильно отклоняются.Существует документация по решению этой проблемы, но, похоже, ничего не работает очень хорошо.

У кого-нибудь есть какие-либо предложения, что-то, что им помогло,...

Предположительно, регулярное обновление через ntp не является хорошим решением.

Это было полезно?

Решение

у VMware есть действительно хороший PDF-документ по этой проблеме.

По сути, хозяин будет сокращать галочки, доставленные вашим гостям, как только сможет.Не запустить NTP, или по времени, или всякую ерунду.Просто установите vmware-guestd и позвольте хосту убрать ваши галочки.Если вы по-прежнему теряете тики, то любое другое решение также будет иметь значительный дрейф.

Если есть возможность, используйте гостевую ОС с низкой частотой тиков.Новые версии Linux имеют тактовую частоту 1000 Гц, но раньше она была только 100 Гц.Хозяину кажется, что это проще доставить.Для изменения значения HZ обычно требуется пересборка ядра.

Другие советы

  1. Прежде чем кого-либо слушать, внимательно прочтите документацию по vmware.Мы используем ESX5.

Лучшие практики хронометража для гостей Linux, среди прочего, гласят:Ссылка: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427

Рекомендации NTP ПРИМЕЧАНИЕ:VMware рекомендует использовать NTP вместо периодической синхронизации времени VMware Tools.NTP является отраслевым стандартом и обеспечивает точный учет времени у вашего гостя.Возможно, вам придется открыть брандмауэр (UDP 123), чтобы разрешить трафик NTP.

Это образец /etc/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

Это образец (специфичный для RedHat) /etc/ntp/step-tickers:

0.vmware.pool.ntp.org
1.vmware.pool.ntp.org

Директива конфигурации Tinker Panic 0 предписывает NTP не сдаваться, если он видит большой скачок во времени.Это важно для борьбы с большими отклонениями во времени, а также для вывода виртуальных машин из приостановленного состояния.

Примечание:Директива Tinker Panic 0 должна находиться в начале файла ntp.conf.

Также важно не использовать в качестве источника времени локальные часы, которые часто называют «недисциплинированными локальными часами».NTP имеет тенденцию прибегать к этому варианту, отдавая предпочтение удаленным серверам, когда наблюдается большой сдвиг во времени.

Пример такой конфигурации:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

Закомментируйте обе строки.

После внесения изменений в конфигурацию NTP демон NTP необходимо перезапустить.Обратитесь к документации поставщика вашей операционной системы.

Просто хочу добавить некоторые данные о том, почему NTPD не является хорошим решением.NTPD — это демон, который пытается компенсировать смещение локальных часов;если «внутренние часы» отклоняются на Х секунд в день, то вместо перехода вперед/назад, как принудительная команда, как в «ntpdate», NTPD пытается добавить/удалить некоторые циклы в часы, чтобы вовремя, как правило, в течение 15 минут часы идут достаточно точно, и компенсация преодолевает это количество секунд, которое серверы выигрывают/теряют за день.Преимущество этого заключается в том, что вы не увидите повторяющегося времени суток, что ОБЯЗАТЕЛЬНО для транзакционных систем.

Но чтобы иметь возможность сделать это, NTPD требует, чтобы локальные часы работали достаточно хорошо, что обычно означает, что локальные часы не отклоняются более чем на 42 секунды в день (более или менее;Я не уверен в точном количестве).Обычно это проблема виртуальных машин, так как часы управляются программным обеспечением, поэтому, если ХОСТ слишком сильно перегружен, вы можете увидеть, что часы КЛИЕНТА будут идти медленнее, а если это не так, то часы могут работать слишком медленно. быстрый.Проблема NTPD заключается в том, что местные часы ненадежны и не имеют постоянного отклонения во времени;оно может быть больше или меньше в зависимости от перегрузки HOST-системы.

Поэтому в этом случае лучше установить клиентские инструменты, как было предложено, и синхронизировать часы КЛИЕНТА с часами ХОСТА (обычно называемыми «настенными часами»)

Однозначного ответа нет, поскольку существует несколько методов, каждый из которых имеет свои плюсы и минусы.Какой из них выбрать, зависит от ваших задач, нагрузки на сервер, операционной системы и т. д.

Читать vmware_timekeeping.pdf для полного понимания вопроса.

Быстрые рецепты для Linux можно найти в отдельном разделе статья базы знаний

Разве установка дополнений (инструментов) виртуальной машины не синхронизирует часы между гостевой и хостовой ОС?

Предположительно, регулярно обновлять через NTP - не хорошее решение

Это решение, которое я бы порекомендовал.Почему в вашем регионе это не считается хорошим?

Установите NTP, если у вас его еще нет.

ntpdate установит часы правильно, тогда ntpd сможет поддерживать точность часов.

А проект пула NTP предоставляет большой пул серверов NTP на выбор.

Редактировать только что заметил, что вы сказали, что считаете NTP плохим решением - почему?Если вас беспокоит эффект изменения часов, NTP является идеальным вариантом, поскольку ntpd не переводит часы вперед или назад, а вместо этого «поворачивает» часы, слегка ускоряя их вверх/вниз, пока они не вернутся в соответствие с правильное время.

У меня была та же проблема, и я решил ее с помощью

  1. установка vmware-guestd
  2. отправка ядру опции clocksource=acpi_pm
  3. запуск hwlock -s ежечасно от имени пользователя root.

Это старая проблема, но она затронула нас совсем недавно.Я обнаружил, что эта проблема затронула любую из наших виртуальных машин, на которых были запущены инструменты vmware.

Совсем недавно мы начали использовать инструменты open-VM, и на этих виртуальных машинах эта опция не была установлена.Поскольку инструменты open-vm полностью поддерживаются и рекомендуются Vmware, я бы предложил использовать их вместо инструментов vmware: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2073803

Если open-vm-tools находится в репозитории, который вы используете, его также легко установить через yum install или apt-get install и т. д.

Вы можете использовать cmd и

net time \\computer_name /set

установить часы удаленно (или в скрипте например)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top