Как скопировать виртуальную машину vmware

от admin

Как скопировать виртуальную машину vmware

You are using an outdated browser. Please upgrade your browser to improve your experience.

Cloning a virtual machine creates a virtual machine that is a copy of the original. The new virtual machine is configured with the same virtual hardware, installed software, and other properties that were configured for the original virtual machine.

For information about persistent memory and PMem storage, see the vSphere Resource Management guide.

For information how to configure the virtual machine hardware options, see Configuring Virtual Machine Hardware and Configuring Virtual Machine Options

Prerequisites

If a load generator is running in the virtual machine, before you perform the clone operation, you must stop the load generator.

You must have the following privileges to clone a virtual machine:

  • Virtual machine . Provisioning . Clone virtual machine on the virtual machine you are cloning.
  • Virtual machine . Inventory . Create from existing on the data center or virtual machine folder.
  • Virtual machine . Configuration . Add new disk on the data center or virtual machine folder.
  • Resource . Assign virtual machine to resource pool on the destination host, cluster, or resource pool.
  • Datastore . Allocate space on the destination datastore or datastore folder.
  • Network . Assign network on the network to which you assign the virtual machine.
  • Virtual machine . Provisioning . Customize on the virtual machine or virtual machine folder if you are customizing the guest operating system.
  • Virtual machine . Provisioning . Read customization specifications on the root vCenter Server if you are customizing the guest operating system.
  • If the virtual machine that you clone has an NVDIMM device and virtual PMem hard disks, the destination host or cluster must have an available PMem resource. Otherwise, you cannot proceed with the task
  • If the virtual machine that you clone does not have an NVDIMM device, but has virtual PMem hard disks, the destination host or cluster must have an available PMem resource. Otherwise, all hard disks of the destination virtual machine will use the storage policy and datastore selected for the configuration files of the source virtual machine.
  • To access customization options for Windows guest operating systems, Microsoft Sysprep tools must be installed on the vCenter Server system. Sysprep Tool is built into the Windows Vista and Windows 2008 and later operating systems. For details about this and other customization requirements, see Guest Operating System Customization Requirements.

Procedure

Right-click a virtual machine and select Clone > Clone to Virtual Machine .

Folders provide a way to store virtual machines and templates for different groups in an organization and you can set permissions on them. If you prefer a flatter hierarchy, you can put all virtual machines and templates in a data center and organize them in a different way.

How to Clone VM on VMware ESXi with or without vCenter

If you want to create an exact copy of the VM to use as a secure test environment, then there is no better feature than cloning. In this article, I will introduce you how to clone VM on VMware ESXi using vCenter Server, or without vCenter.

By Alison / Last Updated March 7, 2023

Overview of VMware ESXi VM clone

If you want a secure test environment which is exactly the same to the original VM, VM cloning can be a really convenient way to go.

Rather than laboriously exporting and importing the VM, VM cloning allows you to create an instant usable copy of the original VM, or change some of the settings according to your need. For example, you can also choose to clone a VM to template.

Currently there are 3 ways for VMware ESXi clone VM.

  • A complicated process on VMware ESXi web client: If you don’t have vCenter Server, VMware ESXi also allows you to clone VM without vCenter, on its web client instead, but with more complicated steps.
  • The built-in clone feature provided by vCenter Server: VM Cloning is a simple process with the vCenter Server’s clone wizard. But vCenter Server itself requires additional license.
  • An easier and centralized feature on third-party software: Third-party software such like AOMEI Cyber Backup usually centralized VM cloning feature at a more economical price, and have easier steps.

I’ll cover all the 3 approaches in the following article.

Way 1. VMware ESXi clone VM without vCenter

This part introduces how to clone virtual machine without vCenter. It will take a little more steps than using vCenter’s method.

Note: Before you begin, please commit all snapshots and power off the target VM to create a consistent copy.

1. Access to vSphere Web Client, click Storage in the left inventory, and then click Datastore browser on toolbar.

Datastore browser

2. In the pop-up window, click Create directory, and provide a Name for new VM.

3. Confirm and back to the Datastore browser window. Go to the folder where stores the disk files of the original VM. You can find where they are by right-clicking on the VM name and select Edit settings.

Select the .vmx file and .vmdk file, then click Copy on toolbar to copy them separately to the folder you just created.

Close Datastore browser window, and you can see the progress in Recent tasks.

4. Click Virtual Machines in the left inventory, and click Create/ Register VM on toolbar to open the wizard.

