Blog

Mehrere Blockspeicher-Backends in OpenStack Cinder konfigurieren

Bild von Mihail Vukadinoff
Mihail Wukadinow
CTO & DevOps-Leiter
10.06.2017
Lesezeit: 3 Minuten.
Zuletzt aktualisiert am: 27.02.2025

Inhaltsübersicht

Wenn Sie ein Administrator von virtualisierten Umgebungen sind, haben Sie bestimmt schon einmal Probleme mit der IO-Leistung gehabt. IO ist der erste Engpass, auf den man stößt. Glücklicherweise hat sich die persistente Speicherung im Laufe der Jahre weiterentwickelt und in letzter Zeit sehen wir hochleistungsfähige SSDs zu einem vernünftigen Preis, der immer noch weit höher ist, als dass Unternehmen vollständig auf SSD migrieren könnten.

Hybride Umgebungen werden immer beliebter, da sie die niedrigen Kosten traditioneller Festplatten mit den hochleistungsfähigen Solid-State-Laufwerken kombinieren. Eines der Hauptmerkmale der Cinder Storage-Backend-Komponente von OpenStack ist die Flexibilität, die es uns ermöglicht, mehr als ein Storage-Backend auf unserem Storage Node zu haben. Dies gibt uns die Flexibilität, die IO-lastigen Anwendungen von den mehr computerorientierten Anwendungen zu unterscheiden, die eine höhere CPU-Auslastung haben. Ein typisches Beispiel ist die Konfiguration einer Datenbank-VM für die Ausführung auf einem SSD-Laufwerk und des Anwendungsserver-Clusters auf normalem Speicher, der beim Start stark schreibgeschützt ist.

Wie man das mit OpenStack und Cinder erreicht

In unserer Umgebung verwenden wir den NFS-Volumentreiber, der einfach zu konfigurierende verteilte Volumes ermöglicht, die über alle Rechenknoten hinweg gemountet werden können. Ob dies die geeignetste und stabilste Lösung ist, steht auf einem anderen Blatt, wenn man bedenkt, dass es eine Vielzahl von Speicher-Backends gibt - ceph, glusterfs, iSCSI-basierte. Sie können die Unterscheidung von SSD und HDD mit jedem von ihnen anwenden.

Unsere erste Aufgabe besteht darin, verschiedene Einhängepunkte auf unserem Server einzurichten, die sich auf LVM oder direkt auf einer physischen Partition (nicht empfohlen) befinden, und zwar sowohl auf unserem SSD-Speicherarray oder unserer Festplatte als auch auf unseren einfachen alten Festplatten. Wir müssen diese Einhängepunkte als verschiedene Exporte in /etc/exports definieren.

/exporthdd 192.168.0.0/24(rw,no_subtree_check,sync,no_root_squash)  # this is a mountpoint of plain hard disk physical devices
/exportssd 192.168.0.0/24(rw,no_subtree_check,sync,no_root_squash)  # this is a mountpoint for the SSD physical disks

Stellen Sie sicher, dass die NFS-Exporte mit dem Befehl exportsfs geladen sind.

Wie in der RedHat-Dokumentation von OpenStack beschrieben, haben wir die Möglichkeit, mehrere Konfigurationsblöcke in der Datei cinder.conf zu definieren. Es wird jedoch der Eindruck erweckt, dass diese für die Definition verschiedener Speichertreiber gedacht sind. Während dies tatsächlich der typischste Anwendungsfall ist, schränkt cinder Sie nicht ein, mehrere Blöcke mit demselben Treiber zu definieren.

[NAME]
volume_group=GROUP
volume_driver=DRIVER
volume_backend_name=BACKEND

Bearbeiten Sie nun die Hauptkonfigurationsdatei:

[nfsssd]
nfs_used_ratio=0.95
nfs_oversub_ratio=1.0
volume_driver=cinder.volume.drivers.nfs.NfsDriver
nfs_shares_config=/etc/cinder/nfs_shares_ssd.conf
volume_backend_name=nfsssd

