Using XCP-NG and XOA I automate my full system VM backups (you might consider this a whole system image) to an SMB/NFS/ISCSI FreeNas share as flat self contained vhd files. Within my Backup jobs I use TAG labels on each of my VM’s that have been defined within my backup jobs that automatically pull their respective VM’s for backup without me having to set policy per VM. Restoration is only limited by my hardware/networking backend and can be automated for disaster recovery detection/automatic deployment.
I’d highly suggest watching Lawrence System’s video to get a quick and dirty explanation/live demo if you were interested in learning about this platform from someone with tons of experience.