I'm reviewing our Azure VM reservations and have several older B_v1 machines that I'd like to move to B_v2 so I can purchase reservations for them. However, resizing fails with an "Unsupported hardware" message, even after redeploying the VMs. The same issue also occurs in Australia East. Is this an expected limitation between these VM generations, and is there a way to resize without rebuilding the machines?
4 Answers
If you can’t use the preview, migration scripts can automate the rebuild: create a replacement VM with the desired size and attach the existing OS and data disks. Also verify whether B-series is actually the most cost-effective choice for your workload, since the savings may be limited outside certain use cases.
There’s currently a preview feature that can enable resizing from B_v1 to B_v2. Register the VMTempDiskResizePreview feature through Azure Feature Exposure and Control, then try the resize again. The documentation is somewhat difficult to find, and the feature is described alongside NVMe-related material, but the temporary-disk resize option is the relevant part.
B_v1 uses a local temporary disk, while B_v2 doesn’t. Because the hardware layouts differ, a direct resize usually isn’t supported. The dependable workaround is to delete the VM while keeping its OS and data disks, then create a new B_v2 VM from the existing disk. Be careful not to delete the disks during the VM deletion.
Reservations are primarily a pricing commitment, not a guarantee that the platform can provide a particular hardware configuration. The resize failure is related to the difference between the local-temp-disk and no-temp-disk VM families, rather than the reservation itself. Recreating the VM on a compatible size is generally required.

That helps explain the error. I’ll preserve the disks and recreate the VMs rather than deleting the storage.