[pbs-devel] [PATCH proxmox-backup v3 0/7] wait for active operations to finish before s3 refresh
Christian Ebner
c.ebner at proxmox.com
Thu Nov 13 15:22:07 CET 2025
Datastore contents located on the s3 backend can be refreshed on the local
datastore cache by running an s3-refresh, which will set the maintenance mode
s3-refresh to block any read/write operation and fetch the contents to a
temporary directory before moving them in place if the fetching was successful.
Setting the maintenance mode has however no effect on already active operations,
which can cause inconsistencies once the s3 refresh moves the temporary folders
in place.
Fix this by actively waiting for ongoing read/write operations to finish before
starting with the s3-refresh and locking the datastore config while the refresh
is ongoing, so the maintenance mode cannot be altered.
Changes since version 2 (thanks @Fabian for review):
- combine previously split helpers into common one
- also guard s3-refresh during datastore recreaton
Changes since version 1 (thanks @Fabian for review):
- reuse and check for active operations based on unmount logic
- reuse and check for correct maintenance mode based on unmount logic
proxmox-backup:
Christian Ebner (7):
api: admin: drop useless option for do_unmount_device() parameter
api: admin: rework waiting on active operations and maintenance
locking
api: admin: make s3 refresh handler sync
datastore: s3 refresh: set/unset maintenance mode in api handler
api: datastore: wait for active operations to clear before s3 refresh
api: config: avoid unneeded backend instance on s3 store recreation
api: config: guard s3-refresh on datastore recreation
pbs-datastore/src/datastore.rs | 31 +-------
src/api2/admin/datastore.rs | 127 +++++++++++++++++++++------------
src/api2/config/datastore.rs | 43 +++++------
3 files changed, 98 insertions(+), 103 deletions(-)
Summary over all repositories:
3 files changed, 98 insertions(+), 103 deletions(-)
--
Generated by git-murpp 0.8.1
More information about the pbs-devel
mailing list