WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:cluster:ceph:remplacement_disque

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
wiki:cluster:ceph:remplacement_disque [2018/06/16 18:28]
varens créée
wiki:cluster:ceph:remplacement_disque [2020/06/27 18:16] (Version actuelle)
Ligne 1: Ligne 1:
 ====== Remplacer un disque sur le cluster Ceph ====== ====== Remplacer un disque sur le cluster Ceph ======
  
-disque signe de défaillances....+<WRAP center round info 60%> 
 +Sur phobos, il n'est pas possible de changer un disque à chaud, il faut donc reboot et aller sur le contrôleur SATA du serveur (F10 au démarrage), ajouter un nouveau disque virtuelEt voilà!! 
 +</WRAP>
  
 +<WRAP center round todo 60%>
 +disque signe de défaillances.... explications, etc
 +</WRAP>
  
 Pour des erreurs de lecture sur le disque vous allez probablement avoir des erreurs sur les placements groups, du type : ''scrub errors; Possible data damage: X pg inconsistent'', que vous pourrez observer grâce à ''ceph status'' Pour des erreurs de lecture sur le disque vous allez probablement avoir des erreurs sur les placements groups, du type : ''scrub errors; Possible data damage: X pg inconsistent'', que vous pourrez observer grâce à ''ceph status''
Ligne 26: Ligne 31:
 Un petit ''lsblk'' avec l'aide de ''grep'' et le tour et joué. Attention vous remarquerez que les tirets sont doublés dans la sortie de ''lsblk'' pour identifier les volumes (sauf celui qui sépare le vg du lv dans le nom), donc vous aurez probablement à doubler les tirets dans le nom du volume logique, remplacer le / par un simple tiret. Un petit ''lsblk'' avec l'aide de ''grep'' et le tour et joué. Attention vous remarquerez que les tirets sont doublés dans la sortie de ''lsblk'' pour identifier les volumes (sauf celui qui sépare le vg du lv dans le nom), donc vous aurez probablement à doubler les tirets dans le nom du volume logique, remplacer le / par un simple tiret.
  
