Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Comentariile sunt închise pentru Load balancing cu round robin DNS

Round robin DNS este probabil cel mai simplu mod de a crea un sistem de echilibrare a incarcarii serverelor. Cand aveti un site care consuma foarte multe resurse, atat de multe incat un server dedicat nu mai este suficient, sunt necesare clustere pentru echilibrarea incarcarii.

Clusterele pot fi create in mai multe moduri, dar cel mai simplu de realizat este un scenariu cu doua servere dedicate pentru acelasi site care au continutul sincronizat la intervale mici de timp (sau eventual realtime cu un NAS). Pentru a nu suprasolicita nici unul din servere, cel mai simplu ar fi ca o cerere sa fie trimisa unui server iar urmatoarea celuilalt. In mod normal ar fi necesara instalarea unui al treilea server care sa fie accesat si care sa functioneze ca un proxy preluand continutul procesat de un alt server din cluster. Desi pare o idee buna, uneori instalarea unui al treilea server ridica niste costuri inutile iar in plus de asta uneori creste inutil nivelul tehnologiei implicate.

Cel mai simplu mod de a crea un sistem de balans al incarcarii e sa redirectam cererile in functie de ordinea lor catre un server sau catre celalalt. Adica prima cerere va fi trimisa catre primul server, iar cea de-a doua catre al doilea server. Aceasta redirectare se poate face din serverul DNS, BIND, care poate fi configurat sa trimita un IP diferit pentru fiecare cerere primita. Acest mod de rezolvare a hosturilor se numeste round robin si e folosit in cazul site-urilor de nivel mediu datorita usurintei de configurare.

Pentru setarea unui sistem round robin trebuie sa modificam fisierul zonei care ne intereseaza. Daca hostul pentru care dorim sa facem balansul de incarcare este www.exemplu.ro vom edita fisierul corespunzator (de obicei /etc/namedb/exemplu.ro.db) dupa cum urmeaza:

www  IN      A       192.168.2.3
     IN      A       192.168.2.4

Dupa ce am facut modificarea salvam fisierul si rulam comanda rndc reload sau restartam daemonul named pentru ca serverul DNS sa isi reciteasca zonele. Acum putem verifica cu ajutorul comenzii nslookup www.exemplu.ro IP-ul care corespunde hostului www.exemplu.ro. Se poate observa ca la cereri repetate vom primi pe rand unul din cele doua IP-uri, 192.168.2.3 sau 192.168.2.4. Mai departe trebuie doar sa setam cele doua servere pentru a raspunde hostului www.exemplu.ro.

Un dezavantaj al acestui sistem de balansare a incarcarii ar fi ca nu ia in vedere resursele celor doua servere. Astfel se poate intampla ca unul din servere sa fie foarte incarcat datorita unui utilizator care face multe cereri iar celalalt sa fie mai putin incarcat si cu toate acestea serverul DNS sa directioneze utilizatori spre ambele servere. Pentru astfel de cazuri este necesara crearea unui cluster bazat pe un load balancer complex capabil sa faca redirectarea in functie de incarcarea fiecarui server, dar pentru site-uri de nivel mediu care au un consum general de resurse echilibrat o astfel de investitie nu ar fi necesara.

DNS

Comments are closed.