FAQ по vMotion в VMWare vSphere особливості, типи, настройка

технологія vMotion дозволяє перенести запущену віртуальну машини VMWare з одного фізичного хоста ESXi на інший без переривання її роботи і зупинки сервісів. У цій статті ми розглянемо особливості технології VMWare vMotion: як працює vMotion, які види vMotion бувають, як налаштувати vMotion в VMWare vSphere і як вручну смігріровать віртуальну машину між хостами ESXi або сховищами за допомогою vMotion. Розглянемо основні способи оптимізації vMotion і рішення проблем.

зміст:

  • Як працює VMWare vMotion?
  • Види VMware vMotion
  • Особливості VMware Storage vMotion
  • Enhanced vMotion Compatibility (EVC) в VMWare
  • Як включити vMotion в VMWare vSphere?
  • vMotion: як мігрувати ВМ між серверами
  • Чому не працює vMotion?
  • Як прискорити / оптимізувати vMotion для швидкої міграції ВМ?

Як ми вже сказали, vMotion дозволяє виконати "живу міграцію"Віртуальних машин без простою і переривання роботи користувачів. Технологія vMotion позиціонується не як засіб забезпечення високої доступності ВМ при аваріях. В першу чергу це простий і зручний засіб перенесення продуктивних ВМ, коли вам потрібно виконати обслуговування / оновлення / заміну фізичних серверів з встановленим гіпервізором ESXi або дискових масивів. Також vMotion є основою технології розподілу (вирівнювання) навантаження на фізичні сервера - DRS (Dynamic Resource Scheduler)).

Аналогічна технологія Microsoft для міграції ВМ між хостами Hyper-V називається Hyper-V Live Migration

Як працює VMWare vMotion?

Для міграції ВМ між фізичним хостами за допомогою vMotion використовуються наступні компоненти VMWare:

  1. кластера VMWare HA;
  2. наявність загального сховища (Підключеного через Fibre Channel, iSCSI або NAS), на якому зберігаються файли віртуальної машини. Завдяки спільному сховища в SAN мережі кілька фізичних ESXi серверів можуть отримувати доступ до файлів однієї ВМ;
  3. наявність загальної швидкої мережі (Не менше 1 Гб Ethernet) між вихідним і цільовим хостом ESXi. При міграції у ВМ зберігається її оригінальний MAC адресу, а vMotion оповіщає маршрутизатор про те, що місце розташування даного MAC адреси змінилося. В результаті активні мережеві з'єднання не втрачаються;
  4. сумісність процесорів на хостах, або включена опція Enhanced vMotion Compatibility (EVC)

Як відбувається vMotion? Спочатку на цільовому хості створюється тіньовий клон вихідної ВМ з такою-ж конфігурацією з vmx файлу. Ця ВМ-клон бачить всі файли ВМ на спільному сховищі. Вміст оперативної пам'яті і стан запущеної ВМ передається по мережі між вихідним і цільовим хостом ESXi. vMotion робить снапшот стану пам'яті ВМ, копіює його на цільовий сервер по мережі. vMotion при цьому відстежує зміни в сторінках пам'яті, а потім до-копіює модифіковані сегменти пам'яті (це може відбуватися в кілька етапів, кожен раз копіюється все менший обсяг даних і за менший час).

У якийсь момент стан вихідної ВМ заморожується, виконується копіювання змінених сегментів пам'яті і команд процесора, і ВМ запускається на цільовому ESXi. Весь процес для 1/10 Гб Ethernet мережі для середніх розмірів ВМ займає кілька секунд.

Види VMware vMotion

VMWare під назвою vMotion розуміє цілий стек різних технологій, що дозволяють перемістити на льоту запущені ВМ між серверами, дисковими масивами, містами або між наземної і хмарної інфраструктурою.

Види vMotion:

  • класичний vMotion - міграція запущеної ВМ між серверами ESXi;
  • Storage vMotion - онлайн перенесення файлів віртуальної машини між сховищами (дисковими масивами);
  • Shared-Nothing vMotion - міграція ВМ між серверами ESXi по мережі без використання загального сховища (потрібно L2 мережу);
  • Long Distance vMotion - перенос ВМ між віддаленими сайтами (максимальна затримка Round Trip Time до 150 мс, в тому числі в L3-мережах). З'явився в версії vSphere 6.0;
  • Encrypted vSphere vMotion - можливість шифрування ВМ при передачі по мережі (доступно в vSphere 6.5);
  • Cross-Cloud Cold і Hot Migration - онлайн і офлайн міграція між наземної і хмарної інфраструктурою;

