Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:mirroring_sur_deux_serveurs [Le 05/02/2009, 13:24]
MrWaloo
tutoriel:mirroring_sur_deux_serveurs [Le 11/09/2022, 12:24] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>​Hardy ​Ibex serveur haute_disponibilité réseau ​mirroring heartbeat ​samba drbd RAID tutoriel}}+{{tag>​Hardy serveur haute_disponibilité réseau samba RAID tutoriel}}
  
-====== Tutoriel : Mirroring sur deux serveurs ======+----
  
-===== Introduction ​===== +====== ​Mirroring sur deux serveurs ​====== 
-<​note>​Ce tutoriel est destiné à un **public averti**, certains détails //​triviaux//​ ne sont pas détaillés...((je me répète ?))\\ + 
-Toutes les commandes sont lancées avec l'​utilisateur ​''​**root**''​.</​note>​+<​note ​importante> 
 +Ce tutoriel est destiné à un **public averti**, certains détails //​triviaux//​ ne sont pas détaillés… 
 + 
 +Toutes les commandes sont lancées avec l'​utilisateur ​« **root** ». 
 +</​note>​
  
 À l'​heure où les serveurs d'​entreprises doivent stocker un volume croissant de données et assurer une haute disponibilité,​ il est nécessaire d'​imaginer des   ​systèmes de //​mirroring//​ (miroir) autres que simplement sur des disques durs. À l'​heure où les serveurs d'​entreprises doivent stocker un volume croissant de données et assurer une haute disponibilité,​ il est nécessaire d'​imaginer des   ​systèmes de //​mirroring//​ (miroir) autres que simplement sur des disques durs.
Ligne 13: Ligne 17:
 ''​drbd''​ permet de mettre en œuvre une solution de RAID-1 au travers du réseau. C'​est-à-dire que sur deux serveurs, on a une partition((qui peut être sur un ''​lvm''​ ou sur un raid physique ou logiciel)) par serveur qui est à tout moment une copie exacte d'une partition de l'​autre serveur. C'est un //​mirroring//​ (miroir) de partitions à travers une interface réseau. ''​drbd''​ permet de mettre en œuvre une solution de RAID-1 au travers du réseau. C'​est-à-dire que sur deux serveurs, on a une partition((qui peut être sur un ''​lvm''​ ou sur un raid physique ou logiciel)) par serveur qui est à tout moment une copie exacte d'une partition de l'​autre serveur. C'est un //​mirroring//​ (miroir) de partitions à travers une interface réseau.
  
-C'est une solution qui permet également d'​utiliser deux PC au lieu d'un serveur afin de **faire des économies**,​ aussi bien pour l'​achat initial que pour l'​achat de disques supplémentaires (en remplacement ou en ajout) par la suite. Dans la mesure où ce //cluster// est utilisé pour un partage ''​samba'',​ ce type de matériel est tout à fait convenable ​pour une utilisation avec jusqu'​à une vingtaine de clients.+C'est une solution qui permet également d'​utiliser deux PC au lieu d'un serveur afin de **faire des économies**,​ aussi bien pour l'​achat initial que pour l'​achat de disques supplémentaires (en remplacement ou en ajout) par la suite. Dans la mesure où ce //cluster// est utilisé pour un partage ''​samba'',​ ce type de matériel est tout à fait convenable ​et peut supporter ​jusqu'​à une vingtaine de clients.
  
 ===== Présentation des outils utilisés ===== ===== Présentation des outils utilisés =====
-Ce tutoriel met en œuvre certains outils qu'il faut rapidement présenter.\\ +Ce tutoriel met en œuvre certains outils qu'il faut rapidement présenter. Des termes importants sont utilisés :
-Des termes importants sont utilisés :+
   * serveur   * serveur
   * service   * service
Ligne 24: Ligne 27:
 Ces termes ne sont pas détaillés dans ce tutoriel, je fais appel à votre curiosité pour trouver leur définition. Ces termes ne sont pas détaillés dans ce tutoriel, je fais appel à votre curiosité pour trouver leur définition.
  
