Snapshots
A VM snapshot is a file-based representation of the system state at a particular point in time. The snapshot includes configuration and disk data. With a snapshot, you can revert a VM to a point in time, which means by taking a snapshot of a VM, you preserve its state and can easily revert to it in the future if needed.
Snapshots have many use cases, such as saving a VM's state before a potentially destructive operation. For example, suppose you want to make some changes on your existing web server VM, which is running fine at the moment, but you are not certain if the changes you are planning to make are going to work or will break something. In that case, you can take a snapshot of the VM before doing the intended configuration changes, and if something goes wrong, you can easily revert to the previous working state of the VM by restoring the snapshot.
libvirt
supports taking live snapshots. You can take a snapshot of a VM while the guest is running. However...