RUPRECHT-KARLS-UNIVERSITÄT HEIDELBERG KIRCHHOFF-INSTITUT FÜR PHYSIK INAUGURAL - DISSERTATION zur Erlangung der Doktorwürde der Naturwissenschaftlich-Mathematischen Gesamtfakultät der Ruprecht-Karls-Universität Heidelberg vorgelegt von Diplom–Physiker Arne Wiebalck aus Bremerhaven Tag der mündlichen Prüfung: 29. Juni 2005 ClusterRAID: Architecture and Prototype of a Distributed Fault-Tolerant Mass Storage System for Clusters Gutachter: Prof. Dr. Volker Lindenstruth Gutachter: Prof. Dr. Thomas Ludwig ClusterRAID: Architektur und Prototyp eines verteilten fehlertoleranten Massenspeicher-Systems für Cluster In den letzten Jahren haben sich Cluster aus Standard-Komponenten in vielen Bereichen als do- minante Architektur für Hochleistungsrechner durchgesetzt. Wegen ihres besseren Preis-Leistungs- verhältnisses haben diese Systeme, die typischerweise aus Standard-PCs oder Workstations und ei- nem Verbindungsnetzwerk aufgebaut sind, die traditionell verwendeten, integrierten Supercomputer- Architekturen verdrängt. Aufgrund des zu beobachtenden Paradigmen-Wechsels von rein rechen- intensiven hin zu Eingabe/Ausgabe-intensiven Anwendungen werden die in Clustern verwendeten Massenspeichersysteme zu einer immer wichtigeren Komponente. Daß sich bisher kein Standard für die Nutzung des verteilten Massenspeichers in Clustern durchsetzen konnte, ist vor allem der inhä- renten Unzuverlässigkeit der zugrundeliegenden Komponenten zuzuschreiben. Die vorliegende Arbeit beschreibt die Architektur und eine Prototypen-Implementierung eines ver- teilten, fehlertoleranten Massenspeichersystems für Cluster. Die grundlegende Idee der Architektur ist es, die lokale Festplatte eines Clusterknotens zuverlässig zu machen, ohne dabei die Schnittstel- le für das Betriebssystem oder die Anwendung zu verändern. Hierbei werden fehler-korrigierende Codes eingesetzt, die es ermöglichen, die Anzahl der zu tolerierenden Fehler und somit die Zuver- lässigkeit des Gesamtsystems einzustellen. Das Anordnungsschema für die Datenblöcke innerhalb des Systems berücksichtigt das Zugriffsverhalten einer ganzen Klasse von Applikationen und kann so die erforderlichen Netzwerkzugriffe auf ein Minimum reduzieren. Gründliche Messungen und Funktionstests des Prototypen, sowohl allein als auch im Zusammenwirken mit lokalen und verteil- ten Dateisystemen, belegen die Validität des Konzeptes. ClusterRAID: Architecture and Prototype of a Distributed Fault-Tolerant Mass Storage System for Clusters During the past few years clusters built from commodity off-the-shelf (COTS) components have emerged as the predominant supercomputer architecture. Typically comprising a collection of stan- dard PCs or workstations and an interconnection network, they have replaced the traditionally used integrated systems due to their better price/performance ratio. As paradigms shift from mere com- puting intensive to I/O intensive applications, mass storage solutions for cluster installations become a more and more crucial aspect of these systems. The inherent unreliability of the underlying com- ponents is one of the reasons why no system has been established as a standard storage solution for clusters yet. This thesis sets out the architecture and prototype implementation of a novel distributed mass stor- age system for commodity off-the-shelf clusters and addresses the issue of the unreliable constituent components. The key concept of the presented system is the conversion of the local hard disk drive of a cluster node into a reliable device while preserving the block device interface. By the deploy- ment of sophisticated erasure-correcting codes, the system allows the adjustment of the number of tolerable failures and thus the overall reliability. In addition, the applied data layout considers the access behaviour of a broad range of applications and minimizes the number of required network transactions. Extensive measurements and functionality tests of the prototype, both stand-alone and in conjunction with local or distributed file systems, show the validity of the concept. Contents 1. Introduction 15 1.1. Commodity Components in Clusters . 16 1.1.1. Hard Disk Drives . 16 1.1.2. Processors and Memory . 17 1.1.3. Networks and Busses . 17 1.1.4. Cluster Software . 18 1.2. Requirements in Science and Industry . 18 1.2.1. High Energy Physics Experiments . 19 1.2.2. The Google Web Search Engine . 19 1.3. Organization of the Thesis . 20 2. Distributed Storage for Clusters 21 2.1. SAN, NAS, and RAID . 21 2.2. Networked File Systems . 24 2.2.1. NFS . 24 2.2.2. DAFS . 25 2.2.3. MOSIX, MFS, and MOPI . 26 2.2.4. PVFS and Lustre . 27 2.2.5. GPFS . 28 2.2.6. Google File System . 29 2.3. Integrated Mass Storage Systems . 30 2.3.1. HPSS . 30 2.3.2. CASTOR . 31 2.3.3. Storage Tank . 32 2.4. Distributed Block Level Systems . 33 2.4.1. NBD and ENBD . 34 2.4.2. DRBD . 36 2.4.3. RAID-X OSM . 37 2.4.4. Petal . 38 2.4.5. Tertiary Disk . 39 2.4.6. DRAID . 39 2.5. Distributed RAID . 40 2.6. The need for something different . 44 7 Contents 3. ClusterRAID Architecture 47 3.1. Design Considerations . 47 3.2. Overview and Functionality . 48 3.3. Performance . 56 3.4. Scalability . 62 3.5. Fault-tolerance . 63 3.5.1. Basic definitions . 63 3.5.2. Reliability Modeling . 65 3.5.3. The Reliability of the ClusterRAID . 67 4. Error and Erasure Correcting Codes 73 4.1. Introduction . 73 4.2. Hamming Codes . 78 4.3. BCH Codes . 79 4.4. Reed-Solomon Codes . 80 4.5. Vandermonde-based Reed-Solomon Codes . 83 4.6. Other Algorithms . 86 5. ClusterRAID Implementation 87 5.1. Kernel Interfacing . 87 5.2. Overview . 90 5.2.1. The Main Module . 92 5.2.2. The Codec Module . 97 5.2.3. The XOR Module . 102 5.3. Functional Analysis . 102 5.3.1. Read Requests . 103 5.3.2. Write Requests . 104 5.3.3. Degraded Mode . 106 5.4. Additional Concepts . 109 5.4.1. Locking . 109 5.4.2. Copy Mode . 111 5.4.3. Kernel Caches . 111 5.4.4. Private Caches . 112 5.4.5. Check Blocks . 112 5.5. Monitoring, Debugging, Control, and Configuration . 113 5.5.1. Monitoring . 113 5.5.2. Driver Control and Configuration . 115 5.5.3. ClusterRAID Configuration and Startup . 116 6. Prototyping and Benchmarks 121 6.1. The Test Environment . 121 6.1.1. The Hard Disks . 121 6.1.2. The Network . 124 6.1.3. The Network Block Device . 128 8 Contents 6.2. ClusterRAID Performance . 128 6.2.1. Local Testing . 129 6.2.2. Remote Testing . 131 6.2.3. System Tests . 132 6.3. Functional Testing . 140 6.3.1. Online Repair and Node Replacement . 141 6.3.2. Stability and Consistency . 141 6.3.3. ClusterRAID and MFS . 143 6.4. Implemented Optimizations and Possible Improvements . 146 6.4.1. Software . 146 6.4.2. Hardware Support . 148 7. Conclusion and Outlook 151 A. Appendix 153 A.1. The Galois Field GF(24) . 153 A.2. A Production Quality Distributed RAID . 153 A.3. The DWARW Module . 155 A.4. The NetIO Network Benchmark . 155 A.5. MOSIX related Measurements . 156 Bibliography 159 9 List of Figures 2.1. SAN schematic . ..
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages174 Page
-
File Size-