Un moniteur est obligatoire pour déployer un noeud CEPH, même si c'est un manageur !
CEPH a été re-déployé manuellement de 0 en début 2023, sous la dernière version en date, quincy.
Puisque la documentation de CEPH est assez désordonnées et décousues, voilà une doc de déploiement complète, adaptée à MiNET.
La seule installation de CEPH qui permet aux nodes de ne pas avoir accès à internet passe par l'installation manuelle.
cephadm
ou sont équivalent semi-automatique (configuration à la main, installation automatique) nécessite que les nodes aient une connexion internet.Pour des raisons de design et de sécurité évidentes, il en est bien entendu, hors-de-question. Il faut donc tout faire à la main !
L'installation des MONs se distingues en fonction de s'il s'agit du PREMIER MON d'un (nouveau) cluster ou s'il on ajoute un moniteur (ou manager) à un cluster existence :
Pour que proxmox puisse accéder au cluster, il nous faut lui créer un clé et les donner les bons accès :
ceph auth get-or-create client.<client_name_for_pool> mon 'profile rbd' osd 'profile rbd pool=<pool>'
Le keyring en entier, doit ensuite être donné à proxmox.
Ensuite allez en graphique sur un noeud proxmox
datacenter>storage
Créez un storage rbd
.
Indiquez
id
qui sera le nom du storage au sein de proxmoxpool
qui correspond au nom exact de la poolMonitor
les ip des moniteurs séparés par des espacesuser name
le client name du keyring créé plus haut. Par exemple proxmox_replicated_3
keyring
le keyring (nom du client + key), récupérer grâce à ceph auth get client.*<client_name_for_pool>
. Il faut copier et coller les deux premières lignes.Les moniteurs sont très probablement down, unreachable ou en dehors du quorum.
Voici le log indiquant qu'un MON est en dehors du quorum (/var/log/ceph/ceph-mon-<hostname>.log
):
mon.<hostname>@1(probing) e9 handle_auth_request failed to assign global_id
/var/lib/ceph
sont accessible par ceph. Ne pas hésiter à abuser du chown ceph:ceph -R /var/lib/ceph/*
_open error initializing leveldb db back storage in /var/lib/ceph/mon/ceph-mon1/store.db
Il faut kill le processus utilisé par
ceph-mon -i <hostname> --public-addr <ip>
(un ps aux | grep ceph
fera l'affaire pour le localiser).
Voici quelques tips et info pour le troubleshooting de problèmes usuels
pg active+undersized+degraded
, cela signifie que la replication des données à un problème. Cela vient du faite qu'il n'y a pas assez de replicat des données. Si un OSD est down, out ou deffectueux, alors des pg sont dégradés. Si une pool à une replicated size supérieure à ce que peut gérer ceph (plus de replicat que de noeud), alors la replication n'est pas parfaite.1. Si le problème vient d'un OSD deffectueux, l'ejecter du cluster (
mark out
) , pour force CEPH a re-répliquer.2. Si un host est down et que le nombre de noeud est inférieur à la replication de la pool, il faut simplement attendre que le noeud rejoinge le cluster et laisser ceph gérer.