VMDK versus RDM: Which One Do I Need for SQL Server?

By: Thomas LaRock


When it comes to disk configuration options for virtualized servers running on VMware you have two options: VMFS virtual file-based disk (VMDK) or a raw device mapping (RDM). Which one do you need?

VMware has published reports that suggest that, with vSphere 5.1, there is little difference in performance between the two options. If performance is not a factor, then what other differences exist between the two such that you may choose one versus the other?

First, let’s look at the nature of each option:

  • VMDK—This is a file that appears as a hard drive to the guest operating system. Essentially, it is a virtual hard drive.
  • RDM—This is also known as a pass-thru disk, and is a mapping file that acts as a proxy for a physical device such as a LUN.

Both options offer many of the same features such as file locking, permissions, persistent naming and the ability to leverage vMotion.

The default recommendation for VMware 5.1 is to use VMDK for most virtual guests, including database servers. In fact, you should only use RDM for one of the following reasons:

  • If you need files larger than 2TB in size, as VMDK files are limited to 2TB in size.
  • Use of SAN snapshots based upon hardware Volume Shadow Copy Service (VSS). [Some storage providers are starting to allow for the use of VMDKs here, so check with your vendor.]
  • Requirement to use clustered data and quorum disks (applies for both virtual-to-virtual clusters as well as physical-to-virtual).

While earlier versions of VMware offered differences in performance between VMDK and RDM, today the decision between the two options should be one of business requirements and architecture.

 

Comments

  1. IMO, don’t use either. Present LUNs directly to the guest for SQL storage and let the storage system balance the IOPS. With RDM and VMDK, to the storage system the IO appears to come from the ESX host and the storage system cant distribute IOPS evenly among the VMs. Especially when you’ve got many ESX hosts and many VMs.

    • VMWare allows for RDM or VMDK on VMFS, you have to be using one of those. You’ve described an RDM, but you are saying it is something else, could you reference what you are doing by posting a link? I’d like to know about the additional options available, thanks!

      • I think you are talking about the C: drive. I never put SQL databases on the same drive as Windows or the SQL executable. We use C: for the OS, D:for installing SQL, but all database files go on other drives that are mapped to LUNs presented directly to the guest. We have far less IO issues since we started doing that.

        • No, I’m talking about the files used by a vSphere when creating a VM. We are talking about two different things. It sounds like you are using raw device mappings (RDM) for your data and log files. Thanks for the comment.

          • Chuck, are you referring to using in-guest iSCSI to connect to an iSCSI LUN? If not, how are you presenting storage through a host without using either a VMDK or RDM?

          • Maybe he uses passthrough of the harddisk *controller*, which would make the physical hdd’s attached to that controller available to the guest without using vmdk’s or rdm’s?

Trackbacks

Leave a Reply