Was sind die Unterschiede zwischen HFS+ mit Journaling und HFS+ ohne Journaling?

Ich bin dabei, eine externe Festplatte (HDD) zu formatieren.

Was sind die Hauptunterschiede zwischen HFS+ mit Journaling und HFS+ ohne Journaling? Abgesehen von der Tatsache, dass einer über Journaling verfügt und der andere nicht, wie wirkt sich dies auf die Leistung des Laufwerks aus (mit Zahlen)?

Mein Bauchgefühl ist, dass bei "normaler" Verwendung Journaling der richtige Weg wäre, aber gibt es Situationen, in denen HFS+ ohne Journaling in Betracht gezogen werden sollte? Die Linux-Kompatibilität ist eine, da das hfsplus-Modul des Kernels anscheinend Lesen und Schreiben auf HFS+ ohne Journaling unterstützt, aber nur Lesen auf HFS+ mit Journaling.

Sonst noch etwas Erwähnenswertes?

Antworten (3)

Ich habe keine Zahlen, um die Aussage zu untermauern, aber die Verwendung von HFS + ohne Journal ist eine gute Idee in bestimmten Volumes, die absolute Geschwindigkeit erfordern, ohne sich (zu sehr) Gedanken über einen möglichen "Datenverlust" oder "Datenbeschädigung" zu machen Fall Stromausfall oder ähnliches.

Wann ist die Verwendung von HFS+ Non-Journaled eine SCHLECHTE Idee ?

  • Externe (USB, FW, ESata) Laufwerke, die häufig angeschlossen und wieder angeschlossen werden: Dies ist normalerweise eine schlechte Idee, da diese Laufwerke dazu neigen, sehr oft versehentlich getrennt und / oder ihre Stromquellen getrennt zu werden.

  • Partitionen, bei denen die Datenintegrität wichtig und der Schutz vor einem unerwarteten Stromausfall ein Muss ist. (Dokumente, Musik, Videos, Backups usw.).

Wann ist die Verwendung von HFS+ Non-Journaled eine gute Idee ?

  • Scratch, Temp, Trivial Storage und ähnliche Laufwerke und Partitionen, bei denen Geschwindigkeit > Datenintegrität bei Stromausfall ist. Sie möchten, dass Ihr Final Cut-Arbeitsvolume nicht aufgezeichnet wird (Sie haben sowieso einen UPS, nicht wahr?). Sie möchten, dass Ihre Photoshop-Temp nicht aufgezeichnet wird. Laufwerke zum Kopieren von Sachen (z. B. ein USB-Stick, wenn Sie sich um das ordnungsgemäße Auswerfen kümmern).

  • Jedes andere Laufwerk, das Portabilität und Kompatibilität erfordert, wie Sie richtig darauf hingewiesen haben.

Denken Sie daran, dass die Verwaltung des Journals einen kleinen Overhead hinzufügt, aber der Vorteil im Falle einer unsachgemäßen Deaktivierung des Volumes ist wichtig, nicht nur, um einen vollständigen Festplatten-"Scan" beim Start oder erneuten Mounten zu vermeiden, sondern auch um sicherzustellen, dass die Daten nicht vorhanden sind in erster Linie beschädigt.

Das Mounten eines Laufwerks ohne Journaling, das fälschlicherweise ausgehängt wurde, führt zu einem fsck -Scan, während das Laufwerk mit Journaling in kürzerer Zeit betriebsbereit sein kann (Scannen des Journals und Anwenden nicht festgeschriebener Transaktionen).

In Bezug auf Geschwindigkeit und Tests habe ich nicht viele Informationen, um die obige Behauptung zu untermauern. Soweit ich weiß, ist der Geschwindigkeitsunterschied jedoch nicht nur sehr gering und sogar schwer zu bemerken, sondern in einigen Fällen ist das Journaled-Dateisystem schneller als Nicht -journaliert.

Es stellt sich heraus, dass trotz des Overheads des Journals einige Vorgänge asynchron im Journaled-Laufwerk ausgeführt werden können, während die Nicht-Journaled-Version Dinge synchron ausführen muss.

Als Referenz habe ich ein wenig gegoogelt, um einen alten Vergleich zu finden (die Zahlen sind wahrscheinlich gültig, da sich HFS + seit ihren ersten Iterationen in OSX nicht wirklich geändert hat, außer dem Hinzufügen von Inline-Attributdatensätzen und der Sicherheit von Zugriffskontrolllistendateien und vielleicht etwas anderes.

Hier ist die Website mit den Diagrammen:

Vergleich zwischen HFS+ Journaled und HFS+ Non-Journaled

TL;DR:

Die Sequenz zum Kopieren/Duplizieren/Kopieren von Dateien war für HFS mit und ohne Journal ziemlich gleich schnell. Der gleiche Ablauf mit dem Falzapparat ging mit dem Journaled HFS noch einmal etwas schneller

(Hervorhebung von mir)

Fazit

Ich bin etwas überrascht, die obigen Ergebnisse zu sehen, da ich irgendwie davon überzeugt war, dass die Verwendung von Non-Journaled für einige Operationen wirklich schneller war, aber anscheinend die kleinen Fälle, in denen es einen Unterschied machen kann, durch die "Sicherheit" von Journaling übergewichtet werden.

@Griffo eigentlich ist es +1 auf die Frage, damit ich nachforsche und zu der obigen Schlussfolgerung komme ;-) Danke.
@MartínMarconcini Dem Antwortabschnitt "kleiner Overhead" fehlt der Overhead in Bezug auf den Speicherplatzverbrauch. Wie viel mehr Speicherplatz steht beispielsweise zum Speichern von Dateien zur Verfügung, wenn Journaling nicht aktiviert ist?
@ProBackup Obwohl ich keine "Zahlen" habe, glaube ich wirklich, dass die Größe des Journals in den heutigen Laufwerken vernachlässigbar sein wird.
@MartínMarconcini Ich frage mich, wie hoch der Overhead in Bezug auf den verbrauchten Speicherplatz ist, weil: (1) Die meisten dieser Bonusfunktionen werden proportional hinzugefügt. (2) All diese Extras summieren sich: 209,7 MB für eine EFI-Partition, weitere 1,4 MB für die Möglichkeit, 128 Partitionen zu erstellen, wo nur 1 benötigt wird. (3) Die Tatsache diskutil moveJournal externalerstellt eine 512 MB große Apple_Journal-Partition. (4) Auf einem 2,7 TB (3 TB alter Stil) werden 736 MB verwendet ( df -h), wenn nur 1 Datei gespeichert wird (gemäß sudo du /Volumes/Name).

Das Journaling fügt jedem Vorgang, der aufgezeichnet wird, Verzögerungen und Komplexität hinzu. Journalschreibvorgänge erzwingen, dass Daten sofort auf das Laufwerk geschrieben werden, was andere ausstehende Laufwerkstransaktionen verlangsamen kann.

Eine schöne Behandlung dessen, was Journaling tut, findet sich in der ausgemusterten Technical Note TN1150: HFS Plus Volume Format .

Der Journalbereich im Dateisystem ist stark beschrieben und zwingt das Betriebssystem, Daten regelmäßig hart zu synchronisieren. Dies kann große Lese- und Schreibvorgänge stören, die gleichzeitig mit einer Dateisystemänderung stattfinden, die Journaleinträge erfordert.

Der Vorteil eines Journaling-Systems besteht darin, dass das System zum Zeitpunkt des Mountens problemlos alle Dateierstellungs- oder Verzeichnisänderungseinträge abschließen kann, die gerade versucht wurden. Das Dateisystem selbst wird im Vergleich zu einer vollständigen Dateisystemkatalogprüfung extrem schnell repariert und in einen konsistenten Zustand versetzt.

Für Anfänger - es macht keinen Spaß, wenn ein Computer sie auffordert, eine Festplatte zu reparieren, und provoziert Unsicherheit und zwingt sie, ein wenig darüber zu lernen, wie die Dinge funktionieren. Ja – es wird die Tatsache unter den Teppich gekehrt, dass sie dieses eine Bild, das sie gerade heruntergeladen oder verschoben haben, verlieren könnten. In der Praxis sorgt der gesunde Menschenverstand dafür, dass selbst neue Benutzer die Datei noch einmal überprüfen, bevor sie sie von der Kamera löschen, wenn der „verflixte Computer“ mitten im Kopieren ihrer Fotos auf iPhoto neu startet. (Eher rufen sie an dieser Stelle ihr Support-System um Hilfe, wenn sie sogar bemerken, dass der nächste Start langsamer war oder mehr als zweimal pro Woche passiert)

Für fortgeschrittene Benutzer, die die schnellste Leistung wünschen, sehen die Vorteile des Journaling eher wie Strafen zum Preis einer langsameren Leistung aus. Diese Einbußen können erheblich sein, wenn das System bereits fast ausgelastet ist oder maximale Leistung für große anhaltende Datenübertragungen benötigt, die typisch für Pro-Video- oder einige Datenbank-Workflows sind.

Dinge wie diese sind gute Gründe, das Journaling zu deaktivieren:

  • Datenbankspeicherdateien
  • redundante Maschinen mit Datenheilungsroutinen nach einem Ausfall
  • RAID-Speicher, der sich um das Journaling und mehr kümmert
  • Ich brauche nur zusätzliche Geschwindigkeit, unabhängig von den Kosten
TN1150 schien aus der Domäne apple.com zu verschwinden, dann tauchte die Ausgabe von 2004 als stillgelegtes Dokument unter developer.apple.com/legacy/mac/library/#technotes/tn/… wieder auf und wurde dann nach developer.apple.com/legacy/ verschoben. library/technotes/tn/tn1150.html . Es gibt eine nostalgisch gestaltete Kopie der Ausgabe von 2004 unter dubeiko.com/development/FileSystems/HFSPLUS/tn1150.html
RAID kümmert sich nicht um die Art von Fehlern, die das Journaling verhindert. Durch Journaling wird sichergestellt, dass, wenn das Betriebssystem / Dateisystem gerade Ihr Verzeichnis aktualisiert, was eine komplizierte Baumstruktur auf HFS ist, ein Systemabsturz oder das Entfernen von Festplatten nicht Ihren gesamten Verzeichnisbaum zerstört, indem möglicherweise wichtige Knoten verloren gehen ( Branches), die selbst fsck nicht wiederherstellen kann. RAID verhindert das nicht - es verhindert nur Datenverlust aufgrund von Festplattenfehlern, was eine ganz andere Art von Datenverlust ist.

Wenn Sie möchten, können Sie sich die Entwicklertools ansehen, um die Festplattenleistung verschiedener Dateisysteme zu vergleichen. Hier finden Sie eine Anleitung:  http://developer.apple.com/library/mac/DOCUMENTATION/Performance/Conceptual/FileSystem/Articles /MacOSXAndFiles.html

Ich kann keinen Vergleich mit harten Zahlen finden, aber es versteht sich wahrscheinlich von selbst, dass ein Journaling-Dateisystem Fehlertoleranz bietet, ein Nicht-Journaling-Dateisystem jedoch eine bessere Leistung bietet

Ich habe auch das Dateisystem-Tag hinzugefügt

+1 für den Entwicklerlink, ich neige dazu zu vergessen, wie nützlich die Ressource ist. Und ein unsichtbares +1 für das Retag ;-)