A snapshot is a point-in-time record of a storage volume, file system, or virtual machine. It captures the metadata and data blocks at a specific instant, allowing users to preserve a system state before performing high-risk operations like software upgrades or configuration changes.
Technical Implementation
Most modern storage systems implement snapshots via Copy-on-Write (CoW) or Redirect-on-Write (RoW). Instead of duplicating physical data, the system creates a map of pointers. When a write operation occurs, the system either moves the original block to a snapshot area (CoW) or writes new data to a new location (RoW), keeping the original block indexed for the snapshot view.
Snapshots are used for:
- Rapid recovery during failed deployments;
- Creating consistent database points for backup software;
- Development and testing on production-like data sets.
In cloud platforms like AWS, EBS snapshots are incremental, meaning only blocks changed since the last snapshot are stored. However, snapshots are not a replacement for backups; they depend on the integrity of the base storage. Long-term storage of snapshots on hypervisors can lead to significant I/O overhead due to delta-file growth.