12. Info – Journalierende Dateisysteme 4. Implementierungen 15

Werbung
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
Herunterladen