ubuntuusers.de

Befehle Btrfs-Dateisystem

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Befehle_Btrfs-Dateisystem.

syscon-hh

(Themenstarter)

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

mal-zeit schrieb:

Kann das bestätigt werden?

Im Prinzip ja - nur es läuft mit dem (alten) Befehl durch - vorausgesetzt, man hat den richtigen Pfad gesetzt!

  • ohne Pfadangabe:

root@PRECISE-SERVER:/home/laura# btrfs fi ba
usage: btrfs [filesystem] balance <command> [options] <path>
   or: btrfs [filesystem] balance <path>
....
....
'btrfs filesystem balance' command is deprecated, please use
'btrfs balance start' command instead.
root@PRECISE-SERVER:/home/laura#
  • mit Pfadangabe:

root@PRECISE-SERVER:/home/laura# btrfs fi ba /home/laura/ARCHIV
root@PRECISE-SERVER:/home/laura#

Letzterer Befehl kommt nach entsprechender Bearbeitungszeit zum Prompt zurück. Das Ergebnis sieht dann so aus (Auszug):

root@PRECISE-SERVER:/home/laura# btrfs fi sh
failed to read /dev/sr0
Label: 'PRECISE-DATA'  uuid: 040e9b3a-56a0-48ac-8e77-a9878bc5759b
	Total devices 2 FS bytes used 104.96GB
	devid    3 size 232.86GB used 106.51GB path /dev/sdc1
	devid    2 size 232.88GB used 106.51GB path /dev/sdb1
....
root@PRECISE-SERVER:/home/laura#

Und außerdem macht es nur Sinn auf einem Btrfs-RAID-Verbund! Der alternative Befehl läuft hier überhaupt nicht - zumindest ist keinerlei Prozessorbelastung auszumachen, bzw. kommt nicht an den Prompt zurück, so dass man die anderen Befehlsoptionen gar nicht ausführen kann (z.B pause).

mal-zeit

Avatar von mal-zeit

Anmeldungsdatum:
19. Februar 2013

Beiträge: 105

syscon-hh

Und außerdem macht es nur Sinn auf einem Btrfs-RAID-Verbund! ....

Hm....

bei mir sah nach Ausgabe von df -h meine /dev/sda1 wie folgt aus, bei der es sich um eine 4 GiB SD-Karte handelt (~200 MiB als /boot, ~3 GiB / und Rest als /home)(Gedächtnisprotokoll):

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       3.2G  1.1G  1.2G  54% /

Nach dem balance:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       3.2G  1.1G  1.8G  37% /

