6.7 KiB
6.7 KiB
Dateisysteme
Inhalt
- Was sind Dateisysteme
- Grundbegriffe
- Arten von Dateisystemen
- Beispiele
- Fragen?
Was sind Dateisysteme
Was sind Dateisysteme
- Abstraktionsebene zwischen unstrukturiertem Speicher und Anwender / Applikation
- angereichert um Verwaltungsdaten
- Dateiname
- Zugriffsrechte
- Interaktions-Zeiten
- Index der belegten / freien Speicherbereiche
Wozu Dateisysteme?
- Ohne Dateisysteme muss jede Applikation den Speicher selbst organisieren
- Konsistenz und Integrität können ausgelagert werden
- Können für bestimmte Speicher optimiert werden, ohne alles andere zu
adaptieren
- Beispiel: F2FS/yaffs2 für NAND-Speicher (SSD, SD-Karten, …), ISO9660 für CDs, …
Grundbegriffe
Grundbegriffe
- Blöcke
- Zusammenfassung von Bytes im Speicher, die zusammen gelesen/geschrieben werden
- Speicher
- Addressierbare Ablage für Daten
- IOPS
- I/O Operations Per Second, also Lese-/Schreiboperationen Pro Sekunde
- Datei
- Logische Gruppe von zusammengehörigen Daten
- Verzeichnis
- Logische Gruppe von Dateien
Lineare Dateisysteme
- Älteste Form
- Typischer Einsatz: Lochkarten und Bandspeicher
- Kein zentraler Index der freien Blöcke, sondern verteilt
Flache Dateisystem
- Die frühesten Platten-Dateisysteme
- Keine Verzeichnisse
- Frei/Belegt-Index eine einfache Bitmap
- Alle Dateinamen + Metainformationen in der Master File Table
Hierarchische Dateisysteme
- Erweiterung der flachen Dateisysteme
- Bereits relativ früh
- Verezichnisse zur logischen Strukturierung
- Unter *NIX oft nur eine spezielle Art Datei
Netzwerk Dateisysteme
- „Speicher“ muss nicht lokal sein
- Zusätzliche Abstraktion von Netzwerk-Zugriffen
- Bekannteste Vertreter: NFS und CIFS („Windows Dateifreigabe“)
Verteile Dateisysteme
- Speicher muss nicht lokal und nicht auf nur einem Host sein
- Verteilung meist Redundant und für den Client unsichtbar
- Beispiele: CephFS oder GlusterFS
- Vorteil oft erhebliches Durchsatzplus bei Leseoperationen
- Skalierung in die Breite leicht
Begriffe Teil 2
Begriffe Teil 2
- Cluster / Inode / Record
- Zusammenfassung von Blöcken unabhängig von der Hardware
- Bitmap
- Teil innerhalb des Superblocks in dem über einzelne Bits markiert wird welche Inodes frei/belegt sind
- Master File Table / Superblock
- Informationen zum Dateisystem: Größe, Größe der Inodes, Ort der Backup-Superblöcke, …
Alt: FAT12
- Das erste Dateisystem von MS-DOS
- 8.3 Dateinamen
- 2 MFTs mit Bitmaps
- Linked List System, jeder Datenblock verweist auf den nächsten
- Maximale Volume-Größe: 32 MiB
Neuer: NTFS
- „New Technology File System“, Standard der NT-Familie seit Windows NT 3.1
- 255 Zeichen Dateinamen
- Bitmap
- B-Tree
Linux: ext4
- Quasi-Nachfolger von ext2 und ext3
- Journalling
- B-Tree statt Indexed wie die Vorgänger
- Quasi-Default auf Linux
Ohne Inodes: ReiserFS
- Ganzes FS großer B+-Tree
- Hohe Geschwindigkeit bei zufälligen Zugriffen
- Sehr schnell bei Verzeichnissen mit vielen Dateien
- Reiser3 leider veraltet, Reiser4 nicht fertig
Integrierter Volume Manager: ZFS
- Ursprünglich auf Solaris, inzwischen auf fast jedem unixoiden OS
- Maximale Größe
- Volume: 2128 Bytes
- Datei: 264 Bytes
- Eingebaut: Kompression, Deduplikation, RAID, Snapshots, …
- CDDL nicht mit GPLv3 kompatibel, darf deshalb nicht als Binary und/oder teil des Linux-Kernels ausgeliefert werden
- CERN mit CephFS: 65 PB, 10.800 Disken
- Daten u.a. aus den LHC Experimenten
- ~ 300Gbps Schreibgeschwindigkeit
- Nutzt Ceph im Hintergrund
- Ceph: objekt-basierter, verteilter, redundanter Netzwerkspeicher
- Dateispeicher dahinter ist der (Linux-)Kernel
- Interface zu
Proc
ess Informationen - Jeder Prozess in der Form
/proc/<pid>
abgebildet, inkl. offene Dateien, Kommandozeile, Umgebung, … - Begrenzt können auch System-Settings bearbeitet werden
- Treiber-Zugriff inzwischen nach
/sys
persysfs
ausgelagert
Links
- NTFS
- https://de.wikipedia.org/wiki/NTFS
- ext4
- https://de.wikipedia.org/wiki/Ext4
- Ceph
- https://de.wikipedia.org/wiki/Ceph
- Präsentation "Storage at CERN"
- https://indico.cern.ch/event/649159/contributions/2761965/attachments/1544385/2423339/hroussea-storage-at-CERN.pdf
Links
- ZFS on Linux
- https://zfsonlinux.org/
- CDDL and GPL
- https://en.wikipedia.org/wiki/License\_compatibility\#CDDL\_and\_GPL
- Synthetic file system
- https://en.wikipedia.org/wiki/Synthetic\_file\_system
- exFAT
- https://de.wikipedia.org/wiki/exFAT
- Apple File System
- https://de.wikipedia.org/wiki/Apple\_File\_System
Links
- Präsentation
- https://gitlab.usrspace.at/everyone/presentation-dateisysteme
- Verein `/usr/space`
- https://usrspace.at