Moderne Dateisysteme

Ähnliche Dokumente
Solaris 10 - das ZFS. Gregor Longariva. 16. Mai 2006

ZFS Filesystem und KVM-Virtualisierung

Speichergeräte und -verbünde

7.2 Journaling-File-Systems (4)

Das Dateisystem. ZFS im Detail. Florian Hettenbach

Speicher- und Dateisysteme. Vortragender: Christian Rosenberg

Lokales Storage Teil 2

Lennard Main IAV2/2010 RDF Nürnberg

Lokales Storage Teil 2

Alle Metadaten werden in Dateien gehalten

Die Sicht eines Sysadmins auf DB systeme

PVFS (Parallel Virtual File System)

Intern: Ceph Kurzeinführung in die verteile Storage-Lösung

Wiederholung: Realisierung von Dateien

ZFS. Eine Einführung. Jörg Möllenkamp Senior Systems Engineer. Sun Microsystems

<Insert Picture Here> Btrfs und ZFS Eine Gegenüberstellung von Dateisystemen der neuen Generation

Einführung in parallele Dateisysteme am Beispiel von GPFS. Proseminar von Jakob Schmid im SS 2014

storage management (c) Till Hänisch 2003, BA Heidenheim

Welcome to ZFS. best Open Systems Day Spring Unterföhring. Marco Kühn best Systeme GmbH

6.2 Master-File-Table (4) 6.2 Master-File-Table (3) 6.2 Master File Table (5) 6.2 Master File Table (6) Mögliche weitere Streams (Attributes)

Verlässliche Systeme

6.2 Master-File-Table (3)

Einführung in Dateisysteme

ZFS: Die Zukunft 12. November 2009

3 Master File Table (2)

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

btrfs Eine Einführung Florian Preinstorfer VALUG

OPEN STORAGE + ZFS. Constantin Gonzalez Principal Field Technologist Sun Microsystems GmbH

Speicherklassen außerhalb des Arrays. Dr. Carsten Haak ESD Practice Manager EMEA EMC Corp.

Top 3 Herausforderungen bei der forensischen Analyse von macos

Anleitung zur Installation von SATA- Festplatten und zur RAID-Konfiguration

STORAGE. Martin Schmidt Berufsschule Obernburg

Storage / Filesysteme

ZFS Dateisytem ohne Schmerzen

Alle Metadaten werden in Dateien gehalten

4 LCN VCN LCN Extents werden außerhalb der MFT gespeichert

Linux Campus Treffen. Marcel Ritter 08. Mai

Grundlagen der Dateisysteme. Daniel Lieck

Solaris Virtualisierung mit ZFS und Container (Zonen)

Keep your SAN simple Spiegeln stag Replizieren

Betriebssysteme K_Kap11C: Diskquota, Raid

Betriebssysteme. Tutorium 12. Philipp Kirchhofer

sempre PCIe SATA Raid Controller Benutzerhandbuch Version 1.00 Copyright sempre 2011

WISSENSWERTES ÜBER WINDOWS SCALE-OUT FILE SERVER

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

cyber-diode Anleitung zur Datenbankreplikation mit PostgreSQL und MySQL

SATA - SAS. Bandbreite ist nicht Performance. MB/s und GB/s sind wichtig für: Backbone Netzwerke Data-Streaming Disk-to-Disk Backup

Vergleichstabelle zwischen Paragon Festplatten Manager 2011 Suite und Paragon Festplatten Manager 11 Professional*

CIFS Server mit WAFL oder ZFS

Thomas-Krenn.AG Webinar Hochverfügbarkeit und Datensicherheit mit Open-E JovianDSS

ein verteiltes und repliziertes Dateisystem XtreemOS IP project is funded by the European Commission under contract IST-FP

Lokales Storage Teil 1

Michael Göhler. Linux User Group Erding. 25. September 2013

ZFS. - Das endgültige Filesystem. Detlef Drewanz Ambassador Operating Systems Sun Microsystems GmbH

ZFS: Love Your Data. Neal H. Waleld. Düsseldorfer Fellowship Treen,

<Insert Picture Here> Überblick Oracle Recovery Manager

Software-RAID unter Linux

