Avtoprokat-rzn.ru

Автопрокат Эволюшн
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как синхронизировать время на виртуальных машинах ESXi Windows за одну секунду

Как синхронизировать время на виртуальных машинах ESXi Windows за одну секунду?

Я разработчик, и мы используем Quartz.Net, широко используемую библиотеку планирования с хранилищем резервных копий SQL для запуска кластера серверов заданий (виртуальных машин в кластере ESXI).

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

Часы должны быть с точностью до секунды друг от друга.

Наши системные администраторы используют Windows NTP для синхронизации времени с контроллером домена. Синхронизация виртуальных машин с хостом ESXI отключена.

Они продолжают настаивать на том, что «в течение секунды» не является правильным требованием и не может быть выполнено без аппаратных устройств синхронизации GPS. Их SLA и уровень мониторинга «в течение 3 минут».

Мы наблюдаем периодические (раз в 2-3 месяца) случаи кварцевого рассинхронизма, которые согласуются с несинхронизированным временем.

  1. Правильно ли нам просить «в течение секунды» или нам нужно полностью отказаться от Кварца?
  2. Если да, какие изменения рекомендуются для нашей настройки?

Это 2018. Windows может поддерживать синхронизацию серверов в течение 2 мс или около того, как того требуют правила MIFID II. Итак, ваша проблема не проблема.

Наши системные администраторы используют Windows NTP для синхронизации времени с контроллером домена. Синхронизация виртуальных машин с хостом ESXI отключена.

Почему? Хост может справиться с этим намного лучше (будучи аппаратным), а у вас намного меньше. Ваши сисадмины стреляют себе в ногу, затем жалуются, что у них кровотечение.

Они продолжают настаивать на том, что «в течение секунды» не является правильным требованием и не может быть выполнено без аппаратных устройств синхронизации GPS. Их SLA и уровень мониторинга «в течение 3 минут».

СТАРЫЙ — древний — Windows синхронизировалась в течение этого периода времени, потому что билеты Kerberos имели 5-минутный срок действия.

Но это, как я уже сказал, 2018. В настоящее время финансовая индустрия предъявляет довольно жесткие требования, и MS справляется с этим, думаю, с 2012 года. 2016 год полностью воплотил его в жизнь. Точность в миллисекундах через Интернет — это решаемая проблема, решаемая 50 лет назад на самом деле для достойного соединения. NTP может справиться с этим. Возможно, вам придется установить дешевую аппаратную коробку, если вы хотите сократить трафик (то есть создать собственный источник времени NTP уровня 3), но это опять-таки не дорого.

Правильно ли нам просить «в течение секунды» или нам нужно полностью отказаться от Кварца?

Вам нужно программировать на случайные проблемы со временем — как вы это делаете с оборудованием. Но «в течение секунды» — это шутка с требованием — это тривиально для удовлетворения при нормальных обстоятельствах.

Правительственные постановления, такие как: точность 50 мс для FINRA в США; 1 мс ESMA (MiFID II) в ЕС.

Много деталей и инструкций там. Это действительно потрясающее чтение, если вам нужно решить эту проблему. Возможно, вам придется обновить гипервизор — они все говорят о Hyper-V. VMWare должен быть в состоянии сделать то же самое, но не уверен, сколько лет вашей версии.

Читайте так же:
Регулировка фар вам 2114

Как синхронизировать время между Виртуальной машиной и ESXi сервером

В сегодняшней заметке я покажу, как произвести настройки по синхронизации времени между виртуальной машиной и « ESXi » сервером.

Подключаем « vsphere » клиентом (версия 5.0) к « ESXi » серверу (версия 5.0), открываем настройки управления :

« Configuration » – « Time Configuration » – « Properties …» в появившемся окне активируем элемент настройки: « NTP Client Enabled » и после нажимаем кнопку « Options ».

Запускаем на ESXi сервер NTP клиент

Далее в появившемся окне « NTP Daemon ( ntpd ) Options » (NTP/123/ udp ) слева выбираем параметр « NTP Settings » и нажимаем кнопку « Add » и вводим адрес сервера в локальной сети (, адрес 10.10.0.2 — это адрес моего Домен контроллера, в вашем случае это может быть, как также «DC», так и Cisco с поднятой службой NTP).

