A virtual machine (VM) is a software program that creates a simulated computer environment within your existing physical computer. This allows you to install and run an additional operating system within your current one.
The file that contains and runs the virtual machine is typically called a virtual machine image or VM image. These VM image files contain all the components necessary to launch a virtualized OS, including:
The virtual hardware specification
The VM image defines the virtual hardware for the guest OS, including CPU, memory, storage, network interfaces, BIOS firmware, video card, etc. This virtual hardware mapping allows the guest OS to run as if it’s on physical hardware.
The guest operating system
The VM image includes a full bootable copy of the guest OS, like Windows, Linux, etc. This OS runs on top of the simulated virtual hardware provided by the VM image.
The VM image also contains one or more virtual hard disk files that the guest OS uses like a physical disk drive to store data long-term. Common virtual disk formats include VHD, VMDK, and VDI.
Configuration and settings
Additional configuration and settings may be saved in the VM image to retain customized parameters for that virtual machine when powered off, like allocated memory and number of virtual CPUs.
So in summary, the key file that encapsulates and runs a virtual machine is typically called a VM image or virtual machine image. This single file contains everything needed to power on and operate a virtual OS and associated data.
Advantages of Using Virtual Machines
Using virtual machines and VM image files offers several notable benefits:
- Isolation: Issues with the guest OS don’t directly impact the host and other VMs.
- Portability: VM images can run on any compatible hypervisor.
- Encapsulation: The full environment is bundled into a single file for easy transport.
- Fast deployment: New VM instances can launch rapidly from templates.
- Cost savings: Multiple virtual OS instances can run on one physical server.
Common Types of VM Image Files
There are a few common file types and extensions used for virtual machine images today:
VHD and VHDX
The VHD (Virtual Hard Disk) format is used predominantly with Microsoft’s Hyper-V and Azure cloud platforms. VHDX is an updated version supporting larger storage capacity.
VMDK (Virtual Machine Disk) is the default format for VMware’s market-leading vSphere hypervisors and VMware Workstation.
OVA and OVF
OVA (Open Virtual Appliance) and OVF (Open Virtualization Format) files are used to package together a complete VM image for portability, including all disks/data needed to deploy that virtual machine.
The QCOW2 (QEMU Copy-On-Write version 2) format is commonly used with the open-source KVM and QEMU hypervisors for Linux.
So in summary, VHDX, VMDK, QCOW2 represent some of the major virtual disk image formats, while OVA/OVF package all VM components together for convenient deployment.
Running Virtual Machines
To launch a virtual machine from an image file, you need to use desktop virtualization software like VMware Workstation or Oracle VirtualBox. Or for enterprise-grade VM deployments, you would use a bare-metal hypervisor such as VMware vSphere, Microsoft Hyper-V, or Citrix XenServer.
These solutions all include capabilities to create, import, export, and boot virtual machines stored in formats like VHD, VMDK or OVF. Once powered on, the VM image provides you access to that secondary guest OS environment contained within.
Creating Custom Virtual Machine Images
If you need specialized virtual machines tailored to your environment and use case, most enterprise-focused hypervisors include tools to assemble custom VM images.
For example, VMware vSphere lets you build VM templates as master images for rapidly deploying new systems. Microsoft’s Sysprep tool permits capturing prepared Windows installations as VHD or VHDX files usable as prototypes for new VMs.
There are also third-party conversion utilities for transforming physical server images into virtual disks ready for virtualized workloads. This can assist in transitioning from physical to virtual infrastructure.
Storing and Distributing Virtual Machine Images
For storage scalability, most organizations run hypervisors and associated VM image libraries on high-performance storage area networks (SAN). This allows efficiently managing hundreds of VMs.
It’s also common to distribute customized virtual machine images internally to promote consistency across VM instances. By maintaining a centralized template library of base OS installations and system configurations, admins can rapidly deploy more homogenous and easier to manage VMs across the data center.
Finally, public cloud platforms like Azure Marketplace and AWS EC2 provide pre-built VM images to subscribers as virtual appliances. Companies and SaaS providers also sometimes release demonstration or evaluation editions of their software as OVAs or VHD downloads.
In summary, a virtual machine image enables launching a fully emulated computer system and bootable OS virtually. The file format encapsulates virtual hardware settings, guest OS installations, data storage, and configuration customizations that make up a VM. Common VM image file extensions include VHD/VHDX, VMDK, OVA/OVF and QCOW2. Hypervisors and virtualization management software is then used to create, run, and manage VMs utilizing one of these image files at runtime.
Frequently Asked Questions
- What is the difference between a virtual machine and a container?
A VM provides a complete simulated computer running its own full operating system. Containers share the host OS and only encapsulate specific application dependencies.
- Which VM image format is best?
VMDK is the most common format overall. But VHDX is also popular and provides improved performance and scalability. The best format for you depends on your chosen virtualization platform.
- Can I convert a physical server to a virtual machine?
Yes, physical-to-virtual (P2V) conversion tools like VMware vCenter Converter let you capture a physical server image to a reusable VM image file.
- How do I access my virtual machine image data files?
Hypervisors include capabilities to mount your VM virtual disks on the host for backup, editing or migration purposes. You can also attach external storage.
- Can I run VM images from an external hard drive?
Desktop virtualization tools like VirtualBox allow portability by launching VMs from external devices. Enterprise hypervisors usually require connecting to networked shared storage.
- How do I migrate or export a virtual machine?
Use built-in export/import wizards or utilities like OVF Tool to package VM images along with configuration settings to move between compatible hypervisors.
- What is a master VM template?
A source VM image containing a standardized OS install used as a “golden image.” Admins clone this template to rapidly deploy new VMs.
- How big are typical VM images?
Virtual disk size varies based on guest OS and applications. But 10-50GB per VM is common. Actual utilization may be much lower initially. Disks can expand as needed.
- Where do companies store VM images?
Organizations typically run hypervisors on centralized SAN or NAS storage that also hosts a library of VM images, templates and disks.
- Can I run VM images in the cloud?
Yes, Azure, AWS and other clouds support importing conformant VM images from on-prem environments or provide stock VHD templates to deploy cloud VMs.
- What virtual machine files should I back up?
Ensure to regularly back up all VM configuration files, associated virtual storage disks, plus the VM image or template from which each VM originates.
- How do I improve virtual machine performance?
Reduce resource over-allocation to VMs, distribute workloads, upgrade to better hardware, ensure storage performance, and fine-tune OS and apps based on performance monitoring.
- Can I make copies or clones of VM images?
Most enterprise hypervisors facilitate rapidly deploying new VMs from a master template image. They also support full clones for producing exact copies of specific VM instances.
- Which format should I use to distribute a virtual appliance?
Use OVA or OVF packaging formats to combine a fully configured VM image with all necessary data files to distribute an application or environment as a working virtual appliance.
- Can I create a VM image that runs on any hypervisor?
While formats like OVF aim for interoperability, most VM images are still tied fairly tightly to the hypervisor platform and host requirements used to create them originally.
- How do I optimize the performance of my guest OS inside a VM image?
Choose appropriate virtual hardware resources, install VMware or Hyper-V integration tools, update drivers, optimize disk configurations, analyze resource usage, and tune the OS per application load.
- Is it possible to partition a virtual hard drive?
Yes, the VM image file acts as a virtual hard disk so if the guest OS supports partitioning physical drives, the same principles will let you divide up the available virtual storage capacity.
- How can I reduce the size of VM images?
Available tactics include compacting the guest OS, converting to thinly provisioned or differencing disks, removing unneeded applications, cleaning caches, truncating logs, and archiving less accessed data externally.
- What is the open virtualization format (OVF)?
An open standard format by the DMTF designed to promote cross-platform portability of virtual appliances by encapsulating VM images along with metadata and configuration.
- Where can I download VM images?
Major vendors distribute VM images for demonstration, testing and internal deployment needs including: VMware (VMDK, OVF), Microsoft (VHD,VHDX) and common cloud marketplace images from AWS, Azure and Google Cloud.