Pouvez-vous changer le type de carte réseau virtuelle après avoir créé une machine virtuelle?

9

Lors de la construction d'une machine virtuelle, vous pouvez sélectionner le type de périphérique virtuel que vous souhaitez qu'une vNIC soit (E1000, VMXNET3, etc.).

Une fois la machine virtuelle créée, pouvez-vous changer le type de vNIC utilisé sur une connexion donnée (par exemple de E1000 à VMXNET3)?

Si c'est le cas, comment?

garenne
la source

Réponses:

12

Oui, vous pouvez changer le type.

Utilisez l' Set-NetworkAdapterapplet de commande powercli. Le commutateur "Type" vous permet de modifier l'adaptateur. Notez que la VM doit être désactivée pour ce faire.

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

vSphere PowerCLI peut être téléchargé ici:

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

Il peut être installé sur n'importe quelle machine Windows disposant d'un accès réseau au serveur ESXi. Je l'installe généralement directement sur mon ordinateur portable / poste de travail où j'ai également installé vSphere.

Après l'installation, ouvrez-le. Utilisez Connect-VIServerpour vous connecter à votre hôte ESXi. Il vous demandera l'adresse IP du serveur et les informations d'identification.

Permet Get-VMde récupérer la liste des machines virtuelles sur l'hôte ESXi. Confirmez que celui que vous souhaitez modifier est là et notez le nom exact.

Utilisez cette commande pour modifier l'adaptateur, en remplaçant le nom du serveur par un nom exact dans la Get-VMliste et saisissez le type d'adaptateur souhaité:

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

Notez que si la machine virtuelle a plusieurs cartes réseau, vous devrez peut-être un autre commutateur dans la commande pour spécifier le bon.

jlehtinen
la source
1
n'ayant pas travaillé avec PowerCLI auparavant, peut-il être exécuté à partir d'une machine virtuelle Linux?
warren
@warren Je pense que c'est uniquement Windows, car PowerCLI est essentiellement un tas de scripts PowerShell qui ont atteint les API vSphere. Considérez-le comme une alternative en ligne de commande à vSphere - vous l'utilisez pour vous connecter à un hôte ESXi et émettre des commandes.
jlehtinen
ok - je suppose que je ne le comprends pas complètement, car je ne l'ai pas utilisé auparavant. Est-il exécuté sur l'hôte vCenter?
warren
1
@warren J'ai mis à jour le message avec plus de détails.
jlehtinen
Lorsque vous l'utilisez contre une VM avec plusieurs NIC, il vous demande pour chaque NIC, utilisez simplement la commande exacte ci-dessus:get-vm 'myserver'|get-networkadapter|set-networkadapter -type vmxnet3
neildeadman
6

Comme vous le savez peut-être, il existe plusieurs façons de modifier le type d'adaptateur. Une mise en garde à retenir concerne la génération d'adresses MAC.

Lorsque vous créez une carte réseau virtuelle, il existe deux options liées à l'adresse MAC:

  • Automatique : (par défaut) ESX génère automatiquement une adresse MAC pour vous
  • Manuel : vous, l'utilisateur, saisissez manuellement une adresse MAC que vous sélectionnez

Si vous utilisez des MAC générés automatiquement, la modification du type d'adaptateur entraîne la régénération de l'adresse. Cela signifie que toutes les configurations que vous avez, sur l'invité ou sur l'infrastructure réseau elle-même, qui dépendent d'une adresse MAC échoueront. Donc, si vous changez le type d'adaptateur, vous devez laisser générer automatiquement une nouvelle adresse MAC ou définir manuellement la vôtre. Cependant, vous ne pouvez pas définir manuellement l'ancienne adresse comme interface car ESX réserve ce préfixe à ses propres fins.

AVERTISSEMENT AVERTISSEMENT EN CAS DE NON RESPONSABILITÉ SEULEMENT

Une alternative que j'ai utilisée consiste à modifier manuellement le fichier de configuration de la machine virtuelle. Cette méthode nécessite l'activation de SSH sur l'hôte ESX et vous êtes prêt à contourner toutes les protections de l'intégrité des données fournies par l'utilisation d'une interface graphique ou d'une API.

