Upgrade auf BeeGFS 8
Folgen Sie diesen Schritten, um Ihren BeeGFS HA-Cluster von BeeGFS 7.4 auf BeeGFS 8 zu aktualisieren.
Überblick
BeeGFS 8 führt einige wichtige Änderungen ein, die vor dem Upgrade von BeeGFS 7 zusätzliche Konfigurationen erfordern. Dieses Dokument führt Sie durch die Vorbereitung Ihres Clusters auf die neuen Anforderungen von BeeGFS 8 und anschließend durch das Upgrade auf BeeGFS 8.
|
|
Vor dem Upgrade auf BeeGFS 8 stellen Sie sicher, dass auf Ihrem System mindestens BeeGFS 7.4 ausgeführt wird. Jeder Cluster, auf dem eine Version älter als BeeGFS 7.4 läuft, muss zuerst "Upgrade auf BeeGFS 7.4" bevor auf BeeGFS 8 aktualisiert wird. |
Wichtige Änderungen in BeeGFS 8
BeeGFS 8 führt die folgenden wesentlichen Änderungen ein:
-
Lizenzbestimmungen: BeeGFS 8 erfordert eine Lizenz für die Nutzung von Premium-Funktionen wie Speicherpools, Remote-Speicherzielen, BeeOND und mehr. Erwerben Sie vor dem Upgrade eine gültige Lizenz für Ihren BeeGFS-Cluster. Bei Bedarf können Sie eine temporäre BeeGFS 8-Evaluierungslizenz von der "BeeGFS License Portal" erhalten.
-
Migration der Management-Service-Datenbank: Um die Konfiguration mit dem neuen TOML-basierten Format in BeeGFS 8 zu ermöglichen, müssen Sie Ihre BeeGFS 7 Management-Service-Datenbank auf das aktualisierte BeeGFS 8-Format migrieren.
-
TLS-Verschlüsselung: BeeGFS 8 führt TLS für die sichere Kommunikation zwischen Diensten ein. Sie müssen TLS-Zertifikate für den BeeGFS-Verwaltungsdienst und das
beegfsBefehlszeilenprogramm im Rahmen des Upgrades generieren und verteilen.
Weitere Details und zusätzliche Änderungen in BeeGFS 8 finden Sie in der "BeeGFS 8.0.0 Upgrade-Leitfaden".
|
|
Für das Upgrade auf BeeGFS 8 ist eine Cluster-Ausfallzeit erforderlich, und BeeGFS 7 Clients können keine Verbindung zu BeeGFS 8 Clustern herstellen. Koordinieren Sie den Upgrade-Zeitpunkt sorgfältig, um die Auswirkungen auf den Betrieb zu minimieren. |
Bereiten Sie Ihren BeeGFS Cluster auf das Upgrade vor
Bereiten Sie Ihre Umgebung sorgfältig vor, bevor Sie mit dem Upgrade beginnen, um einen reibungslosen Übergang zu gewährleisten und Ausfallzeiten zu minimieren.
-
Stellen Sie sicher, dass alle Server und Clients "Unterstützte Linux-Distributionen und Kernelversionen" für BeeGFS 8 verwenden.
-
Stellen Sie sicher, dass sich Ihr Cluster in einem fehlerfreien Zustand befindet und alle BeeGFS-Dienste auf ihren bevorzugten Knoten ausgeführt werden. Überprüfen Sie von einem Dateiknoten, auf dem BeeGFS-Dienste ausgeführt werden, ob alle Pacemaker-Ressourcen auf ihren bevorzugten Knoten ausgeführt werden.
pcs status -
Erstellen und sichern Sie Ihre Clusterkonfiguration. Die Daten des BeeGFS-Verwaltungsdienstes werden später im Rahmen des Upgrades der Verwaltungsdatenbank gesichert.
-
Führen Sie die folgenden Befehle auf einem BeeGFS-Client aus und speichern Sie die Ausgabe als Referenz:
beegfs-ctl --getentryinfo --verbose /path/to/beegfs/mountpoint -
Wenn Sie die Spiegelung verwenden, erfassen Sie detaillierte Statusinformationen, damit Sie das ursprüngliche primäre Ziel identifizieren können, falls beide Spiegelungsmitglieder in den Status „needs-resync“ wechseln:
beegfs-ctl --listtargets --longnodes --state --spaceinfo --mirrorgroups --nodetype=meta beegfs-ctl --listtargets --longnodes --state --spaceinfo --mirrorgroups --nodetype=storage -
Wenn Sie die Spiegelung verwenden, überprüfen Sie, ob sich alle Buddy-Gruppen im
GOODZustand befinden, bevor Sie mit dem Upgrade fortfahren.
-
-
Stoppen Sie das BeeGFS-System in der folgenden Reihenfolge:
-
Auf jedem Client das BeeGFS-Dateisystem aushängen und den
beegfs-clientDienst beenden. Für jeden Client ausführen:systemctl stop beegfs-client -
Deaktivieren Sie für jeden Pacemaker-Cluster STONITH, damit Sie die Clusterintegrität nach dem Upgrade überprüfen können, ohne unnötige Knotenneustarts auszulösen:
pcs property set stonith-enabled=false -
Stoppen Sie bei allen Pacemaker-Clustern den Cluster:
pcs cluster stop --all
-
Aktualisieren Sie das BeeGFS management package
Fügen Sie auf allen Dateiknoten im Cluster das BeeGFS 8-Paket-Repository für Ihre Linux-Distribution hinzu. Anweisungen zum Hinzufügen des offiziellen BeeGFS-Repositorys für Ihre Linux-Distribution finden Sie unter "BeeGFS Download-Seite". Andernfalls konfigurieren Sie Ihr lokales BeeGFS-Mirror-Repository entsprechend.
-
Aktualisieren Sie auf den ersten beiden Dateiknoten Ihres Clusters nur das BeeGFS Management-Daemon-Paket auf BeeGFS 8:
Führen Sie für RHEL nach der Konfiguration Ihres BeeGFS-Repository die folgenden Befehle aus:
dnf clean all dnf update beegfs-mgmtd
Aktualisieren Sie die Management-Datenbank
Führen Sie auf einem der Dateiknoten, auf dem der BeeGFS-Verwaltungsdienst läuft, diese Schritte aus, um die Verwaltungsdatenbank von BeeGFS 7 zu BeeGFS 8 zu migrieren.
-
Alle NVMe-Geräte auflisten und das Verwaltungsziel identifizieren:
nvme netapp smdevices | grep mgmt_tgtBeachten Sie den Gerätepfad aus der Ausgabe (zum Beispiel
/dev/nvmeXnY).-
Binden Sie das Management-Zielgerät an den vorhandenen Management-Ziel-Mountpunkt ein (ersetzen Sie
/dev/nvmeXnYdurch Ihren Gerätepfad):mount /dev/nvmeXnY /mnt/mgmt_tgt_mgmt01/
-
-
Führen Sie eine Sicherung des Verwaltungsdatenverzeichnisses durch:
tar --force-local -cpzf /mnt/mgmt_tgt_mgmt01/data_beegfs_7_backup_$(date +'%F_%T').tar.gz /mnt/mgmt_tgt_mgmt01/data -
Importieren Sie Ihre BeeGFS 7-Verwaltungsdaten in das neue Datenbankformat, indem Sie Folgendes ausführen:
/opt/beegfs/sbin/beegfs-mgmtd --import-from-v7=/mnt/mgmt_tgt_mgmt01/data/Erwartete Ausgabe:
Created new database version 3 at "/var/lib/beegfs/mgmtd.sqlite". Successfully imported v7 management data from "/mnt/mgmt_tgt_mgmt01/data/".
Der automatische Import kann aufgrund strengerer Validierungsanforderungen in BeeGFS 8 nicht in allen Fällen erfolgreich sein. Wenn beispielsweise Ziele nicht existierenden Speicherpools zugewiesen werden, schlägt der Import fehl. Wenn die Migration fehlschlägt, fahren Sie nicht mit dem Upgrade fort. Wenden Sie sich an den NetApp Support, um Unterstützung bei der Behebung der Datenbankmigration zu erhalten. Sie können die BeeGFS 8 Management-Pakete downgraden und BeeGFS 7 weiterhin verwenden, während das Problem behoben wird.
-
Verschieben Sie die generierte SQLite-Datei auf den Management-Service-Mount:
mv /var/lib/beegfs/mgmtd.sqlite /mnt/mgmt_tgt_mgmt01/data/ -
Verschieben Sie die generierte
beegfs-mgmtd.tomlauf den Mountpunkt des Verwaltungsdienstes:mv /etc/beegfs/beegfs-mgmtd.toml /mnt/mgmt_tgt_mgmt01/mgmt_config/Sie bereiten die
beegfs-mgmtd.tomlKonfigurationsdatei vor, nachdem Sie die Lizenzierungs- und TLS-Konfigurationsschritte in den folgenden Abschnitten abgeschlossen haben.
Verbleibende BeeGFS-Pakete aktualisieren
Nach Abschluss der Management-Datenbankmigration aktualisieren Sie die verbleibenden BeeGFS-Pakete auf allen Dateiknoten im Cluster. Führen Sie unter RHEL nach der Konfiguration Ihres BeeGFS-Repositorys die folgenden Befehle aus:
dnf clean all
dnf update beegfs-storage beegfs-meta libbeegfs-ib
Lizenzierung konfigurieren
-
Installieren Sie die BeeGFS-Lizenzpakete auf allen Knoten, auf denen der BeeGFS-Verwaltungsdienst ausgeführt wird. Dies sind typischerweise die ersten beiden Dateiknoten Ihres Clusters:
dnf install libbeegfs-license -
Laden Sie Ihre BeeGFS 8-Lizenzdatei auf die Management-Knoten herunter und platzieren Sie sie unter:
/etc/beegfs/license.pem
TLS-Verschlüsselung konfigurieren
BeeGFS 8 erfordert TLS-Verschlüsselung für die sichere Kommunikation zwischen Verwaltungsdiensten und dem BeeGFS CLI Tool (beegfs). Wählen Sie eine der drei Konfigurationsmethoden: Verwenden Sie Zertifikate, die von einer vertrauenswürdigen Zertifizierungsstelle signiert sind, erstellen Sie Ihre eigene lokale CA zum Signieren von Zertifikaten für Ihren BeeGFS-Cluster, oder deaktivieren Sie TLS vollständig zur Fehlerbehebung (nicht für den Produktivbetrieb empfohlen).
Konfigurieren Sie die TLS-Verschlüsselung für die Management-Services auf Ihren Dateiknoten mithilfe des "TLS-Verschlüsselung für BeeGFS 8 konfigurieren" Implementierungs-Leitfadens.
|
|
Die Client-TLS-Konfiguration wird nach dem Upgrade der BeeGFS-Clients abgeschlossen. Konfigurieren Sie in diesem Schritt TLS nur für die Management-Services und beegfs-tool auf den Dateiknoten. |
Konfiguration des Update-Management-Dienstes
Bereiten Sie die BeeGFS 8 Management-Service-Konfigurationsdatei vor, indem Sie die Einstellungen manuell aus Ihrer BeeGFS 7 Konfigurationsdatei in die /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml Datei übertragen.
-
Auf dem Management-Knoten, auf dem das Management-Ziel eingebunden ist, referenzieren Sie die
/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.confManagement-Service-Datei für BeeGFS 7 und übertragen Sie alle Einstellungen in die/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.tomlDatei. Für eine grundlegende Einrichtung könnte Ihrebeegfs-mgmtd.tomlwie folgt aussehen:beemsg-port = 8008 grpc-port = 8010 log-level = "info" node-offline-timeout = "900s" quota-enable = false auth-disable = false auth-file = "/etc/beegfs/<mgmt_service_ip>_connAuthFile" db-file = "/mnt/mgmt_tgt_mgmt01/data/mgmtd.sqlite" license-disable = false license-cert-file = "/etc/beegfs/license.pem" tls-disable = false tls-cert-file = "/etc/beegfs/mgmtd_tls_cert.pem" tls-key-file = "/etc/beegfs/mgmtd_tls_key.pem" interfaces = ['i1b:mgmt_1', 'i2b:mgmt_2']Passen Sie alle Pfade nach Bedarf an Ihre Umgebung und TLS-Konfiguration an.
-
Ändern Sie auf jedem Dateiknoten, auf dem Verwaltungsdienste ausgeführt werden, Ihre systemd-Dienstdatei so, dass sie auf den neuen Speicherort der Konfigurationsdatei verweist.
sudo sed -i 's|ExecStart=.*|ExecStart=nice -n -3 /opt/beegfs/sbin/beegfs-mgmtd --config-file /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml|' /etc/systemd/system/beegfs-mgmtd.service-
Systemd neu laden:
systemctl daemon-reload
-
-
Für jeden Dateiknoten, auf dem Verwaltungsdienste ausgeführt werden, öffnen Sie Port 8010 für die gRPC-Kommunikation des Verwaltungsdienstes.
-
Fügen Sie den TCP-Port 8010 zur beegfs zone hinzu:
sudo firewall-cmd --zone=beegfs --permanent --add-port=8010/tcp-
Laden Sie die Firewall neu, um die Änderung anzuwenden:
sudo firewall-cmd --reload
-
Aktualisieren Sie das BeeGFS-Monitor-Skript
Das Pacemaker beegfs-monitor Open Cluster Framework (OCF)-Skript muss aktualisiert werden, um das neue TOML-Konfigurationsformat und die systemd-Dienstverwaltung zu unterstützen. Aktualisieren Sie das Skript auf einem Knoten im Cluster und kopieren Sie das aktualisierte Skript dann auf alle anderen Knoten.
-
Erstellen Sie eine Sicherungskopie des aktuellen Skripts:
cp /usr/lib/ocf/resource.d/eseries/beegfs-monitor /usr/lib/ocf/resource.d/eseries/beegfs-monitor.bak.$(date +%F) -
Aktualisieren Sie den Pfad der Management-Konfigurationsdatei von
.confzu.toml:sed -i 's|mgmt_config/beegfs-mgmtd\.conf|mgmt_config/beegfs-mgmtd.toml|' /usr/lib/ocf/resource.d/eseries/beegfs-monitorAlternativ suchen Sie den folgenden Block im Skript manuell:
case $type in management) conf_path="${configuration_mount}/mgmt_config/beegfs-mgmtd.conf" ;;Und ersetzen Sie es durch:
case $type in management) conf_path="${configuration_mount}/mgmt_config/beegfs-mgmtd.toml" ;; -
Aktualisieren Sie die
get_interfaces()undget_subnet_ips()Funktionen, um die TOML-Konfiguration zu unterstützen:-
Öffnen Sie das Skript in einem Texteditor:
vi /usr/lib/ocf/resource.d/eseries/beegfs-monitor -
Finden Sie die beiden Funktionen:
get_interfaces()undget_subnet_ips(). -
Löschen Sie beide gesamten Funktionen, beginnend bei
get_interfaces()bis zum Ende vonget_subnet_ips(). -
Kopieren Sie die folgenden aktualisierten Funktionen und fügen Sie sie an ihrer Stelle ein:
# Return network communication interface name(s) from the BeeGFS resource's connInterfaceFile get_interfaces() { # Determine BeeGFS service network IP interfaces. if [ "$type" = "management" ]; then interfaces_line=$(grep "^interfaces =" "$conf_path") interfaces_list=$(echo "$interfaces_line" | sed "s/.*= \[\(.*\)\]/\1/") interfaces=$(echo "$interfaces_list" | tr -d "'" | tr -d " " | tr ',' '\n') for entry in $interfaces; do echo "$entry" | cut -d ':' -f 1 done else connInterfacesFile_path=$(grep "^connInterfacesFile" "$conf_path" | tr -d "[:space:]" | cut -f 2 -d "=") if [ -f "$connInterfacesFile_path" ]; then while read -r entry; do echo "$entry" | cut -f 1 -d ':' done < "$connInterfacesFile_path" fi fi } # Return list containing all the BeeGFS resource's usable IP addresses. *Note that these are filtered by the connNetFilterFile entries. get_subnet_ips() { # Determine all possible BeeGFS service network IP addresses. if [ "$type" != "management" ]; then connNetFilterFile_path=$(grep "^connNetFilterFile" "$conf_path" | tr -d "[:space:]" | cut -f 2 -d "=") filter_ips="" if [ -n "$connNetFilterFile_path" ] && [ -e $connNetFilterFile_path ]; then while read -r filter; do filter_ips="$filter_ips $(get_ipv4_subnet_addresses $filter)" done < $connNetFilterFile_path fi echo "$filter_ips" fi } -
Speichern und beenden Sie den Texteditor.
-
Führen Sie den folgenden Befehl aus, um das Skript vor der Fortsetzung auf Syntaxfehler zu prüfen. Wenn keine Ausgabe erscheint, ist das Skript syntaktisch korrekt.
bash -n /usr/lib/ocf/resource.d/eseries/beegfs-monitor
-
-
Kopieren Sie das aktualisierte
beegfs-monitorOCF-Skript auf alle anderen Knoten im Cluster:scp /usr/lib/ocf/resource.d/eseries/beegfs-monitor user@node:/usr/lib/ocf/resource.d/eseries/beegfs-monitor
Den Cluster wieder online bringen
-
Nachdem Sie alle vorherigen Upgrade-Schritte abgeschlossen haben, bringen Sie den Cluster wieder online, indem Sie die BeeGFS-Dienste auf allen Knoten starten.
pcs cluster start --all -
Überprüfen Sie, ob der
beegfs-mgmtdService erfolgreich gestartet wurde:journalctl -xeu beegfs-mgmtdDie erwartete Ausgabe umfasst Zeilen wie:
Started Cluster Controlled beegfs-mgmtd. Loaded config file from "/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml" Successfully initialized certificate verification library. Successfully loaded license certificate: TMP-113489268 Opened database at "/mnt/mgmt_tgt_mgmt01/data/mgmtd.sqlite" Listening for BeeGFS connections on [::]:8008 Serving gRPC requests on [::]:8010
Wenn Fehler in den Journalprotokollen auftreten, überprüfen Sie die Pfade der Verwaltungskonfigurationsdatei und vergewissern Sie sich, dass Sie alle Werte korrekt aus der BeeGFS 7 Konfigurationsdatei übernommen haben.
-
Führen Sie
pcs statusaus und überprüfen Sie, ob der Cluster fehlerfrei ist und die Dienste auf den bevorzugten Knoten gestartet wurden. -
Sobald die einwandfreie Funktion des Clusters bestätigt ist, aktivieren Sie STONITH wieder:
pcs property set stonith-enabled=true -
Fahren Sie mit dem nächsten Abschnitt fort, um die BeeGFS Clients zu aktualisieren und die Integrität des Clusters zu überprüfen.
BeeGFS-Clients aktualisieren
Nach dem Upgrade Ihres Clusters auf BeeGFS 8 müssen Sie auch alle BeeGFS Clients aktualisieren.
-
Falls Sie den BeeGFS Client Service noch nicht gestoppt haben, stoppen Sie ihn jetzt:
systemctl stop beegfs-client -
Fügen Sie das BeeGFS 8-Paket-Repository für Ihre Linux-Distribution hinzu. Anweisungen zum Hinzufügen der offiziellen BeeGFS-Repositories finden Sie unter "BeeGFS Download-Seite". Andernfalls konfigurieren Sie Ihr lokales BeeGFS-Mirror-Repository entsprechend.
-
Aktualisieren Sie die BeeGFS client packages:
Für Ubuntu/Debian:
apt-get update apt-get install --only-upgrade beegfs-client -
Konfigurieren Sie TLS für den Client. TLS ist erforderlich, um die BeeGFS CLI von Clientknoten aus zu verwenden. Beziehen Sie sich auf den "Konfigurieren Sie TLS für BeeGFS 8 clients" Abschnitt im TLS Implementierungs-Leitfaden.
TLS ist für den
beegfs-clientDienst zum Einbinden des BeeGFS-Dateisystems nicht erforderlich. TLS ist nur für die Verwendung der BeeGFS-CLI-Tools und anderer administrativer Dienste erforderlich. -
Starten Sie den BeeGFS Client Service:
systemctl start beegfs-clientFalls die Einbindung von BeeGFS fehlschlägt, überprüfen Sie das Systemprotokoll auf Fehler. Wenn Meldungen wie „Vorgang kann ohne funktionierenden Root-Metadatenknoten nicht fortgesetzt werden“ oder „Remote-E/A-Fehler“ angezeigt werden, wurde der BeeGFS 7 Import möglicherweise nicht erfolgreich abgeschlossen. Wenden Sie sich für Unterstützung an den NetApp Support.
-
(Optional) Installieren und konfigurieren Sie das neue
beegfsCLI-Tool auf Clientknoten oder anderen Systemen, auf denen Sie BeeGFS-Verwaltungsbefehle ausführen möchten:-
Installieren Sie das
beegfs-toolsPaket:Für Ubuntu/Debian:
apt-get install beegfs-tools-
Konfigurieren Sie TLS für das
beegfsTool. TLS ist erforderlich, um die BeeGFS CLI von einem Clientknoten aus zu verwenden. Siehe den "Konfigurieren Sie TLS für BeeGFS 8 clients" Abschnitt im TLS Implementierungs-Leitfaden.
-
Überprüfen Sie das Upgrade
Nach Abschluss des Upgrades auf BeeGFS 8 führen Sie die folgenden Befehle aus, um zu überprüfen, ob das Upgrade erfolgreich war.
-
Überprüfen Sie, ob der Root-Inode demselben Metadatenknoten wie zuvor gehört. Dies sollte automatisch erfolgen, wenn Sie die
import-from-v7Funktionalität im Verwaltungsdienst verwendet haben:beegfs entry info /mnt/beegfs -
Überprüfen Sie, ob alle Knoten und Ziele online und in einem einwandfreien Zustand sind:
beegfs health checkWenn die Überprüfung „Verfügbare Kapazität“ darauf hinweist, dass auf den Zielen nur noch wenig freier Speicherplatz vorhanden ist, können Sie die in der
beegfs-mgmtd.tomlKonfigurationsdatei definierten Schwellenwerte für den „Kapazitätspool“ so anpassen, dass sie besser zu Ihrer Umgebung passen.