====== gc ====== GC is divded into 2 phases: * GC phase1 (mark used chunks), where all backups are traversed and each used chunk is "touched" to update ''atime''. * GC phase2 (sweep unused chunks), where all unused (not recently atime-d) are removed. ===== atime cutoff ===== PBS doesn't rely on ''atime'' updated from regular access. During GC phase 1 it explicitly updating ''atime'' timestamp via [[https://man7.org/linux/man-pages/man2/utimensat.2.html|utimensat]] call. It should work irrespective to FS mount options. But for some strange FS or remote storages PBS adds some safety precautions by default: As safety precautions for filesystems with lazy atime or broken atime, there is a 24h+5min safety window. If ''atime'' of chunk is outside this range it will be removed. Disabling atime cutoff is absolutely safe on ZFS filesystem despite of dataset mount options (By default ZFS is using ''relatime''). See: [[https://forum.proxmox.com/threads/how-do-pbs-calculate-a-time.166469/|how do PBS calculate a-time]] To change atime cutoff go to Datastore -> -> Options -> Tuning Options: {{.:pasted:20260408-141538.png}}