Implementierung von Dateisystemen



Ähnliche Dokumente
Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Implementierung von Dateisystemen

Jeder Datenträger besitzt einen I-Node-Array. Jede Datei auf dem Datenträger hat einen I-Node-Eintrag.

6.2 FAT32 Dateisystem

Laufwerke unter Linux - Festplatten - - USB Sticks - September 2010 Oliver Werner Linuxgrundlagen 1

Partitionieren und Formatieren

Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, Thema 13 Sicher ist sicher, S.58-61

OPERATIONEN AUF EINER DATENBANK

Ontrack EasyRecovery 11 Neue Funktionen. S.M.A.R.T.-Analysefunktion Wiederherstellung von VMware VMDK-Images Datenlöschfunktion

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Wiederholung: Realisierung von Dateien

Betriebssysteme 1. Thomas Kolarz. Folie 1

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Dateisystem: Einführung

Dateisystem: Einführung

Stecken Sie Ihren USB Stick oder Ihre externe USB Festplatte in den USB Steckplatz des Sinus 154 DSL SE.

Dokumentation. Erstellung eines bootfähigen USB-Sticks zur Veränderung einer bestehenden Partitionierung

Kap. 8: Dateisysteme (E3 EXT2 Dateisystem) 1

Btrfs. Linux-Dateisystem der Zukunft? Thomas Schöbel 1 / 20

Workshop: Eigenes Image ohne VMware-Programme erstellen

Digital Forensics. Slackspace DI Robert Jankovics DI Martin Mulazzani

Installationshinweise Linux Kubuntu 9.04 bei Verwendung des PC-Wächter

Leitfaden zum Sichern einer Festplatte als Image mit der System Rescue CD

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

BACKUP Datensicherung unter Linux

5.2 Analyse des File Slack

DNS 323 Wiederherstellung von gelöschten Dateien (bzw. von als in Windows als gelöscht markierten Dateien ) aus einem ext2 Dateisystem

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, Thema 13 Sicher ist sicher, S.58-61

Updatehinweise für die Version forma 5.5.5

Samsung Drive Manager-FAQs

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Zugriff auf die Modul-EEPROMs

Verwaltung der MSATA-SSD bei HP Envy Ultrabook 4 und Ultrabook 6 mit Intel Smart Response Technologie

Die Soforthilfe bei gelöschten Dateien! für Windows 95(OSR2)/98/ME/NT4/2000/XP

Dateisysteme. Erweiterte Anforderungen an Speicher

Verzeichnisbaum. Baumartige hierarchische Strukturierung Wurzelverzeichnis (root directory) Restliche Verzeichnisse baumartig angehängt

Installationshinweise Linux Edubuntu 7.10 bei Verwendung des PC-Wächter

IntelliRestore Seedload und Notfallwiederherstellung

Verwendung von SD-Speicherkarten über den SPI-Bus

Was ist ein Dateisystem? Wozu dient es? Lokale Dateisysteme. Speichergrößen. Inhalt der Präsentation

KURZANLEITUNG CLOUD OBJECT STORAGE

Die Soforthilfe bei Datenverlust! für Windows 95/98/ME/NT/2000/XP

Betriebssysteme Teil 16: Dateisysteme (Beispiele)

Olga Perevalova Universität Hamburg

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

SJ OFFICE - Update 3.0

2. Darstellung von Information im Computer

Step by Step Webserver unter Windows Server von Christian Bartl

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

DNS 323 Datenwiederherstellung mit Knoppix (DVD) ab Firmware Version 1.04b84

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

OUTLOOK-DATEN SICHERN

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2

Beheben von verlorenen Verknüpfungen

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Sichern der persönlichen Daten auf einem Windows Computer

Unterrichtseinheit 12

Macrium Reflect Freeware-Tutorial:

Gparted Tutorial by Georg

SICHERN DER FAVORITEN

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Favoriten sichern. Sichern der eigenen Favoriten aus dem Webbrowser. zur Verfügung gestellt durch: ZID Dezentrale Systeme.

Programmieren I. Kapitel 15. Ein und Ausgabe

