vSphere: Convert RDM to VMDK and vice-versa on Windows VM with no downtime

This method will work for non-OS disks (so not your C drive), and will not require the server or application to go down during the process. You need a version of Windows that supports software RAID, which includes all versions of Windows Server and some Client versions too.

You had a good reason to use an RDM (or maybe you didn’t!) but have now changed your mind, or your needs have changed, or your storage infrastructure has changed (perhaps you’re replacing your old Clariion with a Tintri).

Or, maybe you provisioned a machine with a VMDK disk but now it’s gone live or the system performance needs have ramped up and you need to switch it to some dedicated spindles.

We’re going to be using Windows software RAID 1 to copy the data over, this is a block-level process so will transfer all the data and permissions across. It’s mirroring the entire NTFS filesystem, and it does it online. Clearly you’re going to take a bit of a hit in performance whilst the mirror is synchronising, but we’ll be breaking it again as soon as it’s finished. Your data disk will be converted to and remain as a Dynamic disk if it wasn’t already, but this effectively makes no difference (as long as you don’t want to access it from DOS or Linux).

So here we go, with screenshots (wow!). This is an RDM to VMDK conversion, but it’s the same process to go from VMDK to RDM.

  1. Here’s the current VM config:
    rdm 1
    Hard disk 2 is the data disk, and is the one we’ll be switching to a VMDK.
  2. Here’s the disk config in Windows:
    rdm 2
  3. Make a note of the size of the disk that you’re going to transfer. As with all RAID 1, the disk you’re going to mirror onto must be the same size (or larger) than the existing disk. My disk is 10Gb, so I’m going to add a new 10GB VMDK disk to the VM:
    rdm 1-1
  4. Here’s the new disk in Windows Disk Management:
    rdm 3
  5. First you need to bring the disk online. Right-click the disk (where it says Disk 2, Unknown, 10.00GB, Offline) and choose Online.
  6. Now you need to initialise the disk, right-click again and choose Initialise:
    rdm 4
  7. Now that we have our new disk ready for use, we can add it as a mirror to the original (RDM) disk. Right-click the RDM disk and choose Add Mirror…:
    rdm 5
  8. Select the new unallocated disk:
    rdm 6
    Click Add Mirror.
    If your original disk is currently a Basic disk you’ll be warned that the disk will be converted to a dynamic disk:
    rdm 7
    Click Yes.
  9. The original disk and the new unallocated disk will be converted to dynamic disks:
    rdm 8
    And very shortly afterwards the mirroring process will commence:
    rdm 9
    How long this takes depends on the speed of your disks. In my experience there is very little CPU load generated by this process.
  10. Once the resynching process has completed both disks will show as Healthy:
    rdm 10
  11. Now it’s time to remove the mirror from the original disk. Right-click it and choose Remove Mirror…:
    rdm 11
    The Remove Mirror dialogue box will open, it selects the disk that you right-clicked but just confirm that it’s the right one:
    rdm 12
    Click Remove Mirror, then click Yes.
    rdm 13
  12. Now you’ll be running from the new VMDK disk, the old RDM disk will be showing as unallocated:
    rdm 14
  13. Before removing the disk from the VM I like to right-click it and put it offline:
    rdm 15
  14. Now edit the settings of the VM and remove the RDM disk:
    rdm 16
    Choose the “and delete files from disk” option as this will delete the .rdmp file.
  15. Finally, here is the view from Windows Disk Management showing the VM that’s now only seeing the (new) VMDK disk:
    rdm 17
This entry was posted in Storage, vSphere, Windows and tagged , , , , , , , , , , , , , , , . Bookmark the permalink.

6 Responses to vSphere: Convert RDM to VMDK and vice-versa on Windows VM with no downtime

  1. Is there a reason why you can’t use this method with an OS-disk?

    • rcmtech says:

      Off the top of my head, it should work – but might require a little reconfiguration to get it to boot from the new disk, e.g. see this KB article for Server 2003: http://support.microsoft.com/kb/323432

      • I’ll try it out and see if it works without any problems.
        Thanks to you I’ve already migrated our data-pRDM without downtime of our VM which is really great as a cold migration just took over 4 hours and failed at 95%.

      • Just did a test with an other VM and it worked. After removing the “first” disk you’ll have to delete the default boot record via BCDEDIT and the machine boots without any problems.

  2. theoriginalmrmike says:

    Is there a reason why this method doesn’t work? Not that I’ve tried either way but if vmware can switch it using it’s own native functions…why not?

    http://kb.vmware.com/selfservice/documentLinkInt.do?micrositeID=&popup=true&languageId=&externalID=1006599

    • rcmtech says:

      An RDM in virtual compatibility mode is not equivalent to a VMDK file-based virtual disk. It remains a mapped LUN, rather than a file on a datastore. As such you can’t storage vMotion it, or back it up in the same way as you would a VMDK. Watch out for potential performance issues if you take a snapshot of an RDM in virtual compatibility mode too.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s