Support - Cours - Services Réseaux Et Téléphonie Sur IP

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 227

Services réseaux et

téléphonie sur IP
INGE4 - Institut Saint Jean ,2021/2022
NGNOULAYE Janvier, PhD
Chargé de cours, Université de Yaoundé 1
Enseignant associé : ENSP, SUPPTIC , ESIREM - Université de Bourgogne
Expert-consultant Système, Réseau et Cybersécurité
Expert groupe de travail de l’Union Africaine en Cybersécurité
Instructeur agrée des Académies CISCO, membre Afrinic.net, icann.org
Whatsp: 00237 660 66 71 16, Tél: 00237 677 72 03 34, Email : [email protected]
Objectifs du cours
Disposer des outils nécessaires pour le déploiement
de services indispensables dans un Intranet en
utilisant des solutions OpenSource Linux.
 designer le stockage en utilisant les niveaux RAID et
la technologie LVM,
 identifier le système de fichier adéquat pour un
serveur,
 déployer un ensemble de services réseaux,
 capturer des trames réseaux et les analyser
 et enfin, comprendre et déployer un serveur de VoIP.
Programme ❖ System Startup
 Création d’un niveau d’exécution sur mesure avec applications spécifiques
 Réinstallation de GRUB après corruption
 Autres méthodes de chargement du noyau
❖ Services Réseau
 DNS, Active Directory (Samba4), DHCP
 Web, Proxy Web, Archivage
 FTP, NFS, E-Mail, iSCSI
 VPN, Rsyncd, iSCSI, RDP
 SSH, Cluster (DRBD, Corosync, Pacemaker, PCS)
❖ Filesystem and Devices
 Gestion et configuration des systèmes de fichiers
 Les sauvegardes au niveau Filesystem
 Sauvegardes, duplication et synchronisation de données
 Gestion des disques durs
❖ Advanced Storage Device Administration
 Création et exploitation d’un volume logique sur le disque RAID
 Extension du volume logique
 Logical Volume Manager (LVM)
❖ Networking Configuration
Programme  Attribution dynamique et statique d'une adresse IP
 Outils de diagnostic des couches réseau, transport et application
 Compilation des applications Procédure de compilation GNU
 Remise locale des messages : Alternatives à la messagerie
❖ Capture et Analyse des Trames Réseaux
 Bibliothèque libpcap
 Utilisation de l'outil tcpdump
 Utilisation de l'application Wireshark
❖ VoIP
 Contraintes de la VoIP
 Signalisation et protocoles
 CODECS audios et vidéo
 Protocoles de transport (UDP, TCP, RTCP, RTCP)
 Protocole SIP (SIPS) : Architecture, méthodes, réponses, Adressage,
modes de transmission, transport flux média, interconnexion
SIP/GSM
 Protocoles SDP, SCCP
Pédagogie
❖ Cours magistral
❖ Exposés d’étudiants
❖ Travaux pratiques
❖ Contrôle continu
❖ Examen final

Activité Exposés Travaux Contrôle Examen


s d’étudiant pratiques continu final
s

Poids 10% 20% 20% 50%


Services réseaux et téléphonie sur IP
 L’environnement pratique du cours est Linux.
Environnement Linux est la reproduction de Unix sur des plateformes
❖ Modalités 
Intel
pratiques
 Différentes distributions Linux principales sont: Debian, Ubuntu, Red Hat
Entreprise Linux (RHEL), Fedora, Centos, Rocky, OpenWRT, Kali, Gentoo,
ArchLinux
 Quelques environnements de bureau sur Linux: Gnome, KDE, LXDE ou
encore XFCE sous Debian/Ubuntu et sous RHEL/Centos.
 Installation d'une distribution Linux au choix: voir le tutoriel disponible
sur son site officiel
 Certaines activités pratiques pourront se faire parallèlement sur les
environnements Windows et Cisco
System Startup / Démarrage du système (en 6 étapes)
- Création d’un niveau
d’exécution sur
mesure avec des
applications
spécifiques

- Réinstallation de
GRUB après corruption

- Autres méthodes de
chargement du noyau
System Startup / Démarrage du système (en 6 étapes)
1ère étape :
 BIOS = Basic Input/Output system : système élémentaire
d'entrée/sortie. C'est un ensemble de fonctions contenu
le BIOS dans la mémoire morte (ROM) de la carte mère d'un
ordinateur lui permettant d'effectuer des opérations
élémentaires lors de sa mise sous tension.
 Exécute des opérations de vérification de l'intégrité du
système.
 Cherche, charge et exécute le programme d'amorçage.
 Il cherche le programme d'amorçage sur un disque dur,
une disquette, un CD-Rom ou une clé USB.
 Une fois le programme d'amorçage trouvé et chargé en
mémoire, le BIOS lui donne le contrôle.
 Simplement, le BIOS exécute la MBR.
System Startup / Démarrage du système (en 6 étapes)
 MBR = Master Boot Record : la zone amorce.
2e étape :  C'est le premier secteur adressable d'un disque dur. Le
plus souvent appelé /dev/hda ou /dev/sda.
le MBR  La taille de cette zone est de 512 bits au maximum. Elle
contient :
 le programme d'amorçage se trouve dans les 446 premier bits.
 la table des partitions (les 4 partitions primaires) du disque dur
sur les 64 bits suivants.
 vérification de la validité du MBR dans les 2 derniers bits.
 Il contient une routine d'amorçage dont le but est de
charger le système d'exploitation (ou le « boot loader
»/chargeur d'amorçage s'il existe - GRUB ou LiLo)
présent sur la partition active.
 Simplement, le MBR exécute le programme d'amorçage
System Startup / Démarrage du système (en 6 étapes)
3e étape :  GRUB = Grand Unified Bootloader : un programme
d'amorçage de micro-ordinateur.
 Lorsque le micro-ordinateur héberge plusieurs systèmes (on
le GRUB parle alors de multi-amorçage), il permet à l'utilisateur de
choisir quel système démarrer.
 Il présente une interface qui permet à l'utilisateur de choisir
quel système d'exploitation démarrer.
 Si vous avez plus d'un noyau installé sur votre système, il est
possible de sélectionner celui que vous voulez exécuter.
 Il connaît le système de fichiers (ext3, ext4, Btrfs, etc.)
utilisé sur le système.
 Simplement, GRUB charge et exécute le noyau sélectionné
et l'image initrd (image d'un système minimal initialisé au
démarrage du système = Initial Ram Disk).
System Startup / Démarrage du système (en 6 étapes)
 Monte le système de fichiers racine (« root »). Donc, relie une
partition ou un périphérique à un répertoire, répertoire par
4e étape : lequel les données présentes sur la partition ou le périphérique
sont accessibles.
le noyau  Le noyau charge et exécute le programme /sbin/init.
 Comme le programme init est le premier programme a être
exécuté par le noyau Linux, il porte le PID (ID du processus)
numéro 1.
 Le initrd permet ainsi d'avoir un système minimal pouvant
ensuite charger le système de fichier principal ou bien des
systèmes sans disques. Il peut être instable d'avoir "en dur"
dans le kernel tous les drivers de disques. Pour éviter cela, les
distributions compilent un kernel minimal avec les options de
bases puis chargent les modules obligatoires nécessaires
contenus dans l'archive de l'initrd.
System Startup / Démarrage du système (en 6 étapes)
5e étape :  Il consulte le fichier /etc/inittab pour décider quel niveau
d'exécution démarrer.
Les niveaux d'exécution sont :
init 
 0 - Arrêt
 1- Mode mono-utilisateur
 2 - Mode multi-utilisateur sans serveur applicatif
 3 - Mode multi-utilisateur avec serveur applicatif
 4 - Inutilisé ou X11 -> interface graphique selon la distribution
 5 - X11 -> interface graphique selon la distribution
 6 - Redémarrage

 Init identifie le niveau d'exécution dans le fichier /etc/inittab et


l'utilise pour charger les programmes associés au niveau.
 En général, une distribution Linux fonctionne sur le niveau 5 ou 3.
System Startup / Démarrage du système (en 6 étapes)
 Lorsque votre système Linux démarre, vous apercevez (en appuyant sur la touche <ESC> afin de voir la
version « verbeuse » du démarrage) divers services qui sont chargés. Ce sont les programmes du niveau
d'exécution sur lequel votre système fonctionne qui sont chargés à partir du répertoire représentant le
6e étape : niveau d'exécution du système.
 Les répertoires des niveaux d’exécution sont :
 Run level 0 – /etc/rc.d/rc0.d/
Runlevel  Run level 1 – /etc/rc.d/rc1.d/

 Run level 2 – /etc/rc.d/rc2.d/

 Run level 3 – /etc/rc.d/rc3.d/

 Run level 4 – /etc/rc.d/rc4.d/

 Run level 5 – /etc/rc.d/rc5.d/

 Run level 6 – /etc/rc.d/rc6.d/

 Dans ces répertoires, on retrouve des noms de programme qui commencent par la lettre S et K.
 Ceux qui commencent par la lettre S sont exécutés au démarrage du système (la lettre S pour « startup »
= démarrage).
 Ceux qui commencent par la lettre K sont exécutés à l'arrêt du système (la lettre K pour « kill » = arrêt).
 De plus, dans le nom de ces programmes, il y a un chiffre après la lettre S ou K. Ce chiffre indique l'ordre
d'exécution de chaque programme lors du démarrage ou de l'arrêt du système. Par exemple, S12syslog est
le 12e programme qui s'exécutera au démarrage du système.
System Startup / Démarrage du système (en 6 étapes)
Activités  Installez une distribution Linux (Debian, Ubuntu ou
pratiques CentOs) soit en dual boot ou en machine virtuelle, si
vous ne l’avez pas encore fait
 A partir de votre distribution installée, découvrez les
services ou programmes qui s’exécutent à chaque
niveau d’exécution au démarrage de votre système,
listez ceux du niveau 3 et ceux du niveau 5
 Paramétrez votre système à ce qu’il s’exécute
seulement au niveau 3
 Spécifiez un programme particulier de votre choix
existant dans votre ordinateur pour qu’il s’exécute au
démarrage du système au niveau 5
 Lire le support de cours et exercices sur les rappels sur
Linux, remis par l’enseignant.
Programme ❖ System Startup
 Création d’un niveau d’exécution sur mesure avec applications spécifiques
 Réinstallation de GRUB après corruption
 Autres méthodes de chargement du noyau
❖ Services Réseau
 DNS, Active Directory (Samba4), DHCP
 Web, Proxy Web, Archivage
 FTP, NFS, E-Mail, iSCSI
 VPN, Rsyncd, RDP
 SSH, Cluster (DRBD, Corosync, Pacemaker, PCS)
❖ Filesystem and Devices
 Gestion et configuration des systèmes de fichiers
 Les sauvegardes au niveau Filesystem
 Sauvegardes, duplication et synchronisation de données
 Gestion des disques durs
❖ Advanced Storage Device Administration
 Création et exploitation d’un volume logique sur le disque RAID
 Extension du volume logique
 Logical Volume Manager (LVM)
❖ Services Réseau
DNS, Active Directory (Samba4), DHCP
Web, Proxy Web, Archivage
FTP, NFS, E-Mail, iSCSI
VPN, Rsyncd, iSCSI, RDP
SSH, Cluster (DRBD, Corosync, Pacemaker, PCS)

16
Les ateliers
 Atelier groupe 1: Web, Proxy Web, Archivage
 Atelier groupe 2: VPN, Rsyncd, RDP, SSH
 Atelier groupe 3: FTP, NFS, iSCSI
 Atelier groupe 4: Cluster (DRBD, Corosync, Pacemaker, PCS), SSH
 Atelier groupe 5: DNS, Active Directory (Samba4), DHCP

Consigne pour la réalisation des ateliers:


a. Les étudiants sont organisés en Atelier ou Groupe de travail, de façon à couvrir
les 5 ateliers ci-dessus
b. Chaque groupe prépare son atelier en terme d’exposé et de configuration
pratique sur son environnement Linux (Debian ou Ubuntu de préférence). Retrouver la
documentation en ligne ou des tuto pour la réalisation de l’atelier
c. Chaque groupe aura 30min pour présenter son travail
Prérequis
 Contexte de réseau et service: rappels sur le fonctionnement de
