K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz –...

33
K. Datei- & Verzeichnissysteme K.1.1. Einordnung Abbildung von Dateibeständen auf die reale Hardware: Aufrufssemantik eines Dateisystemes, Verzeichnissysteme für Dateinamen, Speichervergabe auf Festplatten, Zugriffsverfahren. Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 1 Elektronik: - Strom & Spannung, Transistoren, ICs Architektur Systemprogrammierung: - Betriebsmittelvergabe, Nebenläufigkeit, Treiber ... „Höhere Informatik“: - Programmierung, Datenbanken, Verteilte Systeme, Theorie .. Digitaltechnik: - Rechnerarithmetik, Schaltwerke, Gatter, Logik ... Nebenläufigkeit: - Prozesse, Threads, Synchronisierung Vergabe v. Speicher & Resourcen: - Hauptspeicher, Dateien, Zugriffsschutz Gerätetreiber: - Konfigurierung, Ansteuerung, Datentransfer C E G F D K B J I

Transcript of K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz –...

Page 1: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K. Datei- & Verzeichnissysteme

K.1.1. Einordnung

Abbildung von Dateibeständen auf die reale Hardware:Aufrufssemantik eines Dateisystemes,Verzeichnissysteme für Dateinamen,Speichervergabe auf Festplatten,Zugriffsverfahren.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 1

Elektronik: - Strom & Spannung, Transistoren, ICs

Architektur

Systemprogrammierung: - Betriebsmittelvergabe, Nebenläufigkeit, Treiber ...

„Höhere Informatik“: - Programmierung, Datenbanken, Verteilte Systeme, Theorie ..

Digitaltechnik: - Rechnerarithmetik, Schaltwerke, Gatter, Logik ...

Nebenläufigkeit: - Prozesse, Threads, Synchronisierung

Vergabe v. Speicher & Resourcen: - Hauptspeicher, Dateien, Zugriffsschutz

Gerätetreiber: - Konfigurierung, Ansteuerung, Datentransfer

C

E GF

DK B

JI

Page 2: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.1.2. Anforderungen:

Persistenz – Dauerhafte Speicherung.

Speichervergabe (vgl. auch "Plattenspeicher"):Gleichzeitiges Wachstum von mehr als einer Datei,progressive Vergabe von Datenblöcken an neue und wachsende Dateien,Rückgewinnung der Datenblöcke beim Löschen von Dateien,keine Doppelbelegungen und keine Verluste,effiziente Zugriffsmuster.

Verzeichnisdienst:Zugang über Dateinamen und Pfade,Hierarchische Verzeichnisstrukturen,Überwachung von Zugriffsrechten,ergänzende Dateiattribute.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 2

Page 3: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.1.3. Begriffe:

Datei/File (Behälter zur dauerhaften Speicherung bel. Informationen): Programme und Daten,Dateistruktur abhängig vom Dateityp.Attribute: Name, Typ, Grösse, letzte Änderung, Zugriffsschutz, ...

Namenskonventionen:DOS: 8.3 Zeichen name.extUnix, NT: 256 Zeichena.b.c.dUnix: Groß- & Kleinschreibung beachten!

Dateien können mehrere Unterbereiche (Streams) haben:DOS: nur ein StreamMacOS: Data Fork, Resource ForkNT: mehrere Streams möglich => datei:stream (default stream ohne Suffix = :0).

Verzeichnis (Directory): Vom Dateisystem verwaltete Datei zur hierarchischen Strukturierung externer Speichermedien.Home Directory: Wurzelverzeichnis eines Benutzers.Working Directory: aktuelles Arbeitsverzeichnis.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 3

Page 4: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

Pfad (Path):Folge von Bezeichnern getrennt durch Trennzeichen (Unix ‚/’, Windows: ‚\’).Absoluter Pfad: ausgehend von Wurzel (Unix ‚/’, Windows:, z.B. ‚c:\’).Relativer Pfad: beginnt mit Bezeichner und bezieht sich auf Working Directory.

