IT Anatomy: VMware Virtual Machine Files and Settings Explained (vmdk, vmx, swap and more under the microscope)


What is a VMware Virtual Machine (VM)?

The short answer — believe it or not, a virtual machine, when powered off, is just a bunch of files. When it's powered on, it's a few more files plus whatever is scheduled onto the physical CPUs and memory. That’s about it.
If you want a more detailed definition, VMware’s own description in their vSphere documentation is spot on:
A virtual machine is a software computer that, like a physical computer, runs an operating system and applications. The virtual machine is comprised of a set of specification and configuration files and is backed by the physical resources of a host. Every virtual machine has virtual devices that provide the same functionality as physical hardware and have additional benefits in terms of portability, manageability, and security. A virtual machine consists of several types of files that you store on a supported storage device.

Why is it made up of Files why isn't just all run from the vCenter database?

Think about what being a standalone entity enables: the VM can run and be restarted on the ESXi host even when vCenter is down. It can be removed from one vCenter and added to another. It can be copied offline and moved—say, to VMware Workstation. The VM can be backed up and recovered even if the vCenter database is corrupted. You can use storage replication to mirror the VM.

In short, a virtual machine is much more portable if it maintains a degree of independence.

When a VM is managed by vCenter, vCenter regularly makes changes to the VM’s files. It also stores information about the VM that isn’t in those files—mostly related to inventory location and runtime state, but also additional metadata like tags. This is what powers the graphical interface we know and love, and enables all the vCenter functionality we rely on.

But even then, our lovely little virtual machine still needs its independence.

So now we know what a VM is, let the anatomy lesson begin

VMware Virtual Machine Files Explained

A comprehensive breakdown of every file used in VMware virtual machines, including configuration, disk, snapshot, log, and lock files. Intended for technical VMware administrators working in vSphere/ESXi environments.


Summary Table

File Type Purpose
VMX Main VM configuration
VMX~ Temporary config backup
VMTX Template configuration
VMXF Optional metadata (legacy)
NVRAM VM BIOS/UEFI settings
VSWP VM memory swap
VMX VSWP VMX process swap
VMDK Disk descriptor
-flat.vmdk Disk content
-ctk.vmdk Changed Block Tracking
-rdm.vmdk Raw device mapping
-delta.vmdk Snapshot delta data
-xx.vmdk Split VMDK segment
VMSD Snapshot metadata
VMSS Suspended VM memory
VMSN Snapshot memory + device state
-aux.xml Deprecated snapshot info
.redo Deprecated redo log
vmware.log Runtime activity log
vmware-#.log Archived log history
VMX.LCK Config file lock
LCK- NFS file lock

Base Configuration Files

VMX File – Configuration File

The primary configuration file for the virtual machine. It defines VM hardware—CPUs, memory, disk controllers, NICs—and references to virtual disks and devices. This file is essential for VM startup and operation.

It’s plain-text and editable, though manual edits are risky and rarely necessary in production.

VMX~ File – Edit File (Exists When Powered On Only)

A temporary backup of the .vmx file created during live configuration changes. Exists only while the VM is powered on. Automatically removed when the VM shuts down cleanly.

VMTX File – Configuration File for a Template

When a VM is converted to a template, its configuration is saved as a .vmtx file. Functionally equivalent to .vmx but marked read-only. Used for cloning new VMs from the template.

VMXF File – Supplemental Configuration

An optional XML file containing metadata, typically used in VMware Workstation or Fusion for team collaboration. Not actively used in ESXi. Safe to ignore.

NVRAM File – BIOS File

Stores the VM’s BIOS or UEFI firmware settings—boot order, PXE config, etc. If deleted, it's regenerated at power-on with defaults. Custom firmware settings will be lost.


Swap Files

VSWP File – VM Memory Overflow (Swap) File

Created when a VM powers on. Size equals allocated memory minus any reservation. Enables ESXi to reclaim memory by swapping guest pages to disk during host memory contention.