l’adressage global de l’IP et du DNS
 Contexte de réseau et service : rappels sur la configuration de
topologie réseau dans un intranet d’immeuble 20 étages
 Installation de Debian sur Vmware ou Virtualbox
 Rappels sur les commandes d’administration Linux
 Exercices sur les commandes Linux
 Contexte de réseau et service : rappels sur la notion client/serveur

18
Services Réseau: Rappels sur la notion client/serveur

Définitions
Est conforme au modèle client-serveur tout
processus utilisant des services offerts par un
autre processus, et communiquant avec lui à
l’aide de messages.

19
Services Réseau: Rappels sur la notion client/serveur

Serveur = Ordinateur central qui effectue tous les traitements


Client = Terminal sans puissance locale de traitement

Répartition judicieuse de la puissance de traitement entre le


serveur et les différentes stations interconnectées.

20
Services Réseau: Rappels sur la notion client/serveur

 CLIENT
 Processus qui demande l'exécution d'une
opération par l'envoi d'une demande.
 SERVEUR
 Processus qui exécute la demande du client et qui
transmet la réponse.
 REQUÊTE (Request)
 Message transmis par le client.
 REPONSE (Reply)
 Message transmis par le serveur. 21
Services Réseau: Rappels sur la notion client/serveur

 Le MESSAGE entre le client et le serveur est


matérialisé par des « Sockets »
 Le terme “ socket ” désigne à la fois une bibliothèque
d’interface réseau et l’extrémité d’un canal de communication
(point de communication) par lequel un processus peut
émettre ou recevoir des données.
 L’interface socket est un ensemble de primitives qui
permettent de gérer l’échange de données entre
processus, que ces processus soient exécutés ou non sur la
même machine.
 La bibliothèque socket masque l’interface et les
mécanismes de la couche transport : un appel socket se
traduit par plusieurs requêtes transport 22
Services Réseau: Rappels sur la notion client/serveur

Sockets

23
Services Réseau: Rappels sur la notion client/serveur
Sockets

Une socket est:


 Un point d'accès aux couches réseau
 Liée localement à un port: Adressage de l'application sur le réseau : son couple
@IP:port
Elle permet la communication avec un port distant sur une machine distante : c'est-
à-dire avec une application distante 24
Services Réseau: Rappels sur la notion client/serveur

Illustration d’API socket

25
Services Réseau: Rappels sur la notion client/serveur

Illustration d’API socket

26
Services Réseau: Rappels sur la notion client/serveur

Différents types de sockets


Stream Sockets (TCP)
 établir une communication en mode connecté
 si connexion interrompue : applications informées
 Exemples de services : ftp, http, smtp, telnet, BGP…

Datagram Sockets (UDP)


 établir une communication en mode non connecté
 données envoyées sous forme de paquets indépendants
de toute connexion. Plus rapide, moins fiable que TCP
 Exemples de services : snmp, RPC, tftp, dhcp, dns,
RIP…
27
Services Réseau: Rappels sur la notion client/serveur
La notion de « port »
Un service rendu par un programme serveur sur une machine
est accessible par un port.
Un port est identifié sur une machine par un nombre entier (16
bits).

28
Services Réseau: Rappels sur la notion client/serveur
Exemple de communication entre client et serveur

29
Services Réseau: Rappels sur la notion client/serveur
Processus de Sockets

30
Services Réseau: Rappels sur la notion client/serveur

Gestion du parallélisme sur le serveur

31
Services Réseau: Rappels sur la notion client/serveur
Sockets en mode connecté
Principe
-flot bidirectionnel d’octets transférés
 de façon fiable (ni perte, ni duplication) et ordonnée
 entre deux locuteurs préalablement « connectés »
= = > service TCP utilisé
-trois phases nécessaires à programmer :
 établissement de connexion:
• Un initiateur (l’entité « client » : ouverture active)
• Un répondant (l’entité « serveur » : ouverture passive)

 transfert de données:
• Requêtes, réponses (selon le protocole applicatif)
 libération de connexion
• Bi partie

32
Services Réseau: Rappels sur la notion client/serveur

Sockets en mode connecté


Ouverture passive (côté « répondant ») : (1/2)
Conception :
 Dédier une socket destinée à intercepter des demandes
d’établissement de connexion
= = > socket générique d’écoute
 Caractériser cette socket en terme de communication :
-au moins un numéro de port (associé au service)
-éventuellement une adresse IP (interface cible)
 Lui permettre de scruter et stocker les demandes de connexions
entrantes avant acceptation
-paramétrer la taille de la FIFO des requêtes 33
Sockets en mode connecté:

Ouverture passive (côté « répondant ») : (2/2)


Programmation en JAVA :
 Classe ServerSocket
 Trois constructeurs possibles:
-numéro_port (obligatoire)
-Et taille maximale FIFO
-Et Adresse IP

34
Sockets en mode connecté:

Ouverture active (côté « initiateur ») : (1/2)


Conception :
 Créer une socket localement (et éventuellement la
caractériser)
 L’utiliser pour demander l’établissement d’une connexion
TCP avec un processus distant « répondant »
 Spécifier ce dernier grâce aux caractéristiques de
communication de sa socket générique d’écoute :
-numéro de port
-Adresse IP
35
Sockets en mode connecté:

Ouverture active (côté « initiateur ») : (2/2)


Programmation en JAVA
 Classe Socket
 Quatre constructeurs possibles
-@sse IP ou nom_host distant ET numéro_port distant
(obligatoires)
-Et @sse IP ou nom_host local ET numéro_port local

36
Sockets en mode connecté:

Acceptation d’ouverture (côté « répondant ») : (1/2)


Conception :
 Le processus doit être bloqué tant qu’aucune demande de
connexion ne lui parvient sur la socket générique d’écoute :
= = > fonction bloquante

 L’acceptation consiste à considérer positivement une


demande reçue et à créer localement une socket spécifique
dédiée à supporter l’échange de données sur cette connexion
particulière
= = > Cette socket représente l’extrémité « serveur » de la
connexion TCP initiée par un « client » distant.
37
Sockets en mode connecté:

Acceptation d’ouverture (côté « répondant ») : (2/2)

Programmation en JAVA
 Classe ServerSocket
 Méthode accept

38
Sockets en mode connecté:
Transfert de données (des deux côtés) :
Conception :
 EMISSION : Revient à Ecrire/Envoyer un message (x
octets) sur la connexion
 RECEPTION : Revient à Lire/Recevoir un message (x
octets) sur la connexion

Programmation en JAVA
 Classe Socket
 Emission : méthode getInputStream
 Réception : méthode getOuputStream

39
Sockets en mode connecté:
Libération de connexion (des deux côtés) :
Conception :
 Fermeture totale :revient à fermer l’extrémité d’une
connexion : = = > émission et réception deviennent
impossibles
 Fermeture partielle : possible selon les technologies
= = > émission ou réception devient impossible

Programmation en JAVA:
 Classe Socket
 méthode close
 méthodes shudownInput et shutdownOutput
40
Sockets en mode non connecté:

Principe:
 Datagrammes individuels transférés
-de façon non fiable, du « mieux »possible
-pas de connexion entre émetteur(s) et récepteur
= = > service UDP utilisé
 Une seule phase à programmer :(transfert de données)
-envoi et réception possibles (de requêtes et de réponses
selon le protocole applicatif)
-détermination de l’expéditeur par le récepteur; Il peut
ensuite devenir destinataire.
 Libération de port après usage
41
Sockets en mode non connecté:

Création et caractérisation d’une socket


Conception :
 Créer une socket localement
 Le caractériser si réception de données prévue: Numéro de port
prédéfini côté « serveur »

Programmation en JAVA
 Classe DatagramSocket
 Trois constructeurs possibles
-sans paramètre : port anonyme local
-avec no_port local
-et @sse IP_locale

42
Sockets en mode non connecté:
Transfert de données (des deux côtés) :
Conception :
 EMISSION : Envoyer X octets vers une socket distante dont on précise les
caractéristiques
 RECEPTION : Recevoir X octets provenant d’une socket distante dont on récupère
les caractéristiques pour en déterminer l’origine.

Programmation en JAVA
Classe SocketDatagram
-Emission : méthode send
-Réception : méthode receive
-Gestion d’association : méthodes connect et disconnect
Classe DatagramPacket
-Constructeurs pour l’envoi
-Constructeurs pour la réception
Services Réseau: Rappels sur la notion client/serveur

Travaux Pratiques (optionnel)


 Écrire deux programmes client et serveur en mode
connecté.
 le serveur et le client échangent des messages
 Le client envoie un message "END" pour terminer la
communication
 Utiliser un numéro de port de votre choix
 le programme client reçoit en paramètre l’adresse IP
et le port du serveur.

44
❖ Services Réseau
DNS, Active Directory (Samba4), DHCP
Web, Proxy Web, Archivage
FTP, NFS, E-Mail, iSCSI
VPN, Rsyncd, iSCSI, RDP
SSH, Cluster (DRBD, Corosync, Pacemaker, PCS)

45
E-Mail
Les Services de Messagerie Internet
E-Mail: Principe de fonctionnement SMTP « route » le
message vers
Noulaye depuis son l’adresse SMTP
client de messagerie à
Recherche DNS renvoyée par DNS
Le Message est remis Enregistrement MX
l’Institut St Jean, confie dans la boîte aux
son message au du domaine
Serveur SMTP de
lettres du destinataire microsoft.com
l’opérateur Internet Serveur SMTP
Serveur SMTP microsoft.com
Opérateur Internet

biloa.aline
récupère le
message sur
son poste à
De : [email protected] l’aide des
protocoles
A : [email protected]
POP ou IMAP
Objet : salutations depuis Ydé à l’ISJ
Ma chère sœur Aline ….

Boîte aux lettres


de biloa.aline
E-mail:
Les éléments du dialogue dans la chaine du
parcours du message au destinataire
 MUA– Mail User Agent
 Processus du poste client permettant de rédiger, envoyer et lire les
messages.
Logiciel de type : Outlook Express, Thunderbird
 MTA – Mail Transfert Agent
 Processus Serveur permettant d’acheminer les courriers. Protocole
associé : SMTP
 MDA – Mail Delivery Agent
 Processus Serveur qui délivre les messages dans les boîtes aux lettres
utilisateurs.
 MAA – Mail Access Agent
 Processus Serveur permet de récupérer les messages dans les boîtes
aux lettres utilisateurs.
Protocoles associés : POP, IMAP
Architecture du système de messagerie

Mail SMTP
MTA MTA
Transfert émetteur destination
Etape 3: Transmission du message
Agent
Etape 4: Réception du message
Etape 2:
Envoi du
message Etape 5: Stockage Mail
du message Delivery
Boite à MDA
lettres Agent
SMTP
Etape 6: Restitution Mail
Mail des messages MAA Access
User MUA
émetteur Agent
Agent
Etape 7: Lecture des messages PO3, IMAP4
Etape 1:
composition MUA
du message destination

Etape 8: Consultation des messages


Détail des étapes
Etape 1: Un usager compose, avec l’aide de son
client de messagerie (MUA) un message.

Etape 2: Le message est transmis au MTA de


l’usager ( son serveur de messagerie en SMTP).

Etape 3: Le message est transmis au serveur de


messagerie du destinataire (SMTP).

Etape 4: Le serveur transmet le message à un


agent: notion d’agent MDA ‘Mail Delivery
Agent’.
Détail des étapes

Etape 5: Le MDA stocke le courrier dans la boite à lettres du


destinataire.

Etape 6: Sur requête du destinataire dans le cadre d’un protocole de


relève POP ou IMAP les messages sont extraits de la boite à lettre par un
agent : MAA (‘Mail Access Agent’).

Etape 7: Les messages sont transmis au client de messagerie utilisateur


(protocoles POP ou IMAP). Il sont stockés dans des boites à lettre client.

Etape 8: Le destinataire consulte ses messages en utilisant son client de


messagerie (MUA).
Les protocoles de Messagerie

 SMTP
 Envoi et routage des messages
 POP
 Récupération des messages.
Messages complets uniquement
 IMAP
 Récupération des messages.
Lecture des entêtes de messages
Lecture sans pièces jointes
Le Protocole SMTP
 Simple Mail Transport Protocol
 Il permet d'envoyer des messages texte ASCII vers des hôtes disposant
de services de courrier.
 Il utilise le port TCP 25
 Il et est décrit dans la RFC 821.
Les dernières RFC concernant SMTP et le format des messages sont les
RFC 2821 et 2822.
Les commandes SMTP
Les réponses du serveur SMTP
Exemple de dialogue SMTP
Extension SMTP-Auth

 SMTP-AUTH est une extension du protocole SMTP. C'est un


protocole de transfert des courriels sur Internet qui inclut
une étape d'authentification au cours de laquelle le client se
connecte explicitement au serveur (ou relais) pour l'envoi de
courriers (d'emails).

 Les serveurs qui supportent le protocole SMTP-AUTH (qui


peuvent dialoguer en usant d'une authentification préalable)
peuvent être paramétrés pour n'accepter que des clients
capables de s'authentifier (clients possédant cette extension)
et ainsi certifier d'une autorisation d'accès pour ces derniers.
ESMTP (Extended SMTP)
 Il existe une extension de SMTP appelé ESMTP . Ces extensions sont
décrites dans de nombreuses RFC :

 RFC 1651 et 1869 pour les commandes optionnelles


 RFC 1652 pour le transport des messages contenant des caractères 8 bits
 RFC 1830 pour le transport de binaires ou de gros messages
 RFC 1985 pour l'émission des messages en attente
 RFC 1891 à 1894 pour l'accusé de réception
 RFC 1870 pour la déclaration de la taille des messages
 RFC 2222 pour l'authentification des clients...

 Tout les serveurs de Mail ne supportent pas forcément ces extensions.


Un serveur ESMTP acceptera la commande EHLO au lieu de HELO pour le
début de la connexion.
 Local Mail Transfer Protocol (LMTP, protocole local de transfert de
courrier) est une variante de ESMTP. LMTP est défini dans la RFC
2033
Les logiciels Serveurs SMTP

 Sous Linux : (MTA Uniquement)


 SendMail
 PostFix
 Exim

 Sous Windows : (Solutions Complètes)


 Exchange (Windows Serveur)
 Notes
MDA : Mail Delivery Agents
 Le Service SMTP ne délivre pas lui-même les
messages dans les boîtes aux lettres ,il est associé
à d’autres logiciels.
 Le MDA chargé de gérer le stockage des messages
sur les disques, et permet l’application de
nombreux filtres (AntiSpams, Antivirus etc …)
 Exemple pour Postfix :
 Procmail
 MailDrop
Client de Messagerie
 Clients POP/IMAP :
 Outlook, Outlook Express, Windows Live Mail
 Eudora
 ThunderBird
 IncrediMail
 …
Le Protocole POP3
 POP3 est décrit dans la RFC 1939
 Il utilise TCP comme protocole de transport sur le port 110.
 POP3 n'est utilisé que pour télécharger les messages du serveur vers la
station de travail, pour l'envoi des messages on utilise toujours SMTP
Le Protocole POP3

Le serveur répond simplement par +OK ou -ERR si la commande à provoqué une erreur.
Le Protocole IMAP 4
 Contrairement à POP, IMAP permet de manipuler les messages
directement sur le serveur
 Ces principales fonctionnalités sont les suivantes :
 Accéder et manipuler des portions de messages sur le serveur
sans avoir à les télécharger
 Voir les messages et les pièces jointes sans les télécharger
 Télécharger tous les messages pour les consulter hors
connexion
 Créer, supprimer et renommer une boîte aux lettres
 Vérifier l'arrivée de nouveaux messages
 Supprimer des messages de la boîte aux lettres
 Reconnaître les en-têtes RFC 822 et décoder les messages
MIME
Le Protocole IMAP 4
 IMAP4 utilise le port TCP 143 et est décrit dans les RFC 1731, 2060,
2086, 2087, 2088 et 2095
 Tout comme POP3, IMAP4 ne spécifie pas de méthode d'envoi de
courrier. Cette fonctionnalité doit être gérée par un autre protocole
comme SMTP
Paramétrage d’un Client POP
Principe de fonctionnement
MTA MTA
SMTP

SMTP

MDA
LMTP

UA
UA
POP/IMAP

MAA
Le WebMail
L’ UA est remplacée par une application Serveur accessible en HTML via
un navigateur standard.
Le client n’a donc pas besoin d’installer une application particulière sur
sa machine et peut consulter ses messages à partir de n’importe quel
poste disposant d’un navigateur.
C’est l’application Serveur WebMail qui interroge les boîtes aux lettres à
l’aide du protocole IMAP.

IMAP 4 HTTP

Boîtes aux lettres Serveur WebMAIL

Exemple: gmail.com, mail.yahoo.com, hotmail.com, mail.uninet.cm, etc.


Travaux pratiques
1. Paramétrez un client de messagerie: soit Outlook express déjà
présent dans votre système Windows, ou téléchargez et installez
Thunderbird. Il s’agira de transférer en local sur votre poste de
travail votre boite mail du webmail yahoo, gmail ou hotmail.
2. Installez un server de messagerie sur votre Debian(SMTP,
POP/IMAP)
3. Testez en local votre système de messagerie installé (création d’un
email, envoi et réception de mails)

69
❖ Services Réseau
DNS, Active Directory (Samba4), DHCP
Web, Proxy Web, Archivage
FTP, NFS, E-Mail, iSCSI
VPN, Rsyncd, iSCSI, RDP
SSH, Cluster (DRBD, Corosync, Pacemaker, PCS)

70
Les ateliers
 Atelier groupe 1: Web, Proxy Web, Archivage
 Atelier groupe 2: VPN, Rsyncd, RDP, SSH
 Atelier groupe 3: FTP, NFS, iSCSI
 Atelier groupe 4: Cluster (DRBD, Corosync, Pacemaker, PCS), SSH
 Atelier groupe 5: DNS, Active Directory (Samba4), DHCP

Consigne pour la réalisation des ateliers:


a. Les étudiants sont organisés en Atelier ou Groupe de travail, de façon à couvrir
les 5 ateliers ci-dessus
b. Chaque groupe prépare son atelier en terme d’exposé et de configuration
pratique sur son environnement Linux (Debian ou Ubuntu de préférence). Retrouver la
documentation en ligne ou des tuto pour la réalisation de l’atelier
c. Chaque groupe aura 30min pour présenter son travail
❖ Networking Configuration
Programme  Attribution dynamique et statique d'une adresse IP
 Outils de diagnostic des couches réseau, transport et application
 Compilation des applications Procédure de compilation GNU
 Remise locale des messages : Alternatives à la messagerie
❖ Capture et Analyse des Trames Réseaux
 Bibliothèque libpcap
 Utilisation de l'outil tcpdump
 Utilisation de l'application Wireshark
❖ VoIP
 Contraintes de la VoIP
 Signalisation et protocoles
 CODECS audios et vidéo
 Protocoles de transport (UDP, TCP, RTCP, RTCP)
 Protocole SIP (SIPS) : Architecture, méthodes, réponses, Adressage,
modes de transmission, transport flux média, interconnexion
SIP/GSM
 Protocoles SDP, SCCP
La voix IP
Plan :
Définitions

Fonctionnement

structure

Les équipements

Protocoles

Sécurité

Les types

Avantages et inconvénients
Définitions
La Voix sur IP est une technologie qui permet
d’acheminer, grâce au protocole IP, des paquets de
Fonctionnement données correspondant à des échantillons de voix
numérisée
structure
La VoIP est utilisée dans Skype, Windows live Messenger,
ZOOM, Whatsapp, et d’autre logiciels professionnels de
Vidéoconférence.
Les
Cette technologie est notamment utilisée pour supporter
équipements
le service de téléphonie IP (ToIP)
Protocoles

Sécurité
Signaux Signaux
vocaux digitaux
Les types

Avantages et
inconvénients
Le principe de fonctionnement de la VoIP
Définitions
La ToIP permet de téléphoner sur un réseau IP, cette téléphonie
s’effectue grâce à un IPBX : Autocommutateur IP
Fonctionnement La ToIP permet d’utiliser tous les services déjà présent en
téléphonie classique.
Avec la ToIP, il est possible de téléphoner sur une ligne
structure
analogique depuis une ligne numérique (et inversement)

Les
les codecs audio de l'émetteur procèdent à la
équipements
numérisation et à la compression de la voix.

Protocoles Les données numérisées sont transmises dans des paquets


IP jusqu'au destinataire.
Sécurité
L'opération inverse s’est produite chez le destinataire. A
savoir la décompression et la restitution de la voix.
Les types
le numéro de séquence permet de reclasser les paquets
dans l'ordre d'origine.
Avantages et
inconvénients
Les 3 facteurs principaux agissant sur la qualité de la voix
Définitions (VoIP/ToIP)

• Latence
Fonctionnement • Gigue
• Paquets perdus
structure La latence désigne le délai entre le moment où une information
est envoyée et celui où elle est reçue.
Les Une gigue c'est la variation de délai, c'est la constante qui permet
équipements de préserver la synchronisation entre l'émetteur et le récepteur.
Et les paquets perdus sont les paquets perdus..
Protocoles
La structure de la VoIP se compose des quatre blocs suivants :

Sécurité • En-tête indiquant sa source et sa destination;


• Numéro de séquence; permet la synchronisation entre l’émetteur
et le récepteur.
Les types
• Bloc de données; comporte les données à transmettre.
• Code de vérification des erreurs ; permettant la vérification de la
Avantages et donnée reçue.
inconvénients
Définitions Pabx
Fonctionnement

structure
Routeur
Les
équipements
Switch
Protocoles

Sécurité Téléphone Ip
Les types

Avantages et Un ordinateur
inconvénients
Définitions

Fonctionnement

structure

Les
équipements

Protocoles

Sécurité

Les types

Avantages et
inconvénients
•Les principaux protocoles utilisés pour l'établissement de
Définitions connexions en Voix sur IP sont:

1-Protocole SIP :
Fonctionnement

 SIP est un protocole de signalisation appartenant à la couche


structure application du modèle OSI.

Les  Son rôle est d'ouvrir, modifier et libérer les sessions.


équipements
Un utilisateur peut se connecter avec les utilisateurs d'une
Protocoles session déjà ouverte.

SIP possède l'avantage de ne pas être attaché à un médium


Sécurité particulier et est sensé être indépendant du protocole de
transport des couches basses.

Les types

Avantages et
inconvénients
•Les principaux protocoles utilisés pour l'établissement de
Définitions connexions en Voix sur IP sont:

Fonctionnement

H323 :
structure
définit des échanges en pair à pair entre quatre types
Les d'équipements :
équipements
des terminaux de visiophonie ou de Voix sur IP,
Protocoles des passerelles entre le réseau téléphonique et le réseau de
Voix sur IP,
 des équipements offrant des services particuliers.
Sécurité des gatekeeper (centres de contrôle) pour l'administration de
la bande passante et faire fonction d’autocommutateurs
virtuels.
Les types

Avantages et
inconvénients
•Les principaux protocoles utilisés pour l'établissement de
Définitions connexions en Voix sur IP sont:

Fonctionnement
MGCP/MEGACO :

structure Le protocole MGCP (Media Gateway Control Protocol)


est complémentaire à H.323 ou SIP et traite des
problèmes d'interconnexion avec le monde téléphonique.
Les
équipements

Protocoles SCCP :

(Skinny Client Control Protocol)


Sécurité L’avantage de Skinny est qu’il utilise des messages prenant
très peu de bande passante, c’est pourquoi il est utilisé pour
Les types les communications entre les téléphones IP et le CallManager
ainsi que pour organiser une conférence.

Avantages et
inconvénients
•Les principaux protocoles utilisés pour l'établissement de
Définitions connexions en Voix sur IP sont:

Fonctionnement

Jingle :
structure

Basé sur le protocole de messagerie instantanée Jabber


Les
est un système standard et ouvert de messagerie
équipements
instantanée sécurisée et sans spam. Jabber est un
ensemble de protocoles fondé sur le langage XML.
Protocoles

Sécurité

Les types

Avantages et
inconvénients
•Les principaux protocoles utilisés pour le transport de la
Définitions voix sont :

RTP :
Fonctionnement

structure (Real Time Transport Protocol) est un protocole


de communication informatique. Ce n’est pas un réel
protocole de transfert et il n’est pas non plus vraiment en
Les temps réel puisqu'il n'y a pas de délai maximum garanti.
équipements

Protocoles
RTCP :

Sécurité Le protocole RTCP (Real Time Control Protocol) est


basé sur des transmissions périodiques de paquets de
contrôle par tous les participants dans une session.
Les types

Avantages et
inconvénients
Pour une bonne sécurité il faut éviter ces menaces:
Définitions

Fonctionnement

structure

Les
équipements

Protocoles

Sécurité

Les types

Avantages et
inconvénients
•Téléphonie IP PC à PC :
Définitions

Fonctionnement

structure

Les
équipements

Protocoles

Sécurité

Les types

Avantages et
inconvénients
•PC à poste téléphonique :
Définitions

Fonctionnement

structure

Les
équipements

Protocoles

Sécurité

Les types

Avantages et
inconvénients
•poste téléphonique à poste téléphonique :
Définitions

Fonctionnement

structure

Les
équipements

Protocoles

Sécurité

Les types

Avantages et
inconvénients
Définitions
avantages
Fonctionnement

structure L’accessibilité

Les
équipements Réduction des
couts
Protocoles

Gestion des Amélioration


Sécurité flexibilité de la
réseaux voix
productivité
Les types

Avantages et
inconvénients
Définitions

Fonctionnement Inconvénients :

structure

Les Dépendance de
équipements Fiabilité et l’infrastructure
qualité sonore technologique et
Protocoles support
Technologie
administratif
émergente et
exigeant :
constante
Sécurité évolution des
normes

Les types

Avantages et
inconvénients
Définitions

Fonctionnement

structure

Les
Application:
équipements
Asterisk sur Linux
Protocoles

Sécurité

Les types

Avantages et
inconvénients
Asterisk sur Linux
IPBX / Protocoles utilisés
 Comme en téléphonie classique, un PBX est nécessaire : ici c’est un IPBX.
 Dans le cas de ce cours cet IPBX s’appelle Asterisk
 Asterisk un logiciel gratuit qui permet de convertir un ordinateur ordinaire en
un serveur de voix sur IP riche en fonctionnalités
 Asterisk implémente les protocoles H.320 H.323 et SIP, ainsi que IAX (Inter-
Asterisk eXchange)
 IAX permet la communication entre deux serveurs Asterisk ainsi qu'entre
client et serveur Asterisk.

92
Sip : schéma protocolaire cas 1
 Il est possible de téléphoner à travers l’IPBX Asterisk. Le tel A envoie un
paquet à Asterisk qui le réenvoie au tel B.

93
Sip : schéma protocolaire cas 2
 Cas spécial : pas de
service de téléphonie
complémentaire (double
appel…) en
plus sur Asterisk.
 Ici, une fois l’appel en
place, Asterisk envoie une
trame« Direct RTP » et
l’appel se fait en
« Point à Point »
entre le Tel A et B.

94
 Un IPBX est nécessaire pour la distribution
d’appels : Asterisk qui est un logiciel doit être
installé sur une machine physique.
 Cette machine physique peut-être n’importe
quel ordinateur ayant un des OS suivant : Linux
et Unix.
 Il existe des solutions toutes packagées
Trixbox, Phonics sont des OS tout près avec
Asterisk à l’intérieur.

95
 Ilexiste des équipements embarquant
Asterisk comme Wisp-e ou encore Aastra
Mastra qui est hybride
Asterisk/propriétaire.

 Leséquipements avec Asterisk embarqués


coutent généralement plus chères mais plus
accessibles que l’installation manuelle

96
 Les postes téléphoniques peuvent être de
3 types : Numériques (ip-phone), Logiciels
(Softphones) ou analogiques (téléphones
classiques).
 Un IP-Phone, est un téléphone qui prend
directement en charge la ToIP, il dispose
d’un port RJ45 et est connecté à l’IPBX
 Un softphone est un logiciel simulant un
téléphone (grâce à un compte SIP): X-lite
 Il existe un adaptateur permettant de
connecter un téléphone analogique sur un
lien numérique : il faut renseigner les
identifiants d’un compte sip et le boitier
convertit le signal analogique en IP.
97
Distributions
 Trixbox
 Anciennement Asterisk@Home
 Sponsorisée par Fonality
 Distribution basée sur CentOS et centrée sur Asterisk
 Intègre différents logiciels développés par la communauté Asterisk :
FreePBX, FOP, SugarCRM, A2Billing…
 AsteriskNOW
 Développé par Digium
 Distribution Linux personnalisée intégrant Asterisk, son interface GUI, et tous les
packages requis pour un système Asterisk
 Installation et administration facilitées
VXIasterisk
Extensions

 Plugin développé par i6net


 Ajoute un navigateur VoiceXML (compatible 2.0 et 2.1) à Asterisk, base OpenVXI
 Payant : 100€ par port
 Festival
 Système de synthèse vocale (TTS)
 Open source (CSTR, université d’Edimbourg)
 Commande Asterisk : Festival(text, [intkeys])
 Flite
 Moteur de synthèse vocale open source (CMU Speech Group)
 Plus adapté aux configurations modestes
 Sphinx
 Logiciel de reconnaissance vocale (CMU Speech Group)
 Open source, licence BSD
 Intégré à Asterisk via AGI
 Asterisk Business Edition
 Intègre le logiciel de reconnaissance vocale LumenVox et le moteur TTS Cepstral
 Achat d’une licence séparée nécessaire pour activer ces produits
Gateways/Cartes compatibles
 Gamme de cartes PCI Digium
 Série TC : transcodage
 Série TE : cartes T1/E1, avec ou sans annulation d’écho (PCI ou PCI
Express)
 Série TDM : cartes FXO/FXS
 Série B : cartes BRI ISDN
 Autres cartes T1/E1 :
 OpenVox D110PG, D210P, D410P
 PhonicEQ PH-E100P, PH-E200P, PH-E400P
 Rhino R1T1, R2T1, R4T1
 Sangoma A101, A102, A104, A108
 Varion V401P-E1
 Potentiellement, toute gateway TDM/SIP ou TDM/H323
Hardphones et Softphones compatibles
 Hardphones :
 Cisco
 Snom
 Grandstream
 Sipura
 Thomson
 Polycom
 Linksys

 Softphones :
 X-Lite
 Idefisk (SIP et IAX2)
 Wengophone
 Bol SipPhone
 Kapanga
 Express Talk
 Snom360
 SJphone
 Windows Messenger
Box
 Asterisk Appliance
 Pour les PME (2 à 50 utilisateurs)
 Solution entièrement VoIP ou hybride
 Fourni avec Asterisk Business Edition et
AsteriskGUI
 LumenVox (reconnaissance vocale) et Cepstral
(TTS)
 Un an de support Digium
 5 ports Ethernet (4 LAN, 1 WAN)
 Jusqu’à 8 ports TDM
 Annulation d’écho
 Carte Compact Flash 1 Go
 8 Mo de mémoire Flash embarquée
 64 Mo de RAM embarquée
 VoIP seulement : $995
 4 FXS / 4 FXO : $1,540
 8 FXO : $1,595
Webographie

 Expérience d'un déploiement Asterisk dans une entreprise


française : http://people.via.ecp.fr/~alexis/asterisk/
 Informations générales concernant la VoIP/ToIP :
Wikipedia.com & pabx-fr.com
 Protocoles : http://www.panoramisk.com/43/asterisk-et-
transport-de-la-voix/fr/

103
Place à la pratique

CONFIGURATION D’UN CALL MANAGER EXPRESS


(avec le simulateur, voir le fichier de TP en annexe)
Programme ❖ System Startup
 Création d’un niveau d’exécution sur mesure avec applications spécifiques
 Réinstallation de GRUB après corruption
 Autres méthodes de chargement du noyau
❖ Services Réseau
 DNS, Active Directory (Samba4), DHCP
 Web, Proxy Web, Archivage
 FTP, NFS, E-Mail, iSCSI
 VPN, Rsyncd, iSCSI, RDP
 SSH, Cluster (DRBD, Corosync, Pacemaker, PCS)
❖ Filesystem and Devices
 Gestion et configuration des systèmes de fichiers
 Les sauvegardes au niveau Filesystem
 Sauvegardes, duplication et synchronisation de données
 Gestion des disques durs
❖ Advanced Storage Device Administration
 Création et exploitation d’un volume logique sur le disque RAID
 Extension du volume logique
 Logical Volume Manager (LVM)
Introduction

 Technologie principalement utilisée dans le


domaine de l'entreprise pour sécuriser ou bien
pour augmenter les performances des serveurs.
 Elle est parfois mise en place avec d’autres
technologies telles que le clustering afin d’obtenir
des performances encore plus grande ou bien
d’avoir une sécurité maximale.
Introduction
 Le but du RAID est de rassembler plusieurs
disques durs physiques en une seule unité
logique.
 Pour plusieurs disques utilisant la technologie
RAID, le système d’exploitation ne verra qu’un
seul disque que l’on pourra qualifier de « disque
virtuel ».
 Le RAID fonctionne donc grâce à un ensemble
(ou agrégat) de disques.
 Il existe plusieurs niveaux (ou configuration) de
RAID qui rassemblent différemment les données
sur l’ensemble des disques.
Introduction
 En fonction du niveau de RAID sélectionné on peut :
 additionner la capacité des disques durs pour former un disque
virtuel plus grand
 obtenir un disque virtuel plus performant
 mettre en place la tolérance de panne (c'est-à-dire sécuriser les
données)
 augmenter la capacité, les performances et la sécurité.
 La technologie RAID peut être mise en place au niveau
matériel ou niveau logiciel. Elle fonctionne avec des
disques dur utilisant l’interface PATA (Parallel Advanced
Technology Attachment), SATA (Serial Advanced
Technology Attachment) ou bien SCSI (Small Computer
System Interface).
le RAID 0 ou « stripping »

 Le RAID 0 est un agrégat (ensemble) de disques formé


d’au moins deux disques durs.
 les données sont réparties sur l’ensemble des disques
de l’agrégat. Cela améliore les performances en
lecture et en écriture.
 Si on copie un fichier de 99 Mo sur un agrégat composé
de 3 disques, alors le contrôleur RAID va diviser de
façon équitable le travail entre les trois disques qui
écriront chacun 33 Mo. Cela va donc multiplier le
débit par 3.
 De plus la capacité des disques s’additionne pour
former un disque virtuel de plus grosse capacité.
le RAID 0 ou « stripping
 Supposons que l’on crée un agrégat (en RAID 0) avec 3
disques durs ayant les mêmes caractéristiques :
 capacité de 160Go
 débit de 100Mo/s en lecture
 débit de 80Mo/s en écriture

Cet agrégat se comportera alors pour le


système d’exploitation comme un disque
dur virtuel de 480Go (3*160 Go = 480Go)
avec :
 un débit en lecture de 300 Mo/s
(3*100Mo/s)
 un débit en écriture de 240 Mo/s.
(3*80Mo/s)
le RAID 0 ou « stripping
 Si on crée un agrégat avec des disques possédant des
caractéristiques différentes alors les caractéristiques du disque le
moins performant sont utilisées

Disque 1 Disque 2 Disque 3 Disque 4

Capacité 300 Go 18Go 20Go 45Go


Débit en lecture 90Mo/s 160Mo/s 20Mo/s 35Mo/s

Débit en 82Mo/s 125Mo/s 20Mo/s 15Mo/s


écriture
 capacité : 4*18Go = 72Go
 débit en lecture : 4*20Mo/s = 80Mo/s
 débit en écriture : 4*15Mo/s = 60Mo/s
le RAID 0 ou « stripping
 Pour répartir les données sur l’ensemble des disques de la façon
la plus optimisée, la carte RAID (ou bien le système d’exploitation
dans le cas d’un RAID logiciel) doit les découper en petites unités
appelées segments
 Lorsque l’on met en place un niveau RAID 0, on doit spécifier la
taille de ces segments (ou block size, et parfois nommé chunk
size )
 Cette taille est un multiple de la capacité d’un secteur de disque
dur (soit 512octets)
 La taille sélectionnée va influencer sur les performances en
lecture et en écriture. Pour le stockage de gros fichiers, il est
recommandé de choisir une taille élevée (256Ko, ou plus) alors
que pour les petits fichiers une petite taille est à privilégier (ex. :
512octets, 1024 octets, …).
le RAID 0 ou « stripping
 Dans l’exemple ci-contre, on a crée un agrégat en mode RAID 0 à
l’aide de trois disques durs. On a sélectionné une taille de
segment de 3072 octets. Un segment occupe donc 6 secteurs de
disque dur (car 3072 octets = 6 * 512 octets).

• un nouveau document texte nommé « raid.txt » . On


souhaite le sauvegarder sur le disque. Sa une taille est de 8Ko
(soit 8000 octets).
• Le fichier est envoyé au contrôleur RAID qui le découpe en 3
segments de 3072 octets. Une fois le découpage des données
terminé, le contrôleur réparti les segments entre les trois
disques qui les écrivent en même temps.
• Le troisième segment n’est pas utilisé au maximum car il
contient uniquement 1856 octets (8000 octets – 2 * 3072 octets
= 1856 octets) sur les 3072. On perd donc un espace de
stockage de 3072 – 1856 = 1216 octets.
le RAID 0 ou « stripping
 Pour avoir un ordre d’idée des tailles de segments que l’on
rencontre généralement, voici une capture d’écran du BIOS de la
carte RocketRAID 1820 (carte RAID de marque HightPoint qui gère
les niveaux RAID 0, 1, 5, 10 et JBOD et qui possède 8 canaux SATA,
une carte récente donc). On remarque qu’elle permet de
sélectionner une taille de segments comprise entre 16Ko et 2048Ko.
le RAID 0 ou « stripping
 l’avantage du RAID 0 est une augmentation des
performances proportionnelle au nombre de disque et
ce sans perte de capacité.
 Cependant ce mode ne tolère pas les pannes (si un des
disques tombe en panne alors toutes les données
stockées sur l’agrégat sont perdues)
 Il induit une augmentation de la probabilité d’une
panne (plus il y a de disques plus il y a de chances
pour que l’un d’eux tombe en panne).
Le RAID 1

 Un système RAID 1 duplique les données sur tous les


disques.
 Tout comme le RAID 0, le RAID 1 nécessite un minimum
de deux disques durs pour fonctionner.
 Les disques ont un contenu identique ce qui implique
une perte d'espace proportionnelle au nombre de
disques rajoutés. En effet, si on met 3 disques de 40 Go
en RAID 1 alors les 40 Go écrits sur le disque 1 seront
copiés sur les deux autres disques. On perdra donc 2 *
40 = 80 Go d'espace disque sur la capacité totale des 3
disques (120 Go).
Le RAID 1
 En cas de dysfonctionnement de l'un des disque dur ,le
contrôleur RAID utilisera alors uniquement les disques en
état de marche.
 Le RAID 1 apporte donc la tolérance de pannes.
 L'utilisation du RAID 1 est particulièrement recommandée
sur des serveurs stockant des données sensibles qui doivent
rester fonctionnels 24 heures sur 24.
 Lorsque l'on met en place un RAID 1 avec des disques dur de
capacités différentes, alors la capacité de stockage de
l'ensemble en RAID 1 sera celle du disque de plus faible
capacité.
Le RAID 1
 Lorsqu'un accès en lecture est réalisé sur un ensemble de disques en
mode RAID 1, alors tous les disques lisent chacun une partie de la
données ce qui améliore grandement les performances en lecture.
 Lors de l'écriture sur un ensemble de disques RAID 1, les performances
ne sont pas améliorées. Les disques vont écrire les données de façon
synchronisée et ce au fur et à mesure que les données vont arriver au
contrôleur.
 Le travail lors d'un accès en écriture n'est donc pas divisé entre les
disques mais est commun à tous les disques. Le débit en écriture d'un
ensemble RAID 1 est donc le même que celui d'un disque seul.
 Dans un ensemble RAID 1, contenant 5 disques les accès en lecture
seront grandement améliorés alors que les accès en écriture
stagneront.
Le RAID 1
 Le but du RAID 1 est d'offrir une sécurité maximale
aux données stockées sur une machine. C'est
pourquoi certaines cartes RAID incluent plusieurs
contrôleurs RAID (un par disque) afin que malgré la
perte d'un contrôleur les données soient toujours
accessibles. Dans ce cas on parle de " duplexing
seuls 15 Go sont exploitables car le plus
petit des disques utilisés à une capacité
de 15 Go. Etant donné que 4 disques sont
utilisés, les données ne seront pas perdues
même si 3 des 4 disques tombent en
panne. De plus grâce au « duplexing », le
système supporte la perte d’un contrôleur
ou plus.

RAID 1 en « duplexing ».
Le RAID 1
 Dans la majorité des cas, la carte RAID ou le circuit intégré (sur
certaine cartes mères d’entrée de gamme, le contrôleur IDE intégré
gère le RAID) ne possède qu’un seul contrôleur. On parle alors de
« mirroring ».
 Le schéma (ci-à droite) présente un RAID 1 en « mirroring ». Seul 25
Go sont exploitables et les performances en lecture sont multipliées
par deux.
Le RAID 1

 Il existe deux types de RAID 1 différents.


 Le « duplexing » étant méconnu et très peu utilisé,
une certaine confusion s’est crée à propos du RAID 1.
 Le « mirroring » n’est pas synonyme de RAID 1
(contrairement à ce qu’on peut voir dans des forums
sur la toile et même dans les manuels de certains
constructeurs de carte RAID !).
Le RAID 2
 Le RAID 2 est une alternative au RAID 1. En effet, le RAID 2 est
identique au RAID 1 sauf sur un point :
 lors des opérations de lecture, un seul des disques travaille
ce qui permet aux autres disques de se « reposer ».
 Les autres disques étant moins sollicités, cela augmente leur
durée de vie.
 Le RAID 2 implémente un système de corrections des erreurs.
Cependant, cela est devenu inutile car tous les disques durs
SCSI intègrent dorénavant leur propre système de correction
d’erreurs.
 Le RAID 2 augmente donc la fiabilité du RAID 1 mais induit une
baisse des performances. Il a peu été utilisé et n’est plus
utilisé de nos jours à cause de son obsolescence.
Le RAID 3
 Le RAID 3 apporte les avantages du RAID 0 (amélioration
des performances) et du RAID 1 (tolérance de panne).
 Le mode RAID 3 fonctionne avec un minimum de trois
disques. A l’instar du RAID 0, tous les disques sauf un qui a
une tâche spéciale se divisent les opérations de lecture et
d’écriture ce qui augmente les performances.
 En RAID 3, la taille des segments n’est pas modifiable et
est fixée à 512 octets (en RAID 3 : un segment = un
secteur de disque dur = 512 octets). L’un des disques est
un disque de parité.
Le RAID 3
 La tolérance de panne grâce à la parité
 La parité est un processus algorithmique utilisant l’intégrale de parité
inventée par Gérard Langlet. Ses applications sont très nombreuses en
informatique et en particulier dans le domaine du RAID. Avec un ensemble
RAID3,
 lors de chaque opération d’écriture, les données vont êtres réparties entre
tous les disques (sauf le disque de parité) de façon équitable.
 Le fonctionnement de la parité utilise la fonction « Ou exclusif » pour
construire sa parité
XOR
A B Résultat
0 0 0
0 1 1
1 0 1
1 1 0
Le RAID 3
 Exemple de fonctionnement. Soit 3 disques dont un parité.
 Sur le 1er disque et entré la valeur 10 (1010) et sur le
deuxième la valeur 7 (0111). La parité entré va être
 SOS = valdisk1 Xor valdisk2 soit

Disk1 1 0 1 0
Disk2 0 1 1 1
SOS 1 1 0 1
Le RAID 3
 Supposons maintenant que le disk1 est H.S
 La valeur sur le disk 1 va être:
 ValDisk1 = SOS Xor ValDisk2

SOS 1 1 0 1
Disk2 0 1 1 1
Disk1 1 0 1 0
Le RAID 3
 Au moment où les données sont écrites, des informations indiquant
sur quel disque ont été stocké les données sont enregistrées dans le
disque de parité (informations de parité)
 Si l’un des disques contenant des données tombe en panne, alors le
disque de parité et les disques restant permettent de reconstruire
les données qui étaient stockées sur le disque endommagé.
Le RAID 3
 Lorsque le disque de parité tombe en panne le système continue de
fonctionner en mode RAID 0 avec les disques restants qui contiennent
les données. Lorsque l’on rajoute un nouveau disque de parité, les
informations de parité sont reconstruites et le RAID 3 redevient actif.

Le RAID 3 apporte donc la tolérance de panne car le système supporte la perte d’un disque quel
qu’il soit (données ou parité). En revanche si deux disques durs tombent en panne
simultanément, les données sont perdues.
Le RAID 3
 Fonctionnement du RAID 3 pour un accès en lecture
•Tous les disques (sauf le disque de parité)
travaillent de concert ce qui augmente
fortement les performances.
•Dans l’exemple ci-contre, on veut lire un fichier
nommé « film.avi » situé sur un ensemble RAID 3
composé de trois disques. Les données du fichier
ont été réparties sur les deux premiers disques.
Le disque de parité n’est pas sollicité lors des
opérations de lecture.
•Dans le cas d’un accès en lecture d’un ensemble
RAID 3 composé de trois disques se comporte
comme un ensemble RAID 0 composé de 2
disques.
•Lors de la lecture du film les deux disques
travaillerons en parallèle : chacun lisant une
partie des données, ce qui va quasiment
multiplier les performances par deux.
Le RAID 3
• Fonctionnement du RAID 3 pour un accès en écriture
 Le raid3 a un gros défaut.
 A chaque fois qu’on écrit un fichier sur le disque, il est
découpé en morceaux qui sont copiés en même temps sur
chacun des disques (sauf le disque de parité). Et à chaque
écriture sur l’un des disques, il y a une écriture sur le
disque de parité.
 Cela signifie que le disque de parité travaille plus que les
autres disques. Par exemple, dans un RAID 3 composé de 3
disques, le travail du disque de parité est deux fois plus
important que celui des autres disques.
 De même dans un système RAID 3 composé de 6 disques,
les accès en écriture au disque de parité seront cinq fois
plus importants que ceux des cinq premiers disques. Cela
est généralisable, ainsi lorsqu’on a un ensemble composé
de n disques, les accès au disque de parité sont (n-1) fois
plus nombreux que pour les autres disques.
Le RAID 3
• Fonctionnement du RAID 3 pour un accès en écriture
 Le disque de parité se
révèle être un véritable
goulot d’étranglement
au niveau des
performances en
écriture.
 Comme sa charge de
travail est plus élevée,
le disque de parité à
tendance à tomber en
panne très
fréquemment.
Le RAID 3
• Exemple
 On met en place un RAID 3 composé de 3 disques
durs. Le système d’exploitation verra un seul disque
dur d’une capacité de 120 Go. Cela peut sembler
étrange car la capacité physique totale des trois
disques durs est de 215 Go (75 Go+ 60 Go + 80 Go =
215 Go).

Pour calculer la capacité utilisable d’un ensemble


RAID 3, il faut prendre la capacité du plus petit des
disques (soit 60Go dans notre exemple) et la
multiplier par le nombre de disques – 1

Au niveau des performances, l’accès en lecture sera


quasiment multiplié par deux par rapport à un
disque seul. En outre, si l’un des 3 disques tombe en
panne alors aucune donnée ne sera perdue.
Le RAID 3

 Le RAID 3 permet donc d’augmenter les


performances tout en gérant la tolérance de panne
 Les performances en lecture sont améliorées
proportionnellement au nombre de disques (plus il y
a de disques, plus les performances en lecture
augmentent).
 Malgré une légère amélioration des performances en
écriture (elle sont bridées par le disque de parité)
ce système n’est pas plus intéressant que le RAID 1.
En effet, sa fiabilité est moindre car seul la perte
d’un seul disque est possible et car le disque de
parité s’use plus vite.
le RAID 4

 Ce mode nécessite au moins trois disques et est très proche du


RAID 3.
 La seule différence notable avec le RAID 3 est l’organisation des
données.
 Avec le RAID 4, la taille des segments est variable et se modifie
en temps réel. Cela implique que les informations de parité
doivent être mise à jour à chaque écriture afin de vérifier si la
taille des segments a été modifiée.
 Dans un système RAID 4, le disque de parité devient donc un
facteur encore plus limitant lors des opérations d’écriture.
 Les performances en lecture sont les même qu’avec le RAID 3
(c'est-à-dire excellentes). Le mode RAID 4 gère donc la tolérance
de panne et apporte un gain en lecture mais pas en écriture.
Généralement on lui préfère le RAID 5.
le RAID 5

 la configuration RAID 5 répartie la parité sur


l’ensemble des disques ce qui élimine le goulot
d’étranglement qu’est le disque de parité en RAID 3
et en RAID 4.
 Un autre avantage de répartir la parité sur chacun
des disques est que les disques travaillent tous
autant. Cela empêche l’usure prématurée de l’un
des disques (comme c’est le cas avec le disque de
parité en RAID 3 et surtout en RAID 4).
le RAID 5
 Le RAID 5 écrit donc simultanément les données sur
plusieurs disques ce qui améliore les performances en
lecture et en écriture.
 Par rapport à un disque seul, les performances d’une
grappe RAID 5 utilisant n disques seront (n-1) fois plus
élevées (en effet, l’un des disques doit écrire la
parité, la donnée écrite est donc répartie sur les n-1
disques restants).
 Tout comme pour le mode RAID 0, on doit sélectionner
une taille de segment adaptée lorsque l’on met en
place un niveau RAID 5.
le RAID 5
 Dans l’exemple suivant on a crée un grappe RAID 5
avec quatre disques durs identiques ayant une
capacité de 80 Go chacun.
 Au final seulement 240 Go sont exploitables, ce qui
représente les ¾ de l’espace disque total (320 Go).
 En fait l’espace d’un disque entier soit 80 Go est
nécessaire afin de stocker les informations de
parité. En RAID 5, on peut calculer la capacité
utilisable de la manière suivante :

 Capacité
utilisable = (taille du disque le plus petit ) *
(nombre de disques – 1)
le RAID 5
le RAID 5
 De par ses nombreux avantages le RAID 5 est très
populaire dans le monde professionnel car il apporte
la tolérance de panne tout en conservant
d’excellentes performances en lecture et en écriture.
 De plus si on utilise une interface qui supporte le
branchement à chaud ou "hot plug" (SCSI ou Sata), il
n’est même plus nécessaire d’éteindre le serveur.
 Bien entendu la mise en place d’un ensemble RAID 5
fait perdre de l’espace disque (en fait l’espace
réservé à la parité qui représente la taille d’un
disque).
 La répartition de la parité sur l’ensemble des disques
entraîne une remise en ordre un peu lente lorsqu’un
disque dur est échangé suite à une panne.
l'orthogonal RAID 5
 L’Orthogonal RAID 5 est une technique
logicielle crée par IBM.
 Ce mode est identique au RAID 5 dans toutes
ses fonctionnalités.
 Sa seule différence notable est l’utilisation
d’un contrôleur par disque.
 Cela permet d’augmenter la sécurité des
données. En effet, même si l’un des
contrôleurs tombe en panne les données sont
sauves.
le RAID 6
 Le RAID 6 met en place une double
redondance des données de parité.
 Les informations de parité sont stockées en
doubles exemplaires.
 Tout comme pour le RAID 5, les informations
de parité sont réparties équitablement sur
l’ensemble des disques.
 La double redondance des données permet la
perte de deux disques sans qu’aucune
donnée ne soit perdue.
le RAID 6
 Le RAID 6 nécessite au moins quatre disques durs
pour fonctionner.
 En ce qui concerne la capacité utilisable de
stockage, on perd l’espace de deux disques. Donc
dans un système utilisant n disques, la capacité
utilisable est définie par la relation suivante :
 Capacité utilisable = (taille du disque le plus petit ) *
(nombre de disques – 2)
 Les performances en lecture comme en écriture sont
augmentées.
 Avec un nombre de disques équivalents, un
ensemble RAID 6 sera moins performant qu’un
ensemble RAID 5 (car un disque de plus est utilisé
pour la parité).
le RAID 7
 Ce mode est utilisé pour avoir un niveau de
sécurité ou des performances très supérieures
aux autres modes RAID.
 Il utilise un grand nombre de disques (avec un
maximum de 48 disques).
 On peut définir manuellement le nombre de
disques dédiés au stockage de la parité et au
stockage des données.
 Le nombre de disques que le système peut
perdre est proportionnel au nombre de disques
dédiés au stockage des informations de parité.
le RAID 7
 Le RAID 7 fait appel à une carte microprocesseur
qui calcule la parité, la gestion du disque et qui
gère la surveillance des disques en temps
réel. Tous les transferts de données se font en
mode asynchrone ce qui augmente de 1,5 à 6 fois
les performances en écriture.
Il est peu utilisé car il
très coûteux en
équipement et difficile à
mettre en place.
Conclusion

 Pour conclure, les modes les plus intéressant sont les modes 0, 1 et 5.
Les autres modes sont peu ou pas utilisés car :
 le RAID 2 est obsolète
 le RAID 3 et 4 utilisent un disque de parité ce qui crée un goulot
d’étranglement.
 Le RAID 6 est onéreux
 le RAID 7 est très onéreux et difficile à mettre en place
Conclusion
 Voici un petit tableau comparatif des trois modes
les plus intéressants fonctionnant avec 10 disques
durs d’une capacité unitaire de 120 Go et ayant
un débit réel en lecture/écriture de 70/50 Mo/s.
RAID 0 RAID 1 RAID 5
capacité 1200 Go (100 120 Go (10 %) 1080 Go
%) (90%)
débit en 700 Mo/s 700 Mo/s 620 Mo/s
lecture
débit en 500 Mo/s 50 Mo/s 450 Mo/s
écriture
Tolérance de aucun jusqu’à 9 un disque
panne(nombr disques
e de disques)
Place à la pratique
Programme ❖ System Startup
 Création d’un niveau d’exécution sur mesure avec applications spécifiques
 Réinstallation de GRUB après corruption
 Autres méthodes de chargement du noyau
❖ Services Réseau
 DNS, Active Directory (Samba4), DHCP
 Web, Proxy Web, Archivage
 FTP, NFS, E-Mail, iSCSI
 VPN, Rsyncd, iSCSI, RDP

 SSH, Cluster (DRBD, Corosync, Pacemaker, PCS)


❖ Filesystem and Devices
 Gestion et configuration des systèmes de fichiers
 Les sauvegardes au niveau Filesystem
 Sauvegardes, duplication et synchronisation de données
 Gestion des disques durs
❖ Advanced Storage Device Administration
 Création et exploitation d’un volume logique sur le disque RAID
 Extension du volume logique
 Logical Volume Manager (LVM)
Clusterisation,Haute disponibilité

Un cluster haute disponibilité (par opposition à un cluster de


calcul) est une grappe d'ordinateurs dont le but est d'assurer
un service en évitant au maximum les indisponibilités

15/03/2022 150
Sommaire
 Présentation : qu’est ce que le clustering ?
 Problématique (problèmes d’architecture)
 Les clusters d’applications
 architecture
 algorithmes utilisés
 librairies
 exemples
 Les clusters de fichiers
 conception
 structure des fichiers
 statistiques
 Conclusion
15/03/2022 151
Qu’est ce que le clustering ?
Définition :

Méthode permettant d’accélérer l’exécution d’un programme


informatique en divisant celui-ci en multiples segments exécutés
simultanément sur différentes machines

15/03/2022 152
Quelques mots de vocabulaire
Node :

Poste client connecté au réseau et capable d’exécuter du


code informatique sous l’ordre d’un serveur.

Node Server :

Serveur du cluster d’ordinateurs. Il est responsable de la


répartition du travail entre les différents postes clients
ainsi que de leur synchronisation. Il récupère également
les erreurs et les résultats des calculs.

15/03/2022 153
Problématique

• Exécution d’une application partagée entre


plusieurs ordinateurs d’un réseau
• Hétérogénéité des différentes machines (Sun,
GNU/Linux, Windows serveur, …)
• Partage de la charge
• Temps de latence

15/03/2022 154
1ère partie

Les clusters d’applications

15/03/2022 155
Pourquoi des clusters d’application ?

 Possibilité d’utiliser les ressources matérielles de


machines peu utilisées.
 Capacités grandissante des réseaux informatiques
 Prix du matériel informatique en constante baisse.
 Compatibilité et hétérogénéité

 Lenteur des réseaux informatique


 Administration système des processus

15/03/2022 156
Comparaison
Architecture multiprocesseurs
 coût important
 maximum de 16 processeurs (systèmes Linux)
 calculs rapides
 accès facile à l’application et à la mémoire

Architecture en clusters
 utilisationde machines du réseau
 coût de mise en œuvre relativement abordable
 architecture client serveur difficile à mettre en place
 nécessite une bande passante importante

15/03/2022 157
Architecture multiprocesseurs
Concepts :

 lamémoire physique est accessible depuis tous les


microprocesseurs
 lecode source résidant en mémoire est lui aussi visible
par tous les microprocesseurs
 lenoyau se charge de répartir les calculs importants (et
prévus à cet effet) entre les processeurs

15/03/2022 158
Exemple d’architecture multiprocesseurs

Répartition de l’application Code résident dans


la mémoire
commune aux trois
processeurs

CPU 1 CPU 2 CPU 3

Mémoire
15/03/2022 159
Architecture multiprocesseurs
Bilan :
 mise en place aisée
 coût important
 limites de développement
 problème de redondance
 nécessite du code écrit pour être exécuté sur
plusieurs processeurs en parallèle
 accès à la mémoire
 accès au code

15/03/2022 160
Architecture en clusters

Concepts :
 partage de l’exécution d’une application entre
plusieurs machines d’un réseau
 redondance
 haute disponibilité
 accélération des temps d’exécution de façon
significative
 problème de charge réseau : échange de messages
 temps de latence

15/03/2022 161
Architecture en clusters

Application

Echange de messages

Node Server Node Node

CPU CPU CPU

Mémoire Mémoire Mémoire

15/03/2022 162
Comment ça marche ?

Algorithmes utilisés :
 méthode de partage du calcul des boucles d’exécution
(for, while)
 délégation des calculs
 redondance

 échange de messages

15/03/2022 163
Partage du calcul des boucles

Exemple de Programme C séquentiel :

int sum = 0;
for (i = 0; i < 1000; i++)
{
sum += i * 50;
}

15/03/2022 164
Partage du calcul des boucles
Programme partagé dans un cluster de deux machines :

Server Node Node


int nb_node = 2; int nb_node = 2;
int num_node = 0; int num_node = 1;
int sum = 0; int sum = 0;
create_cluster_group (« cal »);
join_cluster_group (« cal »);
for (int i = 0; i < 1000; i += nb_node) for (int i=num_node; i<1000; i +=nb_node)
{ {
sum += i * 20; sum += i * 20;
} }
return sum;
sum += get_result ();
15/03/2022 165
Partage du calcul des boucles

Bilan :
 nécessite un code approprié
 écriture des sources plus difficiles
 langages supportés : C et Fortran
 partage d’information sur le réseau
 l’application« fork » un processus d’une machine
à une autre machine du réseau

15/03/2022 166
Émission de messages

Concepts :
 application client / serveur
 émission des informations propres à un processus
vers la node cliente afin que cette dernière
puisse exécuter le code (« fork » sur le réseau )
 librairies portables
 bande passante importante

15/03/2022 167
Émission de messages

Librairies permettant de passer des messages :

 PVM (Parallel Virtual Machine)

 MPI (Message Passing Interface)

 AFAPI (Aggregate Function API)


15/03/2022 168
PVM (Parallel Virtual Machine)

 Passage de messages
 Librairie libre de droits
 Portable
 Implémentée dans les couches supérieures du modèle OSI
(au dessus des sockets)
 Réseaux hétérogènes

15/03/2022 169
MPI (Message Passing Interface)

 Nouveau standard dans les librairies de passage de


messages
 Programmation simplifiée
 Différentes implémentations :
 LAM (Local Area Multicomputer) MPI 1.1
 MPICH (MPI CHameleon) MPI 1.1
 AFMPI (Aggregate Function MPI) MPI 2.0

15/03/2022 170
AFAPI (Aggregate Function API)

 Normalisation de la librairie PAPERS (Purdue’s


Adapter for Parallel Execution and Rapid
Synchronisation)
 Proche du matériel
 Rapide

15/03/2022 171
Émission de messages
Bilan :
 protocole haut niveau de communication client /
serveur afin d’implémenter les systèmes en cluster
 portable et fonctionnant sur des systèmes hétérogènes
 gourmand en bande passante (entre 20 et 50 Mbits par
seconde)
 demande de faible temps de latence (moins de 200 ms)

15/03/2022 172
Exemples d’utilisation

Earth Simulator
 Architecture NEC SX
 640 nodes
 8 processeurs par node
 16 Gb de mémoire par node
 5120 processeurs
 40 téra instructions par seconde
 10 téra octets de mémoire
 700 téra octets de disque dur
15/03/2022 173
Exemples d’utilisation

ASCI White

processeur IBM RS6000 SP Power3 à 375 MHz


12,3 trillions d’opérations par seconde
 8192 processeurs
6 téra octets de mémoire vive

15/03/2022 174
2ème partie

Les clusters de fichiers

15/03/2022 175
Les clusters de fichiers

 mise en place de sauvegardes fiables et de gros


volume
 sécurité

 redondance

 multi-sites

 pratiques

 facilement administrables

15/03/2022 176
Les clusters de fichiers
Exemple MOPI (Mosix)

Principes :
 partage de fichiers entre plusieurs nodes
 fragments de données indépendants
 stockages de fichiers de grande taille
 redondance
 accès transparent aux fichiers

15/03/2022 177
Les clusters de fichiers
MFS : Mosix File System
Méthode d’accès aux fichiers :

 un ou plusieurs serveurs dédiés


 Meta Manager (MM) dont le rôle est de gérer les
fichiers, les segments mémoire, les suppressions, …
 Migration des processus

15/03/2022 178
Structure des fichiers
MetaUnit : contrôle les inodes et
les emplacements des fichiers

DataStructure : Plus petite unité


de stockage (1 Mb à 4 Gb)
autonome

15/03/2022 179
Composants MOPI

Niveau utilisateur et
application

Démons
Interface shell

Niveau système

15/03/2022 180
Statistiques
Comparaison MFS / NFS :

 60 stations de travail
 Architecture Pentium III 1,3 GHz 512 Mo disque
dur, 20 Go disque dur.

Access Method
Block
Local MFS NFS
1K 14,4 18 162
4K 13,2 15,4 162
8K 13 15 161,6
16 K 13 15 162
32 K 13,8 15,4 162,8
64 K 14,2 16,4 163
15/03/2022 181
Conclusion clusters de fichiers

 stockage massif de données


 haute disponibilité
 sécurité
 rapidité

15/03/2022 182
Quelques références

Sous Linux :

 beowolf :
 Optimisation du taux d’occupation de la bande
passante
 Nombre important de nodes sur le réseau local
 mosix :
 Nécessite de patcher le noyau linux
 Load balancing dynamique

15/03/2022 183
Conclusion

Le clustering est particulièrement adapté pour


les applications industrielles nécessitant des
temps de calculs importants : génome, calculs
d’images 3D, …
Il est également utile pour le stockage sécurisé
d’un volume important de données.
Ces points font des clusters un axe de
développement très prisé par le monde
industriels.

15/03/2022 184
Haute disponibilité
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en oeuvre
Bilan
15/03/20
185
22

OpenVz, Pacemaker
Problématique de départ
 Sécuriser les services de la DMZ
- Emission des messages électroniques (SMTP)
- Serveurs web institutionnels
- Machines d’accès et de transfert de fichiers
- Serveur d’agendas (OBM, Phpgroupware)
 Renouvellement de la solution existante
- Mécanismes de haute disponibilité
- Virtualisation
15/03/20
186
22

OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
15/03/20
187
22

OpenVz, Pacemaker
Technologie de virtualisation

 Ensemble de techniques et d’outils permettant de faire


tourner plusieurs systèmes d’exploitation sur un serveur
 Partage de ressources
 En respectant deux principes fondamentaux :
 Le cloisonnement : chaque système d’exploitation à un
fonctionnement indépendant sans aucune interférence mutuelle
 La transparence : le fonctionnement en mode vitualisé ne
modifie pas le fonctionnement du système ni des applications

15/03/20
188
22

OpenVz, Pacemaker
Technologie de virtualisation
 Intérêts :
 Economique : mutualisation du matériel, bénéfice en terme de
coût d’acquisition, de possession (rack, électricité, climatisation,
réseau) et d’exploitation
 Facilité d’administration : installation, déploiement et migration
aisées des machines virtuelles entre serveurs physiques,
simulation d’environnements de qualification ou de pré-
production, création de plateforme de tests ou de
développements réutilisables à volonté
 Sécurisation : séparation des systèmes virtuels et hôtes
(invisibles), répartition des utilisateurs, allocation dynamique des
ressources, dimensionnement des serveurs facilités

15/03/20
189
22

OpenVz, Pacemaker
Technologie de virtualisation

 Différentes techniques :
 Machine virtuelle : Utilisation d’un logiciel. Emulation partielle ou
totale d’une machine
 Hyperviseur complet : Utilisation d’un noyau hôte léger
permettant de faire tourner des systèmes d’exploitations natifs
 Paravirtualiseur : Utilisation d’un noyau hôte allégé permettant
de faire tourner des systèmes d’exploitations invités, adaptés et
optimisés
 Isolation : Séparation forte entre différents contextes logiciels sur
un même noyau de systèmes d’exploitation

15/03/20
190
22

OpenVz, Pacemaker
Technologie de virtualisation

 Machine virtuelle :

 Emulation logicielle
 Bonne isolation
 Coût en performance
 Exemples :
- Qemu
- VMWare
- VirtualPC, VirtualServer
- VirtualBox
15/03/20
191
22

OpenVz, Pacemaker
Technologie de virtualisation

 Hyperviseur complet :
 Utilisation d’un micro-noyau
 Outils de supervision
 Emulation des I/O
 Instructions spécifiques
 Exemples :
- QEMU
- KVM
- VMWare Server
- VirtualPC, VirtualServer
- VirtualBox
15/03/20
192
22

OpenVz, Pacemaker
Technologie de virtualisation

 Paravirtualiseur :
 Micro-noyau hôte optimisé
 OS invités adaptés et optimisés
 Sans instructions spécifiques
 Exemples :
- XEN
- KVM (avec Virtio)
- VMWare ESX et ESXi
- Microsoft Hyper-V Server
- Oracle VM
15/03/20
193
22

OpenVz, Pacemaker
Technologie de virtualisation

 Isolateur :
 Séparation en contextes
 Régi par l’OS hôte
 Mais cloisonnés
 Un seul noyau
 N espaces utilisateurs
 Solution très légère
 Exemples
- Linux-VServer
- BSD Jail
- OpenVZ
15/03/20
194
22

OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
15/03/20
195
22

OpenVz, Pacemaker
Technologie de clustering
 Cluster = agrégat de machines dans un but de travail
coopératif.
 Cluster : pour 2 fonctionnalités
 Augmentation de la puissance de traitement (scalability) : on
veut que la puissance de traitement suive de manière linéaire le
nombre de machines du cluster.
 Augmentation de la disponibilité (availability): on veut minimiser
les inconvénients liées aux pannes par la redondance des
machines entre elles.

15/03/20
196
22

OpenVz, Pacemaker
Cluster Haute-Disponibilité

 Le cluster est composé de 3 sous-systèmes logiques :


 l’accès réseau : c’est le point de passage entre les machines du
cluster et les machines clientes
 le support du système de fichier :
baie disque partagées (SCSI / Fiber Channel,ISCSI)
 Le coeur de calcul : n couples mémoire-CPU.

 Obligatoirement :
 le service doit pouvoir supporter :
un arrêt brutal.
un redémarrage brutal.

15/03/20
197
22

OpenVz, Pacemaker
Cluster Actif-Passif

 Déploiement simplifiée, niveaux de performances garanti


 Serveur dédié à la reprise de services
15/03/20
198
22

OpenVz, Pacemaker
Cluster Actif-Actif

 tous les nœuds du cluster tournent des services


 une seule instance active du service
 risque de corruption des données (R/W simultanées)
15/03/20
199
22

OpenVz, Pacemaker
Cluster à répartition de charges

 Ferme de serveurs
 Répartition d’un même service sur plusieurs machines
 Pour le monde extérieur : un serveur unique
15/03/20
200
22

OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
15/03/20
201
22

OpenVz, Pacemaker
OpenVZ : principes
 C'est une virtualisation au niveau noyau en réalisant un
partitionnement des ressources systèmes
 C'est le noyau du système d'exploitation qui fait une isolation
entre des machines virtuelles et permet d'exécuter des
applications dans des contextes différents
 Chaque contexte d'exécution est une machine virtuelle (VPS)
se partageant le même noyau.
 Un processus d'une machine virtuelle ne peut pas faire de déni
de service en dehors de sa machine virtuelle
 Il n'y a pas d'« émulation » à proprement parler comme dans
d'autres système de virtualisation. 15/03/20
202
22

OpenVz, Pacemaker
OpenVZ : fonctionnalités
 Chaque « Virtual Private Servers » VPS est un système
indépendant
 Les VPS sont des systèmes Linux normaux (file system,
scripts, programmes) : aucune spécificité openVZ
 Les VPS sont totalement isolés les uns des autres (mémoire,
file system, communication inter-processus (IPC))
 Chaque VPS a sa propre adresse réseau, les adresses multiples
par VPS sont permises. Le trafic réseau de chaque VPS est
isolé (pas de snooping possible).

15/03/20
203
22

OpenVz, Pacemaker
OpenVZ : fonctionnalités
 Migration à chaud : Sauvegarde sur disque de l’état du serveur
virtuel via un mécanisme de snaphot. Ce fichier peut alors être
transféré sur une autre machine et restauré en état de marche
en quelques secondes.
 Les « beancounters » : Ensemble de paramètres (une
vingtaine) pouvant être attribué à chaque serveur virtuel pour
imposer des limites et préserver les ressources de la machine
hôte.
 Gestion des ressources : Outils permettant de contrôler
l’utilisation des ressources de l’hôte par machine virtuelle
(mémoire résidente et virtuelle, quotas d’utilisation CPU et
disque, priorités d’accès CPU et disque)
 OS template : « file system » d'une distribution Linux
permettant de « peupler » les VPS, disponibles sous forme de
paquetages ou pouvant être créés.
15/03/20
204
22

OpenVz, Pacemaker
OpenVZ : avantages
 Pas besoin d’image disque de machine. Il suffit de copier un
file system pour installer une machine virtuelle
 Consommation mémoire légère (la mémoire est mutualisée
entre le serveur hôte et les VPS et la mémoire demandée à
l'hôte est celle réellement utilisée par les processus du VPS)
 Cela peut simplement être vu comme un chroot du file system
amélioré par une isolation des processus
 Tous les processus des machines virtuelles font les appels
système à un seul noyau. Les E/S sont donc plus efficaces que
sur un système qui tournerait à travers une émulation
 Intégré dans la distribution Debian en standard
 Gestion fines des ressources

15/03/20
205
22

OpenVz, Pacemaker
OpenVZ : Installation sous Debian
 Installation (noyau patché + utilitaires) :
 aptitude install linux-image-2.6.26-2-openvz-amd64
 aptitude install vzctl vzdump vzquota vzprocps
 shutdown -r now
 uname –r : 2.6.26-1-openvz-686

 Activation du forwarding (sysctl –p) :


 Modification du fichier /etc/sysctl.conf
# packet forwarding enabled and proxy arp disabled
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1 15/03/20
206 net.ipv4.conf.all.send_redirects = 0 22

OpenVz, Pacemaker
OpenVZ : Installation sous Debian
 Récupération d'un template d'OS :
 cd /vz/template/cache
 wget http://download.openvz.org/template/precreated/debian-
5.0-amd64-minimal.tar.gz/

 Création et configuration du VE :
 vzctl create 101 --ostemplate \
debian-5.0-amd64-minimal.tar.gz
 vzctl set 101 --onboot yes –save
 vzctl set 101 --hostname xstra –save
 vzctl set 101 --ipadd 172.16.0.101 –save
 vzctl set 101 --nameserver 130.79.200.200 –save
 vzctl set CTID –-diskspace 80G:80G –save
 vzctl set 100 –-privvmpages 250M:250M –save
 vzctl start 101
15/03/20
207
 vzctl enter 101 22

OpenVz, Pacemaker
OpenVZ : Installation sous Debian
 Autres commandes utiles :
 vzlist
 vzctl stop 101
 vzctl destroy 101
 vzctl exec 101 ps ax ou vztop
 vzmemcheck, vzcpucheck, vzcalc

 Sauvegarde et restauration :
 Par défaut dans /var/lib/vz/dump
 vzdump –compress –dumpdir /mnt/xstra/ --stop 101 –mailto
[email protected]
 vzdump –restore /mnt/xstra/xstra.tgz 101

 Migration à chaud :
 Fonctionne avec rsync et ssh (automatisation via clé ssh)
208
 Vzmigrate –r no –online –v 172.16.0.102 101 15/03/20
22

OpenVz, Pacemaker
OpenVZ : Configuration

 Fichier de configuration générale :


 /etc/vz/vz.conf

 Fichiers de configuration des VPS :


 /etc/vz/conf/<ctid>.conf
 /etc/vz/conf/<ctid>.mount
 /etc/vz/conf/<ctid>.umount
 Configuration lue au démarrage
 Modifiable à chaud via l’utilitaire : vzctl set
 Files system des VPS :
 /var/lib/vz
- dump pour les sauvegarde
- private pour les files systems
209 - template pour les templates 15/03/20
22

OpenVz, Pacemaker
OpenVZ : Configuration
 Exemple : fichier vz.conf
## Global parameters
VIRTUOZZO=yes
LOCKDIR=/var/lib/vz/lock
DUMPDIR=/var/lib/vz/dump
VE0CPUUNITS=1000
## Logging parameters
LOGGING=yes
LOGFILE=/var/log/vzctl.log
LOG_LEVEL=0
VERBOSE=0
## Disk quota parameters
DISK_QUOTA=yes
VZFASTBOOT=yes
# The name of the device whose ip address will be used as source ip for VE.
# By default automatically assigned.
#VE_ROUTE_SRC_DEV="eth0"
# Controls which interfaces to send ARP requests and modify APR tables on.
NEIGHBOUR_DEVS=detect
## Template parameters
TEMPLATE=/var/lib/vz/template
## Defaults for VEs
VE_ROOT=/var/lib/vz/root/$VEID
VE_PRIVATE=/var/lib/vz/private/$VEID
CONFIGFILE="vps.basic"
#DEF_OSTEMPLATE="fedora-core-4"
DEF_OSTEMPLATE="debian"
## Load vzwdog module
VZWDOG="no"
## IPv4 iptables kernel modules
IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length"
## Enable IPv6
IPV6="no"
## IPv6 ip6tables kernel modules 15/03/20
210 IP6TABLES="ip6_tables ip6table_filter ip6table_mangle ip6t_REJECT" 22

OpenVz, Pacemaker
OpenVZ : Configuration
 Exemple : fichier <ctid>.conf
ONBOOT="no"
# UBC parameters (in form of barrier:limit)
KMEMSIZE="14372700:14790164"
LOCKEDPAGES="356:356"
TCPSNDBUF="1720320:2703360"
TCPRCVBUF="1720320:2703360"
OTHERSOCKBUF="1126080:2097152"
DGRAMRCVBUF="262144:262144"
NUMOTHERSOCK="360:360"
DCACHESIZE="3409920:3624960"
NUMFILE="9312:9312"
AVNUMPROC="180:180"
NUMIPTENT="128:128"
# Disk quota parameters (in form of softlimit:hardlimit)
DISKSPACE="1048576:1153024"
DISKINODES="200000:220000"
QUOTATIME="0"
# CPU fair sheduler parameter
CPUUNITS="1000"
VE_ROOT="/dataipcmsdmz/lv-serveur-web-11/root/$VEID"
VE_PRIVATE="/dataipcmsdmz/lv-serveur-web-11/private/$VEID"
OSTEMPLATE="debian-5.0-amd64-minimal"
ORIGIN_SAMPLE="vps.basic"
HOSTNAME="serveur-web-11.u-strasbg.fr"
NAMESERVER="130.79.200.200"
IP_ADDRESS="130.79.210.3"
NETIF="ifname=eth0,mac=00:18:51:7C:A9:57,host_ifname=veth2010.0,host_mac=00:18:51:91:C1:E5"
15/03/20
211
22

OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
15/03/20
212
22

OpenVz, Pacemaker
Pacemaker
 Solution OpenSource de clustering
 Gestion de la haute disponibilité des services et données
 Evolution de hearbeat (différentes branches, version 3)
 Gestion de cluster jusqu’à 16 noeuds
 Gestion de différents modes : Actif/Passif, Actif/Actif
 Depuis la version 2 gestion intégrée des ressources
 Déplacement dynamique/manuel des ressources
 Co-location et ordre de lancement des ressources

15/03/20
213
22

OpenVz, Pacemaker
Pacemaker (évolutions)

 Linux-HAv1 :
 Limitation à 2 nœuds en actif/passif
 Configuration par scripts (haresources)
 Pas de gestion automatique des ressources

 Linux-HAv2 :
 Ajout d’un gestionnaire de ressources (CRM)
 16 nœuds en actif/actif ou actif/passif
 Les communications se font via la couche heartbeat
 Configuration par scripts XML ou interface graphique
 Gestion automatique des ressources
 Branche de développement arrêtée en 2007
15/03/20
214
22

OpenVz, Pacemaker
Pacemaker (évolutions)
 Pacemaker :
 Nouvelle branche de développement (OpenAIS)
 16 nœuds en actif/actif ou actif/passif
 Communications via heartbit ou OpenAIS
 Configuration par scripts XML ou interface graphique
 Possibilité de simuler des scénarios
 Outils de diagnostiques performants

 Pacemaker (version >= 1.0.5) :


 Remplacement de OpenAIS par Corosync
 Couche basique pour les communications
 Découpage de heartbeat en 3 couches (cluster-glue, resource-
agents, heartbeat) 15/03/20
215
22

OpenVz, Pacemaker
Pacemaker (évolutions)

15/03/20
216
22

OpenVz, Pacemaker
Pacemaker : Installation sous Debian
 Modification du fichier /etc/apt/source.list :
 deb http://www.backports.org/debian lenny-backports main contrib non-
free
 deb http://people.debian.org/~madkiss/ha lenny main

 Installation avec corosync :


 aptitude install pacemaker
 aptitude install pacemaker-mgmt pacemaker-mgmt-client

 Initialisation de la couche communication (corosync) :


 node 1 : sudo corosync-keygen
scp /etc/corosync/authkey node2:
 node 2 : sudo mv ~/authkey /etc/corosync/authkey
sudo chown root:root /etc/corosync/authkey
sudo chmod 400 /etc/corosync/authkey
15/03/20
217
22

OpenVz, Pacemaker
Pacemaker : Installation sous Debian

 Configuration corosync :
 via le fichier /etc/corosync/corosync.conf
 modifier au minimum :
interface {
# The following values need to be set based on your
# environment
ringnumber: 0
bindnetaddr: 172.16.152.130
mcastaddr: 226.94.1.1
mcastport: 5405
}

 activation START=yes dans /etc/default/corosync


 démarrage du service : /etc/init.d/coroync start
 vérification du status via l’utilitaire de gestion des ressources

crm_mon --one-shot -V 15/03/20


218
22

OpenVz, Pacemaker
Pacemaker : Configuration
 Via les commandes du gestionnaire de ressources :
 crm : Exemple
primitive fs-serveur-web-01 ocf:heartbeat:Filesystem \
operations $id="fs-serveur-web-01-operations" op \
monitor interval="20" timeout="40" \
params device="/dev/vg-dataipcmsdmz/lv-serveur-web-01" \
directory="/dataipcmsdmz/lv-serveur-web-01" \
fstype="ext3"

primitive ve-serveur-web-01 ocf:heartbeat:ManageVE \


operations $id="ve-serveur-web-01-operations" op \
monitor interval="10" timeout="10" \
params veid="2000"

group gr-serveur-web-01 fs-serveur-web-01 ve-serveur-web-01\


meta target-role="Started"

 Via l’interface graphique:


15/03/20
219
 hb_gui 22

OpenVz, Pacemaker
Pacemaker (GUI)

15/03/20
220
22

OpenVz, Pacemaker
Pacemaker (GUI)

15/03/20
221
22

OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
15/03/20
222
22

OpenVz, Pacemaker
Solution mise en œuvre
VE 100 VE 101 failover VE 105 VE 106

VE 102 VE 103 VE 107 VE 108

OS Virtualisation OS Virtualisation
OpenVZ OpenVZ

Pacemaker Pacemaker
Corosync Corosync

Système d'exploitation Système d'exploitation


Debian Debian

Node 1 Node 2
Stockage partagé
2,25 Tb en raid 6

15/03/20
223
22
Solution mise en œuvre
VE1000

eth0 Web-proxy

bridge
eth1
br0 VE1001

eth2 OBM

130.79.210.0/28
VE1002
FTP

VE1003
VE2003
Mysql VE2003
bridge VE2002
VE2001
br1 VE2000
VE1004
Web-05
Web-04
Postgresql Web-03
Web-02
172.16.153.0/24 Web-01
15/03/20
224
22

OpenVz, Pacemaker
Solution mise en œuvre
 Baie Provigo 610 SAS :
 8 disques de 500 Go SATA à 7200 tr/min
 1 disque Hot Spare
 1 Raid Group (7 disques) en Raid 6 (2,5 To utile)
 1 contrôleur, cache 1 Go, unité batterie
 alimentation redondante
 double connexions SAS vers les 2 serveurs
 2 Serveurs Calleo 121
 Quad Core
 8 Go de mémoire, 160 Go (en mirroir), 2 x 1 Gb Ethernet + IPMI
 Cluster
 Actif/Actif
 SMTP, OBM, SSH, HTTP, HTTPS, MYSQL, POSTGRESQL

15/03/20
225
22

OpenVz, Pacemaker
Place à la pratique

Support de TP en annexe

 Installation d'un FreeNAS

 Comprendre le Logical Volume Manager (LVM)

 Installation du Raid logiciel sous Linux


FIN du COURS

Vous êtes désormais compétents,

allez prendre l’argent qui vous attend en


proposant toutes les solutions que vous avez
maîtrisées dans ce cours,

et je serais fier de vous.

Vous aimerez peut-être aussi