Особливості VMware Storage vMotion

Як ми вже сказали, технологія Storage VMotion дозволяє перемістити файли запущеної віртуальної машини (віртуальні диски і файли конфігурації) на інше VMFS / NFS сховище (LUN, дисковий масиву) без зупинки ВМ.

Вимоги для успішного виконання Storage VMotion:

  • Диски VM повинні мати тип persistent або RDM;
  • Чи не підтримується міграція ВМ, під час установки VMware Tools;
  • При міграції потрібно враховувати версію VMFS на сховище. Наприклад, не можна перенести диск розміром більше 2 Тб з VMFS5 на VMFS3;
  • Наявність ліцензії на хості ESXi;
  • Хост, на якому запущена ВМ повинен мати доступ до вихідного і цільовим сховища;
  • При копіюванні для диска віртуальної машини використовується технологія Changed Block Tracking, яка дозволяє відстежувати змінені блоки даних і до-копіювати їх.

Enhanced vMotion Compatibility (EVC) в VMWare

режим Enhanced vMotion Compatibility (EVC) для кластерів VMware HA / DRS використовується, якщо кластер побудований на хостах з процесорами різних поколінь (але не різних виробників !!). При включенні EVC для кластера, гипервизор починає маскувати інструкції CPU, які підтримуються не на всіх хостах. При включенні EVC всі функції процесорів хостів ESXi в кластері починають відповідати нікому базового мінімального набору інструкцій CPU, який задав адміністратора vSphere в настройках.

Таким чином завдяки EVC ви можете мігрувати ВМ між хостами з різними наборами інструкцій процесора.

Не можна змішувати в одному кластері vSphere хости з різними вендорами процесорів, наприклад, Intel і AMD. EVC дозволяє домогтися сумісності між процесорами тільки одного вендора.

Ви можете включити VMWare EVC на рівні кластера. Перейдіть в розділ Configure -> Configuration -> VMWare EVC і натисніть кнопку Edit.

При включенні EVC для кластера вам потрібно вибрати режим EVC (для AMD або Intel) і вибрати в списку, що випадає мінімальна покоління процесорів вендора, які є у вашому кластері.

VMWare рекомендує завжди включати EVC, незалежно від того які хости у вас в кластері. Так вам буде простіше при розширенні кластера. Є навіть окремий документ, де доводиться, що навіть якщо ваші ВМ не використовуватимуть звістку набір інструкцій, на продуктивність це не позначиться.

В VMware vSphere 6.7 з'явилися технології міграції між хмарою і on-prem (Cross-Cloud Cold і Hot Migration). Для реалізації ВМ в хмару тепер можна включати в налаштуваннях ВМ Per-VM EVC (Доступно в vSphere 6.7 з Hardware Version 14).

Можна отримати базові рівні EVC виставлені для ВМ в кластері з PowerCLI:

Get-VM | Select Name, HardwareVersion,
@ Name = 'VM_EVC_Mode'; Expression = $ _. ExtensionData.Runtime.MinRequiredEVCModeKey,
@ Name = 'Cluster_Name'; Expression = $ _. VMHost.Parent,
@ Name = 'Cluster_EVC_Mode'; Expression = $ _. VMHost.Parent.EVCMode | ft

Щоб отримати максимально підтримуваний режим EVC на:
Get-VMHost | Select-Object Name, ProcessorType, MaxEVCMode

Як включити vMotion в VMWare vSphere?

Розглянемо, як включити vMotion на прикладі VMWare vSphere 6.7. Для використання vMotion досить ліцензії Essentials Plus .

vMotion включається на рівні VMkernel віртуального комутатора хоста ESXi. Виберіть хост, перейдіть на вкладку Configure -> Networking -> VMkernel adapters.

Виберіть ваш VMkernel інтерфейс і відкрийте його властивості (Edit).

У властивостях vmk порту в секції Enabled Service включите опцію vMotion.

У моєму прикладі HA кластер VMWare вже створений і використовується vSphere Distributed Switch (VDS).

vMotion: як мігрувати ВМ між серверами

Щоб за допомогою vMotion перенести запущену ВМ між двома ESXi хостами, запустіть vSphere Client, клацніть по ВМ і виберіть Migrate.

Виберіть тип міграції, який ви хочете використовувати:

  • Change compute resource only - міграція ВМ на інший сервер ESXi;
  • Change storage only - мається на увазі Storage vMotion - зміна Datastore, на якому зберігаються файли ВМ;
  • Change both compute resource and storage - режим міграції без загального сховища (vMotion without shared storage / Shared-Nothing), при цьому файли ВМ копіюються між хостами черга мережу).

