
Wenn ich diese Abfrage auf einem Datensatz ausführe
zfs list -d 1 -t all -o name,used,refer,written,compressratio sfg-backup/mx
Ich sehe die folgenden Statistiken:
zfs list -d 1 -t all -o name,used,refer,written,compressratio sfg-backup/mx
NAME USED REFER WRITTEN RATIO
sfg-backup/mx 300G 276G 0 1.80x
sfg-backup/mx@madcow_2023-04-15_23:15:00_UTC 4.04G 275G 275G 1.28x
...
sfg-backup/mx@madcow_2023-04-21_01:15:00_UTC 0B 276G 0 1.28x
sfg-backup/mx@madcow_2023-04-21_02:15:00_UTC 0B 276G 4.26G 1.28x
sfg-backup/mx@madcow_2023-04-21_03:15:00_UTC 0B 276G 0 1.28x
Wenn ich jedoch ein Backup ausführe, ist der letzte Snapshot vorhanden, da madcow_2023-04-21_01:15:00_UTC
die Größe des Backups nicht 4,26 GB, sondern 31,4 GB beträgt
syncoid --no-sync-snap 10.0.1.2:sfg-backup/mx work/sfg/mx
NEWEST SNAPSHOT: madcow_2023-04-21_03:15:00_UTC
Sending incremental sfg-backup/mx@madcow_2023-04-21_01:15:00_UTC ... madcow_2023-04-21_03:15:00_UTC (~ 31.4 GB):
31.5GiB 0:03:16 [ 163MiB/s] [==================================================================================================>] 100%
Durch Hinzufügen -c
der Komprimierung beträgt die Größe 4,3 G (dies sind leicht unterschiedliche Schnappschüsse, aber mit mehr oder weniger demselben Inhalt).
zfs send -nv -c -I sfg-backup/mx@madcow\_2023-04-24\_00:15:00\_UTC sfg-backup/mx@madcow\_2023-04-24\_03:15:00\_UTC
send from @madcow_2023-04-24_00:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_01:15:00_UTC estimated size is 215M
send from @madcow_2023-04-24_01:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_02:15:00_UTC estimated size is 4.09G
send from @madcow_2023-04-24_02:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_03:15:00_UTC estimated size is 624B
total estimated size is 4.30G
# without -c flag:
zfs send -nv -I sfg-backup/mx@madcow\_2023-04-24\_00:15:00\_UTC sfg-backup/mx@madcow\_2023-04-24\_03:15:00\_UTC
send from @madcow_2023-04-24_00:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_01:15:00_UTC estimated size is 216M
send from @madcow_2023-04-24_01:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_02:15:00_UTC estimated size is 31.3G
send from @madcow_2023-04-24_02:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_03:15:00_UTC estimated size is 624B
total estimated size is 31.5G
Können Sie mir helfen zu verstehen, was diese große Diskrepanz in den Größen verursachen kann? Warum beträgt die von ZFS gemeldete Komprimierung 1,28 und die Übertragungskomprimierung 31,5/4,3=7,3?
Antwort1
WRITTEN
zeigt ankomprimiertDaten, die tatsächlich in den Datensatz/Snapshot geschrieben wurden. Zwischen sfg-backup/mx@madcow_2023-04-21_01:15:00_UTC
und madcow_2023-04-21_03:15:00_UTC
haben Sie hoch komprimierbare Daten über vorherige nicht komprimierbare Daten geschrieben, ohne die gesamte Datei zu dereferenzieren.
Ich nehme an, Sie haben eine große Datei, die beliebig überschrieben werden kann (z. B. virtuelle Disk-Image-Dateien, Datenbanken usw.), und es ist passiert, dass Sie 32 GB Rohdaten geschrieben haben, aus denen 4 GB komprimierte Daten wurden.
zfs send -c
sendet die komprimierten Datensätze so wie sie sind und überträgt nur das komprimierte 4G-Delta. Andererseits dekomprimiert zfs send
(ohne -c
) die Daten auf der Festplatte und erweitert sie auf die volle 32G-Größe.