Things to know about upgrading vCSA 6.0 to vCSA 6.5

Here is a list of things that you might want to do before you upgrade your vCenter from vCSA 6.0 to vCSA 6.5.

Postgres table owner

First check you postgres database. For some reason the table owner is often wrong. Thanks to black88mx6 There is a way to check this, and also to fix it. Remember that anything you see here is executed at your own risk. An important step to perform before upgrading is taking a backup/snapshot of your vCenter VM, and any related components, so that you will be able to recover from a failed upgrade. Continue reading Things to know about upgrading vCSA 6.0 to vCSA 6.5

vCenter Recent Tasks Descriptions and Names are broken after VCSA Upgrade

After upgrading VCSA from version 6.5 to 6.5 Update 1 you might experience a problem with Task Names and object Descriptions. Names are not “resolved” to its human understandable name, but instead they are written as a API object name.

For instance a host profile compliance check would normally be “Compliance check” but is instead written as “profile.ComplianceManager.check.label” or a VMotion is written as “Drm.ExecuteVMotionLRO.label”

Continue reading vCenter Recent Tasks Descriptions and Names are broken after VCSA Upgrade

VMware Auto Deploy stopped working with Parse Error

I ran into a problem with VMware vSphere 6.5 Auto Deploy suddenly stopped working.

When trying to change rules with New-DeployRule or Repair-DeployImageCache I got the following error:

Repair-DeployImageCache
System.Runtime.Serialization.SerializationException: Parse Error, no assembly associated with Xml key ImagefactoryPkgImageProfile
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessGetType(String value, String xmlKey, String& assemblyString)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessType(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessAttributes(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXml()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.Run()
at System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler handler, ISerParser serParser)
at System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream serializationStream, HeaderHandler handler)
at VMware.DeployAutomation.Types.PxeProfile.get_ImageProfile()
System.Runtime.Serialization.SerializationException: Parse Error, no assembly associated with Xml key ImagefactoryPkgImageProfile
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessGetType(String value, String xmlKey, String& assemblyString)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessType(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessAttributes(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXml()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.Run()
at System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler handler, ISerParser serParser)
at System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream serializationStream, HeaderHandler handler)
at VMware.DeployAutomation.Types.PxeProfile.get_ImageProfile()
System.Runtime.Serialization.SerializationException: Parse Error, no assembly associated with Xml key ImagefactoryPkgImageProfile
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessGetType(String value, String xmlKey, String& assemblyString)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessType(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessAttributes(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXml()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.Run()
at System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler handler, ISerParser serParser)
at System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream serializationStream, HeaderHandler handler)
at VMware.DeployAutomation.Types.PxeProfile.get_ImageProfile()
System.Runtime.Serialization.SerializationException: Parse Error, no assembly associated with Xml key ImagefactoryPkgImageProfile
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessGetType(String value, String xmlKey, String& assemblyString)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessType(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessAttributes(ParseRecord pr, ParseRecord objectPr)
at System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXml()
at System.Runtime.Serialization.Formatters.Soap.SoapParser.Run()
at System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler handler, ISerParser serParser)
at System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream serializationStream, HeaderHandler handler)
at VMware.DeployAutomation.Types.PxeProfile.get_ImageProfile()

Continue reading VMware Auto Deploy stopped working with Parse Error

Migrate folder structure from old to new vSphere vCenter

Sometimes I find it easier to create a new vCenter server then migrate the old one, and it is a perfectly good solution in many cases.

But annoyingly there is a lot of manual work involved.

One problem is the VM’s and Templates folders. They do not follow the host, so you have to create the folder structure manually and move each VM into the correct folder. Well I am way to lazy to do that by hand, so it’s time to Automate! Continue reading Migrate folder structure from old to new vSphere vCenter

VMware vCenter VCSA 6.5 Upgrade “Error: queryAaaa ENODATA”

During an upgrade I got the following error: “A problem occurred  while getting data from the source vCenter Server”

And the install log has the following information. Continue reading VMware vCenter VCSA 6.5 Upgrade “Error: queryAaaa ENODATA”

Assigning vCenter tags using vRealize Orchestrator

Today I needed to assign some vCenter tags to some VMs I was deploying using vRealize Automation.

The scenario was that the customer did not want backup of VMs deployed by the vRA test environment, and in production they wanted a specific backup tier.

They are using Veeam backup, so the vRA test environment needed to have a NoBackup Tag, and production needed some other tag, depending on the type of server being deployed.

vRO does not provide very extensive support for these operations out of the box, but vRO 7.2 does come with some sample workflows.

To get started with vCenter tagging you need to configure a vAPI endpoint and a vAPI metamodel.

Continue reading Assigning vCenter tags using vRealize Orchestrator

Cross SSO and vCenter VMotion using PowerCLI

http://cloudmaniac.net/using-powercli-to-vmotion-vm-between-different-sso-domains-vcenters/

Roman Decker wrote an article about how to move virtual machine between vCenters that are not part of the same SSO domain, using PowerCLI.

I felt like it needed some adjustments to be more dynamic and interactive, so many of the hard coded bits I decided to make the script ask for at runtime.

Continue reading Cross SSO and vCenter VMotion using PowerCLI

Should you enable Network health check for your Distributed Virtual Switches

Network health check is a very useful feature that was introduced with vSphere 5.1 vDS.

What does it do?

The purpose is to test if the VLANs, MTU and Load Balancing settings you defined are actually working. The old way of doing this would be to disconnect all port except one, by either doing a shutdown on the switch port, or pulling out the cable, and then testing, with a VM, if every VLAN still works. This can be a very lengthy process if you have many adapters, but also a necessary step if you want a stable environment.

If you want to know more about how it check the different settings, Joseph Griffiths did a good article on this you can read here: http://blog.jgriffiths.org/?p=877

So why would you ever disable this feature?

Well the health check feature generates a lot of mac table entries as explained in VMware KB 2034795.

An example given is that you have 35 Hosts with 2 Network Adapters each, and 60 VLANs. This will generate (35 * 2 * 60) 4200 mac table entries in your physical switches. And as you can see, this quickly increases. Some switches only has room for 32.000 records or less. Continue reading Should you enable Network health check for your Distributed Virtual Switches