Towards Virtual Infiniband Clusters with Network and Performance
Total Page:16
File Type:pdf, Size:1020Kb
Towards Virtual InfiniBand Clusters with Network and Performance Isolation Diplomarbeit von cand. inform. Marius Hillenbrand an der Fakultät für Informatik Erstgutachter: Prof. Dr. Frank Bellosa Betreuende Mitarbeiter: Dr.-Ing. Jan Stoess Dipl.-Phys. Viktor Mauch Bearbeitungszeit: 17. Dezember 2010 – 16. Juni 2011 KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Abstract Today’s high-performance computing clusters (HPC) are typically operated and used by a sin- gle organization. Demand is fluctuating, resulting in periods of underutilization or overload. In addition, the static OS installation on cluster nodes leaves hardly any room for customization. The concepts of cloud computing transferred to HPC clusters — that is, an Infrastructure-as- a-Service (IaaS) model for HPC computing — promises increased flexibility and cost savings. Elastic virtual clusters provide precisely that capacity that suits actual demand and workload. Elasticity and flexibility come at a price, however: Virtualization overhead, jitter, and additional OS background activity can severely reduce parallel application performance. In addition, HPC workloads typically require distinct cluster interconnects, such as InfiniBand, because of the features they provide, mainly low latency. General-purpose clouds with virtualized Ethernet fail to fulfill these requirements. In this work, we present a novel architecture for HPC clouds. Our architecture comprises the facets node virtualization, network virtualization, and cloud management. We raise the question, whether a commodity hypervisor (the kernel-based virtual machine, KVM, on Linux) can be transformed to provide virtual cluster nodes — that is, virtual machines (VMs) intended for HPC workloads. We provide a concept for cluster network virtualization, using the example of InfiniBand, that provides each user with the impression of using a dedicated network. A user can apply a custom routing scheme and employ recursive isolation in his share of the network. However, he remains constraint to his virtual cluster and cannot impair other users — we verify this claim with experiments with an actual InfiniBand network. We discuss the new challenges that cluster networks bring up for cloud management, and describe how we introduce network topology to cloud management. A prototype for automatic network isolation provides a proof of concept. Deutsche Zusammenfassung Computercluster für das Hochleistungsrechnen werden heute üblicherweise von einzelnen Or- ganisationen betrieben. Die Rechenkapazität solcher Systeme ist festgelegt, weswegen schwan- kende Arbeitslasten abwechselnd zu zeitweiliger Überlast oder zu Phasen von Leerlauf führen. Betriebssysteme und Ablaufumgebungen sind fest auf den Knoten eines Computerclusters in- stalliert und lassen nur wenig Spielraum für anwendungs- oder nutzerspezifische Anpassungen. Überträgt man jedoch die Konzepte von Cloud Computing – die dynamische und automatisierte Bereitstellung von Ressourcen sowie die Abrechnung auf Nutzungsbasis – auf Computerclus- ter, so verspricht das eine deutlich erhöhte Flexibilität und eine Verringerung von Kosten. Virtuelle Computercluster würden so zu jedem Zeitpunkt genau die Rechenkapazität bereit- stellen, die benötigt wird. iii Abstract Diese Flexibilität und Variationsmöglichkeit der Rechenkapazität (die sog. Elastizität), hat jedoch ihren Preis: Mehraufwand, variierende Ausführungszeiten einzelner Iterationen und mehr Hintergrundaktivität in Betriebssystem und Virtualisierungsschicht können die Leistung paralleler Anwendungen deutlich herabsetzen. Darüber hinaus benötigen viele Anwendungen für das Hochleistungsrechnen speziell für Computercluster entworfene Netzwerktechnologien, weil diese sehr geringe Latenzzeiten erreichen und erweiterte Kommunikationsprimitive bieten. Bestehende Lösungen für Cloud Computing können diese Anforderung nicht erfüllen, weil sie nur virtualisierte Ethernet-Netzwerke anbieten. Die vorliegende Arbeit beschreibt eine neuartige Architektur für Cloud Computing für das Hochleistungsrechnen, bestehend aus drei Teilaspekten: Virtualisierung der Cluster-Knoten, Virtualisierung des Cluster-Netzwerks und Management der resultierenden Cloud. Die Arbeit untersucht, ob eine gängige Virtualisierungsschicht (KVM unter Linux) für die Bereitstellung virtueller Knoten für Computercluster herangezogen werden kann. Weiterhin wird ein Konzept für die Virtualisierung der Cluster-Netzwerktechnologie InfiniBand vorgestellt, das einem Be- nutzer den Eindruck vermittelt, er hätte weitreichenden und exklusiven Zugriff auf ein physis- ches Netzwerk. Tatsächlich nutzt er jedoch nur einen Teil des physisch vorhandenen Netzwerks und kann andere Nutzer nicht störend beeinflussen. Die Arbeit bespricht zudem die Heraus- forderungen, die eine automatisierte Verwaltung eines Cluster-Netzwerks mit sich bringt, und beschreibt geeignete Erweiterungen bestehender Verwaltungssysteme für Cloud Computing. Teil dieser Arbeit ist die Evaluation des Einflußes unterschiedlicher Konfigurations-Optionen des Linux-Kernels auf die Hintergrundaktivität des Systems (OS noise) und die Leistung von Anwendungen. Zudem wird an einem realen InfiniBand-Netzwerk untersucht, ob sich eine Netzwerk-Isolation tatsächlich praktisch erzwingen lässt und inwieweit bestehende Werkzeuge hierfür geeignet sind. Die automatisierte Verwaltung eines Cluster-Netzwerks, als integraler Bestandteil eines Verwaltungssystems für Cloud Computing, wird an Hand eines Prototypen demonstriert, der in einem InfiniBand-Netzwerk die Netzwerk-Isolation zwischen virtuellen Computerclustern konfiguriert. iv Contents Abstract iii 1 Introduction 1 2 Background and Related Work 5 2.1 Cloud Computing and Virtualization . .5 2.2 Benefits of Virtualization for High-Performance Computing . .6 2.3 Ethernet Device Virtualization . .8 2.4 Cluster Network Virtualization . .9 2.5 Bulk-Synchronous SPMD Model and Performance Analysis . 10 2.6 High-Performance Computing on General-Purpose Clouds . 12 2.7 Related Work . 13 2.7.1 Virtual Clusters . 13 2.7.2 Datacenter Network Virtualization . 14 2.7.3 Lightweight Hypervisors . 15 3 Approach 17 3.1 Basic Architecture . 17 3.2 Node Virtualization . 20 3.2.1 Analysis . 21 3.2.2 Transformation for HPC Clouds . 26 3.3 Network and Topology Virtualization . 30 3.3.1 Virtual Network View . 31 3.3.2 Analysis of Existing InfiniBand Mechanisms . 33 3.3.3 Transformation to Virtualized Environments . 37 3.3.4 Mapping Virtual Network Views to the Physical Network . 44 3.4 HPC Cloud Management . 46 3.4.1 Analysis . 47 3.4.2 Transformation for Cluster Networks . 49 4 Prototypical Evaluation 53 4.1 Prototype . 53 4.1.1 Test Cluster Hardware . 54 4.1.2 Node Virtualization . 54 4.1.3 Network Virtualization . 55 4.1.4 HPC Cloud Management . 56 4.1.5 Virtual Cluster Environment . 58 4.2 Node Virtualization . 60 4.2.1 Minimizing OS Background Activity . 60 v Contents 4.2.2 Influence of Time-Sharing . 69 4.2.3 Linux Realtime and Idle Scheduling Policies . 73 4.3 Network Virtualization . 75 4.3.1 Protection of Management Interfaces and Isolation . 76 4.4 HPC Cloud Management . 78 4.4.1 Automatic Configuration of Network Isolation . 78 4.4.2 Scalability of OpenNebula . 80 5 Conclusion 85 5.1 Future work . 87 Bibliography 89 vi 1 Introduction Today’s high-performance computing clusters (HPC) are typically operated and used by a sin- gle organization. Demand is fluctuating, resulting in periods where physical resources are underutilized or overloaded. In addition, the static OS installation on cluster nodes leaves little room for customizations of the runtime environment for different jobs. The concepts of cloud computing transferred to HPC clusters — that is, an Infrastructure-as-a-Service (IaaS) model for HPC computing — promises increased flexibility and cost savings. It enables the progress away from physically owned but underutilized HPC clusters designed for peak workloads to virtualized and elastic HPC resources leased from a consolidated large HPC computing center working near full capacity. Elastic virtual clusters provide compute capacity scaled dynami- cally to suit actual demand and workload. At the same time, the pay-as-you-go principle of cloud computing avoids the huge initial investments that are inevitable with physically owned clusters, and causes costs only for actual use of computing capacity. Virtualization allows to dynamically deploy a fully custom runtime environment for each user, customized from the OS kernel up to libraries and tools. In practice, however, providing cloud-based HPC raises difficult challenges. Virtualization, the core technique of contemporary general-purpose IaaS offerings, has a high associated overhead and, even more important, may lead to unpredictable variations in performance [63, 93]. Al- though such overhead and jitter may be tolerable for standard workloads, running HPC tasks used to predictable performance delivery and microsecond-latencies in a compute cloud be- comes a non-trivial problem: it is well known that jitter and OS background activity can severely reduce parallel application performance [27, 67, 89]. Therefore, a compute cloud for HPC workload must strive to incur minimal OS background activity. Furthermore, contemporary compute clouds implement network isolation and bandwidth shar- ing with general-purpose Ethernet overlays. This approach achieves elasticity of network re- sources for standard server workloads. Compute clusters often employ distinct cluster inter- connect networks,