Berechnung des benötigten Speichers je Namespace

herzkerl

Active Member
Mar 18, 2021
104
22
38
Da wir von unseren Kunden Offsite-Backups via Proxmox Backup Server ziehen wäre es super, wenn wir den benötigten Speicherplatz je Namespace sehen könnten – also die Größe der für alle Backups in einem Namespace benötigten Blöcke inkl. Metadaten (falls möglich).

Im Moment müssten wir einen Datastore je Kunde anlegen – wenn wir einen gemeinsamen Datastore nutzen, haben wir ja aber den Vorteil der Deduplizierung über alle Backups hinweg.

Falls das schon irgendwie möglich ist, freue ich mich über einen Lösungsansatz. Falls nicht, eröffne ich auf Wunsch auch gerne einen Feature Request (falls das hier nicht ausreichend ist).
 
Da PBS, wie bereits erwähnt, Deduplikation durchführt ist die Ermittlung des Speicherplatzverbrauchs pro Namespace etwas tricky.
Momentan ist das direkt leider nicht möglich, es gibt allerdings bereits einen Feature Request in unserem Bugtracker [1]. Je mehr User sich ein bestimmtes Feature wünschen fließt in unsere Priorisierung ein.

Man könnte sich inzwischen mit etwas Scripting Abhilfe schaffen:

Mithilfe des folgenden Kommandos kann man sich u.A. die Liste aller Chunks eines einzelnen Backups ausgeben lassen:

Code:
proxmox-backup-debug inspect file /path/to/drive.img.fidx --output-format json-pretty --decode -

Das könnte man nun für jedes Backup eines Namespaces machen, um so eine Liste von allen Chunks der Backups in einem Namespace zu erhalten.

Wenn ich Ihren Use Case richtig verstehe, wären Sie daran interessiert wie viel Speicherplatz benötigt wird um alle Backups eines Namespaces zu speichern. Dann müsste man hier eine (deduplizierte) Liste von allen Chunks aller Backups in einem Namespace via obenstehenden Befehl ermitteln. Dann den Speicherverbrauch der entsprechenden Chunks addieren.

Wenn man das für jeden Namespace machen würde, dann ist die Summe des Speicherverbrauchs aller Namespaces möglicherweise höher als der tatsächliche Speicherverbrauch (wenn sich die Namespaces Chunks teilen).
Wenn das nicht gewünscht ist, könnte man alternativ den Speicherplatz von mehrfach referenzierten Chunks aliquot zählen. Das erhöht allerdings den Aufwand der Berechnung noch einmal deutlich, da man sich dann ja alle Backups von allen Namespaces ansehen muss um das errechnen zu können.


[1] https://bugzilla.proxmox.com/show_bug.cgi?id=4506
 
  • Like
Reactions: herzkerl
Falls die Backups mit individuellen keys verschlüsselt sind, ist Deduplizierung über verschiedene Namespaces sowieso schwierig.
 
  • Like
Reactions: shanreich
Mithilfe des folgenden Kommandos kann man sich u.A. die Liste aller Chunks eines einzelnen Backups ausgeben lassen:

Code:
proxmox-backup-debug inspect file /path/to/drive.img.fidx --output-format json-pretty --decode -
Das könnte man nun für jedes Backup eines Namespaces machen, um so eine Liste von allen Chunks der Backups in einem Namespace zu erhalten.
Danke für die Rückmeldung und den tollen Workaround. Ich habe das gerade getestet, bekomme aber als Antwort die Größe der virtuellen Disk zurück, d.h. nicht die tatsächliche Größe. Unterliege ich hier einem Denkfehler?
 
Ja, die Größe die das Command zurück liefert ist die tatsächliche Größe der virtuellen Disk (ohne Kompression & Deduplikation von PBS).

Wie bereits erwähnt, um dann den tatsächlichen Speicherverbrauch des Backups zu ermitteln müssten Sie stattdessen die Größe der Chunks, die in dem Backup vorhanden sind, aufsummieren. Dann kommen Sie auf die tatsächlich verbrauchte Größe des Backups. Die Liste von allen Chunks sind in dem Output unter dem Key chunk-digests inkludiert. Beachte Sie dabei bitte die Anmerkungen aus meinem ersten Post.
 
  • Like
Reactions: herzkerl