Vous êtes sur la page 1sur 12

Linux Container

Table des matières


1 Qu'est-ce que la virtualisation ?....................................................................................................... 3
1.1 Qu'est-ce que la virtualisation?................................................................................................ 3
1.2 Pourquoi utiliser la virtualisation?........................................................................................... 3
1.3 Avantages de la virtualisation ................................................................................................. 4
1.4 Comment fonctionne la virtualisation? ................................................................................... 4
2 Qu'est-ce qu'un hyperviseur ? .......................................................................................................... 4
2.1 Types d'hyperviseur ................................................................................................................. 5
2.1.1 L'hyperviseur de type 1 ................................................................................................... 5
2.1.2 Avantages des hyperviseurs de type 1 ............................................................................. 5
2.1.3 L’hyperviseur de type 2 ................................................................................................... 6
3 Qu'est-ce que la conteneurisation? .................................................................................................. 6
3.1 Avantages des conteneurs........................................................................................................ 7
3.2 Qu'est-ce que l'orchestration de conteneur? ............................................................................ 7
3.3 Quand utiliser des conteneurs? ................................................................................................ 8
4 Quelle est la différence entre les conteneurs et les machines virtuelles? ........................................ 8
Performance du système ...................................................................................................................... 8
Conteneur "Légèreté" .......................................................................................................................... 8
Maintenance et mises à jour ................................................................................................................ 9
5 LXC ................................................................................................................................................. 9
5.1 Installation ............................................................................................................................. 10
5.2 Utilisation .............................................................................................................................. 10
1 Qu'est-ce que la virtualisation ?
Lorsque nous parlons de cloud computing, nous devons d’abord comprendre ce qu’est la
virtualisation car c’est l’un des principaux concepts du cloud computing.

1.1 Qu'est-ce que la virtualisation?

Dans le cloud computing, la virtualisation fait référence à la virtualisation du hardware, ce


qui signifie créer des machines virtuelles au sein d'un système d'exploitation.

1.2 Pourquoi utiliser la virtualisation?

Normalement, lorsque nous exécutons un système d'exploitation, nous devons exécuter


chaque système d'exploitation sur un serveur physique dédié. Si nous devons exécuter
plusieurs systèmes d'exploitation simultanément, nous avons besoin de plusieurs serveurs
pour tous, car un serveur physique est requis pour un système d'exploitation. Cela signifie que
l'exécution de plusieurs systèmes d'exploitation devient très coûteuse. Vous devez non
seulement acheter un grand nombre de serveurs physiques, mais également dépenser
davantage pour l’exploitation et la maintenance (O & M) de ces serveurs.

Maintenant, vous avez une meilleure option - la virtualisation. La virtualisation vous permet
de séparer le système d'exploitation à partir du matériel sous-jacent, ce qui signifie que vous
pouvez exécuter plusieurs systèmes d'exploitation tels que Windows et Linux
simultanément sur une même machine physique. Ces systèmes d'exploitation sont
appelés systèmes d'exploitation invités (systèmes d'exploitation). La virtualisation vous
permet d'économiser de l'argent et du temps.
1.3 Avantages de la virtualisation

• Flexibilité: exécuter plusieurs systèmes d'exploitation simultanément sur le même matériel


Agilité: déplacement des systèmes d'exploitation de la même manière que vous pouvez
déplacer un fichier ou une image d'un serveur physique vers un autre serveur physique.
• Tolérance aux pannes: quand un serveur physique tombe en panne, le logiciel de gestion
migre automatiquement les instances vers les serveurs disponibles si rapidement que vous ne
réalisez même pas que le matériel physique est en panne.
• Rentabilité: vous avez besoin de moins de serveurs physiques et payez moins pour votre
facture d'électricité, vos opérations et votre maintenance.

1.4 Comment fonctionne la virtualisation?

