Offload Cloning from RHEV and oVirt to NetApp

In the previous posts I showed how valuable the ability to offload cloning from the KVM hypervisor to the backend storage could be. Specifically, I was using NetApp FlexClone to create new VM’s for use on a RHEL 6 (KVM) hypervisor. The VM creation time was literally cut from minutes to seconds.

So, what about RHEV?

(Wasn’t that a song by “Heart” in the mid-80’s?)

The truth is that FlexClone and RHEV are hardly BFF’s at this point. That’s one of the things that makes the following demo cool. That and the fact that we create a fully functioning VM in 11 seconds. But I’m getting ahead of myself. The easiest way to explain the disconnect between 2 technologies (that by all accounts should be soul mates) is this: in the case of RHEL+KVM, all we needed to do post-clone was to use the `virsh define new_vm.xml` command in order to make “libvirt” aware of the new virtual machine. In the context of RHEV, we can still clone the VM’s at will, we just don’t have any way to make RHEV aware of the newly created VM’s.

Enter “oVirt”. For the unitiated, oVirt is short for “Open Virtualization”, and is the upstream project for Red Hat Enterprise Virtualization (RHEV) and the KVM ecosystem. Think of it this way: Fedora Linux is free (as in beer), free (as in open source), and where Red Hat does all of their RHEL development. oVirt has the same relationship with RHEV. The difference is that the oVirt board has representation from not only Red Hat employees, but also IBM, Cisco, NetApp (me), and others. (go visit for more information and to download oVirt.)

The point of oVirt is to create a virtualization platform based on open source, collaboration, open standards, and integration. That’s the 3rd thing that makes the demo below so darn cool; 2 developers that I work with (Dustin & Ricky) hacked VDSM (the part of RHEV/oVirt that deals with storage) to send cloning requests to the NetApp controller, instead of using its own native code. And while the final code that will ultimately get submitted upstream to oVirt will most likely be different from what is used in the demo below, the point is that we’re working on it and have made significant progress. So while FlexClone and RHEV aren’t soul mates yet, we’ve officially introduced the 2 of them.

The Demo

Here’s a quick run through of what you’re about to see, unless of course you’ve skipped everything that I’ve typed above in order to jump to the demo. Can’t say I blame you. But just in case:

  1. We log into an instance of RHEV-M
  2. Create a new VM based on a template (RHEV uses the `dd` tool under the covers to clone the template VM)
  3. We wait approximately 12 minutes for the operation to complete (actually, I trimmed out the boring stuff)
  4. Then we switch to an instance of the oVirt manager
  5. We create a new VM based on a template but we’ve switched part of the VDSM code to send the clone request to the NetApp controller instead of a local `dd`
  6. We watch the open NetApp console with baited breath
  7. BOOM! We have a new VM in 11 seconds, and RHEV is ready to use the new VM

[FMP width=”640″ height=”360″][/FMP]

I was fortunate enough to show this to a large, interested crowd this past week at the end of one of my sessions at Red Hat Summit. And one of the first questions was “when will this be officially supported?” – The short answer is that we’re targeting the 3.2 release of RHEV, which ~should~ be out in the 1st half of 2013.

So, integrating a rapid cloning tool into RHEV is very cool.. But what about integrated data protection for my virtualized application data? Hmmmm… great question.. (stay tuned.)

hope you liked this,

Captain KVM

11 thoughts on “Offload Cloning from RHEV and oVirt to NetApp”

  1. I love your posts. It’s great to see the management / ecosystem grow around KVM. Hopefully Red Hat can become a solid player next to VMware and HyperV.

    1. Hi Eugene,

      Thanks for your kind words. I think KVM and RHEV are well on their way to becoming serious contenders.

      Captain KVM

  2. Hello Jon,
    I enjoy reading your articles ( i just started ). They are written in a very easy to understand and easy-to-consume manner. Appreciate it.

    I contribute to VDSM as part of oVirt project. Here i would like to know if there are plans of using libStorageMgmt ( another open source project aimed at providing a common interface for managing storage array in a vendor nuetral way) and integrating it with VDSM to support storage offload in a generic way ?

    1. Hi Deepak,

      Thanks for reading and thanks for contributing to VDSM. We’ve looked at LSM and have talked with Tony (the maintainer) many times; he’s a great guy. The primary oVirt/VDSM folks have ultimately decided that a plugin framework is to be created (significant work is underway) so that 3rd parties can create plugins for storage offload or anything else. This is how NetApp will plugin into oVirt and RHEV in order to offload storage cloning, provisioning, and other storage related activities.

      hope this helps,

      Captain KVM

      1. Could you provide more info on the plugin part ? Is this something documented on the oVirt wiki and/or being discussed as part of community mailing lists ?

        1. Hi Deepak,

          There should be discussions on the dev lists. Vojtech from Red Hat is working on the framework, some of my guys are working on the plugin(s).

          Captain KVM

  3. I had a (years later) follow-up on this, and I thought you might be one of the best people to inquire to. I was wondering if there is an easy way to offload the actual VM disk image creation to the Netapp for preallocated disks. I have an oVirt environment in test and a RHEV environment in production, and I’m looking for methods to ease new VM creation as I don’t generally use template too much since I prefer to use automated installations for VMs.

    I know you seem dug deep in the OpenStack world at this point, but I was hoping your expertise on both RHEV and Netapp might be able to share some ideas on this.



    1. Hi Chris,

      Thanks again for dropping by… Actually, you’re going to see a lot more RHEV related posts soon. 🙂 As for offloading the creation, things have definitely changed how things are done under the covers for RHEV over the last few years – for the better, I might add. While I don’t have easy access to NetApp anymore, after a little playing I might still be able to come up with some ideas for you.

      I have to ask though, what is involved with your “automated installations” for VMs? Templates may or may not be a good thing for you.. I don’t have a dog in the fight regarding templates one way or the other, I just want to help you get the most out of what you’re already using. 😉


      1. You arent working on Netapp and ovirt integration any longer? Is there some type of plugin or setting that allows or tells ovirt to use netapp for this creation of a VM in 11 seconds?

        1. Unfortunately, no. I left NetApp in mid 2014. The coders at NetApp that worked on the plugin were all reassigned to other projects and have since left. One works at Amazon, one works for a drone company, and the remaining one followed me to Red Hat. As for taking advantage of NetApp, you can still script things easily. NetApp can react to SSH commands and it also has an SDK. Either way you can utilize the “FlexClone” function, which was what the plugin was hitting under the covers.

          Captain KVM

Agree? Disagree? Something to add to the conversation?