[pbs-devel] [PATCH v3 proxmox-backup 0/9] fix #5982: check atime update is honored
Fabian Grünbichler
f.gruenbichler at proxmox.com
Wed Mar 5 10:41:44 CET 2025
On March 4, 2025 7:35 pm, Christian Ebner wrote:
> These patches add a check to phase 1 of garbage collection in order
> to detect when the filesystem backing the chunk store does not honor
> atime updates. This avoids possible data loss for situations where
> garbage collection could otherwise delete chunks still referenced by
> a backup snaphost's index file.
>
> The check is performed by inserting a fixed size 4 MiB unencrypted and
> compressed chunk of all-zeros. The check is performed by setting the
> atime to 1 second in the past followed by setting it to now in order to
> test if atime updates are honored immediately. The test is performed
> on datastore creation for early detection and before garbage collection
> phase 1. The test is enabled by default, but an opt-out option can be
> set via the datastore tuning parameters for backwards compatibility.
this is outdated ;)
>
> Further, add a datastore tuning parameter to reduce the wait period for
> chunk removal in phase 2 of garbage collection. Make this conditional on
> the atime update check being enabled and successful, to avoid possible
> data loss.
>
> Most notable changes sice version 1 (thanks Fabian and Thomas for
> comments and suggestions):
> - Take into account Linux timestamp granularity, do not set timestamp
> to the past, as that introduces other error paths such as lack of
> permissions or fs limitations.
> - Check relatime behavior, if atime behaviour is not honored. Fallback
> to original cutoff in that case.
> - Adapt tuning parameter names.
but here it is correct :)
>
> Most notable changes sice version 1 (thanks Fabian and Thomas for
> comments and suggestions):
> - Optimize check by using the all zero chunk
> - Enable the check by default and fail GC job if not honored, but allow
> to opt-out
> - Add GC wait period tuning option
>
> Link to the issue in the bugtracker:
> https://bugzilla.proxmox.com/show_bug.cgi?id=5982
>
> proxmox:
>
> Christian Ebner (2):
> pbs api types: add garbage collection atime safety check flag
> pbs api types: add option to set GC chunk cleanup atime cutoff
>
> pbs-api-types/src/datastore.rs | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> proxmox-backup:
>
> Christian Ebner (7):
> datastore: use libc's timespec constants instead of redefinition
> fix #5982: garbage collection: check atime updates are honored
> ui: expose GC atime safety check flag in datastore tuning options
> docs: mention GC atime update check for tuning options
> datastore: conditionally use custom GC atime cutoff if set
> ui: expose GC atime cutoff in datastore tuning option
> docs: mention gc-atime-cutoff as datastore tuning option
>
> docs/storage.rst | 19 +++-
> pbs-datastore/src/chunk_store.rs | 144 ++++++++++++++++++++++++++++---
> pbs-datastore/src/datastore.rs | 32 +++++++
> src/api2/config/datastore.rs | 1 +
> www/Utils.js | 9 ++
> www/datastore/OptionView.js | 17 ++++
> 6 files changed, 208 insertions(+), 14 deletions(-)
>
> --
> 2.39.5
>
>
>
> _______________________________________________
> pbs-devel mailing list
> pbs-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
>
>
>
More information about the pbs-devel
mailing list