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

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique_hd [2007/10/21 21:41] 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 10: 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 ====== ======DRBD ======
-===== Compilation ===== 
  
 +
 +
 +===== 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  0
 +
 +===== 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.1193002895.txt.gz · Dernière modification : 2007/10/21 21:41 de thierry