Verweis (Link, Shortcut, Alias):Direkter Zugriff, ohne navigieren zu müssen.Löschen & Verschieben ungültige Links.Unix hard link: Verweis auf I-Node: ln datei link.(Datei wird erst dann gelöscht, wenn letzter Hardlink gekappt wurde).Unix symbolic link: Verweis auf Dateinamen: ln –s datei link.Hard links bei NTFS: Konsolewerkzeug: fsutil hardlink create <link> <file>.

Logische Formattierung einer Festplatte:Gewünschte Partitionen auf einer Festplatte erzeugen,Partition mit einem Dateisystem initialisieren,Physische Formatierung (low-level) = Adressenmarkierung und 512-Byte-Sektoren schreiben.

Windows:„fdisk“ erzeugt Partitionen ohne Dateisystem,„format“ initialisiert nur eine Partition mit einem Dateisystem.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 4

Page 5: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.1.4. Dateikontrollblock

Enthält die Verwaltungsdaten (file control block, FCB):Normalerweise aber NICHT den Dateinamen, das Verzeichnis und die Zugriffsrechte,jedoch Positionszeiger und aktuelle Blockadresse auf Disk,Verweise auf Puffer (im HS) + Pufferfüllgrad,Sperrinformation, Datum, ...

Beim Öffnen einer Datei:Zugriffsrechte prüfen,Datei als offen markieren (read/write?).Im Hauptspeicher einen Puffer für die Daten allozieren,Exemplar des FCB im Hauptspeicher anlegen.

FCB ist Teil der Datei-Verwaltungsstrukturen:Zum schnellen Zugriff auf Disk- und Hauptspeicheradressen,Unter Umständen mehrere FCBs im Hauptspeicher für eine Datei.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 5

Page 6: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.1.5. Dateizugriff

sequentiell: lesen & schreiben immer nur in Vorwärtsrichtung,Magnetbänder als Modellvorstellung.

direkt (random access): einzelne Bytes oder Blöcke direkt adressierbar,z.B. Festplatten, CDROM, ...

index-sequentiell:In der Regel vom BS nicht direkt unterstützt Datenbanken setzen direkt auf Disk auf,Zugriff auf einzelne Blöcke über evtl. mehrstufige Indextabellen,Überlaufbereiche erleichtern das Einfügen neuer Blöcke,gelegentliche Reorganisation erforderlich.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 6

001-100101-200201-300301-400

Page 7: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.2. FAT – Dateisysteme (File Allocation Table)

K.2.1. Partitionsstruktur:

Die Belegungseinheiten heißen Cluster.Jeweils feste Clustergröße für eine Partition,2n Disksektoren à 512 Bytes sind üblich (512, 1024, .. 32 KiB).

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 7

FAT BSC

...

Dateicluster

Wurzel- Verz.

Page 8: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.2.2. Clusterallozierung.

Die Cluster einer Datei sind verkettet:Über die Einträge der FAT (File Allocation Table),12/16/32 Bit Einträge pro Cluster (... FAT32), $FFFF = letzter Block einer Datei,$FFF7 = schadhafter Block,$0000 = leerer Block.

Separate Verkettung der Blöcke in Dateizuordnungstabelle (FAT):Auf den ersten Spuren einer Festplatte,für jeden Block einen Eintrag,sicherheitshalber repliziert,Kopie im Hauptspeicher,wird ständig aktualisiert.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 8

0 f f f 7 f f f 7 4 7 0 f f f f f f f f 8 a b

# 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # a # b

Cluster-Nr. (Index in Tab.) Dateianfang

Verkettung FAT-

Einträge

Page 9: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.2.3. Aufbau eines FAT16 Verzeichnisses:

