Können Sie den Typ der virtuellen Netzwerkkarte nach dem Erstellen einer VM ändern?

9

Beim Erstellen einer VM können Sie auswählen, welcher virtuelle Gerätetyp eine vNIC sein soll (E1000, VMXNET3 usw.).

Nachdem die VM erstellt wird, können Sie die Art der vNIC im Einsatz auf eine bestimmte Verbindung (zB von E1000 zu VMXNET3) ändern?

Wenn das so ist, wie?

Labyrinth
quelle

Antworten:

12

Ja, Sie können den Typ ändern.

Verwenden Sie das Set-NetworkAdapterCmdlet powercli. Mit dem Schalter "Typ" können Sie den Adapter ändern. Beachten Sie, dass die VM dazu ausgeschaltet sein muss.

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

vSphere PowerCLI kann hier heruntergeladen werden:

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

Es kann auf jedem Windows-Computer installiert werden, der Netzwerkzugriff auf den ESXi-Server hat. Normalerweise installiere ich es direkt auf meinem Laptop / meiner Workstation, auf der auch vSphere installiert ist.

Öffnen Sie es nach der Installation. Verwenden Connect-VIServerSie diese Option, um eine Verbindung zu Ihrem ESXi-Host herzustellen. Sie werden zur Eingabe der Server-IP und der Anmeldeinformationen aufgefordert.

Verwenden Sie Get-VMdiese Option , um die Liste der VMs auf dem ESXi-Host abzurufen. Bestätigen Sie, dass derjenige, den Sie ändern möchten, vorhanden ist, und notieren Sie den genauen Namen.

Verwenden Sie diesen Befehl, um den Adapter zu ändern. Ersetzen Sie den Servernamen durch den genauen Namen aus der Get-VMListe und geben Sie ihn durch den gewünschten Adaptertyp ein:

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

Beachten Sie, dass Sie möglicherweise einen anderen Schalter im Befehl benötigen, um die richtige anzugeben, wenn die VM über mehrere Netzwerkkarten verfügt.

jlehtinen
quelle
1
Kann das, das noch nicht mit PowerCLI gearbeitet hat, von einer Linux-VM ausgeführt werden?
Warren
@warren Ich denke, es ist nur Windows, da PowerCLI im Grunde eine Reihe von PowerShell-Skripten ist, die die vSphere-APIs treffen. Stellen Sie sich das wie eine Befehlszeilenalternative zu vSphere vor - Sie verwenden es, um eine Verbindung zu einem ESXi-Host herzustellen und Befehle auszugeben.
Jlehtinen
ok - denke ich verstehe es nicht ganz, da ich es vorher noch nicht benutzt habe. Wird es auf dem vCenter-Host ausgeführt?
Warren
1
@ Warren Ich habe den Beitrag mit mehr Details aktualisiert.
Jlehtinen
Wenn Sie dies gegen VM mit mehreren Netzwerkkarten verwenden, werden Sie nach jeder get-vm 'myserver'|get-networkadapter|set-networkadapter -type vmxnet3
Netzwerkkarte gefragt.
6

Wie Sie vielleicht lernen, gibt es verschiedene Möglichkeiten, den Adaptertyp zu ändern. Eine Einschränkung, die Sie beachten sollten, betrifft die Generierung von MAC-Adressen.

Wenn Sie eine virtuelle Netzwerkkarte erstellen, gibt es zwei Optionen für die MAC-Adresse:

  • Automatisch : (Standard) ESX generiert automatisch eine MAC-Adresse für Sie
  • Manuell : Sie als Benutzer geben manuell eine von Ihnen ausgewählte MAC-Adresse ein

Wenn Sie automatisch generierte MACs verwenden, führt das Ändern des Adaptertyps dazu, dass die Adresse neu generiert wird. Dies bedeutet, dass alle Konfigurationen auf dem Gast oder der Netzwerkinfrastruktur selbst, die auf einer MAC-Adresse basieren, fehlschlagen. Wenn Sie also den Adaptertyp ändern, müssen Sie zulassen, dass eine neue MAC-Adresse automatisch generiert oder manuell festgelegt wird. Sie können die alte Adresse jedoch nicht manuell als Schnittstelle festlegen, da ESX dieses Präfix für eigene Zwecke reserviert.

WARNUNG WARNUNG, WENN DIESE FEHLER NUR SELBST SCHULDEN

Eine Alternative, die ich verwendet habe, besteht darin, die Konfigurationsdatei der virtuellen Maschine manuell zu bearbeiten. Für diese Methode muss SSH auf dem ESX-Host aktiviert sein und Sie sind bereit, alle Schutzmaßnahmen für die Datenintegrität zu umgehen, die über eine GUI oder API bereitgestellt werden.

