понедельник, 24 ноября 2014 г.

Смена сети для Linked-clone ВМ в VMware View

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

Для решения этой задачи есть один правильный способ, который включает в себя следующие шаги:
  1. Подключить виртуальные сетевые адаптеры существующих ВМ к новой группе портов.
  2. Подключить виртуальный сетевой адаптер на ВМ, которая используется в качестве мастер-образа, к новой группе портов.
  3. Создать новый снапшот с мастер-образа и запустить Recompose для всех ВМ, которые были созданы из старого мастер-образа.

Recompose требуется, чтобы удалить все реплики ВМ (replica-*), которые подключены к старой группе портов.

Однако, Recompose удалит все данные с дельта дисков ВМ, что может не подойти в случае использования постоянных выделенных ВМ (persistent, dedicated).

Поэтому есть второй (и по всей видимости, неподдерживаемый) способ, который не требует запуска Recompose, но, в теории, может кое-что поломать в вашей инфраструктуре, поэтому используйте его на свой страх и риск:
  1. Подключить виртуальные сетевые адаптеры существующих ВМ к новой группе портов.
  2. Отключить защиту от изменений для реплики мастер-образа, из которой создаются ВМ.
  3. Подключить виртуальные сетевые адаптеры реплики мастер-образа к новой группе портов. Это избавит от необходимости делать Recompose на всех машинах.
  4. Отредактировать конфигурационный файл снапшота реплики мастер-образа (.vmsn) и прописать в нем подключение к новой группе портов. Это нужно, чтобы все новые ВМ, создаваемые из реплики, подключались к нужной сети. Настройки ID группы портовВ качестве альтернативного варианта можно настроить Multiple Network Labels, доступные в View 5.2 и новее.
  5. Загрузить настройки из отредактированного .vmsn файла в память гипервизора.
  6. Включить защиту от изменений для реплики мастер-образа. Чтобы её никто случайно не сломал.
Для упрощения процедуры переключения большого кол-ва ВМ из одной группы портов в другую можно использовать мастер миграции.

По умолчанию, все реплики мастер-образов защищены от изменения и удаления и изменение настрое (Edit Settings) недоступно из интерфейса vSphere.

Для отключения защиты требуется использовать утилиту sviconfig.exe, расположенную на сервере View Composer в каталоге "C:\Program Files (x86)\VMware\VMware View Composer\". Команда имеет следующие параметры:
sviconfig.exe -operation=unprotectentity -DsnName=<ODBC_коннектор> -dbusername=<пользователь_СУБД> -dbpassword=<пароль_пользователя_СУБД> -vcurl=<Путь_к_vCenter> -vcusername=<пользователь_vCenter> -inventorypath=<Путь_к_реплике>

, где: <ODBC_коннектор> - имя ODBC коннектора, который используется для подключения к базе данных Composer. Можно посмотреть через консоль ODBC Data Source Administrator на вкладке System DNS;

<пользователь_СУБД> - имя учетной записи пользователя, который используется для подключения к БД Composer;

<пароль_пользователя_СУБД> - пароль учетной записи пользователя, который используется для подключения к БД Composer;

<Путь_к_vCenter> - путь к каталогу /sdk сервера vCenter Server (например, "https://vcenter.domain.local/sdk")

<пользователь_vCenter> - имя учетной записи пользователя для подключения к серверу vCenter Server.

<Путь_к_реплике> - полный путь к ВМ реплики, начиная с корневого каталога виртуального ЦОД сервера vCenter (по умолчанию, все реплики создаются в подкаталоге "/<Имя_ВЦОД>/vm/VMwareViewComposerReplicaFolder/", который можно видеть в дереве каталога vCenter).

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

Отредактировать vmsn файл можно с помощью редактора vi из консоли ESXi.

Параметры, которые требуется изменить:
  • ethernet[x].dvs.switchId;
  • ethernet[x].dvs.portId;
  • ethernet[x].dvs.portgroupId;
  • ethernet[x].dvs.connectionId.


Самый простой способ - скопировать настройки из .vmx файла реплики, расположенного в той же папке.

Так как .vmsn файл редактируется вручную, требуется обновить настройки в памяти гипервизора. Сделать это можно, удалив ВМ из инвентаря (remove from inventory) и добавив ее заново (Add to inventory) в тот же пул ресурсов и в тот же каталог, или перенеся ВМ с одного ESXi сервера на другой с помощью Migrate.

Последний шаг - включение защиты от изменений для реплики (чтобы ничего ненароком не сломать), выполняется той же утилитой sviconfig.exe с параметром -operation=protectentity:
sviconfig.exe -operation=unprotectentity -DsnName=<ODBC_коннектор> -dbusername=<пользователь_СУБД> -dbpassword=<пароль_пользователя_СУБД> -vcurl=<Путь_к_vCenter> -vcusername=<пользователь_vCenter> -inventorypath=<Путь_к_реплике>