Register VM

5. On Select creation type page, select Register an existing virtual machine, and click Next.

Register an existing VM

6. On Select VMs for registration page, click Select one or more virtual machines, a datastore or a directory, and select the newly created folder. Click Next.

Select one or more vms

7. On Ready to complete page, click Finish to close the wizard.

8. Back to Virtual Machines, now you can see there is one newly copied VM with the same name as the old one. That’s because the name comes from the .vmx file. You can right-click the VM and Rename it.

9. Select and Power on the newly created virtual machine. There will be pop-up window, select I copied it and click Answer.

This is how VMware ESXi clone VM on web client. Please note that you cannot change the storage policy if you clone an encrypted virtual machine.

Although VMware ESXi web client provides only the most basic functionality, it can actually meet many special needs if one is willing to put in the effort. For example, vmware esxi clone VM from snapshot.

Way 2. VMware ESXi clone VM using vCenter Server

This part introduces how to clone a VM in vCenter.

1. Access to vCenter Client, right-click on the VM name and select Clone > Clone to Virtual Machine to open the wizard.

Except for this option, you can also select Clone to Template… or Clone to Template in Library.

vCenter Clone ESXi VM

2. Provide a Name and select a destination datastore folder location for the new VM. Then click Next.

Specify name and datastore

3. Select a destination host for the new VM, click Next.

Select host

4. On select storage page, Select virtual disk format as Same format as source, and VM Storage Policy as Keep existing VM storage policies. And then select a datastore location to store the VM files. Click Next to continue.

Select storage

5. Select further clone options, you can customize the operating system, the VM’s hardware, or select whether to power on the VM after creation. Click Next.

Select clone options

6. Review your selections and click Finish to start. You can see the progress in Recent Tasks.

✦ Tip:

If you are familiar with command line, you can also clone ESXi VM with command line. For example:

1. SSH into your ESXi host and create a directory to hold your new clone

2. Clone your Host1 VM to Host2

#vmkfstools -i /vmfs/volumes/datastore1/Host1/Host1.vmdk /vmfs/volumes/datastore1/Host2/Host2.vmdk -d thin

3. Register the virtual machine in ESXi

# vim-cmd solo/registervm /vmfs/volumes/datastore1/Host2/Host2.vmdk

Remember to modify these ESXi clone VM command lines accordingly.

As you can see, while vCenter Server needs additional license, VMware ESXi clone VM without vCenter Server requires more complicated steps. Therefore, in the next part I will present an easier tool with an economical pricing, namely AOMEI Cyber Backup.

Way 3. Clone ESXi VM with a backup and restore tool (easier)

AOMEI Cyber Backup’s backup and restore feature allows you to create same virtual machines on original or another host, with even easier steps than cloning. Compared to mentioned methods of cloning, it owns additional advantages such as allowing you to perform hot backup VMware virtual machine while running.

Easy to use: With the user-friendly interface, connect, create task, and protect will be completed with a few clicks. Agentless backup: It can hot back up multiple VMs in transit or at rest all at once. Support Free ESXi: support both paid and free versions of VMware ESXi. Batch VM Backup: batch backup large numbers of VMs managed by vCenter Server or standalone ESXi hosts. Schedule backup tasks: It can automatically back up the whole VM and notify by email. In-place & out-of-place restore: You can backup a VM and restore it to the same or another datastore/host.

You can download and install the free trial to experience these features and get the exclusive upgrade discount:

*You can choose to install this VM backup software on either Windows or Linux system.

Steps to clone ESXi VM via AOMEI Cyber Backup

1. Launch AOMEI Cyber Backup, navigate to Source Devices >> VMware >> Add VMware Device and enter the required information to add vCenter or Standalone ESXi host as the source device. Then click Confirm.

add VMware device

2. Click Create New Task in backup task page, and do as following:

Task Name: enter a backup task name.

Backup Type: choose VMware ESXi Backup or Hyper-V Backup accordingly.

select VMware ESXi backup

Device Name: select the device and virtual machines you want to back up. Click OK. It allows you to select unlimited virtual machines for backup.

Select virtual machines on vCenter

Target: choose a location to store the backup files such as local or network. Click OK.

backup target

3 (optional). On Schedule window, you can set up different backup strategies based on full, incremental or differential backup.

It also offers daily, weekly, monthly (by date), and monthly (by week) for backup period. You can combine these features to create a flexible backup task according to your need.

