Utility-based Allocation of Resources to Virtual Machines in Cloud Computing
In recent years, cloud computing has gained a wide spread use as a new computing model that offers elastic resources on demand, in a pay-as-you-go fashion. One important goal of a cloud provider is dynamic allocation of Virtual Machines (VMs) according to workload changes in order to keep applicatio...
Main Author: | |
---|---|
Contributors: | |
Format: | Doctoral Thesis |
Language: | English |
Published: |
Philipps-Universität Marburg
2014
|
Subjects: | |
Online Access: | PDF Full Text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
In den letzten Jahren hat Cloud Computing eine hohe Popularität als neues Informationsverarbeitungsmodell erreicht, in dem Ressourcen elastisch nach Bedarf in einem pay-as-you-go Modus genutzt werden können. Ein wichtiges Ziel eines Cloud-Anbieters ist die dynamische Zuweisung von Ressourcen zu Virtuellen Maschinen (VMs) aufgrund der aktuellen Auslastung, um die Per- formanz von Anwendungen auf einem vereinbarten Service-Level-Agreement (SLA) Niveau zu halten, bei gleichzeitiger Reduktion der Kosten von Ressourcen. Das Problem besteht darin, einen adäquaten Kompromiss zwischen den beiden gegensätzlichen Zielen der Performanz von Anwendungen und den Kosten von Ressourcen zu finden. In dieser Dissertation werden Ansätze für die Erzielung eines solchen Kompromisses vorgestellt, die auf der Verwendung einer Nutzenfunktion für Performanz und Kosten basieren. Die vorgeschlagenen Lösungen allokieren Ressourcen zu VMs auf globaler Ebene eines Rechenzentrums und der lokalen Ebene realer Maschinen anhand der Optimierung der Nutzenfunktion. Die Nutzenfunktion, gegeben als Differenz zwischen Performanz und Kosten, repräsentiert den Profit des Cloud-Anbieters und bietet die Möglichkeit, den Performanz-Kosten Kompromiss in einer flexiblen und natürlichen Weise auszudrücken. Für die globale Ebene wird eine zweistufige Zuteilungsstrategie der Ressourcen vorgestellt. In der ersten Stufe weisen Steuerungsinstanzen in den lokalen Rechnern dynamisch Ressourcen-Anteile an die VMs zu, um eine lokale Nutzenfunktion zu maximieren. In der zweiten Stufe gibt es eine globale Steuerungsinstanz, die VM Live-Migration zur Optimierung einer globalen Nutzenfunktion durchführt. Experimentelle Ergebnisse zeigen, dass die Optimierung der globalen Nutzenfunktion durch Änderung der Anzahl der realen Rechner aufgrund der Auslastung die Performanz von Anwendungen auf einem akzeptablen Niveau hält, bei gleichzeitiger Senkung der Kosten von Ressourcen. Um mehrere Ressourcen auf lokaler Ebene zuzuteilen, wird ein Ansatz auf Grundlage der Rückkopplungssteuerungstheorie und der Optimierung der Nutzenfunktion vorgeschlagen. Hierdurch werden Anteile von mehreren Ressourcen, wie CPU, Speicher, Festplatte und Netzwerk I/O-Bandbreite, dynamisch an VMs zugewiesen. Zur Bewältigung der komplexen Nicht-Linearitäten, die in gemeinsam genutzten virtualisierten Infrastrukturen zwischen VM-Performanz und Ressourcenzuteilung existieren, wird eine Lösung vorgeschlagen, die Ressourcen zu VMs anhand einer Nutzenfunktion basierend auf Performanz und Energieverbrauch zuteilt. Ein künstliches neuronales Netzwerk (KNN) wird verwendet, um ein Online-Modell der Beziehung zwischen VM-Ressourcenzuteilung und Anwendungsperformanz und ein weiteres Online-Modell der Beziehung zwischen VM-Ressourcenzuteilung und Energieverbrauch zu erstellen. Um hohe Optimierungszeiten im Falle einer erhöhten Anzahl von VMs zu vermeiden, wird ein verteilter Ressourcen-Manager vorgeschlagen. Dieser besteht aus mehreren KNNs, die jeweils für die Modellierung und Ressourcenzuweisung einer VM verantwortlich sind, aber Informationen mit anderen KNNs für die Koordination der Ressourcenzuteilungen austauschen. Experimentelle Ergebnisse in simulierten und realistischen Umgebungen zeigen, dass die verteilten KNN Ressourcen-Manager bessere Performanz-Kosten Kompromisse erzielen als eine zentralisierte Version und eine verteilte unkoordinierte Version des Ressourcen-Managers. Um die Problematik des Erstellens eines akkuraten Online-Anwendungsmodells verbunden mit langen Modelladaptionszeiten zu behandeln, wird ein Ansatz auf der Grundlage der Fuzzy-Steuerung vorgeschlagen. Er optimiert eine Nutzenfunktion basierend auf einer Hill Climbling Heuristik, die als Fuzzy-Regeln implementiert ist. Zur Vermeidung langer Optimierungszeiten im Fall einer erhöhten Anzahl von VMs wird ein Multi-Agenten Fuzzy-Regler entwickelt, bei dem jeder Agent, parallel zu anderen Agenten, seine eigene lokale Nutzenfunktion optimiert. Der Fuzzy-Steuerungsansatz eliminiert die Notwendigkeit, ein Modell vorab aufbauen und bietet eine robuste Lösung auch für verrauschte Messungen. Experimentelle Ergebnisse zeigen, dass die Multi-Agenten Fuzzy- Regler die Nutzenfunktion besser optimieren als eine zentrale Version eines Fuzzy-Reglers und ein aktueller adaptiver optimaler Steuerungsansatz, ins- besondere bei einer erhöhten Anzahl von VMs. Um einige der Probleme reaktiver VM-Ressourcenzuteilunsansätze zu behandeln, wird eine proaktive Ressourcenallokationslösung vorgeschlagen. Dieser Ansatz entscheidet über VM-Ressourcenzuweisungen basierend auf der Vorhersage des Ressourcenbedarfs mittels der maschinellen Lernmethode der Support Vector Machine (SVM). Um die Abhängigkeiten zwischen VMs der gleichen Multi-Tier-Anwendung zu modellieren, wird die Bedarfsprognose mehrerer kreuzkorrelierter Ressourcennutzungszeitreihen aller VMs einer mehrschichtigen Anwendung durchgeführt. Wie Experimente zeigen, führt dies zu einer verbesserten Vorhersagegenauigkeit und Anwendungsperformanz.