ESX 打开电源错误:无法设置 VMkernel 网关,因为同一网络中没有 VMkernel 接口
search cancel

ESX 打开电源错误:无法设置 VMkernel 网关,因为同一网络中没有 VMkernel 接口

book

Article ID: 324966

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

当 ESX 主机打开电源时,启动过程中显示以下错误消息:

Unable to set VMkernel gateway as there are no VMkernel interfaces on the same network


Symptoms:

免责声明:本文为 ESX/ESXi power on error: Unable to set VMkernel gateway as there are no VMkernel interfaces on the same network (1002662) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


Environment

VMware ESXi 4.1.x Installable
VMware vCenter Server 4.0.x
VMware ESXi 4.0.x Embedded
VMware ESXi 4.0.x Installable
VMware ESX 4.1.x
VMware ESXi 3.5.x Embedded
VMware vSphere ESXi 5.0
VMware vCenter Server 5.0.x
VMware ESXi 4.1.x Embedded
VMware ESXi 3.5.x Installable
VMware ESX 4.0.x
VMware ESX Server 3.5.x
VMware VirtualCenter 2.5.x
VMware vCenter Server 4.1.x

Resolution

VMkernel 接口由 ESX 主机的内部 TCP/IP 堆栈使用,用于以下三个目的:

  • 促进 ESX 主机间的 vMotion
  • 连接到 iSCSI 存储阵列 (IP SAN)
  • 连接到 NFS 存储服务器 (NAS)

与传统的 TCP/IP 堆栈相似,VMkernel TCP/IP 堆栈能够将 IP 数据报路由到远程子网。尽管 VMware 不建议路由 vMotion 通信,但 iSCSI 和 NFS 通信均可通过网关路由,到达不同子网中的存储服务器。

此路由网关称为 VMkernel 网关,它是路由器或 VMkernel 接口本身所在子网的第 3 层交换机的 IP 地址。此路由器(或 L3 交换机)随后负责沿着目标子网的方向转发 VMkernel 的 IP 数据报。

如果指定 VMkernel 网关时使用的 IP 地址不存在于任何已定义的 VMkernel 接口的子网中,则系统启动时将显示 Unable to set VMkernel gateway 错误消息。例如,考虑以下输出:

[root@ESX1 root]# esxcfg-vmknic -l
Port Group IP Address Netmask Broadcast MAC Address MTU Enabled
iSCSI_SAN 192.168.1.100 255.255.255.0 192.168.1.255 xx:xx:xx:xx:xx:xx 1514 true
VMotion 192.168.2.100 255.255.255.0 192.168.2.255 xx:xx:xx:xx:xx:xy 1514 true

esxcfg-vmknic -l 命令可提供 ESX 主机上定义的所有 VMkernel 接口的列表。在上例中,有两个 VMkernel 接口:

  • 网络 192.168.1.0/24 上的 iSCSI_SAN
  • 网络 192.168.2.0/24 上的 vMotion

但是,如果我们对已分配给 VMkernel 网关地址的 IP 地址进行验证,则会发现一个问题:

[root@ESX1 root]# esxcfg-route -l

VM Kernel Routes:
Network Netmask Gateway
192.168.1.0 255.255.255.0 Local Subnet
192.168.2.0 255.255.255.0 Local Subnet
default 0.0.0.0 192.168.0.254

esxcfg-route -l 命令提供 VMkernel TCP/IP 堆栈内的所有路由表条目的列表。在上例中,default 条目(对应于 VMkernel 网关地址)显示网关地址 192.168.0.254。由于 192.168.0.254 存在于网络 192.168.0.0/24 中,而在此网络中未定义 VMkernel 接口,ESX 主机将其视为配置错误,并在启动时生成 Unable to set VMkernel gateway as there are not VMkernel interfaces on the same network 错误。

如果各个 VMkernel 接口都不需要路由,则可以放心忽略此错误消息。但是,如果需要使用 VMkernel 网关来到达远程 iSCSI 或 NFS 存储服务器,则必须配置该网关,且该网关必须有效。

VMkernel 网关的配置很简单,如下所示:

  1. 使用 VMware Infrastructure (VI) Client 连接到要修改的 ESX 主机。或者,可以连接到管理此 ESX 主机的 VirtualCenter 服务器。
  2. 在清单中选择 ESX 主机,然后单击配置选项卡。
  3. 在“硬件”列表下,选择网络
  4. 找出包含要修改的 VMkernel 接口的 vSwitch,然后单击属性
  5. 在“vSwitch 属性”窗口中,选择适当的 VMkernel 接口,然后单击编辑
  6. 在 VMkernel 接口的“属性”窗口中,单击“VMkernel 默认网关”旁边的编辑
  7. 在“DNS 和路由配置”窗口中,指定正确的默认网关地址。
  8. 单击确定提交 VMkernel 默认网关。
  9. 单击确定提交 VMkernel 接口更改。
  10. 单击关闭关闭“vSwitch 属性”窗口。

    至此便正确设置了 VMkernel 默认网关,启动过程中不会再显示错误消息。如果您无法重命名 VMkernel 端口,请参见升级到 ESX 3.5 后,无法重命名或删除 VMkernel 端口组 (1003933) (Unable to rename or delete a VMkernel Portgroup after upgrading to ESX 3.5 (1003933))

要使用命令行配置 VMkernel 网关,请执行以下操作:

  1. 要查看 VMkernel 的默认网关,请运行以下命令:

    # esxcfg-route

  2. 要设置 VMkernel 的默认网关,请运行以下命令:

    # esxcfg-route <IP address>

  3. 要在 VMkernel 中添加路由,请运行以下命令:

    esxcfg-route -a [<network> <gateway>] | <default gateway>

例如:

  • 要在网络 192.168.100.0 到 192.168.0.1 中添加路由,请运行以下命令:

    esxcfg-route -a 192.168.100.0/24 192.168.0.1



    esxcfg-route -a 192.168.100.0 255.255.255.0 192.168.0.1

  • 要将 VMkernel 默认网关设置为 192.168.0.1,请运行以下命令:
esxcfg-route 192.168.0.1



esxcfg-route -a default 192.168.0.1


注意:可以为 VMkernel 适配器指定其他 IP 和子网,但只能有一个默认网关。

有关详细信息,请参见用来获得紧急支持的技术支持模式 (1003677) (Tech Support Mode for Emergency Support (1003677))


Additional Information

ESX/ESXi power on error: Unable to set VMkernel gateway as there are no VMkernel interfaces on the same network