From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 21A9D1FF13C for ; Thu, 30 Apr 2026 17:07:00 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D993EE468; Thu, 30 Apr 2026 17:06:59 +0200 (CEST) From: Robert Obkircher To: pbs-devel@lists.proxmox.com Subject: [RFC proxmox{,-backup} 00/13] gc maintenance mode and full datastore protection Date: Thu, 30 Apr 2026 17:05:38 +0200 Message-ID: <20260430150607.330413-1-r.obkircher@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1777561484342 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.063 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: XNERN57ER2WZHLGQ32MAUHR3F35ZAQUG X-Message-ID-Hash: XNERN57ER2WZHLGQ32MAUHR3F35ZAQUG X-MailFrom: r.obkircher@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Add a maintenance mode that only allows garbage collection, and avoid running out of space by checking how much is available before writes. I mostly wanted to ask if it really makes sense to add the maintenance mode. It could also just be treated as a special case where the entire space is reserved. I'm also not super happy with the "check before writes" approach but I couldn't come up with a better apporach either. Let me know if you have other ideas. proxmox: Robert Obkircher (3): pbs-api-types: add datastore operation variant for reclaiming storage pbs-abi-types: add GarbageCollection maintenance mode pbs-api-types: add reserved space to datastore tuning options pbs-api-types/src/datastore.rs | 8 ++++++++ pbs-api-types/src/maintenance.rs | 18 +++++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) proxmox-backup: Robert Obkircher (10): task tracking: count Reclaim datastore operations as writes datastore: open datastores with Reclaim instead of Write operation fix #5797: www: display new GarbageCollection maintenance mode www: access active operation fields by name instead of index www: don't claim that all active writers are gc mode conflicts chunk_store: add method to limit file system usage chunk_store: check file system space before inserting new chunks datastore: check file system space for blobs and group notes api2: backup: check space for fixed and dynamic index files fix #7254: datastore: refuse new backps when capacity is almost full pbs-datastore/src/chunk_store.rs | 46 ++++++++++++-- pbs-datastore/src/datastore.rs | 15 +++++ pbs-datastore/src/file_system_limit.rs | 87 ++++++++++++++++++++++++++ pbs-datastore/src/lib.rs | 2 + pbs-datastore/src/task_tracking.rs | 2 + src/api2/admin/datastore.rs | 12 ++-- src/api2/admin/namespace.rs | 2 +- src/api2/backup/environment.rs | 23 +++++++ src/api2/backup/mod.rs | 19 +++++- src/api2/config/datastore.rs | 2 + src/bin/proxmox-backup-proxy.rs | 2 +- src/server/prune_job.rs | 2 +- www/Utils.js | 24 +++++-- www/datastore/OptionView.js | 19 +++++- www/window/MaintenanceOptions.js | 1 + 15 files changed, 236 insertions(+), 22 deletions(-) create mode 100644 pbs-datastore/src/file_system_limit.rs Summary over all repositories: 17 files changed, 255 insertions(+), 29 deletions(-) -- Generated by git-murpp 0.8.1