建立虚拟机后可以更改虚拟NIC类型吗?


9

构建VM时,可以选择想要vNIC的虚拟设备类型(E1000,VMXNET3等)。

创建虚拟机之后,是否可以更改给定连接上使用的vNIC的类型(例如,从E1000到VMXNET3)?

如果是这样,怎么办?

Answers:


12

是的,您可以更改类型。

使用Set-NetworkAdapterpowercli cmdlet。“类型”开关允许您修改适配器。请注意,必须关闭VM才能执行此操作。

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

它可以安装在对ESXi服务器具有网络访问权限的任何Windows计算机上。我通常将其直接安装在还安装了vSphere的笔记本电脑/工作站上。

安装后,将其打开。使用Connect-VIServer连接到您的ESXi主机。它将提示您输入服务器IP和凭据。

使用Get-VM检索ESXi主机上的虚拟机的列表。确认要更改的名称在那里,并记下确切名称。

使用此命令来更改适配器,将服务器名称替换为Get-VM列表中的确切名称,然后使用所需的适配器类型进行输入:

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

请注意,如果虚拟机具有多个NIC,则您可能需要在命令中使用其他开关来指定正确的开关。


1
以前没有使用过PowerCLI,可以在Linux VM上运行吗?
沃伦2014年

@warren我认为它仅是Windows,因为PowerCLI本质上是一堆影响vSphere API的PowerShell脚本。将其视为vSphere的命令行替代方案-您可使用它连接到ESXi主机并发出命令。
jlehtinen 2014年

好的-猜猜我还没有完全理解它,因为我以前从未使用过它。它是否在vCenter主机上运行?
沃伦2014年

1
@warren我更新了更多详细信息。
jlehtinen 2014年

当针对具有多个NIC的VM使用此功能时,它会询问您每个NIC,因此只需使用上面的确切命令即可:get-vm 'myserver'|get-networkadapter|set-networkadapter -type vmxnet3
neildeadman 2015年

6

正如您可能正在学习的那样,有多种方法可以更改适配器类型。需要记住的一个注意事项与MAC地址生成有关。

创建虚拟NIC时,有两个与MAC地址相关的选项:

  • 自动:(默认)ESX为您自动生成MAC地址
  • 手动:您(用户)手动输入您选择的MAC地址

如果您使用的是自动生成的MAC,则更改适配器类型会导致重新生成地址。这意味着您在来宾或网络基础结构本身上依赖于MAC地址的任何配置都将失败。因此,如果更改适配器类型,则必须让其自动生成新的 MAC地址或手动设置自己的MAC地址。但是,您不能手动将旧地址设置为接口,因为ESX出于自己的目的保留了该前缀。

警告仅当您自行承担责任时警告

我使用的另一种方法是手动编辑虚拟机的配置文件。此方法要求在ESX主机上启用SSH,并且您愿意绕过使用GUI或API提供的所有数据完整性保护。

在执行任何这些步骤之前,请确保关闭来宾电源并关闭设置窗口。

  1. SSH进入您的主机
  2. 找到您的虚拟机的vmx文件(例如 /vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
  3. 打开文件进行编辑: vi /vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
  4. 查找定义接口类型的行。例如,对于第一个vNICethernet0.virtualDev = "e1000"
  5. 更改e1000vmxnet3
  6. 保存文件并退出。

现在,您将更改虚拟NIC设备类型,而不必更改MAC地址。


1
不确定我是否会担心MAC地址...它应该发挥作用的唯一位置是在特定的DHCP租约上,并且一段时间后会超时
沃伦2014年

1
@warren:这在很大程度上取决于您的基础架构。就我而言,这样做比重新注册来宾要容易得多,这样就可以在网络上允许其MAC。有时交换机端口可能被MAC锁定,有时正在使用预留。有时并不重要,但有时却很重要,一个好的管理员需要知道不同情况在不同情况下如何工作。
Scott Pack

好点子。在这种情况下,这不是问题,但我知道可能是这样的:)
沃伦

1
如果要避免使用ssh,可以从浏览数据存储区下载.vmx,进行编辑并上传。
詹姆斯·瑞安(JamesRyan)

1
毫无争议。互联网建议的第一条规则是倒一碗盐。第二是根据您的环境对其进行分析,以了解实际的含义。在足够高级的环境下,不使用vCLI进行任何主机维护可能都是不好的选择。
Scott Pack

2

对于这个问题,建议使用PowerCLI或脚本解决方案并不是很有效。对于30秒的手动修复,有关周围基础结构的假设太多。

答案是您真的不应该在飞行中更改适配器的类型。可接受的过程是删除现有适配器,然后添加所需类型的新适配器。

连接到VM的现有E1000 NIC 在此处输入图片说明

卸下E1000 NIC 在此处输入图片说明

添加新的网络设备
在此处输入图片说明

指定要在新网络设备中使用的适配器的类型 在此处输入图片说明

在您的操作系统中,重新配置网络设置。


拆除旧网卡和添加新的并不会直接改变类型-尽管它可能被利用。缺点是,至少在Linux上,您需要删除eth0(或eth <n>)的旧配置,因为否则,您只会得到下一个顺序的eth <n>分配
Warren

1

您无法更改类型,但是可以轻松删除不需要的类型并添加所需类型的新vNIC。


那就是我在想的答案。那好吧。知道为什么会这样吗?
沃伦2014年

2
这是GUI的限制。显然,您可以通过PowerCLI进行操作-有关详细信息,请参见@jlehtinen的答案。
约翰

1
@John:您也可以在GUI中进行操作(至少在5.1上)。VM必须关闭电源,并且您必须更改MAC。
Scott Pack

@ScottPack-是在webui还是vCenter客户端中?
沃伦2014年

1
@warren:在5.5中引入了webUI。真是太棒了,因为据我所知,它只能通过vCenter使用,而胖客户端中不再提供许多功能。确实让我们所有人的独立用户都感到冷落。
Scott Pack
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.