(Nagel mich bitte keiner auf's Komma genau fest, wie gesagt → Gedächtnis)

Gruß,

syscon-hh

(Themenstarter)

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

  • df -h /<path>

ergibt in der Regel unter einem Btrfs-Dateisystem irreführende Ergebnisse. Am Beispiel zu obiger Ausgabe (unter ARCHIV ist ein zwei HD's umfassendes Btrfs-RAID1 eingehängt):

root@PRECISE-SERVER:/home/laura# df -h /home/laura/ARCHIV
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sdc1       466G    210G  256G   46% /home/laura/ARCHIV

Während oben mit der Abfrage unter btrfs fast noch reguläre Ergebnisse erscheinen und vor einem btrfs balance durchaus unterschiedlich sind - ist hinterher durchaus der Erfolg zu sehen.

  • 232,86 GB / 106,51 GB

    • das je RAID-Device

ist mit df -h die Summe beider Devices gelistet. Und mit der Abfrage erhält man (hier nur für /dev/sdb):

root@PRECISE-SERVER:/home/laura# parted -l
Modell: ATA ST3250410AS (scsi)
Festplatte  /dev/sdb:  250GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang  Ende   Größe  Typ      Dateisystem  Flags
 1      1049kB  250GB  250GB  primary  btrfs

Prüfe das mal durch - aber bitte auf einem Btrfs-RAID-Verbund. Bei anderen Konstellationen werden nur Meta-Daten hin und her geschoben bzw. bei vorhandenen "Schappshüssen" noch mehr verwirrende Ergebnisse erzielt!

g123

Avatar von g123

Anmeldungsdatum:
5. November 2007

Beiträge: 490

Mit dem angegebene Befehl zum Defragmentieren werden nur die Metadaten für das Verzeichnis /home defragmentiert. Wäre es hier nicht sinnvoller einen Befehl anzugeben, der alle Daten defragmentiert?

Aus dem btrfs Wiki:

1
sudo find [subvol [subvol]] -xdev -type f -exec btrfs filesystem defragment -- {} +

wobei \( -type f -o -type d \) statt -type f wahrscheinlich sinnvoller ist.

syscon-hh

(Themenstarter)

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

Teste das bitte durch - es ist für uns sehr aufwendig, jede einzelne Position in Bezug auf den letzten Stand der

  • btrfs-tools

zu überprüfen. Falls wir mal was entdecken, dann machen wir das schon. Du darfst das durchaus im WIKI korrigieren. In diesem Fall hier

Danke und gruß syscon-hh

Kreuzschnabel

Anmeldungsdatum:
12. Dezember 2011

Beiträge: 1128

Nochmal zum Thema balance: Die Reduzierung auf RAID-Systeme im Artikel ist in der Tat sehr unglücklich. Jedes Btrfs, auch auf einem USB-Stick, kann von einem balance profitieren, sogar deutlich! Das sollte ergänzt werden.

Der Gewinn ist immer dann gegeben, wenn auf ein btrfs filesystem usage <mountpoint> der ausgegebene Wert Device unallocated wesentlich kleiner ist als der Wert Free (statfs, df). Denn dann ist der freie Platz erheblich fragmentiert.

Ich hatte gerade den Fall, auf eine Backup-Ressource eine einzelne Datei von 30 GB kopieren zu wollen (Container einer virtualbox-Maschine). Platz reichte nicht, obwohl 136 GB auf der Ressource frei waren. btrfs filesystem usage gab aus, dass von den 136 freien GB nur 14 GB unalloziert waren. Daher konnten von der 30-GB-Datei nur 14 GB am Stück geschrieben werden, danach wurde fragmentiert. Ist aber erstmal der gesamte Platz der Ressource alloziert, wird der Platz für zu schreibende Metadaten knapp. Davon muss aber um so mehr geschrieben werden, je stärker die zu schreibenden Daten fragmentiert werden, und schnell kommt man an den Punkt, wo zwar rechnerisch noch Platz frei wäre, aber die Metadaten keinen neuen Chunk mehr anlegen können (ist ja schon alles alloziert) und damit festsitzen.

Das lässt sich durch ein balance lösen – allerdings brauchte ich schon -dusage=90 für eine brauchbare Defragmentierung des freien Platzes, also alle Chunks mit weniger als 90 Prozent Belegung umsortieren, das braucht schonmal einige Stunden.

In diesem speziellen Fall wurde das btrfs nicht frisch angelegt und befüllt, sondern von einem ext3-System konvertiert. Ich kann mir vorstellen, dass das was ausmacht, eventuell sollte man ext-Dateisysteme nach dem Konvertieren generell balancen. Dazu fehlen mir allerdings die Quellen.

Ich kann mir da mal was überlegen, wenn keiner sein protestierendes Stimmchen erhebt.

--ks

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

der Artilel ist sowieso seit ~1 Jahr ungetestet, d.h. der wandert demnächst ins Archiv - wenn niemand testet. In der Regel ist es so, dass man bei ungetesteten Artikeln halbwegs freie Hand innerhalb der Wikirichtlinien hat, den Artikel auf den aktuellen Stand zu bringen inkl. inhaltllichen Ergänzungen / Streichungen.

Wenn du Interesse an dem Thema hast kannst du dir den Artikel vom Wikiteam in die Baustelle verschieben lassen, um an Artikel zu arbeiten.

Gruß, noisefloor

Antworten |