Bevor Sie einen dieser Schritte ausführen, stellen Sie sicher, dass der Gast ausgeschaltet und das Einstellungsfenster geschlossen ist.

  1. SSH in Ihren Host
  2. Suchen Sie die VMX-Datei für Ihre virtuelle Maschine (z. /vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
  3. Öffnen Sie die Datei zur Bearbeitung: vi /vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
  4. Suchen Sie die Zeile, die den Schnittstellentyp definiert. ZB für die erste vNICethernet0.virtualDev = "e1000"
  5. Wechseln Sie e1000zuvmxnet3
  6. Speichern Sie die Datei und beenden Sie sie.

Jetzt haben Sie den Gerätetyp der virtuellen Netzwerkkarte geändert, ohne die MAC-Adresse ändern zu müssen.

Scott Pack
quelle
1
Ich bin mir nicht sicher, ob ich mir Sorgen um die MAC-Adresse machen würde. Der einzige Ort, an dem sie ins Spiel kommen sollte, ist ein bestimmter DHCP-Mietvertrag und diese
Zeitüberschreitung
1
@ Warren: Es hängt ziemlich stark von Ihrer Infrastruktur ab. In meinem Fall war dies einfacher, als die Gäste neu zu registrieren, damit ihre MACs im Netzwerk zugelassen werden. Manchmal können Switch-Ports MAC-gesperrt sein, manchmal werden Reservierungen verwendet. Manchmal spielt es keine Rolle, aber manchmal auch, und ein guter Administrator muss wissen, wie verschiedene Dinge in verschiedenen Situationen funktionieren.
Scott Pack
guter Punkt. In diesem Fall ist das kein Problem, aber ich sehe, wie es sein könnte :)
Warren
1
Wenn Sie ssh vermeiden möchten, können Sie die .vmx aus dem Datenspeicher durchsuchen, bearbeiten und hochladen.
James Ryan
1
Unbestritten. Die erste Regel für Internet-Ratschläge ist, eine Schüssel Salz einzuschenken. Die zweite besteht darin, es anhand Ihrer Umgebung zu analysieren, um festzustellen, was tatsächlich Sinn macht. In einer ausreichend fortgeschrittenen Umgebung ist es wahrscheinlich schlecht, Host-Wartungsarbeiten ohne vCLI durchzuführen.
Scott Pack
2

Ich denke nicht, dass es produktiv ist, eine PowerCLI- oder Skriptlösung für diese Frage vorzuschlagen ... Zu viele Annahmen über die umgebende Infrastruktur für eine manuelle Korrektur von 30 Sekunden.

Die Antwort ist, dass Sie den Adaptertyp während des Flugs wirklich nicht ändern sollten . Der akzeptiertere Vorgang besteht darin, den vorhandenen Adapter zu entfernen und einen neuen Adapter des gewünschten Typs hinzuzufügen.

vorhandene E1000-Netzwerkkarte, die an eine VM angeschlossen ist Geben Sie hier die Bildbeschreibung ein

Entfernen Sie die E1000-Netzwerkkarte Geben Sie hier die Bildbeschreibung ein

Fügen Sie ein neues Netzwerkgerät hinzu
Geben Sie hier die Bildbeschreibung ein

Geben Sie den Adaptertyp an, der im neuen Netzwerkgerät verwendet werden soll Geben Sie hier die Bildbeschreibung ein

Konfigurieren Sie in Ihrem Betriebssystem die Netzwerkeinstellungen neu.

ewwhite
quelle
die alten NIC Entfernen und Hinzufügen eines neuen nicht nicht den Typen direkt ändern - wenn es verwendet werden könnte. Der Nachteil ist , dass zumindest auf Linux, Sie dann die alten Konfigurationen für eth0 entfernen müssen (oder eth <n>), da sonst nur die nächste sequentielle eth erhalten <n> Zuordnung
warren
1

Sie können den Typ nicht ändern , aber Sie können den unerwünschten Typ einfach löschen und eine neue vNIC des gewünschten Typs hinzufügen.

John
quelle
Das war es, was ich dachte, die Antwort wäre. Naja. Irgendeine Idee, warum dies der Fall ist?
Warren
2
Es ist eine GUI-Einschränkung. Offensichtlich können Sie dies über PowerCLI tun - Einzelheiten finden Sie in der Antwort von @ jlehtinen.
John
1
@ John: Du kannst es auch in der GUI machen (zumindest unter 5.1). Die VM muss ausgeschaltet sein und Sie müssen den MAC ändern.
Scott Pack
@ScottPack - ist das im Webui oder im vCenter-Client?
Warren
1
@warren: Die webUI wurde mit 5.5 eingeführt. Das ist fantastisch, da es meines Wissens nur über vCenter verfügbar ist und viele Funktionen im Fat Client nicht mehr verfügbar sind. Lässt uns alle Standalone-Benutzer wirklich draußen in der Kälte.
Scott Pack