BTRFS snapshot size

Status
Für weitere Antworten geschlossen.

LeeRoy

Benutzer
Mitglied seit
14. Aug 2010
Beiträge
38
Punkte für Reaktionen
0
Punkte
6
Hi Leute,
ich habe kürzlich einen Hardware Upgrade auf eine aktuelle DS gemacht und habe dabei auf BTRFS gesetzt. Ich habe DSM 6.0.2-8451 Update 1 drauf, welches die btrfs-progs 4.0 mitbringt. Mit dem Paket "Snapshot & Replication" habe ich für einzelne Shares (=subvolumes) Snapshot schedules eingestellt, was an sich auch gut funktioniert.
Allerdings bin ich beim Versuch, den exklusiven Platzverbrauch eines Snapshots herauszufinden, fast geistig verfault.

> btrfs qgroup show /volume1
WARNING: Qgroup data inconsistent, rescan recommended
qgroupid rfer excl
-------- ---- ----
0/5 0.00B 0.00B
0/257 30.66GiB 0.00B
0/262 0.00B 0.00B
0/264 25.12GiB 0.00B
0/265 1.16TiB 0.00B
0/268 849.60GiB 0.00B
0/269 7.11GiB 0.00B
0/270 102.39GiB 0.00B
0/271 4.16MiB 0.00B
0/272 284.00MiB 0.00B
0/281 0.00B 0.00B
0/283 188.62GiB 0.00B
0/284 39.20GiB 0.00B
0/285 53.49GiB 0.00B


Unter den Subvolume IDs befinden sich auch Snapshots (ermittelt mit btrfs subvolume list /volume1). Jedoch wird auch bei einem Snapshot-Subvolume nur der referenzierte Platz angezeigt, der ggf. ja zu großen Teilen mit dem Live Filesystem identisch ist, also nicht mehrfach vorhanden und belegt ist.

Zum Vergleich habe ich in einer Linux VM mit aktuellem 4.4.0er Kernel und btrfs-progs v4.4 auch mal ein Subvolume erstellt, Daten draufgepackt, Snapshots erstellt und dann Daten gelöscht. Hier wird sauber angezeigt, auf welche Daten der Snapshot exklusiv zeigt:
root@lx-test:/pool-btrfs/subvol1# b qgroup show /pool-btrfs/
qgroupid rfer excl
-------- ---- ----
0/5 16.00KiB 16.00KiB
0/258 2.51GiB 16.00KiB
0/263 6.65GiB 4.14GiB ]


Das Synology Commando /usr/syno/sbin/synosharesnapshot snapsize testshare GMT+02-2016.09.26-00.00.03 gibt als Ergebnis auch nur den reference Wert aus, anstatt den exclusive Wert.

Ggf. hängt das auch nur mit der relativ alten Version der btrfs-progs zusammen, aber ich habe unter DSM schlichtweg keinen Weg gefunden.
Die Meldung mit der "inconsistent Quota data" bekomme ich weder mit einem btrfs quota scan /volume1 weg noch mit einem scrub.

Hat jemand eine Idee ? Zu hören, dass es anderen auch so geht wie mir wäre zumindest ein kleiner Trost...

Danke für jeden Hinweis & Gruß
 

LeeRoy

Benutzer
Mitglied seit
14. Aug 2010
Beiträge
38
Punkte für Reaktionen
0
Punkte
6
Ich habe mittlerweile eine Möglichkeit gefunden, den exklusiven Platzbedarf von Snapshots mit BTRFS auf Synology zu identifizieren:

Um den Snapshotplatz pro Share anzeigen zu lassen (Achtung, hier ist nur die Spalte "Exclusive" relevant und korrekt, die Spalte "Total" summiert fälschlicherweise den shared und exclusive Platz aller Snapshots auf):

btrfs filesystem du -s --si -g /volume1/@sharesnap/[a-zA-Z]*
Total Exclusive Set shared Filename
12943.24GB 0.99GB 773.48GB share1
731.51GB 1.30GB 42.30GB share2
328.01GB 0.00GB 82.01GB share3
29.36GB 26.21GB 3.15GB share4
1092.80GB 0.46GB 152.28GB share5

