OpenStack ist eine Open-Source-Cloud-Computing-Plattform, die eine Lösung für Infrastructure as a Service bietet. OpenStack besteht aus mehreren Komponenten, die zur Bereitstellung von IaaS zusammengestellt wurden. Die Komponenten sind unten mit ihrer Verwendung aufgeführt.
Komponenten:
Komponente | Name | Verwenden |
---|---|---|
Berechnen | (Nova) | Verwaltet virtuelle Maschinen |
Objektspeicherung | (Schnell) | Verwaltet den Speicher in der gesamten Cloud |
Speicher blockieren | (Schlacke) | Verwaltet den Speicher für die Compute-Instanz |
Netzwerk | (Neutron) | Verwaltet Netzwerke und IP-Adressen |
Dashboard | (Horizont) | Bereitstellen einer grafischen Weboberfläche zum Verwalten von Ressourcen |
Identitätsdienst | (Schlüsselstein) | Verwaltet das Authentifizierungssystem über die Cloud |
Bilderdienst | (Blick) | Stellt Festplatten- und Server-Images bereit (Vorlage) |
Telemetrie | (Ceilometer) | Abrechnungssystem |
Orchestrierung | (Wärme) | Bietet Orchestrierungsfunktion |
Datenbank | (Fundgrube) | Datenbank-Engine |
Bare-Metal-Bereitstellung | (ironisch) | Stellt ein Bare-Metal-System anstelle einer virtuellen Maschine bereit |
Cloud-Messaging für mehrere Mandanten | (Zaqar) | Cloud-Nachrichtendienst für Webentwickler |
Elastic Map Reduce | (Sahara) | Stellt Hadoop-Cluster bereit |
Infrastrukturdesign:
Was die Infrastruktur betrifft, werden wir OpenStack-Netzwerke (Neutron) verwenden, insgesamt werden hier drei Ubuntu-Instanzen verwendet, die als Controller, Netzwerk und Rechenknoten fungieren.
OpenStack empfiehlt die folgenden Konfigurationen für jeden Knoten mit einem 64-Bit-Host-Betriebssystem.
• Controller Node:1 Prozessor, 2 GB Speicher und 5 GB Speicher
• Network Node:1 Prozessor, 512 MB Speicher und 5 GB Speicher
• Compute Node:1 Prozessor, 2 GB Speicher und 10 GB Speicherplatz
Das Folgende ist die Netzwerkkonfiguration jedes Knotens.
Rolle | NW-Karte 1 | NW-Karte 2 | NW-Karte 3 |
---|---|---|---|
Controller-Knoten | 192.168.12.21/24, GW=192.168.12.2 (Verwaltungsnetzwerk) | NA | NA |
Netzwerkknoten | 192.168.12.22 / 24 GW=192.168.12.2 (Verwaltungsnetzwerk) | 192.168.11.22/24 (Tunnelnetzwerk) | 192.168.0.10 / 24 GW=192.168.0.1 (Externes Netzwerk – DHCP aktiviert) |
Rechenknoten | 192.168.12.23 / 24 GW=192.168.12.2 (Verwaltungsnetzwerk) | 192.168.11.23/24 (Tunnelnetzwerk) | NA |
* Das Tunnelnetzwerk hat keine Gateway-IP in der Konfigurationsdatei, dieses Netzwerk wird für die interne Kommunikation zwischen Netzwerkknoten und Rechenknoten verwendet.
Fügen Sie einen Host-Eintrag hinzu, damit die Knoten anstelle der IP-Adresse den Hostnamen verwenden können, um zu kommunizieren. Platzieren Sie es auf allen Knoten.
# nano /etc/hosts # controller 192.168.12.21 controller # network 192.168.12.22 network # compute 192.168.12.23 compute
Wenn Sie mit der Konfiguration der IP-Adresse fertig sind, pingen Sie zwischen den Knoten, um die Konnektivität zu überprüfen.
NTP-Server:
Installieren und konfigurieren Sie NTP auf dem Controller-Knoten, damit alle anderen Knoten die Zeit synchronisieren können.
# apt-get install ntp # service ntp restart
Client-NTP-Konfiguration
Installieren Sie das NTP-Paket sowohl auf dem Netzwerk- als auch auf dem Rechenknoten
# apt-get install ntp
Bearbeiten Sie die folgende Konfigurationsdatei.
# nano /etc/ntp.conf
Entfernen Sie andere NTP-Server aus der Datei, hashen Sie einfach die Zeilen, die mit Word Server beginnen. Fügen Sie den folgenden Eintrag hinzu, um unsere Knoten mit dem Controller-Knoten zu synchronisieren.
server controller
Starten Sie den NTP-Dienst neu.
# service ntp restart
OpenStack-Pakete:
Installieren Sie den Schlüsselbund und das Repository des Ubuntu Cloud-Archivs.
# apt-get install ubuntu-cloud-keyring # echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" "trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list
Aktualisieren Sie Ihr System.
# apt-get update && apt-get dist-upgrade
Führen Sie die beiden obigen Schritte auf allen Knoten aus.
MySQL-Datenbank installieren:
OpenStack-Komponenten verwenden eine MySQL-Datenbank zum Speichern von Informationen, installieren Sie also MySQL auf dem Controller-Knoten.
# apt-get install mariadb-server python-mysqldb
Das Installationsprogramm ruft ein Befehlszeilen-TUI auf, um das MySQL-Root-Passwort festzulegen.
# nano /etc/mysql/conf.d/mysqld_openstack.cnf
Fügen Sie die folgenden Werte hinzu und stellen Sie sicher, dass der Bind-Address-Wert auf die Verwaltungs-IP-Adresse des Controller-Knotens gesetzt ist, damit andere Knoten auf die MySQL-Instanz zugreifen können.
[mysqld] ## Set to Management IP bind-address = 192.168.12.21 default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8
Starten Sie MySQL neu.
# service mysql restart
Installieren Sie RabbitMQ:
RabbitMQ wird von OpenStack verwendet, um Operationen und Statusinformationen zwischen Diensten zu koordinieren. Installieren Sie es auf dem Controller-Knoten.
# apt-get install rabbitmq-server
Openstack-Benutzer hinzufügen.
# rabbitmqctl add_user openstack password
* Ersetzen Sie das Passwort durch Ihr eigenes Passwort.
Openstack-Benutzer Lese-, Schreib- und Konfigurationszugriff erlauben.
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Als Nächstes konfigurieren Sie den KeyStone-Dienst (OpenStack-Identität).