We had a vCenter 5.0(Windows 2008 R2) that need to upgraded to 6.0, hosts included. This was a small vCenter and since there was no point of creating a new vCenter 6.0 from scratch, we decided to upgrade directly from v5.0 to v6.0.
Since we had a SQL Express in this vCenter, the upgrade will also migrate our vCenter SQL DB to vPostgreSQL(this is the new integrated vCenter DB used in vCenter 6.0).
First we should always do a Backup of our vCenter(in our case a full backup of the VM with Veeam Backup). If you don't have a Backup Infrastructure, you should at least do a snapshot of the VM before starting any upgrade.
In vCenter 6.0 there is two installation(and also in upgrading) options:
- Embedded Deployment Model: (all services in the same VM and a integrated DB. In this case vPostgreSQL)
- vCenter Server with an embedded Platform Services Controller
- External Deployment Model:(vCenter in one VM and vCenter Services in a second VM. Like SSO, Inventory Services, DB etc.)
- External Platform Services Controller
- vCenter Server with external Platform Services controller
Since this is small vCenter we also decided to install everything in the same VM. Like we had before the upgrade.
Note: In a normal vCenter, we always go for the External Deployment Model. Where we put vCenter in one VM, vCenter Services in another VM, and also the DB in a different VM(can be a SQL with several vCenter DB, or just with one. We have both cases).
Before you start your upgrade you should check the requirements for vCenter 6.0. You environment can have the requirements for vCenter 5.0, but nor for 6.0. Check HERE the requirements.
Start to run the autorun.exe in your VM.
- Choose first option "vCenter Server for Windows" to start the upgrade process.
- As we can check in the next image, we have two options to install/upgrade our vCenter. In our case, as I stated in the beginning of this article, we will use the "Embedded Deployment".
- Just click "Next"
- In the next image we need to provide Admin credentials for you current vCenter 5.0. Since this installation/upgrade will do change in the SQL DB. This administrator should have also admin(sysadmin) permissions in the existence vCenter DB(SQL)
- In the next image upgrade process shows an error when tried to connect to the DB.
Troubleshooting the issue, we notice that ODBC DSN to connect to vCenter 5.0 DB was using a SQL Native Client driver(older than 10). vCenter 5.1, 5.5 and 6.0, needs at least SQL Native Client 10 version..
So we need to remove this old ODBC DSN driver and create a new ODBC DSN(with the proper driver) connection to vCenter 5.0 DB. Only after the changes we can continue with the upgrade process. We download from HERE the SQL Native Client 11 and use this version.
If we create a new ODBC DSN with the same name, same user/password, no need to change anything. Just remove the old one and create a new one and test the connection to the vCenter DB. After connection success we are good to go and continue the upgrade process.
But unfortunately in our case this was a old implementation and we don't have the user/password that was used before. So we need to create a new one with a new user and pass(now we have a user for any VMware Windows Service needed e and will use that one).
NOTE: Before do any change in the ODBC DSN and regedit stop vCenter Windows service.
When using different name and/or new user on the ODBC the Windows register still have the old one(and also the settings in the vCenter), so vCenter services(and DB connection) will not run until you fix this issue.
Note: If you don;t how, check HERE how to create a ODBC DSN.
After we create a new ODBC(don't forget that for vCenter is ODBC x64 bit, for Update Manager ODBC is a x32 bit) we need to edit regedit and change the settings.
Note: To see these keys in a 32-bit version of the Registry Editor in a 64-bit operating system, click Start > Run, type %systemroot%\syswow64\regedit, and click OK.
Go to “HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware VirtualCenter\DB”(in our case, different vCenter versions should have different location).
You should see the values for the old ODBC DNS in regedit
1. "ODBC name" (need to change)
2. "user" (need to change)
3. "password" (no need to change - this will change automatically in the next task)
4. "SQL Native driver name" (no need to change)
Now change entry 1 and 2(in our case. You can have the same ODBC DSN name, and change only the 2 that is the user) using right click and choose "Modify"
After the changes, close the regedit.
This is an example:
After all this changes, we just need a last step. We need to change the vCenter settings so that uses the new password for the new user(value nr 3 in the regedit).
To change the password we need to run the vpxd tool. This tool is located in C:\Program Files\VMware\Infrastructure\VirtualCenter Server\(if you choose a different location in the vCenter instaltion, please use the location of your vCenter installation).
You need to open a a command prompt(but elevated to administrator), change the folder to the location of the tool and run "vpxd.exe -p" (if the command prompt was not open with the option "run as administrator", the tool will not work)
The tool will ask you to change the password for the DB, you should give the user password that you used(or will use) in the ODBC DSN.
Start your vCenter Windows Service again and test the vCenter.
Note: HERE you can have more information about how to change ODBC DSN, regedit and changing vCenter DB settings.
After this changes, we can continue with our upgrade process.
If you cancel your upgrade, you can started again, in our case, I left running and did the changes.
And retry to connect to the DB using the user.
After the changes, the upgrade process did connect to the DB and the upgrade process continues.
- Next you can the information that your SQL Express(in our case), will me migrated to vPostgres DB(since this is the integrated DB used in 6.x)
- Next you have the information about the certificates(if you use the defaults certificates, no problems here, if you use your own, you should backup them, and then re-use)
- Next we need to create a password for our administrator(in the vCenter domain vsphere.local). This is a very important administrator user password in the SSO, so please remember the password created. Leave the rest of the values in the default.
Note: "Join a vCenter Single Sign-On domain", is only if you have already a another vCenter instance(in this case a SSO) that you want to connect and add this vCenter. Not in this case.
- Next we have the vCenter ports. Since we don't need to change anything, we will leave all the default values.
- Next image, just double check all informations and if everything is ok, click "Next"
- Next image is the location of our installation, no changes here, so "Next" and start the upgrade process.
- Next image, vCenter Upgrade is running. This is a process that maybe take a while. In our case was 45 minutes.
- After the upgrade is finish and you can click "Finish"
After the vCenter upgrade, you should also install/upgrade your vSphere Client Tool to 6.0(not mandatory in the vCenter itself).
Since we had in this vCenter also VMware Update Manager, we did also ugpraded. But this I will explain in a new article.
Hope this can help you upgrading your vCenter 5.0 directly yo 6.0.