Differences

This shows you the differences between two versions of the page.

Link to this comparison view

saisp:labs:05:contents:04 [2014/03/23 19:11]
alexandru.carp
saisp:labs:05:contents:04 [2014/03/24 16:40] (current)
alexandru.carp [04. [20p] DRBD]
Line 1: Line 1:
-==== 04. Linux-HA ​====+==== 04. [20p] DRBD ====
  
-**Linux-HA** este o solutie de clustering. Vom configura un cluster simplu, format din două noduri+Dorim sa asiguram replicarea continutului pentru clusterul configurat la punctul anterior. Vom folosi DRBD.
  
-Topologia conceptuala este cea din figura de mai sus. Observatii: +{{:saisp:​labs:​05:​contents:​lab05-drbd.jpg|}}
-  * Cele două realservere din topologia LVS vor fi configurate ca un cluster. +
-  * Directorul din topologia LVS nu mai are nici un rol aici. Inchideti masina virtuala respectiva, pentru a nu consuma resurse inutil. +
-  * Adresa IP prin care va fi accesibil serviciul HTTP este 10.0.0.50.+
  
-Pachetul ​''​heartbeat'' ​este deja instalat pe **saisp-vm-2** ​si **saisp-vm-3**.+Vom folosi o legatura directa intre intefetele ​''​eth1'' ​ale nodurilor. Aceasta legatura va fi folosita pentru traficul de sincronizare ​si replicare al DRBD.
  
-Este necesar ca stațiile să se poată adresa una pe cealaltă folosind doar hostname-ulAdăugați liniile corespunzătoare în /etc/hosts:+Configurati adresele IP pe legatura dedicata: 
 +<​code>​ 
 +saisp-vm-2# ip addr add 10.0.23.2/24 dev eth1 
 +saisp-vm-2# ip link set eth1 up 
 +</​code>​ 
 +<​code>​ 
 +saisp-vm-3# ip addr add 10.0.23.3/​24 dev eth1 
 +saisp-vm-3# ip link set eth1 up 
 +</​code>​ 
 + 
 +Pachetul ''​drbd8-utils''​ este deja instalat. 
 + 
 +Observati faptul ca fisierele **/etc/drbd.conf** si **/​etc/​drbd.d/​global_common.conf** sunt deja create. 
 +Noi vom defini o noua resursa, in fisierul **/​etc/​drbd.d/​r0.res**. Resursa va avea urmatoarele caracteristici: 
 +  * numele resursei: **r0**; 
 +  * device-ul DRBD: **/​dev/​drbd0**;​ 
 +  * partitia de pe disc: **/​dev/​sdb1**;​ 
 +  * metadate stocate **intern**. 
 + 
 +**ATENTIE!** Urmatoarele task-uri trebuie efectuate pe **ambele noduri**.
  
 +Creati fisierul **/​etc/​drbd.d/​r0.res**,​ cu urmatorul continut:
 <​code>​ <​code>​
-saisp-vm-2# echo "10.0.0.30 saisp-vm-3" >> ​/etc/hosts+resource r0 { 
 +  on saisp-vm-2 ​
 +    device ​   /​dev/​drbd0;​ 
 +    disk      /​dev/​sdb1;​ 
 +    address ​  10.0.23.2:7788; 
 +    meta-disk internal; 
 +  } 
 +  on saisp-vm-3 ​
 +    device ​   ​/dev/drbd0; 
 +    disk      /​dev/​sdb1;​ 
 +    address ​  ​10.0.23.3:​7788;​ 
 +    meta-disk internal; 
 +  } 
 +}
 </​code>​ </​code>​
 +
 +Restartati serviciul **drbd**:
 <​code>​ <​code>​
-saisp-vm-3# echo "​10.0.0.20 saisp-vm-2"​ >> ​/etc/hosts+/etc/init.d/drbd restart
 </​code>​ </​code>​
  