Verzeichnisse sind ebenfalls Dateien:Verzeichnis zeigt auf ersten Block einer Datei, bzw. ersten Eintrag in der Tabelle.Länge des Verzeichnisses im übergeordneten Verzeichnis.Länge des Wurzelverzeichnis im FAT-PSC oder BSC.

Sonderfälle für Zeichen im Namensfeld:$00: letzter Eintrag im Verzeichnis (ungültig), $E5: Eintrag gelöscht,$2E: aktuelles Verzeichnis (‚.’), $2E2Eh = übergeordnetes Verzeichnis („..“)

Beschränkungen für die Grösse einer Partition:FAT12: 12-Bit 4096 Cluster, für Disketten, 16 MiB bei 32 KiB Cluster möglich.FAT16: 16-Bit 65.536 Cluster, 2 GiB pro Partition für 32 KiB Cluster.FAT32: 28-Bit > 2 GiB, weniger Verschnitt durch kleinere ClusterWeitere Beschränkungen ergeben sich aus der Geräteansteuerung.

VFAT16/32: Virtual File Allocation TableEigentlich keine FAT-Funktion,Ermöglicht lange Dateinamen (max. 255 Zeichen).

Charakteristiken der FAT-Dateisysteme:Ursprünglich nur 8+3 Dateinamen (ohne VFAT), Beschränkung der Dateigröße auf 4 Gigabytes,Zugriffsrechte: read-only oder read & write, keine benutzerbezogenen Schutzmechanismen,FAT-Systeme unter vielen BS zugänglich.Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 9

Page 10: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

Mode

Link count Owner-ID Group-ID Filesize

. . . Direct blocks

(12) single indirect

double indirect triple indirect

data blocks

I-Node

index blocks

K.3. Unix-Dateisysteme

K.3.1. I-Nodes

I-Nodes sind zentrale Strukturen des Dateisystems (I "Index")≠ .Dateityp und Berechtigungen (16-Bit),Anzahl harter Links auf Datei,Eigentümer-Projektgruppe.Eigentümer-User-ID.Dateigrösse in Bytes.Datumseinträge, ...Zeiger auf Daten- & Indexblöcke.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 10

Page 11: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

Multilevel-Index Allozierung:direkte Datenblöcke undIndex-Blöcke (single, double und triple) (Datenblöcke mit Zeigern).

Dateityp (4 Bits):Verzeichnis (#4),reguläre Datei (#8),symbolic Links(#10),Special File für Block Device(#6),Special File für Character Device(#2),Special Files für Pipes und Sockets(#1,#12).

Reservierte I-Node Nummern:0: gelöschte Dateien& Verzeichnissse,1: Je nach Dateisystem evtl. Datum der Formatierung, Anzahl schlechte Blöcke ...2: root Verzeichnis zum Dateisystem in der jeweiligen Partition.

Special Files ohne Datenblöcke, jedoch Referenz auf Pseudo Device-Driver.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 11

Page 12: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

Modus I-Node #6

Grösse

...

132

„/usr“ (Block 132) 6

1

19

26

51

30

.

..

ps

ms

sf

rg

Modus I-Node #26

Grösse

...

406

1

1

4

7

14

9

6

8

.

..

bin

dev

lib

etc

usr

tmp

Wurzelverz.

K.3.2. Verzeichnisse und Unterverzeichnisse

Implementiert als Dateien:Kennzeichnung als Verzeichnis im Typfeld.Eintrag: Dateinamen (14 Zeichen) & I-Node-Nummer (16 Bit).Zusätzliche Attribute in I-Nodes der Dateien.Beispiel: Verzeichnisstruktur für /usr/ms

Zum Beispiel im ext2 Dateisystem (Linux ..):

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 12

Page 13: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.3.3. Linux EXT2 Fast File System:

Lange Dateinamen mit max. 255 Zeichen.

Blockgruppen unabhängig von den Zylindern.

Block Descriptor:#freier Blöcke & #freier I-Nodes.Bitmaps für Datenblöcke & I-Nodes.Bitmaps belegen jeweils einen Block.

Ziel: teuere Positionierungszeiten minimieren:Datenblöcke in der Nähe ihrer I-Nodes.Datei I-Nodes in der Nähe vom Verzeichnis.

Fehlertoleranz:Super-Block repliziert pro Blockgruppe.Kopie aller Blockdeskriptoren in jeder Blockgruppe, jedoch ohne Bitmaps.

Optionale EigenschaftenKomprimierung und VerschlüsselungSpeicherplatzreservierungSpezielle Attribute

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 13

Page 14: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.3.4. Zugriffsrechte

Genau ein Eigentümer pro Datei oder Verzeichnis:Jeder Benutzer wird durch eindeutige Nummer (UID) repräsentiert.Ein Benutzer kann einer oder mehreren Benutzergruppen angehören, Benutzergruppen werden durch eine eindeutige Nummer (GID) repräsentiert,Mit jeder Datei wird die Besitzernummer und die Gruppennummer abgespeichert,Als Gruppe wird normalerweise die primäre Gruppe des Besitzers verwendet.

Drei mal 3 Zugriffsbits (r,w,x):für Besitzer, Gruppe und Andere.

Zugriffsbits bei Verzeichnissen (Typ 'd'):r: Inhalt darf aufgelistet werden,x: es darf in das Verzeichnis gewechselt werden,x+w: neue Dateien dürfen angelegt werden.

Beispiel Zugriffsbits: Besitzer, Gruppe, Andere

Typ+Rechte #Links Größe Datum Namedrwxr-xr-x 2 ps users 1024 Feb 10 10:39 Mail/-rwxr-x--- 1 ps users 224 Feb 10 10:36 hello.c-rw------- 1 ps users 103 Feb 12 09:39 testTechnische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 14

Page 15: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.3.5. Spezialbit: Setuid

Verfahren patentiert (durch Dennis Ritchie).

Unprivilegierte Benutzer und Prozesse erhalten kontrollierten Zugriff auf privilegierte Ressourcen.

Problembeispiel:Nur root darf auf die Passwortdatei zugreifen.User sollten gelegentlich ihr Passwort ändern, dürfen aber nicht auf die Datei zugreifen.

Lösungsansatz:Passwortprogramm gehört root und hat sein Setuid-Bit gesetzt.Wird es vom User gerufen, so läuft es nicht etwa mit der Zugriffsberechtigung des Users, sondern mit derjenigen des Eigentümers (z.B. root). Nur der Eigentümer kann das Setuid-Bit setzen (und immer auch root).Es geht nicht um die Ausführungsberechtigung von /bin/passwd, sondern um den Zugriff auf /etc/passwd.

ls –l zeigt bei den Benutzer-Zugriffsbits eines Verzeichnisses ein s (statt eines x) an.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 15

Page 16: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.3.6. Weitere Spezialbits

Spezialbit: SetgidBei der Ausführung des Programms wird immer die GID der Datei verwendet (und nicht die GID des aktuellen Aufrufers).Bei Verzeichnissen bewirkt dieses Bit, dass neu angelegte Dateien der Gruppe des Verzeichnisses angehören (nicht der Gruppe des Benutzers),ls –l zeigt bei den Gruppen-Zugriffsbits ein s (statt eines x) an.

Spezialbit: StickyFür öffentliche Verzeichnisse:jeder kann Dateien anlegen, lesen und schreiben,hierin enthaltene Dateien können nur durch Eigentümer oder root gelöscht werden, unabhängig von Verzeichnisrechten.Zum Beispiel für das /tmp Verzeichnis:ls –l zeigt bei allen gültigen Zugriffsbits ein t(statt eines x) an.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 16

Page 17: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.4. NTFS = New Technology File System

Charakteristiken:Alle Datei-Informationen werden als Datei gespeichert, auch die Metadaten.Weiterentwicklung des HPFS (OS/2), seit Windows 2000 NTFS Version 5.Kleine Blockgröße für große Partitionen möglich.64-Bit Adressen für große Dateien. Mehrere Datenströme pro Datei. Optionale Kompression.

Sicherheit:Zugriffskontrolle pro Benutzer oder Gruppe,Verschlüsselung.

Fehlertoleranz: NTFS ist ein Journaling File-System,Transaktionen mit Logging, RAID-Unterstützung.

Helen Custer, „Inside Windows NT File System“, Microsoft Press, 1994.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 17

Page 18: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.4.1. Dateiverwaltung

Datenstrukturen für eine Datei:3 Managementstrukturen: Objekt Management, Hauptspeicher, Disk,Eine Datei ist eventuell mehrfach geöffnet, referenziert aber dieselbe Daten.Möglicherweise mehrere Ströme pro Datei.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 18

Object manager data NTFS memory data NTFS disk

processmaster filetable

...

filecontrolblock

streamcontrolblocksdata

stream

user-definedattribute

file handletable

...

fileobject

fileobject

Object manager data NTFS memory data NTFS disk

processmaster filetable

...

filecontrolblock

streamcontrolblocksdata

stream

user-definedattribute

file handletable

...

fileobject

fileobject

Page 19: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

Dateinamen:werden in separaten Verzeichnisdateien gehalten,sind von Datei-Referenzen zu unterscheiden.

Datei-Referenz (file reference):bezeichnet eindeutig eine Datei bzw. ein Verzeichnis innerhalb eines Volumes (MFT),Wäre das Medium ein Hauptspeicher und keine Platte, so wären dies Zeiger,Sequenznummer: wird hochgezählt, für jede neue Datei mit gleicher Dateinummer.Dateinummer: Index in Master File Table (MFT).

#Sequenz

0

Dateinummer

47 63

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 19

Page 20: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.4.2. Aufbau eines NTFS Volumes (Partition):

Unterteilung in Clusters (ein oder mehrere fortlaufenden Sektoren).

BSC (Boot Sector) enthält:BPB=BIOS-Parameter Block: #Sektoren pro Cluster, „Plattengeometrie“, ...Boot-Programm (optional).

MFT (Master File Table):MFT ist selbst auch eine Datei~12,5 % der Partition werden reserviert.ggf. erweitern Fragmentierung der MFT.entspricht der I-Node-Tabelle in Unix.beschreibt die Lage der Datenblöcke.pro Datei/Verzeichnis ein Eintrag.

Systemdateien:Quota-Tabelle: Kontingent pro Benutzer.Bitmap-Datei: freie & belegte Cluster.Bad-Cluster-Datei: vermerkt defekte Cluster.MFT2: Kopie der ersten vier Einträge der MFT.Log-Datei: Änderungen an MFT protokollieren,...

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 20

System-Files

MFT

BSC

File Area

Page 21: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

Volume-Datei: gehört auch zu den Systemdateien,Größe & Name des Volumes, Versionsnummer der Partition.

Boot-Datei: repliziert teilweise den Boot-Sektor,gehört auch zu den Systemdateien,enthält eine Kopie vom Boot-Code,Größe eines Clusters und eines MFT-Eintrags.

Attribute:Enthält die Codierungen für die Attribute,Jede Datei bzw. Verzeichnis ist Satz von Attributen. Alle Elemente einer Datei, wie der Name, Sicherheits-ID, aber auch Daten sind Attribute.Jedes Attribut wird durch den Code für Attributtyp bzw. Attributnamen identifiziert.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 21

Page 22: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.4.3. MFT-Eintrag für eine kurze Datei:

Standard info: Dateilänge, MS-DOS Attribute, Anzahl der Hard-Links, Zeitstempel für Zugriffe, Sequenznr. der gültigen File-Reference.

Security descriptor: Zugriffskontrolle.

Daten der Datei direkt in der MFT abgelegt.

Analog für kurze Verzeichnisse:in Daten („index of files“) Sammlung von Referenzen auf Dateien.Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 22

security descr.

file name

standard info empty data

Page 23: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.4.4. MFT-Eintrag für eine lange Datei:

Runs bzw. Extents:Große Dateien sind ausserhalb der MFT in sog. runs bzw. extents abgelegt.Falls ein MFT-Eintrag nicht genügt, werden weitere alloziert.MFT-Eintrag enthält dann nur noch Zeiger.

Virtuelle Clusternummer (VCN):Adressierung innerhalb einer Datei.

Logische Clusternummer (LCN):Adressierung innerhalb der Partition.

Analog für lange Verzeichnisse.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 23

security descr.

file name

standard info

data

starting VCN

starting LCN

no. of clusters

VCN 0 4

1355 1388

3 4

data VCN

LCN

0

1355 1357

1 2 data

VCN

LCN

3

1388 1391

4 5 6

3

Page 24: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.5. Dateisysteme mit Fehlererholung

K.5.1. Allgemeines

Inkonsistente Metadaten durch z.B. Absturz:Verzeichniseintrag fehlt zur Datei oder umgekehrt,Block ist benutzt aber nicht als belegt markiert.

Reparaturprogramme:Programme wie chkdsk, scandisk oder fsck können u. U. inkonsistente Metadaten reparieren.Datenverluste bei Reparatur sind jedoch wahrscheinlich & u.U. lange Laufzeit.

Lösung: Journaling-DateisystemeSchreibzugriffe auf Metadaten werden in Transaktionen (TA) gekapselt.Buchführung der Modifikationen in einer Protokolldatei (log file).Protokollierung immer vor der Durchführung:

Redo-Log: TAs wiederholen/abschließen.Undo-Log: TAs rückgängig machen.

Im Recovery-Fall wird Protokolldatei mit den aktuellen Änderungen abgeglichen.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 24

Page 25: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

Checkpoints:Log-File kann nicht beliebig groß werden.Gelegentlich wird für einen konsistenten Zustand (Checkpoint) auf Platte gesorgt.Alle Protokolleinträge vor diesem Checkpoint können gelöscht/überschrieben werden.Außerdem wird hierdurch das Recovery schneller.

Bewertung:Metadaten immer konsistent.Datenverlust aber weiter möglich!TAs und Logging verursachen Overhead.Logging erfolgt deshalb auch über Disk-Cache.

Beispiele: NTFS, ReiserFS, EXT3.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 25

Page 26: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.5.2. Fallstudie: Journaling in NTFS

Logdatei:Restart-Bereich: zeigt an, wo im Fehlerfall Recovery beginnt (sicherheitshalber repliziert).Logging-Bereich: für Protokollierung (Dateigröße fix zirkuläres Schreiben).

Einträge im Logging-Bereich:Nummeriert mit Logical Sequence Number (LSN).Update-Eintrag: besteht aus idempotenter Undo- und Redo-Operation:

Wiederholtes Ausführen einer Operation führt immer zum gleichem Ergebnis. Beispiele: undo: Cluster freigeben, redo: Cluster belegen.

Im Fehlerfall verwendet NTFS die Logdatei:Abgeschlossen TAs die nicht auf Disk durchgeschrieben sind werden wiederholt (redo),Nicht vollständige TAs werden zurückgesetzt (undo).

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 26

Page 27: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

Logfile-Service (LFS)

LFS schreibt in Logdatei:NTFS greift immer über LFS auf Logdatei zu.Zugriffe auf Logdatei und Dateien erfolgen immer über Cache-Manager Arbeiten im Cache schneller und Logging wird gebündelt.

LFS verwaltet zwei Tabellen im Hauptspeicher:dirty page table (DPT): LSNs zu Metadaten im Cache, die noch nicht gespeichert wurden,transaction table (TT): nicht abgeschlossene Transaktionen (letzte LSN einer TA).

Durchschreibestrategie:Nur Metadaten laufen über den Logfile-Dienst,regelmäßig Logdatei durchschreiben (gebündelt),Im Fehlerfall ist der gesamte Hauptspeicherinhalt verloren,zuerst Logdatei durchschreiben, anschließend Dateisystem-Metadaten durchschreiben.Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 27

NTFS-Driver

Logfile Service

Cache Manager

Dateisystem

Logfile

Volume updates schreiben

log TA

Dateizugriff

flush requ.

r/w/flush

Page 28: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

Ablauf der Protokollierung:NTFS modifiziert Volume vorerst im FS-Cache (Daten & Metadaten).NTFS ruft LFS, um TAs zu protokollieren, welche Metadaten ändern (Undo/Redo/Commit/Chkpt)

Log-File System übergibt zugehörige LSN an Cache Manager, Cache Manager identifiziert den Log-Eintrag zu diesem Update, Cache Manager speichert höchste LSN mit jeder Seite jüngste Änderung.

Will Cache Manager eine Menge von Seiten mit Meta-Daten „wegschreiben“, so ruft er den LFS:Cache Manager übergibt die höchste LSN dieser Seiten an LFS.LFS ruft anschließend den Cache-Manager zurück und veranlasst diesen alle ausstehenden Log-Einträge bis zu dieser LSN zu schreiben und zu löschen.Gleichzeitig werden mit Löschen der Log-Daten auch d. Volume-Änderungen geschrieben.

NTFS schreibt alle 5 Sek. einen Checkpoint:LSN des letzten Checkpoints wird im Restart-Bereich abgespeichert.

Checkpoint speichert LSNs der Tabellen DPT und TT:Erzwingt aber weder Abschluss ausstehender TAs noch Durchschreiben von Log-Daten.Zwischen den Einträgen eines Checkpoints können weitere Transaktionen eingestreut sein.

Recovery (Phasen 0-3):Initialisierung (0): Letzter Checkpoint aus Restart-Bereich, Laden der zugehörigen DPT und TT.Analyse-Phase (1): Einzelne Tabellen untereinander abgleichen und auf Gültigkeit prüfen.Redo-Phase (2): Wiederholbare Aktionen ausführen (z.B. gültige Daten vom Cache schreiben).Undo-Phase (3): Nicht abgeschlossene TAs rückgängig machen.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 28

Page 29: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.6. Ergänzende Themen

K.6.1. Limitierung der Plattennutzung

Mehrbenutzersysteme:Einzelnen Benutzern sollen verschieden große Kontingente zur Verfügung stehen.Ziel: gegenseitige Beeinflussung/Behinderung vermeiden.

Quota-Systeme:Dateisystem verwaltet Tabelle auf Disk.„Disk full“-Meldung, wenn Quota verbraucht.Tabelle enthält maximale & augenblickliche Anzahl von Blöcken für Dateien und Verzeichnisse eines Benutzers.In der Regel weiche (können kurzfristig Überschritten werden) und harte Grenzen.

Beispiele:NTFS,ext2, ...

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 29

Page 30: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.6.2. Disk-Caching

Festplattenkontroller haben große On-board-Caches (> 8 MB):Disk Caching wird in aktuellen Betriebssystemen intensiv genutzt.Sobald gesuchter Sektor gefunden wurde, wird gesamter Track in den Cache eingelesen.Weitere Anfragen zu Blöcken aus diesem Track bedient der Kontroller direkt aus Cache.

BS puffert übertragene Blocks zusätzlich zum Blockcache im HS:Metadaten evtl. sofort durchschreiben.

Optional: virtuelle Disk (RAM-Disk) im HS unter Kontrolle des Benutzers.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 30

Page 31: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

K.6.3. Redundanz & Spiegelung

RAID= Redundant Array of Inexpensive Disks:Daten auf mehrere Festplatten verteilen, absichern und replizieren.mehrere Levels definiert von Universität Berkeley.Software- und Hardware-Lösungen möglich.

RAID Level 0: Keine Redundanz der Daten.Datenblöcke (Stripes) auf mehrere Disks verteilt,daher n-fach erhöhte Lese- und Schreibleistung.

RAID Level 1: Benötigt zwei Festplatten.Wird auch als „Spiegeln“ bezeichnet.Gesamtkapazität entspricht einer Platte.Lesen kann mit doppelter Geschwindigkeit erfolgen,Schreiboperationen aber immer auf beidenDisks gemeinsam (daher einfache Geschwindigkeit).

RAID Level 10: Kombination aus RAID Level 1 und Level 0.Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 31

stripe 0

stripe 1

stripe 2

stripe 3

stripe 6

stripe 7

stripe 8

stripe 9

stripe 0

stripe 1

stripe 2

stripe 3

stripe 6

stripe 7

stripe 8

stripe 9

stripe 0

stripe 4

stripe 8

stripe 12

stripe 1

stripe 5

stripe 9

stripe 13

stripe 2

stripe 6

stripe 10

stripe 14

stripe 3

stripe 7

stripe 11

stripe 15

Page 32: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

RAID Level 2:Platten werden nicht mehr komplett gespiegelt Festplattenkapazität wird besser ausgenutzt.Feste Bitfolgen werden mit Hamming-Codes zur Fehlerkorrektur erweitert (ECC-Bits),unterschiedliche Bits auf verschiedene Platten verteilt.Anzahl Platten abhängig von gewähltem Code (>12).Heute nicht mehr verwendet.

RAID Level 3:Unterschiedliche Bits eines Bytesauf verschiedene Platten,Paritätsinfo auf einer Festplatte(Flaschenhals),mindestens 3 Platten.Heute von RAID 5 abgelöst.

Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 32

E1 E2 E3 E4 ECC-E ECC-E ECC-E

D1 D2 D3 D4 ECC-D ECC-D ECC-D

C1 C2 C3 C4 ECC-C ECC-C ECC-C

B1 B2 B3 B4 ECC-B ECC-B ECC-B

A1 A2 A3 A4 ECC-A ECC-A ECC-A

E1 E2 E3 E4 Parity -E

D1 D2 D3 D4 Parity -D

C1 C2 C3 C4 Parity -C

B1 B2 B3 B4 Parity -B

A1 A2 A3 A4 Parity-A

Page 33: K. Datei- & Verzeichnissysteme - Ulm · 2009. 7. 13. · K.1.2. Anforderungen: Persistenz – Dauerhafte Speicherung. Speichervergabe (vgl. auch "Plattenspeicher"): Gleichzeitiges

RAID Level 4:Blockweises Schreiben (Chunks), statt bitweise Aufteilung,Redundanz durch Checksumme (XOR).Einzelne Parity-Platte ist Flaschenhals.

RAID Level 5:Paritätsinfo verteilt über alle Festplatten,blockweiser Betrieb.Zumeist in heutigen RAID-Systemenverwendet.

Weitere Spezialversionen:RAID Level 6: verkraftet Ausfall von 2 Festplatten,Kombinationen unterschiedlicher Level, usw.Technische Informatik 1, 2009, © P. Schulthess, Verteilte Systeme, Universität Ulm K - 33

block 0

block 4

block 8

block 12

block 1

block 5

block 9

block 13

block 2

block 6

block 10

block 14

block 3

block 7

block 11

block 15

P(0 - 3)

P(4 - 7)

P(8 - 11) P(12 - 15)

block 0

block 4

block 8 block 12

P(16 - 19)

block 1

block 5

block 9

P(12 - 15)

block 16

block 2

block 6

P(8 - 11) block 13

block 17

block 3

P(4 - 7)

block 10

block 14

block 18

P(0 - 3)

block 7

block 11

block 15

block 19