Указываем IP NTP сервера в Вашей локальной сети

Активируем пункт «Restart NTP Service to apply changes» и нажимаем кнопку «OK».

Перезапускаем NTP клиент

После снова возвращаемся в окно настройки времени – «Time Configuration» – «Options…» — «General», политика запуска выставлена в положение – «Start automatically if any ports are open, and stop when all ports are closed» — и кнопка «Start» затемнена .

Изменяем политику запуска

С настройкой на « ESXi » разобрались, далее берем виртуальную машину , открываем ее настройки и следуем по шагам:

« VM ( Cluster 1)» – « Edit Settings …» — « Options » – « VMware Tools » – и справа активируем пункт « Synchronize guest time with host » и по окончании нажимаем « OK » для применения настроек.

Открываем настройки виртуальной машины

Закрываем настройки виртуальной машины. Подводя итог можно сказать, что теперь на виртуальных машинах в принудительном порядке активирована возможность синхронизации точного времени получаемого с « ESXi » на виртуальную машину.

Данные даты и времени на виртуальной машине – « cluster 1» – они верны на момент написания заметки.

Итогом будет синхронизированное время между вашим ESXi 5.0 и виртуальной машиной

Заметка работоспособна и в полной мере соответствует тому результату, к которому я стремился, время начинает синхронизироваться с виртуальными машинами . Задача выполнена. С уважением, ekzorchik .

Читайте так же:
Международное воздушное право регулирует ответственность государств

Временные сложности

Почти все статьи, которые удается найти по вопросу правильной установки времени в виртуальных машинах, состоят из упоминания нескольких простых и общеизвестных вещей:

  • виртуальная машина (ВМ) при старте получает время из эмулируемого хостом BIOS/RTC;
  • в дальнейшем большинство ОС не сверяются регулярно с RTC (Real Time Clock, часы реального времени, микросхема с батарейкой в железном компьютере, эмулируемая в гипервизоре), а сами ведут счет времени;
  • так как ВМ может ожидать освобождения виртуального процессора непредсказуемое количество времени – время в ней дрифтует; чаще отстает, но иногда и забегает вперед;
  • по перечисленным выше причинам время в ВМ нужно периодически принудительно синхронизировать, либо с помощью API-интерфейса к гипервизору (VMWare Tools, Hyper-V integration services), либо настройкой NTP клиента.

Если статья про VMWare – можно увидеть упоминание о том, что даже при выключенном чекбоксе «Synchronize guest time with host» при определенных действиях с ВМ время в ней все равно принудительно синхронизируется (VMWare Tools, конечно) с хостом, и как этого избежать если очень хочется.

Тот самый чекбокс.

Далее в статье, как правило, идет перечисление команд/утилит API-интерфейса к гипервизору и примеры настройки NTP клиента. Всё.

Но постойте, а как же промежуток с момента старта ВМ до момента, когда API гипервизора станет активным? А если NTP сервер недоступен? И что происходит с временем с момента остановки ВМ до момента старта? Вопросы отнюдь не праздные, ибо автор не раз сталкивался с ситуациями, когда ВМ с Windows, размещенная на облачном сервере c дешевым, а потому – очень популярным гипервизором KVM, «вдруг» после стопа и последующего старта начинает показывать время со сдвигом на установленный часовой пояс. Хотя при обычной перезагрузке со временем все в порядке! WTF??

Обычно, решением для нещепетильного администратора напрашивается win32tm /resync или его линуксовый аналог, присунутый в планировщик. Но что если администратор щепетильный, а до задачи в планировщике (или при временной недоступности NTP-сервера) успевает стартануть СУБД, в которой слишком большое или вообще отрицательное время между событиями А и Б рушит бизнес-логику, и вообще – зашквар? Пробуем разбираться.

‘И идет ли он на свист? И если да – то ЗАЧЕМ?’
Алан Александр
Милн. На самом деле.
Перевод – Борис Заходер.

