1

Proxmox Cluster Ceph : migration version 5 vers 6

Un mémo sur comment migrer un cluster Proxmox 5 HA avec Ceph Luminous vers un cluster Proxmox 6 HA avec Ceph Nautilus.

La migration du cluster Proxmox Ceph se déroule en 3 étapes :

  • Mise à jour de Corosync 2 vers 3
  • Migration proxmox 5 vers 6
  • Migration de Ceph Luminous vers Nautilus

Afin d’avoir une continuité de service, la migration de Proxmox 5 vers 6 a été réalisée noeud après noeud (sauf pour la mise à niveau de Corosync) tout en migrant les VM vers les noeuds en ligne.

De plus, toutes les VM ont été retirées des groupes de la HA afin que les VM ne migrent pas automatiquement sur les autres noeuds du cluster Proxmox.

Mise en garde

Faire des sauvegardes de toutes les VM et vérifier leur intégritées avant de procéder à la migration de Proxmox 5 vers 6.

Mise à jour de Corosync 3

Sur chaque noeuds du cluster Proxmox :

apt update && apt full-upgrade
systemctl stop pve-ha-lrm
systemctl stop pve-ha-crm
echo "deb http://download.proxmox.com/debian/corosync-3/ stretch main" > /etc/apt/sources.list.d/corosync3.list
apt update && apt full-upgrade
pvecm status
systemctl start pve-ha-lrm
systemctl start pve-ha-crm

Mise à jour de Proxmox 5.4 vers 6

Les étapes suivantes peuvent être faite noeud après noeud sans interruption de service, en ayant migrer les VM sur les autres noeuds.

  • Modification des dépôts :
  • sed -i 's/stretch/buster/g' /etc/apt/sources.list
    echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-enterprise.list
    echo "deb http://download.proxmox.com/debian/ceph-luminous buster main" > /etc/apt/sources.list.d/ceph.list
  • Mise à jour des dépôts et migration de version de Proxmox :
    apt update && apt full-upgrade
    • message d’avertissement :
    • Ensuite, une série de questions seront posées par rapport à différents fichiers de configuration
  • Une fois la migration terminée, vérification de l’état du cluster :
  • pvecm status

  • Supprimer le dépôt pour corosync 3:
  • rm /etc/apt/sources.list.d/corosync3.list

Finalisation migration Ceph Luminous vers Nautilus

Attention, cette étape est la plus délicate et dangereuse. Avant de commencer l’étape de migration de Ceph Luminous vers Nautilus, s’assurer que le status du Ceph soit OK :

Autre attention particulière, si comme moi votre cluster Ceph a été migrer de Jewel vers Luninous, il faut impérativement vérifier que Ceph a effectué au moins un nettoyage complet de touts les PG lors de l’exécution de Luminous. Sinon, les démons de contrôle refuseront de rejoindre le quorum au démarrage, les laissant non fonctionnels.

Afin de vérifier si un nettoyage complet a été effectué sur tous les PG, vérifier avec la commande suivante si les drapeaux recovery_deletes et purged_snapdirs sont présent :

ceph osd dump | grep ^flags

Dans le cas contraire, d’après le doc officielle attendre entre 24 et 48h avant de procéder à la migration de Ceph Luminous vers Nautilus ou exécuter la commande suivante afin d’accélérer le processus de nettoyage :

ceph pg dump pgs_brief | cut -d " " -f 1 | xargs -n1 ceph pg scrub

nb : Je n’ai pas testé cette commande, car mon cluster Ceph était propre.

Si tout est OK, alors procéder à la migration de Ceph Luminous vers Nautilus.

  • Adapter le fichier /etc/pve/ceph.conf :

    Depuis Nautilus, tous les démons utilisent l’option ‘keyring’ dans le fichier de configuration, il faut donc l’adapter. Le moyen le plus simple consiste à déplacer l’option « keyring » dans la section « client » et la supprimer partout ailleurs. Créer la section « client » si elle n’existe pas.

    • Avant :
    • [global]
          ...
          keyring = /etc/pve/priv/$cluster.$name.keyring
      [osd]
          keyring = /var/lib/ceph/osd/ceph-$id/keyring
      
    • Après :
    • [global]
          ...
      [client]
          keyring = /etc/pve/priv/$cluster.$name.keyring
      

      Exemple :

  • Sur chaque noeud, modifier les dépôts de Ceph :
  • sed -i 's/luminous/nautilus/' /etc/apt/sources.list.d/ceph.list
  • Définir le drapeau ‘noout’ :
  • ceph osd set noout
  • Mise à niveau sur chaque nœud de cluster Ceph :
    apt update && apt dist-upgrade
    • Lors de la mise à niveau, le système demmandera pour redémarrer les services. Ne pas redémarrer tout de suite, attendre que tous les noeuds du cluster Ceph soit migrés de Luminous vers Nautilus :
  • Une fois que tous les noeuds du cluster Ceph ont migré vers Nautilus, redémarrer les daemons des monitors sur chaque noeud :
  • systemctl restart ceph-mon.target
  • Vérifier sur chaque noeud la version du monitor :
  • ceph mon dump | grep min_mon_release

  • Sur chaque noued du cluster Ceph, redémarrer le daemon « manager » :
  • systemctl restart ceph-mgr.target
  • Vérifier le status de Ceph et l’état des monitors :
    ceph -s
    • Dans mon cas, j’ai un soucis avec msgr2 :
    • Activer msgr2 :
    • ceph mon enable-msgr2
    • Verifier de nouveau le status de Ceph et l’état des monitors :
    • ceph -s


      Les monitors sont fonctionnels.

  • Redémmarer les daemons des OSD sur tous les noeuds du cluster Ceph les uns après les autres:
    systemctl restart ceph-osd.target
    • Exemple visuel lors d’un redémarrage des daemons OSD sur un noeud :
  • Sur chaque noeud, indiquer à ceph-volume d’adapter les OSD créés avec ceph-disk à l’aide des deux commandes suivantes:
  • ceph-volume simple scan
    ceph-volume simple activate --all

    Exemple de résultat :

  • Redémarrer un noeud vide de VM afin de vérifier que les OSD sont bien reconnus au redémarrage :
    reboot
    • Une fois redémarrer, vérifier les OSD :
    • ceph osd tree


      Ici, tous les OSD sont reconnus.

  • Désactiver les OSD antérieurs à Nautilus et activer toutes les nouvelles fonctionnalités réservées à Nautilus :
  • ceph osd require-osd-release nautilus
  • Désactiver ‘noout’ et vérifier le status du cluster Ceph Nautilus :
  • ceph osd unset noout
    ceph -s

La migration de proxmox 5 vers Proxmox 6 et Ceph Luninous vers Nautilus est entièrement terminée.

Ressources

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

Un commentaire

  1. Merci pour ton nouveau mémo.
    Juste un petit ajout je pense important.

    Il est fortement conseillé de tester son installation avec un « pve5to6 » avant d’attaquer les mises à jours.

    Salutations
    Christophe

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *