This month, I have started a project with a customer involving the upgrade of the current vSphere 5.5 environment to vSphere 6.5 including to migration to the vCenter Server Appliance.
The environment has already been upgraded several times resulting in a configuration that was uh.. lets call it ‘not optimal’.
The vCenter Server has been configured to use SQL Express as its database server. As per VMware support documentation SQL Express is intended for small environments up to 5 hosts and/or 50 virtual machines. This environment was a little bit bigger with 10 hosts and ~150 virtual machines. While this is officially not supported, the environment was running fine with this configuration.
The other issue was the SQL Server version that was being used, SQL Server Express 2005. According to the VMware Product Interoperability Matrices, certain versions of SQL Server 2005 are supported but not SQL Server Express.
The vSphere 6.5 upgrade documentation contains a section which states the system requirements for the source system. This specifies that the source vCenter Server must meet the software and hardware requirement of the current vCenter Server version.
The vSphere 5.5 documentation also contains requirements for the ODBC connection, so I checked the current ODBC connection and it uses the SQL Native Client Driver. This driver is not supported for the ODBC connection.
As we did not want to make any configuration changes on the vCenter Server , I wanted to test if it is possible to perform the migration with technically a not supported configuration.
One if the first steps of the migration is the start the migration assistant on the source system, in this case the vCenter Server. After starting the migration assistant and providing the correct credentials, the prechecks reported an error with the ODBC connection.
The migration assistant checks the configuration of the ODBC connection and if the configuration is not supported it will report an error and stops the migration.
The solution to this problem is to change the ODBC connection to use a supported driver. But it is not possible to change the driver of an existing ODBC connection. They only option is to create a new ODBC connection and reconfigure vCenter Server to use this.
Luckily, VMware has provided a KB article on how to migrate from SQL Express to a full SQL Server which contains the procedure to create a new ODBC connection and reconfigure vCenter Server.
- Stop the VirtualCenter Server service
- Create a new ODBC connection
- Update the ODBC connection on vCenter Server
- Start the VirtualCenter Server service
To keep the configuration simple and to keep changes to a minimum, I reused the ODBC connection name and only changed the driver in the registry configuration.
After starting the services and checking the vpxd log of the vCenter Server to verify if the database can be reached, the vCenter Server was up and running again using the new ODBC connection.
This time the migration assistant completed the prechecks successfully and the migration to the vCenter Server Appliance could be started and completed successfully.