尝试向 DVS 添加 ESXi 5.x 和 6.0 主机时,主机缺失或列表为空
search cancel

尝试向 DVS 添加 ESXi 5.x 和 6.0 主机时,主机缺失或列表为空

book

Article ID: 343993

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为When attempting to add an ESXi 5.x and 6.0 host to a DVS, the host is missing or the list is empty (2039046)的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

  • 当您尝试向 VMware vSphere Distributed Switch (VDS) 或 Nexus 1000 分布式交换机添加 ESXi 5.0、5.1 和 6.0 主机时,“添加主机”屏幕为空。
  • 会显示类似于以下内容的屏幕:


  • 向新建的 VDS 添加主机时,主机可能会显示在列表中,但向旧 VDS 添加时则不显示。
  • 如果 VMware vCenter Server 是从较早的版本升级的,就会发生这种情况。


Environment

VMware vSphere ESXi 5.0
VMware vCenter Server 5.0.x
VMware vSphere ESXi 6.0
VMware vCenter Server 6.0.x
VMware vCenter Server 5.1.x
VMware vSphere ESXi 5.1

Cause

出现该问题的原因是VPX_DVS_COMPATIBLE表中有几行缺失。

Resolution

该问题在 vCenter Server 5.1 Update 1 和 vCenter Server 5.5(可从 VMware Downloads 获取)中已解决。
注意:从 vCenter Server 4.0、4.1 和 5.0 升级到 vCenter Server 5.1 Update 1 时,vCenter Server 5.1 Update 1 中的修复可以解决该问题。如果您已经从 vCenter Server 4.0、4.1 或 5.0 升级到 vCenter Server 5.1 GA 或 5.1 修补程序,然后再升级到 vCenter Server 5.1 Update 1,那么此修复将不会解决该问题。在这种情况下,请使用下面的解决办法:

要想在已经升级到早于 Update 1 的 vCenter Server 5.1 内部版本的情况下临时解决该问题,请执行以下操作:

注意
  • 此操作步骤包括 SQL Server 的语法。如果您使用的是 Oracle,请相应地修改 PL/SQL 语法。
  • 请确保用于连接 vCenter Server 数据库的用户帐户具有管理员权限。
  • 从 vCenter Server 4.0、4.1 或 5.0 升级到 vCenter Server 5.1 时,将 ESXi 5.1 主机添加到现有的 vSphere Distributed Switch (vDS) 版本 4.0、4.1 和 5.0 可能会失败。然而,如果升级到 vCenter Server 5.1 后创建新的 4.0、4.1、5.0 或 5.1 vDS 交换机,则能够添加 ESXi 5.1 主机。
  1. 运行以下 SQL 语句以确定数据库的内容:

    SELECT * FROM VPX_DVS_COMPATIBLE WHERE ID IN
    (SELECT ID FROM VPX_ENTITY WHERE NAME = 'dvSwitch');


    其中dvSwitch是分布式虚拟交换机 (DVS) 的名称。请根据您的环境进行更改。如果您有多个 DVS,则必须为每个交换机运行这些脚本。

    您会看到,指示 DVS 兼容性的输出包括 ESXi/ESX 4.0 和 4.1,但不包括 ESXi 5.0 或 5.1。

    例如:


  2. 运行以下查询以添加缺失的行:

    USE VIM_VCDB; /* name of vCenter Server database, change according to your environment */
    GO
    DECLARE @dvs_name varchar(32);
    DECLARE @dvs_id int;
    SET @dvs_name = 'dvSwitch'; /* case sensitive DVS name, change according to your environment */
    SET @dvs_id = (SELECT ID FROM VPX_ENTITY WHERE NAME = @dvs_name);
    INSERT INTO VPX_DVS_COMPATIBLE VALUES
    (@dvs_id,'esx','5.0+'),
    (@dvs_id,'embeddedEsx','5.0+'),
    (@dvs_id,'esx','5.1+'),
    (@dvs_id,'embeddedEsx','5.1+');


    注意:当您有多个分布式虚拟交换机时,请考虑运行以下查询:

    USE VIM_VCDB; /* name of VC database,change according to your environment */
    GO
    DECLARE @dvs_id int;
    SET @dvs_id =DVS_ID; /* Ensure that you change the DVS_ID to the ID value found in table VPX_DVS */
    INSERT INTO VPX_DVS_COMPATIBLE VALUES
    (@dvs_id,'esx','5.0+'),
    (@dvs_id,'embeddedEsx','5.0+'),
    (@dvs_id,'esx','5.1+'),
    (@dvs_id,'embeddedEsx','5.1+');


    此查询将更新指定的 DVS。无法针对多个分布式虚拟交换机执行原始脚本。

    对于 ESXi 6.0,请运行下列查询:

    USE GB_vCenter; /* name of vCenter Server database, change according to your environment */
    GO
    DECLARE @dvs_name varchar(32);
    DECLARE @dvs_id int;
    SET @dvs_name = 'dvSwitch'; /* case sensitive DVS name, change according to your environment */
    SET @dvs_id = 128;
    INSERT INTO VPX_DVS_COMPATIBLE VALUES
    (@dvs_id,'esx','6.0+'),
    (@dvs_id,'embeddedEsx','6.0+');
  3. 重新运行步骤 1 中的查询,确认相关行已添加。

    您会看到类似以下内容的输出:


  4. 重新启动 VMware vCenter Server 服务,然后将该主机添加到 DVS 中。


Additional Information

When attempting to add an ESXi 5.x and 6.0 host to a DVS, the host is missing or the list is empty