Avant d'effectuer l'une de ces étapes, assurez-vous que l'invité est hors tension et que la fenêtre des paramètres est fermée.

  1. SSH dans votre hôte
  2. Localisez le fichier vmx pour votre machine virtuelle (ex. /vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
  3. Ouvrez le fichier pour le modifier: vi /vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
  4. Recherchez la ligne qui définit le type d'interface. Par exemple, pour le premier vNICethernet0.virtualDev = "e1000"
  5. Remplacer e1000parvmxnet3
  6. Enregistrez le fichier et quittez.

Vous allez maintenant avoir changé le type de périphérique NIC virtuel sans avoir à changer l'adresse MAC.

Scott Pack
la source
1
Je ne suis pas sûr que je m'inquiète pour l'adresse MAC ... le seul endroit où cela devrait entrer en jeu est sur un bail DHCP spécifique, et ces délais d'attente après un certain temps
Warren
1
@warren: Cela dépend beaucoup de votre infrastructure. Dans mon cas, il était plus facile de le faire que de réenregistrer les invités afin que leurs MAC soient autorisés sur le réseau. Parfois, les ports de commutation peuvent être verrouillés MAC, parfois des réservations sont en cours d'utilisation. Parfois, cela n'a pas d'importance, mais parfois c'est le cas et un bon administrateur doit savoir comment différentes choses fonctionnent dans différentes situations.
Scott Pack
bon point. Dans ce cas, ce n'est pas un problème, mais je vois comment cela pourrait être :)
warren
1
Si vous voulez éviter ssh, vous pouvez télécharger le .vmx à partir de la banque de données de navigation, le modifier et le télécharger.
JamesRyan
1
Incontesté. La première règle des conseils sur Internet est de verser un bol de sel. La seconde consiste à l'analyser par rapport à votre environnement pour voir ce qui a réellement du sens. Avec un environnement suffisamment avancé, toute maintenance de l'hôte sans vCLI est probablement un mauvais juju.
Scott Pack
2

Je ne pense pas qu'il soit productif de suggérer une solution PowerCLI ou de script à cette question ... Trop d'hypothèses sur l'infrastructure environnante pour ce qui est une correction manuelle de 30 secondes.

La réponse est que vous ne devriez vraiment pas changer le type d'adaptateur en vol. Le processus le plus accepté consiste à supprimer l'adaptateur existant et à ajouter un nouvel adaptateur du type souhaité.

carte réseau E1000 existante connectée à une machine virtuelle entrez la description de l'image ici

retirer la carte réseau E1000 entrez la description de l'image ici

ajouter un nouveau périphérique réseau
entrez la description de l'image ici

spécifier le type d'adaptateur à utiliser dans le nouveau périphérique réseau entrez la description de l'image ici

Dans votre système d'exploitation, reconfigurez les paramètres réseau.

ewwhite
la source
la suppression de l'ancien NIC et l'ajout d'un nouveau ne modifie pas directement le type - bien qu'il puisse être utilisé. L'inconvénient est qu'au moins sous Linux, vous devez ensuite supprimer les anciennes configurations pour eth0 (ou eth <n>), car sinon vous obtenez simplement la prochaine affectation séquentielle eth <n>
warren
1

Vous ne pouvez pas modifier le type, mais vous pouvez facilement supprimer le type indésirable et ajouter un nouveau vNIC du type souhaité.

John
la source
c'est ce que je pensais que la réponse serait. Tant pis. Une idée pourquoi c'est le cas?
warren
2
C'est une limitation de l'interface graphique. Évidemment, vous pouvez le faire via PowerCLI - voir la réponse de @ jlehtinen pour plus de détails.
John
1
@John: Vous pouvez également le faire dans l'interface graphique (au moins sur 5.1). La VM doit être hors tension et vous devez changer le MAC.
Scott Pack
@ScottPack - est-ce dans le webui ou le client vCenter?
warren
1
@warren: L'interface Web a été introduite avec 5.5. Ce qui est fantastique car, d'après ce que je comprends, il n'est disponible que via vCenter et de nombreuses fonctionnalités ne sont plus disponibles dans le gros client. Nous laisse vraiment tous les utilisateurs autonomes dans le froid.
Scott Pack