Snapshots in Large-Scale Distributed File Systems
Total Page:16
File Type:pdf, Size:1020Kb
Snapshots in Large-Scale Distributed File Systems DISSERTATION zur Erlangung des akademischen Grades doctor rerum naturalium (Dr. rer. nat.) im Fach Informatik eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät II Humboldt-Universität zu Berlin von Dipl.-Inf. Jan Stender Präsident der Humboldt-Universität zu Berlin: Prof. Dr. Jan-Hendrik Olbertz Dekan der Mathematisch-Naturwissenschaftlichen Fakultät II: Prof. Dr. Elmar Kulke Gutachter: 1. Prof. Dr. Alexander Reinefeld 2. Prof. Dr. Miroslaw Malek 3. Prof. Dr. Guillaume Pierre eingereicht am: 14. September 2012 Tag der mündlichen Prüfung: 4. Januar 2013 Abstract Snapshots are present in many modern file systems, where they allow to create con- sistent on-line backups, to roll back corruptions or inadvertent changes of files, and to keep a record of changes to files and directories. While most previous work onfile system snapshots refers to local file systems, modern trends like cloud and cluster com- puting have shifted the focus towards distributed storage infrastructures. Such infras- tructures often comprise large numbers of storage servers, which presents particular challenges in terms of scalability, availability and failure tolerance. This thesis describes a snapshot algorithm for large-scale distributed file systems and its integration in XtreemFS, a scalable object-based file system for grid and cloud com- puting environments. The two building blocks of the algorithm are a version man- agement scheme, which efficiently records versions of file content and metadata, as well as a scalable and failure-tolerant mechanism that aggregates specific versions in a snapshot. To overcome the lack of a global time in a distributed system, the algorithm implements a relaxed consistency model for snapshots, which is based on timestamps assigned by loosely synchronized server clocks. More precisely, the algorithm relaxes the point in time at which all servers capture their local states to a short time span that depends on the clock drift between servers. Furthermore, it ensures that snapshots preserve the causal ordering of changes to files and directories. The main contributions of the thesis are: 1) a formal model of snapshots and snap- shot consistency in distributed file systems; 2) the description of efficient schemes for the management of metadata and file content versions in object-based file systems; 3) the formal presentation of a scalable, fault-tolerant snapshot algorithm for large-scale object-based file systems; 4) a detailed description of the implementation of thealgo- rithm as part of XtreemFS. An extensive evaluation shows that the proposed algorithm has no severe impact on user I/O, and that it scales to large numbers of snapshots and versions. Zusammenfassung Viele moderne Dateisysteme unterstützen Snapshots zur Erzeugung konsistenter On- line-Backups, zur Wiederherstellung verfälschter oder ungewollt geänderter Dateien, sowie zur Rückverfolgung von Änderungen an Dateien und Verzeichnissen. Während frühere Arbeiten zu Snapshots in Dateisystemen vorwiegend lokale Dateisysteme be- handeln, haben moderne Trends wie Cloud- oder Cluster-Computing dazu geführt, dass die Datenhaltung in verteilten Speichersystemen an Bedeutung gewinnt. Solche Systeme umfassen häufig eine Vielzahl an Speicher-Servern, was besondere Heraus- forderungen mit Hinblick auf Skalierbarkeit, Verfügbarkeit und Ausfallsicherheit mit sich bringt. Diese Arbeit beschreibt einen Snapshot-Algorithmus für großangelegte verteilte Da- teisysteme und dessen Integration in XtreemFS, ein skalierbares objektbasiertes Datei- system für Grid- und Cloud-Computing-Umgebungen. Die zwei Bausteine des Algo- rithmus sind ein System zur effizienten Erzeugung und Verwaltung von Dateiinhalts- und Metadaten-Versionen, sowie ein skalierbares, ausfallsicheres Verfahren zur Ag- gregation bestimmter Versionen in einem Snapshot. Um das Problem einer fehlenden globalen Zeit zu bewältigen, implementiert der Algorithmus ein weniger restriktives, auf Zeitstempeln lose synchronisierter Server-Uhren basierendes Konsistenzmodell für Snapshots. Dabei dehnt er den Zeitpunkt, zu dem alle Server ihren Zustand festhalten, zu einer kurzen Zeitspanne aus, deren Dauer von der Abweichung der Server-Uhren abhängt. Zudem wird sichergestellt, dass kausale Abhängigkeiten von Änderungen innerhalb von Snapshots erhalten bleiben. Die wesentlichen Beiträge der Arbeit sind: 1) ein formales Modell von Snapshots und Snapshot-Konsistenz in verteilten Dateisystemen; 2) die Beschreibung effizien- ter Verfahren zur Verwaltung von Metadaten- und Dateiinhalts-Versionen in objekt- basierten Dateisystemen; 3) die formale Darstellung eines skalierbaren, ausfallsicheren Snapshot-Algorithmus für großangelegte objektbasierte Dateisysteme; 4) eine detail- lierte Beschreibung der Implementierung des Algorithmus in XtreemFS. Eine umfan- greiche Auswertung belegt, dass der vorgestellte Algorithmus die Nutzerdatenrate kaum negativ beeinflusst, und dass er mit großen Zahlen an Snapshots und Versionen skaliert. Contents 1 Introduction1 1.1 Properties of Large-scale Distributed File Systems.............1 1.2 Implications on Snapshots...........................2 1.3 Challenges....................................3 1.3.1 Version Management..........................3 1.3.2 Snapshot Consistency.........................3 1.4 Goal and Approach...............................4 1.5 Contributions..................................4 1.6 Outline......................................5 2 Large-Scale Distributed File Systems7 2.1 Concept and Design of File Systems.....................7 2.1.1 POSIX Interface and Semantics....................7 2.1.2 File System Design...........................8 2.1.3 File Content and Metadata Management..............9 2.2 Distributed File System Architectures.................... 10 2.2.1 Decentralized File Systems...................... 10 2.2.2 Storage Area Networks........................ 11 2.2.3 Network-Attached Storage...................... 12 2.3 Object-Based Storage.............................. 13 2.3.1 Architecture............................... 13 2.3.2 Advantages and Relevance...................... 15 2.4 XtreemFS..................................... 16 2.4.1 Architecture and Components.................... 16 2.4.2 Target Environments and Characteristics.............. 18 3 Version Management in File Systems 21 3.1 Maintaining Versions in a File System.................... 21 3.1.1 Versioning Techniques......................... 22 3.1.2 Layers, Granularities and Physical Representations........ 24 3.1.3 Storage Locations............................ 24 3.1.4 Version Creation and Retention.................... 25 3.2 Metadata Versioning.............................. 26 3.2.1 Journaling................................ 26 3.2.2 Versioned B-Trees............................ 27 3.2.3 LSM-trees................................ 27 vii Contents 3.3 Management and Versioning of File Content in XtreemFS......... 28 3.3.1 File and Object Management..................... 29 3.3.2 Accessing Object Versions....................... 29 3.4 XtreemFS Metadata Management with BabuDB.............. 30 3.4.1 BabuDB................................. 30 3.4.2 Metadata Mapping........................... 34 3.4.3 Metadata Versioning.......................... 35 3.5 Related Work: Versioning File Systems.................... 35 3.5.1 Local File Systems........................... 35 3.5.2 Network File Systems......................... 39 3.5.3 Distributed File Systems........................ 40 4 Snapshot Consistency in Distributed File Systems 43 4.1 System Model.................................. 43 4.1.1 Distributed File System........................ 44 4.1.2 File System State............................ 45 4.1.3 Time and Clocks............................ 46 4.1.4 Summary................................ 47 4.2 Global States and Snapshots.......................... 47 4.2.1 Definition................................ 47 4.2.2 Snapshot Events............................ 48 4.3 Snapshot Consistency Models......................... 48 4.3.1 Ordering Events............................ 49 4.3.2 Point-in-Time Consistency....................... 49 4.3.3 Causal Consistency........................... 50 4.3.4 Consistency Based on Synchronized Clocks............. 52 4.4 Relationships between Consistency Models................. 58 4.4.1 Properties of Snapshots based on Synchronized Clocks...... 59 4.4.2 Restoring Causality........................... 59 4.5 Related Work: Distributed Snapshots..................... 62 4.5.1 Causally Consistent Snapshots.................... 62 4.5.2 Point-in-Time-Consistent Snapshots................. 67 4.5.3 Clock-Based Snapshot Consistency.................. 67 4.6 Summary and Results............................. 68 5 A Snapshot Algorithm for Object-Based File Systems 71 5.1 Modeling Object-Based File Systems..................... 71 5.1.1 State and Interface........................... 71 5.1.2 Request Times and Server Clocks................... 73 5.2 File Content Versioning............................. 73 5.2.1 Object Versioning............................ 73 5.2.2 File Versioning............................. 74 5.3 Metadata Versioning.............................. 75 5.4 Accessing Snapshots.............................. 77 viii Contents 5.5 Versioning of Sparse and Truncated Files.................. 77 5.5.1 Length-Aware File Versioning..................... 79 5.5.2 Interleaved Writes and Truncates................... 82 6 Implementation and Practical