Virtual Machines
Virtual Machines are complete system images saved to a hard disk, deployed using VMWare, Xen or similar tools. These tools host the virtual machine within the real OS.
Features
- Virtual disk drive images are saved as normal files, files which can be backed up, copied or shared.
- operating systems are saved on the disk images.
- A virtual machine manager (VMM) or hypervisor manages the virtual machines, emulating the virtual devices.
- Some technologies enable virtual LANs to be set up, to interconnect the VMs.
- More OS images can be created for testing than physical machines exist.
Advantages
- Enables consolidation of existing servers onto new hardware, saving in power and space costs.
- Enables hosting of new virtual servers over smaller farm of physical machines, not only saving in costs, but making cluster configuration more agile.
- Can scale out at single image to multiple machines.
- VMs can be suspended and resumed, saving the power consumption/increased security risk of idle services.
- VMs can be moved between machines while suspended, or even migrated using copy-on-read techniques.
- If front end machines are rolled back to a known state on a regular (daily/hourly) basis, the machines are less easily exploited by zero-day security exploits; the duration of any incursion is automatically limited.
- Good for testing internationalised systems and OS beta-releases.
- Virtual multi-tier clusters can be set up, giving individual developers a more realistic emulation of the production cluster.
- Operations can create/manage the virtual test clusters, giving them early experience in managing the planned production environment, while the developers get used to working through operations to change the production hosts.
- Backup of a entire machine is now as simple as copying a few tens of GB.
Disadvantages
- OS management costs scale with the number of separate virtual images that are maintained. If everyone uses the same cloned machine image, all is well. As soon as people start changing the machines' settings, they are creating machine management problems.
- Effort is needed to stay compliant with OS and applications licensing terms and conditions.
- Old machine images are a major security risk. Any virtual OS image more than a month old is one patch cycle out of date. Such images are easy to collect (a simple backup process will suffice).
- Building a new machine image can be expensive in time, especially if the machines are built by hand.
- There are some differences between virtual machines and physical machines -such as clock time being less stable; this can make some applications behave less reliably than normal.
SmartFrog support
SmartFrog can do two things with Virtual Machines. It can start and stop [Xen] or VMWare images, and it can be used to configure and deploy applications on top of a farm of Virtual Machines. There is also onging work improving RPM installation to make it easier for SmartFrog to remotely install RPM packages on deployed Linux systems.
- SmartFrog has some ongoing support for VMWare in sf-vmware and Avalanche
- [SmartDomains] is a third-party component to manage Xen-hosted virtual machines
- The sf-ec2 components are adding support for [Amazon EC2].