Mise à niveau vers BeeGFS 8
Suivez ces étapes pour mettre à niveau votre cluster BeeGFS HA de BeeGFS 7.4 à BeeGFS 8.
Présentation
BeeGFS 8 introduit plusieurs changements importants qui nécessitent une configuration supplémentaire avant la mise à niveau depuis BeeGFS 7. Ce document vous guide dans la préparation de votre cluster aux nouvelles exigences de BeeGFS 8, puis dans la mise à niveau vers BeeGFS 8.
|
|
Avant de passer à BeeGFS 8, assurez-vous que votre système exécute au moins BeeGFS 7.4. Tout cluster exécutant une version antérieure à BeeGFS 7.4 doit d'abord "Mise à jour vers BeeGFS 7.4" avant de passer à BeeGFS 8. |
Principaux changements dans BeeGFS 8
BeeGFS 8 introduit les changements majeurs suivants :
-
Application des licences : BeeGFS 8 requiert une licence pour utiliser les fonctionnalités avancées telles que les pools de stockage, les cibles de stockage distantes, BeeOND, et plus encore. Procurez-vous une licence valide pour votre cluster BeeGFS avant la mise à niveau. Si nécessaire, vous pouvez obtenir une licence d’évaluation temporaire de BeeGFS 8 auprès du "Portail de licences BeeGFS".
-
Migration de la base de données du service de gestion : Pour activer la configuration avec le nouveau format basé sur TOML dans BeeGFS 8, vous devez migrer manuellement votre base de données du service de gestion BeeGFS 7 vers le format BeeGFS 8 mis à jour.
-
Chiffrement TLS : BeeGFS 8 introduit TLS pour la communication sécurisée entre les services. Vous devrez générer et distribuer des certificats TLS pour le service de gestion BeeGFS et l' `beegfs`utilitaire en ligne de commande dans le cadre de la mise à niveau.
Pour plus de détails et les modifications supplémentaires apportées à BeeGFS 8, consultez le "Guide de mise à niveau BeeGFS 8.0.0".
|
|
La mise à niveau vers BeeGFS 8 nécessite une interruption et les clients BeeGFS 7 ne peuvent pas se connecter aux clusters BeeGFS 8. Coordonnez soigneusement le moment de la mise à niveau afin de minimiser l'impact opérationnel. |
Préparez votre cluster BeeGFS pour la mise à niveau
Avant de commencer la mise à niveau, préparez soigneusement votre environnement afin d'assurer une transition en douceur et de minimiser l'interruption.
-
Vérifiez que tous les serveurs et clients utilisent "Distributions Linux prises en charge et versions du noyau" pour BeeGFS 8.
-
Assurez-vous que votre cluster est dans un état sain, avec tous les services BeeGFS exécutés sur leurs nœuds préférés. À partir d'un nœud de fichiers exécutant les services BeeGFS, vérifiez que toutes les ressources Pacemaker sont exécutées sur leurs nœuds préférés :
pcs status -
Enregistrez et sauvegardez la configuration de votre cluster. Les données du service de gestion BeeGFS seront sauvegardées ultérieurement dans le cadre du processus de mise à niveau de la base de données de gestion.
-
Exécutez les commandes suivantes sur un client BeeGFS et enregistrez le résultat pour référence :
beegfs-ctl --getentryinfo --verbose /path/to/beegfs/mountpoint -
En cas d'utilisation de la mise en miroir, recueillez des informations d'état détaillées afin de pouvoir identifier la cible principale d'origine si les deux membres du miroir passent à l'état « needs-resync » :
beegfs-ctl --listtargets --longnodes --state --spaceinfo --mirrorgroups --nodetype=meta beegfs-ctl --listtargets --longnodes --state --spaceinfo --mirrorgroups --nodetype=storage -
Si vous utilisez la mise en miroir, vérifiez que tous les groupes d'amis sont dans l'état
GOODavant de procéder à la mise à niveau.
-
-
Arrêtez le système BeeGFS dans l'ordre suivant :
-
Sur chaque client, démontez le système de fichiers BeeGFS et arrêtez le service
beegfs-client. Pour chaque client, exécutez :systemctl stop beegfs-client -
Pour chaque cluster Pacemaker, désactivez STONITH afin de pouvoir valider l'intégrité du cluster après la mise à niveau sans déclencher de redémarrages de nœuds inutiles :
pcs property set stonith-enabled=false -
Sur tous les clusters Pacemaker, arrêtez le cluster :
pcs cluster stop --all
-
Mettre à niveau le package de gestion BeeGFS
Sur tous les nœuds de fichiers du cluster, ajoutez le dépôt de paquets BeeGFS 8 correspondant à votre distribution Linux. Les instructions pour ajouter le dépôt officiel BeeGFS pour votre distribution Linux se trouvent à "page de téléchargement BeeGFS". Sinon, configurez votre dépôt miroir BeeGFS local en conséquence.
-
Sur les deux premiers nœuds de fichiers de votre cluster, mettez à jour uniquement le package du démon de gestion BeeGFS vers BeeGFS 8 :
Pour RHEL, après avoir configuré votre dépôt BeeGFS, exécutez les commandes suivantes :
dnf clean all dnf update beegfs-mgmtd
Mettre à niveau la base de données de gestion
Sur l'un des nœuds de fichiers exécutant le service de gestion BeeGFS, suivez ces étapes pour migrer la base de données de gestion de BeeGFS 7 vers BeeGFS 8.
-
Lister tous les périphériques NVMe et identifier la cible de gestion :
nvme netapp smdevices | grep mgmt_tgtNotez le chemin du périphérique à partir de la sortie (par exemple,
/dev/nvmeXnY).-
Montez le périphérique cible de gestion sur le point de montage cible de gestion existant (remplacez
/dev/nvmeXnYpar le chemin d'accès à votre périphérique) :mount /dev/nvmeXnY /mnt/mgmt_tgt_mgmt01/
-
-
Effectuez une sauvegarde du répertoire des données de gestion :
tar --force-local -cpzf /mnt/mgmt_tgt_mgmt01/data_beegfs_7_backup_$(date +'%F_%T').tar.gz /mnt/mgmt_tgt_mgmt01/data -
Importez vos données de gestion BeeGFS 7 dans le nouveau format de base de données en exécutant :
/opt/beegfs/sbin/beegfs-mgmtd --import-from-v7=/mnt/mgmt_tgt_mgmt01/data/Résultat attendu:
Created new database version 3 at "/var/lib/beegfs/mgmtd.sqlite". Successfully imported v7 management data from "/mnt/mgmt_tgt_mgmt01/data/".
L'importation automatique peut ne pas réussir dans tous les cas en raison des exigences de validation plus strictes de BeeGFS 8. Par exemple, si des cibles sont affectées à des pools de stockage inexistants, l'importation échoue. Si la migration de la base de données échoue, ne poursuivez pas la mise à niveau. Contactez le support NetApp pour obtenir de l'aide concernant la résolution des problèmes de migration de la base de données. Vous pouvez rétrograder les packages de gestion BeeGFS 8 et continuer à utiliser BeeGFS 7 pendant que le problème est résolu.
-
Déplacez le fichier SQLite généré vers le point de montage du service de gestion :
mv /var/lib/beegfs/mgmtd.sqlite /mnt/mgmt_tgt_mgmt01/data/ -
Déplacez le fichier généré
beegfs-mgmtd.tomlvers le point de montage du service de gestion :mv /etc/beegfs/beegfs-mgmtd.toml /mnt/mgmt_tgt_mgmt01/mgmt_config/Vous préparerez le fichier de configuration
beegfs-mgmtd.tomlaprès avoir terminé les étapes de configuration de la licence et du TLS dans les sections suivantes.
Mettez à niveau les packages BeeGFS restants
Une fois la migration de la base de données de gestion terminée, mettez à niveau les packages BeeGFS restants sur tous les nœuds de fichiers du cluster. Pour RHEL, après avoir configuré votre dépôt BeeGFS, exécutez les commandes suivantes :
dnf clean all
dnf update beegfs-storage beegfs-meta libbeegfs-ib
Configurer les licences
-
Installez les packages de licence BeeGFS sur tous les nœuds exécutant le service de gestion BeeGFS. Il s'agit généralement des deux premiers nœuds de fichiers de votre cluster :
dnf install libbeegfs-license -
Téléchargez votre fichier de licence BeeGFS 8 sur les nœuds de gestion et placez-le à :
/etc/beegfs/license.pem
Configurer le chiffrement TLS
BeeGFS 8 requiert le chiffrement TLS pour sécuriser les communications entre les services de gestion et l'outil CLI BeeGFS (beegfs). Choisissez l'une des trois méthodes de configuration : utiliser des certificats signés par une autorité de certification de confiance, créer votre propre autorité de certification locale pour signer les certificats de votre cluster BeeGFS, ou désactiver complètement TLS à des fins de dépannage (non recommandé pour la production).
Configurez le chiffrement TLS pour les services de gestion sur vos nœuds de fichiers en utilisant le guide "Configurer le chiffrement TLS pour BeeGFS 8".
|
|
La configuration TLS côté client sera finalisée ultérieurement, après la mise à niveau des clients BeeGFS. À ce stade, configurez uniquement TLS pour les services de gestion et beegfs-tool sur les nœuds de fichiers. |
Configuration du service de gestion des mises à jour
Préparez le fichier de configuration du service de gestion BeeGFS 8 en transférant manuellement les paramètres de votre fichier de configuration BeeGFS 7 dans le fichier /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml.
-
Sur le nœud de gestion où la cible de gestion est montée, référencez le
/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.conffichier de service de gestion pour BeeGFS 7 et transférez tous les paramètres dans le fichier/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml. Pour une configuration de base, votrebeegfs-mgmtd.tomlpeut ressembler à ce qui suit :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']Adaptez tous les chemins selon les besoins pour correspondre à votre environnement et à votre configuration TLS.
-
Sur chaque nœud de fichiers exécutant des services de gestion, modifiez votre fichier de service systemd pour qu'il pointe vers le nouvel emplacement du fichier de configuration.
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-
Recharger systemd :
systemctl daemon-reload
-
-
Pour chaque nœud de fichier exécutant des services de gestion, ouvrez le port 8010 pour la communication gRPC du service de gestion.
-
Ajoutez le port TCP 8010 à la zone beegfs :
sudo firewall-cmd --zone=beegfs --permanent --add-port=8010/tcp-
Rechargez le pare-feu pour appliquer la modification :
sudo firewall-cmd --reload
-
Mettre à jour le script de surveillance BeeGFS
Le script `beegfs-monitor`Pacemaker Open Cluster Framework (OCF) nécessite des mises à jour pour prendre en charge le nouveau format de configuration TOML et la gestion des services systemd. Mettez à jour le script sur un nœud du cluster, puis copiez le script mis à jour sur tous les autres nœuds.
-
Créez une sauvegarde du script actuel :
cp /usr/lib/ocf/resource.d/eseries/beegfs-monitor /usr/lib/ocf/resource.d/eseries/beegfs-monitor.bak.$(date +%F) -
Mettez à jour le chemin du fichier de configuration de gestion de
.confà.toml:sed -i 's|mgmt_config/beegfs-mgmtd\.conf|mgmt_config/beegfs-mgmtd.toml|' /usr/lib/ocf/resource.d/eseries/beegfs-monitorSinon, localisez manuellement le bloc suivant dans le script :
case $type in management) conf_path="${configuration_mount}/mgmt_config/beegfs-mgmtd.conf" ;;Et remplacez-le par :
case $type in management) conf_path="${configuration_mount}/mgmt_config/beegfs-mgmtd.toml" ;; -
Mettez à jour les
get_interfaces()etget_subnet_ips()fonctions pour prendre en charge la configuration TOML :-
Ouvrez le script dans un éditeur de texte :
vi /usr/lib/ocf/resource.d/eseries/beegfs-monitor -
Localisez les deux fonctions :
get_interfaces()etget_subnet_ips(). -
Supprimez les deux fonctions complètes, en commençant à
get_interfaces()jusqu'à la fin deget_subnet_ips(). -
Copiez et collez les fonctions mises à jour suivantes à leur place :
# 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 } -
Enregistrez et quittez l'éditeur de texte.
-
Exécutez la commande suivante pour vérifier la syntaxe du script avant de poursuivre. Si aucun résultat ne s'affiche, le script est syntaxiquement correct.
bash -n /usr/lib/ocf/resource.d/eseries/beegfs-monitor
-
-
Copiez le script OCF mis à jour
beegfs-monitorsur tous les autres nœuds du cluster :scp /usr/lib/ocf/resource.d/eseries/beegfs-monitor user@node:/usr/lib/ocf/resource.d/eseries/beegfs-monitor
Remettre le cluster en ligne
-
Une fois toutes les étapes de mise à niveau précédentes terminées, remettez le cluster en ligne en démarrant les services BeeGFS sur tous les nœuds.
pcs cluster start --all -
Vérifiez que le
beegfs-mgmtdservice a démarré correctement :journalctl -xeu beegfs-mgmtdLe résultat attendu comprend des lignes telles que :
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
Si des erreurs apparaissent dans les journaux, vérifiez les chemins d'accès au fichier de configuration de gestion et assurez-vous d'avoir correctement transféré toutes les valeurs à partir du fichier de configuration BeeGFS 7.
-
Exécutez
pcs statuset vérifiez que le cluster est sain et que les services sont démarrés sur leurs nœuds préférés. -
Une fois que le cluster est vérifié comme étant sain, réactivez STONITH :
pcs property set stonith-enabled=true -
Passez à la section suivante pour mettre à niveau les clients BeeGFS et vérifier l'état du cluster.
Mise à niveau des clients BeeGFS
Après la mise à niveau de votre cluster vers BeeGFS 8, vous devez également mettre à niveau tous les clients BeeGFS.
-
Si vous n'avez pas encore arrêté le service client BeeGFS, arrêtez-le maintenant :
systemctl stop beegfs-client -
Ajoutez le dépôt de paquets BeeGFS 8 pour votre distribution Linux. Les instructions pour ajouter les dépôts officiels BeeGFS sont disponibles à "page de téléchargement BeeGFS". Sinon, configurez votre dépôt miroir BeeGFS local en conséquence.
-
Mettez à jour les packages clients BeeGFS :
Pour Ubuntu/Debian :
apt-get update apt-get install --only-upgrade beegfs-client -
Configurez TLS pour le client. TLS est requis pour utiliser la CLI BeeGFS depuis les nœuds clients. Consultez la section "Configurer TLS pour les clients BeeGFS 8" dans le guide de déploiement TLS.
TLS n'est pas requis pour que le service
beegfs-clientmonte le système de fichiers BeeGFS. TLS est uniquement requis pour utiliser les outils CLI BeeGFS et d'autres services d'administration. -
Démarrez le service client BeeGFS :
systemctl start beegfs-clientSi le montage de BeeGFS échoue, consultez le journal système pour identifier les erreurs. Si vous voyez des messages tels que « Unable to proceed without a working root metadata node » ou « Remote I/O error », l'importation de BeeGFS 7 peut ne pas avoir été effectuée avec succès. Contactez le support NetApp pour obtenir de l'aide.
-
(Facultatif) Installez et configurez le nouvel
beegfsCLI tool sur les nœuds clients ou autres systèmes où vous souhaitez exécuter les commandes d'administration BeeGFS :-
Installez le
beegfs-toolspaquet :Pour Ubuntu/Debian :
apt-get install beegfs-tools-
Configurez TLS pour l
beegfsoutil. TLS est requis pour utiliser la CLI BeeGFS depuis un nœud client. Consultez la section "Configurer TLS pour les clients BeeGFS 8" du guide de déploiement TLS.
-
Vérifier la mise à jour
Après avoir terminé la mise à niveau vers BeeGFS 8, exécutez les commandes suivantes pour vérifier que la mise à niveau a réussi.
-
Vérifiez que l'inode racine appartient bien au même nœud de métadonnées qu'auparavant. Cela devrait se faire automatiquement si vous avez utilisé la
import-from-v7fonctionnalité dans le service de gestion :beegfs entry info /mnt/beegfs -
Vérifiez que tous les nœuds et cibles sont en ligne et en bon état :
beegfs health checkSi la vérification de la « capacité disponible » signale que les cibles manquent d'espace libre, vous pouvez ajuster les seuils du « pool de capacité » définis dans le
beegfs-mgmtd.tomlfichier afin qu'ils soient mieux adaptés à votre environnement.