Einführung FAT - File Allocation Table NTFS - New Technology Filesystem HFS - Hierachical Filesystem ext - Extended Filesystem Zusammenfassung

LVM. Logical Volume Manager. Stefan J. Betz Backspace e.v. 19. Oktober 2014

EINRICHTEN EINER SQL-SICHERUNG FÜR BMD NTCS

Dateisysteme. Was ist ein Dateisystem?:

Kostengünstige Virtuelle Speicher-Pools im Petabyte-Bereich mithilfe von MARS. GUUG 2017 Vortrag von Thomas Schöbel-Theuer

Einleitung Architektur Schnittstellen Dateisysteme 3D XPoint im Vergleich Zusammenfassung Literatur. 3D XPoint. Patrick Wittke

Praxis Linux-Administration

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

ZFS - Das Dateisystem der nächsten Generation?

RAID, LVM und Co. Was steckt dahinter?

QNAP NAS Software RAID Management

2010 DataCore Software Corp. All rights reserved

15 Implementierung von Dateien 15.5 Beispiel: Windows NT (NTFS)

Schnelles Backup & Restore mit Multisection

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

Linux vs. Solaris als Fileserver

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Services Konfigurationsanleitung

Grundlagen der Dateisysteme. Daniel Lieck

Btrfs Dateisystem. Proseminar Speicher- und Dateisysteme. Tom Maier Sommersemester 2015


Redundant Array of Inexpensive Disks

Freispeicherverwaltung Martin Wahl,

Virtuelle Datenträger für KVM

Einführung in Dateisysteme

Clustered Storage. Ceph und Gluster im Vergleich

Leistungsanalyse von ZFS on Linux Projekt Parallelrechnerevaluation

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

DB-Performance auf FLASH-Storage

Netzwerkspeicher und Dateisysteme

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

Partitionierung unter Linux

LVM und ZFS reloaded

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

Dateisysteme. Erweiterte Anforderungen an Speicher

Hier geht nix rein! Storage-Performance im Virtualisierungsumfeld. Michael Ziegler. 15. März it-novum GmbH

BACKUP Datensicherung unter Linux

Implementierung von Dateisystemen

2

5.1 Verteilung von Aktualisierungshinweisen

RAID Redundant Array of Independent [Inexpensive] Disks

Transkript:

Moderne Dateisysteme Hochleistungs-Ein-/Ausgabe Michael Kuhn Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2015-05-04 Michael Kuhn Moderne Dateisysteme 1 / 59

1 Moderne Dateisysteme Orientierung Moderne Dateisysteme Leistungsbewertung Ausblick und Zusammenfassung 2 Michael Kuhn Moderne Dateisysteme 2 / 59

Orientierung E/A-Schichten Anwendung Bibliotheken Paralleles verteiltes Dateisystem Dateisystem Speichergerät/-verbund Abbildung: E/A-Schichten Michael Kuhn Moderne Dateisysteme 3 / 59

Moderne Dateisysteme Rückblick Erinnerung: Dateisysteme zur Strukturierung Verwaltung von Daten und Metadaten Blockallokation, Zugriffsrechte, Zeitstempel etc. Dateisysteme nutzen ein Speichergerät/-verbund Logical Volume Manager (LVM) und/oder mdadm Michael Kuhn Moderne Dateisysteme 4 / 59

Moderne Dateisysteme Überblick Anforderungen an Dateisysteme wachsen Datenintegrität Speicherverwaltung Komfortfunktionen Fehlerrate bei SATA-Festplatten: 1 in 10 14 bis 10 15 Bits 10 14 Bits = 12,5 TB 10 15 Bits = 125 TB Zusätzlich Bitfehler im RAM, dem Controller, dem Kabel, dem Treiber etc. Michael Kuhn Moderne Dateisysteme 5 / 59

Moderne Dateisysteme Überblick... Dateisystem hat kein Wissen über Speicherverbund Und umgekehrt Wissen ist für optimale Leistung notwenig Z.B. spezielle Optionen bei ext4 -E stride=n,stripe_width=m Hohe Wiederherstellungszeiten Speicherverbund kennt Dateisystembelegung nicht Üblicherweise 8 h Michael Kuhn Moderne Dateisysteme 6 / 59

