Outils pour utilisateurs

Outils du site


drdb

Différences

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

Lien vers cette vue comparative

drdb [2014/05/09 18:55] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Cluster Web sur OpenSuSE 11.0 ======
 +
 +
 +===== pré-requis =====
 +
 +
 +Cette documentation est faite sur la base d'un cluster en test pour faire un serveur de media
 +sur des machines HP DL380 G6 12Go de Ram, 2 To en Raid 5 (1,3 terra effectif).\\
 +
 +OpenSuSE 11,0 doit etre installer en mode texte avec une partition pour le point de montage /srv
 +La configuration d'​apache ne sera pas abordé dans cette documentation (largement documenter sur le net)seul la partie drbd et heartbeat seront abordées.\\
 +
 +Si ce n'est pas préciser toutes les manipulations sont a faire sur les deux serveurs\\
 +
 +tout d'​abords éditer le fichier /etc/fstab et commenter la ligne qui correspond a la partition qui sera mise en raid via drbd. C'est heartbeat qui s'​occupera de la monter\\
 +
 +===== DRBD =====
 +
 +
 +Installation de drbd\\
 +
 +Pour l'​installation de drbd deux package a installer via yast:\\
 +drbd-8.2.6-0.1\\
 +drbd-kmp-default-8.2.6_2.6.25.9_0.2-0.1\\
 +
 +vous pouvez aussi installer l'​interface de gestion de drbd de Yast\\
 +yast2-drbd-2.13.1-158.1\\
 +
 +===== Modules du Kernel =====
 + 
 +
 + Tout d'​abors il faut monter le module drbd:\\
 +
 +''#​modprobe drbd''​
 +
 +pour vérifié qu'il est bien monter
 +
 +''#​lsmod|grep drbd''​
 +
 +il doit vous répondre un truc du genre :\\
 +''​
 +drbd                  248344 ​ 4''​
 +
 +pour le faire monter au boot de la machine editer le fichier /​etc/​sysconfig/​kernel et modifier le comme suis:\\
 +''​MODULES_LOADED_ON_BOOT="​drbd"''​\\
 +
 +a partir du moment ou le modules est monté vous pouvez taper cette commande pour avoir des informations:​
 +       ​media1:​~ # cat /proc/drbd
 +       ​version:​ 8.2.6 (api:​88/​proto:​86-88)
 +       ​GIT-hash:​ 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre,​ 2008-05-30 12:59:17
 +
 +===== Configuration de drbd =====
 +
 +
 +Nous partons de hypothèses que la conf d'​apache sera répliquer via rsync et que le « documentroot » d'​apache sera lui répliquer via drbd
 +
 +tout d'​abords éditer le fichier /etc/fstab et commenter la ligne qui correspond a la partition qui sera mise en raid via drbd. C'est heartbeat qui s'​occupera de la monter
 +
 +pour cela le fichier de configuration suivant a été créer:
 +
 +       #
 +       # please have a a look at the example configuration file in
 +       # /​usr/​share/​doc/​packages/​drbd/​drbd.conf
 +       #
 +       ​global { usage-count yes; }
 +       ​common { syncer { rate 640M; } }
 +       ​resource r0 {
 +               ​protocol C;
 +               net {
 +                       ​cram-hmac-alg sha1;
 +                       ​shared-secret "​FooFunFactory";​
 +               }
 +               on media1 {
 +                       ​device ​   /dev/drbd1;
 +                       ​disk ​     /​dev/​cciss/​c0d0p6;​
 +                       ​address ​  ​192.168.1.1:​7789;​
 +                       ​meta-disk internal;
 +               }
 +               on media2 {
 +                       ​device ​   /dev/drbd1;
 +                       ​disk ​     /​dev/​cciss/​c0d0p6;​
 +                       ​address ​  ​192.168.1.2:​7789;​
 +                       ​meta-disk internal;
 +               }
 +               
 +La section global est surtout faites pour les statistiques du projet drbd consultable sur http://​usage.drbd.org.
 +
 +Si vous ne voulez pas y participer il faut mettre l'​option usage-count a no
 +
 +Dans la section common vous pouvez mettre les options globale pour toutes les différents ressources a répliquer:
 +
 +L'​option « syncer » permet de régler le débit entre les différents nœuds (640M est le maximum attention j'ai mis le max car je passe par un réseau dédié a ca c'est a corriger dans le cas d'une réplication via le réseau principal)
 +
 +La section ressources définis ce qu'on veux répliquer
 +
 +Le « r0 » definis le nom de la ressources
 +
 +« Protocol C » définis le type de réplication (le C etant le plus robuste et le plus sécurisé) pour plus de détail sur les protocol voir l'​adresse suivante:\\
 +http://​www.drbd.org/​users-guide-emb/​s-replication-protocols.html
 +
 +Le device représente le disque drbd virtuel ici drbd1
 +
 +le disk est la partition physique
 +
 +l'​address représente les adresses IP des deux serveurs
 +
 +le meta-disk lo po bien compris
 +
 +ce fichier de conf doit être identiques sur les deux serveurs.
 +
 +Une fois cela fait lancer sur les deux serveurs en meme temps 
 +
 +''#/​etc/​init.d/​drbd start''​
 +
 +il doit vous renvoyer un truc comme cela
 +
 +''​Starting DRBD resources: ​   [ d0 s0 n0 ].''​
 +
 +il doit vous dire cela sur les deux serveurs.
 +
 +Une fois cela fait taper la commande suivante:
 +
 +''#​cat /​proc/​drbd''​
 +
 +       ​version:​ 8.2.6 (api:​88/​proto:​86-88)
 +       ​GIT-hash:​ 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre,​ 2008-05-30 12:59:17
 +       0: cs:​Connected st:​Secondary/​Secondary ds:​Inconsistent/​Inconsistent C r---
 +           ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:​149134808
 +
 +en gros ils se voient bien mais ne se réplique pas
 +il faut donc lui dire de lancer la réplication pour ce faire taper la commande:
 +
 + ''​drbdadm -- --overwrite-data-of-peer primary r0''​
 +
 +cette commande définis le primaire par rapport au secondaire elle est a lancer sur le serveur « primaire »
 +
 +une fois cette commande lancé on peux refaire un cat /proc/drbd et on tombe sur ce genre de chose:
 +
 +      version: 8.2.6 (api:​88/​proto:​86-88)
 +      GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre,​ 2008-05-30 12:59:17
 +       0: cs:​SyncSource st:​Primary/​Secondary ds:​UpToDate/​Inconsistent C r---
 +          ns:2240 nr:0 dw:0 dr:2240 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:​149132568
 +               ​[>​....................] sync'​ed: ​ 0.1% (1345637/​1345639)M
 +              finish: 17:15:38 speed: 83,2 (83,2) K/sec
 +              ​
 +avec une jolie barre de progression on vois aussi que l'​affichage de st est passé de Secondary/​secondary a Primary/​Secondary
 +
 +Une fois terminer la synchronisation on se retrouve avec ca:
 +
 +      media1:~ # cat /proc/drbd
 +      version: 8.2.6 (api:​88/​proto:​86-88)
 +      GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre,​ 2008-05-30 12:59:17
 +      1: cs:​Connected st:​Primary/​Secondary ds:​UpToDate/​UpToDate C r---
 +          ns:8776952 nr:228 dw:8777180 dr:2427564 al:5229 bm:49 lo:0 pe:0 ua:0 ap:0 oos:0
 +      media1:~ # 
 +      ​
 +il n'y a plus qu'a formater la partition:
 +
 +''#​mkreiserfs /​dev/​drbd1''​
 +
 + Puis monter la partition
 +
 +''#​mount /dev/drbd1 /​mnt''​
 +
 + ​Créer le répertoire pour apache (sachant que le point de montage sera /srv
 +
 +''#​cd /mnt\\
 +#mkdir www\\
 +#mkdir www/​htdocs\\
 +#chown -R wwwrun:www www''​
 +
 +Une fois cela fait démonter la partition
 +
 +''#​umount /​dev/​drbd1''​
 +
 +voilà la conf de drbd est terminer on peux passé a heartbeat.
 +
 +
 +===== HEARTBEAT =====
 +
 +===== pré-requis =====
 +
 +
 +Citations de http://​doc.ubuntu-fr.org/​tutoriel/​mirroring_sur_deux_serveurs
 +
 +« 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), 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. »
 +
 +===== installation de heartbeat =====
 +
 +Via Yast les package a installer sont:\\
 +
 +heartbeat-core-2.1.3-19.1\\
 +heartbeat-resources-2.1.3-19.1\\
 +heartbeat-2.1.3-19.1\\
 +heartbeat-ldirectord-2.1.3-19.1\\
 +
 +===== Configuration de Heartbeat =====
 +
 +
 +Heartbeat a besoins d'au moins trois fichier pour tourner:\\
 +
 +haresources\\
 +ha.cf\\
 +authkeys\\
 +
 +==== Fichier /​etc/​ha.d/​haresources ====
 +
 +ce fichier définis les ressources a partager entre les deux nœuds du cluster:
 +voici la ligne a rajouter en bas du fichier:
 +
 +''​media1 ​ IPaddr::​192.168.202.182 drbddisk::​r0 Filesystem::/​dev/​drbd1::/​srv apache2''​
 +
 +sachant que:
 +
 +media1 est le noeud « principale »
 +
 +Ipaddr::​192.168.202.182 est l'​adresse IP virtuel que heartbeat va monté sur le principale et faire basculer en cas de crash sur le secondaire.
 +
 +drbddisk::​r0 est la ressources a lancé
 +
 +Filesystem::/​dev/​drbd1::/​srv est le montage de la partition drbd1 sur son point de montage /srv
 +
 +et le lancement d'​apache une fois tous le reste monté
 +
 +==== Fichier /​etc/​ha.d/​ha.cf ====
 +
 +
 +       ​logfile /​var/​log/​ha-log
 +       ​logfacility ​    ​local0
 +       ucast bond0 192.168.202.181
 +       ​auto_failback off
 +       ​node ​   media1
 +       ​node ​   media2
 +
 +avec:
 +
 +logfile qui définis le fichier de log\\
 +
 +logfacility qui définis le niveau de log
 +
 +ucast définis par quel interface « les battements de cœur » se font  ainsi que l'​adresse IP vers laquelle ils sont envoyés (en clair l'​autre nœud du cluster)
 +
 +l'auto failback est a off pour éviter qu'une fois basculé in ne re bascule pas sur un maitre tout neuf sans notre permission
 +
 +et l'​option node permets de définir les différents nœuds.
 +
 +==== Fichier /​etc/​ha.d/​ha.cf ====
 +
 +
 +ce fichier permets l'​authentification entre les deux serveurs
 +
 +je n'y ai pas touché car le cluster est sur une dmz non accessible par le net et par conséquent j'ai laisser par défaut.
 +
 +===== POST INSTALLATION =====
 +
 +
 +Lancé yast, allé dans systemes/ runlevel editor et lancé drbd et heartbeat au boot
 +
 +redemarrer le tout et vous devez avoir acces a votre serveur web via l'​adresse IP virtuel donner par heartbeat.
 +
 +Si jamais cela ne foctionne pas regarder dans le /​var/​log/​messages et /​var/​log/​ha-log pour voir si il y a des problèmes
 +
 +===== ANNEXES =====
 +
 +**drbd**\\
 +
 +http://​doc.ubuntu-fr.org/​tutoriel/​mirroring_sur_deux_serveurs/​\\
 +http://​perso.ens-lyon.fr/​sebastien.mei/​wiki/​doku.php?​id=documentations:​drbd\\
 +http://​www.drbd.org/​docs/​install/​\\
 +
 +**hertbeat**\\
 +
 +http://​wiki.openvz.org/​HA_cluster_with_DRBD_and_Heartbeat\\
 +http://​www.linux-ha.org/​\\
 +http://​doc.ubuntu-fr.org/​heartbeat/​\\
 +
  
drdb.txt · Dernière modification: 2014/05/09 18:55 (modification externe)