Gibt es irgendeinen Grund, dass du das komplette Skript hier einfügst?
Mach das mal bitte wieder weg und dann zeig nur das was du angepasst hast.
Ansonsten könnte ich mir vorstellen, dass ein inkrementelles Skript wenig geeignet ist für dieses Vorhaben. Schließlich bleiben Unterschiede erhalten. Also jedesmal wenn du eine VM startest: Volles Backup der IMG Datei. Oder wenn Docker laufen: Alle geänderten Dateien werden addiert. Oder wenn du Dateien auf den Server hochlädst, die noch nicht auf das Array verschoben wurden: Landen ebenfalls auf der Backup NVMe.
Hier mal ein Beispiel von meiner Sicherung:
du -hs /mnt/cache/appdata
637G /mnt/cache/appdata
du -hs /mnt/disk7/Backups/Shares/appdata
1.9T /mnt/cache/appdata
Also wenn kannst du vielleicht zwei inkrementelle Backups auf die Art erhalten. Aber selbst dann könnte es voll laufen. Je nachdem wie viel sich geändert hat.
Also entweder holst du eine größere Backup NVMe, damit in jedem Fall zwei Backups drauf passen, oder du machst nur einen simplen rsync:
rsync --archive /mnt/cache/ /mnt/cachebtrfs/backup
Vorzugsweise so, dass du vorher noch Docker und VMs stoppst, damit ein sauberes Backup erstellt wird.