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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Présentation du formateur
• Ludovic QUENEC’HDU
• lquenec@alphorm.com
• 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
Formation Virtualisation légère avec LXC alphorm.com™©
Mes formations sur Alphorm
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
Formation Virtualisation légère avec LXC alphorm.com™©
Publics concernés
 Chef de projet
 Administrateur
 Développeur
 Les techniciens
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
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/
Formation Virtualisation légère avec LXC alphorm.com™©
Autres formations sur la virtualisation
Formation Virtualisation légère avec LXC alphorm.com™©
Are you ready ? 
Formation Virtualisation légère avec LXC alphorm.com™©
La virtualisation
par conteneurs
Concept
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
Formation Virtualisation légère avec LXC alphorm.com™©
Plan
• Le modèle : Machines Virtuelles
• Le modèle : isolation, containers
• Les produits : “Isolateur”, containers
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é
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/Hyperviseur
NOYAU
Matériel
émulé
Linux -
Windows
NOYAU
VMM
Virtual
Machine
Manager
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/Hyperviseur
NOYAU
Matériel
émulé
Linux -
Windows
NOYAU
Matériel
paravirtuel
Linux - Windows
NOYAU modifié
VMM
Virtual
Machine
Manager
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/Hyperviseur
NOYAU
Matériel
émulé
Linux -
Windows
NOYAU
Matériel
paravirtuel
Linux - Windows
NOYAU modifié
Matériel
VT/PAE
Passtrough
Linux -
Windows
NOYAU
VMM
Virtual
Machine
Manager
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 »
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
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
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaces
et les Control groups
Concept
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
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
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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
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 list
1: lo: <LOOPBACK> mtu 65536 qdisc no ......
#exit
#ip link list
1: 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:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
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
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
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
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire Disque
HTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
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
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