-Fișierele de configurare pentru heartbeat se găsesc în directorul ''​/etc/ha.d/''​. Creați, ​**pe ambele stații**, fișierul {{{ha.cf}}}. +Initializati cu zero partitia **/dev/sdb1**: 
-  * Dezactivați **auto-discovery** (Nodurile vor fi specificate manual)<code>​autojoin none</code> +<​code>​ 
-  * Specificați modul de comunicare (unicast), interfața pe care se comunică (eth1) și **adresa celuilalt nod** (Linux-HA poate folosi, de asemenea, broadcast sau multicast)<​code>​ucast eth1 10.0.0.20<​/code> +dd if=/dev/zero of=/​dev/​sdb1 bs=64K 
-  * Specificați nodurile care participă la cluster. Va trebui să specificați **inclusiv nodul local** - numele unui nod trebuie întotdeauna să coincidă cu hostname-ul masinii:<​code>​node saisp-vm-2 saisp-vm-3</​code>​+</​code>​
  
-Linux-HA oferă suport ​pentru ​autentificarea conexiunii. Să configurăm folosirea SHA1: +Creati metadatele DRBD pentru ​resursa **r0**:
-Fișierul de configurare corespunzător este {{{authkeys}}}:+
 <​code>​ <​code>​
-auth 1 +drbdadm create-md r0
-1 sha1 42ade27dad9045964fab10a395ffe4e0f726a80b+
 </​code>​ </​code>​
-* Puteți genera un digest SHA1 folosind {{{echo "my secret"​ | openssl sha1}}}. 
-* Fișierul {{{authkeys}}} trebuie să poată fi citit numai de root: {{{chmod 600 /​etc/​ha.d/​authkeys}}}. 
  
 +Atasati resursa la block-device:​
 +<​code>​
 +drbdadm attach r0
 +</​code>​
  
-Nu în ultimul rând, trebuie să configurăm serviciile oferite de cluster. În acest exemplu, vom configura HTTP. +Verificati starea DRBD:
-* Creați fișierul de configurare {{{/​etc/​ha.d/​haresources}}}:+
 <​code>​ <​code>​
-saisp-vm-2 10.0.0.50 apache2+cat /​proc/​drbd 
 +drbd-overview
 </​code>​ </​code>​
-* Linia de mai sus configurează serviciile apache2 să ruleze inițial pe nodul {{{saisp-vm-2}}}. Dacă acest nod pică, serviciile vor fi oferite de {{{saisp-vm-3}}}. 
-* Folositi **aceeasi linie** si pe saisp-vm-3 (resursa trebuie detinuta de un singur owner). 
-* Este important de observat că, în acest exemplu, serviciile rulează pe ambele noduri tot timpul. Ceea ce se schimbă este nodul cu care este asociată adresa IP. 
  
-Reporniți serviciul ​pe ambele mașini și observați adresele lor IP.+**ATENTIE!** Sincronizarea initiala trebuie pornita doar pe unul dintre noduri! 
 +Pe nodul care este activ in cluster (are adresa 10.0.0.50 pe interfata eth0:0), porniti sincronizarea initiala: 
 +<​code>​ 
 +drbdadm -- --overwrite-data-of-peer primary r0 
 +</​code>​
  
-Experimentați oprind interfațeth1 de pe {{{saisp-vm-2}}}. După un timeout, {{{saisp-vm-3}}} va avea configurată adresa serviciului pe interfața sa eth1.+Verificati ca sincronizarea ​inceput: 
 +<​code>​ 
 +drbd-overview 
 +</​code>​
  
-**Atenție**: acest setup oferă redundanță la nivelul serviciilor,​ dar nu asigură și replicare. Într-o situație concretă, trebuie să ne asigurăm că ambele servere oferă aceleași informații.+In timp ce sincronizarea se efectueaza:​ 
 + 
 +Creati un sistem de fisiere ​**ext4** pe device-ul **/​dev/​drbd0**. Acest lucru poate fi efectuat **doar** pe nodul de pe care ati pornit sincronizarea:​ 
 +<​code>​ 
 +mkfs.ext4 /​dev/​drbd0 
 +</​code>​
saisp/labs/05/contents/04.1395594700.txt.gz · Last modified: 2014/03/23 19:11 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0