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

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

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

vmware vmotion FAQ

Як працює VMWare vMotion?

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

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

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

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

Види VMware vMotion

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

Види vMotion:

  • класичний vMotion – міграція запущеної ВМ між серверами ESXi;
  • Зберігання vMotion – онлайн перенесення файлів віртуальної машини між сховищами (дисковими масивами);
  • Спільно-нічого vMotion – міграція ВМ між серверами ESXi по мережі без використання загального сховища (потрібно L2 мережу);
  • VMotion на великі відстані – перенесення ВМ між віддаленими сайтами (максимальна затримка Round Trip Time до 150 мс, в тому числі в L3-мережах). З’явився в версії vSphere 6.0;
  • Зашифрований vSphere vMotion – можливість шифрування ВМ при передачі по мережі (доступно в vSphere 6.5);
  • Міжхмарний холод і гаряча міграція – онлайн і офлайн міграція між наземної і хмарної інфраструктурою;

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

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

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

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

Покращена сумісність vMotion (EVC) в VMWare

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

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

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

Ви можете включити VMWare EVC на рівні кластера. Перейдіть в розділ Налаштуйте -> Конфігурація -> VMWare EVC і натисніть кнопку Редагувати.

Покращена сумісність vMotion (EVC) в VMware ESXi

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

включити EVC для Intel процесорів

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

В VMware vSphere 6.7 з’явилися технології міграції між хмарою і on-prem (Cross-Cloud Cold і Hot Migration). Для реалізації ВМ в хмару тепер можна включати в налаштуваннях ВМ EV-на VM (Доступно в 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. Виберіть хост, перейдіть на вкладку Налаштуйте -> Мережа -> Адаптери VMkernel.

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

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

включити vMotion на vmkernel інтерфейсі

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

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

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

запустити mvotion в vmware

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

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

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

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

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

Натисніть Next.

вибір esxi хоста, на який потрібно смігріровать віртуальну машину, перевірка сумісності

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

вибір мережі ВМ при vmotion

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

Складіть графік vMotion з високим пріоритетом - пріоритет vMotion

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

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

Relocate virtual machine - виконана vmotion ВМ

Можна перемістити запущену ВМ на інший хост за допомогою 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 в Розширені налаштування системи.

Leave a Reply

Your email address will not be published. Required fields are marked *