by Patrick Schmid, Elvis Corbo, Martin Sommer 1. Einführung Was ist ein Dateisystem? • System mit dessen Hilfe man Daten in Form von Dateien auf einem Datenspeicher (HDD, CD, DVD, MB, …) speichert und verwaltet. 12. Info – Journalierende Dateisysteme 2 2. Grundlagen Aufbau eines Dateisystems • Datei wird in Blöcke aufgeteilt • Blockgrößen: 512 Byte, 4096 Byte, 8192 Byte • Massenspeicher ist für das Betriebssystem eine große Fläche nummerierter Blöcke • Dateiattribute und Daten werden getrennt gespeichert • Attribute stehen gesammelt im Beschreibungsblock • Beschreibungsblock unter Windows: FAT (File Allocation Table) • Beschreibungsblock unter Linux: i-node - Block 12. Info – Journalierende Dateisysteme 3 2. Grundlagen Aufbau eines Dateisystems [Bootblock] [Beschreibungsblöcke] [Freiliste] [Datenblöcke] 12. Info – Journalierende Dateisysteme 4 2. Grundlagen Aufbau eines Dateisystems 12. Info – Journalierende Dateisysteme 5 2. Grundlagen Aufbau eines Dateisystems 12. Info – Journalierende Dateisysteme 6 2. Grundlagen Aufbau eines Dateisystems 12. Info – Journalierende Dateisysteme 7 2. Grundlagen Dateisystemoperationen • • • • • open, close read, write create, unlink mkdir, rmdir readdir Datei öffnen/schließen Schreib-/Lesezeiger setzen Datei erzeugen/löschen Verzeichnis erzeugen/löschen Verzeichniseinträge lesen Dateisystemoperationen werden vom Kernel abgefangen und in konkrete Operationen an den Blöcken umgewandelt. 12. Info – Journalierende Dateisysteme 8 2. Grundlagen Inkonsistenz Tritt auf wenn… • …Tabelleneinträge im Beschreibungsblock/in der Blockliste nicht mehr gültig sind bzw. mit den eigentlichen Datenblöcken nicht übereinstimmen. • …der Rechner ausfällt während Dateisystemoperationen durchgeführt werden die die Struktur des Dateisystems ändern -> Schreibzugriffe (write, create, unlink, mkdir, rmdir). 12. Info – Journalierende Dateisysteme 9 2. Grundlagen Inkonsistenz Mit inkonsistentem System kann nicht weitergearbeitet werden -> BS versucht beim Booten Konsistenz wiederherzustellen. • Bei Windows mit scandisk • Bei Linux mit fsck (file system check) 12. Info – Journalierende Dateisysteme 10 2. Grundlagen Inkonsistenz 12. Info – Journalierende Dateisysteme 11 3. Journaling 12. Info – Journalierende Dateisysteme 12 4. Implementierungen Die nachfolgenden Beispiele sehen wir als die gebräuchlichsten JournalingDateisysteme an: • • • • Ext3 ReiserFS NTFS HFS+ 12. Info – Journalierende Dateisysteme 13 4. Implementierungen Beispiel 1: Linux-Betriebssystem 12. Info – Journalierende Dateisysteme 14 4. Implementierungen • ext3 = third extended filesystem • von Stephen Tweedie entwickelt • Erweiterung von ext2 -> vollkommen abwärtskompatibel • ext2 kann ohne Verlust in ext3 konvertiert werden -> größter Vorteil gegenüber anderen journaling fs unter Linux • macht fsck überflüssig 12. Info – Journalierende Dateisysteme 15 4. Implementierungen • Anfallende Metadaten, die für Journaling benötigt werden, werden in der Datei .journal im root-Verzeichnis der ext3 Partition abgelegt. • .journal ist eine normale Datei • Der Dämon kjournald wird gestartet 12. Info – Journalierende Dateisysteme 16 4. Implementierungen EXT3-fs: INFO: recovery required on readonly filesystem. EXT3-fs: write access will be enabled during recovery. kjournald starting. Commit interval 5 seconds EXT3-fs: recovery complete. EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Freeing unused kernel memory: 92k freed Adding Swap: 530136k swap-space (priority -1) EXT3 FS 2.4-0.9.19, 19 August 2002 on ide0(3,1), internal journal kjournald starting. Commit interval 5 seconds EXT3 FS 2.4-0.9.19, 19 August 2002 on ide0(3,2), internal journal EXT3-fs: mounted filesystem with ordered data mode. kjournald starting. Commit interval 5 seconds EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,1), internal journal EXT3-fs: mounted filesystem with ordered data mode. Beim Booten erkennt der Kernel einen Absturz des Systems und stellt das System mit Hilfe des Journals wieder her. 12. Info – Journalierende Dateisysteme 17 4. Implementierungen Protokollierungsarten 3 verschiedene Möglichkeiten wie Protokollierung in .journal erfolgen soll: • data = write-back • data = ordered • data = journal Der jeweilige Modus wird beim Mounten angegeben. 12. Info – Journalierende Dateisysteme 18 4. Implementierungen data = write-back • nur Metadaten werden protokolliert jedoch unabhängig vom Schreiben der Daten an sich • sehr schnell • gerade geschriebene Daten können aber beschädigt werden 12. Info – Journalierende Dateisysteme 19 4. Implementierungen data = ordered • eigentliche Daten werden synchron mit den Metadaten ins Dateisystem geschrieben. • Standardeinstellung • korrupte Daten können beim Überschreiben von Datenblöcken entstehen 12. Info – Journalierende Dateisysteme 20 4. Implementierungen data = journal • Daten werden zunächst ins Journal übertragen bevor sie tatsächlich ins Dateisystem geschrieben werden. • langsam -> doppeltes Schreiben • höchste Datensicherheit 12. Info – Journalierende Dateisysteme 21 4. Implementierungen ext3 verwenden • Nachdem Partition erstellt wurde Dateisystem mit Hilfe von mkfs erstellen: /sbin/mkfs -t ext3 /dev/hdaX 12. Info – Journalierende Dateisysteme 22 4. Implementierungen ext2 in ext3 • Journal zum bestehenden Dateisystem hinzufügen: /sbin/tune2fs -j /dev/hdaX • Partitionstyp in /etc/fstab von ext2 in ext3 umändern 12. Info – Journalierende Dateisysteme 23 4. Implementierungen ext3 in ext2 • Partition unmounten: umount /dev/hdaX • Dateisystemtyp ändern: /sbin/tune2fs –O ^has_journal /dev/hdaX • Partition auf Fehler überprüfen: /sbin/e2fsck –y /dev/hdaX 12. Info – Journalierende Dateisysteme 24 4. Implementierungen ext3 in ext2 • Mounten der Partition als ext2: mount –t ext2 /dev/hdaX /mountpoint • Journal Datei entfernen: rm –f .journal 12. Info – Journalierende Dateisysteme 25 4. Implementierungen Beispiel 2: Linux-Betriebssystem 12. Info – Journalierende Dateisysteme 26 4. Implementierungen • blah 12. Info – Journalierende Dateisysteme 27 4. Implementierungen Beispiel 3: Windows-Betriebssystem 12. Info – Journalierende Dateisysteme 28 4. Implementierungen • blah 12. Info – Journalierende Dateisysteme 29 4. Implementierungen Beispiel 4: Mac-Betriebssystem 12. Info – Journalierende Dateisysteme 30 4. Implementierungen • blah 12. Info – Journalierende Dateisysteme 31 5. Konkrete Anwendung 12. Info – Journalierende Dateisysteme 32 6. Fazit 12. Info – Journalierende Dateisysteme 33