Download - by Patrick Schmid, Elvis Corbo, Martin Sommer

Transcript
Page 1: by Patrick Schmid, Elvis Corbo, Martin Sommer

by Patrick Schmid, Elvis Corbo, Martin Sommer

Page 2: 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?

Page 3: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 4: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

2. Grundlagen

4

Aufbau eines Dateisystems

[Bootblock] [Beschreibungsblöcke] [Freiliste] [Datenblöcke]

Page 5: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

2. Grundlagen

5

Aufbau eines Dateisystems

Page 6: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

2. Grundlagen

6

Aufbau eines Dateisystems

Page 7: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

2. Grundlagen

7

Aufbau eines Dateisystems

Page 8: by Patrick Schmid, Elvis Corbo, Martin Sommer

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.

Page 9: by Patrick Schmid, Elvis Corbo, Martin Sommer

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).

Page 10: by Patrick Schmid, Elvis Corbo, Martin Sommer

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)

Page 11: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

2. Grundlagen

11

Inkonsistenz

Page 12: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

3. Journaling

12

Page 13: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

4. Implementierungen

13

Die nachfolgenden Beispiele sehen wir als die gebräuchlichsten Journaling-Dateisysteme an:

• Ext3

• ReiserFS

• NTFS

• HFS+

Page 14: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

4. Implementierungen

14

Beispiel 1:

Linux-Betriebssystem

Page 15: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 16: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 17: by Patrick Schmid, Elvis Corbo, Martin Sommer

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.

Page 18: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 19: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 20: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 21: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 22: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 23: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 24: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 25: by Patrick Schmid, Elvis Corbo, Martin Sommer

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

Page 26: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

4. Implementierungen

26

Beispiel 2:

Linux-Betriebssystem

Page 27: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

4. Implementierungen

27

• blah

Page 28: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

4. Implementierungen

28

Beispiel 3:

Windows-Betriebssystem

Page 29: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

4. Implementierungen

29

• blah

Page 30: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

4. Implementierungen

30

Beispiel 4:

Mac-Betriebssystem

Page 31: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

4. Implementierungen

31

• blah

Page 32: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

5. Konkrete Anwendung

32

Page 33: by Patrick Schmid, Elvis Corbo, Martin Sommer

12. Info – Journalierende Dateisysteme

6. Fazit

33