Sophos Anti-Virus. ITSC Handbuch. Version Datum Status... ( ) In Arbeit ( ) Bereit zum Review (x) Freigegeben ( ) Abgenommen

Eigene Dokumente, Fotos, Bilder etc. sichern

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Win 7 optimieren. Unser Thema heute: Meine erstellten Daten in eine andere Partition verschieben.

Prodanet ProductManager WinEdition

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Datenträgerverwaltung

Installationsvoraussetzungen

Step by Step Benutzerverwaltung unter Novell. von Christian Bartl

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Um über FTP Dateien auf Ihren Public Space Server - Zugang laden zu können benötigen Sie folgende Angaben:

neu aufsetzen. Daten sichern... 2 Was man nach dem "Aufsetzen" unbedingt braucht!... 5

Formular»Fragenkatalog BIM-Server«

Installieren von Microsoft Office Version 2.1

Voraussetzungen zur Nutzung aller LANiS Funktionalitäten

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Collax Archive Howto

DOKUMENTATION VOGELZUCHT 2015 PLUS

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 14 und VMware Player

Speicherstrukturen. Aufgabe 1-1: Fragen zu FAT (File Allocation Table) Aufgabe 1-2: Datensätze variabler Länge. Kind.java:

Betriebssysteme SS Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz E SB 5 ( ) ACLs und Capabilities

DiskSpaceMapper. Wo verstecken sich die vielen MBytes?

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Wie verbinde ich ein JBOD-System mit dem QStore QMX? - 1

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

Computer-Systeme. Teil 16: Dateisysteme

Avira System Speedup Release-Informationen

Bedeutung der Metadateien. Alle Metadaten werden in Dateien gehalten. NTFS ist ein Journal-File-System

Transkript:

Implementierung von Dateisystemen Prof. Dr. Margarita Esponda WS 2011/2012 1

Implementierung von Dateisystemen Schichten-Architektur des Dateisystems Implementierung von Dateisystemen Implementierung der Verzeichnisse Allokationsmethoden Verwaltung von freiem Platz Effizienz- und Performance-Probleme Wiederherstellung von Information (Recovery) Log-Strukturen in Dateisystemen NFS (Network File System) WAFL (Write Anywhere File Layout) 2

Schichten eines Dateisystems Prozesse Logisches Dateisystem Dateiverwaltungs-Module Primitives Dateisystem Gerätetreiber - Metadaten der gesamten Dateisystemstrukturen - Verwaltet die Verzeichnisstruktur - FCBs file-control blocks (inode in Linux) - Schutzmechanismen - Übersetzung von logischen Adressen in physikalische Blöcke. - Freiplatz-Manager - Generische Lese- und Schreibe-Operationen - Verwaltung von Speicher-Buffers und Caches für Verzeichnisse und Dateiblöcke 3

Schichten eines Dateisystems Prozesse Logisches Dateisystem Dateiverwaltungs-Module Primitives Dateisystem Gerätetreiber open("dateiname"); read( pos ); readblock 1 of file 12540 read block at offset 3045 read drive 1, cylinder 20, track 2, sec 2 or read LBA 231230 out 210h, ax 4

Schichten-Architektur Dateisystem-Architektur Vorteile - Programmcode wird minimiert. - Mehr Flexibilität Nachteile - mehr Overhead innerhalb des Betriebssystems - Verminderung der Effizienz Wichtige Entscheidungen sind: - wie viele Schichten - Funktionalität innerhalb jeder Schicht 5

Einige Beispiele: Dateisysteme CD-ROMs ISO 9660 Austauschbare Speichermedien Lokale und verteilte Dateisysteme UFS UNIX file system FFS Berkeley Fast File System FAT, FAT32, VFAT, FAT64 und NTFS Windows NT-Dateisysteme ext2 und ext3 Linux Extended-Dateisysteme (Verteiltes Dateisystem) GFS Google File System Linux unterstützt mehr als 40 Dateisysteme 6

Dateisystem-Implementierung Festplatten-Struktur (Beispiel) Partitionstabelle Plattenpartitionen MBR... master boot record Typisches Partitionslayout Boot- Block Superblock Freispeicher- Verwaltung I-Nodes Wurzel- Verzeichnis Dateien und Verzeichnisse Das Layout der Partitionen kann unterschiedlich sein. 7

Festplatten-Struktur (Beispiel) Master Boot Record MBR MBR... Selbstidentifizierung Grand Unified Boot Manager 446 Bytes Partition table Magic number 64 Bytes 2 Bytes Partition 1 Partition 2 Partition 3... 8

MBR Master Boot Record - Sektor 0 - Im MBR ist die Partitionstabelle, die Anfangs- und Endadresse jeder Partition beinhaltet. - Eine Partition ist immer als aktiv markiert. - Wenn der Computer gestartet wird, liest das BIOS den MBR ein und führt ihn aus. - Der erste Block der aktiven Partition (Boot-Block) wird gesucht und ausgeführt. - Das Programm im Boot-Block lädt das Betriebssystem. - Jede Partition beginnt immer mit einem Boot-Block, der das eigentliche Betriebssystem lädt. 9

Superblock oder Volume Control Block Wichtige Parameter des Dateisystems sind hier. Wird im Speicher geladen, wenn nach Starten des Computers zum ersten Mal auf das Dateisystem zugegriffen wird. Hier sind Informationen wie z.b. Magische Zahl, um Typ und Größe des Dateisystems sowie andere Verwaltungsinformation zu identifizieren. Weitere wichtige Information des Dateisystems wie Freispeicher- Verwaltung, I-Nodes, Wurzelverzeichnisse usw. wird je nach Dateisystem unterschiedlich organisiert. 10

mount table Strukturen des Dateisystems Hier sind alle Dateisysteme, die im Betriebssystem aktiv sind. in-memory directory-structure cache Information über die vor kurzem verwendeten Verzeichnisse. system-wide open-file table Kopie der FCB von jeder Datei, die gerade geöffnet ist. per-process open-file table Zeigen auf Einträge im system-wide open-file table, sowie Prozess spezifische Datei-Information. 11

Dateisteuerblock (FCB) Ein typischer FCB file-control block beinhaltet folgende Information: - Zugriffsrechte - Datum (create, access, modify) - Datei (owner, group) ACL (access control list) - Dateigroße - Dateiblöcke oder Zeiger auf Dateiblöcken Wenn eine neue Datei erzeugt wird, wird das logische Dateisystem eingeschaltet und eine neue FCB erzeugt. Oft gibt es im Speicher eine Liste freier FCBs, die im voraus erzeugt werden. 12

Das Öffnen einer Datei Verzeichnis-Struktur Verzeichnis-Struktur open(dateiname) FCB file-control block Benutzer-Adressraum Kernel-Adressraum Dateisystem 13

Unix open() int fid = open("dateiname", flags); read(fid, ); Benutzer-Adressraum 0 stdin Kernel-Adressraum 1 2 stdout stderr... 3......... (Index) Pro Prozess Dateistruktur... (Attribute) Pro Geräte Datei- Deskriptor um die Blöcke zu finden 14

Das Lesen in einer Datei Index Datei-Blöcke read(index) pro Prozess open-file table system.-wide open-file table FCB file-control block Benutzer- Adressraum Kernel-Adressraum file descriptor (UNIX) file handle (Windows) Festplatte 15

Dateisystem Schnittstelle zum Benutzerprogramm VFS-Schnittstelle Lokales Dateisystem von Typ 1 Lokales Dateisystem von Typ 2 Remote-Dateisystem Netz 16

VFS-Architektur in Linux Wichtige Datenstrukturen sind: inode-objekt file-objekt superblock-objekt dentry-objekt Eine Datei Eine geöffnete Datei Ein komplettes Dateisystem Verzeichnis-Eintrag Für jedes dieser Objekte definiert das Linux-VFS eine Reihe von Operationen (Schnittstelle), die implementiert werden müssen. Jeder Objekttyp hat einen Verweis auf eine Funktionstabelle. Die Funktionstabelle beinhaltet die Liste der Adressen auf den Funktionen, die die entsprechenden Operationen der Objekte implementieren. 17

VFS-Architektur in Linux Hier ist eine gekürzte Version der bekanntesten Funktionen der Linux-API für das file-objekt: int open (...) ssize_t read(...) ssize_t write(...) int mmap(...) öffnet eine Datei liest aus einer Datei schreibt in eine Datei memory-map von einer Datei Für jeden neuen Dateisystems-Typ müssen alle Funktionen des Datei-Objekts implementiert werden, die für den struct file- Datentyp spezifiziert sind. /usr/include/linux/fs.h 18

Implementierung von Verzeichnissen Lineare Liste Eine lineare Liste von Namen mit Verweisen auf die Blockdaten. - sehr einfach zu implementieren - sehr ineffizient - O(n) für Such-Operationen Hashtabelle Viel effizienter als lineare Listen Probleme - Kollisionen - Feste Tabellengröße Eine Alternative sind chained-overflow hash tables 19

Implementierung von Verzeichnissen Lineare Liste Dir FCB 1 Dateiblöcke FCB 2 Dateiblöcke FCB 3 Dateiblöcke FCB 4 20

Implementierung von Verzeichnissen Hashtabelle Dir FCB 1 HF Dateiblöcke FCB 3 FCB 1 Dateiblöcke Dateiblöcke 21

Allokationsmethoden Drei grundlegenden Belegungs-Mechanismen Zusammenhängende Belegung Belegung durch verkettete Listen Belegung durch verkettete Listen mit einer Tabelle im Arbeitsspeicher (Indexed allocation) 22

Zusammenhängende Belegung Verzeichnis Datei a first list b Start 0 11 16 5 Länge 2 4 3 4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Festplattenspeicher 23

Zusammenhängende Belegung Vorteile Einfachste aller Methoden Sehr schneller direkter Zugriff auf die Daten Für die Lokalisierung der Dateiblöcke brauchen wir nur Anfangsblock und Größe der Datei zu wissen. Lese-Operationen können sehr effizient implementiert werden. Gute Fehlereingrenzung 24

Zusammenhängende Belegung Probleme Dynamische Dateigrößen sind ein Problem Im Laufe der Zeit wird die Platte fragmentiert. Platz zu finden für neue Dateien ist ein Problem Verwaltung von freien Speicherplätzen notwendig Regelmäßige Kompaktifizierung notwendig Platte hin- und zurück kopieren On-line Defragmentierung Modifizierte zusammenhängende Belegung mit extends (UNIX UFS) 25

Verzeichnis Verkettete Blöcke file jeep start 2 end 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Festplattenspeicher 26

Verkettete Blöcke Jede Datei wird als verkettete Liste von Plattenblöcken gespeichert. Nur die Plattenadresse des ersten und letzten Blocks wird in dem Verzeichniseintrag gespeichert. Vorteile Keine externe Fragmentierung Sequenzieller Zugriff ist kein Problem Probleme Schlechter wahlfreier Zugriff auf Dateiinhalte Jeder Verweis verursacht einen neuen Plattenzugriff Overhead für das Speichern der Verkettung Lösung: clusters aus mehren Blöcken) Erhöhter Aufwand bei Dateizugriffen Schlechte Fehlereingrenzung 27

File Allocation Table FAT Verzeichnis-Eintrag Dateiname Startblock Verwendet bei MS-DOS und OS/2 Betriebssystemen. Ein Datei-Eintrag hat die Zahl des ersten Blocks. Nicht belegte Blöcke haben eine 0. 28

File Allocation Table FAT Vorteile Physikalisches Block - Dateien können sehr leicht und effizient vergrößert werden Nachteile Datei A (1. Block) Datei B (1. Block) - Interne Fragmentierung - schlecht für random accesses - fehleranfällig unbenutzte Block 29

Indizierte Tabellen jede Datei hat einen Indexblock wahlfreier Zugriff ist möglich keine externe Fragmentierung Indextabelle dynamischer Zugriff Speicher-Overhead für die zusätzlichen Indextabellen der Index kann im Cache gespeichert werden 30

Indizierte Tabelle Beispiel: Bildquelle: Silverschatz, Galvin, Gagne 31

Verkettete Listen mit indizierter Tabelle Fragen Wie groß soll ein Indexblock sein? - zu groß-> Speicher-Overhead - zu klein -> Probleme mit großen Dateien Lösungen Linked scheme - Mehrere Indexblocks werden verkettet Multilevel index - Zweistufige Indexblocktabelle wird verwendet Combined scheme - Für kleine Dateien wird nur eine einfache Indextabelle verwendet. Wenn aber die Dateien groß werden, verwandelt sie sich in eine mehrstufige Indextabelle. 32

Multilevel index Verzeichnis-Eintrag äußere Indextabelle Indextabellen Datei 33

permissions owner/group 3 timestamps i-nodes size direct pointer to data blocks... Linux verwendet ein kombiniertes Schema. single indirect ptr. double indirect ptr. tripple indirect ptr. 34

i-nodes Vorteile - schneller Zugriff für kleine Dateien - keine externe Fragmentierung Probleme - Interne Fragmentierung - Die maximale Dateigröße ist begrenzt 35

i-nodes ext2-dateisystem-grenzen im Linux Das Dateisystem begrenzt die Anzahl von Unterverzeichnissen in einem gegebenen Verzeichnis auf 32.768 Stücke. 36

Linux/Unix-Dateisysteme Dateisystem maximale Dateigröße maximale Dateisystemgröße Ext4 16 TByte 1024 PByte Ext3 2 TByte 16 TByte JFS 4 PByte 32 PByte ReiserFS 3 8 TByte 16 TByte XFS 8192 PByte 8192 PByte ZFS (Solaris) 16.384 PByte 16.384 PByte 37

Verwaltung des freien Speichers Bit-Vektor Verkettete Listen Grouping Freie Blöcke werden in Indexblöcken zusammengefasst Der letzte Block hat einen Zeiger auf den nächsten Indexblock Counting Zeiger auf zusammenhängende Blöcke + Anzahl der Blöcke wird gespeichert Space Maps Sun ZFS Dateisystem 38

Verwaltung des freien Speichers Bit-Vektor 00001110111 00000011 0 block[i] ist frei 1 block[i] ist belegt Vereinfacht das Erzeugen von Dateien aus zusammenhängenden Blöcken. Zusätzlicher Speicher auf der Festplatte wird benötigt. Beispiel Blockgröße = 4096 Bytes Partitionsgröße = 20 Gigabytes Bit-Vektor = 640 KBytes 39

Verwaltung des freien Speichers Kopfzeiger der Liste von freie Blöcken Keine Verschwendung von Speicherplatz. Die Verkettung findet in den freien Blöcken selbst statt. Schwierig, zusammenhängenden Speicherbereich zu finden. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Lokalität? ab hier! Festplattenspeicher 40

Grouping Verwaltung von freiem Platz - Eine Verbesserung der Verwaltung mit verketteten Listen. - Speichert die Adressen von n freien Blöcken (Indextabelle) im ersten freien Block. Im Block n befindet sich die Adresse der nächsten Gruppe von Blöcken. - Eine große Anzahl von freien Blöcken kann schnell gefunden werden. 41

Verwaltung von freiem Platz Counting - Speichert die Anfangsadresse und Größe von n zusammenhängenden Blöcken. - Die Einträge können anstatt in einer Liste in einem B-Baum gespeichert werden. 42

Verwaltung von freiem Platz Space Maps - Sun's ZFS Dateisystem - große Dateimengen, Verzeichnisse und Dateisystem-Hierarchien - verwendet metaslabs - eine Platte kann mehrere hundert metaslabs haben - jedes metaslab wird einem space map zugeordnet - der space map ist einer log-struktur, die die gesamte Aktivität in zeitlicher Reihenfolge speichert - bei alloc- oder dealloc-operationen in einer metaslab, wird der space map als balancierter Baum geladen, indexiert beim offset. Die log-file wird in der Baumstruktur gespielt - komprimiert zusammenhängende freie Blöcke der space map - zum Schluss wird die Liste freier Bereiche der Festplatte als Teil der Transaktion aktualisiert 43