by patrick schmid, elvis corbo, martin sommer
DESCRIPTION
by Patrick Schmid, Elvis Corbo, Martin Sommer. Was ist ein Dateisystem?. System mit dessen Hilfe man Daten in Form von Dateien auf einem Datenspeicher (HDD, CD, DVD, MB, …) speichert und verwaltet. Aufbau eines Dateisystems. Datei wird in Blöcke aufgeteilt - PowerPoint PPT PresentationTRANSCRIPT
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