Уже не раз я сталкиваюсь с ситуацией, когда по тем или иным причинам требуется сменить сеть на ВМ, созданных с помощью linked-clone. В основном это требуется, когда старая группа портов подключена к сети, где не хватает свободных IP-адресов или используется группа портов на стандартном виртуальном коммутаторе и требуется мигрировать ВМ на распределенный коммутатор и т.д.
- Подключить виртуальные сетевые адаптеры существующих ВМ к новой группе портов.
- Подключить виртуальный сетевой адаптер на ВМ, которая используется в качестве мастер-образа, к новой группе портов.
- Создать новый снапшот с мастер-образа и запустить Recompose для всех ВМ, которые были созданы из старого мастер-образа.
Recompose требуется, чтобы удалить все реплики ВМ (replica-*), которые подключены к старой группе портов.
Однако, Recompose удалит все данные с дельта дисков ВМ, что может не подойти в случае использования постоянных выделенных ВМ (persistent, dedicated).
Поэтому есть второй (и по всей видимости, неподдерживаемый) способ, который не требует запуска Recompose, но, в теории, может кое-что поломать в вашей инфраструктуре, поэтому используйте его на свой страх и риск:
По умолчанию, все реплики мастер-образов защищены от изменения и удаления и изменение настрое (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.
Параметры, которые требуется изменить:
Самый простой способ - скопировать настройки из .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=<Путь_к_реплике>
Поэтому есть второй (и по всей видимости, неподдерживаемый) способ, который не требует запуска Recompose, но, в теории, может кое-что поломать в вашей инфраструктуре, поэтому используйте его на свой страх и риск:
- Подключить виртуальные сетевые адаптеры существующих ВМ к новой группе портов.
- Отключить защиту от изменений для реплики мастер-образа, из которой создаются ВМ.
- Подключить виртуальные сетевые адаптеры реплики мастер-образа к новой группе портов. Это избавит от необходимости делать Recompose на всех машинах.
- Отредактировать конфигурационный файл снапшота реплики мастер-образа (.vmsn) и прописать в нем подключение к новой группе портов. Это нужно, чтобы все новые ВМ, создаваемые из реплики, подключались к нужной сети. Настройки ID группы портовВ качестве альтернативного варианта можно настроить Multiple Network Labels, доступные в View 5.2 и новее.
- Загрузить настройки из отредактированного .vmsn файла в память гипервизора.
- Включить защиту от изменений для реплики мастер-образа. Чтобы её никто случайно не сломал.
По умолчанию, все реплики мастер-образов защищены от изменения и удаления и изменение настрое (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=<Путь_к_реплике>