Итак, первый вопрос: откуда ВМ берет время при старте? Разумеется, с хоста. Точнее – гипервизор эмулирует BIOS (или UEFI – не важно, под BIOS тут подразумеваем и UEFI тоже) и при старте этого окружения устанавливает там время. Но вот беда – время на хосте как правило UTC. И, как предполагал автор в начале исследования, гипервизор в момент старта ВМ отдает единственное известное ему время – UTC. Ладно Линукс, он умеет работать с UTC временем в BIOS, через «хак и тюнинг», конечно. А как быть с Windows? Она-то, в отличие от «похаченного» линукса, всегда хранит в RTC локальное время! И любой владелец компьютера с Windows может в этом убедиться, достаточно перезагрузить компьютер и зайти в BIOS. И заодно не найти там настройки «часовой пояс».

Читайте так же:
Бензопила мас 325 регулировка карбюратора

В этот момент админы VMWare с не одной сотней (тысяч?:) ВМ с Windows сказали мне: «Но у меня все работает, не пори чушь!». Сорри, пипл, но откуда гипервизор знает, что вот этой ВМ надо отдать время с часовым поясом +5, а вот этой, рядом: +3? VMWare Tools? Сомневаюсь… И оказываюсь прав.

По факту оказывается, что производители гипервизоров пытаются решать эту проблему каждый по-своему. VMWare, к примеру, в ESXi просто и элегантно запоминает в файле NVRAM разницу между временем хоста и временем в эмулируемом BIOS/RTC. В какие конкретно моменты это делается – установить не удалось. Но, полагаю, как минимум при рестарте ВМ и при её выключении. Ну и при изменении системного времени в ОС в ВМ. Пруф: создаем виртуальную машину без ОС, ставим чекбокс «Зайти в BIOS при следующем старте». Запускаем ВМ и видим там время хоста – UTC. Меняем время, к примеру, +5 часов, нажимаем F10. Можно даже поставить ОС и поменять время в ней – не важно. Останавливаем ВМ. При следующем старте ВМ (с тем же чекбоксом) видим время в BIOS: +5 часов. Все как на «железном компьютере», все работает как ожидает массовая ОС без всяких «хаков и тюнинга».

Если остановить ВМ и ради эксперимента вручную сдвинуть время хоста – при старте увидим этот сдвиг и в BIOS. Это опровергает немного бредовое, но все же имевшее право на короткую жизнь предположение, что ESXi продолжает независимо «тикать часами» в файле NVRAM в каждой из зарегистрированных, хотя и остановленных ВМ. J Все проще и железобетоннее – взять время хоста, сдвинуть на значение, запомненное в NVRAM, запустить ВМ. Всё. Дальше пусть разбираются ОС, юзер, VMWare Tools, NTP клиент или лысые черти.

Примерно также, полагаю, обстоит дело в и Hyper-V. Под рукой нет хоста, но заинтересованный читатель может сам проделать аналогичные действия на продукте Майкрософта и отписать результат в комментарий.

Но как показывает практика автора с облачными провайдерами, вынесенная в начало статьи – не все гипервизоры «одинаково полезны» в этом смысле одинаковы. Авторы того же «бесплатного и потому страшно популярного» KVM пошли своим путем. В нем для каждой ВМ администратор волен указать в конфиге ВМ, какое именно время отдавать при старте ВМ. И это, наверное, хорошо и вообще – Linux way.

Читайте так же:
Как правильно отрегулировать редуктор давления

А по умолчанию там – UTC. И что с этим делать нам, вымирающему 🙂 виду админов–виндузятников, волей или неволей попавших под железную пяту виртуализации бесплатными гипервизорами, если ковыряться в конфигах ВМ не хочется? Или невозможно, т.к. мы не знаем, какая таймзона взбредет в голову администратору ВМ после установки ОС? Или мы вообще – просто клиент массового сервиса облачных вычислений, типа моего любимого Хетцнера? Писать в поддержку, чтобы прикрутили к [двадцати [сотням]] ВМ кастомные конфиги? Результат немного предсказуем… Смириться с w32tm /resync при каждом старте ОС? А если ВМ ребутнется, NTP-клиент «немного протормозит», и автоматически фиксируемый системой контроля доступа промежуток времени между входом и выходом сотрудников фирмы окажется отрицательным, как и зарплата/премия админа по результатам разбора полетов? И это самый безобидный сценарий, более жёсткие можете придумать сами… Неужели за столько лет прогрессивное человечество не научило Windows понимать UTC в RTC?

‘Не верю!’
К. С. Станиславский.
На самом деле – К. С. Алексеев.