Moderne Dateisysteme Überblick... Zusätzliche Funktionalität Schnappschüsse Unterdateisysteme Kompression Verschlüsselung Effiziente Backups Deduplikation Michael Kuhn Moderne Dateisysteme 7 / 59

Allgemeines ist ein lokales Metadateisystem Stand ehemals für Zettabyte File System Integrierte Volumenverwaltung etc. Wurde initial von Sun Microsystems entwickelt 2001: Entwicklungsbeginn 2005: Veröffentlichung in OpenSolaris 2006: Veröffentlichung in Solaris 10 2008: -basierte Appliances 2010: Oracle beendet Entwicklung als Open Source Michael Kuhn Moderne Dateisysteme 8 / 59

Allgemeines... Aktuelle Entwicklungen 2010: Abspaltung von illumos 2013: Open-Initiative Betriebssystemunterstützung Solaris: Closed Source, inkompatibel zu Open OS X: Open on OS X (O3X) FreeBSD: Vollständige Unterstützung Linux: on Linux (Gentoo, Ubuntu) CDDL und GPL sind inkompatibel Daher keine direkte Integration in Linux Michael Kuhn Moderne Dateisysteme 9 / 59

Kompatibilität Versionierung der Dateisystemfunktionalität und des On-Disk-Formats Aufsteigende Nummer vergeben durch Sun/Oracle Durch Closed-Source-Weiterentwicklung eingeschränkte Kompatibilität zwischen und Open Open-Entwicklung mit Hilfe von Feature Flags Version wurde auf 1000 bzw. 5000 festgelegt Michael Kuhn Moderne Dateisysteme 10 / 59

Features ist das weltweit erste 128-Bit-Dateisystem 64 Bit sind ausreichend für 16 EiB 128 Bit momentan physikalisch gar nicht ausnutzbar Populating 128-bit file systems would exceed the quantum limits of earth-based storage. You couldn t fill a 128-bit storage pool without boiling the oceans. Jeff Bonwick, -Chefentwickler Datensicherheit unverzichtbar Datenfehler werden automatisch erkannt und behoben Einfache Administration gepaart mit hoher Performance Komplette Administration mit zwei Werkzeugen möglich Michael Kuhn Moderne Dateisysteme 11 / 59

Zahlen Maximale Objektanzahl pro Verzeichnis: 2 48 Maximale Größe einer Datei: 16 EiB (2 64 Bytes) Maximale Größe eines Pools: 256 ZiB (2 78 Bytes) Maximale Geräteanzahl pro Pool: 2 64 Maximale Poolanzahl: 2 64 Maximale Dateisystemanzahl pro Pool: 2 64 Michael Kuhn Moderne Dateisysteme 12 / 59

Motivation Traditionelle Dateisysteme nutzen veraltete Konzepte Kein Schutz gegen Datenfehler ext4 speichert nur Prüfsummen für Metadaten Hoher Administrationsaufwand Geräte müssen zu Verbünden zusammengefasst werden Geräte/Verbünde müssen partitioniert werden Partitionen müssen formatiert werden Unflexible Konzepte Feste Block- und Dateisystemgrößen Teilweise statische Datei-/Verzeichnisanzahlen Michael Kuhn Moderne Dateisysteme 13 / 59

Designprinzipien Pools Keine Festplatten, Partitionen etc. mehr Pool stellt Speicherplatz für alle Dateisystem bereit Datenintegrität Wurde früher als zu teuer betrachtet CPUs haben ausreichende Leistungsreserven Transaktionen Daten sind immer konsistent Zeitraubende Dateisystemüberprüfung entfällt Michael Kuhn Moderne Dateisysteme 14 / 59

Pools Traditionell ein Dateisystem pro Partition Volumenmanager um ein Dateisystem über mehrere Partitionen/Festplatten zu ermöglichen Aktuelle Dateisysteme sind sehr statisch Größenänderungen sind eher problematisch Neues Poolkonzept Nutze gesamte Kapazität und Bandbreite der Hardware Halte die Dateisysteme dynamisch Michael Kuhn Moderne Dateisysteme 15 / 59

Pools LV / LV /var LV /usr Logical Volume /home Volume Group Physical Volume 0 Physical Volume 1 Abbildung: Traditionelle Architektur (RAID, LVM, Dateisystem) Michael Kuhn Moderne Dateisysteme 16 / 59

