[Back]


Diploma and Master Theses (authored and supervised):

D. Riepl:
"Analysis of Scalable Open-source Distributed Storage Systems with an Emphasis on Data Availability and Performance";
Supervisor: T. Grechenig, A. Ehringfeld; 183-1, 2016.



English abstract:
Storage systems represent a key component in a modern data center architecture. Because of its central role, the storage system design shapes the structure of the whole data center and, therefore, also impacts the overall infrastructure costs to a large extent. Since almost every business application needs to store information in some way, the underlying storage technologies must be capable of processing large amounts of data in a reliable and highly performant way. Due to the virtualization and cloud computing paradigm shift, business applications switch from physical servers to virtual machines that are hosted by large clusters of hypervisors or even completely transparently in a cloud computing infrastructure. As a result, the physical location of the data moves from the disk drives of a single application server to a large-scale storage system that provides a reliable data storage service over the network to a multitude of clients. Alongside traditional Storage Area Networks (SANs), a number of alternative storage architectures have emerged that instead of relying on proprietary hardware components use open-source software to build a cluster of a large number of intelligent storage nodes. In order to fulfill the demands for data availability, a distributed storage system needs to maintain multiple real-time copies of a given data set. For this purpose, instant data replication is commonly used as a mechanism to achieve data consistency among a set of replicas. Although several architectural design approaches exist to construct such a cluster, each one impacts user-visible aspects like performance, data availability and scalability in a different manner. However, due to the specific requirements, not all distributed storage architectures are suitable to serve as back end in a large-scale virtualization environment. This thesis analyzes different methods of building a distributed storage cluster out of open-source components. Moreover, it highlights the characteristics of various system architectures and verifies their compliance with the general requirements for resilient distributed services. Furthermore, the architectural analysis is combined with the practical evaluation of two open-source case studies. In a realistic use case scenario, those case studies are tested regarding system performance and fault tolerance behavior in order to reveal their architectural strengths and weaknesses. The results of the practical evaluation refine the outcome of the analysis, which aims to identify design-related aspects that directly impact the performance capabilities or the data availability of a distributed storage system. Finally, the insight obtained from this research regarding different distributed system architectures is applicable as a guideline for planning the storage back end for a large-scale enterprise virtualization environment using open-source software.

German abstract:
Das Speichersystem stellt eine Schluesselkomponente in der modernen Architektur von Rechenzentren dar. Aufgrund dieser zentralen Rolle formt das Speicherkonzept den Aufbau des Rechenzentrums und wirkt sich demnach auch in grossem Masse auf die Infrastrukturkosten des Gesamtsystems aus. Da beinahe jede unternehmenskritische Softwareanwendung Informationen auf irgendeine Weise speichert, muessen die darunterliegenden Speichertechnologien in der Lage sein, grosse Mengen an Daten zuverlaessig und performant zu verarbeiten. Durch den Paradigmenwechsel hin zu Virtualisierung und Cloud Computing werden unternehmenskritische Applikationen von physikalischen Servern auf virtuelle Maschinen migriert, die entweder von lokalen Hypervisoren oder durch Anbieter von Cloud Computing-Infrastruktur bereitgestellt werden. Dies hat zur Folge, dass sich die Datenspeicherung von den physischen Laufwerken eines einzigen Servers hin zu einem grossen verteilten Speichersystem verschiebt, welches ein zuverlaessiges Speicher-Service über das Netzwerk fuer eine große Anzahl von Benutzern zur Verfuegung stellt. Neben den traditionellen Speichernetzen, wie z.B. Storage Area Networks (SANs), haben sich im Laufe der Jahre alternative Speicherarchitekturen entwickelt, die anstatt proprietaerer Hardwarekomponenten Open Source-Software einsetzten, um einen Cluster aus einer moeglichst grossen Anzahl von intelligenten Speicherknoten zu konstruieren. Um die Datenverfuegbarkeit sicherzustellen, muss ein verteiltes Speichersystem in der Lage sein, mehrere Replikas eines Datensatzes an verschiedenen Punkten innerhalb des Clusters zu verwalten. Fuer diesen Zweck wird Echtzeit- Datenreplikation als Mechanismus zur Sicherstellung der Datenkonsistenz verwendet. Es gibt unterschiedliche Moeglichkeiten, um einen solchen Cluster zu konstruieren, wobei jeder architektonische Ansatz die vom Benutzer aus sichtbaren Aspekte wie Leistung, Datenverfuegbarkeit und Skalierbarkeit auf eine andere Weise beeinflusst. Aufgrund der spezifischen Anforderungen eignen sich daher nicht alle verteilten Systemarchitekturen als Speicherloesung für eine gross angelegte Virtualisierungsumgebung. Die vorliegende Arbeit untersucht verschiedene Methoden, um aus freien Softwarekomponenten eine verteilte Speicherloesung aufzubauen. Darueber hinaus werden die Eigenschaften der verschiedenen Systemarchitekturen analysiert und auf die Einhaltung der allgemeinen Anforderungen für fehlertolerante verteilte Dienste ueberprueft. Weiters wird die Architekturanalyse mit der praktischen Auswertung von zwei Fallstudien aus dem Open Source-Bereich kombiniert. Diese Fallstudien werden in einem realistischen Szenario evaluiert und in Bezug auf die Systemleistung und das Fehlertoleranzverhalten getestet, um die architektonischen Vor- und Nachteile aufzuzeigen. Die Ergebnisse der praktischen Evaluierung ergaenzen die aus der Analyse gewonnenen Erkenntnisse, sodass am Ende Architektur bezogene Aspekte, die sich direkt auf Leistungsfaehigkeit oder die Datenverfuegbarkeit eines verteilten Speichersystems auswirken, identifiziert werden koennen. Letztendlich sind die Erkenntnisse dieser Arbeit in Bezug auf verschiedene verteilte Systemarchitekturen als Planungsrichtlinie verwendbar, um Speicherloesungen basierend auf Open Source- Software fuer gross angelegte Virtualisierungsumgebungen zu realisieren.