Alphorm.com Formation LXC

  • 1.
    Formation Virtualisation légèreavec 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
  • 2.
    Formation Virtualisation légèreavec LXC alphorm.com™© Plan • Présentation du formateur • Le plan de formation • Publics concernés • Connaissances requises • Liens utiles
  • 3.
    Formation Virtualisation légèreavec LXC alphorm.com™© Présentation du formateur • Ludovic QUENEC’HDU • lquenec@alphorm.com • 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
  • 4.
    Formation Virtualisation légèreavec LXC alphorm.com™© Mes formations sur Alphorm
  • 5.
    Formation Virtualisation légèreavec 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
  • 6.
    Formation Virtualisation légèreavec LXC alphorm.com™© Publics concernés  Chef de projet  Administrateur  Développeur  Les techniciens
  • 7.
    Formation Virtualisation légèreavec 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
  • 8.
    Formation Virtualisation légèreavec LXC alphorm.com™© Liens utiles • https://linuxcontainers.org/fr/ • https://github.com/lxc/lxd • https://github.com/lxc • https://www.stgraber.org/category/lxc/
  • 9.
    Formation Virtualisation légèreavec LXC alphorm.com™© Autres formations sur la virtualisation
  • 10.
    Formation Virtualisation légèreavec LXC alphorm.com™© Are you ready ? 
  • 11.
    Formation Virtualisation légèreavec LXC alphorm.com™© La virtualisation par conteneurs Concept 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
  • 12.
    Formation Virtualisation légèreavec LXC alphorm.com™© Plan • Le modèle : Machines Virtuelles • Le modèle : isolation, containers • Les produits : “Isolateur”, containers
  • 13.
    Formation Virtualisation légèreavec 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é
  • 14.
    Formation Virtualisation légèreavec LXC alphorm.com™© Le modèle : Machine Virtuelle • La virtualisation complète Matériel - Hardware Système d’exploitation/Hyperviseur NOYAU Matériel émulé Linux - Windows NOYAU VMM Virtual Machine Manager
  • 15.
    Formation Virtualisation légèreavec LXC alphorm.com™© Le modèle : Machine Virtuelle • La virtualisation complète • La para virtualisation Matériel - Hardware Système d’exploitation/Hyperviseur NOYAU Matériel émulé Linux - Windows NOYAU Matériel paravirtuel Linux - Windows NOYAU modifié VMM Virtual Machine Manager
  • 16.
    Formation Virtualisation légèreavec 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/Hyperviseur NOYAU Matériel émulé Linux - Windows NOYAU Matériel paravirtuel Linux - Windows NOYAU modifié Matériel VT/PAE Passtrough Linux - Windows NOYAU VMM Virtual Machine Manager
  • 17.
    Formation Virtualisation légèreavec 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 »
  • 18.
    Formation Virtualisation légèreavec 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
  • 19.
    Formation Virtualisation légèreavec 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
  • 20.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les produits : “Isolateur”, containers • En isolation :  Chroot  BSD Jails  Les zones de Solaris • En containers :  LXC  OpenVZ  Linux-Vserver  Dockers
  • 21.
    Formation Virtualisation légèreavec LXC alphorm.com™© Ce qu’on a couvert • Le modèle : Machines Virtuelles • Le modèle : isolation, containers • Les produits : “Isolateur”, containers
  • 22.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 23.
    Formation Virtualisation légèreavec 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
  • 24.
    Formation Virtualisation légèreavec 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
  • 25.
    Formation Virtualisation légèreavec 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
  • 26.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 27.
    Formation Virtualisation légèreavec 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
  • 28.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 29.
    Formation Virtualisation légèreavec 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
  • 30.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 31.
    Formation Virtualisation légèreavec 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
  • 32.
    Formation Virtualisation légèreavec 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
  • 33.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 34.
    Formation Virtualisation légèreavec 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
  • 35.
    Formation Virtualisation légèreavec 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
  • 36.
    Formation Virtualisation légèreavec 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
  • 37.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 38.
    Formation Virtualisation légèreavec 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
  • 39.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 40.
    Formation Virtualisation légèreavec 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
  • 41.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 42.
    Formation Virtualisation légèreavec 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
  • 43.
    Formation Virtualisation légèreavec 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
  • 44.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 45.
    Formation Virtualisation légèreavec 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
  • 46.
    Formation Virtualisation légèreavec 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
  • 47.
    Formation Virtualisation légèreavec 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
  • 48.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 49.
    Formation Virtualisation légèreavec 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
  • 50.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 51.
    Formation Virtualisation légèreavec 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
  • 52.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 53.
    Formation Virtualisation légèreavec 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
  • 54.
    Formation Virtualisation légèreavec 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
  • 55.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 56.
    Formation Virtualisation légèreavec 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
  • 57.
    Formation Virtualisation légèreavec 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
  • 58.
    Formation Virtualisation légèreavec 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
  • 59.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 60.
    Formation Virtualisation légèreavec 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
  • 61.
    Formation Virtualisation légèreavec 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
  • 62.
    Formation Virtualisation légèreavec 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
  • 63.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 64.
    Formation Virtualisation légèreavec 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
  • 65.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 66.
    Formation Virtualisation légèreavec 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
  • 67.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 68.
    Formation Virtualisation légèreavec 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
  • 69.
    Formation Virtualisation légèreavec 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
  • 70.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 71.
    Formation Virtualisation légèreavec 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
  • 72.
    Formation Virtualisation légèreavec 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
  • 73.
    Formation Virtualisation légèreavec 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
  • 74.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 75.
    Formation Virtualisation légèreavec 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
  • 76.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 77.
    Formation Virtualisation légèreavec 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
  • 78.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 79.
    Formation Virtualisation légèreavec 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
  • 80.
    Formation Virtualisation légèreavec 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
  • 81.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 82.
    Formation Virtualisation légèreavec 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
  • 83.
    Formation Virtualisation légèreavec 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
  • 84.
    Formation Virtualisation légèreavec 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
  • 85.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 86.
    Formation Virtualisation légèreavec 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
  • 87.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 88.
    Formation Virtualisation légèreavec 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
  • 89.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 90.
    Formation Virtualisation légèreavec 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
  • 91.
    Formation Virtualisation légèreavec 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
  • 92.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 93.
    Formation Virtualisation légèreavec 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
  • 94.
    Formation Virtualisation légèreavec 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
  • 95.
    Formation Virtualisation légèreavec 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
  • 96.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 97.
    Formation Virtualisation légèreavec 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
  • 98.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 99.
    Formation Virtualisation légèreavec 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
  • 100.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 101.
    Formation Virtualisation légèreavec 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
  • 102.
    Formation Virtualisation légèreavec 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
  • 103.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 104.
    Formation Virtualisation légèreavec 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
  • 105.
    Formation Virtualisation légèreavec 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
  • 106.
    Formation Virtualisation légèreavec 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
  • 107.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 108.
    Formation Virtualisation légèreavec 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
  • 109.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 110.
    Formation Virtualisation légèreavec 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
  • 111.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 112.
    Formation Virtualisation légèreavec 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
  • 113.
    Formation Virtualisation légèreavec 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
  • 114.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 115.
    Formation Virtualisation légèreavec 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
  • 116.
    Formation Virtualisation légèreavec 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
  • 117.
    Formation Virtualisation légèreavec 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
  • 118.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 119.
    Formation Virtualisation légèreavec 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
  • 120.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 121.
    Formation Virtualisation légèreavec 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
  • 122.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 123.
    Formation Virtualisation légèreavec 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
  • 124.
    Formation Virtualisation légèreavec 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
  • 125.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 126.
    Formation Virtualisation légèreavec 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
  • 127.
    Formation Virtualisation légèreavec 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
  • 128.
    Formation Virtualisation légèreavec 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
  • 129.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 130.
    Formation Virtualisation légèreavec 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
  • 131.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 132.
    Formation Virtualisation légèreavec 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
  • 133.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 134.
    Formation Virtualisation légèreavec 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
  • 135.
    Formation Virtualisation légèreavec 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
  • 136.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 137.
    Formation Virtualisation légèreavec 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
  • 138.
    Formation Virtualisation légèreavec 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
  • 139.
    Formation Virtualisation légèreavec 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
  • 140.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 141.
    Formation Virtualisation légèreavec 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
  • 142.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 143.
    Formation Virtualisation légèreavec 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
  • 144.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 145.
    Formation Virtualisation légèreavec 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
  • 146.
    Formation Virtualisation légèreavec 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
  • 147.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 148.
    Formation Virtualisation légèreavec 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
  • 149.
    Formation Virtualisation légèreavec 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
  • 150.
    Formation Virtualisation légèreavec 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
  • 151.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 152.
    Formation Virtualisation légèreavec 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
  • 153.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 154.
    Formation Virtualisation légèreavec 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
  • 155.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 156.
    Formation Virtualisation légèreavec 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
  • 157.
    Formation Virtualisation légèreavec 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
  • 158.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 159.
    Formation Virtualisation légèreavec 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
  • 160.
    Formation Virtualisation légèreavec 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
  • 161.
    Formation Virtualisation légèreavec 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
  • 162.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 163.
    Formation Virtualisation légèreavec 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
  • 164.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 165.
    Formation Virtualisation légèreavec 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
  • 166.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 167.
    Formation Virtualisation légèreavec 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
  • 168.
    Formation Virtualisation légèreavec 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
  • 169.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 170.
    Formation Virtualisation légèreavec 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
  • 171.
    Formation Virtualisation légèreavec 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
  • 172.
    Formation Virtualisation légèreavec 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
  • 173.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 174.
    Formation Virtualisation légèreavec 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
  • 175.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 176.
    Formation Virtualisation légèreavec 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
  • 177.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 178.
    Formation Virtualisation légèreavec 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
  • 179.
    Formation Virtualisation légèreavec 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
  • 180.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 181.
    Formation Virtualisation légèreavec 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
  • 182.
    Formation Virtualisation légèreavec 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
  • 183.
    Formation Virtualisation légèreavec 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
  • 184.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 185.
    Formation Virtualisation légèreavec 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
  • 186.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 187.
    Formation Virtualisation légèreavec 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
  • 188.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 189.
    Formation Virtualisation légèreavec 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
  • 190.
    Formation Virtualisation légèreavec 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
  • 191.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 192.
    Formation Virtualisation légèreavec 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
  • 193.
    Formation Virtualisation légèreavec 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
  • 194.
    Formation Virtualisation légèreavec 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
  • 195.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 196.
    Formation Virtualisation légèreavec 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
  • 197.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 198.
    Formation Virtualisation légèreavec 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
  • 199.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 200.
    Formation Virtualisation légèreavec 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
  • 201.
    Formation Virtualisation légèreavec 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
  • 202.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 203.
    Formation Virtualisation légèreavec 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
  • 204.
    Formation Virtualisation légèreavec 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
  • 205.
    Formation Virtualisation légèreavec 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
  • 206.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 207.
    Formation Virtualisation légèreavec 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
  • 208.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 209.
    Formation Virtualisation légèreavec 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
  • 210.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 211.
    Formation Virtualisation légèreavec 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
  • 212.
    Formation Virtualisation légèreavec 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
  • 213.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 214.
    Formation Virtualisation légèreavec 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
  • 215.
    Formation Virtualisation légèreavec 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
  • 216.
    Formation Virtualisation légèreavec 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
  • 217.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 218.
    Formation Virtualisation légèreavec 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
  • 219.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 220.
    Formation Virtualisation légèreavec 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
  • 221.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 222.
    Formation Virtualisation légèreavec 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
  • 223.
    Formation Virtualisation légèreavec 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
  • 224.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 225.
    Formation Virtualisation légèreavec 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
  • 226.
    Formation Virtualisation légèreavec 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
  • 227.
    Formation Virtualisation légèreavec 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
  • 228.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 229.
    Formation Virtualisation légèreavec 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
  • 230.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 231.
    Formation Virtualisation légèreavec 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
  • 232.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 233.
    Formation Virtualisation légèreavec 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
  • 234.
    Formation Virtualisation légèreavec 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
  • 235.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 236.
    Formation Virtualisation légèreavec 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
  • 237.
    Formation Virtualisation légèreavec 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
  • 238.
    Formation Virtualisation légèreavec 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
  • 239.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 240.
    Formation Virtualisation légèreavec 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
  • 241.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 242.
    Formation Virtualisation légèreavec 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
  • 243.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 244.
    Formation Virtualisation légèreavec 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
  • 245.
    Formation Virtualisation légèreavec 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
  • 246.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 247.
    Formation Virtualisation légèreavec 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
  • 248.
    Formation Virtualisation légèreavec 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
  • 249.
    Formation Virtualisation légèreavec 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
  • 250.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 251.
    Formation Virtualisation légèreavec 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
  • 252.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 253.
    Formation Virtualisation légèreavec 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
  • 254.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 255.
    Formation Virtualisation légèreavec 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
  • 256.
    Formation Virtualisation légèreavec 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
  • 257.
    Formation Virtualisation légèreavec LXC alphorm.com™© Les Namespaces et les Control groups Concept 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
  • 258.
    Formation Virtualisation légèreavec 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
  • 259.
    Formation Virtualisation légèreavec 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
  • 260.
    Formation Virtualisation légèreavec 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
  • 261.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 262.
    Formation Virtualisation légèreavec 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
  • 263.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 264.
    Formation Virtualisation légèreavec 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
  • 265.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 266.
    Formation Virtualisation légèreavec 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
  • 267.
    Formation Virtualisation légèreavec 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
  • 268.
    Formation Virtualisation légèreavec 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 list 1: lo: <LOOPBACK> mtu 65536 qdisc no ...... #exit #ip link list 1: 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:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
  • 269.
    Formation Virtualisation légèreavec 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
  • 270.
    Formation Virtualisation légèreavec LXC alphorm.com™© Création d’un espace de nom réseau
  • 271.
    Formation Virtualisation légèreavec 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
  • 272.
    Formation Virtualisation légèreavec LXC alphorm.com™© Introduction aux groupes de contrôle profÉtudiant Système Mémoire Disque HTTP NFS 1024640 512 50%20% 30% 50%20% 50%20% Réseau CPU Shares 50%20% 30%
  • 273.
    Formation Virtualisation légèreavec 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
  • 274.
    Formation Virtualisation légèreavec 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