ubuntuusers.de

bitmap.c von reiserfs verstehen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

frindly

Avatar von frindly

Anmeldungsdatum:
13. Juni 2007

Beiträge: 729

Wohnort: Recklinghausen

hallo, hier findet man die aktuelle bitmap.c datei von reiserfs: http://users.sosdg.org/~qiyong/lxr/source/fs/reiserfs/bitmap.c?v=2.6.16;a=x86_64 leider verstehe ich den quellcode nicht so gut. kann man darin erkennen, das reiserfs versucht eine fragmentierung beim speichern von dateien zu verhindern ???

Moderiert von encbladexp:

Thema in das richtige Forum "Shell & Programmierung" verschoben, bitte beachte die als Wichtig markierten Themen ("Welche Themen gehören hier her und welche nicht?"), Danke.

queue

Anmeldungsdatum:
5. November 2006

Beiträge: 307

Ich kenne mich zu wenig mit Dateisystemen aus, um die Strategie genau einschätzen zu können, aber für mich sieht es so aus, ja. Es wird nach einem "Fenster" ungenutzen Speichers gesucht, das groß genug ist, um die zu schreibenden Daten zu fassen. Damit sind sie erstmal nicht fragmentiert. So lese ich jedenfalls die Funktion scan_bitmap_block ab Zeile 139.

Ein Dateisystem, das stark fragmentiert, würde wohl einfach sequentiell freie Sektoren suchen und schreiben, ohne darauf Rücksicht zu nehmen, ob die Daten "passen".

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4668

Wohnort: Berlin

Ausserdem wird, wenn ich das richtig gesehen habe "überbelegt", also mehr Blöcke als erstmal nötig sind, damit die Datei noch Platz zum wachsen hat, ohne dass man neue Blöcke woanders suchen muss.

frindly

(Themenstarter)
Avatar von frindly

Anmeldungsdatum:
13. Juni 2007

Beiträge: 729

Wohnort: Recklinghausen

ok vielen dank demnach versucht das dateisystem zumindest mit einfachen mitteln eine fragmentierung zu vermeiden, und splittet erst, wenn es nicht anders geht...

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4668

Wohnort: Berlin

Wichtig ist übrigens nicht die "totale Defragmentierung" nach Windows Art, sondern die Lokalität, d.h. das die Datenblöcke möglichst nah beieinander liegen. Wenn die Reihenfolge nicht stimmt, oder ab und zu ein paar "fremde" Blöcke dazwischen liegen, dann macht das so gut wie keinen Unterschied, weil moderne Platten sowieso keine einzelnen Blöcke lesen, sondern in der Regel gleich einen ganzen Haufen in den Plattencache laden.

frindly

(Themenstarter)
Avatar von frindly

Anmeldungsdatum:
13. Juni 2007

Beiträge: 729

Wohnort: Recklinghausen

Hallo, ich habe folgenden Artikel zu dem Thema gefunden. Kann mir jemand kurz erläutern, was sich dahinter verbirgt? http://lkml.org/lkml/2006/8/22/286 Was wird über das verhindern von Fragmentierung gesagt???

Antworten |