Page 1
Formation Virtualisation légère avec LXC alphorm.com™©
La virtualisation légèreLXC
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Présentation de la formation
Page 2
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Présentation du formateur
• Le plan de formation
• Publics concernés
• Connaissances requises
• Liens utiles
Page 3
Formation Virtualisation légère avec LXC alphorm.com™©
Présentation du formateur• Ludovic QUENEC’HDU
• [email protected]
• Consultant et expert en Open source, logiciel libre et virtualisation
• Mission de conseil, d’architecture, d’administration, de migration et de formation
• Mes références : Mon profil LinkedIn : https://fr.linkedin.com/pub/ludovic-quenec-hdu/47/6bb/550
Mon profil Alphorm : http://www.alphorm.com/formateur/ludovic-quenechdu
Page 4
Formation Virtualisation légère avec LXC alphorm.com™©
Mes formations sur Alphorm
Page 5
Formation Virtualisation légère avec LXC alphorm.com™©
Le plan de formation• Concept
• La virtualisation par conteneurs• Les Namespaces et les Control groups• LinuxContainers.org – LXC
• Mise en œuvre• Installation et configuration de LXC• Containers privilégiés• Containers non-privilégiés
• Exploitation des containers avec LXC• Commandes de manipulation des conteneurs• Le clonage des conteneurs• Snapshot• Gestion des ressources avec les cgroup
• Exploitation des containers avec LXD• LXD présentation et installation• Gestion des images LXD• Manipulation des conteneurs• Les snapshots
• Exploitation des containers avec LXD• Administration des serveurs distants• Migration des conteneurs
• Configuration avancée des containers• Le modèle réseau Veth, MacVlan, le Bridge et
Phys• OpenVswitch et LXC• Les Backends de stockage• LVM et LXC• ZFS et LXC• BTRFS et LXC
Page 6
Formation Virtualisation légère avec LXC alphorm.com™©
Publics concernés Chef de projet
Administrateur
Développeur
Les techniciens
Page 7
Formation Virtualisation légère avec LXC alphorm.com™©
Connaissances requises Un bonne culture du système Linux
La maitrise de la ligne de commande shell
Des connaissances sur le stockage et le réseau
Une connaissance de la virtualisation
Page 8
Formation Virtualisation légère avec LXC alphorm.com™©
Liens utiles• https://linuxcontainers.org/fr/
• https://github.com/lxc/lxd
• https://github.com/lxc
• https://www.stgraber.org/category/lxc/
Page 9
Formation Virtualisation légère avec LXC alphorm.com™©
Autres formations sur la virtualisation
Page 10
Formation Virtualisation légère avec LXC alphorm.com™©
Are you ready ?
Page 11
Formation Virtualisation légère avec LXC alphorm.com™©
La virtualisation par conteneurs
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 12
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Le modèle : Machines Virtuelles
• Le modèle : isolation, containers
• Les produits : “Isolateur”, containers
Page 13
Formation Virtualisation légère avec LXC alphorm.com™©
Le modèle : Machine Virtuelle• Une machine virtuelle c’est :
Représentation logicielle d’une machine physique
Émulation du CPU, mémoire, nic, contrôleur de disque, disque, etc..
Un OS installé dans la VM –Guest OS ou OS invité
Page 14
Formation Virtualisation légère avec LXC alphorm.com™©
Le modèle : Machine Virtuelle• La virtualisation complète
Matériel - Hardware
Système d’exploitation/HyperviseurNOYAU
Matériel émulé
Linux -WindowsNOYAU
VMMVirtual Machine Manager
Page 15
Formation Virtualisation légère avec LXC alphorm.com™©
Le modèle : Machine Virtuelle• La virtualisation complète
• La para virtualisation
Matériel - Hardware
Système d’exploitation/HyperviseurNOYAU
Matériel émulé
Linux -WindowsNOYAU
Matériel paravirtuel
Linux - WindowsNOYAU modifié
VMMVirtual Machine Manager
Page 16
Formation Virtualisation légère avec LXC alphorm.com™©
Le modèle : Machine Virtuelle• La virtualisation complète
• La para virtualisation, La virtualisation assistée par le matériel
Matériel - Hardware
Système d’exploitation/HyperviseurNOYAU
Matériel émulé
Linux -WindowsNOYAU
Matériel paravirtuel
Linux - WindowsNOYAU modifié
Matériel VT/PAEPasstrough
Linux -WindowsNOYAU
VMMVirtual Machine Manager
Page 17
Formation Virtualisation légère avec LXC alphorm.com™©
Le modèle : isolation, containers
Matériel - Hardware
OS Linux - Noyau
/etc//dev/usr/bin/apache/usr/lib//var/
• Mode de fonctionnement « classique »
Page 18
Formation Virtualisation légère avec LXC alphorm.com™©
Le modèle : isolation, containers
Matériel - Hardware
/OS Linux - Noyau
/etc//usr/bin/ftpd/usr/lib//var/
/etc//usr/bin/apache/usr/lib//var/
/mnt/root-apache/ /mnt/root-ftpd/
•L’isolation d’application
Page 19
Formation Virtualisation légère avec LXC alphorm.com™©
Le modèle : isolation, containers• Pas de noyau dans les conteneurs, un répertoire égale un OS
• Pas d’émulation de matériel
• Accès direct au matériel
Matériel - Hardware
/var/lib/lxc
Ubuntu 15/CT-03/root-fs/
CentOS 7/CT-02/root-fs/
Débian 8/CT-01/root-fs/
OS Linux - Noyau
Page 20
Formation Virtualisation légère avec LXC alphorm.com™©
Les produits : “Isolateur”, containers• En isolation :
Chroot
BSD Jails
Les zones de Solaris
• En containers :
LXC
OpenVZ
Linux-Vserver
Dockers
Page 21
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Le modèle : Machines Virtuelles
• Le modèle : isolation, containers
• Les produits : “Isolateur”, containers
Page 22
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 23
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 24
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 25
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 26
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 27
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 28
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 29
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 30
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 31
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 32
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 33
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 34
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 35
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 36
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 37
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 38
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 39
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 40
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 41
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 42
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 43
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 44
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 45
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 46
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 47
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 48
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 49
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 50
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 51
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 52
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 53
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 54
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 55
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 56
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 57
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 58
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 59
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 60
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 61
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 62
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 63
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 64
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 65
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 66
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 67
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 68
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 69
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 70
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 71
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 72
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 73
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 74
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 75
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 76
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 77
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 78
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 79
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 80
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 81
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 82
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 83
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 84
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 85
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 86
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 87
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 88
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 89
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 90
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 91
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 92
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 93
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 94
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 95
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 96
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 97
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 98
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 99
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 100
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 101
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 102
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 103
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 104
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 105
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 106
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 107
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 108
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 109
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 110
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 111
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 112
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 113
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 114
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 115
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 116
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 117
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 118
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 119
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 120
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 121
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 122
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 123
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 124
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 125
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 126
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 127
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 128
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 129
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 130
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 131
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 132
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 133
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 134
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 135
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 136
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 137
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 138
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 139
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 140
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 141
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 142
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 143
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 144
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 145
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 146
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 147
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 148
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 149
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 150
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 151
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 152
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 153
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 154
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 155
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 156
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 157
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 158
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 159
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 160
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 161
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 162
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 163
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 164
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 165
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 166
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 167
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 168
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 169
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 170
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 171
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 172
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 173
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 174
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 175
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 176
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 177
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 178
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 179
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 180
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 181
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 182
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 183
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 184
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 185
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 186
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 187
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 188
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 189
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 190
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 191
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 192
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 193
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 194
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 195
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 196
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 197
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 198
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 199
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 200
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 201
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 202
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 203
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 204
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 205
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 206
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 207
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 208
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 209
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 210
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 211
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 212
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 213
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 214
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 215
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 216
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 217
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 218
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 219
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 220
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 221
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 222
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 223
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 224
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 225
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 226
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 227
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 228
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 229
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 230
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 231
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 232
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 233
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 234
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 235
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 236
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 237
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 238
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 239
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 240
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 241
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 242
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 243
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 244
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 245
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 246
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 247
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 248
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 249
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 250
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 251
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 252
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 253
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 254
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 255
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 256
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 257
Formation Virtualisation légère avec LXC alphorm.com™©
Les Namespaceset les Control groups
Concept
Site : http://www.alphorm.comBlog : http://blog.alphorm.comForum : http://forum.alphorm.com
Ludovic Quenec'hduFormateur et Consultant indépendant OpenSource et virtualisation
Page 258
Formation Virtualisation légère avec LXC alphorm.com™©
Plan• Les espace de noms ou Namespaces
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 259
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• LXC, OpenVZ, Docker sont des “outils” qui permettent d’isoler très simplement
plusieurs petits systèmes d’environnement ou applications sur une machine physique
• Ces environnements exécutent des applications (web, BD, DHCP, ..) qui n’interfèrent ni avec le système installé sur la machine, ni entre eux.
• Ils sont donc ISOLÉS
• LXC utilise des fonctions du noyau Linux afin d’isoler ces environnements
• Les Linux namespaces
• Chroot permet une isolation au niveau du système de fichiers
Les utilisateurs, les cartes réseaux, les processus. Les noms d’hôtes et noms de domaines ne sont pas isolés du système parent
Page 260
Formation Virtualisation légère avec LXC alphorm.com™©
Les espace de noms ou Namespace• Les namespaces sont une fonctionnalité du noyau Linux :
Process Namespace
• Isole les processus, le conteneur dispose de sa liste de processus
Network Namespace
• Isole les interfaces réseau, le conteneur dispose de ses propres interfaces
Mount Namespace
• Isole les systèmes de fichiers
UTS Namespace
• Permet au conteneur de disposer de ses noms d’hôtes et de domaines
IPC Namespace
• Ses propres processus Inter Communications
User Namespace
• Permet aux conteneurs de disposer de ses utilisateurs, root dans le conteneur possede l’id et le gid 0
Page 261
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 262
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 263
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 264
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 265
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 266
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 267
Formation Virtualisation légère avec LXC alphorm.com™©
Ce qu’on a couvert• Les espace de noms ou Namespace
• Création d’un espace de nom réseau
• Introduction aux groupes de contrôle – les cgroups
Page 268
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Création du répertoire pour notre espace de nom de type réseau
#mkdir /var/run/netns
• Création de l’espace de nom de type réseau
#ip netns add mon_espace#ip netns list#ls -l /var/run/netns/
• Exécution d’un shell dans l’espace de nom
#ip netns exec mon_espace bash#ip link list1: lo: <LOOPBACK> mtu 65536 qdisc no ......#exit #ip link list1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group .
Page 269
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau• Ajout d’une paire d’interface veth00 associé a eth0
#ip link add veth00 type veth peer name eth0#ip link list#ip address list
• Ajout et activation de l’interface eth0
#ip address add 10.0.3.10/24 dev eth0#ip link set eth0 up
• Déplace l’interface veth00 dans l’espace de nom de PID 0
#ip link set veth00 netns 1#exit#ip link set veth00 up#brctl addif lxcbr0 veth00#brctl show#ping 10.0.3.10
Page 270
Formation Virtualisation légère avec LXC alphorm.com™©
Création d’un espace de nom réseau
Page 271
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups ou Control Groups- Groupes de contrôle est une
fonctionnalité du noyaux Linux qui a pour but de :
Contrôler les ressources
• Allocation, l'interdiction, prioritisation, figer
Surveiller et mesurer les quantités de ressources consommées
Page 272
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle
profÉtudiant Système
Mémoire DisqueHTTP
NFS
1024640 512
50%20% 30% 50%20%
50%20%
Réseau
CPU Shares
50%20% 30%
Page 273
Formation Virtualisation légère avec LXC alphorm.com™©
Introduction aux groupes de contrôle• Les cgroups sont organisés en sous-systèmes ou modules
• Un sous-système est un contrôleur de ressources• Blkio : Surveille et contrôle l'accès des tâches aux entrées/sorties sur des
périphériques block
• Cpu : Planifie l'accès de la CPU
- Cpuacct : Rapports sur les CPU utilisées
- cpu.shares : Part relative du temps CPU disponible pour les tâches
• Cpuset : Assigne des CPU à des tâches
• Devices : Autorise ou refuse l'accès aux périphériques
• Freezer : Suspend ou réactive les tâches
• memory : Utilisation mémoire
Page 274
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