Я вибрав перший варіант.

Майстер міграції запропонує вибрати хост, кластер, resourse pool або vApp, в який потрібно перенести цю віртуальну машину. Виберіть хост. Якщо vMotion налаштований правильно, і не виявлено конфліктів, в секції Compatibility буде вказано: Compatibility checks succeeded.

Якщо в поле сумісності містяться якісь помилки, потрібно уважно прочитати їх і виправити.

натисніть Next.

Майстер міграції ВМ запропонує вибрати в яку мережі потрібно помістити vNIC мережевий ВМ при міграції. Якщо ви хочете, щоб ВМ була доступна після міграції, вона повинна бути поміщена в той же самий сегмент (VLAN), як і на вихідному хості. Якщо у вас використовується стандартний vSphere Switch, потрібно створити однакові групи портів (Port Group) на всіх ESXi хостах. При використанні VDS, групи портів на всіх хостах кластера однакові.

На останньому етапі потрібно вибрати пріоритет завдання міграції vMotion. За замовчуванням використовується найвищий пріоритет (Schedule vMotion with high priority). Я завжди використовую саме його.

залишилося натиснути Next -> Finish і запуститься процедура міграції ВМ на інший хост. За статусом міграції можна стежити в панелі Recent Tasks (завдання Relocate virtual machine). У моєму випадку процес міграції ВМ за допомогою vMotion по 10 Гб Ethernet зайняв близько 3 секунд.

Переконайтеся, що ваша ВМ тепер запущена на іншому хості ESXi.

Можна перемістити запущену ВМ на інший хост за допомогою PowerShell командлет Move-VM з PowerCLI. Наприклад, ми хочемо перенести все ВМ з хоста esxi-1 на esxi-2:

Get-VMHost esxi-1 | Get-Vm | Move-VM -Destination (Get-VMHost esxi-2)

Чому не працює vMotion?

Перелічимо основні причини, через які vMotion може завершуватися з помилкою або міграція ВМ виконуватися дуже повільно:

  1. Несумісність CPU (включите режим EVC - Enhanced vMotion Compatibility);
  2. Чи не включений vMotion на інтерфейсі VMkernel;
  3. Некоректні мережеві настройки хоста ESXi або віртуальних комутаторів, груп портів (неправильно налаштованих Jumbo Frames, конфлікт IP адрес в мережі vMotion, некоректні налаштування vSwitch, погана мережу, втрата пакетів);
  4. Відсутність загального сховища (для vSphere до версії 5.) 1. У vSphere 5.1 і вище доступний режим Shared-Nothing VMotion;
  5. Недоступний CD / DVD або ISO образ;
  6. Наявність включених правил Anti-Affinity
  7. У гостьовій ВМ йде установка vMware tools;
  8. Якщо гостьова ОС активно змінює вміст своєї RAM, процес vMotion може не встигати передавати змінені дані по мережі на копію ВМ на іншому хості;
  9. Якщо на цільовому хості недостатньо CPU або пам'яті для створення "тіньової" ВМ, vMotion завершиться з помилкою.
При помилках міграції ваша ВМ не вимикається, не припиняє роботу і як і раніше запущена на вихідному хості.

Як прискорити / оптимізувати vMotion для швидкої міграції ВМ?

Ви можете прискорити міграцію ваших віртуальних машин декількома способами.

  • В першу чергу бажано використовувати максимально продуктивну мережу між ESXi хостами. Потрібно використовувати як мінімум 10 Gb, а краще 25Gb мережу (мережевий адаптер вашого ESXi сервера і фізичний комутатор повинні підтримувати цей режим).
  • Використовувати різні фізичні інтерфейси для трафіку vMotion;
  • При міграції vMotion використовуються потоки. Для одного інтерфейсу VMkernel, для якого включений vMotion, створюється один потік. При цьому цей потік може використовувати тільки одне ядро ​​процесора.

Щоб надати для процесів vMotion більше одного ядра CPU, потрібно створити кілька VMkernel інтерфейсів з включеною опцією vMotion і прив'язати їх до одного NIC інтерфейсу. Один потік vMotion має середню пропускну здатність близько 15 GbE, відповідно, щоб завантажити мережу 100 GbE вам потрібно 6 потоків. Також можна збільшити кількість потоків vMotion (streams) для одного vmkernel інтерфейсу за допомогою опції Migrate.VMotionStreamHelpers в Advanced System Settings.