TP3 Haute disponibilité et répartition des serveurs · 2014. 1. 28. · Foucart TP3 –...

18
Digeon SISR4 – Administration des systèmes SIO2 Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013 TP3 Haute disponibilité et répartition des serveurs - Page 1 -

Transcript of TP3 Haute disponibilité et répartition des serveurs · 2014. 1. 28. · Foucart TP3 –...

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    TP3

    Haute disponibilité et répartition des serveurs

    - Page 1 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    SommaireIntroduction..........................................................................................................................................3

    Plan d'adressage...............................................................................................................................3Partie 1 – Mise en place d'une solution de haute disponibilité avec Heartbeat....................................4

    Architecture de réseau à mettre en place.........................................................................................4Création des serveurs.......................................................................................................................5Dupliquer le modèle ou master........................................................................................................5Installation HeartBeat......................................................................................................................7Configuration du cluster..................................................................................................................7Configuration de HeartBeat.............................................................................................................8Test du cluster................................................................................................................................10Mise en place d'un routeur avec redirection de port......................................................................12

    Partie 2 – Mise en place d'une solution de répartition de service avec IPVS.....................................14Plan d'adressage.............................................................................................................................15Architecture du réseau à mettre en place.......................................................................................15Création des serveurs.....................................................................................................................15Création du répartiteur...................................................................................................................16Installation de IPVS.......................................................................................................................16Configuration IPVS.......................................................................................................................17Paramètrage du cluster...................................................................................................................18Test du répartiteur de charge..........................................................................................................18

    - Page 2 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    IntroductionAu cours de ce TP, nous allons découvrir comment mettre en oeuvre les mécanismes de haute disponibilité et la répartition des charges entres des différents serveurs.

    Cela sous-entend que l'on prendra connaissance de l'intérêt de ces mécanismes, comprendre la façon de les mettre en oeuvre, prendre connaissance des concepts utilisés, savoir les mettre correctement en place de façon indépendante ou conjointement et en dégager les avantages et inconvénients liés à ces concepts.

    Plan d'adressage

    Machines Adresse Masque PasserelleClient B 172.16.40.1 255.255.0.0 172.16.40.254

    SRV1 172.16.40.10 255.255.0.0 172.16.40.254

    SRV2 172.16.40.40 255.255.0.0 172.16.40.254

    - Page 3 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Partie 1 – Mise en place d'une solution de haute disponibilité avec Heartbeat

    Architecture de réseau à mettre en place

    Cette architecture sera mise en place en deux temps :

    • d'abord avec le cluster et la haute disponibilité

    • et avec le routeur, la redirection d'adresse et de port via l'accès via internet

    - Page 4 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Création des serveurs

    Le réseau que l'on va créé aura besoin de deux serveurs web sous Linux Debian 6. Bien évidemment, ils seront créés avec Esxi 5.1 car Oracle Virtualbox ne prend pas en charge le type d'architecture utilisé.

    Nous allons créé deux serveurs web nommés "srvweb1" et "srvweb2" avec comme spécification, Debian 6 comme système d'exploitation, 1Go de mémoire vive, 20Go de disque dur alloué selon les besoins (Thin Provisioning).

    Dupliquer le modèle ou master

    Pour duplique un modèle ou master Debian, il faut ce rendre sur la machine, puis sur l'onglet "Résumé" puis on fait un clique droit sur le disque dur nommé "datastore1" et clique sur "Parcourir la banque de donnée".

    Puis, nous nous rendons dans le dossier du modèle ou master souhaité, nous copions le fichier avec l'extension .vmdk et nous le copions dans le dossier de la machine créée précédemment.

    - Page 5 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Une fois que les deux serveurs webs sont créés et paramétrés, nous leur attribuons à chacun une adresse IP avec la commande suivante :

    # gedit /etc/network/interfaces

    Ensuite, nous leur installons le package lié à Apache2.

    # apt-get install apache2

    Nous décidons de modifier la page par défaut en modifiant la mention "It Works !" en y ajoutant le nom du serveur à coté ( SRV1 et SRV2).

    # gedit /var/www:index.html

    Pour finir, nous tapons "localhost" dans le navigateur de chaque serveur pour vérifier que le serveur est opérationnel.

    - Page 6 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Et enfin, nous modifions le nom des deux serveurs web avec cette commande :

    # gedit /etc/hostname

    Installation HeartBeat

    HeartBeat permet de faire fonctionner de façons autonome deux ou plusieurs serveurs afin qu'ils forment un cluster et de ce fait, assurer la haute disponibilité des serveurs.

    Pour l'installer, nous utilisons cette commande :

    # apt-get install heartbeat

    Pour l'installation de HeartBeat, veillons à disposer d'une adresse IP permettant de se rendre sur internet ainsi qu'une passerelle valide. A la fin de l'installation, tâchons de remettre les adresses IP et passerelles correspondant par rapport au plan d'adressage.

    Puis, rédemarrer les deux serveurs pour que les noms soient correctement pris en compte.

    Configuration du cluster

    L'idée principale du cluster est de faire fonctionner au minimum deux machines en même temps. Unis, elles forment un "cluster" dont chaque machine est un node (élément) du cluster. Une fois ensemble, chacune à leur tour elles se demandent si elles sont en vie. A partir du moment où l'une d'entre-elles ne réponds plus, une machine prend le relais pour assurer la continuité du service.

    Le cluster est accessible depuis une une seule et unique adresse IP (elle recense le cluster avec les nodes qui le compose).

    Nous commencons par déclarer le nom et l'adresse IP de l'autre serveur du cluster dans le fichier de résolution locales de chaque serveur.

    Nous éditons le fichier de résolution locale du SRV1 :

    # gedit /etc/hosts

    Arrivé dans le fichier, nous modifions les lignes suivantes :

    127.0.0.1 localhost127.0.1.1 SRV1

    - Page 7 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    172.16.193.40 SRV2

    Nous ajoutons l'adresse 127.0.1.1 afin de lui attribuer une propre adresse pour qu'il réponde au nom de SRV1.

    Puis, nous effectuons un ping de SRV1 vers SRV2.

    # ping SRV2

    Répéter cette operation pour le second serveur (SRV2) en inscrivant l'adresse IP du poste SRV1, puisqu'il faut que les 2 serveurs communiquent ensemble.

    Grace à ces commandes, nous pouvons désormais désigner les serveurs par leur nom à la place de leur adresse IP.

    Configuration de HeartBeat

    Pour qu'il fonctionne, 3 fichiers de configuration fondamentaux doivent être paramétrer. L'avantage, est que les 3 fichiers sont identiques sur les 2 serveurs donc il nous suffira de les copier sur l'autre une fois configurés sur l'un.

    Nous débutons par créer le fichier de configuration de HearBeat :

    # touch /etc/ha.d/ha.cf# gedit /etc/ha.d/ha.cf

    - Page 8 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Une fois dans le fichier, nous le complétons avec les informations données ci-dessous :

    Par la suite, nous allons définir le node maître, l'adresse IP du cluster composé des 2 serveurs et les services qui assureront la haute disponibilité.

    Toujours à partir du serveur SRV1, nous créons cette fois-ci, le fichier de configuration des ressources de HeartBeat :

    # gedit /etc/ha.d/haresources

    Et on le complète avec l'adresse IP virtuelle que l'on a choisis pour le cluster : pour nous, se sera 172.16.40.30.

    SRV1 Ipaddre::172.16.40.30

    Ensuite, nous passons à la configuration de l'authentification mutuelle. Cela permet entre-autre, aux deux serveurs de se reconnaître afin d'éviter l'arriver dans le le cluster d'un appareil malveillant (serveur).

    Donc à partir de la même machine, nous créons le troisième et dernier fichier de configuration : le fichier de configuration de l'authentification :

    # gedit /etc/ha.d/authkeys

    - Page 9 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Et on le complète également, avec les données suivantes :

    auth 11 md5 "phrase secrete du cluster"2 crc

    Et enfin, pour éviter les accès mal-intentionné au fichier, nous réservons l'accès au seul utilisateur "root" avec cette commande :

    chmod 600 /etc/ha.d/authkeys

    Le terme "auth" correspond au système d'authentification que l'on va utiliser pour la sécurisation du cluster. Et au cas où le lien physique n'est pas assuré, il convient d'utiliser un chiffrement md5 avec une chaîne clé, comme choisi dans le fichier configuré au préalable.

    Pour terminer cette étape, nous effectuons de nouveau le même manipulations sur le deuxième serveurs avec exactement les même données de configuration.

    Une fois les deux serveurs prêts, nous redémarrons les services HeartBeat dans l'ordre suivant :

    SRV1 :

    # service hearbeat stop# service heartbeat start

    SRV2 :

    # service hearbeat stop# service heartbeat start

    Test du cluster

    Pour vérifier que les deux serveurs ne sont pas isolés, nous allons configuré une hôte client (Client B) pour s'assurer qu'il puisse communiquer avec les serveurs placés dans le cluster.

    Pour commencer, nous allons essayer localement le fonctionnement du cluster en essayant de pinger, l'adresse IP virtuelle.

    - Page 10 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Mais avant, nous devons nous assurer que notre hôte possède la configuration adéquate :

    Adresse IP : 172.16.40.1

    Masque sous-réseau : 255.255.0.0

    Passerelle : 172.16.40.254

    Puis dans une invite de commande, nous lancons la commande suivante :

    ping 172.16.40.30

    Et nous devrions arriver sur la page d'accueil du serveur web sur SRV1

    Puis, nous déclenchons une panne en éteignant la carte réseau du serveur SRV1 ou encore, en arrêtant le service Heartbeat.

    Au bout d'une vingtaine de seconde, nous arrivons sur la page d'accueil su serveur web SRV2.

    - Page 11 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Nous arrivons sur la page d'accueil du serveur 2, car à la suite de la panne, c'est le SRV2 qui a pris le relais afin d'assurer la continuité du service.

    Par la suite, nous rallumons la carte réseau ou le service Heartbeat du SRV1 afin qu'il assure de nouveau la continuité du service et que SRV2, soit de nouveau en "veille".

    Mise en place d'un routeur avec redirection de port

    En mettant en place cette solution, les serveurs ne seront jamais accessible de l'extérieu, c'est-à-dire d'Internet car ils seront placés dans une DMZ ou un réseau dédié. Par conséquent, ils utiliseront des adresses IP privées. C'est donc le routeur qui va assurer la charge des requêtes web et les rediriger vers le serveur web.

    Cluster Routeur

    IP : 172.16.40.30 IP : 192.16.40.20

    Port : 80 Port : 80

    Nous configurons les deux cartes réseaux du routeur afin de qu'il puisse rediriger les demandes :

    # conf t# interface fastethernet0/0# ip address 192.16.40.20 255.255.255.0

    # conf t# interface fastethernet0/1# ip address 172.16.40.254 255.255.0.0

    A la suite de çà, nous activons le routage en mode configuration globale :

    # ip routing

    Puis, nous vérifions la table de routage :

    # show ip route

    - Page 12 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Nous effectuons des commandes ping entre les machines afin de vérifier la connectivité entre-tous :

    Client A :

    C:\Users\etudiant>ping 192.16.40.20

    Envoi d'une requête 'Ping' 192.16.40.20 avec 32 octets de données :Réponse de 192.16.40.20 : octets=32 temps=1 ms TTL=255Réponse de 192.16.40.20 : octets=32 temps=1 ms TTL=255Réponse de 192.16.40.20 : octets=32 temps=1 ms TTL=255

    Client B :

    C:\Users\etudiant>ping 172.16.40.30

    Envoi d'une requête 'Ping' 172.16.40.30 avec 32 octets de données :Délai d'attente de la demande dépassé.Réponse de 172.16.40.30 : octets=32 temps=1 ms TTL=63Réponse de 172.16.40.30 : octets=32 temps=1 ms TTL=63Réponse de 172.16.40.30 : octets=32 temps=1 ms TTL=63

    Nous voyons bien que les deux clients communiquent entre-eux à l'aide du routeur.

    Puis, nous passons à la configuration de la redirection d'adresse et de port :

    # ip nat inside source static tcp 172.16.40.30 80 interface Fastethernet0/0 80

    Nous redirigons en sortie sur la carte 0/0

    # interface fastethernet0/0#ip nat outside

    Et nous redirigons en entrée sur la carte 0/1

    # ip nat inside

    - Page 13 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Partie 2 – Mise en place d'une solution de répartition de service avec IPVS

    Plan d'adressage

    Machines Adresse Masque PasserelleClient A 192.16.40.10 255.255.0.0 172.16.40.254

    SRV1 172.16.40.10 255.255.0.0 172.16.40.254

    SRV2 172.16.40.40 255.255.0.0 172.16.40.254

    Architecture du réseau à mettre en place

    Dans cette seconde partie, nous resterons au niveau local en gardant la configuration mise en place dans la partie 1.

    Le schéma est exactement le même sauf qu'internet n'est pas présent et qu'entre les hôtes et les serveurs, est placé un serveur de répartition nommé "Load-Balancer". Il se chargera de répartir sur les 2 serveurs, les requêtes reçues.

    - Page 14 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Création des serveurs

    Nous décidons de reprendre la configuration établie dans la partie 1 : pour les serveurs, il faut veiller à arreter le service "HeartBeat".

    Création du répartiteur

    Avant la création, nous devons éteindre les deux serveurs pour éviter des éventuels conflits d'adresse IP.

    Une fois arrétés, nous répétons les opérations de création de machine comme expliqué au début de la partie 1.

    Lorque celle-ci est créée, nous décidons d'ajouter une seconde carte réseau à la machine et nous veillons à lui attribuer une adresse IP capable d'accéder à Internet afin de pouvoir télécharger les différents packages nécessaire l'installation du service de répartition des charges.

    Installation de IPVS

    Ensuite, nous installons les packages correspondants (IPVS) avec cette commande :

    # apt-get install ipvsdam

    Avant de passer à la configuration définitive des adresses IP du serveur de répartition, nous nous assurons que les deux serveurs soient éteints pour encore une fois, éviter les eventuels conflits d'adresse IP.

    - Page 15 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Nous configurons les adresses IP, masque et passerelle suivante le schéma réseau :

    Pour finir, nous renommons le serveur avec son nom : Load-Balancer

    # gedit /etc/hostname

    Pour appliquer et vérifier, que tous les paramètres ont été pris en compte, nous redémarrons le serveur.

    - Page 16 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Configuration IPVS

    Nous lançons donc la configuration automatique de IPVS avec cette commande :

    # dpkg-reconfigure ipvsadm

    Puis nous accédons aux paramètres précédent :

    # gedit /etc/default/ipvsadm

    Une fois ouvert, nous modifions la ligne suivante :

    # if you want to start ipvsadm on boot set this to true # AUTO="false"

    Nous changons la mention "false" par la mention "true" pour que IPVS démarre au démarrage de la machine.

    Puis, nous ajoutons une carte réseau virtuelle à la machine :

    # gedit /etc/network/interfaces

    Et nous ajoutons les lignes suivantes :

    # auto eth0:30iface eth0:30 inet staticaddress 192.16.40.30netmask 255.255.255.255

    Nous ajoutons dons une nouvelle carte réseau mais virtuelle, qui aura une adresse IP qui correspond à celle du cluster.

    Puis, nous démarrons la carte réseau :

    # ifup eth0:30

    Et nous activons le routage avec la commande suivante :

    # echo '1' > /proc/sys/net/ipv4/ip_forward

    - Page 17 -

  • Digeon SISR4 – Administration des systèmes SIO2Foucart TP3 – Disponibilité & répartition de charge des serveurs 01/10/2013

    Paramètrage du cluster

    Maintenant, nous passons au paramétrage du cluster : nous allons utilisons les commandes suivantes :

    # ipvsadm --add-service -t 192.16.40.30:http -s rr# ipvsadm -a -t 192.16.40.30:http -r 172.16.40.10:http -m -w 1# ipvsadm -a -t 192.16.40.30:http -r 172.16.40.40:http -m -w 1

    Quelques détails :

    • -m sert à faire du masquerading pour que le réseau dérrière le répartiteur soit masqué des extérieurs.

    • -w fixe le poids de chacun des serveurs réels. Si le poids est différent, il faudra remplacer rr (Round Robin) aléatoire par un wrr (Weighted Round Robin).

    • Quand les serveurs réels sont dans le même réseau que le répartiteur, le routage est désactivé et on remplace l'option -m, par l'option -g.

    Puis, nous vérifions le paramétrage avec la commande :

    # ipvsadm -L

    L'adresse IP de la machine Client A apparaît bien dans la liste.

    - Page 18 -

    IntroductionPlan d'adressage

    Partie 1 – Mise en place d'une solution de haute disponibilité avec HeartbeatArchitecture de réseau à mettre en placeCréation des serveursDupliquer le modèle ou masterInstallation HeartBeatConfiguration du clusterConfiguration de HeartBeatTest du clusterMise en place d'un routeur avec redirection de port

    Partie 2 – Mise en place d'une solution de répartition de service avec IPVSPlan d'adressageArchitecture du réseau à mettre en placeCréation des serveursCréation du répartiteurInstallation de IPVSConfiguration IPVSParamètrage du cluster