alphorm.com formation lxc

274
Formation Virtualisation légère avec LXC alphorm.com™© La virtualisation légère LXC Site : http://www.alphorm.com Blog : http://blog.alphorm.com Forum : http://forum.alphorm.com Ludovic Quenec'hdu Formateur et Consultant indépendant OpenSource et virtualisation Présentation de la formation

Upload: alphorm

Post on 21-Jan-2018

7.140 views

Category:

Education


9 download

TRANSCRIPT

Page 1: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

La virtualisation légèreLXC

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Présentation de la formation

Page 2: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Présentation du formateur

• Le plan de formation

• Publics concernés

• Connaissances requises

• Liens utiles

Page 3: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Présentation du formateur• Ludovic QUENEC’HDU

[email protected]

• Consultant et expert en Open source, logiciel libre et virtualisation

• Mission de conseil, d’architecture, d’administration, de migration et de formation

• Mes références : Mon profil LinkedIn : https://fr.linkedin.com/pub/ludovic-quenec-hdu/47/6bb/550

Mon profil Alphorm : http://www.alphorm.com/formateur/ludovic-quenechdu

Page 4: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Mes formations sur Alphorm

Page 5: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Le plan de formation• Concept

• La virtualisation par conteneurs• Les Namespaces et les Control groups• LinuxContainers.org – LXC

• Mise en œuvre• Installation et configuration de LXC• Containers privilégiés• Containers non-privilégiés

• Exploitation des containers avec LXC• Commandes de manipulation des conteneurs• Le clonage des conteneurs• Snapshot• Gestion des ressources avec les cgroup

• Exploitation des containers avec LXD• LXD présentation et installation• Gestion des images LXD• Manipulation des conteneurs• Les snapshots

• Exploitation des containers avec LXD• Administration des serveurs distants• Migration des conteneurs

• Configuration avancée des containers• Le modèle réseau Veth, MacVlan, le Bridge et

Phys• OpenVswitch et LXC• Les Backends de stockage• LVM et LXC• ZFS et LXC• BTRFS et LXC

Page 6: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Publics concernés Chef de projet

Administrateur

Développeur

Les techniciens

Page 7: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Connaissances requises Un bonne culture du système Linux

La maitrise de la ligne de commande shell

Des connaissances sur le stockage et le réseau

Une connaissance de la virtualisation

Page 8: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Liens utiles• https://linuxcontainers.org/fr/

• https://github.com/lxc/lxd

• https://github.com/lxc

• https://www.stgraber.org/category/lxc/

Page 9: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Autres formations sur la virtualisation

Page 10: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Are you ready ?

Page 11: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

La virtualisation par conteneurs

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 12: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Le modèle : Machines Virtuelles

• Le modèle : isolation, containers

• Les produits : “Isolateur”, containers

Page 13: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Le modèle : Machine Virtuelle• Une machine virtuelle c’est :

Représentation logicielle d’une machine physique

Émulation du CPU, mémoire, nic, contrôleur de disque, disque, etc..

Un OS installé dans la VM –Guest OS ou OS invité

Page 14: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Le modèle : Machine Virtuelle• La virtualisation complète

Matériel - Hardware

Système d’exploitation/HyperviseurNOYAU

Matériel émulé

Linux -WindowsNOYAU

VMMVirtual Machine Manager

Page 15: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Le modèle : Machine Virtuelle• La virtualisation complète

• La para virtualisation

Matériel - Hardware

Système d’exploitation/HyperviseurNOYAU

Matériel émulé

Linux -WindowsNOYAU

Matériel paravirtuel

Linux - WindowsNOYAU modifié

VMMVirtual Machine Manager

Page 16: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Le modèle : Machine Virtuelle• La virtualisation complète

• La para virtualisation, La virtualisation assistée par le matériel

Matériel - Hardware

Système d’exploitation/HyperviseurNOYAU

Matériel émulé

Linux -WindowsNOYAU

Matériel paravirtuel

Linux - WindowsNOYAU modifié

Matériel VT/PAEPasstrough

Linux -WindowsNOYAU

VMMVirtual Machine Manager

Page 17: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Le modèle : isolation, containers

Matériel - Hardware

OS Linux - Noyau

/etc//dev/usr/bin/apache/usr/lib//var/

• Mode de fonctionnement « classique »

Page 18: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Le modèle : isolation, containers

Matériel - Hardware

/OS Linux - Noyau

/etc//usr/bin/ftpd/usr/lib//var/

/etc//usr/bin/apache/usr/lib//var/

/mnt/root-apache/ /mnt/root-ftpd/

•L’isolation d’application

Page 19: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Le modèle : isolation, containers• Pas de noyau dans les conteneurs, un répertoire égale un OS

• Pas d’émulation de matériel

• Accès direct au matériel

Matériel - Hardware

/var/lib/lxc

Ubuntu 15/CT-03/root-fs/

CentOS 7/CT-02/root-fs/

Débian 8/CT-01/root-fs/

OS Linux - Noyau

Page 20: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les produits : “Isolateur”, containers• En isolation :

