Differences

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

Link to this comparison view

saisp:labs:05:contents:03 [2014/03/23 21:48]
alexandru.carp [02. LVS-TUN (tunneling)]
saisp:labs:05:contents:03 [2014/03/24 16:30] (current)
alexandru.carp [03. [20p] Linux-HA]
Line 1: Line 1:
-==== 02. [20p] LVS-TUN (tunneling) ​====+==== 03. [20p] Linux-HA ====
  
-In continuare, vom configura directorul pentru a folosi modul LVS-TUNApoivom observa diferentele fata de LVS-DR.+**Linux-HA** este o solutie de clusteringVom configura un cluster simpluformat din două noduri
  
-Analog punctului anterior, definiti serviciul HTTP pe director, apoi cele doua realservere in modul tunneling (folositi parametrul ''​-i''​). +{{:saisp:labs:05:contents:lab05-ha.jpg|}}
-<​solution -hidden>​ +
-<​code>​ +
-root@saisp-vm-1:~# ipvsadm -A -t 10.0.0.1:​80 +
-root@saisp-vm-1:~# ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.20:80 -i +
-root@saisp-vm-1:~# ipvsadm ​-a -t 10.0.0.1:80 -r 10.0.0.30:​80 -i +
-</​code>​ +
-</​solution>​+
  
-Pentru ca realserverele sa poata interpreta corect pachetele primite ​de la directortrebuie sa configuram cate o interfata tunel, de tip **ipip**pe fiecare dintre acestea.+Topologia conceptuala este cea din figura ​de mai sus. Observatii:​ 
 +  * 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 respectivapentru 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**. 
 + 
 +Este necesar ca stațiile să se poată adresa una pe cealaltă folosind doar hostname-ulAdăugați liniile corespunzătoare în /etc/hosts:
  
-Interfata tunel trebuie sa aiba aceeasi adresa IP cu adresa virtuala a directorului. 
 <​code>​ <​code>​
-root@saisp-vm-2:~ip tunnel add tun0 mode ipip local 10.0.0.20 +saisp-vm-2# ​echo "10.0.0.30 saisp-vm-3" >> ​/etc/hosts
-root@saisp-vm-2:~# ip addr add 10.0.0.1/24 dev tun0 +
-root@saisp-vm-2:​~#​ ip link set tun0 up+
 </​code>​ </​code>​
- 
 <​code>​ <​code>​
-root@saisp-vm-3:~ip tunnel add tun0 mode ipip local 10.0.0.30 +saisp-vm-3# ​echo "10.0.0.20 saisp-vm-2" >> ​/etc/hosts
-root@saisp-vm-3:~# ip addr add 10.0.0.1/24 dev tun0 +
-root@saisp-vm-3:​~#​ ip link set tun0 up+
 </​code>​ </​code>​
  
-Porniti, din nouWireshark si realizati o captura pe interfata ​**br0** a masinii fiziceObservati pachetele incapsulate si diferentele fata de LVS-DR.+Fișierele de configurare pentru heartbeat se găsesc în directorul ''/​etc/​ha.d/''​. Creați, **pe ambele stații**, fișierul ''​ha.cf''​. 
 +  * Dezactivați **auto-discovery** (Nodurile vor fi specificate manual) 
 +<​code>​autojoin none</​code>​ 
 +  * Specificați modul de comunicare (unicast), interfața pe care se comunică (eth0) și **adresa celuilalt nod** (Linux-HA poate folosi, de asemenea, broadcast sau multicast) 
 +<​code>​ucast eth0 10.0.0.30</​code>​ 
 +  * 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>​
  
-Stergeti resursa HTTP definita anterior pe director+Linux-HA oferă suport pentru autentificarea conexiuniiSă configurăm folosirea SHA1: 
- +  * Fișierul de configurare corespunzător este ''​authkeys''​:
-Stergeti interfetele tunel create pe realservere:+
 <​code>​ <​code>​
-root@saisp-vm-2:​~#​ ip tunnel del tun0+auth 1 
 +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''​.
 +
 +Nu în ultimul rând, trebuie să configurăm serviciile oferite de cluster. În acest exemplu, vom configura HTTP.
 +  * Creați fișierul de configurare ''/​etc/​ha.d/​haresources'':​
 <​code>​ <​code>​
-root@saisp-vm-3:~# ip tunnel del tun0+saisp-vm-2 10.0.0.50 apache2
 </​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''​.
 +  * **Atentie:​** 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 ''​heartbeat''​ pe ambele mașini și observați adresele lor IP.
 +
 +Folosind un browser, accesati adresa http://​10.0.0.50/​
 +
 +Experimentați oprind serviciul heartbeat de pe ''​saisp-vm-2''​. După un timeout, ''​saisp-vm-3''​ va avea configurată adresa serviciului pe interfața sa eth0.
 +
 +Accesati din nou adresa http://​10.0.0.50/​ dar observati ca de aceasta data va raspunde statia ''​saisp-vm-3''​.
 +
 +**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.
saisp/labs/05/contents/03.1395604113.txt.gz · Last modified: 2014/03/23 21:48 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