Ci-dessous, les différences entre deux révisions de la page.
wiki:cluster:ceph:remplacement_disque [2018/06/16 19:16] varens |
wiki:cluster:ceph:remplacement_disque [2020/06/27 18:16] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Remplacer un disque sur le cluster Ceph ====== | ||
- | |||
- | <WRAP center round todo 60%> | ||
- | disque signe de défaillances.... explications, | ||
- | </ | ||
- | |||
- | Pour des erreurs de lecture sur le disque vous allez probablement avoir des erreurs sur les placements groups, du type : '' | ||
- | |||
- | Vous avez la documentation officielle de ceph sur le [[http:// | ||
- | |||
- | Normalement ce type d' | ||
- | |||
- | Pour connaître exactement le problème, vous pouvez utiliser '' | ||
- | |||
- | On regarde donc pour chaque pg quel est le problème grâce à < | ||
- | |||
- | |||
- | Si dans les champs errors vous voyiez // | ||
- | |||
- | ===== Identifier le disque ===== | ||
- | |||
- | Grâce à la commande qui liste les objets affectés vous remarquez sans doute qu'un seul (j' | ||
- | |||
- | Bon donc on a l'ID de l'OSD, maintenant il nous faut récupérer le disque correspondant, | ||
- | On identifie la machine qui possède l'OSD avec un simple '' | ||
- | On a donc l' | ||
- | Un petit '' | ||
- | |||
- | Parce qu'on aime les one-liners (pas sur qu'il fonctionne encore dans quelques années), en voici un qui à partir de l'OSD vous donne le disque associé (remplacer **X** par l'ID de l' | ||
- | < | ||
- | lsblk | grep -B1 $(ceph-volume lvm list | grep -A14 osd.X | tail -n1 \ | ||
- | | cut -d'/' | ||
- | </ | ||
- | |||
- | ===== Tests sur le disque ===== | ||
- | |||
- | Maintenant que le disque est identifié, il nous reste plus qu'à le tester et prendre une décision. | ||
- | Pour ça on utilise l' | ||
- | On peut déjà regarder l' | ||
- | |||
- | Puis tester le disque grâce à l' | ||
- | |||
- | |||
- | <WRAP center round important 60%> | ||
- | Le test de santé peut être **PASS**, bien que le disque cause des erreurs, et **PASS** ne veut pas forcément dire garder le disque. | ||
- | </ | ||
- | |||
- | ===== Remplacer le disque ===== | ||
- | |||
- | |||
- | C'est bon, vous avez décidé de remplacer le disque. | ||
- | |||
- | Pour vous aider il y a la documentation officielle de ceph : [[http:// | ||
- | |||
- | Donc dans tous les cas, on commence par sortir l'OSD du cluster : | ||
- | < | ||
- | |||
- | Il ne vous reste plus qu'à attendre que Ceph déplace les données dont il ne peut pas se passer si l'OSD est down : les PGs qui sont présents uniquement sur le disque vont être déplacés ailleurs. C'est ce qui arrive si vous n'avez pas de réplication ni de correction d' | ||
- | |||
- | Vous pouvez observez le déplacement des PGs avec | ||
- | < | ||
- | qui de manière générale vous affiche ce que fait le cluster lorsqu' | ||
- | |||
- | Dans le cas où des données sont introuvables, | ||
- | |||
- | Une fois que vous avez réussi à revenir dans un état correct, on stoppe l'OSD grâce à : | ||
- | < | ||
- | |||
- | On vérifie que le service est bien down : | ||
- | < | ||
- | ceph osd tree | ||
- | systemctl status ceph-osd@OSD_ID.service | ||
- | </ | ||
- | |||
- | Si ce n'est pas le cas, éteignez l'OSD avec systemd : | ||
- | < | ||
- | |||
- | Ensuite on enlève l'OSD de la crushmap, pour que ceph déplace les objets qui étaient présents sur l'OSD ailleurs, grâce à la politique de réplication : les PGs présents sur le disque sont déplacés grâce aux réplicas. | ||
- | |||
- | Encore une fois vous allez devoir attendre. Une fois que l' | ||
- | < | ||
- | Puis le supprimer: | ||
- | < | ||
- | |||
- | |||
- | Vous pouvez maintenant retirer le disque et le remplacer. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||