Deleted when the VM powers off. If full reservation is set, this file is 0 bytes or not created.

VMX VSWP File – VMX Memory Overflow (Swap) File

Swap file for the VMX process (the VM’s management process). Allows ESXi to manage memory pressure by swapping parts of the VMX process memory. Typically smaller than the main .vswp.


Virtual Disk Files

VMDK File – VMDK Explained (It’s More Than It Seems)

A descriptor file that defines the structure of a virtual disk—size, geometry, provisioning format, and references to backing files. It does not contain user data.

Works with -flat.vmdk or other data-bearing files. Plain-text and editable, but not something you'd modify unless you know exactly what you’re doing.

-flat.vmdk – The File With All the Data

The actual virtual disk content—OS files, applications, user data. Size matches the provisioned disk. This is where all reads and writes land.

Always used with a descriptor .vmdk file. Deleting either breaks the virtual disk.

-ctk.vmdk – Change Tracking File for the VMDK

Tracks which disk blocks have changed since the last backup. Used when Changed Block Tracking (CBT) is enabled. Read by backup software to perform efficient incremental backups.

Does not contain guest data.

-rdm.vmdk – Raw Device Mapping File

Metadata pointer to a raw LUN on shared storage. Enables the VM to access a physical device directly while still letting vSphere manage snapshots and vMotion (if using virtual compatibility mode).

Contains no user data. RDMs are often used in clustered applications or SAN-aware workloads.

-delta.vmdk – Records Changes Since Previous Snapshot

Created when a snapshot is taken. The base disk becomes read-only, and all new writes go to this delta file. Grows dynamically with changes.

Multiple delta files may exist in a snapshot chain. Reverting or consolidating snapshots removes them.

-xx.vmdk – VMDK Split Into Multiple Files (Workstation)

Used in VMware Workstation and Fusion when a virtual disk is split into 2GB chunks (e.g. -s001.vmdk, -s002.vmdk). Useful for file system compatibility and portability.

Rare in ESXi unless imported from Workstation.


Snapshot Files

VMSD File – Snapshot Details

Metadata file for managing snapshot hierarchy and descriptions. Tracks relationships between snapshots but stores no VM state.

Corruption here can make snapshot management unreliable.

VMSS File – Memory Contents of Suspended VM

Stores the full memory contents of a suspended VM. Used for suspend/resume. Removed when the VM resumes or powers off.

Contains RAM state and CPU register data.

VMSN File – Snapshot Files

Created when a snapshot is taken with the “save VM memory” option. Stores memory and device state, allowing a full rollback to that point.

Absent if snapshot is taken without memory.

-aux.xml – Legacy Snapshot Descriptor (No Longer Used)

An old snapshot tracking file from earlier versions. Deprecated. May appear in legacy VMs but not required or used by modern vSphere.

.redo – Legacy Redo Log (No Longer Used)

Previously used to log disk changes. Replaced by the -delta.vmdk format. Legacy VMs may still contain these files.

Handle with care—accidental usage may prevent snapshot consolidation.


Log Files

vmware.log – VM Log File

Captures all VM activity during runtime: power operations, snapshots, vMotion, hardware changes, guest OS messages. Written to the VM’s home directory.

Useful for troubleshooting boot issues, device attach failures, or VMtools errors.

vmware-#.log – Archived VM Log Files

Rotated logs from previous VM sessions. Numbered sequentially. Retention controlled by settings in the VM configuration file.

Safe to delete if not needed for diagnostics or audit.


Lock Files

VMX.LCK – VMX Lock File

Created to prevent concurrent access to the VMX file. Normally cleaned up when the VM powers off.

Stale locks (after host crashes) can block VM startup and may require manual removal.

LCK- – NFS Lock File (Hidden)

NFS-specific locking mechanism. Hidden files used to coordinate access across hosts. Can prevent VMs from powering on if left stale.

Should only be removed after confirming the VM isn’t running elsewhere.