Résoudre les problèmes avec Ceph et Rook
Ces rubriques fournissent des instructions pour résoudre les problèmes liés à Ceph et Rook.
Résoudre l’échec de création de l’OSD
Problème
L’installation échoue car les démons de stockage d’objets (OSD) ne sont pas créés.
Solution
Une raison courante de l’échec de l’installation est que les démons de stockage d’objets (OSD) ne sont pas créés. Un OSD configure le stockage sur un nœud de cluster. Les OSD peuvent ne pas être créés en raison de la non-disponibilité des ressources disque, sous la forme de ressources insuffisantes ou d’un espace disque mal partitionné. Pour éviter l’échec de l’installation dû à un espace disque insuffisant, assurez-vous que les nœuds disposent de suffisamment d’espace disque non formaté.
Déboguer les problèmes de formatage du disque
Problème
L’installation échoue lorsqu’un disque doit être formaté.
Solution
Assurez-vous d’un espace disque non formaté suffisant.
Vous devez examiner les rook-ceph-osd-prepare-hostname-* journaux des travaux pour déterminer si vous devez reformater le disque ou la partition. Pour reformater le disque ou la partition et redémarrer Rook :
-
Utilisez l’une des méthodes suivantes pour reformater un disque ou une partition existant :
ATTENTION:Ces commandes reformatent complètement le disque ou les partitions que vous utilisez et vous perdrez toutes les données qu’elles contiennent.
- Si vous avez un périphérique de stockage par bloc qui aurait dû être utilisé pour Ceph, mais qui n’a pas été utilisé parce qu’il était dans un état inutilisable, vous pouvez reformater complètement le disque.
$ sgdisk -zap /dev/disk $ dd if=/dev/zero of=/dev/disk bs=1M count=100
- Si vous avez une partition de disque qui aurait dû être utilisée pour Ceph, vous pouvez effacer complètement les données sur la partition.
$ wipefs -a -f /dev/partition $ dd if=/dev/zero of=/dev/partition bs=1M count=100
- Si vous avez un périphérique de stockage par bloc qui aurait dû être utilisé pour Ceph, mais qui n’a pas été utilisé parce qu’il était dans un état inutilisable, vous pouvez reformater complètement le disque.
-
Redémarrez Rook pour enregistrer les modifications et réessayez le processus de création de l’OSD.
$ kubectl rollout restart deploy -n rook-ceph rook-ceph-operator
Résoudre l’échec de l’OSD Ceph
Problème
L’OSD Ceph échoue.
Solution
Vous devez identifier l’OSD défaillant et le supprimer. Vous pouvez ensuite reformater ou remplacer le disque partiellement ou complètement.
Pour résoudre les pannes de disque :
-
Exécutez la commande suivante pour vérifier l’état des pods Rook et Ceph installés dans l’espace
rook-cephde noms.# kubectl get po -n rook-ceph -
Si un
rook-ceph-osd-*pod est à l’étatErrorouCrashLoopBackoff, vous devez réparer le disque.Procédez comme suit pour réparer le disque :
-
Arrêtez
rook-ceph-operator.# kubectl scale deploy -n rook-ceph rook-ceph-operator --replicas=0 -
Supprimez les processus OSD défaillants.
# kubectl delete deploy -n rook-ceph rook-ceph-osd-number -
Connectez-vous à la boîte à outils.
$ kubectl exec -ti -n rook-ceph $(kubectl get po -n rook-ceph -l app=rook-ceph-tools -o jsonpath={..metadata.name}) -- bash -
Identifiez l’OSD défaillant.
# ceph osd status -
Marquez l’OSD défaillant.
[root@rook-ceph-tools-/]# ceph osd out 5 marked out osd.5. [root@rook-ceph-tools-/]# ceph osd status ID HOST USED AVAIL WR OPS WR DATA RD OPS RD DATA STATE 0 10.xx.xx.210 4856M 75.2G 0 0 0 0 exists,up 1 10.xx.xx.215 2986M 77.0G 0 0 1 89 exists,up 2 10.xx.xx.98 3243M 76.8G 0 0 1 15 exists,up 3 10.xx.xx.195 4945M 75.1G 0 0 0 0 exists,up 4 10.xx.xx.170 5053M 75.0G 0 0 0 0 exists,up 5 10.xx.xx.197 0 0 0 0 0 0 exists
-
Supprimez l’OSD défaillant.
# ceph osd purge number --yes-i-really-mean-it - Connectez-vous au nœud qui hébergeait l’OSD défaillant, puis effectuez l’une des opérations suivantes :
- Remplacez le disque dur en cas de défaillance matérielle.
- Reformatez complètement le disque.
$ sgdisk -zap /dev/disk $ dd if=/dev/zero of=/dev/disk bs=1M count=100
- Reformatez complètement la partition.
$ wipefs -a -f /dev/partition $ dd if=/dev/zero of=/dev/partition bs=1M count=100
-
Redémarrez
rook-ceph-operator.# kubectl scale deploy -n rook-ceph rook-ceph-operator --replicas=1 -
Surveillez les pods OSD.
# kubectl get po -n rook-cephSi l’OSD ne récupère pas, utilisez la même procédure pour supprimer l’OSD, puis retirez le disque ou supprimez la partition avant de redémarrer
rook-ceph-operator.
-
Voir aussi
Problèmes de débogage avec les pods Rook et Ceph
Problème
L’installation peut échouer lorsque les pods Rook et Ceph sont dans l’état error ,
Solution
Un matériel sous-alimenté peut provoquer une erreur Rook and Ceph pods. Une erreur Rook and Ceph pods peut également entraîner l’échec de l’installation. Pour résoudre la plupart des problèmes liés aux pods Rook et Ceph, assurez-vous que les pods installés sont dans l’état running . Pour confirmer cela, vous devez :
-
Exécutez la commande suivante pour vérifier l’état des pods Rook et Ceph installés dans l’espace
rook-cephde noms.# kubectl get po -n rook-ceph -
Assurez-vous que les pods suivants sont dans l’état
running:rook-ceph-mon-*—En règle générale, trois pods de moniteur-
rook-ceph-mgr-*—Un pod de responsable -
rook-ceph-osd-*—Trois pods OSD ou plus -
rook-ceph-mds-cephfs-*—Serveurs de métadonnées -
rook-ceph-rgw-object-store-*—Passerelle ObjectStore -
rook-ceph-tools*: pour des options de débogage supplémentairesPour vous connecter à la boîte à outils, utilisez cette commande :
$ kubectl exec -ti -n rook-ceph $(kubectl get po -n rook-ceph -l app=rook-ceph-tools \ -o jsonpath={..metadata.name}) -- bashPour plus d’informations sur les commandes courantes supplémentaires dans la boîte à outils, consultez le Tableau 1.
Tableau 1 : commandes supplémentaires Description de la commande # ceph statusAfficher l’état du cluster. # ceph osd statusVoir le résumé de la carte OSD. # ceph osd dfAffichez les détails de l’utilisation du disque (global et par pool). # ceph osd utilizationVoir l’utilisation de l’OSD. # ceph osd pool statsAffichez l’utilisation des grappes de disques. # ceph osd treeVoir l’arborescence OSD. # ceph pg statAfficher l’état et les performances de pg.