This issue is resolved in vCenter Server 5.1 Update 1 and vCenter Server 5.5, available at
VMware Downloads.
Note: The fix in vCenter Server 5.1 Update 1 resolves the issue when you upgrade from vCenter Server 4.0, 4.1, and 5.0 to vCenter Server 5.1 Update 1. This fix does not resolve the issue if you have already upgraded from vCenter Server 4.0, 4.1, or 5.0 to vCenter Server 5.1 GA or 5.1 patches and then upgraded to vCenter Server 5.1 Update 1. In this situation, use this workaround:
To work around this issue if you have already upgraded to a vCenter Server 5.1 build prior to Update 1:
Notes:
- This procedure includes syntax for SQL Server. If you are using Oracle, modify the PL/SQL syntax accordingly.
- Ensure that the user account that is used to connect to the vCenter Server database has administrative privileges.
- When you upgrade from vCenter Server 4.0, 4.1, or 5.0 to vCenter Server 5.1, adding ESXi 5.1 hosts to existing versions 4.0, 4.1, and 5.0, vSphere Distributed Switch (vDS) might fail. However, if you create a new version 4.0, 4.1, 5.0, or 5.1 vDS switch after upgrading to vCenter Server 5.1, you will be able to add ESXi 5.1 hosts.
- Run this SQL statement to determine the contents of the database:
SELECT * FROM VPX_DVS_COMPATIBLE WHERE ID IN
(SELECT ID FROM VPX_ENTITY WHERE NAME = 'dvSwitch');
Where dvSwitch
is the Distributed Virtual Switch (DVS) name. Change according to your environment. If you have more than one DVS, you must run the scripts for each switch.
You see output which indicates that the DVS compatibility includes ESXi/ESX 4.0 and 4.1, but not ESXi 5.0 or 5.1.
For example:
- Run this query to add the missing rows:
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+');
Note: When you have multiple Distributed Virtual Switches, consider running this query:
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+');
This query updates the specified DVS. The original script is not able to execute against multiple Distributed Virtual Switches.
For ESXi 6.0, run the following query:
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+');
- Re-run the query in step 1 and confirm that the rows are added.
You see output similar to:
- Restart the VMware vCenter Server service and add the host to the DVS.