Pools... 1 $ mdadm --create /dev/md0 --level=5 --raid-devices=4 /dev/sd[abcd] 2 $ mdadm --create /dev/md1 --level=5 --raid-devices=4 /dev/sd[efgh] 3 $ pvcreate /dev/md0 4 $ pvcreate /dev/md1 5 $ vgcreate tank /dev/md0 /dev/md1 6 $ lvcreate --size 15G --name root tank 7 $ lvcreate --size 25G --name var tank 8 $ lvcreate --size 30G --name usr tank 9 $ lvcreate --size 75G --name home tank 10 $ mkfs.ext4 /dev/mapper/tank-root 11 $ mkfs.ext4 /dev/mapper/tank-var 12 $ mkfs.ext4 /dev/mapper/tank-usr 13 $ mkfs.ext4 /dev/mapper/tank-home Michael Kuhn Moderne Dateisysteme 17 / 59

Pools... Dateisystem / Dateisystem /var Dateisystem /usr Dateisystem /home Pool Abbildung: -Pool-Architektur Michael Kuhn Moderne Dateisysteme 18 / 59

Pools... 1 $ zpool create tank raidz /dev/sd[abcd] raidz /dev/sd[efgh] 2 $ zfs create tank/root 3 $ zfs create tank/var 4 $ zfs create tank/usr 5 $ zfs create tank/home Michael Kuhn Moderne Dateisysteme 19 / 59

Pools... Pools bestehen aus virtuellen Geräten (vdevs) Daten werden dynamisch darüber verteilt Virtuelle Geräte können reale Geräte oder eine Zusammenfassung solcher sein Mirror (RAID 1) RAID-Z (RAID 5 ohne Write Hole ) RAID-Z2 (RAID 6 ohne Write Hole ) RAID-Z3 (ohne Write Hole ) Erinnerung: Write Hole ist die Zeit zwischen Schreiben der Daten und der Parität Michael Kuhn Moderne Dateisysteme 20 / 59

Dynamisches Striping Intelligente Verteilung der Daten auf alle virtuellen Geräte Mehrere Auswahlkriterien Kapazität Leistung (Latenz, Bandbreite, Auslastung) Status (Mirror mit ausgefallener Festplatte) Neue virtuelle Geräte werden automatisch mitbenutzt Existierende Daten werden nicht rebalanciert Neues virtuelles Gerät wird bevorzugt Michael Kuhn Moderne Dateisysteme 21 / 59

Dynamisches Striping... 1 Virtuelle-Geräte-Auswahl Bevorzuge neue/leere virtuelle Geräte Vermeide beeinträchtigte virtuelle Geräte Ansonsten normales Round-Robin Weitere Striping-Methoden evtl. in Zukunft 2 Metaslab -Auswahl Bevorzuge die äußeren Regionen der Festplatten Bevorzuge bereits benutzte Metaslabs 3 Block-Auswahl Wähle den ersten Block mit genügend freiem Platz Weitere Algorithmen evtl. in Zukunft Michael Kuhn Moderne Dateisysteme 22 / 59

RAID 5 und RAID 6 RAID 5 RAID 6 A1 B1 C1 Dp A2 B2 Cp D1 A3 Bp C2 D2 Ap B3 C3 D3 A1 B1 C1 Dp A2 B2 Cp Dq A3 Bp Cq D1 Ap Bq C2 D2 Aq B3 C3 D3 Eq E1 E2 E3 Ep Disk 0 Disk 1 Disk 2 Disk 3 Disk 0 Disk 1 Disk 2 Disk 3 Disk 4 (a) RAID 5 (b) RAID 6 Michael Kuhn Moderne Dateisysteme 23 / 59

RAID 5/6 Daten und Parität müssen aktualisiert werden Operationen auf mehreren Festplatten müssten atomar durchgeführt werden Dadurch entsteht das Write Hole Schreiben von Teilstreifen ist ineffizient Read-Modify-Write Warten auf Read Lösung: Hardware-RAID-Controllern mit großen Caches Idee war ein Redundant Array of Inexpensive Disks Michael Kuhn Moderne Dateisysteme 24 / 59

