Différence entre KVM et LXC

Quelle est la différence entre les conteneurs KVM et Linux (Lxcs)? Pour moi, il semble que LXC soit aussi un moyen de créer plusieurs VM dans le même noyau si nous utilisons à la fois les fonctionnalités "namespaces" et "control groups" du noyau.

30
demandé sur chrk 2013-12-14 04:01:57

3 réponses

texte de https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/7-Beta/html/Resource_Management_and_Linux_Containers_Guide/sec-Linux_Containers_Compared_to_KVM_Virtualization.html Copyright © 2014 Red Hat, Inc.:

conteneurs Linux par rapport à la virtualisation KVM

la principale différence entre la virtualisation KVM et Linux Les conteneurs est que les machines virtuelles nécessitent un noyau séparé instance pour fonctionner, tandis que les conteneurs peuvent être déployés à partir de l'hôte système. Cela réduit considérablement la complexité de conteneur la création et la maintenance. Aussi, la réduction des frais généraux vous permet de créer un grand nombre de conteneurs avec des vitesses de démarrage et d'arrêt plus rapides. Les conteneurs Linux et la virtualisation KVM présentent certains avantages et les inconvénients qui influencent l'utilisation des cas dans lesquels ces technologies sont généralement utilisés:

KVM la virtualisation

la virtualisation KVM vous permet de démarrer des systèmes d'exploitation complets de différents types, même les systèmes non-Linux. Cependant, une configuration complexe est parfois nécessaire. Les machines virtuelles sont intensives en ressources de sorte que vous pouvez exécuter seulement nombre limité d'entre eux sur votre machine hôte.

exécuter des instances de noyau séparées signifie généralement une meilleure séparation et de la sécurité. Si l'un des grains se termine de façon inattendue, il fait pas désactiver tout le système. Sur le d'autre part, cet isolement rend il est difficile pour les machines virtuelles de communiquer avec le reste de la il faut donc recourir à plusieurs mécanismes d'interprétation.

la machine virtuelle invitée est isolée des modifications de l'hôte, ce qui vous permet exécuter différentes versions de la même application sur l'hôte et virtuel machine. KVM fournit également de nombreuses fonctionnalités utiles telles que live migration. Pour plus d'informations sur ces fonctionnalités, voir Red Hat Entreprise Linux 7 Guide de déploiement et D'Administration de la virtualisation.

Conteneurs Linux:

la version actuelle des conteneurs Linux est conçue principalement pour prise en charge de l'isolement d'une ou de plusieurs applications, avec des plans de mise en œuvre système complet de conteneurs dans un avenir proche. Vous pouvez créer ou détruire des conteneurs très facilement et ils sont pratiques à conserver.

les changements à l'échelle du système sont visibles dans chaque contenant. Par exemple, si vous mise à niveau d'une application sur la machine hôte, ce changement s'appliquera aux toutes les bacs à sable qui exécutent des instances de cette application.

Depuis les conteneurs sont légers, un grand nombre d'entre eux peuvent s'exécuter simultanément sur une machine hôte. Le maximum théorique est de 6000 les conteneurs et les 12.000 supports de liaison des répertoires du système de fichiers racine. En outre, les conteneurs sont plus rapides à créer et ont de faibles temps de démarrage.

source

26
répondu Viswesn 2014-05-13 10:31:17

LXCHoraires ou Prisons sur FreeBSD. Comme il n'y a pas de virtualisation overhead, ils fonctionnent bien mieux que les machines virtuelles.

KVM représente le capacités de virtualisation construites dans le propre noyau Linux. Comme déjà indiqué dans les réponses précédentes, c'est l'hyperviseur de type 2, c'est-à-dire qu'il ne fonctionne pas sur un métal nu.

6
répondu Nedo 2018-09-17 09:47:29

ce livre blanc donne la différence entre les conteneurs hypervisor et linux et aussi un peu d'histoire derrière les conteneurs http://sp.parallels.com/fileadmin/media/hcap/pcs/documents/ParCloudStorage_Mini_WP_EN_042014.pdf

Un extrait du livre: un hyperviseur fonctionne en ayant l'exploitation hôte système d'émuler la machine matériel et ensuite jusqu' autres machines virtuelles (VMs) comme les systèmes d'exploitation invités sur le haut de cette Quincaillerie. Ce signifie que l' communication entre l'invité et l'hôte les systèmes d'exploitation doivent suivre un matériel de paradigme (de rien cela peut être fait en matériel peut être fait par l'hôte de l' invité.)

d'autre part,, virtualisation des conteneurs (affiché) dans la figure 2), est la virtualisation à le niveau du système d'exploitation, au lieu de niveau du matériel. Donc chacun des invités opérant les systèmes partagent le même noyau, et parfois, les parties du système d'exploitation, avec hôte. Ce partage amélioré donne conteneurs un grand avantage en ce qu'ils sont plus maigres et plus petits que les clients de l'hyperviseur, tout simplement parce qu'ils partagent beaucoup plus de les morceaux avec l'hôte. Il leur donne également la énorme avantage que le noyau invité est beaucoup plus efficace sur le partage des ressources entre les conteneurs, parce qu'il voit la les conteneurs comme de simples ressources gérer.

Un exemple: Le conteneur 1 et le conteneur 2 ouvrent le même fichier, le noyau hôte ouvre le fichier et met des pages en le cache de la page du noyau. Ces pages sont ensuite distribuées à Les conteneurs 1 et 2 car ils sont nécessaires, et si les deux veulent lire le même position, ils ont tous les deux la même page. Dans le cas de VM1 et VM2 faisant la même chose, l'hôte ouvre le fichier (créant pages dans le cache de la page d'accueil) mais ensuite chacun des noyaux dans VM1 et VM2 fait la même chose, ce qui signifie que si VM1 et VM2 lisent le même fichier, il y a maintenant trois pages séparées (une dans les caches de l'hôte, des noyaux VM1 et VM2)) simplement parce qu'ils ne peuvent pas partager la page de la même manière un conteneur. Ce partage avancé de conteneurs signifie que la densité (nombre de contenants de Les Machines virtuelles que vous pouvez exécuter sur le système) est jusqu'à trois fois plus élevé dans le conteneur cas avec l'Hyperviseur cas.

Résumé: KVM est un hyperviseur basé sur l'émulation de matériel virtuel. Conteneurs, d'autre part, sont basées sur le partage des systèmes d'exploitation et maigres. Mais cela pose une limite à la les conteneurs que nous utilisons un seul noyau partagé et ne peuvent donc pas exécuter Windows et Linux sur le même matériel partagé

4
répondu bhdeeps 2014-08-05 02:25:40