Bien entendu, le matériel du serveur physique est toujours nécessaire, mais au lieu d’installer
directement un système d’exploitation sur ce matériel, nous installons un logiciel
appelé hyperviseur, qui nous permet de scinder un système physique en plusieurs
environnements virtuels distincts et isolés appelés machines virtuelles.

2 Qu'est-ce qu'un hyperviseur ?


Un hyperviseur est une couche logicielle installée sur le matériel physique, qui permet
de fractionner la machine physique en plusieurs machines virtuelles. Cela permet à
plusieurs systèmes d'exploitation de s'exécuter simultanément sur le même matériel physique.
Le système d'exploitation installé sur la machine virtuelle s'appelle un SE invité et parfois
aussi une instance. Le matériel sur lequel l'hyperviseur est exécuté s'appelle la machine hôte.
Une console de gestion d'hyperviseur, également appelée gestionnaire de machine
virtuelle(VMM), est un logiciel permettant de gérer facilement les machines virtuelles.
2.1 Types d'hyperviseur

Il existe deux types d'hyperviseurs: les hyperviseurs de type 1 et les hyperviseurs de type 2.
2.1.1 L'hyperviseur de type 1
est également appelé hyperviseur natif ou bare-metal, installé directement sur le matériel,
ce qui le divise en plusieurs machines virtuelles sur lesquelles nous pouvons installer des
systèmes d'exploitation invités. Le logiciel de gestion de machine virtuelle facilite la gestion
de cet hyperviseur, ce qui permet de déplacer automatiquement les systèmes d'exploitation
invités entre serveurs physiques en fonction des besoins actuels en ressources.
2.1.2 Avantages des hyperviseurs de type 1
• Tolérance aux pannes: lorsque le serveur physique tombe en panne, le logiciel de gestion
migre les instances vers les serveurs disponibles si rapidement que nous ne réalisons même
pas que le matériel physique est en panne. Les utilisateurs ne connaîtront aucun temps d'arrêt
et le matériel défaillant peut être réparé ou remplacé à un moment qui convient au personnel
de maintenance et d'exploitation.
• Allocation excessive / dynamique de la capacité de RAM: lors de l'exécution de plusieurs
instances sur un serveur, le total de RAM alloué aux machines virtuelles peut être supérieur à
la capacité de mémoire physique totale du matériel sous-jacent.
2.1.3 L’hyperviseur de type 2
est également appelé hyperviseur hébergé, installé dans un système d’exploitation hôte, avec
l’avantage de ne pas avoir besoin d’une console de gestion d’hyperviseur. Les
hyperviseurs de type 2 ne prennent pas en charge l’allocation dynamique / sur RAM, vous
devez donc faire attention lorsque vous allouez des ressources à des machines virtuelles.

3 Qu'est-ce que la conteneurisation?

La conteneurisation est un type de virtualisation au niveau de l'application, qui permet de