RAID-Z Das Write Hole wird durch Copy on Write gepaart mit Transaktionen eliminiert Damit sind atomare Aktualisierungen möglich Normale Festplatten reichen aus Kein Schreiben von Teilstreifen Jeder Block befindet sich in einem eigenen Streifen Erhöht die Leistung, macht aber Rekonstruktion schwieriger Dateisystemstruktur muss bekannt sein Michael Kuhn Moderne Dateisysteme 25 / 59

Transaktionen Operationen werden in Transaktionen durchgeführt Auf Dateisystemebene alle Änderungen an Objekten Auf Speicherebene alle Transaktionsgruppen (Daten und zugehörige Metadaten) befindet sich immer in einem konsistenten Zustand Dadurch kein Journaling notwendig Keine Dateisystemüberprüfung mehr notwendig Michael Kuhn Moderne Dateisysteme 26 / 59

Dateisystemstruktur ist als -Baum von Blöcken realisiert Auch Merkle-Baum genannt Jeder Block enthält eine Prüfsumme Es stehen mehrere Algorithmen zur Auswahl Bei jedem Lesen wird die Integrität des Blocks verifiziert Von Metadaten werden immer mehrere Kopien vorgehalten Selbst ohne Redundanz durch mehrere Speichergeräte sollten Metadaten daher rekonstruierbar sein Michael Kuhn Moderne Dateisysteme 27 / 59

Dateisystemstruktur... Top 0 hash( + ) 1 0 0-0 hash( + ) 0-1 1 1-0 hash( + ) 1-1 0-0 0-1 1-0 1-1 hash(l1) hash(l2) hash(l3) hash(l4) L1 L2 L3 L4 Data Blocks Abbildung: -Baum [1] Blätter enthalten Prüfsummen der Datenblöcke Andere Knoten enthalten Prüfsummen ihrer Kinder Michael Kuhn Moderne Dateisysteme 28 / 59

Copy on Write Benutzte Blöcke werden nie überschrieben Traditionell werden Blöcke direkt modifiziert Stürzt währenddessen das System ab, sind die Daten möglicherweise inkonsistent Alle betroffenen Blöcke werden kopiert Kopien werden modifiziert und geschrieben Alle Änderungen geschehen außerhalb des Dateisystems Stürzt das System ab, sind gemachte Änderungen einfach nicht sichtbar Zuletzte werden neue Blöcke atomar integriert Michael Kuhn Moderne Dateisysteme 29 / 59

Copy on Write... Top 0 hash( + ) 1 0 0-0 hash( + ) 0-1 1 1-0 hash( + ) 1-1 0-0 0-1 1-0 1-1 hash(l1) hash(l2) hash(l3) hash(l4) L1 L2 L3 L4 Data Blocks Abbildung: Copy on Write [1] 1 Ausgangszustand Michael Kuhn Moderne Dateisysteme 30 / 59

Copy on Write... Top 0 hash( + ) 1 0 0-0 hash( + ) 0-1 1 1-0 hash( + ) 1-1 0-0 0-1 1-0 1-1 hash(l1) hash(l2) hash(l3) hash(l4) L1 L2 L3 L4 L1' L2' Data Blocks Abbildung: Copy on Write [1] 2 Neue Blöcke werden allokiert und mit Daten beschrieben Michael Kuhn Moderne Dateisysteme 31 / 59