-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'OSD):+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é (<color #ed1c24>remplacer **X** par l'ID de l'OSD</color>):
 <code> <code>
 lsblk | grep -B1 $(ceph-volume lvm list | grep -A14 osd.X | tail -n1 \ lsblk | grep -B1 $(ceph-volume lvm list | grep -A14 osd.X | tail -n1 \
Ligne 50: Ligne 55:
 C'est bon, vous avez décidé de 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://docs.ceph.com/docs/master/rados/operations/add-or-rm-osds/|ajouter/enlever des OSDs]], et [[https://ceph.com/geen-categorie/admin-guide-replacing-a-failed-disk-in-a-ceph-cluster/|une page sur leur blog]], qui vous montre d'ailleurs que dans certains cas, Ceph lui-même va éteindre l'OSD quand le disque est défaillant. 
  
-Donc dans tous les cas, on commence par sortir l'OSD du cluster :+==== Si vous vous fichez des données sur le(s) disque(s) (grâce à votre politique de réplication) ==== 
 + 
 +Vous pouvez directement suivre l'extrait de documentation "Remplacer un OSD" après avoir lu le reste mais en n'oubliant pas que si vous utilisez le cache de bluestore il faut préciser ''--block.db'' dans le ''prepare'': 
 +<code> 
 +ceph-volume lvm  prepare --osd-id {id} --data /dev/sdX --block.db /dev/sdY 
 +</code> 
 + 
 +La documentation officielle de ceph : [[http://docs.ceph.com/docs/master/rados/operations/add-or-rm-osds/|ajouter/enlever des OSDs]], et [[https://ceph.com/geen-categorie/admin-guide-replacing-a-failed-disk-in-a-ceph-cluster/|une page sur leur blog pour remplacer un disque défaillant]], qui vous montre d'ailleurs que dans certains cas, Ceph lui-même va éteindre l'OSD quand le disque est défaillant. 
 + 
 +[[http://docs.ceph.com/docs/master/rados/operations/add-or-rm-osds/#replacing-an-osd|Remplacer un OSD]] 
 + 
 +==== Sinon ==== 
 + 
 +Vous pouvez directement suivre l'extrait de documentation "Remplacer un OSD" après avoir lu le reste : 
 + 
 +La documentation officielle de ceph : [[http://docs.ceph.com/docs/master/rados/operations/add-or-rm-osds/|ajouter/enlever des OSDs]], et [[https://ceph.com/geen-categorie/admin-guide-replacing-a-failed-disk-in-a-ceph-cluster/|une page sur leur blog pour remplacer un disque défaillant]], qui vous montre d'ailleurs que dans certains cas, Ceph lui-même va éteindre l'OSD quand le disque est défaillant. 
 + 
 +[[http://docs.ceph.com/docs/master/rados/operations/add-or-rm-osds/#replacing-an-osd|Remplacer un OSD]] 
 + 
 + 
 + 
 + 
 +==== Si vous avez absolument besoin de récupérer des données sur le(s) disque(s) (À MiNET si la réplication marche, on suit la partie précédente !!!) ==== 
 + 
 + 
 +<WRAP center round important 60%> 
 +Je répète : Si vous avez absolument besoin de récupérer des données sur le(s) disque(s) 
 +</WRAP> 
 + 
 + 
 +On commence par sortir l'OSD du cluster :
 <code>ceph osd out osd.X</code> <code>ceph osd out osd.X</code>
  
Ligne 76: Ligne 110:
  
 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. 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.
 +<code>ceph osd crush remove osd.OSD_ID</code>
  
-Encore une fois vous allez devoir attendre.+Encore une fois vous allez devoir attendre. Une fois que l'étape de récupération des données est terminée, vous pouvez supprimer les clés de l'OSD: 
 +<code>ceph auth del osd.OSD_ID</code> 
 +Puis le supprimer: 
 +<code>ceph osd rm osd.OSD_ID</code>
  
  
 +Pour identifier le disque dans le serveur vous pouvez essayer de trouver le disque dont la LED reste éteinte, pour confirmer votre supposition vous pouvez utiliser :
 +Attention à bien effectuer cette commande sur le disque que vous allez remplacer, sinon vous allez perdre des données.
 +<code>dd if=/dev/zero of=/dev/sdX bs=1M</code>
 +La LED devrait s'allumer en continu, et rester allumé après un ''Control-C'', à cause du délai entre écriture demandée et écriture effectuée.
  
 +Vous pouvez maintenant retirer le disque et le remplacer.
  
 +Vous pouvez donc identifier le nouveau disque et recréer un OSD. Bien penser à spécifier la partition de cache si vous utiliser bluestore avec du cache. Vous pouvez l'identifier en cherchant celle qui manque dans :
 +<code>ceph-volume lvm list</code>
  
 +Si vous utilisez **ceph-deploy** merci de vous réferer au blog cité plus haut.
  
 +/dev/sdX : votre nouveau disque
 +
 +/dev/sdY : votre cache utilisé pour cet OSD
 +<code>
 +ceph-volume lvm zap /dev/sdX
 +ceph-volume lvm prepare --osd-id OSD_ID --data /dev/sdX --block.db /dev/sdY
 +</code>
  
 +Avec ''ceph-volume lvm list'' récupérer le FSID de l'OSD (osd fsid), si l'ID de l'OSD ne correspond pas à l'ancien idenfiant, ne l'activez surtout pas.
  
 +Sinon si tout s'est bien passé :
 +<code>ceph-volume lvm activate ID FSID</code>
  
 +Et voilà !
  
 + --- //[[varens@minet.net|Romain Cherré]] 2018/06/16 21:56//
wiki/cluster/ceph/remplacement_disque.1529166523.txt.gz · Dernière modification: 2020/06/27 18:15 (modification externe)