- Informationen über dieses Handbuch
- I Einführung zu SUSE Enterprise Storage (SES)
- 1 SES und Ceph
- 2 Hardwareanforderungen und Empfehlungen
- 2.1 Netzwerke im Überblick
- 2.2 Konfigurationen mit mehreren Architekturen
- 2.3 Hardwarekonfiguration
- 2.4 Objektspeicherknoten
- 2.5 Monitorknoten
- 2.6 Object-Gateway-Knoten
- 2.7 Metadata Server-Knoten
- 2.8 Admin-Knoten
- 2.9 iSCSI-Gateway-Knoten
- 2.10 SES und andere SUSE-Produkte
- 2.11 Namensbegrenzungen
- 2.12 Ein einziger Server für OSD und Monitor
- 3 Einrichten des Hochverfügbarkeits-Clusters für den Admin-Knoten
- II Bereitstellen des Ceph-Clusters
- III Upgrade von vorigen Versionen
- 10 Upgrade von SUSE Enterprise Storage 6 auf 7.1
- 10.1 Vor dem Aufrüsten
- 10.2 Upgrade des Salt Masters
- 10.3 Upgrade der MON-, MGR- und OSD-Knoten
- 10.4 Upgrade von Gateway-Knoten
- 10.5 Installieren von
ceph-salt
und Anwenden der Cluster-Konfiguration - 10.6 Upgrade und Übernahme des Überwachungs-Stacks
- 10.7 Erneute Bereitstellung des Gateway-Service
- 10.8 Bereinigung nach dem Upgrade
- 11 Upgrade von SUSE Enterprise Storage 7 auf 7.1
- 10 Upgrade von SUSE Enterprise Storage 6 auf 7.1
- A Ceph-Wartungsaktualisierungen auf der Grundlage von vorgeschalteten „Pacific“-Unterversionen
- Glossar
- 1.1 Schnittstellen zum Ceph-Objektspeicher
- 1.2 Beispiel eines kleinen Ceph-Speichers
- 2.1 Netzwerke im Überblick
- 2.2 Mindestkonfiguration für den Cluster
- 3.1 Hochverfügbarkeits-Cluster mit zwei Knoten für den Admin-Knoten
- 7.1 Bereitstellung eines Minimalclusters
- 9.1 Ceph-Cluster mit einem einzigen iSCSI Gateway
- 9.2 Ceph-Cluster mit mehreren iSCSI Gateways
Copyright © 2020–2024 SUSE LLC und Mitwirkende. Alle Rechte vorbehalten.
Sofern nicht anders angegeben, ist dieses Dokument unter Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0) lizenziert: https://creativecommons.org/licenses/by-sa/4.0/legalcode.
Die SUSE-Marken finden Sie unter http://www.suse.com/company/legal/. Die Rechte für alle Marken von Drittanbietern liegen bei den jeweiligen Eigentümern. Markensymbole (®, ™ usw.) kennzeichnen Marken von SUSE und ihren Tochtergesellschaften. Sternchen (*) kennzeichnen Marken von Drittanbietern.
Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengestellt. Auch hierdurch kann jedoch keine hundertprozentige Richtigkeit gewährleistet werden. Weder SUSE LLC, ihre Tochtergesellschaften, die Autoren noch die Übersetzer können für mögliche Fehler und deren Folgen haftbar gemacht werden.
Informationen über dieses Handbuch #
Diese Anleitung konzentriert sich auf die Bereitstellung eines grundlegenden Ceph-Clusters und zusätzlicher Services. Außerdem werden die Schritte für ein Upgrade auf SUSE Enterprise Storage 7.1 von der vorherigen Produktversion beschrieben.
SUSE Enterprise Storage 7.1 ist eine Erweiterung zu SUSE Linux Enterprise Server 15 SP3. Es kombiniert die Funktion des Ceph(http://ceph.com/)-Speicherobjekts mit der Unternehmenstechnik und dem Support von SUSE. Mit SUSE Enterprise Storage 7.1 stellen IT-Organisationen eine dezentrale Speicherarchitektur bereit, die eine Reihe von Anwendungsfällen auf kommerziellen Hardwareplattformen unterstützt.
1 Verfügbare Dokumentation #
Die Dokumentation für unsere Produkte steht unter https://documentation.suse.com bereit. Hier finden Sie außerdem die neuesten Aktualisierungen und können die Dokumentation durchsuchen oder in verschiedenen Formaten herunterladen. Die neuesten Aktualisierungen der Dokumentation finden Sie in der englischen Sprachversion.
Darüber hinaus befindet sich die Dokumentation auf dem installierten System im Verzeichnis /usr/share/doc/manual
. Sie ist enthalten in einem RPM-Paket namens ses-manual_LANG_CODE. Installieren Sie es, wenn es nicht bereits auf Ihrem System vorhanden ist. Beispiel:
#
zypper install ses-manual_en
Die folgende Dokumentation ist für dieses Produkt verfügbar:
- Implementierungsleitfaden
Diese Anleitung konzentriert sich auf die Bereitstellung eines grundlegenden Ceph-Clusters und auf die Bereitstellung zusätzlicher Services. Außerdem werden die Schritte für ein Upgrade auf SUSE Enterprise Storage 7.1 von der vorherigen Produktversion beschrieben.
- Betriebs- und Verwaltungshandbuch
Dieses Handbuch konzentriert sich auf Routineaufgaben, die Sie als Administrator erledigen müssen, nachdem der grundlegende Ceph-Cluster bereitgestellt wurde (Vorgänge ab Tag 2). Außerdem werden alle unterstützten Möglichkeiten zum Zugriff auf die in einem Ceph-Cluster gespeicherten Daten beschrieben.
- Security Hardening Guide (Sicherheitshandbuch)
Diese Anleitung konzentriert sich darauf, wie Sie die Sicherheit Ihres Clusters gewährleisten können.
- Troubleshooting Guide (Handbuch zur Fehlersuche)
In diesem Leitfaden werden verschiedene häufige Probleme bei der Ausführung von SUSE Enterprise Storage 7.1 und andere Fragen zu relevanten Komponenten wie Ceph oder Object Gateway behandelt.
- SUSE Enterprise Storage for Windows Guide (Handbuch zu SUSE Enterprise Storage für Windows)
In diesem Handbuch wird die Integration, Installation und Konfiguration von Microsoft-Windows-Umgebungen und SUSE Enterprise Storage mithilfe des Windows-Treibers beschrieben.
2 Feedback #
Wir freuen uns über Rückmeldungen und Beiträge zu dieser Dokumentation. Hierfür gibt es mehrere Kanäle:
- Serviceanforderungen und Support
Informationen zu Services und Support-Optionen, die für Ihr Produkt verfügbar sind, finden Sie unter http://www.suse.com/support/.
Zum Öffnen einer Service-Anforderung benötigen Sie ein SUSE-Abonnement, das beim SUSE Customer Center registriert ist. Gehen Sie zu https://scc.suse.com/support/requests, melden Sie sich an und klicken Sie auf .
- Fehlerberichte
Melden Sie Probleme mit der Dokumentation unter https://bugzilla.suse.com/. Zum Melden von Problemen ist ein Bugzilla-Konto erforderlich.
Zur Vereinfachung dieses Vorgangs können Sie die Links
(Fehler in der Dokumentation melden) neben den Überschriften in der HTML-Version dieses Dokuments verwenden. Dadurch werden das richtige Produkt und die Kategorie in Bugzilla vorab ausgewählt und ein Link zum aktuellen Abschnitt hinzugefügt. Sie können somit sofort mit der Eingabe Ihres Berichts beginnen.- Beiträge
Verwenden Sie für einen Beitrag zu dieser Dokumentation die Links
(Quelle bearbeiten) neben den Überschriften in der HTML-Version dieses Dokuments. Sie führen Sie zum Quellcode auf GitHub, wo Sie eine Pull-Anforderung öffnen können. Für Beiträge ist ein GitHub-Konto erforderlich.Weitere Informationen zur Dokumentationsumgebung für diese Dokumentation finden Sie in der README des Repositorys unter https://github.com/SUSE/doc-ses.
Alternativ können Sie E-Mails mit Fehlerberichten und Feedback zur Dokumentation an <doc-team@suse.com> senden. Geben Sie den Titel der Dokumentation, die Produktversion und das Datum der Veröffentlichung der Dokumentation an. Geben Sie zudem die entsprechende Abschnittsnummer und den Titel (oder die URL) an und fügen Sie eine kurze Beschreibung des Problems hinzu.
3 Konventionen in der Dokumentation #
In der vorliegenden Dokumentation werden die folgenden Hinweise und typografischen Konventionen verwendet:
/etc/passwd
: Verzeichnis- und DateinamenPLATZHALTER: Ersetzen Sie PLATZHALTER durch den tatsächlichen Wert.
PFAD
: Eine Umgebungsvariablels
,--help
: Kommandos, Optionen und Parameteruser
: Der Name eines Benutzers oder einer Gruppepackage_name: Der Name eines Softwarepakets
Alt, Alt–F1: Eine zu drückende Taste bzw. Tastenkombination. Tasten werden wie auf einer Tastatur in Großbuchstaben dargestellt.
AMD/Intel Dieser Absatz ist nur für die AMD64-/Intel 64-Architekturen relevant. Die Pfeile kennzeichnen den Anfang und das Ende des Textblocks.
IBM Z, POWER Dieser Absatz ist nur für die Architekturen
IBM Z
undPOWER
relevant. Die Pfeile kennzeichnen den Anfang und das Ende des Textblocks.Kapitel 1, „Beispielkapitel“: Ein Querverweis auf ein anderes Kapitel in diesem Handbuch.
Kommandos, die mit
root
-Privilegien ausgeführt werden müssen. Diesen Kommandos kann zur Ausführung als nicht privilegierter Benutzer auch häufig das Präfixsudo
vorangestellt sein.#
command
>
sudo
command
Kommandos, die von Benutzern ohne Privilegien ausgeführt werden können.
>
command
Hinweise
Warnung: WarnhinweisWichtige Informationen, die Sie kennen müssen, bevor Sie fortfahren. Warnt vor Sicherheitsrisiken, potenziellen Datenverlusten, Beschädigung der Hardware oder physischen Gefahren.
Wichtig: Wichtiger HinweisWichtige Informationen, die Sie beachten sollten, bevor Sie den Vorgang fortsetzen.
Anmerkung: AnmerkungErgänzende Informationen, beispielsweise zu unterschiedlichen Softwareversionen.
Tipp: TippHilfreiche Informationen, etwa als Richtlinie oder praktische Empfehlung.
Kompaktinfos
Ergänzende Informationen, beispielsweise zu unterschiedlichen Softwareversionen.
Hilfreiche Informationen, etwa als Richtlinie oder praktische Empfehlung.
4 Support #
Im Folgenden finden Sie die Supportbestimmung für SUSE Enterprise Storage sowie allgemeine Informationen über Technologievorschauen. Details über den Produktlebenszyklus finden Sie unter https://www.suse.com/lifecycle.
Wenn Sie Anspruch auf Support haben, finden Sie Details zum Sammeln von Informationen für ein Support-Ticket unter https://documentation.suse.com/sles-15/html/SLES-all/cha-adm-support.html.
4.1 Erläuterung zum Support für SUSE Enterprise Storage #
Sie benötigen ein entsprechendes Abonnement bei SUSE, um Support zu erhalten. Gehen Sie zur Anzeige der für Sie verfügbaren spezifischen Support-Angebote zu https://www.suse.com/support/ und wählen Sie das betreffende Produkt aus.
Die Support-Stufen sind folgendermaßen definiert:
- L1
Problemermittlung: Technischer Support mit Informationen zur Kompatibilität, Nutzungs-Support, kontinuierliche Wartung, Informationssammlung und einfache Problembehandlung anhand der verfügbaren Dokumentation.
- L2
Problemisolierung: Technischer Support zur Datenanalyse, Reproduktion von Kundenproblemen, Isolierung von Problembereichen und Lösung für Probleme, die in Stufe 1 nicht gelöst wurden, sowie Vorbereitung für Stufe 3.
- L3
Problembehebung: Technischer Support zur Lösung von Problemen durch technische Maßnahmen zur Behebung von Produktfehlern, die durch den Support der Stufe 2 erkannt wurden.
Vertragskunden und Partner erhalten SUSE Enterprise Storage mit L3-Support für alle Pakete, ausgenommen:
Technologievorschauen.
Audio, Grafik, Schriftarten und Artwork.
Pakete, für die ein zusätzlicher Kundenvertrag erforderlich ist.
Einige Pakete, die im Lieferumfang von Modul Workstation Extension enthalten sind, erhalten nur L2-Support.
Pakete mit Namen, die auf -devel enden (die Header-Dateien und ähnliche Entwicklerressourcen enthalten), werden nur zusammen mit ihren Hauptpaketen unterstützt.
SUSE unterstützt nur die Nutzung von Originalpaketen, also unveränderten und nicht kompilierten Paketen.
4.2 Technologievorschauen #
Mit Technologievorschauen sind Pakete, Stacks oder Funktionen gemeint, die SUSE bereitstellt, um einen kurzen Einblick in bevorstehende Innovationen zu geben. Durch Technologievorschauen haben Sie die Möglichkeit, neue Technologien in Ihrer Umgebung zu testen. Über Ihr Feedback würden wir uns sehr freuen. Wenn Sie eine Technologievorschau testen, kontaktieren Sie bitte Ihre Ansprechpartner bei SUSE und teilen Sie ihnen Ihre Erfahrungen und Anwendungsfälle mit. Ihr Input ist für zukünftige Entwicklungen sehr hilfreich.
Technologievorschauen weisen die folgenden Einschränkungen auf:
Technologievorschauen befinden sich noch in Entwicklung. Daher sind die Funktionen möglicherweise unvollständig oder auf andere Weise nicht für die Produktionsnutzung geeignet.
Technologievorschauen werden nicht unterstützt.
Technologievorschauen sind möglicherweise nur für bestimmte Hardwarearchitekturen verfügbar.
Details und Funktionen von Technologievorschauen sind Änderungen unterworfen. Upgrades auf Folgeversionen sind demnach nicht möglich und erfordern eine Neuinstallation.
SUSE kann feststellen, dass eine Vorschau nicht den Kunden- oder Marktanforderungen entspricht oder nicht mit den Unternehmensstandards übereinstimmt. Technologievorschauen können jederzeit aus einem Produkt entfernt werden. SUSE ist nicht verpflichtet, eine unterstützte Version dieser Technologie in der Zukunft bereitzustellen.
Eine Übersicht der Technologievorschauen, die im Lieferumfang Ihres Produkts enthalten sind, finden Sie in den Versionshinweisen unter https://www.suse.com/releasenotes/x86_64/SUSE-Enterprise-Storage/7.1.
5 Mitwirkende bei Ceph #
Das Ceph-Projekt und dessen Dokumentation ist das Ergebnis der Arbeit von Hunderten von Mitwirkenden und Organisationen. Weitere Einzelheiten finden Sie unter https://ceph.com/contributors/.
6 Kommandos und Kommandozeilen in diesem Handbuch #
Als Ceph-Cluster-Administrator können Sie das Cluster-Verhalten mit bestimmten Kommandos konfigurieren und anpassen. Hierzu benötigen Sie verschiedene Arten von Kommandos:
6.1 Salt-spezifische Kommandos #
Mit diesen Kommandos können Sie Ceph-Cluster-Knoten bereitstellen, Kommandos auf mehreren (oder allen) Cluster-Knoten gleichzeitig ausführen oder auch Cluster-Knoten hinzufügen oder entfernen. Die am häufigsten verwendeten Kommandos sind ceph-salt
und ceph-salt config
. Salt-Kommandos müssen auf dem Salt-Master-Knoten als root
ausgeführt werden. Diese Kommandos werden in der folgenden Kommandozeile eingegeben:
root@master #
Beispiel:
root@master #
ceph-salt config ls
6.2 Ceph-spezifische Kommandos #
Hierbei handelt es sich um Kommandos auf niedrigerer Ebene, mit denen alle Aspekte des Clusters und seiner Gateways auf der Kommandozeile konfiguriert und feinabgestimmt werden, beispielsweise ceph
, cephadm
, rbd
oder radosgw-admin
.
Zum Ausführen von Ceph-spezifischen Kommandos benötigen Sie den Lesezugriff auf einen Ceph-Schlüssel. Die Capabilities des Schlüssels definieren dann Ihre Rechte in der Ceph-Umgebung. Sie können die Ceph-Kommandos als root
(oder über sudo
) ausführen und den uneingeschränkten Standard-Schlüsselbund „ceph.client.admin.key“ verwenden.
Als sicherere und empfohlene Alternative erstellen Sie je einen stärker eingeschränkten, individuellen Schlüssel für die einzelnen verwaltungsberechtigten Benutzer, den Sie dann in einem Verzeichnis ablegen, in dem die Benutzer ihn lesen können, beispielsweise:
~/.ceph/ceph.client.USERNAME.keyring
Sollen ein benutzerdefinierter verwaltungsberechtigter Benutzer und Schlüsselbund verwendet werden, müssen Sie den Benutzernamen und den Pfad des Schlüssels bei jeder Ausführung des Kommandos ceph
mit den Optionen -n client angeben.USER_NAME
und --keyring PATH/TO/KEYRING
angeben.
Um dies zu vermeiden, nehmen Sie diese Optionen in die Variable CEPH_ARGS
in den ~/.bashrc
-Dateien der einzelnen Benutzer auf.
Ceph-spezifische Kommandos können auf jedem Cluster-Knoten ausgeführt werden. Es wird jedoch empfohlen, sie ausschließlich auf dem Admin-Knoten auszuführen. In dieser Dokumentation werden die Kommandos mit dem Benutzer cephuser
ausgeführt. Die Kommandozeile lautet daher:
cephuser@adm >
Beispiel:
cephuser@adm >
ceph auth list
Wenn Sie laut Dokumentation ein Kommando für einen Cluster-Knoten mit einer bestimmten Rolle ausführen sollen, ist dies an der Bezeichnung der Kommandozeile ersichtlich. Beispiel:
cephuser@mon >
6.2.1 Ausführen von ceph-volume
#
Ab SUSE Enterprise Storage 7 werden Ceph-Services containerisiert ausgeführt. Wenn Sie ceph-volume
auf einem OSD-Knoten ausführen müssen, müssen Sie ihm das Kommando cephadm
voranstellen. Beispiel:
cephuser@adm >
cephadm ceph-volume simple scan
6.3 Allgemeine Linux-Kommandos #
Linux-Kommandos, die nicht Ceph-spezifisch sind, wie mount
, cat
oder openssl
, werden entweder mit der Kommandozeile cephuser@adm >
oder #
eingeführt. Dies hängt davon ab, welche Rechte für das entsprechende Kommando erforderlich sind.
6.4 Zusätzliche Informationen #
Weitere Informationen zur Ceph-Schlüsselverwaltung finden Sie in Book “Betriebs- und Verwaltungshandbuch”, Chapter 30 “Authentifizierung mit cephx
”, Section 30.2 “Schlüsselverwaltungsbereiche”.
Teil I Einführung zu SUSE Enterprise Storage (SES) #
- 1 SES und Ceph
SUSE Enterprise Storage ist ein dezentrales Speichersystem, das auf Skalierbarkeit, Zuverlässigkeit und Leistung ausgelegt ist und auf der Ceph-Technologie basiert. Ein Ceph-Cluster kann auf Standardservern in einem gemeinsamen Netzwerk wie Ethernet ausgeführt werden. Der Cluster lässt sich gut für …
- 2 Hardwareanforderungen und Empfehlungen
Die Hardwareanforderungen für Ceph hängen stark vom E/A-Workload ab. Die folgenden Hardwareanforderungen und Empfehlungen sollten als Ausgangspunkt für die detaillierte Planung betrachtet werden.
- 3 Einrichten des Hochverfügbarkeits-Clusters für den Admin-Knoten
Der Admin-Knoten ist ein Ceph-Cluster-Knoten, in dem der Salt-Master-Service ausgeführt wird. Er verwaltet die restlichen Cluster-Knoten, indem er deren Salt-Minion-Services abfragt und anweist. Er enthält normalerweise auch andere Services, beispielsweise das Grafana Dashboard, das vom Prometheus-Ü…
1 SES und Ceph #
SUSE Enterprise Storage ist ein dezentrales Speichersystem, das auf Skalierbarkeit, Zuverlässigkeit und Leistung ausgelegt ist und auf der Ceph-Technologie basiert. Ein Ceph-Cluster kann auf Standardservern in einem gemeinsamen Netzwerk wie Ethernet ausgeführt werden. Der Cluster lässt sich gut für Tausende von Servern (im Folgenden als Knoten bezeichnet) und im Petabyte-Bereich skalieren. Im Gegensatz zu herkömmlichen Systemen, die Daten über Zuordnungstabellen speichern und abrufen, verwendet Ceph einen deterministischen Algorithmus zum Zuordnen von Speicher für Daten und hat keine zentralisierte Informationsstruktur. Ceph geht davon aus, dass in Speicher-Clustern das Hinzufügen oder Entfernen von Hardware die Regel ist und nicht die Ausnahme. Der Ceph-Cluster automatisiert Verwaltungsaufgaben wie Datenverteilung und -neuverteilung, Datenreproduktion, Ausfallerkennung und Wiederherstellung. Ceph kann sich selbst reparieren und selbst verwalten, was den Verwaltungsaufwand und die Gemeinkosten reduziert.
In diesem Kapitel erhalten Sie einen ersten Überblick über SUSE Enterprise Storage 7.1 und eine kurze Beschreibung der wichtigsten Komponenten.
1.1 Eigenschaften von Ceph #
Die Ceph-Umgebung weist die folgenden Eigenschaften auf:
- Skalierbarkeit
Ceph ermöglicht das Skalieren auf Tausende von Knoten und kann Speicher im Petabyte-Bereich verwalten.
- Kommerzielle Hardware
Zum Ausführen eines Ceph-Clusters ist keine spezielle Hardware erforderlich. Ausführliche Informationen finden Sie unter Kapitel 2, Hardwareanforderungen und Empfehlungen
- Selbstverwaltung
Der Ceph-Cluster verwaltet sich selbst. Wenn Knoten hinzugefügt oder entfernt werden oder ausfallen, verteilt der Cluster die Daten automatisch um. Er erkennt auch überlastete Festplatten.
- Keine Single Points of Failure
Kein Knoten im Cluster speichert wichtige Informationen exklusiv. Die Anzahl der Redundanzen kann konfiguriert werden.
- Open-Source-Software
Ceph ist eine Open-Source-Softwarelösung und unabhängig von spezifischer Hardware oder Anbietern.
1.2 Wichtigste Ceph-Komponenten #
Zur vollen Nutzung aller Funktionen in Ceph ist es erforderlich, einige Basiskomponenten und Konzepte zu verstehen. In diesem Abschnitt werden einige Komponenten von Ceph eingeführt, auf die oft in anderen Kapiteln verwiesen wird.
1.2.1 RADOS #
Die Basiskomponente von Ceph wird RADOS (Reliable Autonomic Distributed Object Store, Zuverlässiger autonomer dezentraler Objektspeicher) genannt. Sie ist für die Verwaltung der im Cluster gespeicherten Daten zuständig. Daten werden in Ceph normalerweise als Objekte gespeichert. Jedes Objekt besteht aus einer Kennung und den Daten.
RADOS bietet die folgenden Methoden für den Zugriff auf gespeicherte Objekte, die viele Anwendungsfälle abdecken:
- Object Gateway
Ein Object Gateway ist ein HTTP REST Gateway für den RADOS-Objektspeicher. Es ermöglicht den Direktzugriff auf Objekte, die im Ceph-Cluster gespeichert sind.
- RADOS-Blockgerät
Der Zugriff auf ein RADOS-Blockgerät (RADOS Block Device, RBD) erfolgt genauso wie der auf andere Blockgeräte. Sie werden beispielsweise für Virtualisierungszwecke in Kombination mit
libvirt
verwendet.- CephFS
Das Ceph File System (CephFS) ist ein POSIX-fähiges Dateisystem.
librados
librados
ist eine Bibliothek, die mit vielen Programmiersprachen verwendet werden kann, um eine Anwendung zu erstellen, die direkt mit dem Speicher-Cluster interagiert.
librados
wird vom Object Gateway und RBD verwendet, während CephFS direkt mit RADOS (Abbildung 1.1, „Schnittstellen zum Ceph-Objektspeicher“) interagiert.
1.2.2 CRUSH #
Der CRUSH-Algorithmus ist das zentrale Element eines Ceph-Clusters. CRUSH ist das Akronym für Controlled Replication Under Scalable Hashing. CRUSH ist eine Funktion für die Speicherzuordnung und benötigt vergleichsweise wenig Parameter. Es sind also nur wenige Informationen erforderlich, um die Speicherposition eines Objekts zu berechnen. Die Parameter stellen eine aktuelle Zuordnung für den Cluster dar, einschließlich Integrität, einiger vom Administrator definierter Platzierungsregeln und des Namens des Objekts, das gespeichert oder abgerufen werden muss. Mit diesen Informationen können alle Knoten im Ceph-Cluster berechnen, wo ein Objekt und dessen Reproduktionen gespeichert sind. Dies macht das Schreiben und Lesen von Daten sehr effizient. CRUSH versucht, Daten gleichmäßig auf alle Knoten im Cluster zu verteilen.
Die CRUSH-Zuordnung umfasst alle Speicherknoten und vom Administrator definierte Platzierungsregeln zum Speichern von Objekten im Cluster. Sie definiert eine hierarchische Struktur, die normalerweise mit der physischen Struktur des Clusters korrespondiert. Beispielsweise befinden sich Festplatten mit Daten in Hosts, Hosts in Racks, Racks in Reihen und Reihen in Rechenzentren. Diese Struktur wird zur Definition von Fehlerdomänen herangezogen. Ceph stellt dann sicher, dass Reproduktionen in verschiedenen Verzweigungen einer bestimmten Fehlerdomäne gespeichert werden.
Wenn die Fehlerdomäne auf „Rack“ festgelegt ist, werden Reproduktionen von Objekten auf verschiedene Racks verteilt. Dadurch werden Ausfälle entschärft, die durch einen fehlerhaften Schalter in einem Rack verursacht wurden. Wenn eine Stromversorgungseinheit eine Reihe von Racks bereitstellt, kann die Fehlerdomäne auf „Reihe“ festgelegt werden. Wenn die Stromversorgungseinheit ausfällt, sind die Reproduktionsdaten noch in anderen Reihen verfügbar.
1.2.3 Ceph-Knoten und -Daemons #
In Ceph sind Knoten Server, die für den Cluster arbeiten. Sie können verschiedene Typen von Daemons ausführen. Es wird empfohlen, nur einen Typ von Daemon pro Knoten auszuführen, ausgenommen Ceph Manager Daemons, die sich gemeinsam mit Ceph Monitors auf einem Knoten befinden können. Für jeden Client sind mindestens Ceph Monitor, Ceph Manager und Ceph OSD Daemons erforderlich:
- Admin-Knoten
Der Admin-Knoten ist ein Ceph-Cluster-Knoten, von dem aus Sie Befehle zur Verwaltung des Clusters ausführen. Der Admin-Knoten ist das Zentrum des Ceph-Clusters, weil er alle anderen Cluster-Knoten verwaltet, indem er deren Salt Minion Services abfragt und ihnen Anweisungen gibt.
- Ceph Monitor
Ceph-Monitor-Knoten (oft zu MON abgekürzt) pflegen Informationen zur Cluster-Integrität, eine Zuordnung aller Knoten und Datenverteilungsregeln (weitere Informationen hierzu finden Sie in Abschnitt 1.2.2, „CRUSH“).
Wenn Fehler oder Konflikte auftreten, entscheiden die Ceph-Monitor-Knoten im Cluster nach dem Mehrheitsprinzip, welche Informationen korrekt sind. Um eine qualifizierte Mehrheit zu bilden, empfiehlt es sich, eine ungerade Anzahl von Ceph-Monitor-Knoten einzurichten, jedoch mindestens drei davon.
Bei mehreren Standorten sollten die Ceph-Monitor-Knoten auf eine ungerade Anzahl von Standorten verteilt werden. Die Anzahl der Ceph-Monitor-Knoten pro Standort sollte so gewählt werden, dass die Hälfte der Ceph-Monitor-Knoten funktionsfähig bleiben, wenn ein Standort ausfällt.
- Ceph Manager
Der Ceph Manager sammelt die Statusinformationen aus dem gesamten Cluster. Der Ceph-Manager-Daemon wird neben den Ceph-Monitor-Daemons ausgeführt. Er bietet zusätzliche Überwachung und dient als Schnittstelle zwischen der externen Überwachung und den Verwaltungssystemen. Er umfasst auch andere Services. Beispielsweise wird die Weboberfläche des Ceph Dashboards auf demselben Knoten wie der Ceph Manager ausgeführt.
Der Ceph Manager muss nicht weiter konfiguriert werden. Sie müssen nur sicherstellen, dass er ausgeführt wird.
- Ceph OSD
Ein Ceph OSD ist ein Daemon, der Objektspeichergeräte steuert. Dabei handelt es sich um physische oder logische Speichereinheiten (Festplatten oder Partitionen). Objektspeichergeräte können physische Datenträger/Partitionen oder logische Volumes sein. Der Daemon kümmert sich außerdem um die Datenreproduktion und den Ausgleich, falls Knoten hinzugefügt oder entfernt wurden.
Ceph OSD Daemons kommunizieren mit Monitor Daemons und informieren diese über den Zustand der anderen OSD Daemons.
Für CephFS, Object Gateway, NFS Ganesha oder iSCSI Gateway sind zusätzliche Knoten erforderlich:
- Metadata Server (MDS)
CephFS-Metadaten werden in einem eigenen RADOS-Pool gespeichert (weitere Informationen finden Sie unter Abschnitt 1.3.1, „Pools“). Die Metadatenserver fungieren als intelligente Caching-Schicht für die Metadaten und serialisieren den Zugriff bei Bedarf. Dies ermöglicht den gleichzeitigen Zugriff von vielen Clients ohne explizite Synchronisierung.
- Object Gateway
Das Object Gateway ist ein HTTP-REST-Gateway für den RADOS-Objektspeicher. Es ist mit OpenStack Swift und Amazon S3 kompatibel und verfügt über eine eigene Benutzerverwaltung.
- NFS Ganesha
NFS Ganesha bietet NFS-Zugriff auf das Object Gateway oder auf das CephFS. Es wird im Benutzerbereich statt im Kernel-Bereich ausgeführt und interagiert direkt mit dem Object Gateway oder dem CephFS.
- iSCSI Gateway
iSCSI ist ein Speichernetzwerkprotokoll, über das Clients SCSI-Kommandos an SCSI-Speichergeräte (Targets) auf Remote Servern senden können.
- Samba Gateway
Das Samba Gateway bietet Samba-Zugriff auf die Daten, die auf CephFS gespeichert sind.
1.3 Ceph-Speicherstruktur #
1.3.1 Pools #
In einem Ceph-Cluster gespeicherte Objekte werden in Pools abgelegt. Pools stellen logische Partitionen des Clusters zur Außenwelt dar. Für jeden Pool kann ein Regelsatz definiert werden, beispielsweise wie viele Reproduktionen eines jeden Objekts vorhanden sein müssen. Die Standardkonfiguration von Pools wird als reproduzierter Pool bezeichnet.
Pools enthalten normalerweise Objekte, können jedoch auch so konfiguriert werden, dass sie wie ein RAID 5 funktionieren. In dieser Konfiguration werden Objekte in Datenblöcken zusammen mit zusätzlichen Codierungs-Datenblöcken gespeichert. Die Codierungs-Datenblöcke enthalten die redundanten Informationen. Die Anzahl der Daten und Codierungs-Datenblöcke werden vom Administrator definiert. In dieser Konfiguration werden Pools als Pools mit Löschcodierung oder EC-Pools (Erasure Coded Pools, EC) bezeichnet.
1.3.2 Platzierungsgruppen #
Placement Groups (PGs) dienen zur Verteilung von Daten in einem Pool. Beim Erstellen eines Pools wird eine bestimmte Anzahl von Placement Groups festgelegt. Die Placement Groups werden intern zur Gruppierung von Objekten verwendet. Sie sind ein wichtiger Faktor für die Leistung eines Ceph-Clusters. Die PG für ein Objekt wird durch den Namen des Objekts bestimmt.
1.3.3 Beispiel #
In diesem Abschnitt finden Sie ein vereinfachtes Beispiel dafür, wie Ceph Daten verwaltet (Abbildung 1.2, „Beispiel eines kleinen Ceph-Speichers“). Dieses Beispiel stellt keine empfohlene Konfiguration für einen Ceph-Cluster dar. Die Hardwareeinrichtung umfasst drei Speicher-Knoten oder Ceph OSDs (Host 1
, Host 2
, Host 3
). Jeder Knoten hat drei Festplatten, die als OSDs (osd.1
bis osd.9
) verwendet werden. In diesem Beispiel sind keine Ceph-Monitor-Knoten berücksichtigt.
Die Begriffe Ceph OSD oder Ceph OSD Daemon beziehen sich auf einen Daemon, der auf einem Knoten ausgeführt wird. Der Begriff OSD dagegen bezieht sich auf einen logischen Datenträger, mit dem der Daemon interagiert.
Der Cluster umfasst zwei Pools, Pool A
und Pool B
. Während Pool A Objekte nur zweimal reproduziert, ist Ausfallsicherheit für Pool B wichtiger und es gibt daher drei Reproduktionen für jedes Objekt.
Wenn eine Anwendung ein Objekt in einen Pool stellt, beispielsweise über die REST API, dann wird eine Placement Group (PG1
bis PG4
) auf Basis des Pools und des Objektnamens ausgewählt. Der CRUSH-Algorithmus berechnet dann, auf welchen OSDs das Objekt gespeichert ist, basierend auf der Placement Group, die das Objekt enthält.
In diesem Beispiel ist die Fehlerdomäne auf Host festgelegt. Dadurch wird sichergestellt, dass die Reproduktionen von Objekten auf verschiedenen Hosts gespeichert sind. Je nach der für einen Pool festgelegten Reproduktionsstufe wird das Objekt auf zwei oder drei OSDs gespeichert, die von der Placement Group verwendet werden.
Eine Anwendung, die ein Objekt schreibt, interagiert nur mit einem Ceph OSD, nämlich dem primären Ceph OSD. Der primäre Ceph OSD führt die Reproduktion aus und bestätigt die Durchführung des Schreibvorgangs, nachdem alle anderen OSDs das Objekt gespeichert haben.
Wenn osd.5
ausfällt, sind alle Objekte in PG1
immer noch auf osd.1
verfügbar. Sobald der Cluster feststellt, dass ein OSD ausgefallen ist, übernimmt ein anderer OSD. In diesem Beispiel wird osd.4
als Ersatz für osd.5
verwendet. Die auf osd.1
gespeicherten Objekte werden dann auf osd.4
reproduziert, um die Reproduktionsstufe wiederherzustellen.
Die Cluster-Zuordnung ändert sich, wenn ein neuer Knoten mit neuen OSDs zum Cluster hinzugefügt wird. Die CRUSH-Funktion gibt dann verschiedene Standorte für Objekte zurück. Objekte, die neue Standorte erhalten, werden verschoben. Durch diesen Vorgang bleiben alle OSDs gleichmäßig ausgelastet.
1.4 BlueStore #
BlueStore ist seit SES 5 ein neues standardmäßiges Speicher-Back-End für Ceph. Seine Leistung ist besser als die von FileStore. Es umfasst vollständige Prüfsummenerstellung für Daten und weist eine integrierte Komprimierung auf.
BlueStore verwaltet ein, zwei oder drei Speichergeräte. Im einfachsten Fall lastet BlueStore ein einzelnes primäres Speichergerät aus. Das Speichergerät ist normalerweise in zwei Abschnitte partitioniert:
Eine kleine Partition namens BlueFS, die Dateisystem-ähnliche Funktionalitäten implementiert, die von RocksDB benötigt werden.
Eine große Partition belegt normalerweise das restliche Gerät. Sie wird direkt von BlueStore verwaltet und enthält alle Ist-Daten. Dieses primäre Gerät ist normalerweise durch eine Blocksymbolverknüpfung im Datenverzeichnis gekennzeichnet.
BlueStore kann auch auf zwei weiteren Geräten bereitgestellt werden:
Ein WAL-Gerät, das für das interne Journal oder Write Ahead-Protokoll von BlueStore verwendet wird. Es ist durch den symbolischen Link block.wal
im Datenverzeichnis gekennzeichnet. Ein separates WAL-Gerät ist nur sinnvoll, wenn das Gerät schneller als das primäre Gerät oder das DB-Gerät ist. Beispiel:
Das WAL-Gerät ist ein NVMe, das DB-Gerät ist ein SSD und das Datengerät ist entweder ein SSD oder HDD.
Das WAL-Gerät und das DB-Gerät sind separate SSDs. Das Datengerät ist ein SSD oder HDD.
Ein DB-Gerät kann zum Speichern der internen Metadaten von BlueStore verwendet werden. BlueStore (eigentlich die eingebettete RocksDB) legt zur Leistungsoptimierung so viele Metadaten wie möglich auf dem DB-Gerät ab. Auch hier ist die Bereitstellung eines gemeinsam genutzten DB-Geräts nur sinnvoll, wenn es schneller ist als das primäre Gerät.
Planen Sie sorgfältig eine ausreichende Größe für das DB-Gerät. Wenn das DB-Gerät voll ist, laufen die Metadaten an das primäre Gerät über, was die Leistung des OSD extrem beeinträchtigt.
Mit dem Kommando ceph daemon osd.ID perf dump
können Sie prüfen, ob eine WAL/DB-Partition voll wird und überläuft. Der Wert slow_used_bytes
gibt die Anzahl der Daten an, die überlaufen:
cephuser@adm >
ceph daemon osd.ID perf dump | jq '.bluefs'
"db_total_bytes": 1073741824,
"db_used_bytes": 33554432,
"wal_total_bytes": 0,
"wal_used_bytes": 0,
"slow_total_bytes": 554432,
"slow_used_bytes": 554432,
1.5 Zusätzliche Informationen #
Ceph hat als Community-Projekt eine eigene Online-Dokumentation. Weitere Informationen zu Themen, die in diesem Handbuch nicht behandelt werden, finden Sie unter https://docs.ceph.com/en/pacific/.
In der ursprünglichen Veröffentlichung mit dem Titel CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data von S.A. Weil, S.A. Brandt, E.L. Miller, C. Maltzahn finden Sie nützliche Informationen zu den inneren Abläufen in Ceph. Die Lektüre empfiehlt sich vor allem für die Bereitstellung von Clustern mit großem Volumen. Sie finden die Veröffentlichung unter http://www.ssrc.ucsc.edu/papers/weil-sc06.pdf
SUSE Enterprise Storage kann zusammen mit OpenStack-Distributionen anderer Hersteller verwendet werden. Die Ceph-Clients müssen sich auf einer Ebene befinden, die mit SUSE Enterprise Storage kompatibel sind.
AnmerkungSUSE unterstützt die Serverkomponente der Ceph-Bereitstellung, der Client wird vom Anbieter der OpenStack-Distribution unterstützt.
2 Hardwareanforderungen und Empfehlungen #
Die Hardwareanforderungen für Ceph hängen stark vom E/A-Workload ab. Die folgenden Hardwareanforderungen und Empfehlungen sollten als Ausgangspunkt für die detaillierte Planung betrachtet werden.
Im Allgemeinen sind die Empfehlungen in diesem Abschnitt auf jeweils einen Prozess ausgelegt. Wenn auf dem selben Rechner mehrere Prozesse ablaufen, müssen die CPU-, RAM-, Festplatten- und Netzwerkanforderungen entsprechend erhöht werden.
2.1 Netzwerke im Überblick #
Ceph verfügt über einige logische Netzwerke:
Ein Frontend-Netzwerk namens
öffentliches Netzwerk
.Ein vertrauenswürdiges internes Netzwerk, das Back-End-Netzwerk, namens
Clusternetzwerk
. Diese Einstellung ist optional.Ein oder mehrere Client-Netzwerke für Gateways. Dies ist optional und würde den Rahmen dieses Kapitels sprengen.
Das öffentliche Netzwerk ist das Netzwerk, über das Ceph-Daemons untereinander und mit ihren Clients kommunizieren. Das bedeutet, dass der gesamte Datenverkehr des Ceph-Clusters über dieses Netzwerk läuft, es sei denn, es ist ein Clusternetzwerk konfiguriert.
Das Clusternetzwerk ist das Back-End-Netzwerk zwischen den OSD-Knoten für Reproduktion, Ausgleich und Wiederherstellung. Ist dieses optionale Netzwerk konfiguriert, würde es im Idealfall die doppelte Bandbreite des öffentlichen Netzwerks mit standardmäßiger Drei-Wege-Reproduktion bieten, da das primäre OSD zwei Kopien an andere OSDs über dieses Netzwerk sendet. Das öffentliche Netzwerk befindet sich zwischen Clients und Gateways auf der einen Seite für die Kommunikation mit Monitoren, Managern, MDS-Knoten und OSD-Knoten. Monitore, Manager und MDS-Knoten nutzen es auch für die Kommunikation mit OSD-Knoten.
2.1.1 Netzwerkempfehlungen #
Wir empfehlen ein einzelnes fehlertolerantes Netzwerk mit ausreichender Bandbreite für Ihre Anforderungen. Für die öffentliche Ceph-Netzwerkumgebung empfehlen wir zwei verbundene 25-GbE-Netzwerkschnittstellen (oder schneller), die über 802.3ad (LACP) verbunden sind. Dies wird als die Mindesteinrichtung für Ceph betrachtet. Wenn Sie zusätzlich ein Clusternetzwerk verwenden, empfehlen wir vier verbundene 25-GbE-Netzwerkschnittstellen. Durch Verbinden von zwei oder mehr Netzwerkschnittstellen verbessern sich der Durchsatz durch Link-Aggregation und, bei redundanten Links und Switches, die Fehlertoleranz und Wartbarkeit.
Sie können auch VLANs erstellen, um verschiedene Arten von Datenverkehr über eine Verbindung zu isolieren. Sie können beispielsweise eine Verbindung erstellen, um zwei VLAN-Schnittstellen bereitzustellen, eine für das öffentliche Netzwerk und die zweite für das Clusternetzwerk. Beim Einrichten des Ceph-Netzwerks ist dies jedoch nicht erforderlich. Details zum Verbinden von Schnittstellen finden Sie unter https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-network.html#sec-network-iface-bonding.
Die Fehlertoleranz kann durch Isolierung der Komponenten in Fehlerdomänen erhöht werden. Zur Erhöhung der Fehlertoleranz des Netzwerks wird durch Verbinden einer Schnittstelle von zwei separaten Netzwerkschnittstellenkarten (NIC) Schutz vor dem Ausfall einer einzelnen NIC erreicht. In ähnlicher Weise schützt das Erstellen einer Verbindung zwischen zwei Switches vor dem Ausfall eines Switches. Wir empfehlen, den Hersteller der Netzwerkgeräte zu konsultieren, um den erforderlichen Grad an Fehlertoleranz zu ermitteln.
Die Einrichtung eines zusätzlichen Verwaltungsnetzwerks, das zum Beispiel die Trennung von SSH-, Salt- oder DNS-Netzwerken ermöglicht, wurde weder getestet, noch wird sie unterstützt.
Wenn Ihre Speicherknoten über DHCP konfiguriert werden, reichen die standardmäßigen Zeitüberschreitungen möglicherweise nicht für eine korrekte Konfiguration des Netzwerks aus, bevor die Ceph Daemons starten. Wenn dies geschieht, werden die Ceph-MONs und -OSDs nicht korrekt gestartet (das Ausführen von systemctl status ceph\*
führt zur Fehlermeldung „unable to bind“ (Verbinden nicht möglich)). Zur Vermeidung dieses Problems empfehlen wir, die DHCP-Client-Zeitüberschreitung auf jedem Knoten in Ihrem Speichercluster auf mindestens 30 Sekunden zu erhöhen. Dies wird erreicht durch Ändern der folgenden Einstellungen in jedem Knoten:
Legen Sie in /etc/sysconfig/network/dhcp
Folgendes fest:
DHCLIENT_WAIT_AT_BOOT="30"
Legen Sie in /etc/sysconfig/network/config
Folgendes fest:
WAIT_FOR_INTERFACES="60"
2.1.1.1 Hinzufügen eines privaten Netzwerks zu einem aktiven Cluster #
Wenn Sie bei der Ceph-Bereitstellung kein Cluster-Netzwerk angeben, dann wird eine einzelne öffentliche Netzwerkumgebung angenommen. Auch wenn Ceph in einem öffentlichen Netzwerk gut funktioniert, wird seine Leistung und Sicherheit durch Festlegen eines zweiten privaten Cluster-Netzwerks erhöht. Zur Unterstützung von zwei Netzwerken muss jeder Ceph-Knoten über mindestens zwei Netzwerkkarten verfügen.
Sie müssen auf jeden Ceph-Knoten die folgenden Änderungen anwenden. Bei einem kleinen Cluster ist dies relativ schnell erledigt, doch bei einem Cluster mit Hunderten oder Tausenden Knoten kann dieser Vorgang sehr zeitaufwändig sein.
Legen Sie das Clusternetzwerk mit folgendem Kommando fest:
#
ceph config set global cluster_network MY_NETWORKStarten Sie die OSDs neu, um das angegebene Clusternetzwerk zu binden:
#
systemctl restart ceph-*@osd.*.serviceÜberprüfen Sie, ob das private Cluster-Netzwerk auf Betriebssystemebene wie erwartet funktioniert.
2.1.1.2 Überwachungsknoten in verschiedenen Teilnetzen #
Wenn sich die Überwachungsknoten in mehreren Teilnetzen befinden, beispielsweise in verschiedenen Räumen und gesteuert durch verschiedene Schalter, dann müssen Sie ihre öffentliche Netzwerkadresse in der CIDR-Schreibweise entsprechend anpassen:
cephuser@adm >
ceph config set mon public_network "MON_NETWORK_1, MON_NETWORK_2, MON_NETWORK_N
Beispiel:
cephuser@adm >
ceph config set mon public_network "192.168.1.0/24, 10.10.0.0/16"
Wenn Sie, wie in diesem Abschnitt beschrieben, mehr als ein Netzwerksegment für das öffentliche Netzwerk (oder für das Clusternetzwerk) angeben, muss jedes dieser Teilnetze zur Weiterleitung zu den anderen Teilnetzen in der Lage sein. Andernfalls können die MONs und andere Ceph-Daemons auf verschiedenen Netzwerksegmenten nicht miteinander kommunizieren, was zu einem geteilten Cluster führen würde. Wenn Sie eine Firewall verwenden, stellen Sie außerdem sicher, dass Sie jede IP-Adresse oder jedes Teilnetz in Ihre iptables einbeziehen und Ports für sie auf allen Knoten öffnen, falls erforderlich.
2.2 Konfigurationen mit mehreren Architekturen #
SUSE Enterprise Storage unterstützt sowohl x86- als auch Arm-Architekturen. Bei der Erwägung der einzelnen Architekturen ist zu beachten, dass es bei den Cores pro OSD, der Frequenz und dem RAM keine gravierenden Unterschiede zwischen den CPU-Architekturen gibt, die sich auf die Größenfestlegung auswirken würden.
Wie bei kleineren x86-Prozessoren (keine Server) bieten weniger leistungsstarke Arm-basierte Cores unter Umständen keine optimalen Arbeitsbedingungen, insbesondere wenn sie für Pools mit Löschcodierung eingesetzt werden.
In der gesamten Dokumentation wird SYSTEM-ARCH anstelle von x86 oder Arm verwendet.
2.3 Hardwarekonfiguration #
Für eine optimale Produkterfahrung empfehlen wir, mit der empfohlenen Cluster-Konfiguration zu beginnen. Für einen Testcluster oder einen Cluster mit geringeren Leistungsanforderungen dokumentieren wir eine minimal unterstützte Cluster-Konfiguration.
2.3.1 Mindestkonfiguration für den Cluster #
Eine Mindestkonfiguration für den Produktcluster besteht aus:
Mindestens vier physikalischen Knoten (OSD-Knoten) mit gemeinsamem Speicherort der Services
Dual-10-Gbit-Ethernet als verbundenes Netzwerk
Einem separaten Admin-Knoten (kann auf einem externen Knoten virtualisiert werden)
Eine detaillierte Konfiguration besteht aus folgenden Komponenten:
Separater Verwaltungsknoten mit 4 GB RAM, vier Cores, 1 TB Kapazität. Dies ist in der Regel der Salt-Master-Knoten. Ceph-Services und -Gateways wie Ceph Monitor, Metadata Server, Ceph OSD, Object Gateway oder NFS Ganesha werden auf dem Admin-Knoten nicht unterstützt, da er die Clusteraktualisierungs- und Upgrade-Prozesse eigenständig orchestrieren muss.
Mindestens vier physische OSD-Knoten mit jeweils acht OSD-Datenträgern. Die Anforderungen finden Sie in Abschnitt 2.4.1, „Mindestanforderungen“.
Die Gesamtkapazität des Clusters sollte so bemessen sein, dass auch bei Ausfall eines Knotens die gesamte genutzte Kapazität (einschließlich Redundanz) 80 % nicht überschreitet.
Drei Ceph Monitor-Instanzen. Monitore müssen aus Latenzgründen von SSD/NVMe-Speicher, nicht von HDDs, betrieben werden.
Monitore, Metadatenserver und Gateways können gemeinsam auf den OSD-Knoten platziert werden. Informationen über die gemeinsame Platzierung finden Sie in Abschnitt 2.12, „Ein einziger Server für OSD und Monitor“. Wenn Sie Services gemeinsam platzieren, müssen die Speicher- und CPU-Anforderungen addiert werden.
iSCSI Gateway, Object Gateway und Metadata Server benötigen mindestens inkrementelle 4 GB RAM und vier Cores.
Wenn Sie CephFS, S3/Swift, iSCSI verwenden, sind für Redundanz und Verfügbarkeit mindestens zwei Instanzen der jeweiligen Rollen (Metadata Server, Object Gateway, iSCSI) erforderlich.
Die Knoten müssen für SUSE Enterprise Storage bestimmt sein und dürfen nicht für andere physische, containerisierte oder virtualisierte Workloads verwendet werden.
Wenn eines der Gateways (iSCSI, Object Gateway, NFS Ganesha, Metadata Server usw.) innerhalb von VMs bereitgestellt wird, dürfen diese VMs nicht auf den physischen Rechnern gehostet werden, die andere Clusterrollen bedienen. (Dies ist nicht notwendig, da sie als verbundene Services unterstützt werden.)
Bei der Bereitstellung von Services als VMs auf Hypervisoren außerhalb des physischen Core-Clusters müssen Ausfalldomänen beachtet werden, um Redundanz zu gewährleisten.
Stellen Sie zum Beispiel nicht mehrere Rollen desselben Typs auf demselben Hypervisor bereit, beispielsweise mehrere MON- oder MDS-Instanzen.
Bei der Bereitstellung innerhalb von VMs ist es besonders wichtig, dass die Knoten über eine starke Netzwerkanbindung und eine gut funktionierende Zeitsynchronisierung verfügen.
Die Hypervisorknoten müssen ausreichend dimensioniert sein, um Störungen durch andere Workloads zu vermeiden, die CPU-, RAM-, Netzwerk- und Speicherressourcen verbrauchen.
2.3.2 Empfohlene Konfiguration für Produktionscluster #
Sobald Sie Ihren Cluster vergrößern, empfehlen wir, Ceph Monitors, Metadatenserver und Gateways auf separate Knoten zu verlagern, um eine bessere Fehlertoleranz zu erreichen.
Sieben Objektspeicher-Knoten
Die einzelnen Knoten dürfen nicht mehr als ca. 15 % des Gesamtspeichers ausmachen.
Die Gesamtkapazität des Clusters sollte so bemessen sein, dass auch bei Ausfall eines Knotens die gesamte genutzte Kapazität (einschließlich Redundanz) 80 % nicht überschreitet.
25 Gb Ethernet oder besser, jeweils verbunden für internes Clusternetzwerk und externes öffentliches Netzwerk.
Mindestens 56 OSDs pro Speicher-Cluster.
In Abschnitt 2.4.1, „Mindestanforderungen“ finden Sie weitere Empfehlungen.
Dedizierte physische Infrastruktur-Knoten.
Drei Ceph-Monitor-Knoten: 4 GB RAM, 4-Core-Prozessor, RAID 1-SSDs als Festplatte.
In Abschnitt 2.5, „Monitorknoten“ finden Sie weitere Empfehlungen.
Object Gateway Knoten: 32 GB RAM, 8-Core-Prozessor, RAID 1-SSDs als Festplatte.
In Abschnitt 2.6, „Object-Gateway-Knoten“ finden Sie weitere Empfehlungen.
iSCSI Gateway Knoten: 16 GB RAM, 8-Core-Prozessor, RAID 1-SSDs als Festplatte.
In Abschnitt 2.9, „iSCSI-Gateway-Knoten“ finden Sie weitere Empfehlungen.
Metadata Server Knoten (einer aktiv, einer unmittelbar betriebsbereit im Standby-Modus): 32 GB RAM, 8-Core-Prozessor, RAID 1-SSDs als Festplatte.
In Abschnitt 2.7, „Metadata Server-Knoten“ finden Sie weitere Empfehlungen.
Ein SES-Admin-Knoten: 4 GB RAM, 4-Core-Prozessor, RAID 1-SSDs als Datenträger.
2.3.3 Multipfadkonfiguration #
Wenn Sie Multipfadhardware verwenden möchten, stellen Sie sicher, dass LVM in der Konfigurationsdatei unter dem Abschnitt Geräte
die Einstellung multipath_component_detection = 1
sieht. Dies wird mit dem Kommando lvm config
geprüft.
Stellen Sie alternativ sicher, dass LVM die Multipfadkomponenten eines Geräts über die LVM-Filterkonfiguration filtert. Das ist hostspezifisch zu verstehen.
Es wird nicht empfohlen und sollte immer nur dann in Betracht gezogen werden, wenn multipath_component_detection = 1
nicht festgelegt werden kann.
Weitere Informationen zur Multipfadkonfiguration finden Sie unter https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-multipath.html#sec-multipath-lvm.
2.4 Objektspeicherknoten #
2.4.1 Mindestanforderungen #
Die folgenden CPU-Empfehlungen berücksichtigen Geräte unabhängig von der Nutzung durch Ceph:
Ein 2-GHz-CPU-Thread pro rotierendem Datenträger.
Zwei 2-GHz-CPU-Threads pro SSD.
Vier 2-GHz-CPU-Threads pro NVMe.
Separate 10-GbE-Netzwerke (öffentlich, Client und intern), erforderlich 4 × 10 GbE, empfohlen 2 × 25 GbE.
Insgesamt benötigtes RAM = Anzahl der OSDs × (1 GB +
osd_memory_target
) + 16 GBWeitere Informationen zu
osd_memory_target
finden Sie in Book “Betriebs- und Verwaltungshandbuch”, Chapter 28 “Konfiguration des Ceph-Clusters”, Section 28.4.1 “Konfigurieren der automatischen Cache-Größe”.OSD-Datenträger in JBOD-Konfigurationen oder individuelle RAID-0-Konfigurationen.
OSD-Journal darf sich auf der OSD-Festplatte befinden.
OSD-Festplatten sollten exklusiv von SUSE Enterprise Storage verwendet werden.
Dedizierter Datenträger und SSD für das Betriebssystem, vorzugsweise in einer RAID 1-Konfiguration.
Weisen Sie mindestens 4 GB zusätzlichen Arbeitsspeicher zu, wenn dieser OSD-Host einen Teil eines Cache-Pools hostet, der für Cache-Tiering verwendet wird.
Ceph Monitors, Gateway und Metadata Server dürfen in Objektspeicher-Knoten vorhanden sein.
Aus Gründen der Festplattenleistung handelt es sich bei OSD-Knoten um Bare-Metal-Knoten. Auf einem OSD-Knoten sollten keine anderen Workloads ausgeführt werden, es sei denn, es handelt sich um eine Mindesteinrichtung von Ceph Monitors und Ceph Managers.
SSDs für Journal im Verhältnis 6:1 von SSD-Journal zu OSD.
Stellen Sie sicher, dass den OSD-Knoten keine vernetzten Blockgeräte zugeordnet sind, wie zum Beispiel iSCSI- oder RADOS-Blockgeräte-Images.
2.4.2 Mindestgröße für Datenträger #
Zwei Arten von Datenträgerspeicherplatz werden zur Ausführung auf OSD benötigt: der Speicherplatz für das WAL/DB-Gerät sowie der primäre Speicherplatz für die gespeicherten Daten. Der Mindestwert (und Standardwert) für das WAL/DB beträgt 6 GB. Der Mindestspeicherplatz für Daten beträgt 5 GB, da Partitionen, die kleiner als 5 GB sind, das Gewicht 0 zugewiesen wird.
Auch wenn nun der Mindestspeicherplatz für ein OSD 11 GB beträgt, empfehlen wir mindestens 20 GB pro Festplatte, sogar für Testzwecke.
2.4.3 Empfohlene Größe für das WAL- und DB-Gerät von BlueStore #
Weitere Informationen zu BlueStore finden Sie in Abschnitt 1.4, „BlueStore“.
Es wird empfohlen, 4 GB für das WAL-Gerät zu reservieren. Während die DB-Mindestgröße 64 GB für reine RBD-Workloads beträgt, wird für Object Gateway- und CephFS-Workloads eine DB-Größe empfohlen, die 2 % der Kapazität des Hauptgeräts (mindestens jedoch 196 GB) entspricht.
WichtigWir empfehlen größere DB-Volumes für Bereitstellungen mit hoher Auslastung, insbesondere bei hoher RGW- oder CephFS-Nutzung. Reservieren Sie etwas Kapazität (Slots), um bei Bedarf mehr Hardware für mehr DB-Speicherplatz zu installieren.
Falls Sie beabsichtigen, das WAL- und DB-Gerät auf dieselbe Festplatte zu stellen, dann empfehlen wir eine einzelne Partition für beide Geräte statt eine eigene Partition pro Gerät. Dadurch kann Ceph das DB-Gerät auch für WAL-Operationen verwenden. Die Verwaltung des Festplattenspeicherplatzes ist daher effizienter, weil Ceph die DB-Partition für WAL nur dann verwendet, wenn es unbedingt erforderlich ist. Ein weiterer Vorteil besteht darin, dass eine volle Auslastung der WAL-Partition sehr unwahrscheinlich ist und kein Speicherplatz verschwendet wird, da er gegebenenfalls auch für DB-Operationen verwendet werden kann.
Um das DB-Gerät für WAL freizugeben, geben Sie nicht das WAL-Gerät an, sondern nur das DB-Gerät.
Weitere Informationen zum Festlegen eines OSD-Layouts finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 13 “Betriebsaufgaben”, Section 13.4.3 “Hinzufügen von OSDs mit der DriveGroups-Spezifikation”.
2.4.5 Maximale empfohlene Anzahl von Datenträgern #
Jeder Server kann so viele Festplatten enthalten wie für ihn zulässig sind. Bei der Planung der Anzahl von Festplatten pro Server gibt es einiges zu bedenken:
Netzwerk-Bandbreite. Je mehr Festplatten ein Server enthält, desto mehr Daten müssen für die Schreiboperationen der Festplatte über die Netzwerkkarte(n) übertragen werden.
Arbeitsspeicher. RAM ab 2 GB wird für den BlueStore-Cache herangezogen. Mit dem Standardwert von 4 GB für
osd_memory_target
erhält das System eine angemessene Cache-Anfangsgröße für rotierende Datenträger. Bei SSD oder NVME sollten Sie die Cache-Größe und die RAM-Zuordnung pro OSD erhöhen, damit die höchstmögliche Leistung erzielt wird.Fehlertoleranz. Wenn der Server komplett ausfällt, verliert der Cluster temporär so viele OSDs wie er Festplatten hat. Darüberhinaus müssen Sie alle Daten des ausgefallenen Servers auf die anderen Knoten im Cluster kopieren, damit die Reproduktionsregeln weiterhin ausgeführt werden.
2.5 Monitorknoten #
Mindestens drei MON-Knoten sind erforderlich. Die Anzahl der Monitore sollte immer ungerade sein (1+2n).
4 GB RAM.
Prozessor mit vier logischen Cores.
Ein SSD oder ein anderer ausreichend schneller Speichertyp ist für Monitors sehr zu empfehlen, insbesondere für den Pfad
/var/lib/ceph
in jedem Monitor-Knoten, da das Quorum bei hohen Festplattenlatenzen möglicherweise instabil ist. Zwei Festplatten in der RAID 1-Konfiguration werden aus Redundanzgründen empfohlen. Es wird empfohlen, dass separate Festplatten oder mindestens separate Festplattenpartitionen für die Überwachungsprozesse zur Verfügung stehen, um den verfügbaren Festplattenspeicherplatz des Monitors vor Ereignissen wie schleichender Protokolldateiausweitung zu schützen.Pro Knoten darf nur ein Überwachungsprozess vorhanden sein.
Die Kombination von OSD-, MON- oder Object-Gateway-Knoten wird nur unterstützt, wenn ausreichend Hardwareressourcen verfügbar sind. Dies bedeutet, dass die Anforderungen für alle Services aufsummiert werden müssen.
Zwei Netzwerkschnittstellen verbunden mit mehreren Schaltern.
2.6 Object-Gateway-Knoten #
Object-Gateway-Knoten sollten über mindestens sechs CPU-Cores und 32 GB RAM verfügen. Wenn sich noch andere Prozesse auf demselben Rechner befinden, müssen deren Anforderungen aufsummiert werden.
2.7 Metadata Server-Knoten #
Die richtige Größe der Metadata Server Knoten hängt vom spezifischen Anwendungsfall ab. Generell gilt, je mehr offene Dateien der Metadata Server verarbeiten muss, desto mehr CPU und RAM benötigt er. Nachfolgend finden Sie die Mindestanforderungen an die
4 GB RAM für jeden Metadatenserver-Daemon.
Gebundene Netzwerkschnittstelle.
2,5 GHz CPU mit mindestens 2 Cores.
2.8 Admin-Knoten #
Mindestens 4 GB RAM und ein CPU mit vier Cores sind erforderlich. Dies umfasst die Ausführung des Salt Masters auf dem Admin-Knoten Für große Cluster mit Hunderten von Knoten werden 6 GB RAM vorgeschlagen.
2.9 iSCSI-Gateway-Knoten #
iSCSI-Gateway-Knoten sollten über mindestens sechs CPU-Cores und 16 GB RAM verfügen.
2.10 SES und andere SUSE-Produkte #
Dieser Abschnitt enthält wichtige Informationen zur Integration von SES in andere SUSE-Produkte.
2.10.1 SUSE Manager #
SUSE Manager und SUSE Enterprise Storage sind nicht integriert. Daher kann SUSE Manager aktuell keinen SES-Cluster verwalten.
2.11 Namensbegrenzungen #
Ceph unterstützt nicht generell Nicht-ASCII-Zeichen in Konfigurationsdateien, Pool-Namen, Benutzernamen und so weiter. Wir empfehlen, beim Konfigurieren eines Ceph-Clusters in allen Ceph-Objekt- bzw. Konfigurationsnamen nur einfache alphanumerische Zeichen (A-Z, a-z, 0-9) und wenige Satzzeichen ('.', '-', '_') zu verwenden.
3 Einrichten des Hochverfügbarkeits-Clusters für den Admin-Knoten #
Der Admin-Knoten ist ein Ceph-Cluster-Knoten, in dem der Salt-Master-Service ausgeführt wird. Er verwaltet die restlichen Cluster-Knoten, indem er deren Salt-Minion-Services abfragt und anweist. Er enthält normalerweise auch andere Services, beispielsweise das Grafana Dashboard, das vom Prometheus-Überwachungs-Toolkit unterstützt wird.
Falls im Admin-Knoten ein Fehler auftritt, müssen Sie normalerweise neue funktionierende Hardware für den Knoten zur Verfügung stellen und den gesamten Konfigurationsstapel des Clusters von einer kürzlich erstellten Sicherung wiederherstellen. Eine derartige Methode ist zeitaufwändig und verursacht den Ausfall des Clusters.
Wir empfehlen einen Hochverfügbarkeits-Cluster für den Ceph Admin-Knoten, um Ausfallzeiten in der Ceph-Cluster-Leistung, die durch Admin-Knoten-Fehler verursacht werden, zu verhindern.
3.1 Überblick zum Hochverfügbarkeits-Cluster für den Admin-Knoten #
Hinter einem Hochverfügbarkeits-Cluster steckt die Überlegung, dass im Fall eines Fehlers im Cluster-Knoten der andere Knoten automatisch dessen Rolle übernimmt, einschließlich des virtualisierten Admin-Knoten. Auf diese Weise bemerken andere Ceph-Cluster-Knoten gar nicht, dass im Admin-Knoten ein Fehler aufgetreten ist.
Für die Mindestlösung eines Hochverfügbarkeits-Clusters für den Admin-Knoten ist die folgende Hardware erforderlich:
Zwei Bare Metal Server, auf denen SUSE Linux Enterprise mit der Hochverfügbarkeitserweiterung ausgeführt und der Admin-Knoten virtualisiert wird.
Mindestens zwei redundante Pfade für die Netzwerkkommunikation, beispielsweise durch Netzwerkgeräte-Bonding.
Gemeinsamer Speicher zum Hosten von Festplatten-Images der virtuellen Maschine des Admin-Knoten. Beide Server müssen auf den gemeinsamen Server zugreifen können. Es kann sich dabei beispielsweise um einen NFS-Export, eine Samba-Freigabe oder ein iSCSI-Ziel handeln.
Weitere detaillierte Informationen zu den Cluster-Anforderungen finden Sie in https://documentation.suse.com/sle-ha/15-SP3/single-html/SLE-HA-install-quick/#sec-ha-inst-quick-req.
3.2 Erstellen eines Hochverfügbarkeits-Clusters mit dem Admin-Knoten #
Der folgende Vorgang fasst die wichtigsten Schritte zur Erstellung des Hochverfügbarkeits-Clusters zur Virtualisierung des Admin-Knoten zusammen. Weitere detaillierte Informationen finden Sie unter den angegebenen Links.
Richten Sie einen einfachen Hochverfügbarkeits-Cluster mit zwei Knoten und gemeinsamem Speicher ein. Eine Beschreibung hierzu finden Sie unter https://documentation.suse.com/sle-ha/15-SP3/single-html/SLE-HA-install-quick/#art-sleha-install-quick.
Installieren Sie in beiden Cluster-Knoten alle Pakete, die zur Ausführung des KVM-Hypervisors und des
libvirt
-Toolkits erforderlich sind. Eine Beschreibung hierzu finden Sie unter https://documentation.suse.com/sles/15-SP3/single-html/SLES-virtualization/#sec-vt-installation-kvm.Erstellen Sie im ersten Cluster-Knoten eine neue virtuelle KVM-Maschine und nutzen Sie dazu
libvirt
. Eine Beschreibung hierzu finden Sie unter https://documentation.suse.com/sles/15-SP3/single-html/SLES-virtualization/#sec-libvirt-inst-virt-install. Speichern Sie die Festplatten-Images der VM im vorkonfigurierten gemeinsamen Speicher.Exportieren Sie nach Abschluss der VM-Einrichtung deren Konfiguration in eine XML-Datei im gemeinsamen Speicher. Verwenden Sie folgende Syntax:
#
virsh dumpxml VM_NAME > /path/to/shared/vm_name.xmlErstellen Sie eine Ressource für die VM des Admin-Knoten. Allgemeine Informationen zum Erstellen von Hochverfügbarkeits-Ressourcen finden Sie unter https://documentation.suse.com/sle-ha/15-SP3/single-html/SLE-HA-guide/#cha-conf-hawk2. Detaillierte Informationen zum Erstellen einer Ressource für eine virtuelle KVM-Maschine finden Sie unter http://www.linux-ha.org/wiki/VirtualDomain_%28resource_agent%29.
Stellen Sie auf dem neu erstellten VM-Gast den Admin-Knoten einschließlich der dort benötigten weiteren Services bereit. Befolgen Sie die relevanten Anweisungen unter Kapitel 6, Bereitstellen von Salt. Stellen Sie gleichzeitig die restlichen Ceph-Cluster-Knoten auf den Servern ohne Hochverfügbarkeits-Cluster bereit.
Teil II Bereitstellen des Ceph-Clusters #
- 4 Einführung und allgemeine Aufgaben
Ab SUSE Enterprise Storage 7 werden Ceph-Services als Container anstelle von RPM-Paketen bereitgestellt. Der Bereitstellungsprozess umfasst zwei grundlegende Schritte:
- 5 Installieren und Konfigurieren von SUSE Linux Enterprise Server
Installieren und registrieren Sie SUSE Linux Enterprise Server 15 SP3 auf jedem Cluster-Knoten. Während der Installation von SUSE Enterprise Storage ist der Zugriff auf die Aktualisierungs-Repositorys erforderlich, weshalb eine Registrierung obligatorisch ist. Fügen Sie mindestens die folgenden Modu…
- 6 Bereitstellen von Salt
SUSE Enterprise Storage verwendet Salt und ceph-salt für die anfängliche Vorbereitung des Clusters. Mit Salt können Sie Kommandos auf mehreren Cluster-Knoten gleichzeitig von einem dedizierten Host, dem Salt Master, aus konfigurieren und ausführen. Vor dem Bereitstellen von Salt sollten Sie folgende…
- 7 Bereitstellen des Bootstrap-Clusters mit
ceph-salt
In diesem Abschnitt werden Sie durch den Prozess der Bereitstellung eines Ceph-Basisclusters geführt. Lesen Sie die folgenden Unterabschnitte sorgfältig durch und führen Sie die enthaltenen Kommandos in der angegebenen Reihenfolge aus.
- 8 Bereitstellen der verbleibenden wichtigsten Services mit cephadm
Nachdem Sie den Ceph-Basiscluster bereitgestellt haben, sollten Sie die wichtigsten Services auf weitere Cluster-Knoten verteilen. Stellen Sie zusätzliche Services bereit, um die Daten des Clusters für Clients zugänglich zu machen.
- 9 Bereitstellung zusätzlicher Services
iSCSI ist ein Storage Area Network (SAN)-Protokoll, das Clients (genannt Initiators) das Senden von SCSI-Kommandos an SCSI-Speichergeräte (Targets) auf Remote Servern ermöglicht. SUSE Enterprise Storage 7.1 umfasst eine Funktion, die die Ceph-Speicherverwaltung für heterogene Clients wie Microsoft W…
4 Einführung und allgemeine Aufgaben #
Ab SUSE Enterprise Storage 7 werden Ceph-Services als Container anstelle von RPM-Paketen bereitgestellt. Der Bereitstellungsprozess umfasst zwei grundlegende Schritte:
- Bereitstellen des Bootstrap-Clusters
Diese Phase wird als Tag 1 der Bereitstellung bezeichnet. Sie umfasst die folgenden Aufgaben: Installieren des zugrunde liegenden Betriebssystems, Konfigurieren der Salt-Infrastruktur und Bereitstellen des Minimalclusters, der aus einem MON- und einem MGR-Service besteht.
Installieren Sie das zugrunde liegende Betriebssystem (SUSE Linux Enterprise Server 15 SP3) auf allen Cluster-Knoten und nehmen Sie die Grundkonfiguration vor.
Stellen Sie die Salt-Infrastruktur auf allen Cluster-Knoten bereit, um die ersten Bereitstellungsvorbereitungen über
ceph-salt
durchzuführen.Konfigurieren Sie die grundlegenden Eigenschaften des Clusters über
ceph-salt
und stellen Sie ihn bereit.
- Bereitstellen zusätzlicher Services
An Tag 2 der Bereitstellung werden weitere wichtige und zusätzliche Ceph-Services bereitgestellt, beispielsweise Gateways und ein Überwachungs-Stack.
Beachten Sie, dass in der Ceph-Community-Dokumentation das Kommando cephadm bootstrap
bei der Erstinstallation verwendet wird. ceph-salt
ruft automatisch das Kommando cephadm bootstrap
auf. Das Kommando cephadm bootstrap
sollte nicht direkt ausgeführt werden. Eine manuelle Bereitstellung eines Ceph-Clusters mit cephadm bootstrap
wird nicht unterstützt.
4.1 Lesen Sie die Versionshinweise #
In den Versionshinweisen finden Sie zusätzliche Informationen zu den Änderungen, die seit der vorigen Version von SUSE Enterprise Storage vorgenommen wurden. Informieren Sie sich in den Versionshinweisen über Folgendes:
Sind bei der Hardware besondere Überlegungen zu beachten?
Wurden erhebliche Änderungen an den verwendeten Software-Paketen vorgenommen?
Gelten besondere Vorsichtsmaßnahmen für die vorliegende Installation?
In den Versionshinweisen finden Sie auch Informationen, die erst nach der Fertigstellung des Handbuchs bekannt wurden. Auch bekannte Probleme werden beschrieben.
Nach Installation des Pakets release-notes-ses finden Sie die Versionshinweise lokal im Verzeichnis /usr/share/doc/release-notes
oder online unter https://www.suse.com/releasenotes/.
5 Installieren und Konfigurieren von SUSE Linux Enterprise Server #
Installieren und registrieren Sie SUSE Linux Enterprise Server 15 SP3 auf jedem Cluster-Knoten. Während der Installation von SUSE Enterprise Storage ist der Zugriff auf die Aktualisierungs-Repositorys erforderlich, weshalb eine Registrierung obligatorisch ist. Fügen Sie mindestens die folgenden Module hinzu:
Basesystem Module
Server Applications Module
Weitere Einzelheiten zur Installation von SUSE Linux Enterprise Server finden Sie unter https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-install.html.
Installieren Sie die SUSE Enterprise Storage 7.1-Erweiterung auf jedem Cluster-Knoten.
Tipp: Installation von SUSE Enterprise Storage zusammen mit SUSE Linux Enterprise ServerSie können die SUSE Enterprise Storage 7.1-Erweiterung entweder nach der Installation von SUSE Linux Enterprise Server 15 SP3 separat installieren oder sie während des Installationsvorgangs von SUSE Linux Enterprise Server 15 SP3 hinzufügen.
Weitere Details zur Installation von Erweiterungen finden Sie unter https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-register-sle.html.
Konfigurieren Sie Netzwerkeinstellungen einschließlich der ordnungsgemäßen DNS-Namensauflösung auf jedem Knoten. Weitere Informationen zum Konfigurieren eines Netzwerks finden Sie unter https://documentation.suse.com/sles/15-SP3/single-html/SLES-admin/#sec-network-yast. Weitere Informationen zum Konfigurieren eines DNS Servers finden Sie unter https://documentation.suse.com/sles/15-SP3/single-html/SLES-admin/#cha-dns.
6 Bereitstellen von Salt #
SUSE Enterprise Storage verwendet Salt und ceph-salt
für die anfängliche Vorbereitung des Clusters. Mit Salt können Sie Kommandos auf mehreren Cluster-Knoten gleichzeitig von einem dedizierten Host, dem Salt Master, aus konfigurieren und ausführen. Vor dem Bereitstellen von Salt sollten Sie folgende wichtige Punkte beachten:
Salt Minions sind die Knoten, die von einem dedizierten Knoten namens Salt Master gesteuert werden.
Wenn der Salt-Master-Host Teil des Ceph-Clusters sein soll, muss er seinen eigenen Salt Minion ausführen, was aber keine Voraussetzung ist.
Tipp: Freigeben mehrerer Rollen pro ServerSie erreichen die optimale Leistung Ihres Ceph-Clusters, wenn jede Rolle in einem separaten Knoten bereitgestellt wird. Manchmal ist es jedoch bei Bereitstellungen erforderlich, einen Knoten für mehrere Rollen freizugeben. Stellen Sie die Ceph OSD-, Metadatenserver- oder Ceph Monitor-Rolle nicht auf dem Admin-Knoten bereit, um Probleme mit der Leistung und dem Upgrade-Vorgang zu vermeiden.
Salt Minions müssen den Hostnamen des Salt Masters im gesamten Netzwerk korrekt auflösen. Standardmäßig suchen sie nach dem Hostnamen
salt
. Sie können jedoch auch in der Datei/etc/salt/minion
jeden vom Netzwerk erreichbaren Hostnamen angeben.
Installieren Sie
salt-master
auf dem Salt-Master-Knoten:root@master #
zypper in salt-masterÜberprüfen Sie, ob der
salt-master
-Service aktiviert und gestartet wurde und aktivieren und starten Sie ihn gegebenenfalls:root@master #
systemctl enable salt-master.serviceroot@master #
systemctl start salt-master.serviceFalls Sie beabsichtigen, die Firewall zu verwenden, überprüfen Sie, ob im Salt-Master-Knoten die Ports 4505 und 4506 für alle Salt-Minion-Knoten offen sind. Wenn die Ports geschlossen sind, können Sie sie mit dem Kommando
yast2 firewall
öffnen. Lassen Sie dazu den -Service für die entsprechende Zone zu. Zum BeispielÖffentlich
.Installieren Sie das Paket
salt-minion
in allen Minion-Knoten.root@minion >
zypper in salt-minionBearbeiten Sie
/etc/salt/minion
und kommentieren Sie die folgende Zeile aus:#log_level_logfile: warning
Ändern Sie die Protokollstufe
Warnung
zuInfo
.Anmerkung:log_level_logfile
undlog_level
Während mit
log_level
gesteuert wird, welche Protokollmeldungen auf dem Bildschirm angezeigt werden, wird mitlog_level_logfile
gesteuert, welche Protokollmeldungen in/var/log/salt/minion
geschrieben werden.AnmerkungStellen Sie sicher, dass Sie die Protokollebene auf allen Cluster-Knoten (Minions) ändern.
Vergewissern Sie sich, dass der vollqualifizierte Domänenname jedes Knotens von allen anderen Knoten in eine IP-Adresse im öffentlichen Clusternetzwerk aufgelöst werden kann.
Konfigurieren Sie alle Minions für die Verbindung mit dem Master. Wenn Ihr Salt Master mit dem Hostnamen
salt
nicht erreichbar ist, bearbeiten Sie die Datei/etc/salt/minion
oder erstellen Sie eine neue Datei/etc/salt/minion.d/master.conf
mit folgendem Inhalt:master: host_name_of_salt_master
Wenn Sie an den oben genannten Konfigurationsdateien Änderungen vorgenommen haben, starten Sie den Salt-Service auf allen entsprechenden Salt Minions neu:
root@minion >
systemctl restart salt-minion.serviceÜberprüfen Sie, ob der
salt-minion
Service in allen Knoten aktiviert und gestartet wurde. Aktivieren und starten Sie ihn, falls erforderlich:#
systemctl enable salt-minion.service#
systemctl start salt-minion.serviceÜberprüfen Sie den Fingerabdruck der einzelnen Salt Minions und akzeptieren Sie alle Salt-Schlüssel am Salt Master, wenn die Fingerabdrücke übereinstimmen.
AnmerkungWenn ein leerer Fingerabdruck des Salt Minions zurückgegeben wird, prüfen Sie, ob der Salt Minion über eine Salt-Master-Konfiguration verfügt und ob der Minion mit dem Salt Master kommunizieren kann.
Zeigen Sie den Fingerabdruck der einzelnen Minions an:
root@minion >
salt-call --local key.finger local: 3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...Nachdem Sie die Fingerabdrücke aller Salt Minions gesammelt haben, listen Sie die Fingerabdrücke aller nicht akzeptierten Minion-Schlüssel am Salt Master auf:
root@master #
salt-key -F [...] Unaccepted Keys: minion1: 3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...Wenn die Fingerabdrücke der Minions übereinstimmen, akzeptieren Sie sie:
root@master #
salt-key --accept-allVerifizieren Sie, dass die Schlüssel akzeptiert wurden:
root@master #
salt-key --list-allTesten Sie, ob alle Salt Minions antworten:
root@master #
salt-run manage.status
7 Bereitstellen des Bootstrap-Clusters mit ceph-salt
#
In diesem Abschnitt werden Sie durch den Prozess der Bereitstellung eines Ceph-Basisclusters geführt. Lesen Sie die folgenden Unterabschnitte sorgfältig durch und führen Sie die enthaltenen Kommandos in der angegebenen Reihenfolge aus.
7.1 Installieren von ceph-salt
#
ceph-salt
stellt Werkzeuge zum Bereitstellen von Ceph-Clustern bereit, die von cephadm verwaltet werden. ceph-salt
nutzt die Salt-Infrastruktur, um die Verwaltung des Betriebssystems – beispielsweise Softwareaktualisierungen oder Zeitsynchronisierung – durchzuführen und Rollen für Salt Minions zu definieren.
Installieren Sie auf dem Salt Master das Paket ceph-salt:
root@master #
zypper install ceph-salt
Das obige Kommando installiert ceph-salt-formula als Abhängigkeit, die die Salt-Master-Konfiguration durch Einfügen zusätzlicher Dateien im Verzeichnis /etc/salt/master.d
ändert. Um die Änderungen anzuwenden, starten Sie salt-master.service
neu und synchronisieren Sie die Salt-Module:
root@master #
systemctl restart salt-master.serviceroot@master #
salt \* saltutil.sync_all
7.2 Konfigurieren der Clustereigenschaften #
Konfigurieren Sie mit dem Kommando ceph-salt config
die grundlegenden Eigenschaften des Clusters.
Die Datei /etc/ceph/ceph.conf
wird von cephadm verwaltet und sollte nicht von Benutzern bearbeitet werden. Die Ceph-Konfigurationsparameter sollten mit dem neuen Kommando ceph config
festgelegt werden. Weitere Informationen zu diesem Thema finden Sie unter dem Stichwort Book “Betriebs- und Verwaltungshandbuch”, Chapter 28 “Konfiguration des Ceph-Clusters”, Section 28.2 “Konfigurationsdatenbank”.
7.2.1 Verwenden der ceph-salt
-Shell #
Wenn Sie config
ohne Pfad oder Unterbefehl ausführen, gelangen Sie in eine interaktive ceph-salt
ceph-salt-Shell. Die Shell ist praktisch, wenn Sie mehrere Eigenschaften in einem Stapel konfigurieren müssen und nicht die vollständige Kommandosyntax eingeben möchten.
root@master #
ceph-salt config/>
ls o- / ............................................................... [...] o- ceph_cluster .................................................. [...] | o- minions .............................................. [no minions] | o- roles ....................................................... [...] | o- admin .............................................. [no minions] | o- bootstrap ........................................... [no minion] | o- cephadm ............................................ [no minions] | o- tuned ..................................................... [...] | o- latency .......................................... [no minions] | o- throughput ....................................... [no minions] o- cephadm_bootstrap ............................................. [...] | o- advanced .................................................... [...] | o- ceph_conf ................................................... [...] | o- ceph_image_path .................................. [ no image path] | o- dashboard ................................................... [...] | | o- force_password_update ................................. [enabled] | | o- password ................................................ [admin] | | o- ssl_certificate ....................................... [not set] | | o- ssl_certificate_key ................................... [not set] | | o- username ................................................ [admin] | o- mon_ip .................................................. [not set] o- containers .................................................... [...] | o- registries_conf ......................................... [enabled] | | o- registries .............................................. [empty] | o- registry_auth ............................................... [...] | o- password .............................................. [not set] | o- registry .............................................. [not set] | o- username .............................................. [not set] o- ssh ............................................... [no key pair set] | o- private_key .................................. [no private key set] | o- public_key .................................... [no public key set] o- time_server ........................... [enabled, no server host set] o- external_servers .......................................... [empty] o- servers ................................................... [empty] o- subnet .................................................. [not set]
Wie Sie der Ausgabe des ceph-salt
ls-Kommandos von
entnehmen können, ist die Cluster-Konfiguration in einer Baumstruktur organisiert. Sie haben zwei Möglichkeiten zum Konfigurieren einer bestimmten Eigenschaft des Clusters in der ceph-salt
-Shell:
Führen Sie das Kommando von der aktuellen Position aus und geben Sie den absoluten Pfad zur Eigenschaft als erstes Argument ein:
/>
/cephadm_bootstrap/dashboard ls o- dashboard ....................................................... [...] o- force_password_update ..................................... [enabled] o- password .................................................... [admin] o- ssl_certificate ........................................... [not set] o- ssl_certificate_key ....................................... [not set] o- username .................................................... [admin]/> /cephadm_bootstrap/dashboard/username set ceph-admin
Value set.Wechseln Sie zu dem Pfad, dessen Eigenschaft Sie konfigurieren müssen, und führen Sie das Kommando aus:
/>
cd /cephadm_bootstrap/dashboard//ceph_cluster/minions>
ls o- dashboard ....................................................... [...] o- force_password_update ..................................... [enabled] o- password .................................................... [admin] o- ssl_certificate ........................................... [not set] o- ssl_certificate_key ....................................... [not set] o- username ................................................[ceph-admin]
Während Sie sich in einer ceph-salt
-Shell befinden, können Sie die Funktion der automatischen Vervollständigung ähnlich wie in einer normalen Linux-Shell (Bash) verwenden. Sie vervollständigt Konfigurationspfade, Unterkommandos oder Salt-Minion-Namen. Beim automatischen Vervollständigen eines Konfigurationspfads haben Sie zwei Möglichkeiten:
Drücken Sie zweimal die TAB-Taste →|, damit die Shell einen Pfad relativ zu Ihrer aktuellen Position beendet.
Geben Sie / ein und drücken Sie zweimal die TAB-Taste →|, damit die Shell einen absoluten Pfad beendet.
Wenn Sie cd
aus der ceph-salt
-Shell heraus ohne Pfad eingeben, wird durch das Kommando eine Baumstruktur der Cluster-Konfiguration ausgegeben, wobei die Zeile des aktuellen Pfads aktiv ist. Mit den Cursortasten nach oben und nach unten navigieren Sie durch die einzelnen Zeilen. Nach dem Bestätigen mit der Eingabetaste Eingabetaste wird der Konfigurationspfad zum letzten aktiven Pfad geändert.
Wir verwenden eine einzige Kommandosyntax ohne Eingabe der ceph-salt
-Shell, um die Dokumentation konsistent zu halten. Sie können zum Beispiel den Cluster-Konfigurationsbaum mit folgendem Kommando auflisten:
root@master #
ceph-salt config ls
7.2.2 Hinzufügen von Salt Minions #
Nehmen Sie alle oder eine Teilmenge der von uns in Kapitel 6, Bereitstellen von Salt bereitgestellten und akzeptierten Salt Minions in die Ceph-Cluster-Konfiguration auf. Sie können die Salt Minions entweder mit ihren vollständigen Namen angeben oder mit einem Globausdruck „*“ und „?“ mehrere Salt Minions gleichzeitig hinzufügen. Verwenden Sie das Unterkommando add
unter dem Pfad /ceph_cluster/minions
. Mit folgendem Kommando werden alle akzeptierten Salt Minions hinzugefügt:
root@master #
ceph-salt config /ceph_cluster/minions add '*'
Überprüfen Sie, ob die angegebenen Salt Minions hinzugefügt wurden:
root@master #
ceph-salt config /ceph_cluster/minions ls
o- minions ................................................. [Minions: 5]
o- ses-master.example.com .................................. [no roles]
o- ses-min1.example.com .................................... [no roles]
o- ses-min2.example.com .................................... [no roles]
o- ses-min3.example.com .................................... [no roles]
o- ses-min4.example.com .................................... [no roles]
7.2.3 Festlegen von Salt Minions, die von cephadm verwaltet werden #
Geben Sie an, welche Knoten zum Ceph-Cluster gehören und von cephadm verwaltet werden sollen. Beziehen Sie alle Knoten ein, die Ceph-Services ausführen, sowie den Admin-Knoten:
root@master #
ceph-salt config /ceph_cluster/roles/cephadm add '*'
7.2.4 Festlegen des Admin Knoten #
Der Admin-Knoten ist der Knoten, auf dem die Konfigurationsdatei ceph.conf
und der Ceph-Admin-Schlüsselbund installiert sind. Normalerweise führen Sie Ceph-spezifische Kommandos auf dem Admin-Knoten aus.
In einer homogenen Umgebung, in der alle oder die meisten Hosts zu SUSE Enterprise Storage gehören, wird empfohlen, dass sich der Admin-Knoten auf demselben Host befindet wie der Salt Master.
In einer heterogenen Umgebung, in der eine Salt-Infrastruktur mehr als einen Cluster hostet (z. B. SUSE Enterprise Storage zusammen mit SUSE Manager), sollten Sie den Admin-Knoten nicht auf demselben Host wie den Salt Master platzieren.
Geben Sie den Admin-Knoten mit folgendem Kommando an:
root@master #
ceph-salt config /ceph_cluster/roles/admin add ses-master.example.com 1 minion added.root@master #
ceph-salt config /ceph_cluster/roles/admin ls o- admin ................................................... [Minions: 1] o- ses-master.example.com ...................... [Other roles: cephadm]
ceph.conf
und den Admin-Schlüsselbund auf mehreren KnotenSie können die Ceph-Konfigurationsdatei und den Admin-Schlüsselbund auf mehreren Knoten installieren, wenn dies für Ihre Bereitstellung erforderlich ist. Vermeiden Sie aus Sicherheitsgründen, sie auf allen Knoten des Clusters zu installieren.
7.2.5 Festlegen des ersten MON/MGR-Knotens #
Sie müssen angeben, welcher der Salt Minions des Clusters das Bootstrapping des Clusters durchführen soll. Dieser Minion führt dann die Services Ceph Monitor und Ceph Manager als Erster aus.
root@master #
ceph-salt config /ceph_cluster/roles/bootstrap set ses-min1.example.com Value set.root@master #
ceph-salt config /ceph_cluster/roles/bootstrap ls o- bootstrap ..................................... [ses-min1.example.com]
Zusätzlich müssen Sie die IP-Adresse des Bootstrap-MON im öffentlichen Netzwerk angeben, um sicherzustellen, dass beispielsweise der Parameter public_network
korrekt festgelegt wird:
root@master #
ceph-salt config /cephadm_bootstrap/mon_ip set 192.168.10.20
7.2.6 Festlegen von abgestimmten Profilen #
Sie müssen angeben, in welchen der Minions des Clusters aktiv abgestimmte Profile vorhanden sein sollen. Fügen Sie dazu diese Rollen mit den folgenden Kommandos explizit hinzu:
Ein Minion kann nicht gleichzeitig über die Rollen Latenz
und Durchsatz
verfügen.
root@master #
ceph-salt config /ceph_cluster/roles/tuned/latency add ses-min1.example.com Adding ses-min1.example.com... 1 minion added.root@master #
ceph-salt config /ceph_cluster/roles/tuned/throughput add ses-min2.example.com Adding ses-min2.example.com... 1 minion added.
7.2.7 Generieren eines SSH-Schlüsselpaars #
cephadm kommuniziert mit den Cluster-Knoten über das SSH-Protokoll. Ein Benutzerkonto namens cephadm
wird automatisch erstellt und für die SSH-Kommunikation verwendet.
Sie müssen den privaten und den öffentlichen Teil des SSH-Schlüsselpaars generieren:
root@master #
ceph-salt config /ssh generate Key pair generated.root@master #
ceph-salt config /ssh ls o- ssh .................................................. [Key Pair set] o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83] o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
7.2.8 Konfigurieren des Zeitservers #
Alle Cluster-Knoten müssen ihre Zeit mit einer zuverlässigen Zeitquelle synchronisieren. Es gibt mehrere Szenarien für die Zeitsynchronisierung:
Deaktivieren Sie die Zeitserververarbeitung vollständig, wenn alle Cluster-Knoten bereits so konfiguriert sind, dass sie ihre Zeit mit einem NTP-Service ihrer Wahl synchronisieren:
root@master #
ceph-salt config /time_server disableGeben Sie den Hostnamen der Zeitquelle an, wenn Ihr Standort bereits über eine einzige Zeitquelle verfügt:
root@master #
ceph-salt config /time_server/servers add time-server.example.comAlternativ bietet
ceph-salt
die Möglichkeit, einen der Salt Minions so zu konfigurieren, dass er als Zeitserver für den Rest des Clusters dient. Dies wird manchmal auch als „interner Zeitserver“ bezeichnet. In diesem Szenario konfiguriertceph-salt
den internen Zeitserver (der einer der Salt Minions sein sollte) so, dass er seine Zeit mit einem externen Zeitserver, zum Beispielpool.ntp.org
, synchronisiert. Alle anderen Minions werden so konfiguriert, dass sie ihre Zeit von dem internen Zeitserver beziehen. Dies kann wie folgt erreicht werden:root@master #
ceph-salt config /time_server/servers add ses-master.example.comroot@master #
ceph-salt config /time_server/external_servers add pool.ntp.orgDie Option
/time_server/subnet
gibt das Teilnetz an, aus dem NTP-Clients auf den NTP-Server zugreifen dürfen. Sie wird automatisch festgelegt, wenn Sie/time_server/servers
angeben. Führen Sie folgendes Kommando aus, wenn Sie sie ändern oder manuell angeben müssen:root@master #
ceph-salt config /time_server/subnet set 10.20.6.0/24
Prüfen Sie die Einstellungen für den Zeitserver:
root@master #
ceph-salt config /time_server ls
o- time_server ................................................ [enabled]
o- external_servers ............................................... [1]
| o- pool.ntp.org ............................................... [...]
o- servers ........................................................ [1]
| o- ses-master.example.com ..................................... [...]
o- subnet .............................................. [10.20.6.0/24]
Weitere Informationen zum Einrichten der Zeitsynchronisierung finden Sie unter https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-ntp.html#sec-ntp-yast.
7.2.9 Konfigurieren des Berechtigungsnachweises für die Anmeldung am Ceph Dashboard #
Ceph Dashboard ist nach der Bereitstellung des Basisclusters verfügbar. Um darauf zuzugreifen, müssen Sie einen gültigen Benutzernamen und ein Passwort festlegen, zum Beispiel:
root@master #
ceph-salt config /cephadm_bootstrap/dashboard/username set adminroot@master #
ceph-salt config /cephadm_bootstrap/dashboard/password set PWD
Standardmäßig wird der erste Dashboard-Benutzer gezwungen, sein Passwort bei der ersten Anmeldung am Dashboard zu ändern. Deaktivieren Sie diese Funktion mit folgendem Kommando:
root@master #
ceph-salt config /cephadm_bootstrap/dashboard/force_password_update disable
7.2.10 Verwenden der Container-Registrierung #
Der Ceph-Cluster benötigt Zugang zu einer Container-Registrierung, damit er containerisierte Ceph-Services herunterladen und bereitstellen kann. Es gibt zwei Möglichkeiten, auf die Registrierung zuzugreifen:
Wenn der Cluster auf die Standardregistrierung unter
registry.suse.com
zugreifen kann (direkt oder über einen Proxy), können Sieceph-salt
direkt auf diese URL verweisen, ohne eine lokale Registrierung zu erstellen. Setzen Sie den Vorgang fort, indem Sie die Schritte in Abschnitt 7.2.10.2, „Konfigurieren des Pfads zu den Container-Images“ ausführen.Wenn Ihr Cluster nicht auf die Standardregistrierung zugreifen kann, z. B. bei einer Air-Gapped-Bereitstellung, müssen Sie eine lokale Container-Registrierung konfigurieren. Nachdem die lokale Registrierung erstellt und konfiguriert wurde, müssen Sie
ceph-salt
auf diese Registrierung verweisen.
7.2.10.1 Erstellen und Konfigurieren der lokalen Registrierung (optional) #
Es gibt zahlreiche Methoden zur Erstellung einer lokalen Registrierung. Die Anweisungen in diesem Abschnitt sind Beispiele für die Erstellung sicherer und unsicherer Registrierungen. Allgemeine Informationen zur Ausführung einer Container-Image-Registrierung finden Sie unter https://documentation.suse.com/sles/15-SP3/single-html/SLES-container/#sec-docker-registry-installation.
Stellen Sie die Registrierung auf einem Rechner bereit, auf den alle Knoten des Clusters zugreifen können. Es wird empfohlen, den Admin-Knoten zu verwenden. Standardmäßig überwacht die Registrierung Port 5000.
Verwenden Sie auf dem Registrierungsknoten folgendes Kommando, um sicherzustellen, dass der Port frei ist:
ss -tulpn | grep :5000
Wenn Port 5000 bereits von anderen Prozessen (z. B. iscsi-tcmu
) überwacht wird, suchen Sie einen anderen freien Port, der Port 5000 im Registrierungscontainer zugeordnet werden kann.
Vergewissern Sie sich, dass die Erweiterung Containers Module aktiviert ist:
>
SUSEConnect --list-extensions | grep -A2 "Containers Module" Containers Module 15 SP3 x86_64 (Activated)Vergewissern Sie sich, dass die folgenden Pakete installiert sind: apache2-utils (für eine sichere Registrierung), cni, cni-plugins, podman, podman-cni-config und skopeo.
Beschaffen Sie sich folgende Informationen:
Vollqualifizierter Domänenname des Registrierungshosts (
REG_HOST_FQDN
).Nummer eines verfügbaren Ports, der dem Registrierungscontainer-Port 5000 (
REG_HOST_PORT
) zugeordnet wird.Ob es sich um eine sichere oder unsichere Registrierung handelt (
insecure=[true|false]
).
Gehen Sie folgendermaßen bei einer unsicheren Registrierung (ohne SSL-Verschlüsselung) vor:
Konfigurieren Sie
ceph-salt
für die unsichere Registrierung:cephuser@adm >
ceph-salt config containers/registries_conf enablecephuser@adm >
ceph-salt config containers/registries_conf/registries \ add prefix=REG_HOST_FQDN
insecure=true \ location=REG_HOST_PORT
:5000Erstellen Sie zunächst das benötigte Verzeichnis für die unsichere Registrierung (beispielsweise
/var/lib/registry
) und starten Sie die Registrierung mit dem Befehlpodman
:#
mkdir -p /var/lib/registry#
podman run --privileged -d --name registry \ -pREG_HOST_PORT
:5000 -v /var/lib/registry:/var/lib/registry \ --restart=always registry:2Zum Starten der Registrierung nach einem Reboot erstellen Sie eine
systemd
-Einheitendatei und aktivieren Sie diese:>
sudo
podman generate systemd --files --name registry>
sudo
mv container-registry.service /etc/systemd/system/>
sudo
systemctl enable container-registry.service
Führen Sie folgende Schritte aus, um eine sichere Registrierung zu starten:
Erstellen Sie die benötigten Verzeichnisse:
#
mkdir -p /var/lib/registry/{auth,certs}Generieren Sie ein SSL-Zertifikat:
#
openssl req -newkey rsa:4096 -nodes -sha256 \ -keyout /var/lib/registry/certs/domain.key -x509 -days 365 \ -out /var/lib/registry/certs/domain.crtAnmerkungLegen Sie als Wert für
CN=[value]
den vollqualifizierten Domänennamen des Hosts ([REG_HOST_FQDN
]) fest.Kopieren Sie das Zertifikat auf alle Cluster-Knoten und aktualisieren Sie den Zertifikatcache:
#
salt-cp '*' /var/lib/registry/certs/domain.crt \ /etc/pki/trust/anchors/#
salt '*' cmd.shell "update-ca-certificates"Generieren Sie eine Kombination aus Benutzernamen und Passwort für die Authentifizierung bei der Registrierung:
#
htpasswd2 -bBc /var/lib/registry/auth/htpasswd \REG_USERNAME
REG_PASSWORD
Starten Sie die sichere Registrierung. Verwenden Sie das Flag
REGISTRY_STORAGE_DELETE_ENABLED=true
, damit Sie die Images anschließend mit dem Befehlskopeo delete
löschen können.podman run --name myregistry -p
REG_HOST_PORT
:5000 \ -v /var/lib/registry:/var/lib/registry \ -v /var/lib/registry/auth:/auth:z \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -v /var/lib/registry/certs:/certs:z \ -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \ -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \ -e REGISTRY_STORAGE_DELETE_ENABLED=true \ -e REGISTRY_COMPATIBILITY_SCHEMA1_ENABLED=true -d registry:2Testen Sie den sicheren Zugriff auf die Registrierung:
>
curl https://REG_HOST_FQDN
:REG_HOST_PORT
/v2/_catalog \ -uREG_USERNAME
:REG_PASSWORD
Sobald die lokale Registrierung erstellt ist, müssen Sie Container-Images aus der offiziellen SUSE-Registrierung unter
registry.suse.com
mit der lokalen Registrierung synchronisieren. Sie können das Kommandoskopeo sync
im Paket skopeo für diesen Zweck verwenden. Weitere Informationen finden Sie auf der Handbuchseite (man 1 skopeo-sync
). Die folgenden Beispiele dienen zur Verdeutlichung:Beispiel 7.1: Anzeigen von Manifestdateien #skopeo inspect docker://registry.suse.com/ses/7.1/ceph/ceph | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/grafana | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1 | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2 | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0 | jq .RepoTags
Beispiel 7.2: Synchronisieren mit einem Verzeichnis #Synchronisieren aller Ceph-Images:
skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/ceph /root/images/
Synchronisieren nur der neuesten Images:
skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/ceph:latest /root/images/
Beispiel 7.3: Synchronisieren von Grafana-Images: #skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/grafana /root/images/
Synchronisieren nur der neuesten Grafana-Images:
skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/grafana:latest /root/images/
Beispiel 7.4: Synchronisieren der neuesten Prometheus-Images #skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1 /root/images/ skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2 /root/images/ skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0 /root/images/
Konfigurieren Sie die URL der lokalen Registrierung:
cephuser@adm >
ceph-salt config /containers/registry_auth/registry set REG_HOST_URLKonfigurieren Sie den Benutzernamen und das Passwort für den Zugriff auf die lokale Registrierung:
cephuser@adm >
ceph-salt config /containers/registry_auth/username set REG_USERNAMEcephuser@adm >
ceph-salt config /containers/registry_auth/password set REG_PASSWORD
Sie können einen Registrierungs-Cache konfigurieren, um zu verhindern, dass die lokale Registrierung neu synchronisiert wird, wenn neue aktualisierte Container auftauchen.
7.2.10.2 Konfigurieren des Pfads zu den Container-Images #
In diesem Abschnitt wird beschrieben, wie Sie den Pfad zu den Container-Images des Bootstrap-Clusters konfigurieren können (Bereitstellung der ersten Kombination aus Ceph Monitor und Ceph Manager). Der Pfad gilt nicht für Container-Images zusätzlicher Services, z. B. des Überwachungs-Stacks.
Wenn Sie einen Proxy für die Kommunikation mit dem Container-Registrierungsserver verwenden müssen, führen Sie die folgenden Konfigurationsschritte auf allen Cluster-Knoten aus:
Kopieren Sie die Konfigurationsdatei für Container:
>
sudo
cp /usr/share/containers/containers.conf /etc/containers/containers.confBearbeiten Sie die kopierte Datei, indem Sie die Einstellung
http_proxy
in den Abschnitt[engine]
einfügen, beispielsweise:>
cat /etc/containers/containers.conf [engine] http_proxy=proxy.example.com [...]
cephadm muss einen gültigen URI-Pfad zu Container-Images kennen. Überprüfen Sie die Standardeinstellung mit folgendem Kommando:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_image_path ls
Wenn Sie keine alternative oder lokale Registrierung benötigen, geben Sie die standardmäßige SUSE-Container-Registrierung an:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_image_path set registry.suse.com/ses/7.1/ceph/ceph
Wenn Ihre Bereitstellung einen bestimmten Pfad erfordert, z. B. einen Pfad zu einer lokalen Registrierung, konfigurieren Sie ihn wie folgt:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_image_path set LOCAL_REGISTRY_PATH
7.2.11 Aktivieren der Datenverschlüsselung während der Ausführung (msgr2) #
Das Messenger-v2-Protokoll (MSGR2) ist das On-Wire-Protokoll von Ceph. Es bietet einen Sicherheitsmodus, der alle Daten verschlüsselt, die über das Netzwerk übertragen werden, verkapselt Authentifizierungs-Nutzlasten und ermöglicht die zukünftige Integration von neuen Authentifizierungsmodi (wie Kerberos).
msgr2 wird derzeit nicht von Linux-Kernel-Ceph-Clients, wie CephFS und RBG, unterstützt.
Ceph-Daemons können an mehrere Ports binden, so dass sich sowohl ältere Ceph-Clients als auch neue v2-fähige Clients mit demselben Cluster verbinden können. Standardmäßig binden MONs jetzt an den neuen, von der IANA zugewiesenen Port 3300 (CE4h oder 0xCE4) für das neue v2-Protokoll. Für das alte v1-Protokoll binden Sie auch an den alten Standardport 6789.
Das v2-Protokoll (MSGR2) unterstützt zwei Verbindungsmodi:
- crc mode (CRC-Modus)
Eine starke anfängliche Authentifizierung beim Aufbauen der Verbindung und eine CRC32C-Integritätsprüfung.
- secure mode (sicherer Modus)
Eine starke anfängliche Authentifizierung beim Aufbauen der Verbindung und eine vollständige Verschlüsselung des gesamten Datenverkehrs nach der Authentifizierung, einschließlich einer kryptografischen Integritätsprüfung.
Für die meisten Verbindungen stehen Optionen zur Verfügung, mit denen die Verwendung der Modi gesteuert wird:
- ms_cluster_mode (MS_Cluster_Modus)
Der für die Intra-Clusterkommunikation zwischen Ceph-Daemons verwendete Verbindungsmodus (oder die zulässigen Modi). Wenn mehrere Modi aufgeführt sind, werden die zuerst aufgeführten Modi bevorzugt.
- ms_service_mode (MS_Service_Modus)
Eine Liste der zulässigen Modi, die für Clients beim Herstellen der Verbindung mit dem Cluster verwendet werden sollen.
- ms_client_mode (MS_Client_Modus)
Eine nach Präferenz geordnete Liste von Verbindungsmodi, die für Clients bei der Kommunikation mit einem Ceph-Cluster verwendet (oder zugelassen) werden sollen.
Parallel dazu gibt es eine Reihe von Optionen, die speziell für Monitore gelten und es Administratoren ermöglichen, unterschiedliche (in der Regel sicherere) Anforderungen an die Kommunikation mit den Monitoren festzulegen.
- ms_mon_cluster_mode (MS_MON_Cluster_Modus)
Der Verbindungsmodus (oder zulässige Modi), der zwischen den Monitoren verwendet werden soll.
- ms_mon_service_mode (MS_MON_Service_Modus)
Eine Liste der für Clients oder andere Ceph-Daemons zulässigen Modi, die beim Herstellen der Verbindung mit Monitoren verwendet werden sollen.
- ms_mon_client_mode (MS_MON_Client_Modus)
Eine nach Präferenz geordnete Liste der Verbindungsmodi, die für Clients oder Nicht-Monitor-Daemons beim Herstellen einer Verbindung mit Monitoren verwendet werden sollen.
Zum Aktivieren des MSGR2-Verschlüsselungsmodus während der Bereitstellung müssen Sie einige Konfigurationsoptionen zur ceph-salt
-Konfiguration hinzufügen, bevor Sie ceph-salt apply
ausführen.
Führen Sie für den sicheren
Modus folgende Kommandos aus.
Fügen Sie den globalen Abschnitt zu ceph_conf
im Konfigurationswerkzeug ceph-salt
hinzu:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_conf add global
Wählen Sie eine der folgenden Optionen aus:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode "secure crc"root@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode "secure crc"root@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode "secure crc"
Stellen Sie sicher, dass secure
vor crc
steht.
Führen Sie zum Erzwingen des secure
Modus folgende Kommandos aus:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode secureroot@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode secureroot@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode secure
Wenn Sie eine der oben genannten Einstellungen ändern möchten, legen Sie die Konfigurationsänderungen im Monitor-Konfigurationsspeicher fest. Dies wird mit dem Kommando ceph config set
erreicht.
root@master #
ceph config set global CONNECTION_OPTION CONNECTION_MODE [--force]
Beispiel:
root@master #
ceph config set global ms_cluster_mode "secure crc"
Überprüfen Sie den aktuellen Wert, einschließlich des Standardwerts, mit folgendem Kommando:
root@master #
ceph config get CEPH_COMPONENT CONNECTION_OPTION
Führen Sie beispielsweise zum Abrufen des ms_cluster_mode
für OSDs folgendes Kommando aus:
root@master #
ceph config get osd ms_cluster_mode
7.2.12 Konfigurieren des Clusternetzwerks #
Wenn Sie ein separates Clusternetzwerk betreiben, müssen Sie optional die IP-Adresse des Clusternetzwerks festlegen, gefolgt von dem Teil der Teilnetzmaske nach dem Schrägstrich, zum Beispiel 192.168.10.22/24
.
Führen Sie zum Aktivieren von cluster_network
(Clusternetzwerk) folgende Kommandos aus:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_conf add globalroot@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set cluster_network NETWORK_ADDR
7.2.13 Überprüfen der Cluster-Konfiguration #
Die minimale Cluster-Konfiguration ist abgeschlossen. Überprüfen Sie sie auf offensichtliche Fehler:
root@master #
ceph-salt config ls
o- / ............................................................... [...]
o- ceph_cluster .................................................. [...]
| o- minions .............................................. [Minions: 5]
| | o- ses-master.example.com .................................. [admin]
| | o- ses-min1.example.com ......................... [bootstrap, admin]
| | o- ses-min2.example.com ................................. [no roles]
| | o- ses-min3.example.com ................................. [no roles]
| | o- ses-min4.example.com ................................. [no roles]
| o- roles ....................................................... [...]
| o- admin .............................................. [Minions: 2]
| | o- ses-master.example.com ....................... [no other roles]
| | o- ses-min1.example.com ................. [other roles: bootstrap]
| o- bootstrap ................................ [ses-min1.example.com]
| o- cephadm ............................................ [Minions: 5]
| o- tuned ..................................................... [...]
| o- latency .......................................... [no minions]
| o- throughput ....................................... [no minions]
o- cephadm_bootstrap ............................................. [...]
| o- advanced .................................................... [...]
| o- ceph_conf ................................................... [...]
| o- ceph_image_path .............. [registry.suse.com/ses/7.1/ceph/ceph]
| o- dashboard ................................................... [...]
| o- force_password_update ................................. [enabled]
| o- password ................................... [randomly generated]
| o- username ................................................ [admin]
| o- mon_ip ............................................ [192.168.10.20]
o- containers .................................................... [...]
| o- registries_conf ......................................... [enabled]
| | o- registries .............................................. [empty]
| o- registry_auth ............................................... [...]
| o- password .............................................. [not set]
| o- registry .............................................. [not set]
| o- username .............................................. [not set]
o- ssh .................................................. [Key Pair set]
| o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
| o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
o- time_server ............................................... [enabled]
o- external_servers .............................................. [1]
| o- 0.pt.pool.ntp.org ......................................... [...]
o- servers ....................................................... [1]
| o- ses-master.example.com .................................... [...]
o- subnet ............................................. [10.20.6.0/24]
Mit folgendem Kommando können Sie überprüfen, ob die Konfiguration des Clusters gültig ist:
root@master #
ceph-salt status
cluster: 5 minions, 0 hosts managed by cephadm
config: OK
7.2.14 Exportieren von Cluster-Konfigurationen #
Nachdem Sie den Basiscluster konfiguriert haben und die Konfiguration gültig ist, ist es sinnvoll, die Konfiguration in eine Datei zu exportieren:
root@master #
ceph-salt export > cluster.json
Die Ausgabe von ceph-salt export
enthält den privaten SSH-Schlüssel. Wenn Sie Bedenken hinsichtlich sicherheitsrelevanter Auswirkungen haben, führen Sie dieses Kommando nur mit den entsprechenden Vorsichtsmaßnahmen aus.
Führen Sie folgendes Kommando aus, falls Sie die Cluster-Konfiguration unterbrechen und zu einem Sicherungszustand zurückkehren müssen:
root@master #
ceph-salt import cluster.json
7.3 Aktualisieren von Knoten und Bootstrapping von Minimalclustern #
Aktualisieren Sie vor dem Bereitstellen des Clusters alle Softwarepakete auf allen Knoten:
root@master #
ceph-salt update
Wenn ein Knoten während der Aktualisierung Reboot is needed
(Reboot erforderlich) meldet, wurden wichtige Betriebssystempakete (z. B. der Kernel) auf eine neuere Version aktualisiert. Sie müssen den Knoten daraufhin neu booten, um die Änderungen zu übernehmen.
Für einen erforderlichen Reboot aller Knoten hängen Sie entweder die Option --reboot
an
root@master #
ceph-salt update --reboot
oder Sie booten sie neu in einem separaten Schritt:
root@master #
ceph-salt reboot
Der Salt Master wird niemals mit den Kommandos ceph-salt update --reboot
oder ceph-salt reboot
neu gebootet. Wenn der Salt Master neu gebootet werden muss, müssen Sie ihn manuell neu booten.
Führen Sie nach dem Aktualisieren des Clusters ein Bootstrapping des Minimalclusters aus:
root@master #
ceph-salt apply
Wenn das Bootstrapping abgeschlossen ist, verfügt der Cluster über einen Ceph Monitor und einen Ceph Manager.
Mit obigem Kommando wird eine interaktive Benutzeroberfläche geöffnet, die den aktuellen Fortschritt der einzelnen Minions anzeigt.
Wenn Sie die Konfiguration über ein Skript anwenden müssen, gibt es auch einen nicht-interaktiven Modus für die Bereitstellung. Dies ist auch nützlich, wenn Sie den Cluster von einem Remote-Rechner aus bereitstellen, da das ständige Aktualisieren der Fortschrittsinformationen auf dem Bildschirm über das Netzwerk störend sein kann:
root@master #
ceph-salt apply --non-interactive
7.4 Prüfen der letzten Schritte #
Nach dem Ausführen des Kommandos ceph-salt apply
sollten Sie einen Ceph Monitor und einen Ceph Manager zur Verfügung haben. Sie sollten das Kommando ceph status
erfolgreich auf jedem der Minions ausführen können, denen die Admin
-Rolle als root
oder der Benutzer cephadm
mit sudo
zugewiesen wurde.
In den nächsten Schritten werden mit cephadm zusätzlich der Ceph Monitor, der Ceph Manager, die OSDs, der Überwachungs-Stack und die Gateways installiert.
Bevor Sie fortfahren, überprüfen Sie die Netzwerkeinstellungen Ihres neuen Clusters. Zu diesem Zeitpunkt wurde die Einstellung public_network
(öffentliches Netzwerk) auf der Grundlage dessen, was für /cephadm_bootstrap/mon_ip
in der ceph-salt
-Konfiguration eingegeben wurde, ausgefüllt. Diese Einstellung wurde jedoch nur auf Ceph Monitor angewendet. Sie können diese Einstellung mit dem folgenden Kommando überprüfen:
root@master #
ceph config get mon public_network
Dies ist das Minimum, das Ceph benötigt, um zu funktionieren. Wir empfehlen jedoch, diese public_network
-Einstellung global
zu machen, was bedeutet, dass sie für alle Arten von Ceph-Daemons gilt und nicht nur für MONs:
root@master #
ceph config set global public_network "$(ceph config get mon public_network)"
Dieser Schritt ist nicht erforderlich. Wenn Sie diese Einstellung jedoch nicht verwenden, überwachen die Ceph-OSDs und andere Daemons (außer Ceph Monitor) auf allen Adressen.
Führen Sie folgendes Kommando aus, wenn Sie möchten, dass Ihre OSDs untereinander über ein komplett separates Netzwerk kommunizieren:
root@master #
ceph config set global cluster_network "cluster_network_in_cidr_notation"
Durch dieses Kommando wird sichergestellt, dass die in Ihrer Bereitstellung erstellten OSDs von Anfang an das vorgesehene Clusternetzwerk verwenden.
Wenn für Ihren Cluster dichte Knoten festgelegt sind (mehr als 62 OSDs pro Host), stellen Sie sicher, dass Sie genügend Ports für Ceph OSDs zuweisen. Der Standardbereich (6800–7300) lässt derzeit nicht mehr als 62 OSDs pro Host zu. Für einen Cluster mit dichten Knoten müssen Sie die Einstellung ms_bind_port_max
auf einen geeigneten Wert anpassen. Jedes OSD verbraucht acht zusätzliche Ports. Bei einem Host, der zum Beispiel für die Ausführung von 96 OSDs eingerichtet ist, werden 768 Ports benötigt. ms_bind_port_max
sollte mit folgendem Kommando mindestens auf 7568 festgelegt werden:
root@master #
ceph config set osd.* ms_bind_port_max 7568
Sie müssen Ihre Firewall-Einstellungen entsprechend anpassen, damit dies funktioniert. Weitere Informationen zu diesem Thema finden Sie unter dem Stichwort Book “Troubleshooting Guide”, Chapter 13 “Hints and tips”, Section 13.7 “Firewall settings for Ceph”.
7.5 Deaktivieren unsicherer Clients #
Seit Pacific v15.2.11 wurde eine neue Zustandswarnung eingeführt, die Sie darüber informiert, dass unsichere Clients im Cluster aufgenommen werden können. Diese Warnung ist standardmäßig aktiviert. Das Ceph Dashboard zeigt den Cluster mit dem Status HEALTH_WARN
an. Bei einer Überprüfung des Cluster-Status über die Kommandozeile werden folgende Informationen angezeigt:
cephuser@adm >
ceph status
cluster:
id: 3fe8b35a-689f-4970-819d-0e6b11f6707c
health: HEALTH_WARN
mons are allowing insecure global_id reclaim
[...]
Diese Warnung bedeutet, dass Ceph Monitors immer noch alten, ungepatchten Clients erlauben, sich mit dem Cluster zu verbinden. Dadurch wird sichergestellt, dass bestehende Clients während eines Cluster-Upgrades weiterhin eine Verbindung herstellen können. Sie werden jedoch gewarnt, dass ein Problem vorhanden ist, das behoben werden muss. Nach dem Upgrade des Clusters und aller Clients auf die neueste Version von Ceph verhindern Sie mit folgendem Kommando, dass sich ungepatchte Clients mit dem Cluster verbinden:
cephuser@adm >
ceph config set mon auth_allow_insecure_global_id_reclaim false
8 Bereitstellen der verbleibenden wichtigsten Services mit cephadm #
Nachdem Sie den Ceph-Basiscluster bereitgestellt haben, sollten Sie die wichtigsten Services auf weitere Cluster-Knoten verteilen. Stellen Sie zusätzliche Services bereit, um die Daten des Clusters für Clients zugänglich zu machen.
Derzeit unterstützen wir die Bereitstellung von Ceph-Services auf der Kommandozeile mit dem Ceph-Orchestrator (ceph orch
-Unterkommandos).
8.1 Das Kommando ceph orch
#
Mit dem Ceph-Orchestrator-Kommando ceph orch
(einer Schnittstelle zum cephadm-Modul) werden die Clusterkomponenten aufgelistet und Ceph-Services auf neuen Cluster-Knoten bereitgestellt.
8.1.1 Anzeigen des Orchestrator-Status #
Mit folgendem Kommando werden der aktuelle Modus und Status des Ceph-Orchestrators angezeigt.
cephuser@adm >
ceph orch status
8.1.2 Auflisten von Geräten, Services und Daemons #
Führen Sie zum Auflisten aller Datenträgergeräte folgendes Kommando aus:
cephuser@adm >
ceph orch device ls
Hostname Path Type Serial Size Health Ident Fault Available
ses-master /dev/vdb hdd 0d8a... 10.7G Unknown N/A N/A No
ses-min1 /dev/vdc hdd 8304... 10.7G Unknown N/A N/A No
ses-min1 /dev/vdd hdd 7b81... 10.7G Unknown N/A N/A No
[...]
Service ist ein allgemeiner Begriff für einen Ceph-Service eines bestimmten Typs, zum Beispiel Ceph Manager.
Daemon ist eine bestimmte Instanz eines Service, z. B. ein Prozess mgr.ses-min1.gdlcik
, der auf einem Knoten namens ses-min1
ausgeführt wird.
Führen Sie zum Auflisten aller Services, die cephadm kennt, folgendes Kommando aus:
cephuser@adm >
ceph orch ls
NAME RUNNING REFRESHED AGE PLACEMENT IMAGE NAME IMAGE ID
mgr 1/0 5m ago - <no spec> registry.example.com/[...] 5bf12403d0bd
mon 1/0 5m ago - <no spec> registry.example.com/[...] 5bf12403d0bd
Sie können die Liste mit dem optionalen Parameter --host
auf Services auf einem bestimmten Knoten und mit dem optionalen Parameter --service-type
auf Services eines bestimmten Typs beschränken. Akzeptiert werden die Typen mon
, osd
, mgr
, mds
und rgw
.
Führen Sie folgendes Kommando aus, um alle von cephadm bereitgestellten aktiven Daemons aufzulisten:
cephuser@adm >
ceph orch ps
NAME HOST STATUS REFRESHED AGE VERSION IMAGE ID CONTAINER ID
mgr.ses-min1.gd ses-min1 running) 8m ago 12d 15.2.0.108 5bf12403d0bd b8104e09814c
mon.ses-min1 ses-min1 running) 8m ago 12d 15.2.0.108 5bf12403d0bd a719e0087369
Fragen Sie den Status eines bestimmten Daemons mit --daemon_type
und --daemon_id
ab. Bei OSDs ist die ID die numerische OSD-ID. Bei MDS ist die ID der Name des Dateisystems:
cephuser@adm >
ceph orch ps --daemon_type osd --daemon_id 0cephuser@adm >
ceph orch ps --daemon_type mds --daemon_id my_cephfs
8.2 Service- und Platzierungsspezifikation #
Die Spezifikation der Bereitstellung von Ceph-Services erfolgt am besten durch Erstellen einer YAML-formatierten Datei mit der Spezifikation der Services, die Sie bereitstellen möchten.
8.2.1 Erstellen von Servicespezifikationen #
Sie können für jede Art von Service eine eigene Spezifikationsdatei erstellen, wie zum Beispiel:
root@master #
cat nfs.yml
service_type: nfs
service_id: EXAMPLE_NFS
placement:
hosts:
- ses-min1
- ses-min2
spec:
pool: EXAMPLE_POOL
namespace: EXAMPLE_NAMESPACE
Alternativ können Sie mehrere (oder alle) Servicetypen in einer Datei angeben, z. B. cluster.yml
, die beschreibt, auf welchen Knoten bestimmte Services ausgeführt werden sollen. Denken Sie daran, einzelne Servicetypen mit drei Bindestrichen (---
) zu trennen:
cephuser@adm >
cat cluster.yml
service_type: nfs
service_id: EXAMPLE_NFS
placement:
hosts:
- ses-min1
- ses-min2
spec:
pool: EXAMPLE_POOL
namespace: EXAMPLE_NAMESPACE
---
service_type: rgw
service_id: REALM_NAME.ZONE_NAME
placement:
hosts:
- ses-min1
- ses-min2
- ses-min3
---
[...]
Die oben genannten Eigenschaften haben folgende Bedeutung:
service_type
Der Typ des Service. Er kann entweder ein Ceph-Service (
mon
,mgr
,mds
,crash
,osd
oderrbd-mirror
), ein Gateway (nfs
oderrgw
) oder Teil des Überwachungs-Stacks (alertmanager
,grafana
,node-exporter
oderprometheus
) sein.service_id
Der Name des Service. Für Spezifikationen vom Typ
mon
,mgr
,alertmanager
,grafana
,node-exporter
undprometheus
ist die Eigenschaftservice_id
nicht erforderlich.placement
Gibt an, auf welchen Knoten der Service ausgeführt wird. Weitere Informationen finden Sie in Abschnitt 8.2.2, „Erstellen von Platzierungsspezifikationen“.
spec
Zusätzliche Spezifikation, die für den Servicetyp relevant ist.
Ceph-Cluster-Services haben in der Regel eine Reihe von für sie spezifischen Eigenschaften. Beispiele und Details zu den Spezifikationen der einzelnen Services finden Sie in Abschnitt 8.3, „Bereitstellen von Ceph-Services“.
8.2.2 Erstellen von Platzierungsspezifikationen #
Zum Bereitstellen von Ceph-Services muss cephadm wissen, auf welchen Knoten sie bereitgestellt werden sollen. Verwenden Sie die Eigenschaft placement
und führen Sie die Host-Kurznamen der Knoten auf, für die der Service gilt:
cephuser@adm >
cat cluster.yml
[...]
placement:
hosts:
- host1
- host2
- host3
[...]
8.2.3 Anwenden von Clusterspezifikationen #
Nachdem Sie eine vollständige cluster.yml
-Datei mit Spezifikationen zu allen Services und deren Platzierung erstellt haben, können Sie den Cluster mit folgendem Kommando anwenden:
cephuser@adm >
ceph orch apply -i cluster.yml
Führen Sie zum Anzeigen des Clusterstatus das Kommando ceph orch
aus. Weitere Informationen finden Sie unter Abschnitt 8.1.1, „Anzeigen des Orchestrator-Status“.
8.2.4 Exportieren der Spezifikation eines aktiven Clusters #
Obwohl Sie dem Ceph-Cluster Services mithilfe der Spezifikationsdateien bereitgestellt haben (wie in Abschnitt 8.2, „Service- und Platzierungsspezifikation“ beschrieben), kann die Konfiguration des Clusters während seines Betriebs von der ursprünglichen Spezifikation abweichen. Möglicherweise haben Sie auch die Spezifikationsdateien versehentlich entfernt.
Führen Sie zum Abrufen der vollständigen Spezifikation eines aktiven Clusters folgendes Kommando aus:
cephuser@adm >
ceph orch ls --export
placement:
hosts:
- hostname: ses-min1
name: ''
network: ''
service_id: my_cephfs
service_name: mds.my_cephfs
service_type: mds
---
placement:
count: 2
service_name: mgr
service_type: mgr
---
[...]
Sie können die Option --format
anhängen, um das Standard-Ausgabeformat yaml
zu ändern. Sie können zwischen json
, json-pretty
oder yaml
wählen. Beispiel:
ceph orch ls --export --format json
8.3 Bereitstellen von Ceph-Services #
Sobald der Basiscluster ausgeführt wird, können Sie Ceph-Services auf weiteren Knoten bereitstellen.
8.3.1 Bereitstellen von Ceph Monitors und Ceph Managers #
Für den Ceph-Cluster werden drei oder fünf MONs bereitgestellt, die auf verschiedenen Knoten verteilt sind. Wenn sich fünf oder mehr Knoten im Cluster befinden, empfehlen wir die Bereitstellung von fünf MONs. Es hat sich bewährt, MGRs auf denselben Knoten wie MONs zu installieren.
Wenn Sie MONs und MGRs bereitstellen, denken Sie daran, den ersten MON einzubeziehen, den Sie bei der Konfiguration des Basisclusters in Abschnitt 7.2.5, „Festlegen des ersten MON/MGR-Knotens“ hinzugefügt haben.
Wenden Sie zum Bereitstellen von MONs folgende Spezifikation an:
service_type: mon placement: hosts: - ses-min1 - ses-min2 - ses-min3
Wenn Sie einen weiteren Knoten hinzufügen müssen, hängen Sie den Hostnamen an dieselbe YAML-Liste an. Beispiel:
service_type: mon placement: hosts: - ses-min1 - ses-min2 - ses-min3 - ses-min4
Wenden Sie auf ähnliche Weise zum Bereitstellen von MONs folgende Spezifikationen an:
Stellen Sie sicher, dass mindestens drei Ceph Manager in jeder Bereitstellung vorhanden sind.
service_type: mgr placement: hosts: - ses-min1 - ses-min2 - ses-min3
Wenn sich MONs oder MGRs nicht im gleichen Teilnetz befinden, müssen Sie die Teilnetzadressen anhängen. Beispiel:
service_type: mon placement: hosts: - ses-min1:10.1.2.0/24 - ses-min2:10.1.5.0/24 - ses-min3:10.1.10.0/24
8.3.2 Bereitstellen von Ceph OSDs #
Ein Speichergerät gilt als verfügbar, wenn alle folgenden Bedingungen erfüllt sind:
Das Gerät hat keine Partitionen.
Das Gerät hat keinen LVM-Status.
Das Gerät ist nicht eingehängt.
Das Gerät enthält kein Dateisystem.
Das Gerät enthält kein BlueStore-OSD.
Das Gerät ist größer als 5 GB.
Wenn die oben genannten Bedingungen nicht erfüllt sind, verweigert Ceph die Bereitstellung derartiger OSDs.
Zum Bereitstellen von OSDs haben Sie zwei Möglichkeiten:
Weisen Sie Ceph an, alle verfügbaren und nicht verwendeten Speichergeräte zu verbrauchen:
cephuser@adm >
ceph orch apply osd --all-available-devicesVerwenden Sie DriveGroups (weitere Informationen hierzu finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 13 “Betriebsaufgaben”, Section 13.4.3 “Hinzufügen von OSDs mit der DriveGroups-Spezifikation”), um OSD-Spezifikationen zu erstellen, die Geräte beschreiben, die basierend auf ihren Eigenschaften bereitgestellt werden. Beispiele hierfür sind der Gerätetyp (SSD oder HDD), die Gerätemodellnamen, die Größe oder die Knoten, auf denen die Geräte vorhanden sind. Wenden Sie dann die Spezifikation mit folgendem Kommando an:
cephuser@adm >
ceph orch apply osd -i drive_groups.yml
8.3.3 Bereitstellen von Metadatenservern #
Für CephFS sind ein oder mehrere Metadata Server (MDS)-Services erforderlich. Wenn Sie ein CephFS erstellen möchten, erstellen Sie zunächst MDS-Server durch Anwenden der folgenden Spezifikation:
Stellen Sie sicher, dass Sie mindestens zwei Pools, einen für CephFS-Daten und einen für CephFS-Metadaten, erstellt haben, bevor Sie die folgende Spezifikation anwenden.
service_type: mds service_id: CEPHFS_NAME placement: hosts: - ses-min1 - ses-min2 - ses-min3
Erstellen Sie das CephFS, sobald die MDS funktionsfähig sind:
ceph fs new CEPHFS_NAME metadata_pool data_pool
8.3.4 Bereitstellen von Object Gateways #
cephadm stellt ein Object Gateway als eine Sammlung von Daemons bereit, die einen bestimmten Bereich und eine Zone verwalten.
Sie können entweder einen Object-Gateway-Service mit einem bereits vorhandenen Bereich und einer bereits vorhandenen Zone verknüpfen (weitere Informationen finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 21 “Ceph Object Gateway”, Section 21.13 “Object Gateways an mehreren Standorten”), oder Sie können einen nicht vorhandenen REALM_NAME (Bereichsnamen) und ZONE_NAME (Zonennamen) angeben, die dann automatisch erstellt werden, nachdem Sie die folgende Konfiguration angewendet haben:
service_type: rgw service_id: REALM_NAME.ZONE_NAME placement: hosts: - ses-min1 - ses-min2 - ses-min3 spec: rgw_realm: RGW_REALM rgw_zone: RGW_ZONE
8.3.4.1 Verwenden des sicheren SSL-Zugangs #
Um eine sichere SSL-Verbindung zum Object Gateway zu verwenden, benötigen Sie ein Paar gültiger SSL-Zertifikats- und Schlüsseldateien (weitere Details finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 21 “Ceph Object Gateway”, Section 21.7 “Aktivieren von HTTPS/SSL für Object Gateways”). Sie müssen SSL aktivieren, eine Portnummer für SSL-Verbindungen sowie die SSL-Zertifikats- und Schlüsseldateien angeben.
Nehmen Sie Folgendes in Ihre Spezifikation auf, um SSL zu aktivieren und die Portnummer anzugeben:
spec: ssl: true rgw_frontend_port: 443
Um das SSL-Zertifikat und den Schlüssel festzulegen, können Sie deren Inhalte direkt in die YAML-Spezifikationsdatei einfügen. Das Pipe-Zeichen (|
) am Zeilenende weist den Parser darauf hin, dass er eine mehrzeilige Zeichenkette als Wert erwarten soll. Beispiel:
spec: ssl: true rgw_frontend_port: 443 rgw_frontend_ssl_certificate: | -----BEGIN CERTIFICATE----- MIIFmjCCA4KgAwIBAgIJAIZ2n35bmwXTMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV BAYTAkFVMQwwCgYDVQQIDANOU1cxHTAbBgNVBAoMFEV4YW1wbGUgUkdXIFNTTCBp [...] -----END CERTIFICATE----- rgw_frontend_ssl_key: | -----BEGIN PRIVATE KEY----- MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQDLtFwg6LLl2j4Z BDV+iL4AO7VZ9KbmWIt37Ml2W6y2YeKX3Qwf+3eBz7TVHR1dm6iPpCpqpQjXUsT9 [...] -----END PRIVATE KEY-----
Statt den Inhalt der SSL-Zertifikats- und Schlüsseldateien einzufügen, können Sie die Schlüsselwörter rgw_frontend_ssl_certificate:
und rgw_frontend_ssl_key:
weglassen und sie in die Konfigurationsdatenbank hochladen:
cephuser@adm >
ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.crt \ -i SSL_CERT_FILEcephuser@adm >
ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.key \ -i SSL_KEY_FILE
8.3.4.1.1 Konfigurieren des Object Gateway zur Überwachung von Port 443 und 80 #
Führen Sie die folgenden Schritte aus, um das Object Gateway zur Überwachung beider Ports, Port 443 (HTTPS) und Port 80 (HTTP), zu konfigurieren:
Die Kommandos in diesem Verfahren verwenden den Standardwert default
für den Bereich und die Zone.
Stellen Sie das Object Gateway bereit, indem Sie eine Spezifikationsdatei angeben. Weitere Informationen zur Object-Gateway-Spezifikation finden Sie in Abschnitt 8.3.4, „Bereitstellen von Object Gateways“. Verwenden Sie den folgenden Befehl:
cephuser@adm >
ceph orch apply -i SPEC_FILEWenn SSL-Zertifikate nicht in der Spezifikationsdatei enthalten sind, fügen Sie sie mit dem folgenden Kommando hinzu:
cephuser@adm >
ceph config-key set rgw/cert/default/default.crt -i certificate.pemcephuser@adm >
ceph config-key set rgw/cert/default/default.key -i key.pemÄndern Sie den Standardwert der Option
rgw_frontends
:cephuser@adm >
ceph config set client.rgw.default.default rgw_frontends \ "beast port=80 ssl_port=443"Entfernen Sie die von cephadm erstellte spezifische Konfiguration. Stellen Sie fest, für welches Ziel die Option
rgw_frontends
konfiguriert wurde, indem Sie dieses Kommando ausführen:cephuser@adm >
ceph config dump | grep rgwWenn das Ziel beispielsweise
client.rgw.default.default.node4.yiewdu
lautet, entfernen Sie den aktuellen spezifischen Wert fürrgw_frontends
:cephuser@adm >
ceph config rm client.rgw.default.default.node4.yiewdu rgw_frontendsTippStatt einen Wert für
rgw_frontends
zu entfernen, können Sie ihn auch angeben. Beispiel:cephuser@adm >
ceph config set client.rgw.default.default.node4.yiewdu \ rgw_frontends "beast port=80 ssl_port=443"Starten Sie Object Gateways neu:
cephuser@adm >
ceph orch restart rgw.default.default
8.3.4.2 Bereitstellung mit einem Untercluster #
Mit Unterclustern können Sie die Knoten in Ihren Clustern organisieren, um Workloads zu isolieren und die elastische Skalierung zu erleichtern. Wenden Sie die folgende Konfiguration an, wenn Sie die Bereitstellung mit einem Untercluster durchführen:
service_type: rgw service_id: REALM_NAME.ZONE_NAME.SUBCLUSTER placement: hosts: - ses-min1 - ses-min2 - ses-min3 spec: rgw_realm: RGW_REALM rgw_zone: RGW_ZONE subcluster: SUBCLUSTER
8.3.5 Bereitstellen von iSCSI-Gateways #
iSCSI ist ein Storage Area Network (SAN)-Protokoll, das Clients (genannt Initiators) das Senden von SCSI-Kommandos an SCSI-Speichergeräte (Ziele) auf Remote-Servern ermöglicht.
Wenden Sie die folgende Konfiguration für die Bereitstellung an. Stellen Sie sicher, dass trusted_ip_list
die IP-Adressen aller iSCSI-Gateway- und Ceph-Manager-Knoten enthält (wie im folgenden Ausgabebeispiel gezeigt).
Stellen Sie sicher, dass der Pool erstellt wurde, bevor Sie die folgende Spezifikation anwenden.
service_type: iscsi service_id: EXAMPLE_ISCSI placement: hosts: - ses-min1 - ses-min2 - ses-min3 spec: pool: EXAMPLE_POOL api_user: EXAMPLE_USER api_password: EXAMPLE_PASSWORD trusted_ip_list: "IP_ADDRESS_1,IP_ADDRESS_2"
Stellen Sie sicher, dass die für trusted_ip_list
aufgelisteten IPs kein Leerzeichen nach der Kommatrennung aufweisen.
8.3.5.1 Sichere SSL-Konfiguration #
Zur Verwendung einer sicheren SSL-Verbindung zwischen dem Ceph Dashboard und der iSCSI-Ziel-API benötigen Sie ein Paar gültiger SSL-Zertifikate und Schlüsseldateien. Sie können entweder von einer Zertifizierungsstelle ausgestellt oder eigensigniert sein (weitere Informationen finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 10 “Manuelle Konfiguration”, Section 10.1.1 “Erstellen von eigensignierten Zertifikaten”). Nehmen Sie zum Aktivieren von SSL die Einstellung api_secure: true
in Ihre Spezifikationsdatei auf:
spec: api_secure: true
Um das SSL-Zertifikat und den Schlüssel festzulegen, können Sie den Inhalt direkt in die YAML-Spezifikationsdatei einfügen. Das Pipe-Zeichen (|
) am Zeilenende weist den Parser darauf hin, dass er eine mehrzeilige Zeichenkette als Wert erwarten soll. Beispiel:
spec: pool: EXAMPLE_POOL api_user: EXAMPLE_USER api_password: EXAMPLE_PASSWORD trusted_ip_list: "IP_ADDRESS_1,IP_ADDRESS_2" api_secure: true ssl_cert: | -----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIYMC4xNzc1NDQxNjEzMzc2MjMyXzxvQ7EcMA0GCSqGSIb3 DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMRcwFQYDVQQHDA5T [...] -----END CERTIFICATE----- ssl_key: | -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5jdYbjtNTAKW4 /CwQr/7wOiLGzVxChn3mmCIF3DwbL/qvTFTX2d8bDf6LjGwLYloXHscRfxszX/4h [...] -----END PRIVATE KEY-----
8.3.6 Bereitstellen von NFS Ganesha #
NFS Ganesha unterstützt NFS-Version 4.1 und neuer. NFS Ganesha unterstützt nicht NFS-Version 3.
cephadm stellt NFS Ganesha unter Verwendung eines vordefinierten RADOS-Pools und eines optionalen Namespace bereit. Wenden Sie zum Bereitstellen von NFS Ganesha folgende Spezifikation an:
Sie müssen über einen vordefinierten RADOS-Pool verfügen, da sonst der ceph orch apply
-Vorgang fehlschlägt. Weitere Informationen zum Erstellen eines Pools finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 18 “Verwalten von Speicher-Pools”, Section 18.1 “Erstellen eines Pools”.
service_type: nfs service_id: EXAMPLE_NFS placement: hosts: - ses-min1 - ses-min2 spec: pool: EXAMPLE_POOL namespace: EXAMPLE_NAMESPACE
EXAMPLE_NFS mit einer beliebigen Zeichenkette, die den NFS-Export identifiziert.
EXAMPLE_POOL mit dem Namen des Pools, in dem das NFS-Ganesha-RADOS-Konfigurationsobjekt gespeichert werden soll.
EXAMPLE_NAMESPACE (optional) mit dem gewünschten Object-Gateway-NFS-Namespace (zum Beispiel
ganesha
).
8.3.7 Bereitstellung rbd-mirror
#
Der Service rbd-mirror
synchronisiert RADOS-Blockgeräte-Images zwischen zwei Ceph-Clustern (weitere Details finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 20 “RADOS-Blockgerät”, Section 20.4 “RBD-Image-Spiegel”). Stellen Sie rbd-mirror
mit folgender Spezifikation bereit:
service_type: rbd-mirror service_id: EXAMPLE_RBD_MIRROR placement: hosts: - ses-min3
8.3.8 Bereitstellen des Überwachungs-Stacks #
Der Überwachungs-Stack besteht aus Prometheus, Prometheus-Exportern, Prometheus Alertmanager und Grafana. Ceph Dashboard nutzt diese Komponenten, um detaillierte Kennzahlen zur Clusternutzung und -leistung zu speichern und zu visualisieren.
Wenn für Ihre Bereitstellung benutzerdefinierte oder lokal bereitgestellte Container-Images der Überwachungs-Stack-Services erforderlich sind, finden Sie Informationen hierzu im Book “Betriebs- und Verwaltungshandbuch”, Chapter 16 “Überwachung und Warnungen”, Section 16.1 “Konfigurieren von benutzerdefinierten oder lokalen Images”.
Führen Sie zum Bereitstellen des Überwachungs-Stacks folgende Schritte aus:
Aktivieren Sie das Modul
prometheus
im Ceph-Manager-Daemon. Dadurch werden die internen Ceph-Kennzahlen offengelegt, so dass Prometheus sie lesen kann:cephuser@adm >
ceph mgr module enable prometheusAnmerkungStellen Sie sicher, dass dieses Kommando vor dem Bereitstellen von Prometheus ausgeführt wird. Wenn das Kommando vor der Bereitstellung nicht ausgeführt wurde, müssen Sie Prometheus erneut bereitstellen, um die Konfiguration von Prometheus zu aktualisieren:
cephuser@adm >
ceph orch redeploy prometheusErstellen Sie eine Spezifikationsdatei (z. B.
monitoring.yaml
) mit einem Inhalt ähnlich dem folgenden:service_type: prometheus placement: hosts: - ses-min2 --- service_type: node-exporter --- service_type: alertmanager placement: hosts: - ses-min4 --- service_type: grafana placement: hosts: - ses-min3
Wenden Sie die Überwachungsservices mit folgendem Kommando an:
cephuser@adm >
ceph orch apply -i monitoring.yamlEs kann ein oder zwei Minuten dauern, bis die Überwachungsservices bereitgestellt sind.
Prometheus, Grafana und das Ceph Dashboard sind automatisch so konfiguriert, dass sie miteinander kommunizieren. Dies führt zu einer voll funktionsfähigen Grafana-Integration im Ceph Dashboard, wenn es wie oben beschrieben bereitgestellt wird.
Die einzige Ausnahme von dieser Regel ist die Überwachung mit RBD-Images. Weitere Informationen zu diesem Thema finden Sie unter dem Stichwort Book “Betriebs- und Verwaltungshandbuch”, Chapter 16 “Überwachung und Warnungen”, Section 16.5.4 “Aktivieren der RBD-Image-Überwachung”.
9 Bereitstellung zusätzlicher Services #
9.1 Installation des iSCSI Gateways #
iSCSI ist ein Storage Area Network (SAN)-Protokoll, das Clients (genannt Initiators) das Senden von SCSI-Kommandos an SCSI-Speichergeräte (Targets) auf Remote Servern ermöglicht. SUSE Enterprise Storage 7.1 umfasst eine Funktion, die die Ceph-Speicherverwaltung für heterogene Clients wie Microsoft Windows* und VMware* vSphere über das iSCSI-Protokoll öffnet. Multipath iSCSI-Zugriff ermöglicht die Verfügbarkeit und Skalierbarkeit für diese Clients. Das standardisierte iSCSI-Protokoll stellt außerdem eine zusätzliche Ebene der Sicherheitsisolation zwischen Clients und dem SUSE Enterprise Storage 7.1-Cluster zur Verfügung. Die Konfigurationsfunktion wird ceph-iscsi
genannt. Über ceph-iscsi
definieren Ceph-Speicheradministratoren für schlanke Speicherzuweisung geeignete, reproduzierte, hochverfügbare Volumes, die schreibgeschützte Snapshots, Lesen-Schreiben-Klone und eine automatische Anpassung der Größe über Ceph RADOS Block Device(RBD) unterstützen. Administratoren können dann Volumes entweder über einen einzelnen ceph-iscsi
Gateway Host oder über mehrere Gateway Hosts exportieren, die Multipath Failover unterstützen. Linux, Microsoft Windows und VMware Hosts stellen über das iSCSI-Protokoll eine Verbindung zu den Volumes her. Dadurch werden sie verfügbar wie jedes andere SCSI-Blockgerät. Dies bedeutet, dass Kunden von SUSE Enterprise Storage 7.1 auf Ceph effizient ein vollständiges Blockspeicher-Infrastruktur-Teilsystem ausführen können, das alle Funktionen und Vorteile eines konventionellen SAN bietet und zukünftiges Wachstum ermöglicht.
In diesem Kapitel erhalten Sie detaillierte Informationen zum Einrichten einer Ceph-Cluster-Infrastruktur mit einem iSCSI Gateway, sodass die Client-Hosts über das iSCSI-Protokoll dezentral gespeicherte Daten als lokale Speichergeräte verwenden können.
9.1.1 iSCSI-Blockspeicher #
iSCSI ist eine Implementierung des Small Computer System Interface (SCSI)-Kommandos, das mit dem in RFC 3720 angegebenen Internet Protocol (IP) festgelegt wird. iSCSI ist als Service implementiert, in dem ein Client (der Initiator) über eine Sitzung auf TCP-Port 3260 mit einem Server (dem Target) kommuniziert. Die IP-Adresse und der Port eines iSCSI-Ziels werden als iSCSI Portal bezeichnet, wobei ein Ziel über einen oder mehrere Portale sichtbar gemacht werden kann. Die Kombination aus einem Ziel und einem oder mehreren Portalen wird als Zielportalgruppe (Target Portal Group, TPG) bezeichnet.
Das zugrunde liegende Daten-Link-Schicht-Protokoll für iSCSI ist meistens Ethernet. Genauer gesagt, moderne iSCSI-Infrastrukturen verwenden 10 GigE-Ethernet oder schnellere Netzwerke für optimalen Durchsatz. 10 Gigabit Ethernet-Konnektivität zwischen dem iSCSI Gateway und dem Back-End Ceph-Cluster wird dringend empfohlen.
9.1.1.1 iSCSI-Ziel des Linux-Kernels #
Das iSCSI-Ziel des Linux-Kernels wurde ursprünglich LIO genannt. Es steht für linux-iscsi.org
, die ursprüngliche Domäne und Website des Projekts. Einige Zeit standen für die Linux-Plattform nicht weniger als vier konkurrierende Target-Implementierungen zur Verfügung, doch LIO hat sich schließlich als einziges iSCSI-Referenz-Target durchgesetzt. Der hauptsächliche Kernel-Code für LIO verwendet den einfachen, doch in gewisser Weise zweideutigen Namen „Target“ und unterscheidet dabei zwischen „Target Core“ und einer Vielzahl an Frontend- und Back-End Target-Modulen.
Das am häufigsten verwendete Frontend-Modul ist wohl iSCSI. LIO unterstützt jedoch auch Fibre Channel (FC), Fibre Channel over Ethernet (FCoE) und verschiedene andere Frontend-Protokolle. Zum gegenwärtigen Zeitpunkt unterstützt SUSE Enterprise Storage nur das iSCSI-Protokoll.
Das am häufigsten verwendete Target Back-End-Modul kann einfach jedes verfügbare Blockgerät am Target-Host neu exportieren. Dieses Modul wird iblock genannt. LIO verfügt jedoch auch über ein RBD-spezifisches Back-End-Modul. Es unterstützt den parallelisierten Multipath-E/A-Zugriff auf RBD-Images.
9.1.1.2 iSCSI Initiatoren #
In diesem Abschnitt erhalten Sie einen kurzen Überblick über die iSCSI Initiator, die auf Linux-, Microsoft Windows und VMware-Plattformen verwendet werden.
9.1.1.2.1 Linux #
Der Standard-Initiator für die Linux-Plattform ist open-iscsi
. open-iscsi
ruft einen Daemon auf (iscsid
), den Benutzer zum Ermitteln von iSCSI Targets auf jedem vorhandenen Portal, zum Anmelden bei Targets und zum Zuordnen von iSCSI Volumes verwenden können. iscsid
kommuniziert mit der mittleren SCSI-Schicht, um Kernel-interne Blockgeräte zu erstellen, die der Kernel dann wie jedes andere SCSI-Blockgerät im System behandeln kann. Der open-iscsi
Initiator kann zusammen mit der Funktion Device Mapper Multipath (dm-multipath
) bereitgestellt werden, um ein hochverfügbares iSCSI-Blockgerät zur Verfügung zu stellen.
9.1.1.2.2 Microsoft Windows und Hyper-V #
Der standardmäßige iSCSI Initiator für das Microsoft Windows Betriebssystem ist der Microsoft iSCSI Initiator. Der iSCSI-Service kann über die grafische Bedienoberfläche (GUI) konfiguriert werden und unterstützt Multipath E/A für Hochverfügbarkeit.
9.1.1.2.3 VMware #
Der standardmäßige iSCSI Initiator für VMware vSphere und ESX ist der VMware ESX Software iSCSI Initiator, vmkiscsi
. Wenn er aktiviert ist, kann er entweder vom vSphere Client oder mit dem Kommando vmkiscsi-tool
konfiguriert werden. Sie können dann Speicher-Volumes formatieren, die über den vSphere iSCSI Speicheradapter mit VMFS verbunden sind, und diese wie jedes andere VM-Speichergerät verwenden. Der VMware Initiator unterstützt auch Multipath E/A für Hochverfügbarkeit.
9.1.2 Allgemeine Informationen zu ceph-iscsi
#
ceph-iscsi
vereint die Vorteile von RADOS Block Devices mit der universellen Vielseitigkeit von iSCSI. Durch Anwenden von ceph-iscsi
auf einem iSCSI-Zielhost (als iSCSI Gateway bezeichnet) kann jede Anwendung, die die Blockspeicherung nutzen muss, von Ceph profitieren, auch wenn sie kein Ceph-Client-Protokoll kennt. Stattdessen können Benutzer iSCSI oder ein beliebiges anderes Target Frontend-Protokoll verwenden, um eine Verbindung zu einem LIO Target herzustellen, das alle Target E/A in RBD-Speicheroperationen überträgt.
ceph-iscsi
ist von Natur aus hochverfügbar und unterstützt Multipath-Operationen. Somit können Downstream Initiator Hosts mehrere iSCSI Gateways für Hochverfügbarkeit sowie Skalierbarkeit verwenden. Bei der Kommunikation mit einer iSCSI-Konfiguration mit mehr als einem Gateway sorgen Initiator möglicherweise für eine Lastausgleich von iSCSI-Anforderungen über mehrere Gateways hinweg. Falls ein Gateway ausfällt und zeitweise nicht erreichbar ist oder zu Wartungszwecken deaktiviert wird, werden E/A-Operationen transparent über ein anderes Gateway weiter ausgeführt.
9.1.3 Überlegungen zur Bereitstellung #
Eine Mindestkonfiguration von SUSE Enterprise Storage 7.1 mit ceph-iscsi
setzt sich aus folgenden Komponenten zusammen:
Einem Ceph Storage Cluster Der Ceph-Cluster besteht aus mindestens vier physischen Servern, auf denen jeweils mindestens acht Objektspeicher-Daemons (OSDs) gehostet werden. In einer derartigen Konfiguration fungieren drei OSD-Knoten auch als Monitor(MON)-Host.
Ein iSCSI-Zielserver, auf dem das LIO-iSCSI-Ziel ausgeführt wird und das über
ceph-iscsi
konfiguriert wurde.Einem iSCSI-Initiator-Host, auf dem
open-iscsi
(Linux), der Microsoft iSCSI Initiator (Microsoft Windows) oder eine beliebige andere iSCSI-Initiator-Implementierung ausgeführt wird.
Eine empfohlene Produktionskonfiguration von SUSE Enterprise Storage 7.1 mit ceph-iscsi
besteht aus:
Einem Ceph Storage Cluster Ein Ceph-Cluster für die Produktionsumgebung besteht aus einer beliebigen Anzahl (normalerweise mehr als 10) von OSD-Knoten. Auf jedem werden normalerweise 10 bis 12 Objektspeicher-Daemons (OSDs) ausgeführt, mit mindestens drei dedizierten MON-Hosts.
Einige iSCSI-Zielserver, auf denen das LIO-iSCSI-Ziel ausgeführt wird und die über
ceph-iscsi
konfiguriert wurden. Zum Zweck von iSCSI-Failover und -Lastausgleich müssen diese Server einen Kernel ausführen, der dastarget_core_rbd
-Modul unterstützt. Update-Pakete sind im SUSE Linux Enterprise Server-Wartungskanal verfügbar.Eine beliebige Anzahl von iSCSI-Initiator-Hosts, auf denen
open-iscsi
(Linux), der Microsoft iSCSI Initiator (Microsoft Windows) oder eine beliebige andere iSCSI-Initiator-Implementierung ausgeführt wird.
9.1.4 Installation und Konfiguration #
In diesem Abschnitt werden die Schritte zum Installieren und Konfigurieren eines iSCSI Gateways zusätzlich zu SUSE Enterprise Storage beschrieben.
9.1.4.1 Bereitstellen des iSCSI Gateways auf einem Ceph-Cluster #
Die Bereitstellung des Ceph iSCSI Gateways erfolgt nach dem gleichen Verfahren wie die Bereitstellung anderer Ceph-Services, nämlich mit cephadm. Weitere Informationen finden Sie unter Abschnitt 8.3.5, „Bereitstellen von iSCSI-Gateways“.
9.1.4.2 Erstellen von RBD-Images #
RBD-Images werden im Ceph Store erstellt und anschließend zu iSCSI exportiert. Wir empfehlen zu diesem Zweck einen dedizierten RADOS-Pool. Sie können mit dem Ceph rbd
-Kommandozeilenprogramm ein Volume von jedem Host aus erstellen, der eine Verbindung zu Ihrem Speicher-Cluster herstellen kann. Dazu benötigt der Client mindestens eine ceph.conf
-Datei mit Mindestkonfiguration und den entsprechenden CephX-Berechtigungsnachweis zur Authentifizierung.
Erstellen Sie ein neues Volume für den späteren Export über iSCSI mit dem Kommando rbd create
und geben Sie die Volume-Größe in Megabyte an. Beispiel: Führen Sie zum Erstellen eines Volumes mit 100 GB und der Bezeichnung testvol
im Pool iscsi-images
folgendes Kommando aus:
cephuser@adm >
rbd --pool iscsi-images create --size=102400 testvol
9.1.4.3 Exportieren von RBD-Images über iSCSI #
Zum Exportieren von RBD-Images über iSCSI stehen zwei Möglichkeiten zur Auswahl: die Ceph-Dashboard-Weboberfläche oder das ceph-iscsi
-Dienstprogramm „gwcli“. Dieser Abschnitt befasst sich ausschließlich mit „gwcli“, wobei erläutert wird, wie Sie ein iSCSI-Ziel erstellen, mit dem ein RBD-Image über die Kommandozeile exportiert wird.
RBD-Images mit den folgenden Eigenschaften können nicht über iSCSI exportiert werden:
Images mit aktivierter
Journaling
-FunktionImages mit einer
Stripe-Einheit
von weniger als 4096 Byte
Geben Sie den iSCSI-Gateway-Container als root
ein:
#
cephadm enter --name CONTAINER_NAME
Starten Sie die Kommandozeilenschnittstelle für das iSCSI Gateway als root
:
#
gwcli
Wechseln Sie zu iSCSI-Ziele
und erstellen Sie ein Ziel namens iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol
:
gwcli >
/> cd /iscsi-targetsgwcli >
/iscsi-targets> create iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol
Erstellen Sie die iSCSI-Gateways. Geben Sie hierzu den Namen (name
) und die IP-Adresse (ip
) des Gateways an:
gwcli >
/iscsi-targets> cd iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/gatewaysgwcli >
/iscsi-target...tvol/gateways> create iscsi1 192.168.124.104gwcli >
/iscsi-target...tvol/gateways> create iscsi2 192.168.124.105
Mit dem Kommando help
rufen sie eine Liste der verfügbaren Kommandos im aktuellen Konfigurationsknoten ab.
Nehmen Sie das RBD-Image namens testvol
in den Pool iscsi-images
auf:
gwcli >
/iscsi-target...tvol/gateways> cd /disksgwcli >
/disks> attach iscsi-images/testvol
Ordnen Sie das RBD-Image dem Ziel zu:
gwcli >
/disks> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/disksgwcli >
/iscsi-target...testvol/disks> add iscsi-images/testvol
Sie können die lokale Konfiguration mit systemnahen Werkzeugen wie targetcli
abfragen, jedoch nicht bearbeiten.
Mit dem Kommando ls
können sie die Konfiguration prüfen. Einige Konfigurationsknoten unterstützen auch das Kommando info
, mit dem Sie ausführlichere Informationen erhalten.
Es ist zu beachten, dass die ACL-Authentifizierung standardmäßig aktiviert ist, weshalb der Zugriff auf dieses Ziel noch nicht möglich ist. Weitere Informationen zur Authentifizierung und zur Zugriffssteuerung finden Sie in Abschnitt 9.1.4.4, „Authentifizierung und Zugriffssteuerung“.
9.1.4.4 Authentifizierung und Zugriffssteuerung #
Die iSCSI-Authentifizierung ist flexibel und deckt zahlreiche Authentifizierungsmöglichkeiten ab.
9.1.4.4.1 Deaktivieren der ACL-Authentifizierung #
Keine Authentifizierung bedeutet, dass jeder Initiator·auf alle LUNs·im entsprechenden Ziel zugreifen kann.· Sie können Keine Authentifizierung aktivieren, indem Sie die ACL-Authentifizierung deaktivieren:
gwcli >
/> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hostsgwcli >
/iscsi-target...testvol/hosts> auth disable_acl
9.1.4.4.2 Verwenden der ACL-Authentifizierung #
Bei der ACL-Authentifizierung anhand des Initiatornamens dürfen lediglich die definierten Initiatoren eine Verbindung herstellen. So definieren Sie einen Initiator:
gwcli >
/> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hostsgwcli >
/iscsi-target...testvol/hosts> create iqn.1996-04.de.suse:01:e6ca28cc9f20
Definierte Initiatoren können eine Verbindung herstellen, erhalten den Zugriff jedoch nur auf die RBD-Images, die dem Initiator explizit hinzugefügt wurden:
gwcli >
/iscsi-target...:e6ca28cc9f20> disk add rbd/testvol
9.1.4.4.3 Aktivieren der CHAP-Authentifizierung #
Neben der ACL-Authentifizierung können Sie die CHAP-Authentifizierung aktivieren. Geben Sie hierzu einen Benutzernamen und ein Passwort für die einzelnen Initiatoren an:
gwcli >
/> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts/iqn.1996-04.de.suse:01:e6ca28cc9f20gwcli >
/iscsi-target...:e6ca28cc9f20> auth username=common12 password=pass12345678
Die Benutzernamen müssen 8 bis 64 Zeichen lang sein und dürfen alphanumerische Zeichen, .
, @
, -
, _
oder :
enthalten.
Die Passwörter müssen 12 bis 16 Zeichen lang sein und dürfen alphanumerische Zeichen enthalten, , @
, -
, _
oder /
.
Optional können Sie außerdem die gegenseitige CHAP-Authentifizierung aktivieren. Geben Sie hierzu die Parameter mutual_username
und mutual_password
im Kommando auth
an.
9.1.4.4.4 Konfigurieren der Ermittlungsauthentifizierung und der gegenseitigen Authentifizierung #
Die Ermittlungsauthentifizierung ist unabhängig von den obigen Authentifizierungsverfahren. Es ist ein Berechtigungsnachweis für die Suche erforderlich, die Suche ist optional und sie wird wie folgt konfiguriert:
gwcli >
/> cd /iscsi-targetsgwcli >
/iscsi-targets> discovery_auth username=du123456 password=dp1234567890
Die Benutzernamen müssen 8 bis 64 Zeichen lang sein und dürfen nur Buchstaben, .
, @
, -
, _
oder :
enthalten.
Die Passwörter müssen 12 bis 16 Zeichen lang sein und dürfen nur Buchstaben enthalten, @
, -
, _
oder /
.
Optional können Sie auch die Parameter mutual_username
und mutual_password
im Kommando discovery_auth
angeben.
Die Ermittlungsauthentifizierung wird mit folgendem Kommando deaktiviert:
gwcli >
/iscsi-targets> discovery_auth nochap
9.1.4.5 Konfigurieren von erweiterten Einstellungen #
ceph-iscsi
kann mit erweiterten Parametern konfiguriert werden, die anschließend an das LIO-E/A-Ziel übergeben werden. Die Parameter sind in Ziel
- und Datenträger
-Parameter aufgeteilt.
Soweit nicht anders angegeben, ist es nicht zu empfehlen, die Standardeinstellung dieser Parameter zu ändern.
9.1.4.5.1 Anzeigen der Zieleinstellungen #
Mit dem Kommando info
rufen Sie den Wert dieser Einstellungen ab:
gwcli >
/> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvolgwcli >
/iscsi-target...i.SYSTEM-ARCH:testvol> info
Mit dem Kommando reconfigure
ändern Sie eine Einstellung:
gwcli >
/iscsi-target...i.SYSTEM-ARCH:testvol> reconfigure login_timeout 20
Die folgenden Ziel
-Einstellungen stehen zur Auswahl:
- default_cmdsn_depth
Standardmäßige CmdSN (Command Sequence Number)-Tiefe. Beschränkt die Anzahl der Anforderungen, die für einen iSCSI Initiator zu einem beliebigen Zeitpunkt ausstehend sein können.
- default_erl
Standardmäßige Fehlerwiederherstellungsstufe.
- login_timeout
Wert der Zeitüberschreitung bei der Anmeldung in Sekunden.
- netif_timeout
NIC-Fehler-Zeitüberschreitung in Sekunden.
- prod_mode_write_protect
Wert
1
verhindert das Schreiben in LUNs.
9.1.4.5.2 Anzeigen der Datenträgereinstellungen #
Mit dem Kommando info
rufen Sie den Wert dieser Einstellungen ab:
gwcli >
/> cd /disks/rbd/testvolgwcli >
/disks/rbd/testvol> info
Mit dem Kommando reconfigure
ändern Sie eine Einstellung:
gwcli >
/disks/rbd/testvol> reconfigure rbd/testvol emulate_pr 0
Die folgenden Datenträger
-Einstellungen stehen zur Auswahl:
- block_size
Blockgröße des zugrundeliegenden Geräts.
- emulate_3pc
Wert
1
aktiviert das Drittanbieterexemplar.- emulate_caw
Wert
1
aktiviert „Vergleichen“ und „Schreiben“.- emulate_dpo
Wert 1 schaltet „Disable Page Out“ ein.
- emulate_fua_read
Wert
1
aktiviert das Lesen von „Force Unit Access“ (Zugriff auf Einheit erzwingen).- emulate_fua_write
Wert
1
aktiviert das Schreiben von „Force Unit Access“ (Zugriff auf Einheit erzwingen).- emulate_model_alias
Wert
1
verwendet den Back-End-Gerätenamen für den Modell-Alias.- emulate_pr
Beim Wert 0 ist die Unterstützung für SCSI-Reservierungen (auch permanente Gruppenreservierungen) deaktiviert. Ist diese Option deaktiviert, kann das iSCSI Gateway den Reservierungsstatus ignorieren, sodass die Anforderungslatenz verbessert wird.
TippWenn die iSCSI-Initiatoren keine Unterstützung für die SCSI-Reservierung benötigen, wird empfohlen, den Wert
0
fürbackstore_emulate_pr
festzulegen.- emulate_rest_reord
Bei Wert
0
weist der Queue Algorithm Modifier (Warteschlangenalgorithmus-Modifizierer) die Option „Restricted Reordering“ auf.- emulate_tas
Wert
1
aktiviert „Task Aborted Status“.- emulate_tpu
Wert
1
aktiviert „Thin Provisioning Unmap“.- emulate_tpws
Wert
1
aktiviert „Thin Provisioning Write Same“.- emulate_ua_intlck_ctrl
Wert
1
aktiviert „Unit Attention Interlock“.- emulate_write_cache
Wert
1
schaltet „Write Cache Enable“ ein.- enforce_pr_isids
Wert
1
erzwingt ISIDs für permanente Reservierungen.- is_nonrot
Bei Wert
1
ist der Backstore ein sich nicht drehendes Gerät.- max_unmap_block_desc_count
Maximale Anzahl der Blockbeschreibungen für UNMAP.
- max_unmap_lba_count:
Maximale Anzahl der LBAs für UNMAP.
- max_write_same_len
Maximale Länge für WRITE_SAME.
- optimal_sectors
Optimale Anforderungsgröße in Sektoren.
- pi_prot_type
DIF-Schutz-Typ.
- queue_depth
Warteschlangentiefe.
- unmap_granularity
UNMAP-Granularität.
- unmap_granularity_alignment
Abstimmung der UNMAP-Granularität.
- force_pr_aptpl
Ist diese Option aktiviert, schreibt LIO stets den Status der permanenten Reservierung in den permanenten Speicher, unabhängig davon, ob der Client diesen Status mit
aptpl=1
angefordert hat. Dies wirkt sich nicht auf das Kernel-RBD-Back-End für LIO aus – hier wird der PR-Status in jedem Fall beibehalten. Im Idealfall sollte die Optiontarget_core_rbd
den Wert „1“ erzwingen und einen Fehler auslösen, wenn ein Benutzer versucht, die Option über die Konfiguration zu deaktivieren.- unmap_zeroes_data
Diese Option gibt an, ob LIO den SCSI-Initiatoren gegenüber LBPRZ bekannt gibt, also dass Nullen aus einem Bereich nach UNMAP oder WRITE SAME mit einem Bit zum Aufheben der Zuordnung gelesen werden.
9.1.5 Exportieren von RADOS-Blockgeräte-Images mit tcmu-runner
#
ceph-iscsi
unterstützt sowohl den Backstore rbd
(kernelbasiert) als auch den Backstore user:rbd
(tcmu-runner), sodass die gesamte Verwaltung transparent und unabhängig vom Backstore abläuft.
tcmu-runner
-basierte iSCSI-Gateway-Bereitstellungen sind aktuell ein Technology Preview.
Im Gegensatz zur Kernel-basierten iSCSI-Gateway-Bereitstellung unterstützen tcmu-runner
-basierte iSCSI Gateways keine Multipath E/A oder permanente SCSI-Reservierungen.
Soll ein RADOS Block Device.Image mit tcmu-runner
exportiert werden, müssen Sie lediglich den user:rbd
-Backstore angeben, wenn Sie den Datenträger anhängen:
gwcli >
/disks> attach rbd/testvol backstore=user:rbd
Zur Verwendung von tcmu-runner
muss die Funktion exclusive-lock
für das exportierte RBD-Image aktiviert sein.
Teil III Upgrade von vorigen Versionen #
- 10 Upgrade von SUSE Enterprise Storage 6 auf 7.1
In diesem Kapitel finden Sie die Schritte zum Upgrade von SUSE Enterprise Storage 6 auf Version 7.1.
- 11 Upgrade von SUSE Enterprise Storage 7 auf 7.1
In diesem Kapitel finden Sie die Schritte zum Upgrade von SUSE Enterprise Storage 7 auf Version 7.1.
10 Upgrade von SUSE Enterprise Storage 6 auf 7.1 #
In diesem Kapitel finden Sie die Schritte zum Upgrade von SUSE Enterprise Storage 6 auf Version 7.1.
Das Upgrade umfasst die folgenden Aufgaben:
Upgrade von Ceph Nautilus zu Pacific.
Umstellung von der Installation und Ausführung von Ceph über RPM-Pakete auf die Ausführung in Containern.
Vollständiges Entfernen von DeepSea und Ersetzen durch
ceph-salt
und cephadm.
Die Upgrade-Informationen in diesem Kapitel gelten nur für Upgrades von DeepSea auf cephadm. Versuchen Sie nicht, diese Anweisungen zu befolgen, wenn Sie SUSE Enterprise Storage auf der SUSE CaaS Platform implementieren möchten.
Das Upgrade von SUSE Enterprise Storage-Versionen vor 6 wird nicht unterstützt. Zunächst müssen Sie ein Upgrade auf die aktuelle Version von SUSE Enterprise Storage 6 durchführen und dann die Schritte in diesem Kapitel ausführen.
10.1 Vor dem Aufrüsten #
Die folgenden Aufgaben müssen abgeschlossen sein, bevor Sie das Upgrade starten. Dies kann jederzeit während der Laufzeit von SUSE Enterprise Storage 6 erfolgen.
Die OSD-Migration von FileStore zu BlueStore muss vor dem Upgrade erfolgen, da FileStore in SUSE Enterprise Storage 7.1 nicht unterstützt wird. Weitere Einzelheiten zu BlueStore und zur Migration von FileStore finden Sie unter https://documentation.suse.com/ses/6/single-html/ses-deployment/#filestore2bluestore.
Wenn Sie einen älteren Cluster ausführen, der noch
ceph-disk
-OSDs verwendet, müssen Sie vor dem Upgrade aufceph-volume
umstellen. Weitere Informationen finden Sie in https://documentation.suse.com/ses/6/single-html/ses-deployment/#upgrade-osd-deployment.
10.1.1 Zu berücksichtigende Aspekte #
Lesen Sie vor dem Upgrade unbedingt die folgenden Abschnitte durch, um sicherzustellen, dass Sie alle auszuführenden Aufgaben verstehen.
Lesen Sie die Versionshinweise. Darin finden Sie zusätzliche Informationen zu den Änderungen, die seit der vorigen Version von SUSE Enterprise Storage vorgenommen wurden. Informieren Sie sich in den Versionshinweisen über Folgendes:
Sind bei der Hardware besondere Überlegungen zu beachten?
Wurden erhebliche Änderungen an den verwendeten Softwarepaketen vorgenommen?
Gelten besondere Vorsichtsmaßnahmen für die vorliegende Installation?
In den Versionshinweisen finden Sie auch Informationen, die erst nach der Fertigstellung des Handbuchs bekannt wurden. Auch bekannte Probleme werden beschrieben.
Die Versionshinweise zu SES 7.1 finden Sie online unter https://www.suse.com/releasenotes/.
Nach der Installation des Pakets release-notes-ses aus dem SES 7.1-Repository finden Sie die Versionshinweise zudem lokal im Verzeichnis
/usr/share/doc/release-notes
oder online unter https://www.suse.com/releasenotes/.Lesen Sie Teil II, „Bereitstellen des Ceph-Clusters“, um sich mit
ceph-salt
und dem Ceph-Orchestrator vertraut zu machen, insbesondere die Informationen zu Servicespezifikationen.Das Cluster-Upgrade kann lange dauern, nämlich in etwa so lange, wie es dauert, ein Upgrade eines Computers multipliziert mit der Anzahl der Cluster-Knoten durchzuführen.
Sie müssen zuerst ein Upgrade des Salt Master durchführen und dann DeepSea durch
ceph-salt
und cephadm ersetzen. Sie können das cephadm-Orchestrator-Modul erst dann verwenden, wenn mindestens für alle Ceph-Manager-Knoten ein Upgrade durchgeführt wurde.Das Upgrade von Nautilus-RPMs auf Pacific-Container muss in einem Schritt erfolgen. Das bedeutet, dass Sie für einen ganzen Knoten auf einmal ein Upgrade durchführen, nicht nur für einen Daemon auf einmal.
Das Upgrade der wichtigsten Services (MON, MGR, OSD) erfolgt nacheinander. Jeder Service ist während des Upgrades verfügbar. Die Gateway-Services (Metadata Server, Object Gateway, NFS Ganesha, iSCSI Gateway) müssen nach dem Upgrade der wichtigsten Services neu bereitgestellt werden. Für jeden der folgenden Services ist eine gewisse Ausfallzeit zu berücksichtigen:
- Wichtig
Metadata Server und Object Gateways sind ab dem Zeitpunkt, an dem für die Knoten von SUSE Linux Enterprise Server 15 SP1 ein Upgrade auf SUSE Linux Enterprise Server 15 SP3 durchgeführt wurde, bis zur erneuten Bereitstellung der Services am Ende des Upgrade-Vorgangs außer Betrieb. Dies ist insbesondere dann zu beachten, wenn diese Services zusammen mit MONs, MGRs oder OSDs untergebracht sind, da sie für die gesamte Dauer des Cluster-Upgrades ausfallen können. Sollte dies ein Problem sein, ziehen Sie in Erwägung, diese Services vor dem Upgrade separat auf zusätzlichen Knoten bereitzustellen, damit sie so kurz wie möglich ausfallen. Hierbei handelt es sich um die Dauer des Upgrades der Gateway-Knoten, nicht die Dauer des Upgrades des gesamten Clusters.
NFS Ganesha und iSCSI Gateways sind nur für die Dauer des Neustarts der Knoten während des Upgrades von SUSE Linux Enterprise Server 15 SP1 auf SUSE Linux Enterprise Server 15 SP3 außer Betrieb und erneut für kurze Zeit, wenn die einzelnen Services im containerisierten Modus neu bereitgestellt werden.
10.1.2 Sichern der Cluster-Konfiguration und -Daten #
Es wird dringend empfohlen, die gesamte Cluster-Konfiguration und alle Daten zu sichern, bevor Sie mit dem Upgrade auf SUSE Enterprise Storage 7.1 beginnen. Eine Anleitung zur Sicherung aller Daten finden Sie unter https://documentation.suse.com/ses/6/single-html/ses-admin/#cha-deployment-backup.
10.1.3 Überprüfen der Schritte des vorherigen Upgrades #
Falls Sie zuvor ein Upgrade von Version 5 durchgeführt haben, prüfen Sie, ob das Upgrade auf Version 6 erfolgreich abgeschlossen wurde:
Prüfen Sie, ob die Datei /srv/salt/ceph/configuration/files/ceph.conf.import
vorhanden ist.
Diese Datei wird durch den Importvorgang während des Upgrades von SUSE Enterprise Storage 5 auf 6 erstellt. Die Option configuration_init: default-import
wird in /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml
festgelegt.
Wenn configuration_init
noch auf default-import
festgelegt ist, greift der Cluster auf ceph.conf.import
als Konfigurationsdatei zurück, nicht auf die Standarddatei ceph.conf
von DeepSea, die aus Dateien in /srv/salt/ceph/configuration/files/ceph.conf.d/
kompiliert wird.
Sie müssen daher ceph.conf.import
auf benutzerdefinierte Konfigurationen prüfen und diese Konfigurationen ggf. in eine der Dateien in /srv/salt/ceph/configuration/files/ceph.conf.d/
verschieben.
Entfernen Sie dann die Zeile configuration_init: default-import
aus /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml
.
10.1.4 Aktualisieren von Cluster-Knoten und Überprüfen des Zustands des Clusters #
Überprüfen Sie, ob alle aktuellen Aktualisierungen von SUSE Linux Enterprise Server 15 SP1 und SUSE Enterprise Storage 6 auf alle Cluster-Knoten angewendet werden:
#
zypper refresh && zypper patch
Weitere Informationen zum Aktualisieren der Cluster-Knoten finden Sie unter https://documentation.suse.com/ses/6/html/ses-all/storage-salt-cluster.html#deepsea-rolling-updates.
Starten Sie nach Anwendung der Aktualisierungen den Salt Master neu, synchronisieren Sie neue Salt-Module und überprüfen Sie den Cluster-Zustand:
root@master #
systemctl restart salt-master.serviceroot@master #
salt '*' saltutil.sync_allcephuser@adm >
ceph -s
10.1.4.1 Deaktivieren unsicherer Clients #
Seit Nautilus v14.2.20 wurde eine neue Zustandswarnung eingeführt, die Sie darüber informiert, dass unsichere Clients im Cluster aufgenommen werden können. Diese Warnung ist standardmäßig aktiviert. Im Ceph Dashboard wird der Cluster mit dem Status HEALTH_WARN
angezeigt. Sie können den Status des Clusters wie folgt über die Kommandozeile überprüfen:
cephuser@adm >
ceph status
cluster:
id: 3fe8b35a-689f-4970-819d-0e6b11f6707c
health: HEALTH_WARN
mons are allowing insecure global_id reclaim
[...]
Diese Warnung bedeutet, dass Ceph Monitors immer noch alten, ungepatchten Clients erlauben, sich mit dem Cluster zu verbinden. Dadurch wird sichergestellt, dass bestehende Clients während eines Cluster-Upgrades weiterhin eine Verbindung herstellen können. Sie werden jedoch gewarnt, dass ein Problem vorhanden ist, das behoben werden muss.Dadurch wird sichergestellt, dass bestehende Clients während eines Cluster-Upgrades weiterhin eine Verbindung herstellen können Nach dem Upgrade des Clusters und aller Clients auf die neueste Version von Ceph verhindern Sie mit folgendem Kommando, dass sich ungepatchte Clients mit dem Cluster verbinden:
cephuser@adm >
ceph config set mon auth_allow_insecure_global_id_reclaim false
10.1.5 Überprüfen des Zugriffs auf Software-Repositorys und Container-Images #
Stellen Sie sicher, dass alle Cluster-Knoten Zugriff auf die Software-Repositorys von SUSE Linux Enterprise Server 15 SP3 und SUSE Enterprise Storage 7.1 sowie auf die Registrierung von Container-Images haben.
10.1.5.1 Software-Repositorys #
Wenn alle Knoten bei SCC registriert sind, können Sie das Kommando zypper migration
für das Upgrade verwenden. Weitere Informationen finden Sie in https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-upgrade-online.html#sec-upgrade-online-zypper.
Wenn Knoten nicht bei SCC registriert sind, deaktivieren Sie alle vorhandenen Software-Repositorys und fügen Sie sowohl das Pool
- als auch das Updates
-Repository für jede der folgenden Erweiterungen hinzu:
SLE-Product-SLES/15-SP3
SLE-Module-Basesystem/15-SP3
SLE-Module-Server-Applications/15-SP3
SUSE-Enterprise-Storage-7.1
10.1.5.2 Container-Images #
Alle Cluster-Knoten benötigen Zugriff auf die Container-Image-Registrierung. In den meisten Fällen verwenden Sie die öffentliche SUSE-Registrierung unter registry.suse.com
. Dafür benötigen Sie die folgenden Images:
registry.suse.com/ses/7.1/ceph/ceph
registry.suse.com/ses/7.1/ceph/grafana
registry.suse.com/ses/7.1/ceph/prometheus-server
registry.suse.com/ses/7.1/ceph/prometheus-node-exporter
registry.suse.com/ses/7.1/ceph/prometheus-alertmanager
Alternativ (z. B. für Air-Gap-Bereitstellungen) können Sie eine lokale Registrierung konfigurieren und überprüfen, ob Sie den richtigen Satz von Container-Images zur Verfügung haben. Weitere Details zum Konfigurieren einer lokalen Container-Image-Registrierung finden Sie in Abschnitt 7.2.10, „Verwenden der Container-Registrierung“.
10.2 Upgrade des Salt Masters #
Das folgende Verfahren beschreibt den Prozess des Upgrades des Salt Masters:
Führen Sie ein Upgrade des zugrunde liegenden Betriebssystems auf SUSE Linux Enterprise Server 15 SP3 durch:
Führen Sie für Cluster, deren Knoten bei SCC registriert sind,
zypper migration
aus.Führen Sie für Cluster, deren Knoten Software-Repositorys manuell zugewiesen wurden,
zypper dup
und dannreboot
aus.
Deaktivieren Sie die DeepSea-Phasen, um eine versehentliche Verwendung zu vermeiden. Fügen Sie folgenden Inhalt zu
/srv/pillar/ceph/stack/global.yml
hinzu:stage_prep: disabled stage_discovery: disabled stage_configure: disabled stage_deploy: disabled stage_services: disabled stage_remove: disabled
Speichern Sie die Datei und übernehmen Sie die Änderungen:
root@master #
salt '*' saltutil.pillar_refreshWenn Sie keine Container-Images von
registry.suse.com
verwenden, sondern die lokal konfigurierte Registrierung, bearbeiten Sie/srv/pillar/ceph/stack/global.yml
, um DeepSea mitzuteilen, welches Ceph-Container-Image und welche Registrierung verwendet werden sollen. Beispiel: Fügen Sie die folgenden Zeilen ein, um192.168.121.1:5000/my/ceph/image
zu verwenden:ses7_container_image: 192.168.121.1:5000/my/ceph/image ses7_container_registries: - location: 192.168.121.1:5000
Wenn Sie Authentifizierungsinformationen für die Registrierung angeben müssen, fügen Sie den Block
ses7_container_registry_auth:
hinzu, beispielsweise:ses7_container_image: 192.168.121.1:5000/my/ceph/image ses7_container_registries: - location: 192.168.121.1:5000 ses7_container_registry_auth: registry: 192.168.121.1:5000 username: USER_NAME password: PASSWORD
Speichern Sie die Datei und übernehmen Sie die Änderungen:
root@master #
salt '*' saltutil.refresh_pillarÜbernehmen Sie die bestehende Konfiguration:
cephuser@adm >
ceph config assimilate-conf -i /etc/ceph/ceph.confPrüfen Sie den Upgrade-Status. Je nach Cluster-Konfiguration kann Ihre Ausgabe abweichen:
root@master #
salt-run upgrade.status The newest installed software versions are: ceph: ceph version 16.2.7-640-gceb23c7491b (ceb23c7491bd96ab7956111374219a4cdcf6f8f4) pacific (stable) os: SUSE Linux Enterprise Server 15 SP3 Nodes running these software versions: admin.ceph (assigned roles: master, prometheus, grafana) Nodes running older software versions must be upgraded in the following order: 1: mon1.ceph (assigned roles: admin, mon, mgr) 2: mon2.ceph (assigned roles: admin, mon, mgr) 3: mon3.ceph (assigned roles: admin, mon, mgr) 4: data4.ceph (assigned roles: storage, mds) 5: data1.ceph (assigned roles: storage) 6: data2.ceph (assigned roles: storage) 7: data3.ceph (assigned roles: storage) 8: data5.ceph (assigned roles: storage, rgw)
10.3 Upgrade der MON-, MGR- und OSD-Knoten #
Führen Sie die Upgrades für Ceph-Monitor-, Ceph-Manager- und OSD-Knoten nacheinander durch. Führen Sie für jeden Service die folgenden Schritte aus:
Bevor Sie einen OSD-Knoten übernehmen, müssen Sie eine Formatkonvertierung der OSD-Knoten durchführen, um die Berücksichtigung von OMAP-Daten zu verbessern. Dazu führen Sie folgendes Kommando auf dem Admin-Knoten aus:
cephuser@adm >
ceph config set osd bluestore_fsck_quick_fix_on_mount trueDie OSD-Knoten werden automatisch konvertiert, wenn ihre Übernahme abgeschlossen ist.
AnmerkungDie Konvertierung kann von einigen Minuten bis zu mehreren Stunden dauern, je nachdem, wie viele OMAP-Daten die entsprechende Festplatte enthält. Weitere Einzelheiten finden Sie unter https://docs.ceph.com/en/latest/releases/pacific/#upgrading-non-cephadm-clusters.
Wenn es sich bei dem Knoten, für den Sie ein Upgrade durchführen, um einen OSD-Knoten handelt, verhindern Sie, dass der OSD-Knoten während des Upgrade-Vorgangs als
out
markiert wird. Führen Sie hierzu folgendes Kommando aus:cephuser@adm >
ceph osd add-noout SHORT_NODE_NAMEErsetzen Sie SHORT_NODE_NAME durch den Kurznamen des Knotens, wie er in der Ausgabe des Kommandos
ceph osd tree
erscheint. In der folgenden Eingabe lauten die Kurznamen des Hostsses-min1
undses-min2
.root@master #
ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.60405 root default -11 0.11691 host ses-min1 4 hdd 0.01949 osd.4 up 1.00000 1.00000 9 hdd 0.01949 osd.9 up 1.00000 1.00000 13 hdd 0.01949 osd.13 up 1.00000 1.00000 [...] -5 0.11691 host ses-min2 2 hdd 0.01949 osd.2 up 1.00000 1.00000 5 hdd 0.01949 osd.5 up 1.00000 1.00000 [...]Führen Sie ein Upgrade des zugrunde liegenden Betriebssystems auf SUSE Linux Enterprise Server 15 SP3 durch:
Wenn alle Knoten des Clusters bei SCC registriert sind, führen Sie
zypper migration
aus.Wenn den Knoten des Clusters Software-Repositorys manuell zugewiesen wurden, führen Sie
zypper dup
und dannreboot
aus.
Containerisieren Sie nach dem Neustart des Knotens alle vorhandenen MON-, MGR- und OSD-Daemons auf diesem Knoten. Führen Sie hierzu folgendes Kommando auf dem Salt Master aus:
root@master #
salt MINION_ID state.apply ceph.upgrade.ses7.adoptErsetzen Sie MINION_ID durch die ID des Minion, den Sie aufrüsten möchten. Die Liste der Minion-IDs erhalten Sie durch Ausführen des Kommandos
salt-key -L
auf dem Salt Master.TippDen Status und den Fortschritt der Übernahme finden Sie im Ceph-Dashboard oder durch Ausführen eines der folgenden Kommandos auf dem Salt Master:
root@master #
ceph statusroot@master #
ceph versionsroot@master #
salt-run upgrade.statusEntfernen Sie nach der erfolgreichen Übernahme das Flag
noout
, wenn der Knoten, den Sie aufrüsten, ein OSD-Knoten ist:cephuser@adm >
ceph osd rm-noout SHORT_NODE_NAME
10.4 Upgrade von Gateway-Knoten #
Führen Sie als Nächstes ein Upgrade der separaten Gateway-Knoten (Samba Gateway, Metadata Server, Object Gateway, NFS Ganesha oder iSCSI Gateway) durch. Führen Sie für jeden Knoten ein Upgrade des zugrunde liegenden Betriebssystems auf SUSE Linux Enterprise Server 15 SP3 auf:
Wenn alle Knoten des Clusters beim SUSE Customer Center registriert sind, führen Sie das Kommando
zypper migration
aus.Wenn den Knoten des Clusters Software-Repositorys manuell zugewiesen wurden, führen Sie das Kommando
zypper dup
und dann das Kommandoreboot
aus.
Dieser Schritt gilt auch für alle Knoten, die Teil des Clusters sind, denen aber noch keine Rollen zugewiesen wurden (überprüfen Sie im Zweifelsfall die Liste der Hosts auf dem Salt Master, die durch das Kommando salt-key -L
erstellt wird, und vergleichen Sie sie mit der Ausgabe des Kommandos salt-run upgrade.status
).
Wenn das Betriebssystem auf allen Knoten im Cluster aktualisiert wurde, besteht der nächste Schritt darin, das Paket ceph-salt zu installieren und die Cluster-Konfiguration anzuwenden. Die eigentlichen Gateway-Services werden am Ende des Upgrade-Vorgangs in einem containerisierten Modus neu bereitgestellt.
Metadata-Server- und Object-Gateway-Services sind ab dem Zeitpunkt des Upgrades auf SUSE Linux Enterprise Server 15 SP3 nicht mehr verfügbar. Sie müssen am Ende des Upgrade-Vorgangs erneut bereitgestellt werden.
10.5 Installieren von ceph-salt
und Anwenden der Cluster-Konfiguration #
Bevor Sie damit beginnen, ceph-salt
zu installieren und die Cluster-Konfiguration anzuwenden, müssen Sie den Cluster- und Upgrade-Status überprüfen. Führen Sie dazu folgende Kommandos aus:
root@master #
ceph statusroot@master #
ceph versionsroot@master #
salt-run upgrade.status
Entfernen Sie die von DeepSea erstellten Crons
rbd_exporter
undrgw_exporter
. Führen Sie auf dem Salt Master alsroot
das Kommandocrontab -e
aus, um crontab zu bearbeiten. Löschen Sie die folgenden Elemente, falls vorhanden:# SALT_CRON_IDENTIFIER:deepsea rbd_exporter cron job */5 * * * * /var/lib/prometheus/node-exporter/rbd.sh > \ /var/lib/prometheus/node-exporter/rbd.prom 2> /dev/null # SALT_CRON_IDENTIFIER:Prometheus rgw_exporter cron job */5 * * * * /var/lib/prometheus/node-exporter/ceph_rgw.py > \ /var/lib/prometheus/node-exporter/ceph_rgw.prom 2> /dev/null
Führen Sie zum Exportieren der Cluster-Konfiguration aus DeepSea folgende Kommandos aus:
root@master #
salt-run upgrade.ceph_salt_config > ceph-salt-config.jsonroot@master #
salt-run upgrade.generate_service_specs > specs.yamlDeinstallieren Sie DeepSea und installieren Sie
ceph-salt
auf dem Salt Master:root@master #
zypper remove 'deepsea*'root@master #
zypper install ceph-saltStarten Sie den Salt Master neu und synchronisieren Sie die Salt-Module:
root@master #
systemctl restart salt-master.serviceroot@master #
salt \* saltutil.sync_allImportieren Sie die Cluster-Konfiguration von DeepSea in
ceph-salt
:root@master #
ceph-salt import ceph-salt-config.jsonGenerieren Sie SSH-Schlüssel für die Cluster-Knoten-Kommunikation:
root@master #
ceph-salt config /ssh generateTippÜberprüfen Sie, ob die Cluster-Konfiguration aus DeepSea importiert wurde, und geben Sie eventuell fehlende Optionen an:
root@master #
ceph-salt config lsEine vollständige Beschreibung der Cluster-Konfiguration finden Sie in Abschnitt 7.2, „Konfigurieren der Clustereigenschaften“.
Wenden Sie die Konfiguration an und aktivieren Sie cephadm:
root@master #
ceph-salt applyWenn Sie die URL und die Zugangsdaten für die lokale Container-Registrierung angeben müssen, führen Sie die in Abschnitt 7.2.10, „Verwenden der Container-Registrierung“ beschriebenen Schritte aus.
Wenn Sie keine Container-Images von
registry.suse.com
verwenden, sondern die lokal konfigurierte Registrierung, teilen Sie Ceph mit, welches Container-Image verwendet werden soll. Führen Sie dazu folgendes Kommando aus:root@master #
ceph config set global container_image IMAGE_NAMEBeispiel:
root@master #
ceph config set global container_image 192.168.121.1:5000/my/ceph/imageStoppen und deaktivieren Sie die
ceph-crash
-Daemons von SUSE Enterprise Storage 6. Neue containerisierte Formen dieser Daemons werden später automatisch gestartet.root@master #
salt '*' service.stop ceph-crashroot@master #
salt '*' service.disable ceph-crash
10.6 Upgrade und Übernahme des Überwachungs-Stacks #
Durch folgendes Verfahren werden alle Komponenten des Überwachungs-Stacks übernommen (weitere Details finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 16 “Überwachung und Warnungen”).
Halten Sie den Orchestrator an:
cephuser@adm >
ceph orch pauseFühren Sie auf dem Knoten, auf dem Prometheus, Grafana und Alertmanager ausgeführt werden (standardmäßig der Salt Master), die folgenden Kommandos aus:
cephuser@adm >
cephadm adopt --style=legacy --name prometheus.$(hostname)cephuser@adm >
cephadm adopt --style=legacy --name alertmanager.$(hostname)cephuser@adm >
cephadm adopt --style=legacy --name grafana.$(hostname)TippWenn Sie nicht die standardmäßige Container-Image-Registrierung
registry.suse.com
ausführen, müssen Sie das zu verwendende Image für jedes Kommando angeben, beispielsweise:cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7.1/ceph/prometheus-server:2.32.1 \ adopt --style=legacy --name prometheus.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7.1/ceph/prometheus-alertmanager:0.21.0 \ adopt --style=legacy --name alertmanager.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7.1/ceph/grafana:7.5.12 \ adopt --style=legacy --name grafana.$(hostname)Die erforderlichen Container-Images und ihre jeweiligen Versionen sind in Book “Betriebs- und Verwaltungshandbuch”, Chapter 16 “Überwachung und Warnungen”, Section 16.1 “Konfigurieren von benutzerdefinierten oder lokalen Images” aufgeführt.
Entfernen Sie Node-Exporter von allen Knoten. Der Node-Exporter muss nicht migriert werden und wird als Container neu installiert, wenn die Datei
specs.yaml
angewendet wird.>
sudo
zypper rm golang-github-prometheus-node_exporterAlternativ können Sie Node-Exporter mit Salt über den Admin-Knoten von allen Knoten gleichzeitig entfernen:
root@master #
salt '*' pkg.remove golang-github-prometheus-node_exporterWenden Sie die zuvor aus DeepSea exportierten Servicespezifikationen an:
cephuser@adm >
ceph orch apply -i specs.yamlTippWenn Sie nicht die standardmäßige Container-Image-Registrierung
registry.suse.com
, sondern eine lokale Container-Registrierung verwenden, konfigurieren Sie cephadm so, dass das Container-Image aus der lokalen Registrierung für die Bereitstellung von Node-Exporter verwendet wird, bevor Sie den Node-Exporter bereitstellen. Andernfalls können Sie diesen Schritt ohne Bedenken überspringen und die folgende Warnung ignorieren.cephuser@adm >
ceph config set mgr mgr/cephadm/container_image_node_exporter QUALIFIED_IMAGE_PATHStellen Sie sicher, dass alle Container-Images für Überwachungsservices auf die lokale Registrierung verweisen, nicht nur das Image für Node-Exporter. Dieser Schritt ist nur für den Node-Exporter erforderlich, doch es ist ratsam, alle Container-Images für die Überwachung in cephadm so einzustellen, dass sie auf die lokale Registrierung verweisen.
Andernfalls wird bei neuen und wiederholten Bereitstellungen von Überwachungsservices die Standardkonfiguration von cephadm verwendet und Sie können Services möglicherweise nur mit gemischten Versionen oder gar nicht (bei Air-Gapped-Bereitstellungen) bereitstellen.
Wie cephadm für die Verwendung von Container-Images aus der lokalen Registrierung konfiguriert werden muss, ist in Book “Betriebs- und Verwaltungshandbuch”, Chapter 16 “Überwachung und Warnungen”, Section 16.1 “Konfigurieren von benutzerdefinierten oder lokalen Images” beschrieben.
Setzen Sie den Orchestrator fort:
cephuser@adm >
ceph orch resume
10.7 Erneute Bereitstellung des Gateway-Service #
10.7.1 Upgrade des Object Gateways #
In SUSE Enterprise Storage 7.1 werden die Object Gateways immer mit einem Bereich konfiguriert, was in Zukunft mehrere Standorte ermöglicht (weitere Details finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 21 “Ceph Object Gateway”, Section 21.13 “Object Gateways an mehreren Standorten”). Wenn Sie in SUSE Enterprise Storage 6 eine Object-Gateway-Konfiguration für einen einzigen Standort verwendet haben, gehen Sie folgendermaßen vor, um einen Bereich hinzuzufügen. Wenn Sie nicht vorhaben, die Funktionalität für mehrere Standorte zu nutzen, können Sie default
für die Namen des Bereichs, der Zonengruppe und der Zone verwenden.
Erstellen Sie einen neuen Bereich:
cephuser@adm >
radosgw-admin realm create --rgw-realm=REALM_NAME --defaultOptional können Sie die standardmäßige Zone und Zonengruppe umbenennen.
cephuser@adm >
radosgw-admin zonegroup rename \ --rgw-zonegroup default \ --zonegroup-new-name=ZONEGROUP_NAMEcephuser@adm >
radosgw-admin zone rename \ --rgw-zone default \ --zone-new-name ZONE_NAME \ --rgw-zonegroup=ZONEGROUP_NAMEKonfigurieren Sie die Master-Zonengruppe:
cephuser@adm >
radosgw-admin zonegroup modify \ --rgw-realm=REALM_NAME \ --rgw-zonegroup=ZONEGROUP_NAME \ --endpoints http://RGW.EXAMPLE.COM:80 \ --master --defaultKonfigurieren Sie die Master-Zone. Dazu benötigen Sie den ACCESS_KEY und SECRET_KEY eines Object-Gateway-Benutzers, bei dem das Flag
system
aktiviert ist. Hierbei handelt es sich normalerweise um denadmin
-Benutzer. Führen Sie zum Abrufen des ACCESS_KEY und SECRET_KEY das Kommandoradosgw-admin user info --uid admin --rgw-zone=ZONE_NAME
aus.cephuser@adm >
radosgw-admin zone modify \ --rgw-realm=REALM_NAME \ --rgw-zonegroup=ZONEGROUP_NAME \ --rgw-zone=ZONE_NAME \ --endpoints http://RGW.EXAMPLE.COM:80 \ --access-key=ACCESS_KEY \ --secret=SECRET_KEY \ --master --defaultBestätigen Sie die aktualisierte Konfiguration:
cephuser@adm >
radosgw-admin period update --commit
Um den Object-Gateway-Service zu containerisieren, erstellen Sie dessen Spezifikationsdatei wie in Abschnitt 8.3.4, „Bereitstellen von Object Gateways“ beschrieben, und wenden Sie sie an.
cephuser@adm >
ceph orch apply -i RGW.yml
10.7.2 Upgrade von NFS Ganesha #
NFS Ganesha unterstützt NFS-Version 4.1 und neuer. NFS Ganesha unterstützt nicht NFS-Version 3.
Im Folgenden wird demonstriert, wie ein bestehender NFS-Ganesha-Service unter Ceph Nautilus in einen NFS-Ganesha-Container unter Ceph Octopus migriert wird.
Die folgende Dokumentation setzt voraus, dass Sie für die wichtigsten Ceph-Services bereits erfolgreich ein Upgrade durchgeführt haben.
NFS Ganesha speichert zusätzlich die Konfiguration pro Daemon und exportiert die Konfiguration in einen RADOS-Pool. Den konfigurierten RADOS-Pool finden Sie in der Datei ganesha.conf
im Block RADOS_URLS
in der Zeile watch_url
. Standardmäßig wird dieser Pool ganesha_config
genannt.
Es wird dringend empfohlen, vor einer Migration eine Kopie der Export- und Daemon-Konfigurationsobjekte im RADOS-Pool zu erstellen. Zum Auffinden des konfigurierten RADOS-Pools führen Sie folgendes Kommando aus:
cephuser@adm >
grep -A5 RADOS_URLS /etc/ganesha/ganesha.conf
So listen Sie den Inhalt des RADOS-Pools auf:
cephuser@adm >
rados --pool ganesha_config --namespace ganesha ls | sort
conf-node3
export-1
export-2
export-3
export-4
So kopieren Sie die RADOS-Objekte:
cephuser@adm >
RADOS_ARGS="--pool ganesha_config --namespace ganesha"cephuser@adm >
OBJS=$(rados $RADOS_ARGS ls)cephuser@adm >
for obj in $OBJS; do rados $RADOS_ARGS get $obj $obj; donecephuser@adm >
ls -lah total 40K drwxr-xr-x 2 root root 4.0K Sep 8 03:30 . drwx------ 9 root root 4.0K Sep 8 03:23 .. -rw-r--r-- 1 root root 90 Sep 8 03:30 conf-node2 -rw-r--r-- 1 root root 90 Sep 8 03:30 conf-node3 -rw-r--r-- 1 root root 350 Sep 8 03:30 export-1 -rw-r--r-- 1 root root 350 Sep 8 03:30 export-2 -rw-r--r-- 1 root root 350 Sep 8 03:30 export-3 -rw-r--r-- 1 root root 358 Sep 8 03:30 export-4
Pro Knoten muss jeder bestehende NFS-Ganesha-Service gestoppt und anschließend durch einen von cephadm verwalteten Container ersetzt werden.
Stoppen und deaktivieren Sie den vorhandenen NFS-Ganesha-Service:
cephuser@adm >
systemctl stop nfs-ganeshacephuser@adm >
systemctl disable nfs-ganeshaNachdem der bestehende NFS-Ganesha-Service gestoppt wurde, kann mit cephadm ein neuer Service in einem Container eingerichtet werden. Dazu müssen Sie eine Service-Spezifikation erstellen, die eine
service_id
enthält, die zur Identifizierung dieses neuen NFS-Clusters verwendet wird, den Hostnamen des Knotens, den wir migrieren und der in der Platzierungsspezifikation als Host aufgeführt ist, sowie den RADOS-Pool und -Namespace, der die konfigurierten NFS-Exportobjekte enthält. Beispiel:service_type: nfs service_id: SERVICE_ID placement: hosts: - node2 pool: ganesha_config namespace: ganesha
Weitere Informationen zum Erstellen einer Platzierungsspezifikation finden Sie in Abschnitt 8.2, „Service- und Platzierungsspezifikation“.
Wenden Sie die Platzierungsspezifikation an:
cephuser@adm >
ceph orch apply -i FILENAME.yamlBestätigen Sie, dass der NFS-Ganesha-Daemon auf dem Host ausgeführt wird:
cephuser@adm >
ceph orch ps --daemon_type nfs NAME HOST STATUS REFRESHED AGE VERSION IMAGE NAME IMAGE ID CONTAINER ID nfs.foo.node2 node2 running (26m) 8m ago 27m 3.3 registry.suse.com/ses/7.1/ceph/ceph:latest 8b4be7c42abd c8b75d7c8f0dWiederholen Sie diese Schritte für jeden NFS-Ganesha-Knoten. Sie müssen nicht für jeden Knoten eine eigene Servicespezifikation erstellen. Es reicht aus, den Hostnamen jedes Knotens zur bestehenden NFS-Servicespezifikation hinzuzufügen und sie erneut anzuwenden.
Die vorhandenen Exporte können auf zwei verschiedene Arten migriert werden:
manuell neu erstellt oder neu zugewiesen über das Ceph Dashboard.
Kopieren Sie den Inhalt jedes RADOS-Objekts pro Daemon manuell in die neu erstellte gemeinsame NFS-Ganesha-Konfiguration.
Ermitteln Sie die Liste der RADOS-Objekte pro Daemon:
cephuser@adm >
RADOS_ARGS="--pool ganesha_config --namespace ganesha"cephuser@adm >
DAEMON_OBJS=$(rados $RADOS_ARGS ls | grep 'conf-')Erstellen Sie eine Kopie der RADOS-Objekte pro Daemon:
cephuser@adm >
for obj in $DAEMON_OBJS; do rados $RADOS_ARGS get $obj $obj; donecephuser@adm >
ls -lah total 20K drwxr-xr-x 2 root root 4.0K Sep 8 16:51 . drwxr-xr-x 3 root root 4.0K Sep 8 16:47 .. -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-nfs.SERVICE_ID -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-node2 -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-node3Sortieren Sie sie und führen Sie sie in einer einzigen Liste von Exporten zusammen:
cephuser@adm >
cat conf-* | sort -u > conf-nfs.SERVICE_IDcephuser@adm >
cat conf-nfs.foo %url "rados://ganesha_config/ganesha/export-1" %url "rados://ganesha_config/ganesha/export-2" %url "rados://ganesha_config/ganesha/export-3" %url "rados://ganesha_config/ganesha/export-4"Schreiben Sie die neue gemeinsame Konfigurationsdatei für NFS Ganesha:
cephuser@adm >
rados $RADOS_ARGS put conf-nfs.SERVICE_ID conf-nfs.SERVICE_IDBenachrichtigen Sie den NFS-Ganesha-Daemon:
cephuser@adm >
rados $RADOS_ARGS notify conf-nfs.SERVICE_ID conf-nfs.SERVICE_IDAnmerkungDiese Aktion veranlasst den Daemon, die Konfiguration neu zu laden.
Nach der erfolgreichen Migration des Service kann der Nautilus-basierte NFS-Ganesha-Service entfernt werden.
Entfernen Sie NFS Ganesha:
cephuser@adm >
zypper rm nfs-ganesha Reading installed packages... Resolving package dependencies... The following 5 packages are going to be REMOVED: nfs-ganesha nfs-ganesha-ceph nfs-ganesha-rados-grace nfs-ganesha-rados-urls nfs-ganesha-rgw 5 packages to remove. After the operation, 308.9 KiB will be freed. Continue? [y/n/v/...? shows all options] (y): y (1/5) Removing nfs-ganesha-ceph-2.8.3+git0.d504d374e-3.3.1.x86_64 .................................................................................................................................................................................................................................................................................................[done] (2/5) Removing nfs-ganesha-rgw-2.8.3+git0.d504d374e-3.3.1.x86_64 ..................................................................................................................................................................................................................................................................................................[done] (3/5) Removing nfs-ganesha-rados-urls-2.8.3+git0.d504d374e-3.3.1.x86_64 ...........................................................................................................................................................................................................................................................................................[done] (4/5) Removing nfs-ganesha-rados-grace-2.8.3+git0.d504d374e-3.3.1.x86_64 ..........................................................................................................................................................................................................................................................................................[done] (5/5) Removing nfs-ganesha-2.8.3+git0.d504d374e-3.3.1.x86_64 ......................................................................................................................................................................................................................................................................................................[done] Additional rpm output: warning: /etc/ganesha/ganesha.conf saved as /etc/ganesha/ganesha.conf.rpmsaveEntfernen Sie die veralteten Cluster-Einstellungen aus dem Ceph Dashboard:
cephuser@adm >
ceph dashboard reset-ganesha-clusters-rados-pool-namespace
10.7.3 Upgrade des Metadata Servers #
Im Gegensatz zu MONs, MGRs und OSDs kann der Metadata Server nicht an Ort und Stelle übernommen werden. Stattdessen müssen Sie sie mit dem Ceph-Orchestrator neu in Containern bereitstellen.
Führen Sie das Kommando
ceph fs ls
aus, um beispielsweise den Namen Ihres Dateisystems zu erhalten:cephuser@adm >
ceph fs ls name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]Erstellen Sie eine neue Servicespezifikationsdatei
mds.yml
wie in Abschnitt 8.3.3, „Bereitstellen von Metadatenservern“ beschrieben. Verwenden Sie dazu den Dateisystemnamen alsservice_id
und geben Sie die Hosts an, auf denen die MDS-Daemons ausgeführt werden. Beispiel:service_type: mds service_id: cephfs placement: hosts: - ses-min1 - ses-min2 - ses-min3
Führen Sie das Kommando
ceph orch apply -i mds.yml
aus, um die Servicespezifikation anzuwenden und die MDS-Daemons zu starten.
10.7.4 Upgrade des iSCSI Gateways #
Für ein Upgrade des iSCSI Gateways müssen Sie es mithilfe des Ceph-Orchestrators neu in Containern bereitstellen. Wenn Sie über mehrere iSCSI Gateways verfügen, müssen Sie diese nacheinander neu bereitstellen, um die Ausfallzeit des Service zu reduzieren.
Stoppen und deaktivieren Sie die vorhandenen iSCSI-Daemons auf jedem iSCSI Gateway-Knoten:
>
sudo
systemctl stop rbd-target-gw>
sudo
systemctl disable rbd-target-gw>
sudo
systemctl stop rbd-target-api>
sudo
systemctl disable rbd-target-apiErstellen Sie eine Servicespezifikation für das iSCSI Gateway, wie in Abschnitt 8.3.5, „Bereitstellen von iSCSI-Gateways“ beschrieben. Dazu benötigen Sie die Einstellungen
pool
,trusted_ip_list
undapi_*
aus der bestehenden Datei/etc/ceph/iscsi-gateway.cfg
. Wenn Sie SSL-Unterstützung aktiviert haben (api_secure = true
), benötigen Sie auch das SSL-Zertifikat (/etc/ceph/iscsi-gateway.crt
) und den Schlüssel (/etc/ceph/iscsi-gateway.key
).Beispiel: Wenn
/etc/ceph/iscsi-gateway.cfg
Folgendes enthält:[config] cluster_client_name = client.igw.ses-min5 pool = iscsi-images trusted_ip_list = 10.20.179.203,10.20.179.201,10.20.179.205,10.20.179.202 api_port = 5000 api_user = admin api_password = admin api_secure = true
Dann müssen Sie die folgende Servicespezifikationsdatei
iscsi.yml
erstellen:service_type: iscsi service_id: igw placement: hosts: - ses-min5 spec: pool: iscsi-images trusted_ip_list: "10.20.179.203,10.20.179.201,10.20.179.205,10.20.179.202" api_port: 5000 api_user: admin api_password: admin api_secure: true ssl_cert: | -----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIYMC4xNzc1NDQxNjEzMzc2MjMyXzxvQ7EcMA0GCSqGSIb3 DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMRcwFQYDVQQHDA5T [...] -----END CERTIFICATE----- ssl_key: | -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5jdYbjtNTAKW4 /CwQr/7wOiLGzVxChn3mmCIF3DwbL/qvTFTX2d8bDf6LjGwLYloXHscRfxszX/4h [...] -----END PRIVATE KEY-----
AnmerkungDie Einstellungen
pool
,trusted_ip_list
,api_port
,api_user
,api_password
,api_secure
sind identisch mit den Einstellungen aus Datei/etc/ceph/iscsi-gateway.cfg
. Die Wertessl_cert
undssl_key
können aus dem bestehenden SSL-Zertifikat und den Schlüsseldateien kopiert und eingefügt werden. Vergewissern Sie sich, dass sie richtig eingerückt sind und das pipe Zeichen|
am Ende der Zeilenssl_cert:
undssl_key:
erscheint (den Inhalt der Dateiiscsi.yml
finden Sie oben).Führen Sie das Kommando
ceph orch apply -i iscsi.yml
aus, um die Servicespezifikation anzuwenden und die iSCSI Gateway-Daemons zu starten.Entfernen Sie das alte ceph-iscsi-Paket von jedem der vorhandenen iSCSI-Gateway-Knoten:
cephuser@adm >
zypper rm -u ceph-iscsi
10.8 Bereinigung nach dem Upgrade #
Führen Sie nach dem Upgrade die folgenden Schritte zur Bereinigung aus:
Überprüfen Sie die aktuelle Ceph-Version, um sich zu vergewissern, dass für den Cluster erfolgreich ein Upgrade durchgeführt wurde:
cephuser@adm >
ceph versionsStellen Sie sicher, dass keine alten OSDs im Cluster aufgenommen werden:
cephuser@adm >
ceph osd require-osd-release pacificLegen Sie den
pg_autoscale_mode
von bestehenden Pools fest, falls erforderlich:WichtigBei Pools in SUSE Enterprise Storage 6 war der Modus
pg_autoscale_mode
standardmäßig aufwarn
festgelegt. Dies führte zwar zu einer Warnmeldung bei einer suboptimalen Anzahl von PGs, doch eine automatische Skalierung fand nicht statt. In der Standardeinstellung von SUSE Enterprise Storage 7.1 ist die Optionpg_autoscale_mode
für neue Pools aufon
festgelegt, und PGs werden tatsächlich automatisch skaliert. Bei dem Upgrade wird derpg_autoscale_mode
von bestehenden Pools nicht automatisch geändert. Wenn Sie die Einstellung zuon
ändern möchten, um die Vorteile des Autoscalers voll auszuschöpfen, lesen Sie die Anweisungen im Book “Betriebs- und Verwaltungshandbuch”, Chapter 17 “Verwaltung gespeicherter Daten”, Section 17.4.12 “Aktivieren der PG-Autoskalierung”.Weitere Informationen finden Sie in Book “Betriebs- und Verwaltungshandbuch”, Chapter 17 “Verwaltung gespeicherter Daten”, Section 17.4.12 “Aktivieren der PG-Autoskalierung”.
Verhindern Sie Clients aus Versionen vor Luminous:
cephuser@adm >
ceph osd set-require-min-compat-client luminousAktivieren Sie das Ausgleichsprogramm-Modul:
cephuser@adm >
ceph balancer mode upmapcephuser@adm >
ceph balancer onWeitere Informationen finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 29 “Ceph-Manager-Module”, Section 29.1 “Ausgleichsprogramm”.
Aktivieren Sie optional das Telemetriemodul:
cephuser@adm >
ceph mgr module enable telemetrycephuser@adm >
ceph telemetry onWeitere Informationen finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 29 “Ceph-Manager-Module”, Section 29.2 “Aktivieren des Telemetriemoduls”.
11 Upgrade von SUSE Enterprise Storage 7 auf 7.1 #
In diesem Kapitel finden Sie die Schritte zum Upgrade von SUSE Enterprise Storage 7 auf Version 7.1.
Das Upgrade umfasst die folgenden Aufgaben:
Upgrade des zugrunde liegenden Betriebssystems SUSE Linux Enterprise Server 15 SP2 auf SUSE Linux Enterprise Server 15 SP3.
Upgrade von Ceph Octopus auf Pacific.
11.1 Vor dem Aufrüsten #
Die folgenden Aufgaben müssen abgeschlossen sein, bevor Sie das Upgrade starten. Dies kann jederzeit während der Laufzeit von SUSE Enterprise Storage 7 erfolgen.
11.1.1 Zu berücksichtigende Aspekte #
Lesen Sie vor dem Upgrade unbedingt die folgenden Abschnitte durch, um sicherzustellen, dass Sie alle auszuführenden Aufgaben verstehen.
Lesen Sie die Versionshinweise. Darin finden Sie zusätzliche Informationen zu den Änderungen, die seit der vorigen Version von SUSE Enterprise Storage vorgenommen wurden. Informieren Sie sich in den Versionshinweisen über Folgendes:
Sind bei der Hardware besondere Überlegungen zu beachten?
Wurden erhebliche Änderungen an den verwendeten Softwarepaketen vorgenommen?
Gelten besondere Vorsichtsmaßnahmen für die vorliegende Installation?
In den Versionshinweisen finden Sie auch Informationen, die erst nach der Fertigstellung des Handbuchs bekannt wurden. Auch bekannte Probleme werden beschrieben.
Die Versionshinweise zu SES 7.1 finden Sie online unter https://www.suse.com/releasenotes/.
Nach der Installation des Pakets release-notes-ses aus dem SES 7.1-Repository finden Sie die Versionshinweise zudem lokal im Verzeichnis
/usr/share/doc/release-notes
oder online unter https://www.suse.com/releasenotes/.Lesen Sie Teil II, „Bereitstellen des Ceph-Clusters“, um sich mit
ceph-salt
und dem Ceph-Orchestrator vertraut zu machen, insbesondere die Informationen zu Servicespezifikationen.
11.1.2 Sichern der Cluster-Konfiguration und -Daten #
Es wird dringend empfohlen, die gesamte Cluster-Konfiguration und alle Daten zu sichern, bevor Sie mit dem Upgrade beginnen. Anweisungen zur Sicherung aller Daten finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 15 “Sichern und Wiederherstellen”.
11.1.3 Überprüfen des Zugriffs auf Software-Repositorys und Container-Images #
Stellen Sie sicher, dass alle Cluster-Knoten Zugriff auf die Software-Repositorys von SUSE Linux Enterprise Server 15 SP3 und SUSE Enterprise Storage 7.1 sowie auf die Registrierung von Container-Images haben.
11.1.3.1 Software-Repositorys #
Wenn alle Knoten bei SCC registriert sind, können Sie das Kommando zypper migration
für das Upgrade verwenden. Weitere Informationen finden Sie in https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-upgrade-online.html#sec-upgrade-online-zypper.
Wenn Knoten nicht bei SCC registriert sind, deaktivieren Sie alle vorhandenen Software-Repositorys und fügen Sie sowohl das Pool
- als auch das Updates
-Repository für jede der folgenden Erweiterungen hinzu:
SLE-Product-SLES/15-SP3
SLE-Module-Basesystem/15-SP3
SLE-Module-Server-Applications/15-SP3
SUSE-Enterprise-Storage-7.1
11.1.3.2 Container-Images #
Alle Cluster-Knoten benötigen Zugriff auf die Container-Image-Registrierung. In den meisten Fällen verwenden Sie die öffentliche SUSE-Registrierung unter registry.suse.com
. Dafür benötigen Sie die folgenden Images:
registry.suse.com/ses/7.1/ceph/ceph
registry.suse.com/ses/7.1/ceph/grafana
registry.suse.com/ses/7.1/ceph/prometheus-server
registry.suse.com/ses/7.1/ceph/prometheus-node-exporter
registry.suse.com/ses/7.1/ceph/prometheus-alertmanager
Alternativ (z. B. für Air-Gap-Bereitstellungen) können Sie eine lokale Registrierung konfigurieren und überprüfen, ob Sie den richtigen Satz von Container-Images zur Verfügung haben. Weitere Details zum Konfigurieren einer lokalen Container-Image-Registrierung finden Sie in Abschnitt 7.2.10, „Verwenden der Container-Registrierung“.
11.2 Migrieren von SUSE Linux Enterprise Server auf jedem Cluster-Knoten zu SUSE Linux Enterprise Server 15 SP3 #
Wenn die Cluster-Knoten zur Verwendung des SUSE Customer Center konfiguriert sind, können Sie dazu das Kommando zypper migration
ausführen.
Wenn die Cluster-Knoten über manuell konfigurierte Software-Repositorys verfügen, müssen Sie die Knoten manuell aktualisieren.
Weitere Informationen zum Upgrade von SUSE Linux Enterprise Server mithilfe von zypper
finden Sie unter https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-upgrade-online.html#sec-upgrade-online-zypper.
11.3 Aktualisieren von SUSE Enterprise Storage-Paketen auf den Cluster-Knoten #
Zum Aktualisieren der SUSE Enterprise Storage-Pakete auf die neueste Version verwenden Sie das Kommando ceph-salt update
. Weitere Einzelheiten finden Sie im Book “Betriebs- und Verwaltungshandbuch”, Chapter 13 “Betriebsaufgaben”, Section 13.6 “Aktualisieren der Cluster-Knoten”.
11.4 Upgrade von vorhanden Ceph-Cluster-Services #
Führen Sie das Upgrade des gesamten Ceph-Clusters auf die Version Pacific durch, indem Sie folgendes Kommando auf dem Admin-Knoten ausführen:
cephuser@adm >
ceph orch upgrade start --image registry.suse.com/ses/7.1/ceph/ceph
A Ceph-Wartungsaktualisierungen auf der Grundlage von vorgeschalteten „Pacific“-Unterversionen #
Mehrere wesentliche Pakete in SUSE Enterprise Storage 7.1 beruhen auf der Pacific-Versionsserie von Ceph. Wenn das Ceph-Projekt (https://github.com/ceph/ceph) neue Unterversionen in der Pacific-Serie veröffentlicht, wird SUSE Enterprise Storage 7.1 aktualisiert, damit das Produkt von den neuesten vorgeschalteten Bugfixes und Funktions-Backports profitiert.
In diesem Kapitel erhalten Sie einen Überblick über wichtige Änderungen in den einzelnen vorgeschalteten Unterversionen, die bereits in das Produkt aufgenommen wurden oder künftig aufgenommen werden.
Glossar #
Allgemein
- Admin-Knoten #
Der Host, von dem aus Sie die Ceph-bezogenen Befehle zur Verwaltung von Cluster-Hosts ausführen.
- Alertmanager #
Einzelne Binärdatei, die die vom Prometheus-Server gesendeten Warnmeldungen verarbeitet und die Endbenutzer benachrichtigt.
- Archiv-Synchronisierungsmodul #
Modul, mit dem eine Object-Gateway-Zone erstellt werden kann, in der der Verlauf der S3-Objektversionen abgelegt wird.
- Bucket #
Punkt, der andere Knoten in eine Hierarchie physischer Standorte aggregiert.
- Ceph Dashboard #
Eine integrierte webbasierte Verwaltungs- und Überwachungsanwendung von Ceph, mit der verschiedene Aspekte und Objekte des Clusters verwaltet werden. Das Dashboard wird als Ceph-Manager-Modul implementiert.
- Ceph Manager #
Ceph Manager oder MGR ist die Ceph-Manager-Software, die den gesamten Status des ganzen Clusters an einem Ort sammelt.
- Ceph Monitor #
Ceph Monitor oder MON ist die Ceph-Monitorsoftware.
- Ceph Object Storage #
Das Objektspeicher-„Produkt“, der Service oder die Fähigkeiten, die aus einem Ceph Storage Cluster und einem Ceph Object Gateway bestehen.
- Ceph Storage Cluster #
Ein zentraler Satz von Speichersoftwareprogrammen, die die Daten des Benutzers speichern. Ein derartiger Satz besteht aus Ceph Monitors und OSDs.
- Ceph-Client #
Die Sammlung von Ceph-Komponenten, die auf einen Ceph Storage Cluster zugreifen können. Dazu gehören das Object Gateway, das Ceph-Blockgerät, das CephFS und die entsprechenden Bibliotheken, Kernel-Module und FUSE-Clients.
- Ceph-OSD-Daemon #
Der
ceph-osd
-Daemon ist als Ceph-Komponente dafür zuständig, Objekte in einem lokalen Dateisystem zu speichern und den Zugriff auf diese Objekte über das Netzwerk bereitzustellen.ceph-salt
#Stellt Werkzeuge für die Bereitstellung von Ceph-Clustern bereit, die von cephadm mit Salt verwaltet werden.
- cephadm #
Mit cephadm wird ein Ceph-Cluster bereitgestellt und verwaltet. Dazu wird vom Manager-Daemon über SSH eine Verbindung zu den Hosts hergestellt, um Ceph-Daemon-Container hinzuzufügen, zu entfernen oder zu aktualisieren.
- CephFS #
Das Ceph-Dateisystem.
- CephX #
Das Ceph-Authentifizierungsprotokoll. Cephx funktioniert wie Kerberos, hat aber keinen Single-Point-of-Failure.
- CRUSH, CRUSH Map #
Controlled Replication Under Scalable Hashing: Dieser Algorithmus berechnet Datenspeicherorte und bestimmt damit, wie Daten gespeichert und abgerufen werden. CRUSH benötigt eine Karte (Map) des Clusters zum pseudozufälligen Speichern und Abrufen von Daten in OSDs mit gleichmäßiger Datenverteilung im Cluster.
- CRUSH-Regel #
Die CRUSH-Datenplatzierungsregel, die für einen bestimmten Pool oder mehrere Pools gilt.
- DriveGroups #
DriveGroups sind eine Deklaration von einem oder mehreren OSD-Layouts, die auf physische Laufwerke abgebildet werden können. Ein OSD-Layout definiert, wie Ceph OSD-Speicher auf den Medien, die den angegebenen Kriterien entsprechen, physisch zuweist.
- Grafana #
Lösung für die Datenbankanalyse und -überwachung.
- Knoten #
Ein einzelner Rechner oder Server in einem Ceph-Cluster.
- Mehrere Zonen #
- Metadata Server #
Metadata Server oder MDS ist die Ceph-Metadatensoftware.
- Object Gateway #
Die S3/Swift-Gateway-Komponente für Ceph Object Store. Auch bekannt als RADOS Gateway (RGW).
- OSD #
Object Storage Device (Objektspeichergerät): Eine physische oder logische Speichereinheit.
- OSD-Knoten #
Ein Cluster-Knoten, der Daten speichert, Reproduktion, Wiederherstellung, Backfilling und Ausgleich der Daten verarbeitet und Überwachungsinformationen für Ceph-Monitore zur Verfügung stellt, indem er andere Ceph OSD-Daemons überprüft.
- PG #
Platzierungsgruppe: Teilbereich eines Pools zur Leistungsanpassung.
- Pool #
Logische Partitionen zum Speichern von Objekten wie Festplatten-Images.
- Prometheus #
Toolkit für die Systemüberwachung und die Ausgabe von Warnmeldungen.
- RADOS-Blockgerät (RADOS Block Device, RBD) #
Die Blockspeicherkomponente von Ceph. Auch als Ceph-Blockgerät bekannt.
- Regelsatz #
Regeln zur Festlegung der Datenplatzierung für einen Pool.
- Reliable Autonomic Distributed Object Store (RADOS) #
Ein zentraler Satz von Speichersoftwareprogrammen, die die Daten des Benutzers (MON+OSD) speichern.
- Routing-Baum #
Bezeichnung für ein Diagramm mit den verschiedenen Wegen, die ein Empfänger durchlaufen kann.
- Samba #
Windows-Integrationssoftware.
- Samba Gateway #
Das Samba Gateway verbindet sich mit dem Active Directory in der Windows-Domäne, um Benutzer zu authentifizieren und zu autorisieren.
- Unterversion #
Jede Ad-hoc-Version, die nur Fehler- oder Sicherheitsbehebungen enthält.
- zonegroup #