05_Dateisysteme Flashcards

1
Q

Charakteristiken der Dateinutzung

A
  • Dateien sind meist klein (wenige KByte)
  • Dateien werden häufig gelesen, selten geschrieben und kaum gelöscht
  • Benutzung einer Datei durch mehrere Benutzer geschieht häufig (Zugriffsrechte)
  • gleichzeitige Benutzung einer Datei durch mehrere Benutzer ist selten (Synchronisation)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Festplatten

A
  • drehende, magnetisierbare Scheiben, über die Schreib-Lese-Köpfe positioniert werden
  • Orientierung der Magnetisierung repräsentiert Speicherwert (links = 0, rechts = 1)
  • Datenablage in Spuren (kompletter Kreis) -> unterteilt in Sektoren mit 512 Bytes („Block Device“)
    • Sektor nur als Ganzes gelesen o. beschrieben
    • enthält Prüfsumme
  • Partition = zusammenhängender Bereich von Zylindern (direkt übereinanderliegenden Spuren)
    • max. 4 primäre Partitionen auf einer Festplatte
  • Vorteil: nicht flüchtig
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Festplatten

Adressierung

A
  • LBA – Logical Block Address -> direkte Adressierung der Blöcke
  • Controller sieht fortlaufend nummerierte Anzahl von Blöcken für Gerätetreiber (defekte Sektoren werden von Platte ausgeblendet) -> Umrechnung in Plattengeometrie über Firmware der Platte
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Dateisichten

A
  • Anwender sieht Datei als Bytestrom
  • Festplattensektoren zu Dateien zusammengefasst und unter Dateinamen zur Verfügung gestellt
  • Information darüber (Metadaten wie Zuordnung und Reihenfolge der Blöcke der Datei) auf Festplatte hinterlegt -> nach Abschalten erhalten
  • Aufgabe des Gerätetreibers/Festplatte: reale Platte als Folge von intakten Sektoren anbieten = abstrakte Platte
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Dateisysteme

Verzeichnisse

A
  • als Baumstrukturen angelegt
  • Wurzelknoten -> Verzeichnisse/Dateien -> ggf. Unterverzeichnisse/Dateien
  • Dateien absolut über Pfad (Beginn mit „/“) oder relativ referenziert
  • Links: Erweiterung der Baumstruktur zu Netzstruktur
  • Soft Links: enthalten Verweis auf andere Datei – keine Kopie -> Löschen: Ursprungsdatei erhalten
    • Löschen der Ursprungsdatei: Link ins Leere
  • Hard Links: im Dateisystem weiterer Eintrag mit anderem Namen – selbe Zieldatei
    • Löschen: Link-Zähler der Datei heruntergezählt
    • Löschen des letzten Hard-Links: Inhalt der Datei gelöscht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Aufbau einer Festplatte

A

MBR = Mast​​er Boot Record - 512 Byte

  • erster Sektor
  • enthält 440 Byte Boot-Code -> beim Start vom BIOS in Hauptspeicher geladen u. ausgeführt
  • 16 Byte lange Einträge für Lage und Typ von Partitionen auf der Festplatte
  • mit UEFI: GUID Partition Table -> beliebig viele Partitionen

Partitionen

  • nur 4 primäre Partitionen möglich
  • extended partition: Schachtelung von sekundären Partitionen in primäre Partitionen
  • enthalten jeweils Dateiverwaltungssystem
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Dateisystem

Aufbau eines einfachen Dateisystems

Variante 1

A
  • aufeinanderfolgende Blöcke mit Inhalt der Dateien füllen
  • Lesezugriff auf fortlaufende Datenblöcke = zeitoptimal
  • Problem bei Löschen oder Verlängern der Dateien
  • viele kleine, freie Blöcke entstehen -> Speichern großer Dateien irgendwann unmöglich
  • Anwendung: Datenträger nur einmal/als Ganzes beschrieben (z.B. CD-ROM)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Dateisystem

Aufbau eines einfachen Dateisystems

Variante 2

A
  • Dateien mit veränderlicher Lage - Linked List
  • Dateikopf mit Verweis auf ersten Nutzdatenblock
    • Dateiname
    • Dateityp
    • Erzeugungszeitpunkt

    • Datum der letzten Änderung
    • Datum des letzten Zugriffs

    • Eigentümer

    • Gruppenzugehörigkeit

    • Dateirechte

    • Länge der Datei

    • Verweise auf Datenblöcke
  • solange Verweis auf nächsten Block, bis letzter zur Datei gehöriger Block erreicht ist
  • Nachteil: bei Positionierungsbefehlen äußerst langsam, da sämtliche Blöcke eingelesen werden müssen, um z.B. letzten Block zu identifizieren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Dateisystem

FAT - Aufbau von FAT32-Partitionen

A
  • 1. Sektor = Bootsektor: Bootcode d. Stufe 2 + Informationen über Dateisystem der Partition
    • Anzahl Sektoren + Sektorgröße + Clustergröße + Typ, Beginn u. + Länge der FAT
  • FAT: File Allocation Table
    • so viele Einträge, wie Partition Cluster hat
    • statt Verkettung durch Zeiger in Datenblöcken -> Verkettung innerhalb der FAT
    • in RAM geladen -> schnelle Positionierungen innerhalb der Datei
    • Eintrag 0: freier Cluster
    • Eintrag -1 (0xffff): letzter Cluster einer Datei
  • Wurzelverzeichnis: Dateiköpfe aller Dateien und Verzeichnisse mit Verweis auf 1. Datenblock in FAT
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Dateisystem

Indexbasiert: Ext2

Aufbau der Partition

A
  • Partition nach Boot-Sektor in Block-Groups mit gleicher Größe aufgeteilt
  • Vorteil: Verwaltungsinformationen nahe den Nutzdaten = Performanceverbesserung
  • einige Block-Groups enthalten Kopie des Superblocks -> Reparatur des Dateisystems nach Systemabsturz
  • Superblock:
    • Name + Typ + Gesamtanzahl der Blöcke und Inodes + Anzahl freier Blöcke und Inodes + Mount-Informationen + Blocknummer des ersten Inodes (verweist auf Dateiblöcke des Root-Verzeichnisses)
  • Group-Deskriptor: Adressen der Verwaltungs-Bitmaps + Clusternummer der Inodes-Tabellen + Anzahl der Verzeichnisse, der freien Blöcke u. Inodes
  • Bitmap-Blöcke: je 1 Cluster groß (1kB o. 4 kB)
    • Verwaltung von freien und belegten Dateiblöcken und Inodes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Dateisystem

Indexbasiert: Ext2

Inodes

A
  • Elemente fester Länge
  • verwalten alle Dateien inkl. Verzeichnisse
  • enthalten u.a. Länge der Datei + Eigentümer + Informationen zu Erzeugungszeitpunkt + Typ (Datei, Verzeichnis, Pseudodatei, …)
  • gestuftes Verfahren -> geringerer Verwaltungsaufwand
  • 12 direkte Verweise in Inode eingetragen (Blockgröße von 4 kB -> 48kB Dateigröße abgedeckt = meiste Dateien)
  • 1. Indirektionsstufe: Eintrag indirect_bl1 verweist auf Block, der Verweis auf Datenblöcke enthält
  • 2. Indirektionsstufe: im Dateikopf Verweis auf Block, der wieder auf 256 Blöcke verweist, die Blocknummern der Nutzdatenblöcke enthalten
  • 3. Indirektionsstufe: dreifache Indizierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Dateisystem

Indexbasiert: Ext2

Verzeichnisse

A

Verzeichnis = Datei vom Typ „Directory“ -> enthält alle Einträge in dem Verzeichnis (Dateien und Verzeichnisse)

Inode-Nr. verweist auf Inode, die Datei verwaltet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Dateisystem

Indexbasiert: Ext4

A
  • kompatibel zu Ext2, zusätzliche Erweiterungen
  • schneller, da hintereinanderliegende Datenblöcke
  • Blocknummern von 48 Bit auf der Festplatte und 32 Bit als logische Blocknummern in der Datei -> Datei kann 232 Blöcke groß werden -> bei 4kB Blockgröße: 232*216 = 248 = 16TB
  • Einführung von Extents: Gruppe von Datenblöcken variabler Größe, hintereinander auf der Festplatte
  • Zuordnung Extent–Datei: Blocknr. in der Datei + Anzahl Blöcke+ Adresse d. 1. Blocks auf der Festplatte
  • Baumstruktur variabler Tiefe für Adressierung der Extents statt bis zu 3-stufige Indizierung der Nutzdatenblöcke
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Dateisystem

Indexbasiert: Ext4

Inode

A
  • 15 Felder für Adressierung der Blöcke und Indexblöcke -> jetzt Extent-Header und 4 Extent-Verweise
  • > 4 Extents benötigt (große Dateien/stark fragmentierte Festplatte): Baum aus Extents angelegt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Dateisystem

Indexbasiert: Ext4

Beispiel mit 10 Datenblöcken

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Dateisysteme

Mount

A
  • bei Unix nur 1 Filesystem im Gegensatz zu Windows (dort Lauwerkbuchstaben C, D, E, …)
  • jedes Dateisystem in jeder Partition muss bei Linux in ein bestehendes Dateisystem eingebunden werden, um erreicht zu werden -> auf beliebiges Verzeichnis im Baum abbilden
  • Ausnahme: Root-Filesystem, das sofort nach dem Start eingebunden wird -> Vorgang = mount
17
Q

Dateisystem

Konsistenzprüfung

A
  • Systemabsturz oder Stromausfall gefährden die Konsistenz
  • Datenblöcke und Metainformationen (Inodes, Indexblöcke) werden zu unterschiedlichen Zeitpunkten auf die Platte geschrieben -> Inkonsistenz bei Unterbrechung
  • Mögliche Fehler:
    • Verzeichniseintrag zu einer Datei fehlt

    • Block ist als belegt gekennzeichnet, gehört aber zu keiner Datei
    • Längeneintrag im Inode passt nicht zu den belegten Blöcken
  • Prüfprogramm (fsck, CHKDSK) prüft Zuordnungen + stellt Konsistenz wieder her
  • Inkonsistenz oft bei Wiederanlauf des Systems entdeckt -> Vermerkt im Superblock: „unmounted“
  • Konsistenz der Metadaten vor Datenkonsistenz -> oft Datenverlust bei Reparaturen
18
Q

Dateisystem

Konsistenzprüfung

Fehlertolerante Dateisysteme

A
  • Ziel: Vermeidung von Inkonsistenzen
  • fsck kann beim Booten lange dauern -> auch kaputte Dateisysteme sollten schnell wieder funktionieren -> fehlertolerante Systeme gebraucht
  • Dateioperationen werden als Transaktionen verstanden
  • für jede Transaktion Protokoll erstellt = Journal
    • bei jeder Änderung erst Eintrag dann Ausführung
    • bei Inkonsistenz mit Journal: Änderung gelöscht o. wiederholt
  • Metadaten-Journaling: nur Metadaten (Inodes, Verweise) -> möglicher Datenverlust
  • Vollständiges Journaling: Metadaten und Nutzdaten im Journal -> hoher Speicherbedarf
, langsam
  • Checkpointing: alte, abgeschlossene Transaktionen aus dem Journal entfernen
19
Q

Dateisystem

Konsistenzprüfung

Copy on Write

A
  • Konsistenz bleibt immer erhalten
  • Blöcke nicht verändert, sondern neu geschrieben
  • Nachteil: mehr Speicherbedarf bei Änderungen
  1. Änderung eines Datenblocks in einer Datei-> Modifikation nur im Buffer Cache -> auf Festplatte an anderer Stelle neu geschrieben
    • bei Absturz: Änderung verloren, Konsistenz erhalten
  2. Änderung im Index-Block und in Inode eintragen-> neue geschrieben
    • bei Absturz: Änderungen verloren, Konsistenz erhalten
  3. Änderung im Superblock eintragen -> Überschreiben des Superblocks + überflüssige alte Blöcke freigegeben
    • bei Absturz: neue Daten + Konsistenz erhalten