by Patrick Schmid, Elvis Corbo, Martin Sommer

Post on 27-Jan-2016

56 views 0 download

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 Presentation

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