schedule backup

On Backup Cleanup window, enable it and set up the retention policy. It benefits to saving storage and reduces your workload since it will delete the old and unwanted files automatically.

backup cleanup

4. Click Start Backup to execute the task. After that, you can monitor the status in the Backup Task section, edit the settings by clicking the button on the right side of task, and use the backup to achieve fast recovery from any point.

5. Click “” right on the task and select Restore to configure the basic information, and select the backup content you want to restore.

restore

6. Then you will be given the following options of restore target:

Restore to original location: It will restore the VM to the original location and replace the original VM.
Restore to new location: it will create an idential new VM from the backup to the same or another datastore/host.

Here you should choose Restore to new location to achieve VM cloning. Then specify the target host or datastore, and name the cloned new VM. You can also configure the number of RAM space and virtual processors.

restore virtual machine

7. Click Start Restore, and wait for the restoration to complete.

When it’s done, you’ve clone your VMware ESXi VM succesfully. You can run the target VM to see if all your data stay intact.

Summary

Cloning may be convenient to create an exact copy of the VM, especially when you operate VMware ESXi clone VM with vCenter Server. But if you want to back up multiple virtual machines at the same time, performing clone using built-in feature only allows you to back up one virtual machine once. So, a professional software is necessary and high-efficient.

In this article, I introduced how to clone a VM in VMware vSphere, with or without vCenter Server. Besides cloning, you can also back up VM to another datastore for data protection.

Резервное копирование виртуальных машин в VMware ESXi

В этой заметке будет рассмотрено, как создать резервную копию виртуальных машин с помощью скрипта ghettoVCB. Скрипт предназначен для создания бэкапов виртуальных машин в ESX(i) 3.x, 4.x, 5.x и 6.x. Данный способ резервного копирования в отличии от других программных продуктов является абсолютно бесплатным.

Для хранения резервных копий ВМ можно использовать накопители, поддерживающие следующие протоколы:

  • NFS (Network File System), с тем же диапазоном IP-адресов и физически расположеннй в той же сети, что и интерфейс управления VMware (Management Network VMkernel Port),
  • iSCSI (Internet Small Computer System Interface), с тем же диапазоном ардесов и физически расположенный в той же сети, что и интерфейс (iSCSI VMkernel).

Но ghettoVCB поддерживает только монтирование и размонтирование NFS-дисков. Для iSCSI следует заранее смонтировать Disk/LUN, а параметры ENABLE_NON_PERSISTENT_NFS и UNMOUNT_NFS установить в нулевое значение (см. ниже).

В данном примере буедем копировать на NFS с IP-адресом 192.168.3.200, тогда как интерефейс управления гипервизором (Management Network VMkernel) имеет адрес 192.168.0.222 и маску подсети 255.255.0.0.

Настройка резервного копирования.

Итак, первое, что нужно сделать — это включить доступ по SSH к консоли гипервизора: открываем VMware vSphere Client, выбираем хост, открываем вкладку ‘Configuration’ и, как показано на скриншоте:

Во-вторых, убедимся, что на вашем сервере NFS включена опция ‘async’, существенно ускоряющая процесс копирования. Правда, за скорость приходится платить: есть риск потерять данные в случае крэша NFS-сервера. Если такая вероятность, все же, есть — используйте ‘sync’. В остальных случаях:

В третьих, скачиваем скрипт ghettoVCB с github по клику на ZIP-архив и заргужаем его на ESX/ESXi хост, используя scp, или WinSCP. Советую расположить подальше от корневой директории: на ваш datastore, в папку с виртуальными машинами — будет идеально. У меня это: /vmfs/volumes/datastore1.

Теперь логинимся по SSH в консоль гипервизора под учетной записью root, распаковываем архив и выставляем права:

Создать файл конфигурации необходимо непосредственно в самой консоли гипервизора, используя vi. Ни в коем случае не редактируйте конфигурационный файл в windows-приложениях (таких как: Notepad, Notepad+) с последующей заливкой на хост из-за разных комбинаций кодов перевода строк (CR+LF / LF). Так же во избежание ошибок в работе скрипта избегайте лишних пробелов в конце строк и пустых отступов.

По окончанию редактирования последовательно нажмите: Esc, :, w, q, Enter.

Описание параметров следующее:

VM_BACKUP_VOLUME — путь на сервере ESXi, куда будет монтироваться NFS раздел (или где будет создана резервная копия виртуальных машин — см. параметр ENABLE_NON_PERSISTENT_NFS)

