presentation-dateisysteme/dateisysteme.md

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
Grundbegriffe -------------
Datei
Logische Gruppe von zusammengehörigen Daten
Verzeichnis
Logische Gruppe von Dateien
Arten von Dateisystemen =======================

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, …
Begriffe Teil 2 ---------------
Beispiel des Aufbaus eines Linked List FS
Begriffe Teil 2 ---------------
Beispiel des Aufbaus eines Indexed FS
Begriffe Teil 2 ---------------
Beispiel des Aufbaus eines B-Tree FS
Beispiele =========

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
Verteilter Speicher: CephFS ---------------------------
  • 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
Pseudo: procfs --------------
  • Dateispeicher dahinter ist der (Linux-)Kernel
  • Interface zu Process 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 per sysfs 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
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
Präsentation
https://gitlab.usrspace.at/everyone/presentation-dateisysteme
Verein `/usr/space`
https://usrspace.at
Präsentation ist [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.de)

Fragen?