créer plusieurs instances d'espace utilisateur isolées sur un même noyau. Ces instances sont
appelées conteneurs.
Les conteneurs fournissent une méthode standard pour regrouper le code, le moteur
d'exécution, les outils système, les bibliothèques système et les configurations d'une
application en une seule instance. Les conteneurs partagent un noyau (système
d'exploitation) installé sur le matériel.

3.1 Avantages des conteneurs

• Légèreté
Les conteneurs occupent moins d'espace sur le serveur que les ordinateurs virtuels et ne
prennent généralement que quelques secondes à démarrer.
• Élasticité
Les conteneurs sont très élastiques et il n’est pas nécessaire d’allouer une quantité donnée de
ressources. Cela signifie que les conteneurs sont en mesure de faire une utilisation plus
efficace et dynamique des ressources du serveur. Lorsque la demande sur un conteneur
diminue, les ressources supplémentaires sont libérées pour être utilisées par d'autres
conteneurs.
• Densité
La densité fait référence au nombre d'objets qu'un seul serveur physique peut exécuter à la
fois. La conteneurisation permet la création d’environnements denses dans lesquels les
ressources du serveur hôte sont pleinement utilisées mais non surexploitées. Par rapport à la
virtualisation traditionnelle, la conteneurisation permet des environnements plus denses car
les conteneurs n'ont pas besoin d'héberger leur propre système d'exploitation.
• Performance
Lorsque la pression sur les ressources est importante, les performances des applications sont
bien meilleures avec les conteneurs qu'avec les hyperviseurs. En effet, avec la virtualisation
traditionnelle, le système d'exploitation invité doit également répondre à ses propres besoins
en matière de mémoire, en retirant une RAM précieuse de l'hôte.
• Efficacité de la maintenance
Avec un seul noyau de système d'exploitation, les mises à jour ou les correctifs au niveau du
système d'exploitation ne doivent être effectués qu'une seule fois pour que les modifications
prennent effet dans tous les conteneurs. Cela rend l'exploitation et la maintenance des serveurs
plus efficaces.

3.2 Qu'est-ce que l'orchestration de conteneur?

Le déploiement et l'organisation des conteneurs pour prendre en charge les applications


s'appelle conteneur orchestration, via un outil d'orchestration de conteneur. Kubernetes,
Docker Swarm et LXC sont quelques-uns des outils d’orchestration de conteneurs open
source populaires.
3.3 Quand utiliser des conteneurs?

Presque toutes les applications qui doivent être modifiées et redéployées rapidement et
fréquemment conviennent parfaitement à la conteneurisation. Les applications utilisant une
architecture de microservices constituent également un choix naturel.

4 Quelle est la différence entre les conteneurs et les machines virtuelles?

La conteneurisation est un type de virtualisation au niveau de l'application, qui permet de


créer plusieurs instances d'espace utilisateur isolées sur un même noyau. Ces instances sont
appelées conteneurs.
Les conteneurs fournissent une méthode standard pour regrouper le code, le moteur
d'exécution, les outils système, les bibliothèques système et les configurations d'une
application dans une instance. Les conteneurs partagent un noyau (système d'exploitation)
installé sur le matériel.

Performance du système
Dans le cas de la virtualisation traditionnelle avec des machines virtuelles,
chaque machine virtuelle dispose de son propre système d'exploitation.
Ainsi, lors de l'exécution d'applications intégrées à des machines virtuelles,
Machine Virtuelle
l'utilisation de la mémoire peut être supérieure à ce qui est nécessaire et les
machines virtuelles peuvent commencer à utiliser les ressources requises
par l'hôte.
Contrairement aux applications classiques, les applications conteneurisées
partagent un environnement de système d'exploitation (noyau), elles
Conteneur
utilisent donc moins de ressources que des machines virtuelles complètes
et réduisent la pression sur la mémoire de l'hôte.
Conteneur "Légèreté"
Les machines virtuelles traditionnelles peuvent occuper beaucoup d’espace
Machine Virtuelle disque: elles contiennent un système d’exploitation complet et les outils
associés, en plus de l’application hébergée par la machine virtuelle.
Les conteneurs sont relativement légers: ils ne contiennent que les
bibliothèques et les outils nécessaires à l'exécution de l'application
Conteneur
conteneurisée. Ils sont donc plus compacts que les machines virtuelles et
démarrent plus rapidement.
Maintenance et mises à jour
En ce qui concerne la mise à jour ou la correction du système
Machine Virtuelle d'exploitation, les machines traditionnelles doivent être mises à jour une
par une: chaque système d'exploitation invité doit être corrigé séparément.
Avec les conteneurs, seul le système d'exploitation de l'hôte du conteneur
Conteneur (la machine hébergeant les conteneurs) doit être mis à jour. Cela simplifie
considérablement la maintenance.

5 LXC
Le noyau de Linux 2.6.24 intègre une prise en charge fondamentale de la conteneurisation
pour assurer une virtualisation au niveau du système d'exploitation et permettre à un même
hôte d'exécuter plusieurs instances Linux isolées, baptisées « conteneurs Linux », ou LXC
(LinuX Containers).

LXC repose sur la notion de groupes de contrôle Linux, les cgroups. Ici, chaque groupe de
contrôle offre aux applications une isolation totale des ressources (notamment processeur,
mémoire et accès E/S), et ce sans recourir à des machines virtuelles à part entière.

Les conteneurs Linux proposent également une isolation complète de leur espace de noms.
Les fonctions telles que les systèmes de fichiers, les ID réseau et les ID utilisateur, ainsi que
tout autre élément généralement associé aux systèmes d'exploitation, peuvent donc être
considérés comme « uniques » du point de vue de chaque conteneur.

5.1 Installation

L'installation de LXC se fait à partir du gestionnaire de paquet de votre distribution Linux.


Pour une distribution basée sur Debian (Ubuntu, Mint...), il suffit de taper en ligne de
commande:

sudo apt install lxc

Si vous possédez une distribution récente basée sur Debian, vous devez installer le package
lxc-template.

sudo apt install lxc-template

5.2 Utilisation

lxc permet de manipuler facilement vos conteneurs. Cette section liste les commandes les plus
utiles.
La commande lxc exige des droits privilégiés d'exécution. Vous devez utiliser la
commande sudo ou toute commande vous donnant les droits nécessaires.
Pour voir la liste des conteneurs installés, leur état et leurs adresses réseau :

lxc-ls -f

Pour créer un conteneur ;

lxc-create --template download --name <nom du conteneur> -- <paramètres de création du


conteneur>

Si vous ne passez pas de paramètres de création à la commande lxc-create, alors vous lancez
le mode interactif pour sélectionner l'image du système que vous souhaitez installer :

lxc-create --template download --name <nom du conteneur>

Pour créer un conteneur Debian jessie pour une architecture 64 bits :

lxc-create --template download --name <nom du conteneur> -- -d debian -r jessie -a amd64


Si cette commande échoue, cela signifie que votre version de LXC est peut-être trop ancienne
et que vous n'avez pas accès à l'image de Debian jessie. Dans ce cas, essayez le mode
intéractif comme décrit dans le cadre ci-dessus, pour connaître la liste des images disponibles.
Pour démarrer/arrêter un conteneur :

lxc-start -n <nom du conteneur>


lxc-stop -n <nom du conteneur>

Pour obtenir des informations détaillées sur le conteneur :

lxc-info -n <nom du conteneur>

Pour lancer un shell en mode superutilisateur

lxc-attach -n <nom du conteneur> -- /bin/bash

Pour exécuter une commande en mode superutilisateur

lxc-attach -n <nom du conteneur> -- <commande>

Pour supprimer un conteneur

lxc-destroy -n <nom du conteneur>

Si votre conteneur contient des snapshots, vous devez forcer la suppression des snapshots
avec l'option -s

lxc-destroy -s -n <nom du conteneur>

Pour créer un snapshot de l'état d'un conteneur

lxc-snapshot -n <nom du conteneur>

Pour voir liste des snapshots disponible pour un conteneur

lxc-snapshot -n <nom du conteneur> -L

Pour restaurer un snapshot

lxc-snapshot -n <nom du conteneur> -r <nom du snapshot>

Pour copier un conteneur

lxc-copy -n <nom du conteneur> -N <nom du nouveau conteneur>

Si vous avez une ancienne version de LXC, vous n'aurez pas accès à lxc-copy. Dans ce cas,
essayez lxc-clone :
lxc-clone <nom du conteneur> <nom du nouveau conteneur>

Pour copier un conteneur à partir d'un snapshot

lxc-snapshot -n <nom du conteneur> -r <nom du snapshot> -N <nom du nouveau


conteneur>

Vous aimerez peut-être aussi