Offload VM Cloning from KVM to the Back-end Storage, pt2

Several months ago, I posted an article on how and why to offload cloning from KVM to the back-end storage. I’d like to take the opportunity to update this ever so slightly with a recorded demonstration. In the original posting, I was using Data ONTAP 7.3.x – this recorded demo utilizes Data ONTAP 8.1 Cluster-Mode.

So why update now with a demo? Simple. I can type all day, but sometimes watching the magic happen is much more effective than reading about it.

NetApp FlexClone & KVM
(give it a moment to start after you hit play)
[FMP width=”720″ height=”405″][/FMP]

So why is this important? Well, if you have the need to scale quickly and on-demand, this is a really big deal. Allowing the hypervisor to perform the cloning is faster than manually spinning up a VM to be sure, but what about 5 VM’s? All of that cloning takes CPU and Memory resources away from it’s core job – servicing applications.

Let’s look at this a different way. If you have a Tier 1 database running on a server, would also use that server for streaming content and/or compiling code? No, you would leave it to run it’s core function, servicing the database. Virtual machines are a hypervisor’s application. Plain and simple.

Additionally, 2 minutes to clone 1 virtual machine at the hypervisor level vs. a few seconds at the storage level is years apart if you need to scale on demand to support your business. And to that end, the RHEL, KVM, and NetApp API’s all make incorporating these features a snap.

So this all great for a single clone, but what if I want to spin up 20 VMs this quickly? Great question. Come find me in the NetApp booth at Red Hat Summit in 2 weeks and I’ll show you.

Hope this helps,


2 thoughts on “Offload VM Cloning from KVM to the Back-end Storage, pt2”

  1. Hello Jon!

    Very interesting. Unfortunately I will not attend Red Hat Summit this year, do you have plans to share your talk here in future?

    Also, I was thinking about how we can offload these kind of task when you have a block device level storage pool, specially LVM, can we use the same approach?

    Thank you,

    1. Hi Raul,

      Thanks for taking the time to stop by. My session at Red Hat Summit will be recorded and I will find a way to share it. I may even have another demo. 😉 Offloading for block devices is ~very~ difficult as the controller has no insight to the host side file system or volume manager. This in turn makes it difficult to determine the pertinent offset info (starting offset, ending offset, total number of blocks, etc). This issue is shared across all hypervisors and storage platforms, not just NetApp and KVM.

      Having said that, we can still clone the entire datastore (volume) using FlexClone – regardless of whether the volume is used as an NFS export or contains a LUN. This is great for spinning up an environment quickly that could be used for dev/test, problem replication, DR, etc.


      Captain KVM

Agree? Disagree? Something to add to the conversation?