Sergey Nivens - stock.adobe.com
OpenStack: Blockbasierter Speicher im Unternehmenseinsatz
Mit Cinder kann ein Dienst im Netzwerk für das Bereitstellen von blockbasiertem Speicher eingeführt und genutzt werden. Erfahren Sie hier, wie dies umgesetzt wird.
OpenStack gehört sicherlich zu den beliebtesten Lösungen, wenn es darum geht, eine private Cloud im Unternehmen auf Basis von Open Source aufzubauen. Da OpenStack modular konzipiert ist, kann auch der dazu gehörige Speicher flexibel gewählt werden.
Eine der Optionen, neben Swift und Manila, ist der blockbasierte Speicher „Cinder“. Teilweise setzen Unternehmen alle drei Speicher ein, da auch Swift und Manila ihre Daseinsberechtigungen haben. Cinder hat seinen Schwerpunkt im Zurverfügungstellen von Storage für virtuelle Computer, die mit OpenStack bereitgestellt werden. Dazu wird der Dienst Nova, also OpenStack Compute mit Cinder verbunden.
Swift und Manila parallel zu Cinder einsetzen
Wird in der privaten Cloud Object Storage benötigt, ist Swift eine durchaus passable Lösung. Manila hat seinen Schwerpunkt im Bereich File Storage. OpenStack bietet den Vorteil, dass sich die einzelnen Module ohne Probleme schnell miteinander integrieren lassen. Das gilt auch für Swift, Manila und Cinder. Die Speichersysteme sind problemlos miteinander einsetzbar und müssen oft auch parallel eingesetzt werden. Vor allem, wenn im Netzwerk virtuelle Computer betrieben werden, die eine hohe Leistung benötigen, gehört Cinder zu den besten Lösungen in OpenStack.
Mit Swift lassen sich die Daten auf verschiedenen Cluster-Knoten verteilen. Die Möglichkeit der horizontalen Skalierbarkeit (Scale-Out) und des einfachen Zugriffs im Cluster stellt einen großen Vorteil dar. Allerdings ist der Speicher bei der Leistung etwas anfälliger als Manila und Cinder. Meistens wird Swift für die Archivierung und die Datensicherung genutzt.
Manila ermöglicht den schnellen Zugriff von vielen Benutzern gleichzeitig auf bestimmte Daten.
Cinder hat den Schwerpunkt auf Block Storage für virtuelle Computer gelegt. Die Daten werden in Volumes abgelegt, ähnlich zu virtuellen Festplatten. Diese Datenbereiche können anschließend einzelnen virtuellen Servern zugewiesen werden. Die Leistung des Speichers ist hoch, es darf aber immer nur eine VM auf den Datenspeicher zugreifen. Cinder kann auch mit Datenspeicher auf Basis von Swift kommunizieren. Dadurch besteht die Möglichkeit, dass Switch als Backend für Cinder genutzt werden kann. Das hängt natürlich von der entsprechenden Infrastruktur ab.
Cinder in der Praxis
Cinder verfügt über eine Vielzahl von Treibern, mit denen das eigentliche Speichergerät an das OpenStack-System angebunden wird. Danach wird der Speicher über Cinder in OpenStack zur Verfügung gestellt. Verfügbar sind zum Beispiel Treiber für NAS/SAN, NFS, iSCSI, Ceph und viele andere. Sobald Cinder im Einsatz ist, laufen die wichtigsten Dienste zur Kontrolle und Verwaltung der Umgebung über den Controller Node.
Cinder arbeitet mit OpenStack Compute zusammen, um Volumes für die VMs zur Verfügung zu stellen. Der Dienst ermöglicht darüber hinaus auch die Verwaltung von Datenträger-Snapshots. Cinder besteht aus verschiedenen Komponenten:
- Cinder-API – Steuert die API-Anfragen und leitet sie an das Cinder-Volume weiter, um sie zu bearbeiten.
- Cinder-Volume – Interagiert direkt mit dem Block Storage Service und Prozessen wie dem Cinder-Scheduler. Dafür wird eine Nachrichtenwarteschlange eingerichtet. Der Cinder-Volume-Dienst nutzt Lese- und Schreibanforderungen. Diese werden an den Blockspeicherdienst gesendet.
- Cinder-Scheduler-Daemon – Wählt den am besten geeigneten Speicheranbieterknoten aus, auf dem das Volume erstellt werden soll.
- Cinder-Backup-Daemon – Der Cinder-Backup Service stellt Backup-Volumes zur Verfügung.
Cinder und Datenbanken installieren
Für seinen Betrieb benötigt Cinder Zugriff auf eine Datenbank, zum Beispiel auf Basis von MySQL oder MariaDB. Für die Verwaltung des Speicherdienstes wird ein eigenes Benutzerkonto benötigt. Die entsprechende Vorgehensweise wird in der Dokumentation von Open Stack beschrieben.
Wenn die Datenbank zur Verfügung steht, wird ein Admin-Benutzer für Open Stack angelegt und ihm Adminrechte zugewiesen:
openstack user create --domain default --password-prompt cinder
openstack role add --project service --user cinder admin
Danach werden die Dienste und Endpunkte definiert, wie in der Dokumentation beschrieben. Ein Großteil der Konfiguration wird über die Datei „cinder.conf“ vorgenommen. Diese ist normalerweise im Verzeichnis „/etc/cinder“ gespeichert. In dieser Datei wird zum Beispiel die Datenbank verbunden, die Cinder nutzt.
Cinder verwalten
Sobald Cinder in der OpenStack-Infrastruktur integriert ist, werden viele Einstellungen in der oben erwähnten Datei „cinder.conf“ vorgenommen. Die Volumes werden mit dem Befehl
Openstack volume create
erstellt. Der Befehl erstellt ein Logical Volume (LV) in der Volume Group (CG) „cinder-volumes“. Sobald das Volume erstellt ist, kann es an eine VM angebunden werden:
openstack server add volume
Der Befehl erstellt eine IQN, die zugewiesen werden kann, zum Beispiel als lokaler Speicher über eine iSCSI-Sitzung.
Für die Verwaltung von Cinder kann darüber hinaus das Tool mit „cinder-manage“ verwaltet werden. Die Syntax wird auf der Seite „Control and Manage OpenStack Block Storage“ beschrieben.