Defragmentieren?

Linux braucht man nicht defragmentieren, steht im SuSE-Handbuch, na prima, aber warum nicht, finde ich nirgendwo.
Was macht denn Linux anders als Windows?
Werden Daten anders gespeichert?
Oder defragmentiert es klammheimlich selber?
Gruss
Rainer

hi,

Linux braucht man nicht defragmentieren, steht im
SuSE-Handbuch, na prima, aber warum nicht, finde ich
nirgendwo.
Was macht denn Linux anders als Windows?
Werden Daten anders gespeichert?
Oder defragmentiert es klammheimlich selber?

less /usr/src/linux/fs/ext2/* :wink:

lynx http://www.koehntopp.de/kris/artikel/diplom/node13.h…

kurz: ext2 kennt keine „Fragmente“, eine „Defragmentierung“ wäre damit sinnfrei.

al

Moin,

Linux braucht man nicht defragmentieren, steht im
SuSE-Handbuch, na prima, aber warum nicht, finde ich
nirgendwo.
Was macht denn Linux anders als Windows?
Werden Daten anders gespeichert?
Oder defragmentiert es klammheimlich selber?

kurz: ext2 kennt keine „Fragmente“, eine „Defragmentierung“
wäre damit sinnfrei.

      • Schnipp - - -
        Da ext2 keinen Versuch unternimmt, die Anordnung von Blöcken innerhalb einer Blockgruppe der Geometrie des Mediums anzupassen, entfallen
        Routinen zur Optimierung der Lage von Blöcken innerhalb einer Spur.
      • Schnapp - - -
        So wie ich das verstehe, versucht ext2 garnicht erst, einen unfragmentierten Zustand herzustellen.
      • Schnipp - - -
        ext2 versucht jedoch, Datenblöcke einer Datei in möglichst großen
        zusammenhängenden Stücken (extents) zu belegen. Dazu verwendet das Dateisystem einen Blockbelegungsalgorithmus, der mit einem Zielblock
        arbeitet (goal based allocator). Dieser Algorithmus versucht zunächst, den Zielblock zu belegen. Ist dieser nicht verfügbar, werden in der
        Umgebung des Zielblocks freie Blöcke gesucht. Ist auch dort kein freier Platz vorhanden, wird auf eine lineare Suche nach freiem Platz zurückgegriffen.
      • Schnapp - - -
        Hier wiederum wird fragmentiert gespeichert.

Im Übrigen: konzeptionell kann ich mir ein fragmentierungsfreies Dateisystem nur vorstellen, wenn stattdessen ständig Dateien auf der Platte hin- und herkopiert werden. Andernfalls bleiben beim Löschen einer Datei Lücken zurück, die ggf. von folgenden Dateien stückweise genutzt werden -> Fragmentierung.

Könntest Du nochmal versuchen, etwas Licht ins Dunkel zu bringen?

Thorsten

hi,

      • Schnipp - - -
        Da ext2 keinen Versuch unternimmt, die Anordnung von Blöcken
        innerhalb einer Blockgruppe der Geometrie des Mediums
        anzupassen, entfallen
        Routinen zur Optimierung der Lage von Blöcken innerhalb einer
        Spur.
      • Schnapp - - -
        So wie ich das verstehe, versucht ext2 garnicht erst, einen
        unfragmentierten Zustand herzustellen.

Jein, es gibt einfach keine Fragmente im Sinne von FAT verstanden. Wobei durch caching/look-ahead etc. beim schreiben tendenziell dennoch logisch zusammenhängende Areale (->extents) entstehen.

      • Schnipp - - -
        ext2 versucht jedoch, Datenblöcke einer Datei in möglichst
        großen
        zusammenhängenden Stücken (extents) zu belegen. Dazu verwendet
        das Dateisystem einen Blockbelegungsalgorithmus, der mit einem
        Zielblock
        arbeitet (goal based allocator). Dieser Algorithmus versucht
        zunächst, den Zielblock zu belegen. Ist dieser nicht
        verfügbar, werden in der
        Umgebung des Zielblocks freie Blöcke gesucht. Ist auch dort
        kein freier Platz vorhanden, wird auf eine lineare Suche nach
        freiem Platz zurückgegriffen.
      • Schnapp - - -
        Hier wiederum wird fragmentiert gespeichert.

„fragmentiert“ ja, aber nicht in dem Sinne zu verstehen, wie das bei FAT geschieht. Die genaue Implementierung hab ich auch nicht im Kopf, wozu auch, steht ja unter /usr/src/linux/fs. ext2 *versucht* sich beim Schreiben vorteilhaft zu strukturieren.

Im Übrigen: konzeptionell kann ich mir ein
fragmentierungsfreies Dateisystem nur vorstellen, wenn
stattdessen ständig Dateien auf der Platte hin- und herkopiert
werden. Andernfalls bleiben beim Löschen einer Datei Lücken
zurück, die ggf. von folgenden Dateien stückweise genutzt
werden -> Fragmentierung.

Es handelt sich hierbei aber um „Fragmentierung“ in deinem Begriffsverständnis, nicht um Fragmentierung in dem Sinne, wie sie bei FAT als Problem auftritt. Eine Festplatte hat ja eine geringfügig intelligentere Anordung der Kopfstruktur als eine primitive Bandmaschine, von daher sind Sprünge nicht prinzipiell performanceschädlich.

Natürlich ist ext2 ( auch ext3, ReiserFS, JFS … ) auch nur innerhalb gewisser Parameter realisiert. — Wenn Du Kris’ Diplomarbeit weiterliest, wirst Du auch auf etliche Schwachstellen im ext2 stossen; eine Fragmentierung *in der Form* wie das bei FAT geschieht und mit den *Auswirkungen* gibt es im ext2 aber eben nicht.

Es kommt also daraus an, was man unter dem Begriff Fragmentierung versteht. Da es ursprünglich um eine Frage nach der Notwendigkeit der Defragmentierung ging, war klar, dass der zur FAT gehörende Begriff gemeint war, mit Hinblick auf die negativen Auswirkungen.

–> Wenn Du’s ganz genau wissen willst, wirst Du wohl um das Arbeiten mit den Primärtexten nicht herumkommen; schliesslich spielen bei einem Dateisystem ja viele andere Parameter auch noch eine Rolle.

Hoffe, ein klein wenig zur Begriffsverwirrung beigetragen zu haben :wink:

al

Moin,

      • Schnipp - - -
        ext2 versucht jedoch, Datenblöcke einer Datei in möglichst
        großen
        zusammenhängenden Stücken (extents) zu belegen. Dazu verwendet
        das Dateisystem einen Blockbelegungsalgorithmus, der mit einem
        Zielblock
        arbeitet (goal based allocator). Dieser Algorithmus versucht
        zunächst, den Zielblock zu belegen. Ist dieser nicht
        verfügbar, werden in der
        Umgebung des Zielblocks freie Blöcke gesucht. Ist auch dort
        kein freier Platz vorhanden, wird auf eine lineare Suche nach
        freiem Platz zurückgegriffen.
      • Schnapp - - -
        Hier wiederum wird fragmentiert gespeichert.

„fragmentiert“ ja, aber nicht in dem Sinne zu verstehen, wie
das bei FAT geschieht.

Fragmentieren gibt es nicht im Sinne des einen oder anderen Dateisystems. Fragmentieren bedeutet, daß die Festplatte eine Datei auf der ganzen Platte zusammensuchen muß.
Defragmentieren bedeutet in diesem Zusammenhang ob nun bei FAT uder ext2, daß diese Datein wieder zusammengefügt werden, damit zum Lesen weniger Kopfbewegungen erforderlich sind.

Im Übrigen: konzeptionell kann ich mir ein
fragmentierungsfreies Dateisystem nur vorstellen, wenn
stattdessen ständig Dateien auf der Platte hin- und herkopiert
werden. Andernfalls bleiben beim Löschen einer Datei Lücken
zurück, die ggf. von folgenden Dateien stückweise genutzt
werden -> Fragmentierung.

Es handelt sich hierbei aber um „Fragmentierung“ in deinem
Begriffsverständnis, nicht um Fragmentierung in dem Sinne, wie
sie bei FAT als Problem auftritt.

Wo soll da der Unterscheid sein?

Eine Festplatte hat ja eine geringfügig intelligentere
Anordung der Kopfstruktur als eine primitive Bandmaschine,
von daher sind Sprünge nicht prinzipiell performanceschädlich.

Die Intelligenz der Platte hat nichts damit zu tun, daß Kopfbewegungen langsamer sind als keine Kopfbewegungen.

eine Fragmentierung *in der Form* wie das bei FAT geschieht
und mit den *Auswirkungen* gibt es im ext2 aber eben nicht.

Nochmal: Wo ist der Unterschied?

–> Wenn Du’s ganz genau wissen willst, wirst Du wohl um
das Arbeiten mit den Primärtexten nicht herumkommen;

Ich habe Dir gerade Zitate aus dem Primärtext genannt. Da wird genau das beschrieben, was bei FAT ‚Fragmentierung‘ genannt wird.

Thorsten

x

Hab gerade gesehen, mein voriger Artikel wurde 16 mal gelesen.
Also, oT bedeutet ohne Text, die Nachricht steht in der Titelzeile, kann man getrost überblättern :wink:
Gruss
Rainer