There are many things about virtualization is the ability to clone virtual machines. It’s really cool! Unfortunately, after you work with virtualization for a while you start to take it for granted. I can’t tell you how many times I roll out a new physical machine and sigh because I can’t simply clone it. Well, I can but that’s a discussion for another day.
Virtual machines are a set of files that are interpreted by a hypervisor. Since they are just files they can then be copied and/or edited. That’s all cloning is, the system is just copying the VMDKs (the “hard drive” files) and editing the VMX file (the config file to change things like the MAC address of a NIC and the virtual machine’s name).
You can even do it by hand if you have access to the backend storage. Mike once one-upped me by piping the VMX through sed. That’s cheating but all’s fair I guess. Cheater.
The vmForge VDC allows you to clone vApps and the individual machines contained therein. It automatically edits the config, can handle numbering the machine, and makes everything nice and easy. This is a killer feature in my book.
A lot of cloud providers are instance based. You select the operating system, push it out, and rely on automated services to configure them for you. Most of the time, you don’t get persistent storage. If you do, it’s usually a volume you attach to the instance and has nothing to do with its operating system. By using a vmForge VDC you can do the opposite. You can create a machine, configure it how you like, and then clone it. Configure once, and be done. Then you can keep a copy of it in your catalog for later deployments. Each clone is exactly that: a complete copy of your original system.
You may think that’s really cool! But wait, there’s more! (sorry, couldn’t resist)
When you build virtual machines in your VDC you are building them in vApps. A vApp is a logical container that holds virtual machines, internal networks, and can do things like set boot/shutdown order and power-down semantics.
When creating a vApp you also have the option to “fence” it. Fencing isolates the layer-2 networks within the vApp from any outside network. This means you can have internally consistent ip addressing inside the vApp. You can then “template” the vApp by moving it to your catalog and deploy it over and over and over again. That means that your preconfigured, multi-server application can be redeployed with a few mouse clicks!
Ultimately, cloning is about saving time. You get to use conventional tools to set up and multiple machines quickly and easily. You don’t have to learn any arcane scripting language, nor trust and maintain a complicated configuration service like Chef or Puppet. You just set up servers, push them out, and start to use them.
So, clone away!