web-dev-qa-db-fra.com

différence entre les groupes de contrôle et les espaces de noms

J'ai récemment commencé à apprendre le docker et il semble que la plupart des tâches lourdes soient effectuées par le noyau Linux, en utilisant des espaces de noms et des groupes de contrôle.

Voici quelques éléments que je trouve confus:

  1. Quelle est la différence entre un espace de noms et un groupe de contrôle? Quels sont les différents cas d'utilisation auxquels ils s'adressent?

  2. Qu'est-ce que Docker a implémenté en plus pour gagner en popularité?

  3. Je voudrais connaître les caractéristiques internes de ces fonctionnalités et comment elles sont mises en œuvre.

58
Lazy Getter

Les liens appropriés pour ces deux notions ont été corrigés dans PR 14307 :

Sous le capot, Docker est construit sur les composants suivants:

Les capacités cgroups et namespaces du noyau Linux

Avec:

  • cgroup : les groupes de contrôle fournissent un mécanisme pour agréger/partitionner des ensembles de tâches, et tous leurs futurs enfants, en groupes hiérarchiques avec un comportement spécialisé.
  • namespace : encapsule une ressource système globale dans une abstraction qui fait apparaître aux processus de l'espace de noms qu'ils ont leur propre instance isolée de la ressource globale.

En bref:

  • Cgroups = limite la quantité que vous pouvez utiliser;
  • espaces de noms = limite ce que vous pouvez voir (et donc utiliser)

Voir plus sur " Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic " by Jérôme Petazzoni .

Les groupes de contrôle impliquent la mesure des ressources et la limitation:

  • mémoire
  • CPU
  • bloquer les E/S
  • réseau

Les espaces de noms fournissent aux processus leur propre vision du système

Espaces de noms multiples:

74
VonC

cgroups limite les ressources qu'un processus ou un ensemble de processus peuvent utiliser ces ressources pourraient être CPU, mémoire, E/S réseau ou accès à filesystem tandis que l'espace de noms restreint la visibilité du groupe de processus au reste du système.

visitez pour plus de détails Comment les groupes et les espaces de noms du noyau Linux ont rendu possibles les conteneurs modernes

1
captainchhala