Copy on Write... Top Top ' 0 hash( + 0' ) hash( + 1 ) 1 0 0' 0-0 hash( + 0-0' ) hash( 0-1 + ) 0-1' 1 1-0 hash( + ) 1-1 0-0 0-0' hash(l1) hash(l1') 0-1 0-1' hash(l2) hash(l2') 1-0 hash(l3) 1-1 hash(l4) L1 L2 L3 L4 L1' L2' Data Blocks Abbildung: Copy on Write [1] 3 Neue Zeigerblöcke werden allokiert und gesetzt Michael Kuhn Moderne Dateisysteme 32 / 59

Copy on Write... Top ' 0' hash( + ) 1 0' 0-0' hash( + ) 0-1' 1 1-0 hash( + ) 1-1 0-0' 0-1' 1-0 1-1 hash(l1') hash(l2') hash(l3) hash(l4) L1' L2' L3 L4 Data Blocks Abbildung: Copy on Write [1] 4 Der Überblock wird aktualisiert Michael Kuhn Moderne Dateisysteme 33 / 59

Copy on Write... Überblock-Aktualisierung hält ein Überblock-Array mit 128 Einträgen vor Replikate des Arrays werden an mehreren Stellen im Pool gespeichert Array wird im Round-Robin-Verfahren benutzt Überblock enthält u.a. eine Transaktionsnummer und Prüfsumme Beim Mounten wird der Überblock mit der höchsten Transaktionsnummer benutzt Integrität wird anhand der Prüfsumme überprüft Michael Kuhn Moderne Dateisysteme 34 / 59

Schnappschüsse und Klone Durch Copy on Write sehr einfach Schnappschüsse möglich Alte Dateisystemwurzel als Schnappschuss speichern Alte Zeiger und Blöcke nicht löschen Schnappschüsse können nur gelesen werden Schnappschüsse sind im.zfs-verzeichnis zu finden Benutzer können so selbst auf Backups zugreifen Michael Kuhn Moderne Dateisysteme 35 / 59

Schnappschüsse und Klone Schnappschüsse können einfach zurückgerollt werden Ähnlich wie Transaktionen Macht alle Änderungen seit dem Schnappschuss rückgängig Veränderbare Schnappschüsse nennen sich Klone Unveränderte Blöcke werden geteilt Änderungen an einem Klon durch neue Blöcke Michael Kuhn Moderne Dateisysteme 36 / 59

Backups Backups basieren auf Schnappschüssen Vollständiges Backup Als Grundlage dient ein beliebiger Schnappschuss Inkrementelles Backup Als Grundlage dienen die Änderungen zwischen zwei Schnappschüssen Aufwand hängt von den geänderten Daten ab Damit ist Replikation realisierbar Erstelle minütlich Schnappschüsse und transferiere die inkrementellen Backups per SSH auf den anderen Server Michael Kuhn Moderne Dateisysteme 37 / 59

Datensicherheit Fehlerszenario auf einem Mirror aus zwei Festplatten 1 Programm liest Daten 2 liest einen Block von der ersten Festplatte 3 Es wird erkannt, dass der Block fehlerhaft ist 4 liest die Blockkopie von der zweiten Festplatte 5 Es wird erkannt, dass die Blockkopie korrekt ist 6 Der fehlerhafte Block wird mit dem korrekten überschrieben 7 Die Daten werden an die Anwendung weitergegeben Bei traditionellen Dateisystemen fallen die Schritte 3 6 weg Michael Kuhn Moderne Dateisysteme 38 / 59

Scrubbing Scrubbing findet und korrigiert Fehler der Daten Für jeden Block wird Folgendes ausgeführt 1 Block wird gelesen 2 Block wird mit der gespeicherten Prüfsumme verglichen 3 Falls der Block fehlerhaft ist, wird er wenn möglich repariert Scrubbing wird momentan nicht automatisch durchgeführt Empfehlung: Wöchentlich bzw. monatlich Michael Kuhn Moderne Dateisysteme 39 / 59

Resilvering Rekonstruktion der Daten in einem RAID-Verbund Traditionell musste alles rekonstruiert werden Strenge Trennung zwischen Verbund und Dateisystem Simples XOR über die noch vorhandenen Daten Keine Möglichkeit die Korrektheit zu verifizieren Nur noch tatsächlich vorhandene Blöcke rekonstruieren Bei temporärem Ausfall müssen nur veränderte Teile rekonstruiert werden Mehr Datensicherheit durch Top-Down-Rekonstruktion Verlust von Blöcken auf den oberen Ebenen fatal Michael Kuhn Moderne Dateisysteme 40 / 59

Kompression unterstützt transparente Kompression Kann auf Dateisystemebene gesetzt werden Unterstützt mehrere Algorithmen Momentan stehen zle, gzip, lzjb und lz4 zur Verfügung Kompression ist statisch Gesetzter Algorithmus wird für alle Daten benutzt Michael Kuhn Moderne Dateisysteme 41 / 59

Kompression... zle eliminiert Null-Sequenzen Zero-Length Encoding Üblicherweise geringe Kompressionsrate gzip komprimiert gut aber langsam Unterstützt mehrere Komprimierungslevel (1 9) Selbst schnelle Level recht langsam ( 50 MB/s) Dekompression schneller ( 300 MB/s) Michael Kuhn Moderne Dateisysteme 42 / 59

Kompression... lzjb wurde speziell für entwickelt LZ: Lempel Ziv JB: Jeff Bonwick (-Hauptentwickler) Hohe Leistung lz4 relativ neu und schneller lzjb Hohe Kompressionsgeschwindigkeit ( 400 MB/s) Noch höhere Dekompressionsgeschwindigkeit ( 1,8 GB/s) Michael Kuhn Moderne Dateisysteme 43 / 59

Deduplikation Deduplikation ist ein Verfahren zur Datenreduktion Mehrfach vorkommende Blöcke werden nur einmal gespeichert und referenziert Duplikate werden anhand der Prüfsumme erkannt Datensicherheit ist ein wichtiger Faktor Prüfsummen-Algorithmus wird auf SHA256 gestellt Optional können Daten Byte für Byte verifiziert werden Michael Kuhn Moderne Dateisysteme 44 / 59

Deduplikation... Deduplikation benötigt zusätzlichen Speicherplatz Blöcke und Prüfsummen werden in Tabellen gespeichert Tabellenzugriff bei jeder Schreiboperation Tabellen sollten im Hauptspeicher gehalten werden Deduplikationsrate ist abhängig von der Blockgröße Größere Blöcke verringern Deduplikationsrate Kleinere Blöcke vergrößern Speicherbedarf 10+ GB pro TB bei einer Blockgröße von 8 KiB Michael Kuhn Moderne Dateisysteme 45 / 59

Volumes unterstützt auch sogenannte Volumes Exportiert als Blockgerät Nützlich um andere Dateisystem auf Pools zu nutzen Alle Poolfunktionen können genutzt werden Schnappschüsse, Komprimierung etc. 1 $ zfs create -V 4G tank/swap 2 $ zfs create -V 75G tank/home 3 $ mkswap /dev/zvol/tank/swap 4 $ mkfs.ext4 /dev/zvol/tank/home Listing 1: -Volume Michael Kuhn Moderne Dateisysteme 46 / 59

Leistungsaspekte nutzt einen Pipeline-Scheduler Jede Operation hat eine Priorität und eine Deadline Höhere Priorität resultiert in kürzerer Deadline Leseoperationen erhalten höhere Priorität als Schreiboperationen Der Scheduler kann mehrere Operationen zusammenfassen und umsortieren Macht effizientes Copy on Write möglich Sonst müsste bei jeder Änderung ein kompletter Unterbaum kopiert werden Michael Kuhn Moderne Dateisysteme 47 / 59

Leistungsaspekte... nutzt zwei Cache-Level: ARC und L2ARC Der Adaptive Replacement Cache befindet sich im RAM Der L2ARC befindet sich üblicherweise auf SSDs Alle Zugriffe werden durch den ARC beschleunigt Dafür ist ausreichend viel RAM notwendig Dort werden auch die Deduplikationstabellen gespeichert Befinden sich die Daten nicht im ARC, wird auf den Pool zugegeriffen Michael Kuhn Moderne Dateisysteme 48 / 59

Leistungsaspekte... SSDs werden für den L2ARC und das ZIL genutzt L2ARC wird nur für Lesezugriffe benutzt (inklusive der Deduplikationstabellen) Das Intent Log ist journalartig wird für synchrone Schreibvorgänge genutzt Schreib- und Lesecaches werden als Pool-Geräte verwaltet Lesecaches als cache-vdevs Schreibcaches als log-vdevs Beide können hinzugefügt und wieder entfernt werden Gibt es kein separates Log, wird das ZIL im Pool angelegt Michael Kuhn Moderne Dateisysteme 49 / 59

Diverses arbeitet auch mit eingeschaltetem Festplatten-Cache korrekt Einzige Voraussetzung: Die Festplatten müssen die Flush-Kommandos befolgen Bei einigen Dateisystemen kann Datenverlust auftreten nutzt dynamische Blockgrößen von bis zu 128 KiB Soll auf 1 MiB erhöht werden Die maximale Blockgröße kann manuell angepasst werden Michael Kuhn Moderne Dateisysteme 50 / 59

Diverses... passt sich der Byte-Reihenfolge (Endianness) an kümmert sich nur um Metadaten Daten sind laut POSIX ein Stream von Bytes unterstützt mehrere unabhängige Prefetch-Ströme Automatische Längen- und Schritt-Erkennung Erkennt beliebige lineare Zugriffsmuster (vorwärts und rückwärts) Michael Kuhn Moderne Dateisysteme 51 / 59

Regressionstests Lesen, Schreiben, Erstellen und Löschen von Dateien und Verzeichnissen Erstellen und Zerstören von Dateisystemen und Pools Aktivieren und Deaktivieren von Kompression Ändern des Prüfsummen-Algorithmus Hinzufügen und Entfernen von Geräten Ändern von Caching- und Scheduling-Strategien Zufällige Daten auf eine Hälfte eines Mirror schreiben Abstürze simulieren Probably more abuse in 20 seconds than you d see in a lifetime. Jeff Bonwick, -Chefentwickler Michael Kuhn Moderne Dateisysteme 52 / 59

Einschränkungen Es ist nicht möglich einen Pool zu verkleinern Geräte können nicht entfernt werden Es ist nicht möglich RAID-vdevs zu erweitern Geräte können durch größere ausgetauscht werden Geräte können allerdings nicht hinzugefügt werden Nicht alle RAID-Level können abgebildet werden Z.B. ist es nicht möglich ein RAID-51-Array zu erstellen RAID 10, RAID 50 und RAID 60 sind allerdings möglich Michael Kuhn Moderne Dateisysteme 53 / 59

Leistungsbewertung Overhead Komfortfunktionen erzeugen zusätzlichen Overhead Prüfsummen müssen berechnet werden Copy on Write erzwingt Read-Modify-Write Kompression benötigt CPU-Leistung Deduplikation benötigt CPU und RAM Verschlüsselung benötigt CPU-Leistung 1 $ openssl speed sha256 2 type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 3 sha256 54163.05k 122745.00k 217991.85k 263372.12k 277577.73k Listing 2: SHA256-Geschwindigkeit (E3-1225 v3) Michael Kuhn Moderne Dateisysteme 54 / 59

Leistungsbewertung Overhead... 1 $ openssl speed aes-256-cbc 2 type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 3 aes256 104206.79k 110834.13k 112380.94k 113369.77k 113360.90k Listing 3: AES256CBC-Geschwindigkeit (E3-1225 v3) 1 $ openssl speed -evp aes-256-cbc 2 type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 3 aes256 529875.27k 558823.38k 565729.88k 568951.47k 567079.63k Listing 4: AES256CBC-Geschwindigkeit mit AES-NI (E3-1225 v3) Michael Kuhn Moderne Dateisysteme 55 / 59

Ausblick und Zusammenfassung Ausblick Parallele verteilte Dateisysteme nutzen Funktionalität moderner Dateisysteme s Data Management Unit (DMU) stellt einen effizienten Object Store bereit Schnappschüsse/Versionierung auch im parallelen Fall wünschenswert Michael Kuhn Moderne Dateisysteme 56 / 59

Ausblick und Zusammenfassung Zusammenfassung Dateisysteme organisieren Daten und Metadaten Moderne Dateisysteme integrieren zusätzliche Funktionen U.a. verbesserte Datenintegrität, Schnappschüsse, Datenreduktion etc. Copy on Write hilft Konsistenz zu bewahren Integrierte Speicherverwaltung hat Vorteile bezüglich Leistung und Datensicherheit Kompression und Deduplikation können dabei helfen Speicherplatz zu sparen Michael Kuhn Moderne Dateisysteme 57 / 59

1 Moderne Dateisysteme Orientierung Moderne Dateisysteme Leistungsbewertung Ausblick und Zusammenfassung 2 Michael Kuhn Moderne Dateisysteme 58 / 59

I [1] Wikipedia. -Baum. http://de.wikipedia.org/wiki/-baum. Michael Kuhn Moderne Dateisysteme 59 / 59