Fault Tolerance




Суть в том, что мы делаем копию ВМ на другом хосте. Эта копия делается, фактически, с помощью процесса vMotion. Но если при миграции vMotion у нас исходная ВМ удаляется, и остается только перенесенная, то в случае настройки FT для ВМ остаются обе. Т.е.
  • Шаг 1 - сделать копию работающей ВМ(де факто - содержимое оперативки) на другом хосте.
  • Шаг 2 - непрерывно синхронизируются процессорные инструкции. Т.е. наша ВМ работает, на процессоре что то там делается - и эти инструкции по сети передаются на другой хост, на копию этой ВМ. Таким образом, она все все повторяет за оригинальной виртуалкой.
  • Шаг 3 - в случае аппаратного сбоя сервера с оригиналом, в сеть выпускается копия(до того она, разумеется, к сети доступа не имеет). (можем, кстати, такой перенос инициировать ручками, по желанию - тогда ВМ просто меняются ролями)

    И все.


Ограничения, условия и особенности:
  • ВМ не защищена от программного сбоя. BSOD в оригинальной ВМ передатся и воспроизведется в копии.
  • Никаких условий или модификации для гостевых ОС и ПО.
  • Работает на стандратном x86 железе. Есть условие на процессоры в связке с гостевыми ОС:
    см. статью в KB Processors and guest operating systems that support VMware Fault Tolerance .
  • Нельзя использовать vSMP в виртуальной машине - в ВМ может быть только 1 vCPU
  • ВМ не может иметь снапшотов
  • Диски ВМ не могут быть «тонкими» или RDM-дисками в режиме "physical compatibility"
  • Должны отсутствовать присоединенные устройства VMDirectPath
  • Нельзя использовать Storage VMotion
  • Нельзя добавлять ресурсы во время работы (hot add)
  • Нет поддержки Nested Page Tables/Extended Page Tables (NPT/EPT)
  • Нет поддержки NPIV
  • Виртуальные машины не могут быть кластеризованы средствами MSCS\MFC
  • Гостевая ОС не должна быть с паравиртуализованным ядром
Более полный список тут - VMware Fault Tolerance Requirements and Limitations.


Рекомендации по использованию VMware Fault Tolerance в VMare vSphere.


  • После сбоя сервера возможно автоматическое возвращение в отказоустойчивое состояние -
    • оригинальная ВМ умерла
    • ведущей стала копия
    • для нее создается копия на каком то другом из работающих хостов - притом с учетом пожеланий HA\DRS

  • vLockstep Technology - так называется технология, позволяющая исполнять одну и ту же последовательность инструкций на двух хостах.
    картинка из whitepaper



Еще интересные факты о FT отсюда - More details on VMware’s Fault Tolerance feature.
  • VMware тесно сотрудничала с Intel и AMD для реализации vLokstep - технологии передачи по сети и воспроизведении процессорных инструкций, на которой основывается FT. 
  • Оба "узла FT кластера" можно представить в виде двух шестеренок на одной цепи - если какое то из них будет крутиться медленнее - второе тоже замедлится. Если резервной ВМ будет не хватать ресурсов для работы - оригинальная замедлится.
  • Поддержка многопроцессорных ВМ будет в следующих релизах.
  • FT требует процессоров определенных поколений в силу того, что это не чисто программное решение, а тесно завязанное на технологиях процессоров.
  • Сейчас жестким является условие одинаковости версий ESX, на которых работает одна пара FT защищенных машин. Одной парой хостов могу быть ESX и ESXi, но их билд должен быть одинаков. Возможно, в следующих версиях это условие будет снято.
  • Для FT защищенных машин поддерживается, но не для обеих из пары сразу. Storage VMotion не поддерживается. DRS не будет мигрировать ВМ, защищенную FT. Возможно, это будет реализовано позднее.
  • FT может защитить ВМ с vCenter - если у нее один vCPU.
  • Нет ограничений на количество хостов в кластере с FT. Но пара FT защищенных ВМ не может быть распределена между кластерами. Возможно, это будет реализовано в следующих версиях.
  • Есть APIm с помощью которых можно скриптовать операции типа вкл\выкл FT через PowerShell.
  • Выделение гигабитного канала под трафик FT не является жестким требованием, однако является рекомендуемым. Ограничение в 4 защищенных FT ВМ на хост не является жестким - но рекомендуемым.
  • Текущая версия FT предполагается к использованию между хостами одного ЦОДа, без WAN соединений между ними. Однако, есть вероятность, что в будущих версиях это будет реализовано.

Может пригодится для траблшутинга FT - FT Problem Decoder Chart.
Comments