Можете ли вы изменить тип виртуальной сетевой карты после создания виртуальной машины?

9

При создании виртуальной машины вы можете выбрать, какой тип виртуального устройства вы хотите использовать в качестве vNIC (E1000, VMXNET3 и т. Д.).

После того, как виртуальная машина создана, вы можете изменить тип vNIC, используемый в данном соединении (например, с E1000 на VMXNET3)?

Если так, то как?

кроличий садок
источник

Ответы:

12

Да, вы можете изменить тип.

Используйте Set-NetworkAdapterкомандлет powercli. Переключатель «Тип» позволяет изменять адаптер. Обратите внимание, что для этого необходимо отключить виртуальную машину.

https://www.vmware.com/support/developer/PowerCLI/PowerCLI41U1/html/Set-NetworkAdapter.html

vSphere PowerCLI можно скачать здесь:

https://my.vmware.com/group/vmware/details?downloadGroup=VSP510-PCLI-510&productId=285

Он может быть установлен на любой машине Windows, которая имеет сетевой доступ к серверу ESXi. Обычно я устанавливаю его прямо на свой ноутбук / рабочую станцию, где у меня также установлена ​​vSphere.

После установки откройте его. Используйте Connect-VIServerдля подключения к хосту ESXi. Он запросит у вас IP-адрес сервера и учетные данные.

Используйте Get-VMдля получения списка виртуальных машин на хосте ESXi. Подтвердите, что вы хотите изменить, и запишите точное имя.

Используйте эту команду для изменения адаптера, заменив имя сервера точным именем из Get-VMсписка и введите нужный тип адаптера:

get-vm 'myserver'|get-networkadapter|set-networkadapter -type e1000

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

jlehtinen
источник
1
не работал с PowerCLI раньше, это можно запустить с виртуальной машины Linux?
Уоррен
@warren Я думаю, что это только Windows, поскольку PowerCLI - это набор сценариев PowerShell, которые работают с API-интерфейсами vSphere. Думайте об этом как об альтернативе командной строки vSphere - вы используете ее для подключения к хосту ESXi и запуска команд.
jlehtinen
хорошо - думаю, я не до конца понимаю, так как раньше не использовал. Это работает на хосте vCenter?
Уоррен
1
@warren Я обновил пост с более подробной информацией.
jlehtinen
При использовании этого в отношении виртуальной машины с несколькими сетевыми картами запрашивается каждый сетевой get-vm 'myserver'|get-networkadapter|set-networkadapter -type vmxnet3
адаптер,
6

Как вы, возможно, знаете, есть несколько способов изменить тип адаптера. Одно предупреждение, которое нужно помнить, относится к генерации MAC-адресов.

При создании виртуального сетевого адаптера есть две опции, связанные с MAC-адресом:

  • Автоматически : (по умолчанию) ESX автоматически создает для вас MAC-адрес
  • Вручную : пользователь вручную вводит выбранный вами MAC-адрес

Если вы используете автоматически сгенерированные MAC-адреса, то изменение типа адаптера приводит к восстановлению адреса. Это означает, что любые конфигурации на гостевой или сетевой инфраструктуре, которые используют MAC-адрес, не будут выполнены. Поэтому, если вы меняете тип адаптера, вы должны разрешить, если вы автоматически создадите новый MAC-адрес или зададите свой собственный. Однако вы не можете вручную установить старый адрес в качестве интерфейса, поскольку ESX резервирует этот префикс для своих собственных целей.

ПРЕДУПРЕЖДЕНИЕ ПРЕДУПРЕЖДЕНИЕ, КОГДА ЭТО НЕ ПОКАЗЫВАЕТ ТОЛЬКО СЕБЯ

Альтернативой, которую я использовал, является ручное редактирование файла конфигурации виртуальной машины. Этот метод требует, чтобы SSH был включен на хосте ESX, и вы готовы обойти все средства защиты целостности данных, которые предоставляет графический интерфейс или API.

Перед выполнением любого из этих шагов убедитесь, что гость выключен и окно настроек закрыто.

  1. SSH в ваш хост
  2. Найдите файл VMX для вашей виртуальной машины (например, /vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
  3. Откройте файл для редактирования: vi /vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
  4. Найдите строку, которая определяет тип интерфейса. Например, для первого ВНИКethernet0.virtualDev = "e1000"
  5. Изменить e1000наvmxnet3
  6. Сохраните файл и выйдите.

Теперь вы измените тип виртуального сетевого адаптера без необходимости изменения MAC-адреса.

Скотт Пак
источник
1
не уверен, что меня беспокоит MAC-адрес ... единственное место, где он должен вступить в игру, это конкретная аренда DHCP, и эти тайм-ауты через некоторое время
warren
1
@ Warren: Это зависит от вашей инфраструктуры. В моем случае это было легче сделать, чем перерегистрировать гостей, чтобы их MAC-адреса были разрешены в сети. Иногда порты коммутатора могут быть заблокированы MAC, иногда используются резервирования. Иногда это не имеет значения, но иногда это имеет значение, и хороший администратор должен знать, как разные вещи работают в разных ситуациях.
Скотт Пак
хорошая точка зрения. В данном случае это не проблема, но я вижу, как это может быть :)
Уоррен
1
Если вы хотите избежать ssh, вы можете скачать .vmx из хранилища данных, отредактировать его и загрузить.
JamesRyan
1
Неоспоримые. Первое правило интернет-совета - вылить миску соли. Второе - это проанализировать ситуацию в вашей среде, чтобы увидеть, что на самом деле имеет смысл. С достаточно продвинутой средой выполнение любого хоста без vCLI, вероятно, плохо для меня.
Скотт Пак
2

Я не думаю, что было бы продуктивно предлагать решение PowerCLI или сценариев для этого вопроса ... Слишком много предположений об окружающей инфраструктуре для 30-секундного ручного исправления.

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

существующий сетевой адаптер E1000, подключенный к виртуальной машине введите описание изображения здесь

удалить E1000 NIC введите описание изображения здесь

добавить новое сетевое устройство
введите описание изображения здесь

укажите тип адаптера, который будет использоваться в новом сетевом устройстве введите описание изображения здесь

В вашей операционной системе перенастройте настройки сети.

ewwhite
источник
удаление старого NIC и добавление нового ничего не изменить тип напрямую - хотя он может быть использован. Недостатком является то, что, по крайней мере, в Linux вам нужно удалить старые конфиги для eth0 (или eth <n>), потому что в противном случае вы просто получите следующее последовательное назначение eth <n>
warren
1

Вы не можете изменить тип, но вы можете легко удалить нежелательный тип и добавить новый vNIC требуемого типа.

Джон
источник
это то, что я думал, ответ будет. Ну что ж. Есть идеи, почему это так?
Уоррен
2
Это ограничение графического интерфейса. Очевидно, вы можете сделать это через PowerCLI - подробности смотрите в ответе @ jlehtinen.
Джон
1
@John: Вы также можете сделать это в графическом интерфейсе (по крайней мере, на 5.1). Виртуальная машина должна быть выключена, и вы должны сменить MAC.
Скотт Пак
@ScottPack - это в webui или в клиенте vCenter?
Уоррен
1
@warren: веб-интерфейс был представлен с 5.5. И это здорово, потому что, насколько я понимаю, он доступен только через vCenter, а многие функции больше не доступны в толстом клиенте. Действительно оставляет всех нас автономных пользователей на морозе.
Скотт Пак