I recently had to deal with misaligned VMDK files for older legacy VMs on a NetApp. How old ? Well the VMs in question were running Windows server 2003, but anything prior to Vista will most likely be misaligned unless you took steps when you created the VM. This article explains the misalignment issue better than I could, but in a nutshell, the misaligned blocks mean increased read and write operations owing to incorrect boundaries.
As the backend was a NetApp, it was decided that we would use the temporary fix of creating an optimised datastore, and to migrate all affected VMs onto it (the optimised datastore is itself offset by a certain amount). The theory goes that two wrongs can make a right, and that by offsetting the offset, the additional read/write requests can be negated. You can read more about that here.
I followed the NetApp Virtual Storage Console plugin (VSC) wizzard, selected my first VM, and completed the process. The wizard took my responses and created a offset optimised datastore, and then moved the VM onto it. Job done…….or so I thought.
I proceeded to migrated additional VMs, and all was going swimmingly until I reached one that would not migrate. The wizard gave the following unhelpful response.
I was a little puzzled as to why this VM would not migrate with the rest. I bypassed it and carried on, until I met another VM that would not migrate, with the same error msg. After a bit of comparison an head scratching, I spotted the difference. Hovering over various VMDK files I then spotted, the popup data indicated the VMDK files themselves had different offsets ! You can see these below.
The first VM that failed with an offset of 5 was a P2V of an older Dell server, and the original server most likely had a recovery partition that meant that the offset of the actual boot partition was non standard.
The second VM that failed with an offset of 6 was an old Linux VM, which most likely had an old LILO partition with it’s own partition offset value.
All of the VMs that successfully migrated were plain Windows 2003 with an offset of 7.
You should note that when you run the console wizard to create the functionally aligned datastore, it creates with an offset to correct the vmdk of that vm. The datastore created will only then be able to have vms of the same offset onto it.