Forum Linux.général LVM-Raid0 + lvm cache pour Docker

Posté par  . Licence CC By‑SA.
0
6
août
2020

Bonjour,

J'utilise un container docker pour générer des images Yocto.
Ca prend pas mal de temps (1h30) et je voudrais utiliser au mieux la machine.

Les sources et les sorties sont stockées sur l’hôte (2 disques HDD en LVM-Raid0) à travers un volume.
Comme j'ai un SSD qui traîne à coté et que j'ai découvert sous linuxfr qu'on pouvait faire un cache de HDD avec un SSD, j'ai voulu l'utiliser en cache.

Après quelques recherches, j'ai configuré ma machine d'après cette page (https://blog.delouw.ch/2020/01/29/using-lvm-cache-for-storage-tiering/).
Jusque là, tout va bien ….
1h30 plus tard, je me rends compte qu'il n'y aucun gain de performance :(

En faisant un lsblk dans mon container, je me rends compte qu'il ne voit pas mes volumes LVM … je me demande d'ailleurs si le LVM-raid0 était utilisé …

Je relance mon container en mode privileged, et j'installe lvm2, j'arrive alors à voir des volumes LVM mais j'ai des erreurs:

/run/lvm/lvmetad.socket: connect failed: No such file or directory
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
WARNING: Unrecognised segment type cache-pool+METADATA_FORMAT

donc au final je suis un peu perdu … j'ai donc quelques questions:
- quelle est la meilleure méthode pour utiliser au mieux un disque LVM-raid 0 avec cache SSD dans un container docker?
- mon hôte est une Ubuntu 20 et mon container utilise une Ubuntu 16. De ma compréhension, LVM est géré par le noyau mais piloté par des outils utilisateur. Est-que les outils LVM de l'hôte pourront parler au noyau récent de la Ubuntu 20?
- des conseils ?

Merci pour votre aide!

  • # Pistes en vrac

    Posté par  . Évalué à 1.

    Bonjour,

    Quelques pistes en vrac :

    • Est-il nécessaire d'utiliser le container en mode privileged ? L'utilisation "standard" serait plutôt me semble-t-il de gérer les systèmes de fichiers basés sur un périphérique réel et/ou lvm au niveau de l'hôte. Les containers seraient lancés avec un ou plusieurs volumes qui seraient sur la volume lvm avec le cache ssd. Ou alors il faudrait configurer docker pour qu'il utilise directement le lvm avec cache; ainsi tous les containers lancés bénéficierait indirectement du cache ssd.
    • Si toutefois le mode privileged était un prérequis indispensable dans ce cas il est possible qu'en effet les outils lvm d'une Ubuntu 16 soient trop anciens par rapport à ceux d'une Ubuntu 20. Pour confirmer cela il faudrait lancer une Ubuntu 20 avec docker , y installer lvm et comparer la différence avec une Ubuntu 16.
    • Il est possible que même avec un cache SSD la hausse de performance attendu ne soit pas visibles car le workflow en question dépend plutôt d'autres variables (processeur, mémoire, etc), ou tout simplement parce que le cache est mal configuré. Afin de mieux juger de l'impact du cache des tests synthétiques seraient opportuns, par ex. avec bonnie++.
    • [^] # Re: Pistes en vrac

      Posté par  . Évalué à 1.

      Bonjour,

      Pour le container privileged, c'est probablement pas nécessaire mais j'avais essayé trouvant qu'en mode normal les résultats étaient pas terribles.

      Pour ce qui est de l'augmentation des perfs pas visible c'est une possibilité, mais ayant un paquet de processeurs et pas mal de RAM, je m'attendais à ce que les disques soient le point faible. J'ai mis en place un monitoring des ressources et je vais déjà voir si la RAM ou les CPU saturent et ensuite je ferai des benchmarks avec bonnie++ (que je découvre!)

      Merci pour tes pistes et bonnie!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.