Ich hatte heute eine Situation, in der ich meinen Computer neu gestartet habe und es hieß, ich müsse die Festplatte auf Konsistenz überprüfen. Ungefähr 10 Minuten später (bei "1%" abgeschlossen) gab ich auf und beschloss, es laufen zu lassen, wenn ich nach Hause gehe.
Zum Vergleich: Mein Heimcomputer verwendet Ext4 für alle Partitionen, und die Festplattenprüfungen (die etwa einmal pro Woche ausgeführt werden) dauern nur einige Sekunden. Ich erinnere mich, dass ich gelesen habe, dass schnelle Festplattenprüfungen Priorität hatten, aber ich weiß nicht, wie sie das tun könnten.
Wie führt Ext4 so schnell Festplattenprüfungen durch? Gibt es einen großen Durchbruch, nachdem NTFS herauskam (vor ~ 10 Jahren)?
Hinweis: Die NTFS-Festplatte hat ~ 300 GB und die Ext4-Festplatte ~ 500 GB. Beide sind ungefähr halb voll.
Antworten:
Es gibt zwei Hauptgründe für den Leistungsunterschied und zwei mögliche Gründe. Erstens die Hauptgründe:
Erhöhte Leistung von ext4 gegenüber NTFS
Verschiedene Benchmarks haben ergeben, dass das eigentliche ext4-Dateisystem eine Vielzahl von Lese- / Schreibvorgängen schneller als eine NTFS-Partition ausführen kann . Beachten Sie, dass diese Tests zwar keinen Hinweis auf die tatsächliche Leistung geben, wir diese Ergebnisse jedoch extrapolieren und als einen Grund verwenden können.
Warum ext4 tatsächlich eine bessere Leistung als NTFS erbringt, kann auf eine Vielzahl von Gründen zurückgeführt werden. Beispielsweise unterstützt ext4 die verzögerte Zuweisung direkt. Auch hier hängen die Leistungssteigerungen streng von der verwendeten Hardware ab (und können in bestimmten Fällen vollständig negiert werden).
Reduzierte Anforderungen an die Überprüfung des Dateisystems
Das ext4-Dateisystem kann auch schnellere Dateisystemprüfungen durchführen als andere gleichwertige Journal-Dateisysteme (z. B. NTFS). Laut der Wikipedia-Seite:
Und jetzt die zwei möglichen Gründe:
Dienstprogramme zur Überprüfung des Dateisystems selbst
Bestimmte Anwendungen führen möglicherweise unterschiedliche Routinen auf Dateisystemen aus, um die Integritätsprüfung tatsächlich durchzuführen. Dies ist leicht zu erkennen, wenn Sie das unter Linux festgelegte Dienstprogramm fsck im Vergleich zum Dienstprogramm chkdsk unter Windows verwenden. Diese Anwendungen sind auf verschiedenen Betriebssystemen für verschiedene Dateisysteme geschrieben. Der Grund, warum ich dies als möglichen Grund anspreche, ist, dass die Systemaufrufe auf niedriger Ebene in jedem Betriebssystem unterschiedlich sind. Daher können Sie die Dienstprogramme möglicherweise nicht direkt mit zwei verschiedenen Betriebssystemen vergleichen.
Festplattenfragmentierung
Dieser ist leicht zu verstehen und hilft uns auch, die Unterschiede zwischen Dateisystemen zu verstehen. Während alle digitalen Daten in einer Datei gleich sind, unterscheidet sich die Art und Weise , wie sie auf der Festplatte gespeichert werden, von Dateisystem zu Dateisystem erheblich. Die Dateifragmentierung kann offensichtlich die Zugriffsgeschwindigkeit erhöhen, was auf einen größeren Geschwindigkeitsunterschied zurückzuführen ist.
quelle
Nach meinem Verständnis versucht ext4, Daten in die größte kontinuierliche Lücke offener Inodes zu schreiben, in der sich derzeit keine Daten befinden. Dies verringert die Latenz erheblich, wenn diese Dateien gelesen werden müssen, da der gesamte Inhalt einer einzelnen Datei größtenteils auf einer einzigen fortlaufenden Spur liegt, sodass der Laufwerkskopf weniger nach etwas suchen muss, wenn er jeden Block findet, der die Daten enthält das macht diese eine Datei aus.
Es (ext4) kann immer noch fragmentiert werden, aber viel weniger und nicht unbedingt so, dass die Lese- / Schreibleistung wie bei NTFS stark beeinträchtigt wird. Unter NTFS werden Daten in die ersten offenen Blöcke im Pfad des Kopfes geschrieben.
Wo immer der Kopf liegt und offene Blöcke vorhanden sind, schreibt er so viele dieser Daten, wie passen, und schreibt dann überall dort, wo er an anderer Stelle auf der Festplatte landet, wenn der Kopf beispielsweise in einen anderen Teil der Festplatte verschoben werden muss, um auf eine andere Datei zuzugreifen muss in einem Programm geöffnet werden, das Sie gerade geladen haben, während diese andere Datei noch geschrieben wurde.
Dies bedeutet, dass die Datei, wenn sie groß ist, wahrscheinlich in voneinander getrennten Blöcken auf separaten Spuren verteilt ist. Daher ist für NTFS häufig eine Defragmentierung erforderlich.
Auch, warum Server es im Allgemeinen nicht verwenden, da auf einem Server, auf dem ständig rund um die Uhr Daten geschrieben und gelesen werden, schwerere E / A-Vorgänge ausgeführt werden.
Ich bin mir auch nicht sicher, aber wenn ich
chkdsk
die Integrität jeder Datei überprüfe (was ich sowohl glaube als auchfsck
tue), wäre sie im Vergleich zu dem, was ich gerade über das Fragmentieren unter NTFS beschrieben habe, auch langsamer.quelle
Windows sollte beim Start niemals ein NTFS-Volume überprüfen müssen. Wenn dies der Fall ist, ist etwas ernsthaft schiefgegangen - etwas viel Schlimmeres als ein bloßer BSOD oder ein Stromausfall. Es besteht eine erhebliche Wahrscheinlichkeit, dass einige Ihrer Daten auch durch die beschädigten Metadaten des Dateisystems beschädigt wurden. Die Festplattenprüfung kann das nicht erkennen. Ihr einziger Zweck ist es, weitere Korruption zu vermeiden.
KB2854570 listet einige Gründe auf, aus denen dies passieren kann. Eine Möglichkeit besteht darin, ein Betriebssystem mit einem gemounteten Volume in den Ruhezustand zu versetzen, den Inhalt des Volumes zu ändern und dann den Ruhezustand mit dem (erneut) angehängten Volume fortzusetzen. Wenn Sie dies tun, besteht eine hohe Wahrscheinlichkeit einer stillen Datenbeschädigung.
Ich weiß nicht, warum sich Ihr ext4-Dateisystem einmal pro Woche selbst überprüft hat, aber es war wahrscheinlich (hoffentlich) nicht auf eine vergleichbare Krise zurückzuführen, die sich wöchentlich wiederholte. Es handelte sich wahrscheinlich nur um eine routinemäßige Überprüfung der geistigen Gesundheit und nicht um eine vollständige Konsistenzprüfung.
quelle