Согласно некоторым, широко уважаемым в узких кругах источникам, цитирую «Windows does not support UTC time in the BIOS», и довольно много «взрослого и опытного народа» держит это в памяти, и даже иногда цитирует. Но, пользуясь бессмертной фразой великого режиссера, автору (не без помощи коллег, спасибо им большое) таки-удалось найти столь же желанную и очевидную, сколь и малоизвестную, по крайней мере – в среде моих коллег-виртуализаторщиков, настройку в реестре! Так что нужно быть критичным к статьям, особенно восьмилетней давности, даже на уважаемых источниках.

Итак, имеем Windows в гипервизоре, выдающем UTC в RTC при старте. Вставляем в реестр заветное:

Важное мелким шрифтом: автор проверил работу этого registry hack в Windows 2012R2 с последними обновлениями на момент написания статьи. По непроверенным слухам может не работать в предшественниках Windows 2008. Использовать на свой страх и риск, результаты проверки – в комментарии, pls.

Результат: при старте ВМ в «похатченной» Windows имеем в таком гипервизоре правильное время «с самого начала». Именно при старте из состояния «выключено». А вот при первой перезагрузке после установки вышеприведенного параметра в реестр мы получим что? Правильно – сдвиг на установленный в системе часовой пояс. Самые догадливые уже поняли, почему так происходит. И почему в прошлом у автора происходили непонятки со сдвигом времени на часовой пояс именно после стопа и старта ВМ. И снова правильно – при рестарте ВМ время в эмулированном гипервизором RTC не сбрасывается, а продолжает «идти на свист», как Слонопотам у Милна, и потому остается локальным, как его и прописала туда ОС. И поэтому же при рестарте после установки заветного registry hack’а Windows взяла локальное время из RTC, но посчитала его UTC. А при стопе и старте на KVM и аналогах, не столь «заботливых» как ESXi, в эмулированном RTC сидит UTC.

Читайте так же:
Регулировка карбюраторов на cbr1000f

Далее можем синхронизировать время в ВМ хоть с хостом через API гипервизора, хоть с NTP источником. При следующем и рестарте, и стопе-старте ВМ время в системе будет правильным. Разумеется, если оно правильное на хосте. Но это уже совсем другая история…

Виртуализация VMware лицензирование продуктов

VMware — это программное обеспечение для виртуализации серверов, рабочих станций и т.д..

Основные функции:

ESXI 6.7WorkstationWorkspace ONEVMware vSAN
vRealizeVirtualCenterVMware vSphere 7vCloud
Dynamic Environment ManagerThinAppVMware NSXVMware Horizon 8
HCXFusionTanzu KuberneteCarbon
App VolumesPCoIPVMware Cloud FoundationvCenter
vMotionFault TolerancevShieldVMware High Availability
VMware BackupStorage DRSNVIDIA GRID vGPUData Protection
VMware ESXIVMwareVMware VDIVMware для учебных заведений
VeeamESXI FreeVDIESXI
Виртуальная машина VMwareESXI ServerVMware Tools
Инструкция VMware SupportТехническая поддержка VMwareArcserve для VMware

V-GRADE — является Официальным Партнером VMware
vmware vSphere
VMware

Контакты

140072 , Московская обл., г.Люберцы, рп. Томилино

+7 (495) 662-58-98
Часы работы: 10:00 до 20:00 по Москве.

Наши эксперты:

Генеральный директор ООО «Прогресс-Медиа» V-GRADE:

Certificate advanced

Certificate advancedСкачать

VMware vSphere

Конфигуратор лицензий vSphere поможет Вам определить, сколько лицензий и каких нужно приобрести для Вашей инфраструктуры.

Редакции:

В свете последних событий хотим заверить наших заказчиков, партнеров и сотрудников,
что сервисы компании V-GRADE полностью адаптированы к последствиям распространения вируса COVID- 19 .
В нашей компании существовала практика удаленной работы.
В настоящее время предприняты все меры необходимое как для сохранения здоровья,
так и для непрерывности рабочих процессов.

Желаем Вам здоровья.

Veeam

Цель проекта — помощь руководителям департаментов и IT отделов в принятии обоснованного решения по выбору пути оптимизации IT-инфраструктуры.
Методы

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector