Was sind die Unterschiede zwischen Journaling HFS + und Nicht-Journaling HFS +?

41

Ich bin dabei, ein externes Festplattenlaufwerk (HDD) zu formatieren.

Was sind die Hauptunterschiede zwischen Journaling HFS + und Nicht-Journaling HFS +? Wie wirkt sich das auf die Leistung des Laufwerks (mit Zahlen) aus, abgesehen von der Tatsache, dass eines über Journaling verfügt und das andere nicht?

Meiner Meinung nach ist Journaling im "normalen" Gebrauch der richtige Weg, aber gibt es Situationen, in denen HFS + ohne Journaling in Betracht gezogen werden sollte? Linux-Kompatibilität ist eine, da das hfsplus-Modul des Kernels offenbar das Lesen und Schreiben auf nicht aufgezeichnetem HFS + unterstützt, aber nur auf aufgezeichnetem HFS +.

Sonst noch etwas Erwähnenswertes?

Jari Keinänen
quelle

Antworten:

35

Ich habe keine Zahlen, um die Aussage zu sichern, aber die Verwendung von HFS + ohne Journal ist eine gute Idee bei bestimmten Volumes, die absolute Geschwindigkeit erfordern, ohne (zu viel) über einen möglichen "Datenverlust" oder eine "Datenkorruption" nachzudenken von Stromausfall oder ähnlichem.

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

  • Externe (USB-, FW-, ESata-) Laufwerke, die häufig verbunden und wieder verbunden werden: Dies ist normalerweise eine schlechte Idee, da diese Laufwerke häufig versehentlich getrennt werden und ihre Stromquellen nicht angeschlossen sind.

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

Wann ist die Verwendung von HFS + ohne Journal 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-Arbeitsvolumen nicht aufgezeichnet wird (Sie haben ohnehin eine UPS, oder?). Sie möchten, dass Ihre Photoshop-Zeit nicht aufgezeichnet wird. Laufwerke zum Kopieren von Dingen (z. B. ein USB-Stick, wenn Sie auf das ordnungsgemäße Auswerfen achten).

  • Alle anderen Laufwerke, für die Portabilität und Kompatibilität erforderlich sind, auf die Sie richtig hingewiesen haben.

Denken Sie daran, dass die Verwaltung des Journals einen geringen Mehraufwand mit sich bringt. Der Vorteil bei einer nicht ordnungsgemäßen Bereitstellung des Datenträgers ist jedoch wichtig, nicht nur, um beim Starten oder erneuten Bereitstellen einen vollständigen Datenträgerscan zu vermeiden, sondern auch, um sicherzustellen, dass keine Daten vorhanden sind in erster Linie beschädigt.

Durch das Aktivieren eines nicht gemounteten Laufwerks, das nicht ordnungsgemäß gemountet wurde, wird ein fsck- Scan ausgeführt, während das gemountete Laufwerk in kürzerer Zeit ausgeführt werden kann (Scannen des Journals und Anwenden nicht festgeschriebener Transaktionen).

In Bezug auf Geschwindigkeit und Tests habe ich nicht viele Informationen, um die oben genannte Behauptung zu untermauern, aber meines Wissens ist der Geschwindigkeitsunterschied nicht nur sehr gering und sogar schwer zu bemerken, sondern in einigen Fällen ist das Journaled-Dateisystem schneller als das Nicht- Journaled-Dateisystem -journaled.

Es hat sich herausgestellt, dass trotz des Overheads des Journals einige Vorgänge asynchron im Journaled-Laufwerk ausgeführt werden können, während die nicht journalisierte Version die Vorgänge 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 an HFS + seit den ersten Iterationen in OSX nicht wirklich viel geändert hat, außer dem Hinzufügen von Inline-Attributdatensätzen und der Dateisicherheit der Zugriffssteuerungsliste und vielleicht etwas anderes.

Hier ist die Website mit den Diagrammen:

Vergleich zwischen HFS + Journaled und HFS + Non-journaled

TL; DR:

Die Dateikopier- / Duplizier- / Kopiersequenz war für HFS mit und ohne Journal ziemlich gleich schnell. Die gleiche Sequenz mit dem Ordner war mit dem aufgezeichneten HFS wieder etwas schneller

(Hervorhebung von mir)

Fazit

Ich bin etwas überrascht über die obigen Ergebnisse, da ich davon überzeugt war, dass die Verwendung von Non-Journaled für einige Operationen sehr viel schneller war, aber anscheinend sind die kleinen Fälle, in denen dies einen Unterschied machen kann, durch die "Sicherheit" von Journaling übergewichtet.

Martin Marconcini
quelle
@Griffo eigentlich ist es +1 auf die Frage, die mich dazu bringt, nachzuforschen und zu dem oben genannten Ergebnis zu gelangen ;-) Danke.
Martin Marconcini
@ MartínMarconcini Dem Antwortabschnitt "geringer Overhead" fehlt der Overhead in Bezug auf den Speicherplatzverbrauch. Wie viel Speicherplatz steht beispielsweise zum Speichern von Dateien zur Verfügung, wenn die Journalfunktion nicht aktiviert ist?
Pro Backup
@ProBackup Obwohl ich keine "Zahlen" habe, glaube ich wirklich, dass die Größe des Journals bei den heutigen Laufwerken vernachlässigbar sein wird.
Martin Marconcini
@ MartínMarconcini Ich frage mich, wie viel Speicherplatz verbraucht wird, weil: (1) Die meisten dieser Bonusfunktionen werden proportional hinzugefügt. (2) Alle diese zusätzlichen Daten summieren sich auf: 209,7 MB für eine EFI-Partition, weitere 1,4 MB für die Erstellung von 128 Partitionen, für die nur eine benötigt wird. (3) Dadurch diskutil moveJournal externalwird eine Apple_Journal-Partition mit 512 MB erstellt. (4) Auf 2,7 TB (3 TB alt) werden 736 MB ( df -h) verwendet, wenn nur 1 Datei (gemäß sudo du /Volumes/Name) gespeichert wird .
Pro Backup
4

Das Aufzeichnen fügt jedem Vorgang, der aufgezeichnet wird, eine Verzögerung und Komplexität hinzu. Journal-Schreibvorgänge erzwingen, dass Daten sofort auf das Laufwerk geschrieben werden, was andere ausstehende Laufwerkstransaktionen verlangsamen kann.

Eine nette Behandlung dessen, was Journaling macht, findet sich in der Technischen Anmerkung TN1150: HFS Plus Volume Format .

Der Journalbereich im Dateisystem ist stark geschrieben und zwingt das Betriebssystem, Daten regelmäßig hart zu synchronisieren. Dies kann große Lese- und Schreibvorgänge beeinträchtigen, die gleichzeitig mit einer Dateisystemänderung erfolgen, für die Journaleinträge erforderlich sind.

Der Vorteil eines Journalsystems besteht darin, dass das System zum Zeitpunkt des Ladevorgangs die Erstellung von Dateien oder die Änderung von Verzeichnissen, die gerade versucht wurden, problemlos abschließen kann. Das Dateisystem selbst wird repariert und im Vergleich zu einer vollständigen Prüfung des Dateisystemkatalogs mit äußerster Geschwindigkeit in einen konsistenten Zustand versetzt.

Für Anfänger: Wenn ein Computer sie auffordert, eine Festplatte zu reparieren, macht dies keinen Spaß und führt zu Unsicherheit. Außerdem müssen sie etwas über die Funktionsweise lernen. Ja - es taucht unter der Decke auf, dass sie das eine Bild verlieren könnten, das sie gerade heruntergeladen oder verschoben haben. In der Praxis stellt der gesunde Menschenverstand sicher, dass auch neue Benutzer die Datei überprüfen, bevor sie von der Kamera gelöscht werden, wenn der "verdammte Computer" neu gestartet wird, während ihre Fotos auf iPhoto kopiert werden. (Wahrscheinlicher ist, dass sie ihr Support-System an dieser Stelle um Hilfe bitten, wenn sie sogar bemerken, dass der nächste Start langsamer war oder mehr als zweimal pro Woche erfolgt.)

Für fortgeschrittene Benutzer, die die schnellste Leistung erzielen möchten, scheinen die Vorteile des Journalings eher Strafen zum Preis einer langsameren Leistung zu sein. Diese Nachteile können erheblich sein, wenn das System bereits fast ausgelastet ist oder maximale Leistung für große dauerhafte Datenübertragungen benötigt, wie sie für Pro-Video- oder einige Datenbank-Workflows typisch sind.

Solche Dinge sind gute Gründe, um das Journaling zu deaktivieren:

  • Datenbankspeicherdateien
  • redundante Maschinen mit Datenheilungsroutinen nach einem Ausfall
  • RAID-Speicher, der sich um Journaling und mehr kümmert
  • Ich brauche nur zusätzliche Geschwindigkeit, egal was es kostet
bmike
quelle
TN1150 schien von der apple.com Domäne zu verschwinden, dann ist die Ausgabe 2004 als pensioniertes Dokument erschien developer.apple.com/legacy/mac/library/#technotes/tn/... dann bewegt developer.apple.com/legacy/ library / technotes / tn / tn1150.html . Unter dubeiko.com/development/FileSystems/HFSPLUS/tn1150.html finden Sie
Graham Perrin
RAID kümmert sich nicht um die Art von Fehlern, die durch das Journaling verhindert werden. Mit dem Journaling soll sichergestellt werden, dass beim Aktualisieren des Verzeichnisses durch das Betriebssystem / Dateisystem (eine komplizierte Baumstruktur in HFS) nicht der gesamte Verzeichnisbaum zerstört wird, da möglicherweise wichtige Knoten verloren gehen ( Äste), die selbst fsck nicht wiederherstellen kann. RAID verhindert das nicht - das verhindert nur Datenverluste aufgrund von Festplattenfehlern, was eine ganz andere Art von Datenverlust darstellt.
Thomas Tempelmann
1

In den Entwicklertools können Sie die Festplattenleistung verschiedener Dateisysteme vergleichen. Wenn Sie dazu neigen, finden Sie hier 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 Journal-Dateisystem Fehlertoleranz bietet, während ein Nicht-Journal-Dateisystem eine bessere Leistung bietet

Ich habe auch das Dateisystem-Tag hinzugefügt

conorgriffin
quelle
+1 für den Entwicklerlink, ich neige dazu zu vergessen, wie nützlich die Ressource ist. Und eine unsichtbare +1 für das Retag ;-)
Jari Keinänen