2 votes

Exécution de conteneurs au-dessus de QEMU

J'ai une installation de test que j'essaie de faire migrer vers l'utilisation de VM plutôt que de bare metal autant que possible. La configuration existante est structurée pour tout exécuter dans des conteneurs (LXC, en particulier), et elle ne disparaîtra pas, donc si possible, je veux utiliser la structure existante sur les VM. Le cluster de VM dans lequel les autres services s'exécutent est QEMU.

Naïvement, cela semble simple, mais la dernière personne de mon équipe à l'avoir essayé a abandonné, confuse. Voici donc ce que je veux savoir :

  • Existe-t-il des problèmes connus concernant l'exécution de LXC à l'intérieur de VMs QEMU en particulier ou de machines virtuelles en général ?

  • Y a-t-il des obstacles auxquels je dois m'attendre, et si oui, lesquels ?

  • Est-il plus probable qu'il s'agisse de problèmes liés à notre configuration idiosyncrasique que de problèmes de compatibilité générale ?

1voto

Austin Hemmelgarn Points 7834

Compatibilité

Il ne devrait y avoir aucun problème. QEMU n'a pas l'air de fonctionner différemment du matériel normal pour le système invité, et LXC ne fait rien qui nécessite un comportement spécial du matériel que QEMU n'émule pas.

Mais...

Vous ne voulez probablement pas faire cela, non seulement parce que cela nuira aux performances, mais aussi parce que cela compliquera considérablement la gestion. Vous devriez probablement réévaluer les raisons pour lesquelles vous pensez avoir besoin de VM sous les conteneurs (ou, mieux encore, si vous utilisez déjà des conteneurs pour une partie de votre infrastructure, pourquoi vous avez besoin d'utiliser des VM pour le reste). À moins que vous ne vraiment Si vous ne vous souciez pas de la migration en direct ou de l'amélioration de l'isolation des charges de travail au-delà de ce qu'offrent les conteneurs, il est probablement préférable d'adapter le reste de votre infrastructure à l'utilisation des conteneurs, car ils utilisent moins de ressources. La seule exception à cette règle concerne les systèmes qui fournissent des services accessibles au monde extérieur, qui ne devraient jamais se trouver sur un hôte partagé à moins qu'ils ne soient dans une VM (parce que le crash d'un conteneur entraînera souvent le crash de l'hôte), et même dans ce cas, ils ne devraient généralement pas se trouver sur un hôte partagé avec des services internes.

D'accord, mais je vraiment de le faire de toute façon.

Dans ce cas, travaillez à l'adaptation de votre logiciel pour utiliser des machines virtuelles au lieu de conteneurs. D'un point de vue réaliste, l'adaptation ne devrait pas être trop difficile. Il est en fait assez facile de configurer QEMU pour démarrer directement un noyau Linux (et donc contourner le besoin d'un chargeur d'amorçage, et avec lui le besoin d'une table de partition), et une fois que vous pouvez faire cela, il est facile d'extraire l'image de base du conteneur dans une image de système de fichiers que vous pouvez ensuite utiliser directement comme un disque (cela serait toujours un peu moins performant que les conteneurs, mais loin d'être aussi mauvais que d'exécuter les conteneurs à l'intérieur des VM).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X