====== Heketi ======
===== Fonctionnement général =====
Le système Heketi a besoin de plusieurs choses pour fonctionner. D'une part sur les hôtes, il y a un système [[systemes:linux:lvm|LVM]]. Ce système monte des blocks de données sous la forme ''/dev/mapper/vg_{VOLUMEID}-brick_{BRICKID}'' où ''{VOLUMEID}'' correspond au volume et ''{BRICKID}'' à la brique.
Ces blocks sont ensuite monté dans un sous répertoire de ''/var/lib/heketi/mounts/vg_{VOLUMEID}/brick_{BRICKID}''. Le fichier de montage __n'est pas__ le fichier fstab par défaut de l'OS sur les atomic. Il s'agit du fichier ''/var/lib/heketi/fstab''.
Ces bricks sont ensuite utilisées par le pod.
Un des volume est un peut particulier est utilisé comme base de donnée par Heketi.
Si le volume ne fonctionne pas, il convient de vérifier d'une part si le dossier est bien monté. Il doit y avoir un dossier brick dans le dossier monté. Si le dossier de la brick est vide, alors il faut dans un premier temps essayer de monter à nouveau la brick.
mount -T /var/lib/heketi/fstab /var/lib/heketi/mounts/vg_{VOLUMEID}/brick_{BRICKID}
S'il y a l'erreur ''special device /dev/mapper/vg_[...] does not exist'' alors il y a un problème sur LVM. Dans ce cas, se reporter à la page [[systemes:linux:lvm|LVM]].
===== Problèmes connus =====
==== Problème de démarrage du stockage ====
Souvent les pods de stockage ont du mal à fonctionner après un redémarrage d'infra. Dans ce cas, il faut faire la commande suivante sur les noeuds :
mount -T /var/lib/heketi/fstab -a
Une fois les partitions heketi correctement monté, il faut redémarrer les pods GlusterFS pour que tout refonctionne correctement.
==== PVC not bound ====
Panne sur le provisionnement des PV. Il se peut que le provisionnement ne fonctionne plus avec l'erreur suivante :
> Failed to provision volume with StorageClass "glusterfs-storage": failed to create volume: failed to create volume: Server busy. Retry operation later.
Dans les logs du pod Heketi, on retrouve des erreurs suivantes :
> WARNING 2019/11/19 11:49:52 operations in-flight (8) exceeds limit (8)
Le se peut que le pod soit en erreur. Le plus simple est de [[:systemes:virtualisation:kubernetes:objets:workloads:pods#destruction_d_un_pod|tuer le pod]] heketi.
{{tag>Kubernetes}}
{{tag>systemes:linux:lvm}}