-==== samba ==== +==== Samba ==== 
-''​samba'' ​est l'​outil qui permet à un ordinateur sur lequel une distribution GNU/Linux ou Unix est installée //​d'​apparaître//​ sur le réseau et de partager des fichiers et des imprimantes comme le ferait un ordinateur avec Windows©.\\+ 
 +Samba est l'​outil qui permet à un ordinateur sur lequel une distribution GNU/Linux ou Unix est installée //​d'​apparaître//​ sur le réseau et de partager des fichiers et des imprimantes comme le ferait un ordinateur avec Windows©.\\
 C'est LA solution logicielle pour faire d'un serveur GNU/Linux un serveur de fichiers (et d'​imprimantes) pour des clients sous Windows©, puisqu'​elle est simple d'​utilisation pour les clients. C'est LA solution logicielle pour faire d'un serveur GNU/Linux un serveur de fichiers (et d'​imprimantes) pour des clients sous Windows©, puisqu'​elle est simple d'​utilisation pour les clients.
  
-==== heartbeat ​==== +==== Heartbeat ​====
-''​heartbeat''​ gère la haute disponibilité de services qui peuvent être fournis par plusieurs serveurs (2 au minimum). Pour ce faire, chacun des serveurs est surveillé via un //battement de cœur// (heartbeat) diffusé sur le réseau. Au départ les services sont démarrés sur l'un des serveurs, et si celui-ci n'​émet plus de battement de cœur((c'​est qu'il est mort !)), un autre serveur prend la relève.+
  
-Le cas qui est certainement le plus répandu est la mise en place de ''​heartbeat'' ​sur deux serveurs, ​ce qui est le cas dans ce tutoriel.+Heartbeat gère la haute disponibilité de services ​qui peuvent être fournis par plusieurs serveurs (2 au minimum). Pour ce faire, chacun des serveurs ​est surveillé //via// un //​battement ​de cœur// (heartbeat) diffusé ​sur le réseau. Au départ les services sont démarrés sur l'un des serveurs, ​et si celui-ci n'​émet plus de battement de cœur((c'​est qu'il est mort !)), un autre serveur prend la relève.
  
-==== drbd ==== +Le cas qui est certainement le plus répandu est la mise en place de Heartbeat ​sur deux serveurs, ce qui est le cas dans ce tutoriel.
-''​drbd''​ permet de synchroniser //en temps réel//​((allez voir les détails ​sur le [[http://​www.drbd.org/​users-guide-emb/​users-guide.html|site]])) des données entre deux ordinateurs.+
  
-''​drbd'' ​est constitué d'un module du noyau et d'​outils de gestion.+==== DrBD ==== 
 + 
 +DrBD permet de synchroniser //en temps réel//​((allez voir les [[http://​www.drbd.org/​users-guide-emb/​users-guide.html|détails sur le site]])) des données entre deux ordinateurs. 
 + 
 +DrBD est constitué d'un module du noyau et d'​outils de gestion.
  
 ===== Postulat de départ ===== ===== Postulat de départ =====
 +
   * Les deux serveurs :   * Les deux serveurs :
     * ''​serv1''​ avec adresse IP 192.168.214.10 : serveur primaire     * ''​serv1''​ avec adresse IP 192.168.214.10 : serveur primaire
Ligne 49: Ligne 56:
  
 ===== Installation ===== ===== Installation =====
-L'​ordre d'​installation à respecter concerne surtout ''​drbd''​ qui doit être installé après ''​heartbeat''​. 
  