Chroot

BSD Jails

Les zones de Solaris

• En containers :

LXC

OpenVZ

Linux-Vserver

Dockers

Page 21: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Le modèle : Machines Virtuelles

• Le modèle : isolation, containers

• Les produits : “Isolateur”, containers

Page 22: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 23: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 24: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 25: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 26: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 27: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 28: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 29: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 30: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 31: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 32: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 33: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 34: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 35: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 36: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 37: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 38: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 39: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 40: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 41: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 42: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 43: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 44: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 45: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 46: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 47: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 48: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 49: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 50: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 51: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 52: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 53: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 54: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 55: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 56: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 57: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 58: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 59: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 60: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 61: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 62: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 63: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 64: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 65: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 66: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 67: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 68: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 69: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 70: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 71: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 72: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 73: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 74: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 75: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 76: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 77: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 78: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 79: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 80: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 81: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 82: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 83: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 84: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 85: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 86: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 87: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 88: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 89: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 90: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 91: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 92: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 93: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 94: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 95: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 96: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 97: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 98: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 99: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 100: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 101: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 102: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 103: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 104: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 105: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 106: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 107: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 108: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 109: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 110: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 111: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 112: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 113: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 114: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 115: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 116: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 117: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 118: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 119: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 120: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 121: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 122: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 123: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 124: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 125: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 126: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 127: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 128: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 129: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 130: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 131: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 132: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 133: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 134: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 135: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 136: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 137: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 138: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 139: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 140: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 141: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 142: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 143: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 144: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 145: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 146: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 147: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 148: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 149: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 150: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 151: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 152: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 153: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 154: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 155: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 156: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 157: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 158: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 159: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 160: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 161: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 162: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 163: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 164: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 165: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 166: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 167: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 168: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 169: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 170: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 171: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 172: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 173: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 174: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 175: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 176: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 177: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 178: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 179: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 180: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 181: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 182: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 183: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 184: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 185: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 186: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 187: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 188: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 189: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 190: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 191: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 192: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 193: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 194: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 195: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 196: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 197: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 198: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 199: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 200: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 201: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 202: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 203: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 204: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 205: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 206: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 207: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 208: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 209: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 210: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 211: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 212: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 213: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 214: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 215: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 216: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 217: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 218: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 219: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 220: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 221: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 222: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 223: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 224: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 225: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 226: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 227: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 228: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 229: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 230: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 231: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 232: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 233: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 234: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 235: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 236: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 237: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 238: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 239: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 240: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 241: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 242: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 243: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 244: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 245: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 246: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 247: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 248: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 249: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 250: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 251: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 252: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 253: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 254: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 255: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 256: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 257: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les Namespaceset les Control groups

Concept

Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com

Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation

Page 258: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Plan• Les espace de noms ou Namespaces

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 259: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement

plusieurs petits systèmes d’environnement ou applications sur une machine physique

• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.

• Ils sont donc ISOLÉS

• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements

• Les Linux namespaces

• Chroot permet une isolation au niveau du système de fichiers

Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent

Page 260: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :

Process Namespace

• Isole les processus, le conteneur dispose de sa liste de processus

Network Namespace

• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces

Mount Namespace

• Isole les systèmes de fichiers

UTS Namespace

• Permet au conteneur de disposer de ses noms d’hôtes et de domaines

IPC Namespace

• Ses propres processus Inter Communications

User Namespace

• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0

Page 261: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 262: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 263: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 264: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 265: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 266: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 267: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups

Page 268: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau

#mkdir /var/run/netns

• Création de l’espace de nom de type réseau

#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/

• Exécution d’un shell dans l’espace de nom

#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .

Page 269: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0

#ip link add veth00 type veth peer name eth0#ip link list#ip address list

• Ajout et activation de l’interface eth0

#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up

• Déplace l’interface veth00 dans l’espace de nom de PID 0

#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10

Page 270: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Création d’un espace de nom réseau

Page 271: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une

fonctionnalité du noyaux Linux qui a pour but de :

Contrôler les ressources

• Allocation, l'interdiction, prioritisation, figer

Surveiller et mesurer les quantités de ressources consommées

Page 272: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle

profÉtudiant Système

Mémoire DisqueHTTP

NFS

1024640 512

50%20% 30% 50%20%

50%20%

Réseau

CPU Shares

50%20% 30%

Page 273: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules

• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des

périphériques block

• Cpu : Planifie l'accès de la CPU

- Cpuacct : Rapports sur les CPU utilisées

- cpu.shares : Part relative du temps CPU disponible pour les tâches

• Cpuset : Assigne des CPU à des tâches

• Devices : Autorise ou refuse l'accès aux périphériques

• Freezer : Suspend ou réactive les tâches

• memory : Utilisation mémoire

Page 274: Alphorm.com  Formation LXC

Formation Virtualisation légère avec LXC alphorm.com™©

Ce qu’on a couvert• Les espace de noms ou Namespace

• Création d’un espace de nom réseau

• Introduction aux groupes de contrôle – les cgroups