There are multiple options how to create an external snapshot: 1) using virsh snapshot-create-as (see man page for further explanation): 1.1) if the VM is active, but the user doesn't want to take a snapshot of the memory virsh snapshot-create-as $VMNAME --disk-only 1.2) if the vm is active and memory snapshot is required virsh snapshot-create-as $VMNAME --memspec file=/path/to/memory-image,snapshot=external 1.3) if disks which take part of the snapshot need to be controlled: virsh snapshot-create-as $VMNAME --memspec file=/path/to/memory-image,snapshot=external --diskspec vda,snapshot=no --diskspec vdb,file=/path/to/overlay-img 1.4) any additional options such as snapshot name, description etc can be controlled using additional parameters. Please refer to the man page: https://libvirt.org/manpages/virsh.html#snapshot-create-as 2) using virsh snapshot create This option requires an XML document describing the snapshot as argument. Please refer to the documentation. For inspiration, a sample XML can be obtained using the '--print-xml' argument for 'virsh snapshot-create-as' which prints the XML the command generates. snapshot XML documentation: https://libvirt.org/formatsnapshot.html Please note, that while creating external snapshots works, we don't yet have implementation for reverting or deleting external snapshots, thus internal snapshots must be supported until then. Regarding customer's question, rhel-7.6 already supports external snapshots to the extent above. If required there are manual steps which allow reversion or deletion of external snapshots.