+38/044/257-2444
+38/067/502-3306
+38/050/370-3627
Новости

Новые возможности технологии Instant Clone в VMware vSphere 6.7

Функция мгновенного клонирования виртуальной машины (ранее известная как VMFork) позволяет очень быстро сделать работающую копию запущенной ВМ на платформе VMware vSphere.

Делается это за счет того, что "на лету" создается клон виртуальной машины (VMX-файл, процесс в памяти), который начинает использовать ту же память (Shared memory) на чтение, что и родительская ВМ. При этом дочерняя ВМ в общую память писать не может, а для записи собственных данных используется выделенная область памяти. Для дисков аналогично - с использованием технологии Copy-on-write в дельта-диск дочерней ВМ пишутся отличия от базового диска родительской ВМ

Такая схема использования родительской ВМ в VMware vSphere 6.5 требовала, чтобы родительская машина и ее мгновенные клоны находились на одном сервере ESXi. А значит для этих ВМ не поддерживались такие технологии, как vMotion/HA/Storage vMotion и DRS. Между тем, это очень важно для служб тестирования, отделов DevOps и т.п.

Теперь же в VMware vSphere 6.7 появились следующие улучшения Instant Clone:

  • Появился простейший публичный API, который позволяет автоматизировать процесс создания и перемещения мгновенных клонов. Он умеет пока не все, но будет развиваться. GUI для этого пока также нет.
  • Интеграция с технологиями vSphere для обеспечения доступности виртуальных машин (HA, DRS, vMotion, Storage / XvMotion и т.п.).
  • Поддержка двух рабочих процессов создания мгновенных клонов: первый - это последовательное создание клонов в процессе работы родительской виртуальной машины, второй - отпочковывание клонов от "замороженной" родительской ВМ.
  • Использование технологии P-Share для дедупликации страниц памяти средствами технологии Transparent Page Sharing (даже когда она отключена на хосте ESXi).
  • Теперь отношение родитель-клон не такое тесно связанное, как раньше.

Давайте посмотрим на первый рабочий процесс - создание мгновенных клонов работающей ВМ. Это, например, может пригодиться, когда вы массово тестируете обновление компонентов какого-либо приложения. Обновили первый компонент - сделали несколько клонов для тесткейсов, провели тесты, потом обновили следующий - и снова сделали несколько клонов для тестирования.

У родительской ВМ создается дельта-диск, который используется первым мгновенным клоном, потом базовая ВМ несколько меняется за время до создания следующего - и на момент создания нового мгновенного клона будет использоваться уже следующий дельта-диск и так далее. Пока для этого нет визуального интерфейса, но все это можно потестировать через MOB-браузер.

Такая схема имеет недостаток в том, что у родительской ВМ плодятся дельта-диски, что приводит к тому, что быстродействие родительской ВМ замедляется, а сама структура за счет увеличения числа дисков существенно усложняется, что потенциально может привести к различного рода сбоям.

Также в данном случае есть проблема сетевой идентификации - все виртуальные машины, которые рождаются как мгновенные клоны имеют те же настройки IP и MAC-адреса, что и родитель. Чтобы изменить их потребуется выполнить следующие действия:

  1. После создания Instant Clone внутри нужно отключить сетевой интерфейс через свойство VirtualEthernetCard->connectable->migrateConnect, устанавливаемое в значение disconnect. Далее нужно задать настройки сетевой идентификации ВМ.
  2. Если не хочется менять параметры сетевой идентификации, новые ВМ можно просто запускать в отдельной портгруппе, без выхода во внешнюю сеть во избежание конфликтов IP и MAC-адресов.
  3. Внутри мгновенного клона нужно обновить настройки сетевого интерфейса, чтобы гостевая ОС получила новый MAC-адрес. Это можно автоматизировать через Guest Operations API.
  4. Снова присоединить виртуальную сетевую карту к ВМ, чтобы новые настройки были применены и машина свободно работала в сети. Для этого нужно установить значение свойства VirtualEthernetCard->connectable->connected в true. 

Вторая схема - это "заморозка" родительской ВМ таким образом, что ее CPU перестает исполнять инструкции (для этого используется функция instantclone.freeze в утилите vmware-rpctool). После этого механизм Instant Clone способен создавать связанные клоны этой подмороженной ВМ.

Это позволяет не плодить дельта-диски родительской ВМ (так как ее состояние не изменяется) и достичь унифицированной конфигурации мгновенных клонов

Такая схема может подойти для масштабирования каких-либо типовых унифицированных нагрузок в виртуальных машинах - например, VDI, хосты с контейнерами, Hadoop-воркеры и так далее.

Поморозка ВМ происходит средствами утилиты vmware-rpctool, которая развертывается в виртуальной машине вместе с VMware Tools.

Также теперь мгновенные клоны существенно меньше привязаны к родительской ВМ, что позволяет использовать их более широко, а сами они называются "parentless".

 

 

 

 

Другие новости