Zentrum für Informationsdienste und Hochleistungsrechnen TU Dresden Linux Cluster in Theorie und Praxis Dateisysteme Thomas William 06. November 2014 WIL A35 Zellescher Weg 12 01069 Dresden Telefon: +49 351-463 32446 E-Mail: thomas.william@tu-dresden.de
Gliederung 1 Überblick 2 Dateisysteme - Versuch der Kategorisierung Festplatten-Dateisysteme Fehlertolerante Festplatten Dateisysteme Verteilte Dateisysteme Spezialisierte Dateisysteme 3 Ausgewählte Dateisysteme für den Cluster 2/36
Gliederung 1 Überblick 2 Dateisysteme - Versuch der Kategorisierung Festplatten-Dateisysteme Fehlertolerante Festplatten Dateisysteme Verteilte Dateisysteme Spezialisierte Dateisysteme 3 Ausgewählte Dateisysteme für den Cluster 3/36
Datei - aus Sicht der Informatik Datei ist eine eindimensionale Aneinanderreihung von Bits (Vektor) Meist in Byte-Blöcken zusammengefasst Besitzen einen Namen Haben zusätzlich zum Inhalt meist Dateiattribute Sind oft in Dateitypen kategorisiert Aus Dateisystemsicht: Gerät, Verzeichnis, Verknüpfung Aus Betriebssystemsicht: ausführbar, Text, Bibliothek Werden häufig in Verzeichnissen gruppiert 4/36
Metadaten einer Datei Metadaten Metadaten sind zusätzliche Systeminformation zu einer Datei. Name Typ Zeiger auf Datenblöcke Dateigröße Zeitstempel: Erstellung, Zugriff, Modifikation Spezial-Indikator: Verzeichnis, symbolische Verknüpfung 5/36
Grundlegende E/A Funktionen auf Dateien Unix (Windows) NT create(name) CreateFile(name, CREATE) open(name, mode) CreateFile(name, OPEN) read(fd, buf, len) ReadFile(handle,...) write(fd, buf, len) WriteFile(handle,...) sync(fd) FlushFileBuffers(handle,...) seek(fd, pos) SetFilePointer(handle,...) close(fd) CloseHandle(handle,...) unlink(name) DeleteFile(name) rename(old, new) MoveFile(name) CopyFile(name) 6/36
Verzeichnisse I Verzeichnis Ein Verzeichnis ist typischer Weise eine Datei mit speziellen Metadaten Sind ein Mittel zur Organisation der Dateien im Dateisystem Stellen den gemeinsamen Namensraum für Nutzer und Dateisystem her Bilden Dateinamen auf die Blöcke der Datei auf der Festplatte ab (Dateiname <-> Datei-Metadaten) 7/36
Verzeichnisse II Die meisten Dateisysteme unterstützen geschachtelte Verzeichnisse (/, /usr, /usr/local) Meist Unterstützung für Anzeige des aktuellen Systems Absolute versus relative Pfade cd /usr/local versus cd /usr; cd local 8/36
Verzeichnisse - Interna Verzeichnis: Liste von Dateinamen (Dateiattributen) Attribute: Größe, Zugriffsrechte, Zeiger auf Platte, Zeitstempel Die (Verzeichnis) Liste ist meist unsortiert (ls sortiert) 9/36
Gliederung 1 Überblick 2 Dateisysteme - Versuch der Kategorisierung Festplatten-Dateisysteme Fehlertolerante Festplatten Dateisysteme Verteilte Dateisysteme Spezialisierte Dateisysteme 3 Ausgewählte Dateisysteme für den Cluster 10/36
Mögliche Kategorien Unterscheidung nach Trägermedium (Platte, Flash, DVD) Fehlertoleranz (Checksummen, Spiegel, Parität, Redundanz) Parallelität (Striping, Replikation, HPC) Verteilung (Netzwerkdateisysteme) Verschlüsselung 11/36
Unterscheidungsmerkmale I Mögliche Features eines FS: Hard/Symbolic links (Block) / Metadata-only Journaling Case sensitive/preserving File Change Log Snapshots XIP - execute in place Encryption COW - copy-on-write Integrated LVM Data deduplication Volume resizing Direct I/O 12/36
Unterscheidungsmerkmale II Allokation und Layout Block Suballokation Variable Datei Block Größe Extents Allocate-on-flush Sparse files Transparent compression 13/36
Unterscheidungsmerkmale III Unterztützte Betriebssysteme Windows NT/9x Linux Mac OS (X) FreeBSD BeOS Solaris AIX z/os OS/2 14/36
Unterscheidungsmerkmale IV Abbildung: Die wichtigsten RAID Level im Überblick [7] 15/36
Festplatten Dateisysteme Meist Block-orientiert Dateien sind Sequenz von Blöcken Meist (sehr) gute Unterstützung von zufälligen Lese/Schreibzugriffen 16/36
Beispiele Festplatten Dateisysteme Ext[2,3,4] (Linux) FAT, NTFS (Windows) HFS[Plus] (Mac OS X) ISO 9660 (CD/DVD) JFS (AIX/Linux) Reiser[FS,4] (Linux) XFS (IRIX, Linux) 17/36
Fehlertolerante Festplatten-Dateisysteme Checksummen (CRC-32 / 256bit Hashes (SHA-256)) um Fehler in den Blöcken (Daten und Metadaten) zu finden Immunität gegenüber Datenkorruption in Dateien durch atomare Transaktionen Einstellbare Redundanz 18/36
Beispiel: ZFS Copy-on-write Transaktionsmodell auf Objektebene Blockweise Checksummen (32bit) oder Hashes (SHA-256) Intent Log Snapshots/Klone Dynamische Stripes (quasi RAID0/1/5/6) 19/36
Dateisysteme für gemeinsam genutzten Speicher I Synonyme: Shared Disk, Shared Storage SAN (Storage Area Network) Clustered FS (zu unterscheiden von Cluster FS) Medium: Speichernetzwerk (SAN) zur direkten Anbindung an Festplattensubsystem Netzwerk: Hyper/i-SCSI, ATA over Ethernet (AoE), Fibre Channel, InfiniBand Alle Knoten haben dabei direkten Zugriff auf die Datenblöcke 20/36
Dateisysteme für gemeinsam genutzten Speicher II Metadaten: Symmetrisch: verteilt auf alle Knoten (DLM Distributed Lock Manager) Asymmetrisch: zentraler Metadatenserver (GULM Grand Unified Lock Manager) Beispiele: CXFS: Clustered XFS von Silicon Graphics (SGI) (asymmetrisch) GFS: Global File System von Red Hat ([a]symmetrisch) VMFS: VMware File System für VMware ESX Server (symmetric) 21/36
Verteilte Dateisysteme Auch Netzwerkdateisystem Merkmale: Ortsabhängig mit ACL s Beispiele: Amazon S3: Simple Storage Service - unbegrenzter Web-basierter Speicher AFS: Andrew File System (ortsunabhängig), Client Cache NFS: Network File System (Sun Microsystems), seit 4.1 mit Client Cache SMB/CIFS: Server Message Block (IBM->Microsoft) 22/36
Fehlertolerante verteilte Dateisysteme Replikation über die Knoten Unterstützung von Offline-Operationen (Netztrennung) Beispiele: Coda: Nachfolger AFS2, Bandbreitenoptimiert, GPL Dfs: Hochverfügbar, ortsunabhängig (loc. transp.), Microsoft InterMezzo: HTTP, von den Lustre Entwicklern, veraltet 23/36
Parallele verteilte Dateisysteme Verteilung (Striping) der Daten auf mehrere Server Abstraktion der Speichermedien zu object storage device (OSD) Verwaltung der Metadaten im zetralen Metadatenserver Beispiele: FhGFS: Fraunhofer Parallel File System (proprietär aber frei f r Linux) PVFS(2): Parallel Virtual File System, f r virtuelle Systemimages entwickelt, serielle Schreiboptimierung, (GPL, Linux) 24/36
Fehlertolerante parallele verteilte Dateisysteme I Datenintegrität durch Striping und Replikation über mehrere Server Mindestens der Ausfall eines Server wird toleriert Beispiele: GPFS: General Parallel File System von IBM ([a]symmetrisch) GlusterFS: Speicher über Infiniband RDMA oder TCP/IP, Mount mit FUSE XtreemFS: Weitverkehrnetz (WAN), SSL + X.509 Zertifikate Lustre: Cluster File Systems/Sun Microsystems/Oracle, POSIX, (Linux GPL) 25/36
Fehlertolerante parallele verteilte Dateisysteme II Noch in Entwicklung Ceph: OSD nutzen Btrfs, POSIX, (Linux Kernel 2.6.34) Hadoop Distributed File System: GoogleFS Klon (MapReduce) 26/36
Spezialisierte Dateisysteme: Beispiele CFS: P2P, nur lesen, basiert auf Chord (verteilte Hashtabellen DHT) ColonyFS: P2P, Fokus auf Anonymität und Sicherheit, in Java und C# geschrieben GmailFS: Google Mail File System (FUSE) WBFS - Wii Backup FileSystem 27/36
Gliederung 1 Überblick 2 Dateisysteme - Versuch der Kategorisierung Festplatten-Dateisysteme Fehlertolerante Festplatten Dateisysteme Verteilte Dateisysteme Spezialisierte Dateisysteme 3 Ausgewählte Dateisysteme für den Cluster 28/36
Cluster(ed) Filesystems??? Wir haben einen Cluster, also nutzen wir ein Cluster oder Clustered-Dateisystem? 2 Versionen: 1. Gemeinsamer Speicher und 2. Verteilt 1. Gestattet konkurrierenden Zugriff auf gemeinsamen Speicher. Direkter Zugriff der Knoten ohne Server, auf Blockebene: SCSI, iscsi, HyperSCSI ATA over Ethernet (AoE) Fibre Channel InfiniBand Beispiele: CXFS(SGI), GPFS(IBM), GFS(Red Hat) 2. Kein gemeinsamer Zugriff auf Blockebene sondern über Netzwerkprotokoll Beispiele: Lustre, Ceph(kann beides), GlusterFS 29/36
Verteilte Dateisysteme - Lustre Im HPC Bereich wird hauptsächlich Lustre eingesetzt 8 der top10 (70 der top100)in der top500 nutzen Lustre Open Source mit BezahlSupport Früher Sun, dann Oracle, danach Whamcloud und OpenSFS/EOFS, jetzt Intel usw OpenSFS bezahlt Entwicklung durch Whamcloud/Intel: Single Server Metadata Performance scaling Online Lustre distributed filesystem checking (LFSCK) Distributed Namespace (Clustered Metadata) ZFS-based back-end object storage Ohne Bezahlsupport schwer zu administrieren - nur RPMs keine DEBs => für LCTP daher eher ungeeignet 30/36
Lustre - Aufbau Ein/Viele Klienten Metadaten Dienst Metadaten Server (MDS) Metadaten Speicher (MDT) Ein/Viele Objektspeicher Dienste (OSS) Objektspeicher Server (OSS) Objektspeicher (OST) LNET, e2fsprogs, tar 31/36
GlusterFS scale-out NAS file system Client-Server-Architektur über TCP/IP Über ein FUSE-Kernel-Modul eingebunden POSIX: Linux, FreeBSD, OpenSolaris und Mac OS X Netzwerkschicht unterstützt Infiniband und TCP Unterstützt mehrere Betriebsmodi: Standalone Storage (quasi NFS, ein Server, mglw. mehrere FS) (Replicated)(Distributed) Storage (mehrere Server, Daten verteilt, gespiegelt) Striped Storage (Daten gestriped, höhere Performance) Cloud/HPC Storage 32/36
MooseFS Fehlertolerantes verteiltes Dateisystem ähnlich Lustre/Ceph Ehemals proprietär, seit dem 5. Mai, 2008 GPL3 Metadaten Server (MDS) (nur eine Instanz, keine Ausfallsicherung, user-space Dienst) Metalogger Server (MDS Backup, Zukunft: Common Address Redundancy Protocol für Ausfallsicherung) Chunk Servers (CSS) (Datenspeicher + Replikation, user-space Dienst) Klienten (kommunizieren mit MDS und CSS, user-space über FUSE) 33/36
Ceph Free software distributed file system Komplett verteilt, kein single point of failure Server sind normale Linux Dienste: Cluster Monitor (ceph-mon) Metadaten Server(s) (ceph-mds) Objektspeicher (ceph-osds) Dateisystem der OSD ist Btrfs (default) Schnittstellen zur Anbindung der Clients: Libraries Command line shell POSIX file system Block device Object store 34/36
Weiterführende Literatur I Marshall K. McKusick et al. A Fast File System for UNIX ACMTransactionson ComputerSystems,Vol.2, No. 3, August 1984 David Pease et al. The Linear Tape File System 26th IEEE (MSST2010) Symposium on Massive Storage Systems and Technologies Andrew S. Tanenbaum et al. Moderne Betriebssysteme Verteilte Systeme: Grundlagen und Paradigmen Operating Systems Design and Implementation Deutschlandradio http://wissen.dradio.de/index.59.de.html?drn:news_id=8826 35/36
Weiterführende Literatur II Festplattenschema http://commons.wikimedia.org/wiki/file:hard_drive-de.svg Bildersammlung PC-Geschichte http://www.chookfest.net/computers RAID - die etwas andere Definition http://www.ghen.be/raid.jpg 36/36