by Patrick Schmid, Elvis Corbo, Martin Sommer
description
Transcript of by Patrick Schmid, Elvis Corbo, Martin Sommer
by Patrick Schmid, Elvis Corbo, Martin Sommer
12. Info – Journalierende Dateisysteme
1. Einführung
2
• System mit dessen Hilfe man Daten in Form von Dateien auf einem Datenspeicher (HDD, CD, DVD, MB, …) speichert und verwaltet.
Was ist ein Dateisystem?
12. Info – Journalierende Dateisysteme
2. Grundlagen
3
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
2. Grundlagen
4
Aufbau eines Dateisystems
[Bootblock] [Beschreibungsblöcke] [Freiliste] [Datenblöcke]
12. Info – Journalierende Dateisysteme
2. Grundlagen
5
Aufbau eines Dateisystems
12. Info – Journalierende Dateisysteme
2. Grundlagen
6
Aufbau eines Dateisystems
12. Info – Journalierende Dateisysteme
2. Grundlagen
7
Aufbau eines Dateisystems
12. Info – Journalierende Dateisysteme
2. Grundlagen
8
• open, close Datei öffnen/schließen
• read, write Schreib-/Lesezeiger setzen
• create, unlink Datei erzeugen/löschen
• mkdir, rmdir Verzeichnis erzeugen/löschen
• readdir Verzeichniseinträge lesen
Dateisystemoperationen
Dateisystemoperationen werden vom Kernel abgefangen und in konkrete Operationen an den Blöcken umgewandelt.
12. Info – Journalierende Dateisysteme
2. Grundlagen
9
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
2. Grundlagen
10
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
2. Grundlagen
11
Inkonsistenz
12. Info – Journalierende Dateisysteme
3. Journaling
12
12. Info – Journalierende Dateisysteme
4. Implementierungen
13
Die nachfolgenden Beispiele sehen wir als die gebräuchlichsten Journaling-Dateisysteme an:
• Ext3
• ReiserFS
• NTFS
• HFS+
12. Info – Journalierende Dateisysteme
4. Implementierungen
14
Beispiel 1:
Linux-Betriebssystem
12. Info – Journalierende Dateisysteme
4. Implementierungen
15
• 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
4. Implementierungen
16
• 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
4. Implementierungen
17
EXT3-fs: INFO: recovery required on readonly filesystem.EXT3-fs: write access will be enabled during recovery.kjournald starting. Commit interval 5 secondsEXT3-fs: recovery complete.EXT3-fs: mounted filesystem with ordered data mode.VFS: Mounted root (ext3 filesystem) readonly.Freeing unused kernel memory: 92k freedAdding Swap: 530136k swap-space (priority -1)EXT3 FS 2.4-0.9.19, 19 August 2002 on ide0(3,1), internal journalkjournald starting. Commit interval 5 secondsEXT3 FS 2.4-0.9.19, 19 August 2002 on ide0(3,2), internal journalEXT3-fs: mounted filesystem with ordered data mode.kjournald starting. Commit interval 5 secondsEXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,1), internal journalEXT3-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
4. Implementierungen
18
3 verschiedene Möglichkeiten wie Protokollierung in
.journal erfolgen soll:
• data = write-back• data = ordered• data = journal
Der jeweilige Modus wird beim Mounten angegeben.
Protokollierungsarten
12. Info – Journalierende Dateisysteme
4. Implementierungen
19
• nur Metadaten werden protokolliert jedoch unabhängig vom Schreiben der Daten an sich
• sehr schnell• gerade geschriebene Daten können aber beschädigt
werden
data = write-back
12. Info – Journalierende Dateisysteme
4. Implementierungen
20
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
4. Implementierungen
21
• Daten werden zunächst ins Journal übertragen bevor sie tatsächlich ins Dateisystem geschrieben werden.
• langsam -> doppeltes Schreiben• höchste Datensicherheit
data = journal
12. Info – Journalierende Dateisysteme
4. Implementierungen
22
ext3 verwenden
• Nachdem Partition erstellt wurde Dateisystem mit Hilfe von mkfs erstellen:
/sbin/mkfs -t ext3 /dev/hdaX
12. Info – Journalierende Dateisysteme
4. Implementierungen
23
ext2 in ext3
• Journal zum bestehenden Dateisystem hinzufügen:
• Partitionstyp in /etc/fstab von ext2 in ext3 umändern
/sbin/tune2fs -j /dev/hdaX
12. Info – Journalierende Dateisysteme
4. Implementierungen
24
• Partition unmounten:
• Dateisystemtyp ändern:
• Partition auf Fehler überprüfen:
umount /dev/hdaX
ext3 in ext2
/sbin/tune2fs –O ^has_journal /dev/hdaX
/sbin/e2fsck –y /dev/hdaX
12. Info – Journalierende Dateisysteme
4. Implementierungen
25
ext3 in ext2
• Mounten der Partition als ext2:
• Journal Datei entfernen:
mount –t ext2 /dev/hdaX /mountpoint
rm –f .journal
12. Info – Journalierende Dateisysteme
4. Implementierungen
26
Beispiel 2:
Linux-Betriebssystem
12. Info – Journalierende Dateisysteme
4. Implementierungen
27
• blah
12. Info – Journalierende Dateisysteme
4. Implementierungen
28
Beispiel 3:
Windows-Betriebssystem
12. Info – Journalierende Dateisysteme
4. Implementierungen
29
• blah
12. Info – Journalierende Dateisysteme
4. Implementierungen
30
Beispiel 4:
Mac-Betriebssystem
12. Info – Journalierende Dateisysteme
4. Implementierungen
31
• blah
12. Info – Journalierende Dateisysteme
5. Konkrete Anwendung
32
12. Info – Journalierende Dateisysteme
6. Fazit
33