Wenn man mit o.g. Syntax noch ein Verzeichnis weiter geht, bekommt man auch den Platzbedarf eines jeden einzelnen Snapshots:

btrfs filesystem du -s --si -g /volume1/@sharesnap/[a-zA-Z]*/GMT*


Total Exclusive Set shared Filename
15.73GB 2.10GB 13.63GB /volume1/@sharesnap/test/GMT+01-2017.02.22-21.16.02
13.63GB 0.00GB 13.63GB /volume1/@sharesnap/test/GMT+01-2017.02.22-21.19.11
8.39GB 0.00GB 8.39GB /volume1/@sharesnap/test/GMT+01-2017.02.22-21.25.06
13.63GB 5.24GB 8.39GB /volume1/@sharesnap/test/GMT+01-2017.02.22-21.27.25

Da das btrfs Kommando hierbei jedes File (!) im Filesystem bzw. im Snapshot betrachtet, dauert die Sache eine Weile und verursacht hohe volume IO Last.
Auf meiner DS916+ mit 8GB RAM hat es ausserdem dazu geführt, dass ca. 70% des Memory als "used" angezeigt wurden. Das hat sich erst nach ca. 2-3h normalisiert, nachdem das Kommando fertig war.
Nichtsdestotrotz ist das endlich eine Möglichkeit, den Platzbedarf von Snapshots mit der Synology BTRFS Implementierung zu zeigen. Ich würde mir wünschen, dass Synology das (oder etwas resourcenschonenderes) in seine "Snapshot & Replication" App einbaut.
Ich werde den Vorschlag bei Syno machen - mal schauen ob es dort Gehör findet.
 

r000633

Benutzer
Mitglied seit
29. Aug 2013
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Danke für diesen Thread. Das ist wirklich sehr interessant, da das erstmals eine Möglichkeit eröffnet, zu sehen, wieviel die Snapshots tatsächlich verbrauchen. Mir fällt es schwer , das im Setup vernünftig zu definieren, wieviele Snapshots wie lange aufbewahrt werden, ohne eine solche Datenbasis zu haben.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.978
Punkte für Reaktionen
576
Punkte
134

r000633

Benutzer
Mitglied seit
29. Aug 2013
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Das Script ist grundsätzlich sicher eine gute Idee.
Bei mir läuft es jedoch nicht , wie gewünscht, ohne einzugreifen.
Ich hab das Script "manuell" runtergeladen - ist ein reines sh-script und habe es lokal plaziert.
Er führt auch schön eine Listung auf, der eigentlich spannende Teil der Exclusives ist aber in allen Fällen bei mir 0 Bytes.
Was definitiv nicht das ist, was ich gebraucht hätte, da ich gaaanz sicher bin, dass dort was "schlummert"...

Subvolume Total Exclusive ID
.........................................................................................
@syno 2.63GiB 0Bytes 257
video 8.00KiB 0Bytes 259
docker 45.85MiB 0Bytes 260
logon 348.00KiB 0Bytes 279
@sharesnap 108.00KiB 0Bytes 353
@sharesnap/logon 0Bytes 0Bytes 1044
@sharesnap/logon/GMT+01-2020.01.01-10.01.17 32.00KiB 0Bytes 1045
.........................................................................................
Total exclusive data 0Bytes

Ich hab mal nur einen minimalen Ausschnitt der ~ 500 Zeilen hier eingefügt...
Der Befehl von oben dauert zwar wirklich lang, liefert aber ein anderes (plausibleres Ergebnis...)
Vielleicht probiert ja mal noch einer von euch und kann erklären, dass es bei mir liegen muss - dann würde ich tatsächlich al in den Code einstiegen ...
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.978
Punkte für Reaktionen
576
Punkte
134
Ich hatte mir das noch gar nicht weiter angeschaut, bin da nur nebenbei drüber gestolpert...

Aber ich komm' zum selben Ergebnis, zeigt auch bei mir 0 Bytes exclusive an...
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat