Подтвердить что ты не робот

Как я могу разрешить дрейфующие часы для моей виртуальной машины?

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

  • Внимательно прочитайте документацию 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 директивы 0 должна находиться в верхней части файла ntp.conf.

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

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

server 127.127.1.0
fudge 127.127.1.0 stratum 10

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

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

Ответ 3

Просто добавьте некоторые данные о том, почему NTPD не является хорошим решением. NTPD - это демон, который пытается компенсировать локальный дрейф часов; если "внутренние часы" отклоняются на X число секунд в день, то вместо того, чтобы прыгать вперед/назад, как принудительная команда, как в "ntpdate", NTPD пытается добавить/удалить некоторые циклы на часы, чтобы вовремя, как правило, в течение 15 минут часы работают достаточно точно, и компенсация преодолевает это количество Х секунд, которое серверы получают/теряют за день. Это имеет то преимущество, что вы не увидите ни одного раза в день, повторенного, что является обязательным для транзакционных систем.

Но для этого NTPD требует, чтобы локальные часы делали достаточно хорошую работу, что обычно означает, что локальные часы не будут дрейфовать друг от друга более 42 секунд в день (более или менее, я не уверен от точного числа). Обычно это проблема в виртуальных машинах, так как часы управляются программным обеспечением, поэтому, если HOST имеет слишком много перегрузок, вы можете видеть, что часы CLIENT будут работать медленнее, а если это не так, часы могут запускаться слишком быстро. Проблема здесь для NTPD заключается в том, что локальные часы ненадежны и не имеют постоянного дрейфа во времени; это может быть более или менее в зависимости от перегрузки системы HOST.

Итак, в этом случае лучше установить клиентские инструменты, как было предложено, и синхронизировать часы CLIENT с HOST-часами (обычно называемыми "настенными часами" )

Ответ 4

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

Прочитайте vmware_timekeeping.pdf для полного понимания проблемы.

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

Ответ 5

Не устанавливает ли добавление (инструменты) виртуальной машины синхронизировать часы между гостевой и операционной системой хоста?

Ответ 6

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

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

Ответ 7

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

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

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

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

Ответ 8

У меня была такая же проблема, и я решил ее

  • установка vmware-guestd
  • отправляет ядру опцию clocksource = acpi_pm
  • работает hwclock -s ежечасно, как root.

Ответ 9

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

Совсем недавно мы начали использовать open-vm-tools, и на этих vm опция не была установлена. Поскольку open-vm-tools полностью поддерживается и рекомендуется 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 и т.д.

Ответ 10

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

net time \\computer_name /set

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