From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 214F01FF0A7 for ; Wed, 16 Sep 2026 16:49:42 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 78CA521627; Wed, 16 Sep 2026 16:49:04 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com, pve-devel@lists.proxmox.com Subject: [PATCH many v2 0/8] fix #7530: Implement download bandwidth and restore limits for pbs-restore Date: Wed, 16 Sep 2026 16:48:35 +0200 Message-ID: <20260916144843.567913-1-c.ebner@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: 1789570136474 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.651 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust 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: 5BO3LJSNHCZBHLQBBGHVFDE3NCCH3VDP X-Message-ID-Hash: 5BO3LJSNHCZBHLQBBGHVFDE3NCCH3VDP X-MailFrom: c.ebner@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 VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: This patch series implements rate limiting functionality for restores using pbs-restore. In particular it exposes optional `bwlimit` and `rate-limit` flags, the former to impose download bandwidth limits, the latter to impose limits on the output data stream, taking into account zero size chunks and data after decompression. The output rate limit is further used to enforce the limit when performing restores via the qemu-server stack, so it is imposed also when the restore is performed via qmrestore and the PVE UI. For proxmox-backup-qemu some cleanups and dependencies are bumped as part of the series as well in order to keep it up-to-date and compile it cleanly with the latest version available of the proxmox-backup submodule. Required build order is: - pbs-api-types - proxmox-backup-qemu - pve-qemu - qemu-server Changes since version 1: - Rebased all patches onto respective current master - Refactored proxmox-backup-qemu patches as the submodule dependency has already been bumped since the previous version. Link to the bugtracker issue: https://bugzilla.proxmox.com/show_bug.cgi?id=7530 proxmox: Christian Ebner (1): pbs-api-types: expose ClientRateLimitConfig fields as pub pbs-api-types/src/traffic_control.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) proxmox-backup-qemu: Christian Ebner (5): commands/restore: fix useless borrow clippy warnings for archive names commands: fix clippy error for reimplementing Result::ok() commands: extend stricter type checks for guest config archive names restore: implement `bw-limit` parameter imposing download rate limits restore: implement `rate-limit` imposing chunk data stream limits Cargo.toml | 4 +++- current-api.h | 14 +++++++++++ src/backup.rs | 3 ++- src/commands.rs | 29 +++++++++++++---------- src/lib.rs | 63 +++++++++++++++++++++++++++++++++++++++++++++++-- src/restore.rs | 44 ++++++++++++++++++++++++++-------- 6 files changed, 130 insertions(+), 27 deletions(-) pve-qemu: Christian Ebner (1): fix #7530: pbs-restore: expose optional rate limit parameters ...se-optional-parameters-imposing-band.patch | 78 +++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 79 insertions(+) create mode 100644 debian/patches/pve/0047-pbs-restore-expose-optional-parameters-imposing-band.patch qemu-server: Christian Ebner (1): pbs-restore: set restore bandwidth limit for volumes debian/control | 2 +- src/PVE/QemuServer.pm | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) Summary over all repositories: 11 files changed, 215 insertions(+), 30 deletions(-) -- Generated by murpp 0.11.0