-==== samba ==== +L'​ordre d'​installation à respecter concerne surtout DrBD qui doit être installé après Heartbeat. 
-[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] ​''​samba''​.+ 
 +==== Samba ==== 
 + 
 +[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] ​**[[apt://samba|samba]]**. 
 + 
 +Dans l'optique d'une gestion de Samba avec Heartbeat, il faut laisser le soin à ce dernier de démarrer Samba, il faut donc faire en sorte que Samba ne soit pas lancé au démarrage : 
 + 
 +  update-rc.d -f samba remove
  
-Dans l'​optique d'une gestion de ''​samba''​ avec ''​heartbeat'',​ il faut laisser le soin à ''​heartbeat''​ de démarrer ''​samba'',​ il faut donc faire en sorte que ''​samba''​ ne soit pas lancé au démarrage : 
-<​code>​update-rc.d -f samba remove</​code>​ 
 Il faut ensuite arrêter le service ''​samba''​ : Il faut ensuite arrêter le service ''​samba''​ :
-<​code>/​etc/​init.d/​samba stop</​code>​ 
  
-==== heartbeat ​==== +  /​etc/​init.d/​smb stop 
-[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] heartbeat.+ 
 +==== Heartbeat ​==== 
 + 
 +[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] ​**[[apt://heartbeat|heartbeat]]**. 
 + 
 +==== DrBD ====
  
-==== drbd ==== +<​note>​Le module ''​drbd''​ est disponible avec le noyau ''​server'' ​« de base » ​depuis ​au moins Hardy Heron((à vrai direje ne sais pas si c'​était déjà le cas pour les versions précédentes)). Cependant, afin d'​avoir un système récent avec un minimum de bug et de faille de sécurité, on passera au noyau ''​server''​ le plus récent.</​note>​
-<​note>​Le module ''​drbd''​ est disponible avec le noyau ''​server'' ​"de base" ​depuis Hardy Heron((à vrai dire je ne sais pas si c'​était déjà le cas pour les versions précédentes)). Cependant, afin d'​avoir un système récent avec un minimum de bug et de faille de sécurité, on passera au noyau ''​server''​ le plus récent.</​note>​+
  
 Mise à jour du système : Mise à jour du système :
-  * [[:​apt-get#​mise_a_jour_depots|Mise à jour des dépots]]+  * [[:​apt-get#​mise_a_jour_depots|Mise à jour des dépôts]]
   * [[:​apt-get#​mise_a_jour_paquets|Mise à jour des paquets]] (dist-upgrade)   * [[:​apt-get#​mise_a_jour_paquets|Mise à jour des paquets]] (dist-upgrade)
 Passer à la version du noyau la plus récente. Redémarrer. Passer à la version du noyau la plus récente. Redémarrer.
Ligne 111: Ligne 125:
   handlers {   handlers {
     pri-lost-after-sb "​reboot -f";     pri-lost-after-sb "​reboot -f";
-    pri-lost "​echo ​Déconnection ​des serveurs, vérifier les logs | mail -s '​SERVEUR:​ Alerte DRBD' admin@domain.fr";​+    pri-lost "​echo ​Déconnexion ​des serveurs, vérifier les logs | mail -s '​SERVEUR:​ Alerte DRBD' admin@domain.fr";​
     out-of-sync "echo Désynchronisation des serveurs, vérifier les logs | mail -s '​SERVEUR:​ Alerte DRBD' admin@domain.fr";​     out-of-sync "echo Désynchronisation des serveurs, vérifier les logs | mail -s '​SERVEUR:​ Alerte DRBD' admin@domain.fr";​
     pri-on-incon-degr "​reboot -f";     pri-on-incon-degr "​reboot -f";
Ligne 150: Ligne 164:
  
 ==== À faire sur chaque serveur en même temps ==== ==== À faire sur chaque serveur en même temps ====
-<note tip>Si vous vous êtes dit que vous alliez tout installer sur un serveur puis [[:tutoriel/:​comment_sauvegarder_partition_avec_partimage|cloner]] le premier serveur pour en obtenir un second identique (ce qui peut engendrer [[#​fichiers_a_personnaliser_apres_un_clonage|d'​autres problèmes]]),​ c'est là qu'il faut que vous sachiez que les instructions qui suivent doivent être lancées sur chacun des 2 serveurs, à moins de n'​utiliser ''​dd''​ pour l'​ensemble du/des disque(s) dur(s). Ce qui peut prendre //pas mal de temps//​...\\+<note tip>Si vous vous êtes dit que vous alliez tout installer sur un serveur puis [[:​tutoriel:​comment_sauvegarder_partition_avec_partimage|cloner]] le premier serveur pour en obtenir un second identique (ce qui peut engendrer [[#​fichiers_a_personnaliser_apres_un_clonage|d'​autres problèmes]]),​ c'est là qu'il faut que vous sachiez que les instructions qui suivent doivent être lancées sur chacun des 2 serveurs, à moins de n'​utiliser ''​dd''​ pour l'​ensemble du/des disque(s) dur(s). Ce qui peut prendre //pas mal de temps//​...\\
 **Sinon, il faut répéter tout ce qui vient d'​être fait sur le second serveur avant d'​aller plus loin.**</​note>​ **Sinon, il faut répéter tout ce qui vient d'​être fait sur le second serveur avant d'​aller plus loin.**</​note>​
  
Ligne 167: Ligne 181:
 Do you want to proceed? Do you want to proceed?
 [need to type '​yes'​ to confirm] </​file>​ [need to type '​yes'​ to confirm] </​file>​
-Taper ''​yes''​. Il est possible qu'une autre question demandant confirmation de destruction des données de la partition soit posée, répondez ''​yes''​ si vous êtes sur de ce que vous faites.+Taper ''​yes''​. Il est possible qu'une autre question demandant confirmation de destruction des données de la partition soit posée, répondez ''​yes''​ si vous êtes sûr de ce que vous faites.
 <​file>​v07 Magic number not found <​file>​v07 Magic number not found
 v07 Magic number not found v07 Magic number not found
Ligne 192: Ligne 206:
 Puisque ''​drbd''​ est lancé mais aucun serveur //​primaire//​ n'est déclaré. On le voit car après ''​st:'',​ il est indiqué ''​Secondary/​Secondary''​ ce qui signifie que le nœud sur lequel la commande est exécuté est //​secondaire//​ (le premier avant le ''/''​) et que l'​autre l'est aussi (le second après le ''/''​).\\ Puisque ''​drbd''​ est lancé mais aucun serveur //​primaire//​ n'est déclaré. On le voit car après ''​st:'',​ il est indiqué ''​Secondary/​Secondary''​ ce qui signifie que le nœud sur lequel la commande est exécuté est //​secondaire//​ (le premier avant le ''/''​) et que l'​autre l'est aussi (le second après le ''/''​).\\
 Pour ne connaître que l'​état de la grappe ''​drbd'',​ la commande suivante suffit : Pour ne connaître que l'​état de la grappe ''​drbd'',​ la commande suivante suffit :
-<​code>​drbdadm ​state r0</​code>​+<​code>​drbdadm ​role all</​code>​
 <​file>​Secondary/​Secondary</​file>​ <​file>​Secondary/​Secondary</​file>​
  
 ==== À ne faire que sur le serveur primaire ==== ==== À ne faire que sur le serveur primaire ====
-Il s'agit maintenant de déclarer un des 2 serveurs ​comm +Il s'agit maintenant de déclarer un des 2 serveurs ​comme 
- //​primaire//​, le serveur //​secondaire//​ se synchronisera //​automagiquement//​((oui je sais, ce terme n'est pas de moi, il est souvent utilisé dans les documentations Debian et dérivés, d'où sa place ici.)).\\+ //​primaire// ​: Le serveur //​secondaire//​ se synchronisera //​automagiquement//​((oui je sais, ce terme n'est pas de moi, il est souvent utilisé dans les documentations Debian et dérivés, d'où sa place ici.)).\\
 Lancer la commande : Lancer la commande :
 <​code>​drbdadm -- --overwrite-data-of-peer primary r0 <​code>​drbdadm -- --overwrite-data-of-peer primary r0
Ligne 209: Ligne 223:
         finish: 17:15:38 speed: 2,240 (2,240) K/​sec</​file>​         finish: 17:15:38 speed: 2,240 (2,240) K/​sec</​file>​
 On voit que le serveur secondaire se synchronise avec une superbe barre de progression.\\ On voit que le serveur secondaire se synchronise avec une superbe barre de progression.\\
-Le temps indiqué après ''​finish:''​ est le temps indicatif restant avant la fin de la première synchronisation. Pour diminuer ce temps, il est vivement conseillé de //​débrider//​ le taux de transfert de la synchronisation en modifiant **provisoirement** la configuration de ''​drbd''​. Dans le fichier **/​etc/​drbd.conf**,​ remplacer : +Le temps indiqué après ''​finish:''​ est le temps indicatif restant avant la fin de la première synchronisation. Pour diminuer ce temps, il est vivement conseillé de //​débrider//​ le taux de transfert de la synchronisation en tapant ​sur les deux serveurs : 
-<​file> ​   rate 3M;</​file>​ +<​code>​ 
-par +drbdsetup /dev/drbd0 syncer -r 100M 
-<​file> ​   rate 100M;</​file>​ +</​code>​ 
-Pour prendre la modification en compte, lancer ​sur les deux serveurs : + 
-<​code>​drbdadm adjust r0</​code>​ +Le débit ira donc jusqu'à la vitesse autorisée. Lire le [[#​au_sujet_de_la_gestion_de_la_bande_passante|chapitre]] concernant les débits à la fin de ce document. 
-Le débit ira donc aussi vite qu'il peut. Lire le [[#​au_sujet_de_la_gestion_de_la_bande_passante|chapitre]] concernant les débits à la fin de ce document.+ 
 +et pour revenir à la configuration courante: 
 +<​code>​ 
 +drbdadm adjust r0 
 +</​code>​
  
 Une fois les serveurs synchronisés,​ Une fois les serveurs synchronisés,​
Ligne 223: Ligne 241:
  0: cs:​Connected st:​Primary/​Secondary ds:​UpToDate/​UpToDate C r---  0: cs:​Connected st:​Primary/​Secondary ds:​UpToDate/​UpToDate C r---
     ns:2240 nr:0 dw:0 dr:2240 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:​149132568</​file>​     ns:2240 nr:0 dw:0 dr:2240 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:​149132568</​file>​
-il est temps de formater la partition ''​drbd''​ (vous avez, bien évidemment pensé à revenir à un débit de synchronisation normal) :+il est temps de formater la partition ''​drbd'' ​uniquement sur le serveur primaire ​(vous avez, bien évidemment pensé à revenir à un débit de synchronisation normal.) :
 <​code>​mkfs.ext3 /​dev/​drbd0</​code>​ <​code>​mkfs.ext3 /​dev/​drbd0</​code>​
 et de monter votre partition pour vérifier que tout va bien. Le montage de la partition doit utiliser **/​dev/​drbd0** et ne doit se faire **que sur le serveur primaire**. et de monter votre partition pour vérifier que tout va bien. Le montage de la partition doit utiliser **/​dev/​drbd0** et ne doit se faire **que sur le serveur primaire**.
Ligne 234: Ligne 252:
 ===== samba ===== ===== samba =====
 ==== Gestion des utilisateurs ==== ==== Gestion des utilisateurs ====
-<​note>​Une solution de gestion des utilisateurs est proposée ici, libre à vous de choisir de la suivre.</​note>​+<​note>​Une solution de gestion des utilisateurs est proposée ici : Libre à vous de choisir de la suivre.</​note>​
 Les serveurs redondants ne sont utilisés que pour le partage de fichiers avec ''​samba''​. Sachant cela, il n'est pas forcément nécessaire,​ dans une configuration simple, de faire en sorte que tous les utilisateurs système soient créés dans des groupes d'​utilisateurs différents.\\ Les serveurs redondants ne sont utilisés que pour le partage de fichiers avec ''​samba''​. Sachant cela, il n'est pas forcément nécessaire,​ dans une configuration simple, de faire en sorte que tous les utilisateurs système soient créés dans des groupes d'​utilisateurs différents.\\
 Ce qui est proposé ici est de gérer les droits uniquement via ''​samba''​. C'est une solution applicable la plupart du temps. Ce qui est proposé ici est de gérer les droits uniquement via ''​samba''​. C'est une solution applicable la plupart du temps.
Ligne 248: Ligne 266:
 ==== Configuration ==== ==== Configuration ====
 [[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​samba/​smb.conf** : [[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​samba/​smb.conf** :
-<​file>#​======================= Global Settings ======================= ​+<​file>#​======================= Global Settings =======================
  
 [global] [global]
Ligne 287: Ligne 305:
 os level = 65</​file>​ os level = 65</​file>​
 Si samba partage des imprimantes,​ ajouter les lignes suivantes : Si samba partage des imprimantes,​ ajouter les lignes suivantes :
-<​file>##########​ Printing ########## ​+<​file>##########​ Printing ##########
    load printers = yes     load printers = yes 
    ​printing = bsd     ​printing = bsd 
Ligne 294: Ligne 312:
    ​printcap name = cups     ​printcap name = cups 
  
-[printers] ​+[printers]
    ​comment = All Printers ​    ​comment = All Printers ​
    ​browseable = no     ​browseable = no 
Ligne 303: Ligne 321:
    ​create mask = 0700     ​create mask = 0700 
  
-[print$] ​+[print$]
    ​comment = Printer Drivers ​    ​comment = Printer Drivers ​
    path = /​var/​lib/​samba/​printers ​    path = /​var/​lib/​samba/​printers ​
Ligne 309: Ligne 327:
    read only = yes     read only = yes 
    guest ok = no     guest ok = no 
-# Uncomment to allow remote administration of Windows print drivers.  +# Uncomment to allow remote administration of Windows print drivers. 
-# Replace '​ntadmin'​ with the name of the group your admin users are +# Replace '​ntadmin'​ with the name of the group your admin users are
 # members of. # members of.
 ######### !!!!!!!!!! Attention à cette ligne !!!!!!!!!!!!! ######## ######### !!!!!!!!!! Attention à cette ligne !!!!!!!!!!!!! ########
Ligne 348: Ligne 366:
 ==== Configuration ==== ==== Configuration ====
 [[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​ha.d/​ha.cf** : [[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​ha.d/​ha.cf** :
-<​file>​mcast eth0 239.0.0.10 694 1 0 +<​file>​mcast eth0 239.0.0.10 694 1 0
  
-warntime 4  +warntime 4 
-deadtime 5  +deadtime 5 
-initdead 15  +initdead 15 
-keepalive 2 +keepalive 2
  
-auto_failback off +auto_failback off
  
 node serv1 serv2</​file>​ node serv1 serv2</​file>​
-<​note>​On remarque que le [[http://​doc.ubuntu-fr.org/​multicast|multicast]] est utilisé, ceci afin de faire en sorte que ce fichier puisse être identique sur les deux serveurs.</​note>​+<​note>​ 
 +  - On remarque que le [[:​multicast|multicast]] est utilisé, ceci afin de faire en sorte que ce fichier puisse être identique sur les deux serveurs. 
 +  - Les noms ''​serv1''​ et ''​serv2''​ sont définis dans le fichier **/​etc/​hosts**. 
 +</​note>​
  
 Pour générer le fichier **/​etc/​ha.d/​authkeys** : Pour générer le fichier **/​etc/​ha.d/​authkeys** :
Ligne 366: Ligne 387:
 Les droits sur ce fichiers doivent être modifiés comme indiqué, le propriétaire doit être ''​root''​.</​note>​ Les droits sur ce fichiers doivent être modifiés comme indiqué, le propriétaire doit être ''​root''​.</​note>​
  
-[[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **etc/​ha.d/​haresources** :+[[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/etc/​ha.d/​haresources** :
 <​file>​serv1 IPaddr::​192.168.214.20 drbddisk::​r0 Filesystem::/​dev/​drbd0::/​data::​ext3 samba MailTo::​admin@domain.fr::​Changement_d_etat_serveur</​file>​ <​file>​serv1 IPaddr::​192.168.214.20 drbddisk::​r0 Filesystem::/​dev/​drbd0::/​data::​ext3 samba MailTo::​admin@domain.fr::​Changement_d_etat_serveur</​file>​
 <​note>​Un mail sera envoyé à l'​administrateur chaque fois que le rôle des serveurs changera.</​note>​ <​note>​Un mail sera envoyé à l'​administrateur chaque fois que le rôle des serveurs changera.</​note>​
Ligne 377: Ligne 398:
   * la commande lancée sur le serveur primaire lors du démarrage du serveur est :   * la commande lancée sur le serveur primaire lors du démarrage du serveur est :
 <​code>/​etc/​ha.d/​resource.d/​Filesystem /dev/drbd0 /data ext3 start</​code>​ <​code>/​etc/​ha.d/​resource.d/​Filesystem /dev/drbd0 /data ext3 start</​code>​
-Ce script permet de monter le périphérique /dev/drbd0 sous /data en ext3fs.+Ce script permet de monter le périphérique ​**/dev/drbd0** sous **/data** en ext3fs.
  
 ===== Finalisation ===== ===== Finalisation =====
Ligne 399: Ligne 420:
  
 ==== Séparation physique des flux ==== ==== Séparation physique des flux ====
-Il est tout à fait possible (et conseillé, mais je n'ai pas mis cette solution en place) d'​avoir 2 cartes réseau sur les serveurs : +Il est tout à fait possible (et conseillé) d'​avoir 2 cartes réseau sur les serveurs : 
-  * une pour la connexion au réseau : cette connexion sert aux utilisateurs pour accéder aux données, +  * eth0 : pour la connexion au réseau : cette connexion sert aux utilisateurs pour accéder aux données, 
-  * une pour une connexion directe (via câble croisé) entre les serveurs : celle-ci pour la synchronisation des données **uniquement**((il ne faut pas faire passer le signe de vie ''​heartbeat''​ par cette connexion, car le signe de vie **doit** passer par le lien que les utilisateurs utilisent pour vérifier son bon fonctionnement.)).+  * eth1 : pour une connexion directe (via câble croisé) entre les serveurs : celle-ci pour la synchronisation des données **uniquement**((il ne faut pas faire passer le signe de vie ''​heartbeat''​ par cette connexion, car le signe de vie **doit** passer par le lien que les utilisateurs utilisent pour vérifier son bon fonctionnement.)). 
 +{{:​tutoriel:​mirroring_schema_reseau.png|}} 
 + 
 +=== Modification de configuration === 
 +Le fichier **/​etc/​drbd.conf** doit être modifié, le débit ajusté ou supprimé (comme ici) et les adresses IP modifiées : 
 +<​file>​... 
 + 
 +  syncer { 
 +    verify-alg sha1; 
 +  } 
 + 
 +... 
 + 
 +  on serv1 { 
 +    address ​  ​192.168.24.10:​7788;​ 
 +  } 
 +  on serv2 { 
 +    address ​  ​192.168.24.11:​7788;​ 
 +  } 
 +}</​file>​ 
 +Ainsi que les éventuels partages (NFS) permettant la synchronisation des fichiers de configuration. 
 +<note important>​Attention de ne pas modifier le fichier **/​etc/​hosts**,​ sauf en rajoutant éventuellement des nouveaux noms de machine, ''​serv1_eth1''​ par exemple, puisque ''​heartbeat''​ utilise les noms de machine associés à eth0.</​note>​
  
 ==== Sous-réseau Gigabit dédié ==== ==== Sous-réseau Gigabit dédié ====
Ligne 409: Ligne 451:
   * Port 3 : liaison avec l'​autre serveur (lien Gigabit)   * Port 3 : liaison avec l'​autre serveur (lien Gigabit)
 De cette manière, la synchronisation entre les deux serveurs se fait via un lien Gigabit, et les utilisateurs ne sont pas pénalisés. La valeur du débit peut alors être fixée à ''​10M''​. De cette manière, la synchronisation entre les deux serveurs se fait via un lien Gigabit, et les utilisateurs ne sont pas pénalisés. La valeur du débit peut alors être fixée à ''​10M''​.
 +
 +=== Modification de la configuration ===
 +Seul le fichier **/​etc/​drbd.conf** doit être modifié, plus particulièrement le débit alloué à ''​drbd''​ :
 +<​file>​...
 +  ​
 +  syncer {
 +    rate 10M;
 +    verify-alg sha1;
 +  }
 +
 +...</​file>​
  
 ===== Fichiers importants ===== ===== Fichiers importants =====
Ligne 464: Ligne 517:
   * /​var/​lib/​heartbeat/​hb_uuid (supprimer ce fichier sur l'un des 2 serveurs après clonage, il sera généré au prochain démarrage de heartbeat)   * /​var/​lib/​heartbeat/​hb_uuid (supprimer ce fichier sur l'un des 2 serveurs après clonage, il sera généré au prochain démarrage de heartbeat)
   * /​etc/​udev/​rules.d/​70-persistent-net.rules (pour faire en sorte que l'​interface Ethernet eth0 soit utilisable)   * /​etc/​udev/​rules.d/​70-persistent-net.rules (pour faire en sorte que l'​interface Ethernet eth0 soit utilisable)
 +
 +===== En cas de pépin... =====
 +==== Problèmes lors de la mise en place de drbd ====
 +En cas d'​erreur :
 +<​file>/​dev/​drbd0:​ Failure: (124) Device is attached to a disk (use detach first)
 +Command '​drbdsetup /dev/drbd0 disk /dev/sda6 /dev/sda6 internal --set-defaults --create-device --on-io-error=detach'​ terminated with exit code 10</​file>​
 +faire :
 +<​code>​drbdadm detach r0
 +drbdadm up r0</​code>​
 +
 +En cas d'​erreur :
 +<​file>/​dev/​drbd0:​ Failure: (125) Device has a net-config (use disconnect first)
 +Command '​drbdsetup /dev/drbd0 net 192.168.214.10:​7788 192.168.214.11:​7788 C --set-defaults --create-device'​ terminated with exit code 10</​file>​
 +faire :
 +<​code>​drbdadm disconnect r0
 +drbdadm up r0</​code>​
 +
 +En cas d'​erreur :
 +<​file>/​dev/​drbd0:​ Failure: (114) Lower device is already claimed. This usually means it is mounted.
 +Command '​drbdsetup /dev/drbd0 disk /dev/sad6 /dev/sad6 internal --set-defaults --create-device --on-io-error=detach'​ terminated with exit code 10</​file>​
 +c'est que la partition est encore montée, il faut d'​abord la démonter avec la commande :
 +<​code>​umount /​dev/​sda6</​code>​
 +
 +==== drbd : Standalone ====
 +Il est possible qu'​après une coupure sur le réseau ou à cause d'un firewall bloquant mal configuré les deux serveurs ne se voient plus. Lancer la commande :
 +<​code>​cat /​proc/​drbd</​code>​
 +Si ils apparaissent comme étant en "​Standalone"​ c'est qu'ils ne se voient plus.
 +
 +Sur un des deux nœuds, lancer la commande :
 +<​code>​drbdadm -- --discard-my-data connect all</​code>​
 +et sur l'​autre la commande :
 +<​code>​drbdadm connect all</​code>​
 +Là les deux nœuds se voient à nouveau en secondaire/​secondaire. Sur l'un des 2, lancer la commande :
 +<​code>​drbdadm primary r0</​code>​
 +Et le problème devrait être résolu.
 +
 +==== Configuration du pare-feu (Firewall) ====
 +Voici les ports à ouvrir: 694 (udp) pour heartbeat ​ et 7788 (tcp) pour drbd
 +
 +
 +----
 +
 +//​Contributeur principal : [[:​utilisateurs:​mrwaloo|MrWaloo]].//​ \\
 +Merci à [[http://​forum.ubuntu-fr.org/​profile.php?​id=123930|tempus1984]] pour le dernier chapitre et pour avoir validé ce tutoriel.
  
 ---- ----
  
  • tutoriel/mirroring_sur_deux_serveurs.1233836671.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)