Outils pour utilisateurs

Outils du site


informatique_hd

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
informatique_hd [2007/10/19 15:03] – créée thierryinformatique_hd [2011/11/26 00:04] (Version actuelle) thierry
Ligne 1: Ligne 1:
 ====== Haute Disponibilité ====== ====== Haute Disponibilité ======
 +====== Heartbeat 2 =====
 +
 +Liens:
 +  *http://doc.ubuntu-fr.org/tutoriel/mirroring_sur_deux_serveurs
 +
 ====== Heartbeat ====== ====== Heartbeat ======
 +
 ===== Installation ===== ===== Installation =====
   # apt-get install heartbeat   # apt-get install heartbeat
 +
 +
 +
 +
 ===== Configuration ===== ===== Configuration =====
 +On est sur ''hb1''.
 +
 ''ha.cf'' est manquant par defaut, donc: ''ha.cf'' est manquant par defaut, donc:
   # cd /etc/ha.d   # cd /etc/ha.d
Ligne 9: Ligne 21:
   # vi ha.cf   # vi ha.cf
 Faire en sorte d'avoir: Faire en sorte d'avoir:
-  FIXME+  debugfile /var/log/ha-debug 
 +  logfile /var/log/ha-log 
 +  logfacility     local0 
 +  keepalive 5 
 +  deadtime 30 
 +  warntime 10 
 +  initdead 120 
 +  udpport 694 
 +  baud    19200 
 +  serial  /dev/ttyS0      # <= Cela suppose un cable série croisé entre les 2 becannes 
 +  bcast   eth0            # <= Cela suppose un reseau commun 
 +  auto_failback on 
 + 
 +  node hb1 
 +  node hb2 
 +Où, ''hb1'' et ''hb2'' correspond au ''uname -r'' des bécannes. 
 Et puis: Et puis:
   # zcat /usr/share/doc/heartbeat/haresources.gz >haresources   # zcat /usr/share/doc/heartbeat/haresources.gz >haresources
   # vi haresources   # vi haresources
 Faire en sorte d'avoir: Faire en sorte d'avoir:
-  FIXME+  hb1 IPaddr2::<IP_A_MONTER>/24/eth0:1 apache2 MailTo::root 
 + 
 +  * ''hb1'' => le nom du maitre 
 +  * ''<IP_A_MONTER>'' => l'ip qui sera monter sur ''hb1'' ou ''hb2'' selon ''heartbeat'' 
 +  * /24 => masque reseau 
 +  * /eth0:1 => nom de l'interface qui sera créé 
 +  * ''apache2'' => le service qui sera demarré 
 +  * ''MailTo::root'' => envoi d'un mail a root pour l'informer de l'etat  
 + 
 +Et enfin: (toujours dans ''/etc/ha.d/''
 +  # cp /usr/share/doc/heartbeat/authkeys . 
 +  # vi authkeys 
 +Faire en sorte d'avoir: 
 +  auth 2 
 +  2 sha1 le_secret_partage 
 +Et faire aussi (rw unique pour root): 
 +  chmod 0600 authkeys 
 + 
 +Copier les 3 fichiers sur ''hbd2'', c'est a dire: 
 +  * ha.cf 
 +  * haresource 
 +  * authkeys 
 + 
 +Car ces fichiers doivent être identique sur les 2 becannes. 
 + 
 +===== Tester avec Apache ===== 
 +Vu sur ci-dessus, on va tester avec le service ''apache2''
 + 
 +D'abord, faire en sorte qu' ''apache2'' ne demarre plus automatiquement. 
 + 
 +  # /etc/init.d/apache2 stop 
 +  # update-rc.d -f apache2 remove 
 + 
 +Maintenant, ''heartbeat'' va demarrer le service, sur la bécanne maitre... ou esclave. 
 + 
 +Faire sur les 2 serveurs, hb1 et hb2: 
 + 
 +  # /etc/init.d/heartbeat start 
 +Et regarder les logs et le service apache demarrer sur le maitre, et accessible sur l'ip de configuration... 
 + 
 +======DRBD ====== 
 + 
 + 
 + 
 +===== Installer ===== 
 +On est sur HB1 (qui a la même distrib que HB2) ! 
 + 
 +  # aptitude update 
 +  # aptitude install drbd-utils  
 +En fait: ''drbd0.7-utils'' 
 +  # aptitude install drbd0.7-utils 
 +En fait: ''drbd0.7-module-source''\\ 
 + 
 +Et aussi: 
 +  # aptitude install linux-headers-`uname -r` 
 + 
 + 
 + 
 +==== Compiler ==== 
 +Suivre, grosso merdo, le How-to ici: 
 +  * http://ubuntuforums.org/showthread.php?t=538002 
 + 
 +  # cd /usr/src 
 +  # ls -lart 
 +  -rw-r--r--  1 root root 123283 2007-01-17 18:43 drbd0.7.tar.gz 
 +  # tar xvzf drbd0.7.tar.gz 
 +  # cd modules/drbd 
 +  # m-a 
 + 
 +  Choose “SELECT” and hit enter 
 +  Choose <del>“drbd8-module”</del> “drbd7-module” and hit enter 
 +  Choose “BUILD” 
 +  Choose “NO” if asked to install or upgrade the selected source package. 
 +  Continue the process and install the module when prompted. 
 + 
 +  # update-modules 
 +  # modprobe drbd 
 + 
 +Copier et installer le package sur l'autre bécanne: 
 +  # scp /usr/src/drbd0.7-module-2.6.18-5-686_0.7.21-4+2.6.18.dfsg.1-13etch4_i386.deb <IP_DE_HB2>:/usr/src/
 +Et sur HB2, faire simplement ça: 
 +  # aptitude update 
 +  # aptitude install drbd-utils 
 +  # cd /usr/src 
 +  # dpkg -i drbd0.7-module-2.6.18-5-686_0.7.21-4+2.6.18.dfsg.1-13etch4_i386.deb 
 +  # update-modules 
 +  # modprobe drbd 
 +Ok. 
 +  # lsmod | grep drbd 
 +  drbd                  127444 
 + 
 +===== Configurer ===== 
 +On est dans le cas d'une partition disponible en ''/dev/hda1'' sur ''hb1'' et ''hb2''
 + 
 + 
 +==== drbd.conf ==== 
 +Editer le fichier ''/etc/drbd.conf'' et faire en sorte d'avoir: 
 + 
 +  resource stuff { 
 +   
 +  protocol C; 
 +   
 +  incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f"; 
 +   
 +  startup { 
 +    # wfc-timeout  0; 
 +   
 +    wfc-timeout 120; 
 +   
 +    degr-wfc-timeout 120;    # 2 minutes. 
 +  } 
 +   
 +  disk { 
 +    on-io-error   detach; 
 +    #on-io-error   panic; 
 +  } 
 +   
 +  net { 
 +  } 
 +   
 +  syncer { 
 +    #rate 10M; 
 +    rate 4M; 
 +   
 +    group 1; 
 +   
 +    al-extents 257; 
 +  } 
 +   
 +  on hb1 { 
 +    device     /dev/drbd0; 
 +    disk       /dev/hda1; 
 +    address    <IP_DE_HB1>:7788; 
 +    meta-disk  internal; 
 +  } 
 +     
 +  on hb2 { 
 +    device    /dev/drbd0; 
 +    disk      /dev/hda1; 
 +    address   <IP_DE_HB2>:7788; 
 +    meta-disk internal; 
 +  } 
 +  } 
 +J'ai adapté la config, parce que je n'ai pas 1 Gb/s sur une carte reseau dédié. 
 + 
 +**Attention**: J'avais mis **''al-extents 101;''** est j'ai eu plein de problème. 
 + 
 +==== mounter ==== 
 + 
 +Sur les 2 bécannes: 
 +  # /etc/init.d/drbd start 
 +  # cat /proc/drbd 
 +  version: 0.7.21 (api:79/proto:74) 
 +   SVN Revision: 2326 build by root@hb1, 2007-10-21 23:31:57 
 +   0: cs:Connected st:Secondary/Secondary ld:Inconsistent 
 +      ns:0 nr:0 dw:0 dr:0 al:0 bm:224 lo:0 pe:0 ua:0 ap:0 
 +   1: cs:Unconfigured 
 +  # tail -f /var/log/syslog 
 +  ... 
 +  Oct 22 01:35:54 hb1 kernel: drbd0: drbd0_receiver [11113]: cstate WFReportParams --> Connected 
 +  Oct 22 01:35:54 hb1 kernel: drbd0: I am inconsistent, but there is no sync? BOTH nodes inconsistent! 
 +  Oct 22 01:35:54 hb1 kernel: drbd0: Secondary/Unknown --> Secondary/Secondary 
 + 
 +Les 2 etants "Secondary", on force ''hb1'' en maitre:\\ 
 +Donc sur ''hb1''
 +  # drbdsetup /dev/drbd0 primary --do-what-I-say 
 +La synchronisation s'effectue: 
 +  # cat /proc/drbd 
 +  version: 0.7.21 (api:79/proto:74) 
 +  SVN Revision: 2326 build by root@hb1, 2007-10-21 23:31:57 
 +   0: cs:SyncSource st:Primary/Secondary ld:Consistent 
 +      ns:151212 nr:0 dw:0 dr:151368 al:0 bm:233 lo:0 pe:28 ua:39 ap:0 
 +          [=>..................] sync'ed:  8.6% (1669720/1820824)K 
 +          finish: 0:06:45 speed: 4,092 (4,080) K/sec 
 +   1: cs:Unconfigured 
 +Et puis, seulement sur primary, formater en ''ext3''
 +  # mkfs.ext3 /dev/drbd0 
 + 
 +Mounter le disk (toujours sur ''primary'' ): 
 +  # mkdir /mnt/stuff 
 +  # mount /dev/drbd0 /mnt/stuff 
 + 
 +Et voila, on peut ecrire dedans, et c'est synchroniser sur ''hb2''
 + 
 +Mais on ne le sait pas, parce que ''hb2'' n'a un accès au disk, et sa seule source d'information est un  
 +  # cat /proc/drbd 
 + 
 +==== Test ==== 
 +Voir en alternant les maitres et esclaves: 
 + 
 +''hb1'' est le maitre, il lit et ecrit le disk drbd... 
 +  # umount /mnt/stuff 
 +  # drbdsetup /dev/drbd0 secondary 
 +Il n'y a plus de maitre !
  
 +Sur ''hb2'', devenir maitre:
 +  # drbdsetup /dev/drbd0 primary
 +Mounter le disk
 +  # mkdir /mnt/test
 +  # mount /dev/drbd0 /mnt/test
 +Et voila, ''hb2'' lit et ecrit sur le disk drbd !
informatique_hd.1192806223.txt.gz · Dernière modification : 2007/10/19 15:03 de thierry