Académique Documents
Professionnel Documents
Culture Documents
systèmes GNU/Linux
S23E01 inetdoc.net
infrastructure
stockage authentification
PPP Session
Installer Open vSwitch (OvS)
Installer les premiers conteneurs
avec LXD
https://gist.github.com/platu/
Scénario
Installer un conteneur LXD avec
les paquets d’un service Web
Scénario
Installer un blog statique
Scénario
Gérer les permissions de groupes
pour le développement de site Web
Comment évaluer ?
Unix
1978 1978
BSD
1.0 to 2.0 Unix
1979 Version 7 1979
Unix/32V
1980 1980
Family
BSD
3.0 to 4.1 Xenix
1981 System III 1981
1.0 to 2.3
1982 1982
tree
Xenix
BSD 4.2 3.0
1983 SunOS 1983
1 to 1.1 System V
1984 R1 to R2 1984
SCO Xenix
Unix
1985 Version 8 SCO Xenix 1985
AIX V/286 System V
1986 Unix-like systems BSD 4.3 1.0 R3 HP-UX 1986
SunOS 1.0 to 1.2
Unix 1.2 to 3.0 SCO Xenix
1987 9 and 10 V/386 1987
(last versions HP-UX
1988 BSD 4.3 System V 2.0 to 3.0 1988
from Tahoe R4
1989 Bell Labs) SCO Xenix 1989
BSD Net/1 V/386
BSD 4.3
1990 Reno 1990
1991 BSD Net/2 1991
Linux 0.0.1
SunOS
Minix 4
386BSD
1.x NexTSTEP/
1992 OPENSTEP HP-UX 1992
1.0 to 4.0 NetBSD 6 to 11
Linux BSD 0.8 to 1.0
1993 SCO UNIX UnixWare 1993
0.95 to 1.2.x 4.4-Lite 3.2.4 1.x to 2.x
FreeBSD & (System V
1994 Lite Release 2 1994
1.0 to R4.2)
1995 2.2.x NetBSD OpenBSD 1995
1.1 to 1.2 OpenServer Solaris
1.0 to 2.2 5.0 to 5.04
1996 2.1 to 9 1996
1997 1997
NetBSD 1.3
1998 FreeBSD 1998
3.0 to 3.2
Minix OpenServer
1999 Mac OS X 5.0.5 to 5.0.7 1999
2.x Server
2000 2000
userspace
utilisateur utilisateur utilisateur
userspace
Programmes utilisateurs Bibliothèque standard glibc
Bibliothèque standard glibc
kernelspace Sous-systèmes du noyau
Memory Management Unit (MMU)
bdflush kswapd slab
Zoned buddy allocator allocator
kernelspace
Allocation pages mémoires
zoned buddy allocator
Slab allocator
Cache dans les pages mémoire
MMU
Kernel threads
Réutilisation de la mémoire
Ordonnanceur/Scheduler
3 domaines ou types de tâches
Domaine temps réel
Contraintes de temps d'exécution
Fréquence d'exécution garantie
Domaine entrées/sorties
Attente de disponibilité des
périphériques
Domaine CPU
Temps consacré aux calculs
Tranche de temps CPU / time slice
Durée d'exécution d'un processus
sur un cœur
Préemption
Interruption d'un processus par un
second de priorité plus élevée
S23E01 inetdoc.net - 22/45
Système GNU/Linux
Machine Machine
Virtualisation virtuelle virtuelle
ou para-Virtualisation ? qemu i/o qemu i/o
Sans hyperviseur → virtualisation
application
Émulation du matériel dans l’espace
utilisateur
Performances limitées shell
Adapté aux cibles matérielles obsolètes
Avec hyperviseur → para-virtualisation noyau/kernel
Communication directe entre machine
virtuelle et matériel du système hôte module KVM
matériel
Performances identiques entre système hôte
et système virtualisé
Périphériques dédiés dans le noyau de la
machine virtuelle
S23E01 inetdoc.net - 23/45
Système GNU/Linux
Machine Machine
Virtualisation virtuelle virtuelle
ou para-Virtualisation ? qemu i/o qemu i/o
application
Outil de l’espace utilisateur → qemu
qemu seul → virtualisation
2 fonctions principales
shell
Manipulations sur les fichiers image
de machine virtuelle
noyau/kernel
Description du matériel des machines
virtuelles module KVM
Outil de l’espace noyau → kvm matériel
qemu + kvm → para-virtualisation
Utilisation des périphériques de la
bibliothèque virtio
S23E01 inetdoc.net - 24/45
Système GNU/Linux
Hyperviseurs de type 1 ou 2
Type 1
Accès direct au matériel depuis
les machines virtuelles
système système système système
VMware ESX
VM VM VM VM
Système hôte
Type 2
Hyperviseur type 1 Hyperviseur type 2
Services assurés par le système
hôte → Open vSwitch matériel matériel
GNU/Linux KVM
Objectifs glibc
lxc
Aucun compromis entre commutation eth0 lxc
eth0
virtuelle et commutation physique application
Pas de recours à la traduction d’adresses
Conteneurs système
Configuration simplifiée via snap shell
Raccordement réseau automatique OvS
Open vSwitch (OvS) noyau/kernel
Table CAM (Content Addressable Memory) eth0
Base de VLANs
Application du Copyleft
Appliquer un copyright sur le logiciel
Fixer les conditions de distribution
«Donner à tout utilisateur le droit d'utiliser,
de modifier et de redistribuer le programme
sans changer les conditions de distribution»
Le code source et les libertés associées
sont inséparables
http://www.gnu.org/copyleft/copyleft.fr.html
Terminologie OpenSource
Modifications distribuées dans les mêmes conditions que l'original
Restrictions possibles sur la redistribution des correctifs
Licence sans restrictions sur d'autres logiciels associés
DevOps Mantra
Toujours plus d’automatisation
Toujours plus d’applications intégrées ou dépendantes
Tout est programmable
«le déploiement d’infrastructure utilise les mêmes processus que
le déploiement logiciel»
Fusion des métiers du développement et de l’administration système
Infrastructure as Code → Page Wikipedia
S23E01 inetdoc.net - 34/45
Projets OpenSource
Quelles sont les évolutions métier en cours ?
Intégration continue – continuous integration
Déposer souvent le code dans un système de contrôle de version.
Toute modification déclenche une instance automatisée de génération
et de test.
Livraison continue – continuous delivery
Automatiser le processus de publication du logiciel. Un projet amont
peut lancer la construction des paquets pour toutes les
distributions.
Déploiement continu – continuous deployment
Automatiser complètement l’intégration et la livraison sans aucune
étape manuelle.
Exemples
Transformation de github ou gitlab en outils de développement
intégrés
Continuité lors des mises à jour
Cohérence des évolutions et corrections
Adaptation + évolution continue
Continuité de service
Haute disponibilité
S19E01 inetdoc.net
S23E01 inetdoc.net -- 41/45
41/45
Bilan séance 1
Framabook
Unix. Pour aller plus loin avec la ligne de commande
https://framabook.org/unixpou-allerplusloinaveclalignedecommande/
Manuel d'installation Debian
http://www.debian.org/releases/stable/installmanual