DISK_BACKUP_FORMAT — формат VMDK диска (zeroedthick, eagerzeroedthick, thin, 2gbsparse).

VM_BACKUP_ROTATION_COUNT=4 — количество хранимых бэкапов.

POWER_VM_DOWN_BEFORE_BACKUP=0 — отключать машину перед бэкапом (0=не отключать). Cкрипт может так же копировать и включенные ВМ.

ENABLE_HARD_POWER_OFF=0 — отключать жесткие диски перед бэкапом. Eсли не установлены VMware Tools, то “жесткое” отключение ВМ (hard power off).

ITER_TO_WAIT_SHUTDOWN=3 — если ENABLE_HARD_POWER_OFF=1, то количество минут, прежде, чем скрипт произведет “жесткое” отключение ВМ (hard power off).

POWER_DOWN_TIMEOUT=5 — количество минут, которые скрипт будет ждать при отключении ВМ, прежде, чем проигнорирует её состояние и приступит к резервному копированию.

SNAPSHOT_TIMEOUT=15 — количество минут, которое скрипт будет ждать при создании копии конкретной ВМ, прежде, чем проигнорирует её (в случае каких-либо сбоев в резервном копировании).

ENABLE_COMPRESSION=0 — включение компрессии (0=отключено и остается на zfs). В ESXi 3.x / 4.x / 5.x, существует ограничение максимального размера виртуальной машины для сжатия. При попытке восстановления ВМ свыше ограничений данные могут быть потеряны. Внимательно тестируйте процесс восстановления, прежде, чем перейти к производственным системам.

VM_SNAPSHOT_MEMORY=0 и VM_SNAPSHOT_QUIESCE=0 — используются только для снятия снапшотов с оперативной памяти. Eсли первый параметр “1”, то будет ли переведена машина на этот период в режим ожидания. Первоначально параметр добавлен с целью отладки, а сама опция никак не используется при восстановлении ВМ: любая виртуальная машина, будь то включенная (online), или выключенная (offline), при восстановлении из бэкапа окажется в сосотянии offline.

Читать:
Как нажать ctrl break на клавиатуре ноутбука

VMDK_FILES_TO_BACKUP="my1.vmdk",”my2.vmdk” — задает список VMDK с определенной VM. Если список пуст, то будут скопированы все VMDK (=all).

ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP=0 — определяет, будет ли создаваться бэкап ВМ со всеми снапшотами.

VM_SHUTDOWN_ORDER=vm1,vm2,vm3 — определяет в каком порядке будут выключены ВМ (если между ними есть какая-либо зависимость).

VM_STARTUP_ORDER=vm3,vm2,vm1 — определяет порядок запуска ВМ.

ENABLE_NON_PERSISTENT_NFS=1 — позволяет подключать NFS-диски (NFS share) для создания бэкапа. Если 0, то параметры UNMOUNT_NFS, NFS_SERVER, NFS_MOUNT, NFS_LOCAL_NAME и NFS_VM_BACKUP_DIR будут проигнорированы.

UNMOUNT_NFS=1 — определяет размонтировать ли NFS-диск по завершению создания бэкапов ВМ.

NFS_SERVER=192.168.3.200 — IP-адрес или имя хоста NFS-диска. Если на сервере ESXi уже есть подключенный NFS диск с такими же координатами (сервер/путь), то диск не подключится.

NFS_MOUNT — путь к NFS диску (NFS export path).

NFS_LOCAL_NAME — имя, которое будет присвоено подключенному диску (datastores ID);

NFS_VM_BACKUP_DIR — путь, где будут создаваться копии ВМ (относительно VM_BACKUP_VOLUME).

RSYNC_LINK=0 — предназначено для синхронизации бэкапов по Rsync. Подробности расписаны здесь.

EMAIL_LOG=1 — определяет, отправлять ли логи по почте.

EMAIL_DEBUG=1 — определяет, отправлять ли отладочные логи (debug logs) по почте.

EMAIL_SERVER, EMAIL_SERVER_PORT, EMAIL_TO, EMAIL_FROM — соответственно емейл сервер, порт, адрес отправки и отправителя (например, если потребуется определенная запись домена для отправителя в зависимости от конфигурации сервера электронной почты).

Продолжим настройку. Cмотрим список активных ВМ и добавляем необходимые в список:

Для отправки логов на почту необходимо разрешить исходящий трафик в firewall на сервере ESXi, добавив строчки в конце xml-файла:

Перечитываем правила фаервола и проверяем:

Для того, чтобы назначить резервное копирование по расписанию, необходимо добавить в cron строку с командой резервного копирования. Но в нашем случае строка содержит вычисление номера недели в текущем месяце (для того, чтобы не захламлять сервер). Если добавить это выражение сразу в cron, то его значение не вычислится. Поэтому сначала нужно создать отдельный shell-скрипт, вызывающий ghettoVCB с выражением для подсчета номера недели:

Если нет необходимости в понедельной ротации логов, или расписание будет настроено несколько иначе (например, бэкап раз в месяц), то выражение

из start.sh можно убрать. Разрешаем запуск:

Бэкапить будем каждую субботу в час ночи. Системное время задается в UTC, поэтому его нужно внести с учетом поправки на Ваш часовой пояс. В моем случае — это UTC+3, значит нужно внести время на три часа раньше, то есть в пятницу в 22:00. Но если мы добавим строчку в crontab следующим образом:

то все настройки потеряются при перезагрузке сервера ESXi. Поэтому команды на изменение настроек cron’a необходимо добавить в загрузочный скрипт:

Аналогичная ситуация и с настройками firewall сервера ESXi: для их сохранения придется создать VIB-пакет с помощью утилиты VIBauthor и установить его на сервер ESXi. К сожалению, VIBauthor распространяется только для 32-х битных (нет поддержки 64 бит) RPM-based дистрибутивов Linux. Я буду использовать CentOS 6.7 i386 Minimal, вы можете использовать дистрибутив SUSE Linux Enterprise 11 SP2, рекомендованый в документации. Для того, чтобы не ругалось при устаеновке VIBauthor на зависимости (а точней, разрядность) используем ключ “nodeps” и далее подготавим дерево директорий для сборки пакета:

Фактически, то, что за папкой payload1 — это желаемый путь расположения пакета на сервере ESXi. Теперь создаем описание пакета:

и непосредственно само правило firewall’а:

Теперь можно собрать пакет:

скопировать его с помощью SCP на сервер ESXi:

установить и проверить, что получилось:

Для того, чтобы устанавливать подобные дополнения нужно, чтобы на сервере ESXi параметр Acceptance Level был выставлен в значение “Community Supported”. Для этого в клиенте vSphere открываем, как показано на скриншоте:

И финальный штрих: завершаем процесс настройки созданием бэкапа настроек сервера ESXi:

Файл настроек сервере ESXi хранится в /bootbank/state.tgz и предназначен для восстановления в случае внезапного завершения работы, или перезагрузки сервера ESXi (читайте здесь). Если настройки сервера не меняются, то можно скопировать этот файл вручную, в противном случае — настройки сервера ESXi (stage.tgz и папку ghettoVCB-master) будем так же бэкапить каждую неделю. Для этого добавим в конец start.sh перед строкой “exit 0” строки:

Создание резервных копий ВМ.

Проверить настройки и запустить тестовое создание бэкапа в ручную можно командой:

Для отдельной ВМ с именем ‘MyVirtualMachine’:

Ключи задания параметров:

-a — создание бэкапа все ВМ хоста;
-f — укзать список ВМ;
-m — имя ВМ для бэкапа;
-c — конфигурация директории бэкапа;
-g — путь к файлу конфигурации;
-l — создание файла лога;
-w — рабочая директория скрипта;
-d — уровень детализации логов (debug level): info, debug, или dryrun (по умолчанию: info).

Бэкап виртуальной машины представляет из себя подкаталог <имя_ВМ>-<дата>_<время>, содержащий .vmx (файл конфигурации ВМ), непосредственно сами .vmdk и status.ok, содержащий в себе сообщение об успешном завершении создания резервной копии.

Восстановление ВМ из резервных копий.

Следует понимать, что если бэкап ВМ производился во включенном состоянии, то после восстановления ВМ будет в абслютно том же состоянии, в каком была бы после крэша — не исключена потеря данных.

Подключаемся к серверу ESXi по SSH, монтируем NFS с бэкапами и проверяем результат. Формат команды для монтирования NFS следующий:

Для ESXi 3.x/4.x подробно расписано здесь. В моем примере NFS монтируется следующей строчкой:

Для указания путей при восстановлении ВМ нельзя использовать симлинки. Если в конфигурации использовать пути вида: /vmfs/volumes/datastore1/esxi/ … /VM_name/ , то при попытке восстановить ВМ получим ошибку:

Фактически, такое сообщение появляется тогда, когда скрипт не находит бэкап ВМ.

Для того, чтобы задать путь без использования симлинков необходимо узнать UUID устройств. Следующая команда выводит список каждого LUN, подключенного к серверу ESXi и его сопоставление vmfs (Volume Name) к UUID:

Таким образом вместо “backup” и “datastore1” можно использовать соответствующий UUID:

backup: 9108f6f9–353aeed8;
datastore1: 56b74f4f-85fc58fa-87fe-94de8066eda2.

Подробную информацию про идентификацию дисков и файловых систем в ESX(i) можно получить здесь.

и восстанавливаем ВМ:

где:
-c — путь к списку восстанавливаемых машин.
-l — путь расположения логов.

Поскольку резервная копия ВМ представляет из себя набор образов .vdmk и файл-конфигурации .vmx, то можно просто скопировать данные и исправить .vmx:

Через vSphere клиент открываем, как на скриншоте ниже:

на файле .vmx жмем правую кнопку мыши и выбираем “Add to inventory”.

Troubleshooting.

Для того, чтобы создать резервную копию с отладочной информацией необходимо вызвать ghettoVCB с ключем: -d debug

Для отладки процесса восстановления:

где: -d — уровень детализации при отладке (debug level) (1–2). При включении отладочной информации восстановление не произойдет.

Могут возникнуть ситуации, когда потребуется прервать выполнение ghettoVCB.sh, запущенного в ручном (интерактивном) режиме. Нажмите cntrl+C для остановки родительского процесса и далее:

Для остановки ghettoVCB, запущенного в неинтерактивном режиме:

и завершить оба дочерних процесса по их PID:

Если виртуальная машина находилась в процессе резервного копирования, то открыт дополнительный процесс — vmkfstools:

FAQ по vMotion в VMWare vSphere: особенности, типы, настройка

date14.02.2020
useritpro
directoryVMware, Виртуализация
commentsкомментариев 13

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

Как мы уже сказали, vMotion позволяет выполнить “живую миграцию” виртуальных машин без простоя и прерывания работы пользователей. Технология vMotion позиционируется не как средство обеспечения высокой доступности ВМ при авариях. В первую очередь это простое и удобное средство переноса продуктивных ВМ, когда вам нужно выполнить обслуживание/обновление/замену физических серверов с установленным гипервизором ESXi или дисковых массивов. Также vMotion является основой технологии распределения (выравнивания) нагрузки на физические сервера — DRS (Dynamic Resource Scheduler)).

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. Совместимость процессоров на хостах, или включённая опция Enhanced vMotion Compatibility (EVC)

Как происходит vMotion? Сначала на целевом хосте создается теневой клон исходной ВМ с такой-же конфигурацией из vmx файла. Эта ВМ-клон видит все файлы ВМ на общем хранилище. Содержимое оперативной памяти и состояние запущенной ВМ передается по сети между исходным и целевым хостом ESXi. vMotion делает снапшот состояния памяти ВМ, копирует его на целевой сервер по сети. vMotion при этом отслеживает изменения в страницах памяти, а затем до-копирует модифицированные сегменты памяти (это может происходить в несколько этапов, каждый раз копируется все меньший объем данных и за меньшее время).

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

Виды VMware vMotion

VMWare под названием 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 вы можете мигрировать ВМ между хостами с разными наборами инструкций процессора.

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

Enhanced vMotion Compatibility (EVC) в VMware ESXi

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

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

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

Можно получить базовые уровни EVC выставлены для ВМ в кластере из PowerCLI:

Чтобы получить максимально поддерживаемый режим 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.

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

vMotion: как мигрировать ВМ между серверами

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

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

Выберите тип миграции, который вы хотите использовать:

  • 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.

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

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

выбор сети ВМ при vmotion

На последнем этапе нужно выбрать приоритет задачи миграции vMotion. По-умолчанию используется наивысший приоритете (Schedule vMotion with high priority). Я всегда использую именно его.

Schedule vMotion with high priority - приоритет vMotion

Осталось нажать Next -> Finish и запустится процедура миграции ВМ на другой хост. За статусом миграции можно следить в панели Recent Tasks (задание Relocate virtual machine). В моем случае процесс миграции ВМ с помощью 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 потоков.

Related Posts