Es ist sehr wichtig, einen volume_backend_name zu definieren. Dies ermöglicht, dass dieses Backend in der Horizon-GUI erscheint und auch auswählbar ist, wenn ein Volume über die Kommandozeile erstellt wird. Um dieses Backend zu aktivieren, müssen wir es auch in der gleichen Konfigurationsdatei /etc/cinder/cinder.conf im obersten Abschnitt in einer kommaseparierten Liste angeben.

enabled_backends=XXX,XXX,nfs,nfsssd

Wie im Abschnitt nfsssd gesehen, definieren wir eine andere Konfigurationsdatei für nfs-Freigaben, die die Einhängepunkte und Pfade zu den

Damit Benutzer angeben können, auf welchem Backend ihre Volumes erstellt werden, anstatt sich auf die automatische Auswahl durch den Scheduler zu verlassen, muss ein Volume-Typ in der Datenbank definiert werden. Sobald die Dienste neu gestartet sind und laufen, kann dies mit diesen Befehlen erfolgen:

cinder type-create nfsssd
cinder type-key <the id returned from the create command> set volume_backend_name='nfsssd'

Dies ist die Beziehung zum Namen des Volume-Backends, der in der Konfiguration angegeben wurde, und ermöglicht es uns, bei der Erstellung eines Volumes zu wählen, welcher Typ es sein soll, oder mit anderen Worten, auf welchem Backend es sich befinden soll.

Um die Erstellung zu testen, können Sie das Befehlszeilentool unter Angabe des Volume-Typs verwenden.

cinder create --display-name test1 --volume-type nfsssd 2

Jetzt kann dieses Volume in jede unserer virtuellen Maschinen eingebunden werden.

Ich hoffe, dieser Artikel hat Ihnen geholfen. Ich würde mich freuen, wenn Sie Kommentare dazu hinterlassen, wie man das SSD-Backend weiter optimieren kann, ob es besser für die Leistung ist, wenn es nicht auf LVM, sondern direkt auf der Festplatte liegt.

Außerdem würde ich gerne Ihre Erfahrungen hören: Wann mussten Sie verschiedene Volume-Backends verwenden und was würden Sie anstelle von NFS bevorzugen?

Eine Antwort hinterlassen

Newsletter für Tech-Experten

Signal, kein Rauschen –

direkt in Ihren Posteingang.

Schließen Sie sich mehr als 12.000 Ingenieuren und Führungskräften aus der Wirtschaft an, die Praxisberichte zu SRE, DevOps und Cloud-nativer Zuverlässigkeit erhalten.

Tech-Blogs mit tiefgehenden Einblicken und Fallstudien
Neue Technologien, sorgfältig ausgewählt

Ihre geschäftliche E-Mail-Adresse

Wir gehen respektvoll mit Ihrem Posteingang um. Lesen Sie unsere Datenschutzerklärung.

Mehr Beiträge

AI SRE Agent: Die ersten 20 Minuten eines Vorfalls automatisieren Es ist 3 Uhr morgens. Ein Alarm wird ausgelöst. Sie klappen Ihren Laptop auf, und die nächsten zwanzig Minuten verlaufen wie immer...
Lesen
Bei der Arbeit mit Terraform sollte das Standard-Meta-Argument zum Erstellen von Ressourcen fast immer „for_each“ lauten – insbesondere bei Infrastruktur, die voraussichtlich lange bestehen bleibt und sich weiterentwickelt...
Lesen
Kontakt aufnehmen
ITGix bietet Ihnen fachkundige Beratung und maßgeschneiderte DevOps-Services, um Ihr Unternehmenswachstum zu beschleunigen.
Newsletter für
Technik-Experten
Schließen Sie sich 12.000+ Geschäftsführern und Ingenieuren an, die Blogs, e-Books und Fallstudien Fallstudien über neue Technologie erhalten.