hd it learning m2

Upload: amine-benhaida

Post on 05-Jul-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 HD IT Learning M2

    1/32

    Mehdi Driba El Filali

    La haute disponibilité viaHeartbeat

  • 8/16/2019 HD IT Learning M2

    2/32

    Ce que l’on va voir…

    Haute Disponibilité

    2

    Généralités sur la haute disponibilité

    Concepts à maîtriser

    Exemples d’applications

    Heartbeat par la pratique

  • 8/16/2019 HD IT Learning M2

    3/32

    Haute Disponibilité

    3

    Principesgénéraux

  • 8/16/2019 HD IT Learning M2

    4/32

    La haute disponibilité, c’est quoi

    Haute Disponibilité

    4

    « On appelle « haute disponibilité »toutes les dispositionsvisant à garantir la disponibilité d'un service et son bon

     fonctionnement 24H/24. »

    (www.commentcamarche.net)

  • 8/16/2019 HD IT Learning M2

    5/32

    Pourquoi faire ?

    Haute Disponibilité

    5

    Ces services peuvent pénaliser l’entreprise en cas de

    défaillances (commandes en ligne par exemple) Employés au chômage technique Clients mécontents passant à la concurrence …

    Manque à gagner pour l’entreprise (1/250ème des bénéfices par jour d’arrêt)

    Un grand nombre d’entreprises proposent desservices à leurs salariés, clients, etc.

  • 8/16/2019 HD IT Learning M2

    6/32

    Comment peut-on agir ?

    Haute Disponibilité

    6

    Le terme « Haute disponibilité » couvre un grandnombre de domaines : Manipulations des serveurs « à chaud » :

    Reconfiguration des services

    Sauvegarde des données, …

    Redondance du matériel

    Répartition dynamique des données (RAID, etc.)

    Stockage des données à un emplacement physique différent

    Plan de secours

    Fonctionnement en mode dégradé (fournir un service jugé

    indispensable sans ses ressources habituelles humaines oumatérielles)

  • 8/16/2019 HD IT Learning M2

    7/32

    Domaine de définition

    Haute Disponibilité

    7

    Un seul point étudié ici : la détection automatique d'une défaillance d'un serveur, et la

    reprise du service qu'il offrait par d'autres machines.

    Réalisé par le programme Heartbeat, faisant partie de lasuite « The Linux Virtual Server » (LVS)

    Question importante :

     Ai-je besoin d’une seule machine active pourrépondre à tous les clients, ou de plusieurssimultanément ?

  • 8/16/2019 HD IT Learning M2

    8/32

    Haute Disponibilité

    8

    Concepts àmaîtriser

  • 8/16/2019 HD IT Learning M2

    9/32

    Si une seule machine suffit (1)

    Haute Disponibilité

    9

    Une machine active, qui répond aux clients

    Une machine configurée à l’identique : service arrêtés

    surveillant la première en permanence

    Lorsqu’elle détecte une panne : elle lance ses services

    elle répond aux clients à la place de l’autre

    Si la première est réparée :Soit elle se met à son tour en écoute

    Soit elle demande à reprendre la main

  • 8/16/2019 HD IT Learning M2

    10/32

    Si une seule machine suffit (2)

    Haute Disponibilité

    10

    Une méthode de surveillance : la tachycardie (heartbeat)

  • 8/16/2019 HD IT Learning M2

    11/32

    S’il faut plusieurs machines (1)

    Haute Disponibilité

    11

    Il faut : Plusieurs serveurs proposant le même service

    Pouvoir rediriger les requêtes des clients de manièreéquitable sur tous les serveurs

    1ère approche : ‘Round Robin DNS’

  • 8/16/2019 HD IT Learning M2

    12/32

    S’il faut plusieurs machines (2)

    Haute Disponibilité

    12

    On peut faire mieux : le répartiteur de charge En Anglais : « load balancer »

    Prendre en compte de la puissance des machines, le nombred’utilisateurs déjà connectés, etc.

  • 8/16/2019 HD IT Learning M2

    13/32

     Algorithmes de load balancing

    Haute Disponibilité

    13

    Pléthore d’algorithmes.

    Ceux utilisés par « The Linux Virtual Server » (LVS): Least-Connection

     Weighted Least Connection

    Round-Robin

     Weighted Round-Robin

    Locality-Based Least-Connection

    Destination-Hashing

    Source-Hashing

    Short Expected Delay Never Queue

  • 8/16/2019 HD IT Learning M2

    14/32

    Cela fonctionne mais…

    Haute Disponibilité

    14

    Gestionnaire unique = point de faiblesse

    requêtes ?

    Gestionnaire

    Machines proposant

    le même service

    Client

    requêtes répartition

    de charge

    Gestionnaires

    (en haute disponibilité)

    Client

    Au final :

    Machines proposantle même service

  • 8/16/2019 HD IT Learning M2

    15/32

    Comment le gestionnaire redirige les clients ?

    Haute Disponibilité

    15

    Machine active / machine passive

    IP normale

    IP virtuelle

    requête

    ClientMachine active

    IP virtuelle = xxx

    Haute disponibilité

    Services

    Client

    Plusieurs machines actives

    Routage Simple

    Encapsulation IP-IP

     N.A.T.

  • 8/16/2019 HD IT Learning M2

    16/32

    Haute Disponibilité

    16

    Exemples

    d’applications

    « En théorie, il n'y a pas de différences entre la théorie et

    la pratique. En pratique, il y en a. »

    (Chuck Reid)

  • 8/16/2019 HD IT Learning M2

    17/32

    Exemple : relais de messagerie

    Haute Disponibilité

    17

    Echanges Haute disponibilité

    Serveur mail n°1

    (actif)

    Serveur mail n°2

    (passif)

  • 8/16/2019 HD IT Learning M2

    18/32

  • 8/16/2019 HD IT Learning M2

    19/32

    Exemple : Serveurs Web

    Haute Disponibilité

    19

    Echanges Haute disponibilité

    Serveur web n°1

    (actif)NFS. Accès aux :

    - pages web

    - données du site

    - fichiers de sessions

    Serveur web n°2

    (passif)

    Serveur de fichiers

  • 8/16/2019 HD IT Learning M2

    20/32

    Plus dur : serveurs de fichiers

    Haute Disponibilité

    20

    Serveur NFS

    Serveur 1

    lecture écriture

    DRBD

    Serveur NFS

    (inactif)

    écriture

    Partition

    Serveur 2

    Réplication

    Partition

    DRBD

    lecture écriture

  • 8/16/2019 HD IT Learning M2

    21/32

    Haute Disponibilité

    21

    Heartbeat par lapratique…

    « The box said: "install on Windows 95, NT 4.0 or better".

    So I installed it on Linux. »

    (Anonyme)

  • 8/16/2019 HD IT Learning M2

    22/32

    Préparation de l’environnement

    Haute Disponibilité

    22

    Préparation de l’environnement :

    Editer le fichier hosts : il faut ajouter l’@ip virtuellequ’on va utiliser et les nodes.

    Editer le fichier interfaces, les interfaces doivent être static :

    # hostnamectl set-hostname NOM 

    # nano /etc/hosts

    @ip Nom_machine

    # nano /etc/network/interfaces

  • 8/16/2019 HD IT Learning M2

    23/32

    Préparation de l’environnement

    Haute Disponibilité

    23

    Exemple de fichier interfaces

    auto lo

    iface lo inet loopback

    # The primary network interface

    auto eth0

    iface eth0 inet static

    address 192.168.2.10

    netmask 255.255.255.0

    gateway 192.168.2.1

    dns-nameservers 8.8.8.8 8.8.4.4

    auto eth0:0

    iface eth0:0 inet staticaddress 172.16.10.100

    netmask 255.255.255.0

  • 8/16/2019 HD IT Learning M2

    24/32

  • 8/16/2019 HD IT Learning M2

    25/32

    Préparation de l’environnement

    Haute Disponibilité

    25

    Installation d’Apache 2

    Tester l’installation en tapant localhost dans un

    navigateur

    Changement de l’index de la page web :

    # apt-get install apache2

    # nano /var/www/index.php

  • 8/16/2019 HD IT Learning M2

    26/32

    Sous le capot d’heartbeat (1)

    Haute Disponibilité

    26

    Installation (sous Ubuntu) :

    Extraire les fichiers ha.cfg, haressources

    Copier les fichiers dans /etc/ha.d

    # apt-get update

    # apt-get install heartbeat

    # cd /usr/share/doc/heartbeat

    # gunzip ha.cfg haressources

    # cp auhtkeys ha.cfg haressources /etc/ha.d 

  • 8/16/2019 HD IT Learning M2

    27/32

    Sous le capot d’heartbeat (2)

    Haute Disponibilité

    27

    /etc/ha.d/ha.cf 

    logfacility local0

    keepalive 2

    deadtime 10 bcast eth0

    node ##nom_pc1## ##nom_pc2##

    auto_failback no

  • 8/16/2019 HD IT Learning M2

    28/32

    Sous le capot d’heartbeat (3)

    Haute Disponibilité

    28

    /etc/ha.dt/authkeys

    3 méthodes de protection crc (réseaux sûrs, comme un câble croisé) md5 (bonne alternative de sécurité)

    sha1 (meilleure sécurité, utilise du temps CPU)

    Ne pas oublier :

    auth 3

    3 md5 ###mot_de_passe###

    # chmod 600 /etc/heartbeat/authkeys

  • 8/16/2019 HD IT Learning M2

    29/32

    Sous le capot d’heartbeat (4)

    Haute Disponibilité

    29

    /etc/ha.d/haresources

    Pleins d’actions différentes possibles.

    Paramètres d’une option séparés par 4 points :“::”

    ##nom_pc1## action1 action2 ... actionN

  • 8/16/2019 HD IT Learning M2

    30/32

    Sous le capot d’heartbeat (5)

    Haute Disponibilité

    30

    Activer une adresse IP virtuelle :

     pc1 IPaddr::192.x.x.x/24/eth0

    Monter un système de fichiers local :

     pc1 Filesystem::/dev/sda1::/mnt/scsi::vfat

    Monter un système de fichiers distant (NFS)

     pc1 Filesystem::192.x.x.x:/src::/mnt/dest::nfs

    Monter un système de fichiers distant (NFS) avec des options

     pc1 Filesystem::192.x.x.x:/src::/mnt/dest::nfs::rsize=8192

  • 8/16/2019 HD IT Learning M2

    31/32

    Sous le capot d’heartbeat (6)

    Haute Disponibilité

    31

    Restrictions :Doit être dans /etc/init.d/ (ou /etc/heartbeat/ressource.d/)

    Doit reconnaître les arguments ‘start’ et ‘stop’

    Ne doit PAS être lancé automatiquement au démarrage de Linux :

    Et enfin : lancer un service :

     pc1 apache2

    # update-rc.d –f apache2 remove

  • 8/16/2019 HD IT Learning M2

    32/32

    Références / Annexes

    Haute Disponibilité

    32

    Heartbeat :http://linux-ha.org/ConfiguringHeartbeat

    Configurer Heartbeat (Ubuntu) :http://doc.ubuntu-fr.org/serveur/heartbeat

    The Linux Virtual Server (LVS) :http://www.linuxvirtualserver.org/

    Mécanismes de répartition de charges de LVS :http://www.ultramonkey.org/3/lvs.html

    Mécanismes de redirection IP de LVS :http://www.linuxvirtualserver.org/how.htmlhttp://www.ultramonkey.org/3/lvs.html

    Cluster Apache :http://www.howtoforge.com/high_availability_loadbalanced_apache_cluster

    Cluster NFS :http://www.howtoforge.com/high_availability_nfs_drbd_heartbeat

    Discussions sur la haute disponibilité :http://lea-linux.org/cached/index/Leapro-pro_sys-dispo.html