Dateisysteme - Hochleistungs-Ein-/Ausgabe · Dateisysteme Hochleistungs-Ein-/Ausgabe MichaelKuhn Wissenscha˝lichesRechnen FachbereichInformatik ... Universal:ISO9660,UDF,......
Post on 30-Aug-2018
219 Views
Preview:
Transcript
Dateisysteme Quellen
DateisystemeHochleistungs-Ein-/Ausgabe
Michael Kuhn
Wissenscha�liches RechnenFachbereich InformatikUniversität Hamburg
2017-04-21
Michael Kuhn Dateisysteme 1 / 53
Dateisysteme Quellen
1 DateisystemeOrientierungDateisystemeext4Object StoresDatenstrukturenLeistungsbewertungAusblick und Zusammenfassung
2 Quellen
Michael Kuhn Dateisysteme 2 / 53
Dateisysteme Quellen
Orientierung
E/A-Schichten
Anwendung
Bibliotheken
Speichergerät/-verbund
Paralleles verteiltes Dateisystem
Dateisystem
Leis
tung
sana
lyse
Opt
imie
rung
en
Date
nred
uktio
n
Abbildung: E/A-Schichten
Michael Kuhn Dateisysteme 3 / 53
Dateisysteme Quellen
Dateisysteme
Aufgabe
StrukturierungÜblicherweise Dateien und VerzeichnisseHierarchische OrganisationAndere Ansätze: Tagging
Verwaltung von Daten und MetadatenBlockallokationZugri�srechte, Zeitstempel etc.
Dateisysteme nutzen ein darunter liegendes SpeichergerätOder einen SpeicherverbundLogical Volume Manager (LVM) und/oder mdadm
Michael Kuhn Dateisysteme 4 / 53
Dateisysteme Quellen
Dateisysteme
Beispiele
Linux: ext4, XFS, btrfs, ZFS, . . .Windows: FAT, exFAT, NTFSOS X: HFS+, APFSUniversal: ISO9660, UDF, . . .
Michael Kuhn Dateisysteme 5 / 53
Dateisysteme Quellen
Dateisysteme
Beispiele. . .
Netzwerk: NFS, AFS, SambaKryptographisch: EncFS, eCryptfsParallel verteilt: GPFS, Lustre, . . .Pseudo: procfs, . . .Setzen häufig auf darunterliegenden Dateisystemen auf
Michael Kuhn Dateisysteme 6 / 53
Dateisysteme Quellen
Dateisysteme
E/A-Schnittstellen
Anfragen werden über E/A-Schnittstellen realisiertWeiterleitung an das DateisystemUnterschiedliche Abstraktionsebenen
Low-Level-FunktionalitätPOSIX, MPI-IO, . . .
High-Level-FunktionalitätHDF, NetCDF, . . .
Michael Kuhn Dateisysteme 7 / 53
Dateisysteme Quellen
Dateisysteme
E/A-Operationen
1 fd = open("/path/to/file", O_RDWR | O_CREAT | O_TRUNC,↪→ S_IRUSR | S_IWUSR);
2 nb = write(fd, data, sizeof(data));3 rv = close(fd);4 rv = unlink("/path/to/file");
Listing 1: E/A über Low-Level-Funktionen
Initialer Zugri� über PfadDanach über File Descriptor (bis auf einige Ausnahmen)
Funktionen befinden sich in der libcDiese führt System Calls durch
Michael Kuhn Dateisysteme 8 / 53
Dateisysteme Quellen
Dateisysteme
E/A-Operationen. . .
Mit open können auch Dateien erstellt werdenViele mögliche Flags und Modi
write liefert die Anzahl der geschriebenen Bytes zurückMuss nicht notwendigerweise der übergebenen Größeentsprechen (Fehlerbehandlung!)write verändert intern den Dateizeiger (alternativ: pwrite)
Alle Funktionen liefern einen RückgabewertBei Fehlern sollte errno überprü� werden
Michael Kuhn Dateisysteme 9 / 53
Dateisysteme Quellen
Dateisysteme
VFS
Virtual File System (Switch)Zentrale Dateisystemkomponente im Kernel
Standardisiertes Interface für alle Dateisysteme (POSIX)Gibt Dateisystemstruktur und -schnittstelle größtenteils vor
Leitet Anfragen der Anwendungen weiterBasierend auf demMountpoint
Ermöglicht die Unterstützung unterschiedlichster DateisystemeAnwendungen bleiben durch POSIX trotzdem portabel
Michael Kuhn Dateisysteme 10 / 53
Dateisysteme Quellen
Dateisysteme
VFS. . . [3]
Applications (Processes)
VFS
malloc
BIOs (Block I/O)
The Linux Storage Stack Diagramhttp://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
Created by Werner Fischer and Georg SchönbergerLicense: CC-BY-SA 3.0, see http://creativecommons.org/licenses/by-sa/3.0/
ext2 ext3
btrfs
ext4
xfs ifsiso9660
...
NFS coda
Network FS
gfs ocfssmbfs ...
pseudo FS specialpurpose FSproc sysfs
futexfs
usbfs ...
tmpfs ramfs
devtmpfspipefs
network
mmap(anonymous pages)
block based FSre
ad
(2)
wri
te(2
)
op
en(2
)
stat(
2)
chm
od
(2)
...
PageCache
mdraid...
stackable
devices on top of “normal”block devices drbd
optional
LVM
BIOs (Block I/O)
ceph
struct bio- sector on disk - bio_vec cnt- bio_vec index- bio_vec list
- sector cnt
direct I/O(O_DIRECT)
device mapperdm-crypt dm-mirror
dm-thindm-cache bcache
Michael Kuhn Dateisysteme 11 / 53
Dateisysteme Quellen
Dateisysteme
VFS. . . [3]
Applications (Processes)
VFS
request-baseddevice mapper targets
dm-multipath
Physical devices
HDD SSD DVDdrive
MicronPCIe Card
LSIRAID
AdaptecRAID
QlogicHBA
EmulexHBA
malloc
BIOs (Block I/O)
sysfs(transport attributes)
SCSI upper level drivers
/dev/sda .../dev/sdb
SCSI low level driversmegaraid_sas
aacraid
qla2xxx ...libata
ahci ata_piix ... lpfc
Transport Classesscsi_transport_fc
scsi_transport_sas
scsi_transport_...
/dev/vd*
virtio_blk mtip32xx
/dev/rssd*
The Linux Storage Stack Diagramhttp://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
Created by Werner Fischer and Georg SchönbergerLicense: CC-BY-SA 3.0, see http://creativecommons.org/licenses/by-sa/3.0/
ext2 ext3
btrfs
ext4
xfs ifsiso9660
...
NFS coda
Network FS
gfs ocfssmbfs ...
pseudo FS specialpurpose FSproc sysfs
futexfs
usbfs ...
tmpfs ramfs
devtmpfspipefs
network
nvmedevice
The Linux Storage Stack Diagramversion 3.17, 2014-10-17
outlines the Linux storage stack as of Kernel version 3.17
mmap(anonymous pages)
iscsi_tcp
network
null_blk/dev/rbd*
block based FS
read(2
)
wri
te(2
)
open(2
)
stat(
2)
chm
od(2
)
...
PageCache
mdraid...
stackable
devices on top of “normal”block devices drbd
optional
LVM
BIOs (Block I/O)
BIOs BIOs
Block Layer
multi queue
blkmq
SoftwareQueues
HardwareDispatchQueues
...
...
hooked in device drivers(they hook in like stackeddevices do)
BIOs
maps bios to requests
deadline
cfqnoop
I/O Scheduler
HardwareDispatchQueue
Requestbased Drivers
BIObased Drivers
Requestbased Drivers
rbd
ceph
struct bio- sector on disk - bio_vec cnt- bio_vec index- bio_vec list
- sector cnt
Fibre
Channel
over
Eth
ern
et
LIO
target_core_mod
tcm
_fc
Fire
Wir
e
ISC
SI
direct I/O(O_DIRECT)
device mapper
network
iscs
i_ta
rget_
mod
sbp_t
arg
et
target_core_file
target_core_iblock
target_core_pscsi
vfs_writev, vfs_readv, ...
dm-crypt dm-mirror
dm-thindm-cache
tcm
_qla
2xxx
tcm
_usb
_gadget
USB
Fibre
Channel
tcm
_vh
ost
Vir
tual H
ost
nvme
/dev/nvme#n#
SCSI Mid Layer
virtio_pci
LSI 12GbsSAS HBA
mpt3sas
bcache
/dev/nullb*
vmw_pvscsi
/dev/skd*
skd
stecdevice
virtio_scsi
para-virtualizedSCSI
VMware'spara-virtualized
SCSI
Michael Kuhn Dateisysteme 12 / 53
Dateisysteme Quellen
Dateisysteme
Dateisystemobjekte
Unterscheidung in Benutzer- und SystemsichtBenutzer sehen Dateien und VerzeichnisseDas System kennt zusätzlich Inodes
Relevant für stat etc.
InodesEnhalten MetadatenEigentliche Basisobjekte des Dateisystems
Jeder Datei und jedem Verzeichnis ist ein Inode zugeordnetÜblicherweise eindeutige IDs
Michael Kuhn Dateisysteme 13 / 53
Dateisysteme Quellen
Dateisysteme
Dateisystemobjekte. . .
DateienEnthalten Daten in Form eines Byte-ArraysKönnen gelesen/geschrieben werden (explizit)Können in den Speicher gemappt werden (implizit)
VerzeichnisseEnthalten Dateien und VerzeichnisseZur Organisation des Namensraumes
Michael Kuhn Dateisysteme 14 / 53
Dateisysteme Quellen
Dateisysteme
Dateien
1 nb = pwrite(fd, data, sizeof(data), 42);2 nb = pread(fd, data, sizeof(data), 42);
Listing 2: Expliziter Zugri�
pwrite und pread verhalten sich wie write bzw. readExplizite Angabe des O�sets und damit threadsicher
Zugri� über File DescriptorKann vonmehreren Threads parallel genutzt werden
Michael Kuhn Dateisysteme 15 / 53
Dateisysteme Quellen
Dateisysteme
Dateien. . .
1 char* pt = mmap(NULL, FILE_SIZE, PROT_READ |↪→ PROT_WRITE, MAP_SHARED, fd, 0);
2 memcpy(pt + 42, data, sizeof(data));3 memcpy(data, pt + 42, sizeof(data));4 munmap(pt, FILE_SIZE);
Listing 3: Impliziter Zugri�
mmap erlaubt es eine Datei in den Speicher einzublendenDatei beginnt an Adresse ptVerschiedene Sichtbarkeitseinstellungen (shared vs. private)
Zugri� wie auf andere SpeicherobjekteZ.B. via memcpy oder direkte Zuweisung
Michael Kuhn Dateisysteme 16 / 53
Dateisysteme Quellen
Dateisysteme
Dateien. . .
Beide Zugri�sarten haben jeweils Vor- und NachteileBeide Modi profitieren vom Caching durch das Betriebssystem
Expliziter Zugri�Vorteile: genaue Kontrolle über E/ANachteile: separate Pu�er notwendig, Kopiervorgänge zwischenKernel- und Userspace
Impliziter Zugri�Vorteile: keine separaten Pu�er notwendig, e�iziente E/A durchdas Betriebssystem, keine unnötigen KopiervorgängeNachteile: keine genaue Kontrolle, kompliziertereFehlerbehandlung (Signale)
Michael Kuhn Dateisysteme 17 / 53
Dateisysteme Quellen
Dateisysteme
Verzeichnisse
Inode Größe Namenslänge Dateityp Name23 10 2 2 .\024 11 3 2 ..\0...
......
......
42 14 6 1 hello\043 14 6 2 world\0
Abbildung: ext4-Verzeichniseintrag [1]
Traditionell lineares ArrayLangsam, da über das komplette Array iteriert werdenmuss
Heutzutage eher BaumstrukturenDeutlich komplexer, dafür geringere Zugri�szeiten
Name wird nicht im Inode gespeichertMehrere Namen können auf denselben Inode zeigen
Michael Kuhn Dateisysteme 18 / 53
Dateisysteme Quellen
Dateisysteme
Inodes
Feldgröße Inhalt2 Bytes Berechtigungen2 Bytes Benutzer-ID4 Bytes Dateigröße4 Bytes Zugri�szeit4 Bytes Inode-Änderungszeit4 Bytes Datenänderungszeit4 Bytes Löschzeit2 Bytes Gruppen-ID2 Bytes Linkzahl...
...60 Bytes Blockzeiger, Extent-Baum oder Inline-Daten...
...4 Bytes Versionsnummer100 Bytes Freier Speicher
Abbildung: ext4-Inode (256 Bytes) [1]
Michael Kuhn Dateisysteme 19 / 53
Dateisysteme Quellen
Dateisysteme
Inodes. . .
Kompliziert durch RückwärtskompatibilitätOn-Disk-Format kann nur schwer geändert werden
Viele Felder sind aus Kompatibilitätsgründen aufgeteiltZeitstempel: 4 Bytes für Sekunden seit 1970, 4 Bytes fürNanosekundenauflösungGröße: Obere und untere 4 Bytes
Felder mehrfach überladenBlockzeiger, Extent-Baum oder Inline-Daten (falls Datei kleinerals 60 Bytes)100 Bytes am Inode-Ende für erweiterte Attribute
Michael Kuhn Dateisysteme 20 / 53
Dateisysteme Quellen
Dateisysteme
Inodes. . .
1 $ touch foo2 $ ls -l foo3 -rw-r--r--. 1 u g 0 19. Apr 18:48 foo4 $ ln foo bar5 $ ls -l foo bar6 -rw-r--r--. 2 u g 0 19. Apr 18:48 bar7 -rw-r--r--. 2 u g 0 19. Apr 18:48 foo8 $ stat --format=%i foo bar9 64117410 64117411 $ rm foo12 $ ls -l bar13 -rw-r--r--. 1 u g 0 19. Apr 18:48 bar
Listing 4: Inode vs. Datei
Michael Kuhn Dateisysteme 21 / 53
Dateisysteme Quellen
Dateisysteme
POSIX-Schnittstelle
Syntaxopen, close, creatread, write, lseekchmod, chown, statlink, unlink
SemantikSpezifiziert auch wie sich E/A-Operationen verhalten sollenwrite: “POSIX requires that a read(2) which can be proved tooccur a�er a write() has returned returns the new data. Note thatnot all filesystems are POSIX conforming.”
Michael Kuhn Dateisysteme 22 / 53
Dateisysteme Quellen
ext4
ext4
Standard-Dateisystem in vielen Linux-DistributionenEingeführt 2006, stabil 2008Vorgänger: ext, ext2, ext3
Statische Festlegung bei DateisystemerzeugungInode-ZahlBlockgröße
Traditionelles DateisystemDaten werden direkt geändert (kein Copy on Write)Keine Prüfsummen für Daten
Michael Kuhn Dateisysteme 23 / 53
Dateisysteme Quellen
ext4
ext
Erstes Dateisystem speziell für LinuxNutzte als erstes Dateisystem die VFS-Schicht
Inspiriert vom Unix File System (UFS)Beseitigte Beschränkungen des MINIX-Dateisystems
Dateigrößen bis 2 GBDateinamen bis 255 Zeichen
Michael Kuhn Dateisysteme 24 / 53
Dateisysteme Quellen
ext4
ext2
Separate Zeitstempel für Zugri� und Inode-/DatenänderungDatenstrukturen für zukün�ige Erweiterungen ausgelegtTestumgebung für neue VFS-Funktionen
Access Control Lists (ACLs)Erweiterte Attribute
Michael Kuhn Dateisysteme 25 / 53
Dateisysteme Quellen
ext4
ext3
JournalingErklärung folgt später
Dateisystemvergrößerung zur LaufzeitNützlich für LVM-Umgebungen
H-Baum für größere VerzeichnisseVerkürzt die Suchzeiten im Verzeichnis
Michael Kuhn Dateisysteme 26 / 53
Dateisysteme Quellen
ext4
ext4
Größere Dateisysteme, Dateien und VerzeichnisseExtentsPreallokation, verzögerte Allokation und verbesserteMultiblockallokationJournal-PrüfsummenSchnellere DateisystemüberprüfungNanosekunden-ZeitstempelUnterstützung für TRIM
Michael Kuhn Dateisysteme 27 / 53
Dateisysteme Quellen
ext4
ext4. . .
Inhalt GrößePadding (Blockgruppe 0) 1.024 BytesSuperblock 1 BlockGruppenbeschreibung nBlöckeReservierte GDT-Blöcke mBlöckeDaten-Bitmap 1 BlockInode-Bitmap 1 BlockInode-Tabelle k BlöckeDaten-Blöcke l Blöcke
Abbildung: ext4-Blockgruppe [1]
Das Speichergerät ist in mehrere Blockgruppen unterteiltFlexible Blockgruppen fassen mehrere Blockgruppen zusammen
Michael Kuhn Dateisysteme 28 / 53
Dateisysteme Quellen
ext4
ext4. . .
Blockgröße 1 KiB 2KiB 4KiB 64KiBBlöcke 264 264 264 264
Inodes 232 232 232 232
Dateisystemgröße 16 ZiB 32 ZiB 64 ZiB 1 YiBDateigröße (Extents) 4 TiB 8 TiB 16 TiB 256 TiBDateigröße (Blöcke) 16 GiB 256GiB 4 TiB 256 PiB
Abbildung: ext4-Limits im 64-Bit-Modus [1]
Standardgröße ist 4 KiB (und o�izielles Maximum)Sollte nicht größer als Seitengröße gewählt werden
Michael Kuhn Dateisysteme 29 / 53
Dateisysteme Quellen
ext4
Allokation
BlockbasiertViele Blöcke gleicher Größe (üblicherweise 4 KiB)Zeiger auf Blöcke im Inode
Direkt, indirekt, doppelt indirekt, dreifach indirektHoher Overhead bei großen Dateien
Beispiel: 1 TiB große Datei benötigt 268.435.456 ZeigerBeschränkt maximale Dateigröße
Michael Kuhn Dateisysteme 30 / 53
Dateisysteme Quellen
ext4
Allokation. . .
ExtentbasiertWenige möglichst große Extents
Vier Extents können im Inode gespeichert werdenMehr in einer Baumstruktur und zusätzlichen Blöcken
Zeiger auf Startblock und LängeMaximale Länge: 32.768 BlöckeEntspricht 128MiB bei einer Blockgröße von 4 KiB
Ermöglicht größere Dateien
Michael Kuhn Dateisysteme 32 / 53
Dateisysteme Quellen
ext4
Allokation. . .
BlockallokationVersuche zusammenhängende Blöcke zu allokierenVersuche Blöcke in derselben Blockgruppe zu allokieren
Multiblockallokation und verzögerte AllokationSpekulativ 8 KiB bei Dateierzeugung allokierenAllokation wird erst durchgeführt, wenn Blöcke auf dasSpeichergerät geschrieben werdenmüssen
Michael Kuhn Dateisysteme 33 / 53
Dateisysteme Quellen
ext4
Allokation. . .
Dateien und VerzeichnisseBlöcke möglichst in der Blockgruppe des Inodes allokierenDateien möglichst in der Blockgruppe des Verzeichnissesallokieren
Ziele der AllokationsstrategienMöglichst große Zugri�e
Festplatten erreichen nur geringe IOPS-WerteZugri�e nahe beieinander
Reduziert Kopfbewegungen bei FestplattenMetadaten der Blockgruppe eventuell schon im Cache
Optimierungen bei SSDs weniger von Bedeutung
Michael Kuhn Dateisysteme 34 / 53
Dateisysteme Quellen
ext4
Sparse-Dateien und Preallokation
Sparse-Dateien: Dateien mit „Löchern“Z.B. mit lseek oder truncateE�iziente Speicherung von Dateien mit vielen 0-Bytes
1 $ truncate --size=1G dummy2 $ ls -lh dummy3 -rw-r--r--. 1 u g 1,0G 18. Apr 23:49 dummy4 $ du -h dummy5 0 dummy
Listing 5: Erzeugung einer Sparse-Datei
Michael Kuhn Dateisysteme 35 / 53
Dateisysteme Quellen
ext4
Sparse-Dateien und Preallokation. . .
Preallokation: Speicher vorallokierenMit fallocate bzw. posix_fallocateVerhindert Fragmentierung bei vielen Dateivergrößerungen
1 $ fallocate --length $((1024 * 1024 * 1024)) dummy2 $ ls -lh dummy3 -rw-r--r--. 1 u g 1,0G 19. Apr 19:14 dummy4 $ du -h dummy5 1,1G dummy
Listing 6: Preallokation einer Datei
Unterschiedliche Basen je nach Werkzeug
Michael Kuhn Dateisysteme 36 / 53
Dateisysteme Quellen
ext4
Journaling
Journaling zur Sicherung der Konsistenz des DateisystemsDateisystemoperationen benötigen mehrere SchritteZ.B. das Löschen einer Datei
1 Entfernen des Verzeichniseintrags2 Freigeben des Inodes3 Freigeben der Datenblöcke
Problematisch im Fall eines Absturzes
Michael Kuhn Dateisysteme 37 / 53
Dateisysteme Quellen
ext4
Journaling. . .
Geplante Änderungen werden ins Journal eingetragenEntfernen wenn Operation vollständig durchgeführt
Bei der anschließenden DateisystemüberprüfungÄnderungen wiederholen oderÄnderungen verwerfen
Unterschiedliche ModiMetadaten-Journaling und volles Journaling
Michael Kuhn Dateisysteme 38 / 53
Dateisysteme Quellen
ext4
Journaling. . .
Journal: Alle Änderungen werden ins Journal geschriebenDeaktiviert verzögerte Allokation und O_DIRECT
Ordered: Metadaten werden ins Journal geschriebenZugehörige Daten werden vor Metadaten geschriebenProblematisch mit verzögerter AllokationIst die Standardeinstellung
Writeback: Metadaten werden ins Journal geschriebenBietet höchste Leistung aber geringste Sicherheit
Michael Kuhn Dateisysteme 39 / 53
Dateisysteme Quellen
Object Stores
Funktionen
„Dateisystem light“Dünne Abstraktionsschicht über SpeichergerätenObjektbasierter Zugri� auf Daten
Nur GrundoperationenErstellen, Ö�nen, Schließen, Lesen, Schreiben
Manchmal Object SetsKönnen benutzt werden um verwandte Objekte zu gruppieren
Michael Kuhn Dateisysteme 40 / 53
Dateisysteme Quellen
Object Stores
Funktionen. . .
Üblicherweise keine PfadeZugri� über eindeutige IDsKein Overhead durch PfadauflösungDadurch auch flacher Namensraum
Block-/Extent-AllokationEiner der komplexesten und leistungsrelevantesten Aspekte
Auf unterschiedlichen Abstraktionsebenen verfügbarCloudspeicher, Festplatte
Michael Kuhn Dateisysteme 41 / 53
Dateisysteme Quellen
Object Stores
Schichtung
Können als Unterbau für Dateisysteme genutzt werdenErlaubt Konzentration auf DateisystemfunktionalitätSpeicherverwaltung durch separate Schicht
Bei lokalen Dateisystemen nicht sinnvollFunktionalität größtenteils durch POSIX vorgegebenHauptunterschied ist Blockallokation
Sehr sinnvoll für parallele verteilte DateisystemeKein redundanter Dateisystem-Overhead
Michael Kuhn Dateisysteme 42 / 53
Dateisysteme Quellen
Datenstrukturen
B-Baum vs. B+-Baum
7 16
9 121 2 18 215 6
Abbildung: B-Baum [4]
Verallgemeinerter BinärbaumOptimiert für Systeme, die große Blöcke lesen/schreibenZeiger und Daten gemischt
Michael Kuhn Dateisysteme 43 / 53
Dateisysteme Quellen
Datenstrukturen
B-Baum vs. B+-Baum.. .
7 16
9 121 2 18 215 6 7 16
Abbildung: B+-Baum [4]
Daten nur in BlätternVorteilha� für Caching, da einfacher alle Knoten zu cachenBenutzt in NTFS, XFS, . . .
Michael Kuhn Dateisysteme 44 / 53
Dateisysteme Quellen
Datenstrukturen
Alternativen
H-BaumBasiert auf B-BaumAndere Behandlung von Hash-KollisionenBenutzt in ext3 und ext4
Bε-BaumOptimiert für SchreibvorgängeVerbesserte Leistung für Einfügeoperationen, Bereichsabfragenund Aktualisierungen
Michael Kuhn Dateisysteme 45 / 53
Dateisysteme Quellen
Leistungsbewertung
Leistungsbewertung
Dateisystemleistung ist schwierig zu bewertenViele unterschiedliche FaktorenDaten- vs. MetadatenleistungLeistung unterschiedlicher FunktionenLeistung für spezifische Anforderungenmessen
Datensicherheit kostet üblicherweise LeistungVolles Journaling, Prüfsummen etc.
Michael Kuhn Dateisysteme 46 / 53
Dateisysteme Quellen
Leistungsbewertung
Kernel- vs. Userspace
Dateisysteme üblicherweise direkt im Kernel implementiertHoher WartungsaufwandKomplexere Implementierung
Alternative: Filesystem in Userspace (FUSE)Besteht aus Kernelmodul und BibliothekEntwicklung von Dateisystemen als normale ProzesseUmleitung in Userspace durch VFS und FUSE-ModulGeringere Leistung durch Kontextwechsel
Michael Kuhn Dateisysteme 47 / 53
Dateisysteme Quellen
Leistungsbewertung
Kernel- vs. Userspace. . . [5]
libfuse
glibcglibc
FUSE
Ext3
...
VFS
ls -l /tmp/fuse
./hello /tmp/fuse
Kernel
Userspace
NFS
Michael Kuhn Dateisysteme 48 / 53
Dateisysteme Quellen
Ausblick und Zusammenfassung
Ausblick
Moderne Dateisysteme integrieren zusätzliche FunktionenVolumenverwaltung, Prüfsummen, Schnappschüsse, . . .Komfort vs. Datensicherheit
Basis für parallele verteilte DateisystemeExistierende und optimierte Blockallokation etc.Object Stores häufig besser geeignet
Michael Kuhn Dateisysteme 49 / 53
Dateisysteme Quellen
Ausblick und Zusammenfassung
Zusammenfassung
Dateisysteme organisieren Daten und MetadatenÜblicherweise standardisierte Schnittstelle
Hauptobjekte sind Dateien und VerzeichnisseInodes speichern Metadaten
Neue Techniken zur E�izienzsteigerungJournaling um Konsistenz sicherzustellenSpeicherallokation mit Hilfe von ExtentsBaumstrukturen für skalierbaren Zugri�
Michael Kuhn Dateisysteme 50 / 53
Dateisysteme Quellen
1 DateisystemeOrientierungDateisystemeext4Object StoresDatenstrukturenLeistungsbewertungAusblick und Zusammenfassung
2 Quellen
Michael Kuhn Dateisysteme 51 / 53
Dateisysteme Quellen
Quellen I
[1] djwong. Ext4 Disk Layout. https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout.
[2] Hal Pomeranz. Understanding Indirect Blocks in Unix FileSystems. http://digital-forensics.sans.org/blog/2008/12/24/understanding-indirect-blocks-in-unix-file-systems.
[3] Werner Fischer and Georg Schönberger. Linux Storage StackDiagramm. https://www.thomas-krenn.com/de/wiki/Linux_Storage_Stack_Diagramm.
[4] Wikipedia. B-tree.http://en.wikipedia.org/wiki/B-tree.
Michael Kuhn Dateisysteme 52 / 53
Dateisysteme Quellen
Quellen II
[5] Wikipedia. Filesystem in Userspace. http://en.wikipedia.org/wiki/Filesystem_in_Userspace.
Michael Kuhn Dateisysteme 53 / 53
top related