构建虚拟机时,您可以选择 vNIC 的虚拟设备类型(E1000、VMXNET3 等)。
后虚拟机创建完成后,您可以更改给定连接上使用的 vNIC 类型吗(例如从 E1000 更改为 VMXNET3)?
如果是,怎么办?
答案1
是的,您可以更改类型。
使用Set-NetworkAdapter
powercli cmdlet。“Type”开关允许您修改适配器。请注意,必须关闭虚拟机才能执行此操作。
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,您可能需要在命令中使用另一个开关来指定正确的 NIC。
答案2
您可能已经了解到,有多种方法可以更改适配器类型。需要记住的一点是与 MAC 地址生成有关。
创建虚拟 NIC 时,有两个与 MAC 地址相关的选项:
- 自动的:(默认)ESX 会为您自动生成 MAC 地址
- 手动的:您(用户)手动输入您选择的 MAC 地址
如果您使用自动生成的 MAC 地址,则更改适配器类型会导致重新生成地址。这意味着您在客户机或网络基础设施本身上依赖 MAC 地址的任何配置都将失败。因此,如果您更改适配器类型,则必须让其自动生成新的MAC 地址或手动设置您自己的地址。但是,您不能手动将旧地址设置为接口,因为 ESX 会将此前缀保留用于自己的目的。
警告警告如果失败只能怪你自己
我使用过的另一种方法是手动编辑虚拟机的配置文件。此方法要求在 ESX 主机上启用 SSH,并且您愿意绕过使用 GUI 或 API 提供的所有数据完整性保护。
在执行任何这些步骤之前,请确保客户端已关闭并且设置窗口已关闭。
- 通过 SSH 进入你的主机
- 找到您的虚拟机的 vmx 文件(例如
/vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
- 打开文件进行编辑:
vi /vmfs/volumes/datastore1/testvm.priv/testvm.priv.vmx
- 找到定义接口类型的行。例如,对于第一个 vNIC
ethernet0.virtualDev = "e1000"
- 改成
e1000
vmxnet3
- 保存文件并退出。
现在,您将更改虚拟 NIC 设备类型,而无需更改 MAC 地址。
答案3
我认为建议使用 PowerCLI 或脚本解决方案来解决这个问题是没有意义的...对于 30 秒的手动修复来说,对周围基础设施的假设太多了。
答案是,你真的不应该改变类型适配器的飞行状态。更常见的过程是移除现有适配器并添加所需类型的新适配器。
连接到虚拟机的现有 E1000 NIC
移除 E1000 网卡
添加新的网络设备
指定新网络设备中要使用的适配器类型
在您的操作系统中,重新配置网络设置。
答案4
你不能改变类型,但您可以轻松删除不需要的类型并添加所需类型的新 vNIC。