Differences

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

Link to this comparison view

saisp:labs:09:contents:07 [2014/04/28 15:57]
razvan.deaconescu created
saisp:labs:09:contents:07 [2014/05/05 14:24] (current)
razvan.deaconescu
Line 1: Line 1:
-==== 07. [BONUS] Load balancing în Varnish ====+==== 07. [BONUS ​- 10p] Load balancing în Varnish ====
  
-Copierea ​mașinii virtuale ​web.qcow2 și configurarea unei adrese IP pentru a servi cereri HTTPConfigurarea Varnish pentru a servi pe rând din cele două servere.+Dorim să facem load balancing (denumit și [[https://​www.varnish-cache.org/​docs/​3.0/​tutorial/​advanced_backend_servers.html#​directors|directors]] în Varnish). Înainte de această configurare,​ opriți ​mașina virtuală ''​web''​ și creați o copie a imaginii ''​web.qcow2''​ într-un alt fișier, de exemplu ''​web-copy.qcow2''​. Apoi editațscriptul ''​xlr8-start-kvm'' ​pentru a porni o nouă mașina ''​web'',​ cu altă adresă IPAceastă mașină web este al doilea back end.
  
 +<note tip>
 +Porniți doar copia mașinii virtuale, ca să nu aveți conflict de adresă IP. Apoi schimbați adresa IP în ''​192.168.0.4''​ în fișierul ''/​etc/​network/​interfaces''​.
 +
 +Schimbați adresa MAC a copiei mașinii virtuale în scriptul ''​xlr8-start-kvm''​ ca să fie diferită de adresele MAC ale celorlalte mașini virtuale.
 +
 +În scriptul ''​xlr8-start-kvm''​ folosiți o nouă interfață TAP, de exemplu ''​tap3'',​ și stabiliți un nou port VNC, de exemplu '':​3''​.
 +</​note>​
 +
 +<​solution -hidden>
 +Fișierul ''​xlr8-start-kvm''​ trebuie actualizat pentru a permite a treia mașină virtuală:<​code>​
 +student@mjolnir:​~/​saisp$ cat xlr8-start-kvm ​
 +[...]
 +web_copy_hdd="​web-copy.qcow2"​
 +[...]
 +sudo kvm -hda "​$web_copy_hdd"​ \
 +    -m 512 -smp 1 \
 +    -net nic,​macaddr=52:​54:​00:​12:​34:​53 \
 +    -net tap,​ifname=tap3,​script=no,​downscript=no \
 +    -vnc :3 -daemonize
 +[...]
 +sudo brctl addif br-kvm tap3
 +[...]
 +sudo ip link set dev tap3 up
 +[...]
 +</​code>​
 +De asemenea, în fișierul ''/​etc/​network/​interfaces''​ din sistemul de fișiere al mașinii virtuale ''​web-copy.qcow2'',​ am configurat adresa IP ''​192.168.0.4''​.
 +
 +Pornim mașinile virtuale folosind scriptul ''​xlr8-start-kvm''​.
 +</​solution>​
 +
 +Configurați Varnish pe mașina virtuală ''​varnish''​ să folosească cele două servere web de pe celelalte două mașini virtuale în load balancing de tip round robin.
 +
 +<note tip>
 +Va trebui să configurați directorul pe post de backend folosind ''​set req.backend ...''​. Urmăriți și exemplul de [[http://​opentsdb.net/​docs/​build/​html/​user_guide/​utilities/​varnish.html|aici]].
 +</​note>​
 +
 +<​solution -hidden>
 +Realizăm configurarea în fișierul ''/​etc/​varnish/​default.vcl'':<​code>​
 +root@varnish:​~#​ vi /​etc/​varnish/​default.vcl
 +root@varnish:​~#​ cat /​etc/​varnish/​default.vcl
 +[...]
 +backend default {
 +    .host = "​192.168.0.2";​
 +    .port = "​80";​
 +}
 +backend new {
 +    .host = "​192.168.0.4";​
 +    .port = "​80";​
 +}
 +
 +director sample round-robin {
 +  {
 +    .backend = default;
 +  }
 +  {
 +    .backend = new;
 +  }
 +}
 +
 +sub vcl_recv {
 +  set req.backend = sample;
 +}
 +</​code>​
 +Repornim serviciul Varnish:<​code>​
 +root@varnish:​~#​ service varnish restart
 +</​code>​
 +și apoi verificăm prin accese repetate folosirea unui back end și apoi a altuia. Pentru validare folosim comanda:<​code>​
 +root@varnish:​~#​ varnishlog -i RxHeader -I Cookie
 +</​code>​
 +</​solution>​
saisp/labs/09/contents/07.1398689829.txt.gz · Last modified: 2014/04/28 15:57 by razvan.deaconescu
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