Management grosser Datenmengen PVFS (Parallel Virtual File System) Thorsten Schütt thorsten.schuett@zib.de Management grosser Datenmengen p.1/??
Inhalt Einführung in verteilte Dateisysteme Architektur von PVFS Komponenten Installation Benchmarks Management grosser Datenmengen p.2/??
Anforderungen an verteilte Dateisysteme globaler Namensraum hohe Geschwindigkeit Robustheit, Redundanz Backups Locking grosse Dateien Management grosser Datenmengen p.3/??
Globale Dateisysteme / Single-Server Beispiel: NFS-Server Probleme: langsam, Bandbreite durch Netzwerkkarte am Server begrenzt High Speed Disk Vorteil: keine Redundanz simple Architektur Management grosser Datenmengen p.4/??
Globales/verteiltes Dateisystem Beispiel: PVFS,... Probleme: Namensraum High Speed Disk High Speed Disk High Speed Disk High Speed Disk Konsistenz, es soll von jeder Datei eine Version geben Vorteil: eventuell Redundanz schneller? Management grosser Datenmengen p.5/??
PVFS Clemson University (http://parlweb.parl.clemson.edu/pvfs/) Geschichte: älter als 1996 Lizenz: GNU unterstützte Architekturen: x86/linux:2.2er und 2.4er Kernel Alpha/Linux:2.2er und 2.4er Kernel Ziele: Forschungsplattform Geschwindigkeit Management grosser Datenmengen p.6/??
Was heisst Parallel Virtual File System File System ermöglicht dem Benutzer das Speichern und Laden von Dateien mit den üblichen Funktionen(open, read, write, close) Parallel speichert die Daten auf mehreren Rechnern Virtual Das File System besteht eigentlich aus mehreren User-Space Deamons, die auf das lokale File System zugreifen Management grosser Datenmengen p.7/??
Architektur von PVFS verschiedene Aufgaben/Rollen im Cluster file manager: Meta-Daten I/O server: Daten client Kommunikation über TCP Es wird das vorhandene Filesystem benutzt und auch das Authenitfizierungssystem. Management grosser Datenmengen p.8/??
Installation/Administration (I) Server: pvfs-1.5.2-pre4.tgz:./configure && make && make install iod, mgr.iodconf,.pvfsdir, /etc/iod.conf /usr/local/sbin/mgr /usr/local/sbin/iod Management grosser Datenmengen p.9/??
Installation/Administration (II) Client: pvfs-kernel-0.9.2-pre5.tgz:./configure && make && make install pvfs.o, pvfsd, mount.pvfs /dev/pvfsd insmod pvfs pvfsd mount.pvfs node001:/pvfs... Management grosser Datenmengen p.10/??
File striping (I) Metadata, die auf mgr gespeichert werden Zugriffsrechte Besitzer, Gruppe physical distribution of the file data Basis-Knoten Anzahl der IO Knoten Stripe-Grösse /pvfs/foo Management grosser Datenmengen p.11/??
File striping (II) Global wird eine Ordnung der IO-Knoten gespeichert. file manager muss während read/write nicht kontaktiert werden. Die Metadaten werden zwischen open und close lokal zwischengespeichert. Management grosser Datenmengen p.12/??
Der endlose Weg der Daten durch das FS(I) Host 1 Host 2 User Space Kernel Space App open /mnt/pvfs/foo Glibc pvfsd Systemcall VFS Treiber /dev/pvfsd INode Mapping req: pvfs/foo TCP/IP Network device Netz ack TCP/IP Network device mgr /pvfs_meta/foo VFS ext2 Blockdevice Harddisk normaler Kommunikationsweg Shortcut mit pvfs lib Management grosser Datenmengen p.13/??
Der endlose Weg der Daten durch das FS (II) Host 1 Host 2 User Space Kernel Space App Glibc VFS read: /mnt/pvfs/foo pvfsd Systemcall req:read Block Treiber /dev/pvfsd INode Mapping TCP/IP Network device Netz TCP/IP Network device iod /pvfs_data/001/f1092157504 VFS ext2 Blockdevice Harddisk normaler Kommunikationsweg Shortcut mit pvfs lib Management grosser Datenmengen p.14/??
Schnittstellen zum System Man kann normale UNIX Dateioperationen benutzen. Kernel-Modul (transparent) glibc-wrapper (deprecated) erweiterte Schnittstelle:strided Zugriffe native PVFS-Bibliothek MPI-IO Management grosser Datenmengen p.15/??
Einschränkungen Filegröße:, wobei (bedingt durch Linux) die Anzahl der I/O-Server ist Links nach pvfs funktionieren aber nicht von pvfs. Zum Caching wird das Betriebssystem benutzt(vfs) kein Netzwerkcache Management grosser Datenmengen p.16/??
Fehlende Features Hinzufügen und löschen von IO-Knoten funktiert nicht online! keine Redundanz keine Rekonstruierung von Daten single points of failure Manager-Deamon IO-Deamon Aber man kann auf den IO-Knoten RAID etc benutzen. Management grosser Datenmengen p.17/??
Datentransfer-Benchmark Benutzte Konfiguration: Fast-Ethernet/Myrinet (10.2/37.7MB/s ttcp Messung) PVFS Bibiliothek, nicht Kernel-Modul! 500MHz PIII mit 512MB RAM stripe size: 16KB gesamt 60 Knoten-Cluster Netzwerk-Topologie Management grosser Datenmengen p.18/??
Ethernet/Lesen Management grosser Datenmengen p.19/??
Ethernet/Schreiben Management grosser Datenmengen p.20/??
Myrinet/Lesen Management grosser Datenmengen p.21/??
Myrinet/Schreiben Management grosser Datenmengen p.22/??
Resultate Skalierbarkeit von Fast-Ethernet erreicht Myrinet verhält sich unter hoher Last besser war nur synthetischer Test(peak performance) - 50-60% in echten Anwendung (flow solver) beobachtet Management grosser Datenmengen p.23/??
Eigene Erfahrungen die Blockgröße ist wichtig! dd am besten bei 32KB/Block Installation Management grosser Datenmengen p.24/??
geplante weitere Entwicklung abstrakte Kommunikationsschicht: ST,... strided Zugriffe verbessern Performance Tuning Entwickler vernachlässigen Redundanz siehe weitere Features Management grosser Datenmengen p.25/??