I am in the middle of a storage migration and hit a snag while trying to storage vMotion a VM from a VMFS datastore onto a VVOLs. When I started the storage vMotion, it would quickly error out. As a troubleshooting method, I decided to migrate only the VMX and base OS disk files, leaving the large data disk file on its original datastore. Those worked. But every time I tried to move its data disk, it failed with a generic error in the UI
<code>A fatal internal error occurred. See the virtual machine’s log for more details.</code>
Investigating the virtual machine’s logs, I see entries for the storage vMotion attempting to begin, but then it logs these errors:
<code>OBJLIB-VVOLOBJ : VVolObjCheckSize: Requested size (######) is not an MB multiple.</code>
<code>VVolObjDetermineSizeInMB: Requested size (#####) is not a MB multiple.</code>
<code>Mirror: scsi0:1: SVMotionLocalDiskCreate: Failed to create destination disk: The requested size is not a multiple of 1MB. </code>
Solution
After seeing those 3 errors, I decided to look at the VM’s disk configuration. Within the Edit Settings window, the data file showed size of 1,740.7999992370605 MB. That decimal and odd sizing is what was causing my migration to fail.
I increased the disk size to an even MB size, saved the VM configuration and then retried the storage vMotion. This time, it moved the disk without any issue. Apparently with VVOLs, the disk sizing must be full 1MB sizes – so any oddly sized disks will fail to move.
A quick piece of PowerCLI can help you identify these odd shaped disks in your environment:
[code]Get-Datastore | Get-HardDisk | Select Parent, Filename, @{N="Remainder";E={$_.CapacityKB % 1024}} | Where {$_.Remainder -ne 0}[/code]
This post over at Nimble’s community site describes the same issue: https://connect.nimblestorage.com/thread/14391