I think everyone today understands the concept of a Virtual Machine or virtualized environment.
However, in case you are not familiar with the terminology, wikipedia defines a virtual machine as follows:
A virtual machine (VM) is a software implementation of a machine (i.e. a computer) that executes programs like a physical machine.
In today’s blog post, I’m going to simply break down some of the actual files that make up a virtual machine on VMWare Workstation. (These files are identical to any of the files you would additionally find on ESX)
A virtual machine is configured with a set of virtual hardware on which a supported guest operating system and its applications use/run. The virtual machine is nothing more then a directory, with a set of files. The virtual machine’s configuration files describe the virtual machine’s configuration, which include all of the virtual hardware, such as CPU, memory, disk, network interfaces, CD-ROM and floppy drives.
NOTE – When naming a VM, a best practice is to avoid using any special characters. That includes spaces in the virtual machines name.
Below is a picture of a test machine I happen to be tinkering with.
In the picture you can see a variety of file types. Except for log files, the name of each files starts with the name of the virtual machine. In this case : (<snoopy>)
A virtual machine consist of the following files:
- A configuration file (.vmx)
- A file containing the virtual machine’s BIOS (.nvram)
- One or more virtual disk files. (.vmdk) The first virtual disk has files <snoopy>.vmdk and <snoopy>-flat.vmdk
- A virtual machine’s current log file (.log) and a set of files used to archive old log entries with an incrementing number (-#.log)
- A snapshot description file (.vmsd). This file is empty if the virtual machine has no snapshots.
- If the virtual machine is converted to a template, and virtual machine template configuration file )(.vmtx) replaces the virtual machine configuration file (.vmx) – Not shown in picture.
The above are the most common files found. A virtual machine have other files as well. For example, there may be files for Raw device mappings (-rdm.vmdk), Snapshot state files (.vmsn), suspended state files (.vmss), team data (.vmtm) and supplemental team data (.vmxf).
There can be other files in the directory, however, those are likely only present while a virtual machine is running.