Upload
vancong
View
248
Download
1
Embed Size (px)
Citation preview
Curs 5Redundant, a s, i load balancing
Servicii avansate pentru ISP
20 martie 2017
SAISP Curs 5, Redundant,a s,i load balancing 1/53
Outline
Introducere
Linux Virtual Server
Linux HA
DRBD
HSRP
Concluzii
Intrebari
SAISP Curs 5, Redundant,a s,i load balancing 2/53
Load balancing (LB)
I distribuirea ıncarcarii pe mai multe sisteme
I scalabilitate
I monitor pentru raportarea ıncarcarii pe un sistem dat
I load balancer (adresa publica)
I workers
I VIP (Virtual IP) – partajat de load balancer s, i workers
I exemplu: round-robin DNS – mai multe intrari de tip A
SAISP Curs 5, Redundant,a s,i load balancing 3/53
Layer-2 Load Balancing
I link aggregation, port aggregation, etherchannel, link bundlingetc.
I LAG – Link Aggregation, IEEE 802.1AX-2008
I legarea a doua sau mai multe legaturi fizice ıntr-o legaturalogica mai puternica
I redundant, a, tolerant, a la defecte
I Linux bonding driver (throughput, fault tolerance)
I LACP (Link Aggregation Control Protocol)
SAISP Curs 5, Redundant,a s,i load balancing 4/53
Layer-4 Load Balancing
I distribut, ie de cereri la nivelul transport (TCP)
I client, ii vad o singura adresa IP
I load balancer-ul distribuie conexiunile client, ilor catre serverelecare lucreaza s, i raspund efectiv cererii
I IPVS (partea a LVS – Linux Virtual Server)
SAISP Curs 5, Redundant,a s,i load balancing 5/53
Layer-7 Load Balancing
I application-level load balancing
I parsarea cererilor la nivel aplicat, ie
I distribuirea cererilor catre servere pe baza cont, inutuluiacestora
I overhead important de parsareI KTCPVS (parte a LVS)
I folosibil de Apache, Lighttpd, nginx (cu modulelecorespunzatoare)
SAISP Curs 5, Redundant,a s,i load balancing 6/53
Cluster
I loosely coupled computers
I lucru la comun
I de obicei conectate prin ret, ele de mare viteza
I viteza de acces/furnizare de servicii, fiabilitate
I cost-effective
I scale out (pe orizontala, mai multe sisteme)
I scale up (pe verticala, sisteme mai scumpe)
I Amazon, Yahoo!, Google
SAISP Curs 5, Redundant,a s,i load balancing 7/53
High availability (HA)
I fiabilitate
I ment, inerea serviciilor active
I sisteme redundante
I heartbeat exchange – I’m still alive
I failover procedure – substituirea unui sistem nefunct, ional cuunul nou
I combinata, ın general, cu load balancing
SAISP Curs 5, Redundant,a s,i load balancing 8/53
Outline
Introducere
Linux Virtual Server
Linux HA
DRBD
HSRP
Concluzii
Intrebari
SAISP Curs 5, Redundant,a s,i load balancing 9/53
Linux Virtual Server
I suport ın nucleul LinuxI netfilter framework
I IPVS – IP Virtual Server
I module: ip_vs, ip_vs_rr, ip_vs_*
I load balancer: director, server virtual
I directorul dirijeaza cererile catre workers
I ipvsadm pentru administrare (utilitar user space)
SAISP Curs 5, Redundant,a s,i load balancing 10/53
Terminologie
I IPVS (ip_vs) – codul aferent directorului (ın nucleul Linux)
I LVS (Linux Virtual Server) – director s, i realservers
I director – sistemul/nodul ce ruleaza codul ipvs; similar unuiruter
I realservers – nodurile ce ofera servicii (workeri)
I client, i
I metoda de forwarding – LVS-NAT, LVS-DR, LVS-Tun
I planificare (ipvsadm) – algoritmul folosit de director pentruselectarea unui realserver care sa serveasca un client
SAISP Curs 5, Redundant,a s,i load balancing 11/53
Terminologie LVS
SAISP Curs 5, Redundant,a s,i load balancing 12/53
Adrese IP
I CIP – client IP
I VIP – virtual IP (adresa IP folosita de client, i; vizibila client, ilorpe director)
I DIP – director IP (adresa IP a directorului vizibila ın ret, eauaDRIP
I RIP – real servers IP
SAISP Curs 5, Redundant,a s,i load balancing 13/53
Moduri de funct, ionare
I LVS-NAT – nat
I LVS-TUN – tunelare
I LVS-DR – direct routing
SAISP Curs 5, Redundant,a s,i load balancing 14/53
LVS-NAT
I configurare simpla (necesita o stiva TCP/IP functionala)
I nu necesita modificari pe serverele reale
I adresa destinat, ie a pachetelor este modificata (VIP → RIP)
I reply-urile trec tot prin director
SAISP Curs 5, Redundant,a s,i load balancing 15/53
LVS-NAT (2)
SAISP Curs 5, Redundant,a s,i load balancing 16/53
LVS-DR
I direct routing
I pachetul este transmis de director ca pachet de nivel 2 catrerealserver
I clientul se conecteaza la director (VIP)
I default gateway-ul pentru realservers nu trebuie sa fiedirectorul
SAISP Curs 5, Redundant,a s,i load balancing 17/53
LVS-DR (2)
SAISP Curs 5, Redundant,a s,i load balancing 18/53
LVS-TUN
I pachetul init, ial (CIP → VIP) este ıncapsulat ıntr-un pachetDIP → RIP
I realserver-ul primes, te pachetul pe o interfat, a tunel s, i ıldecapsuleaza
I permite folosirea de servere aflate la distant, a unele de celelalte
SAISP Curs 5, Redundant,a s,i load balancing 19/53
LVS-TUN (2)
SAISP Curs 5, Redundant,a s,i load balancing 20/53
ipvsadm
1 # activare load balancing2 ipvsadm -A -t 10.0.0.1:22
3
4 # configurare servere reale (-g LVS-DR)5 ipvsadm -a -t 10.0.0.1:22 -r 10.0.0.20:22 -g
6 ipvsadm -a -t 10.0.0.1:22 -r 10.0.0.30:22 -g
7
8 # dezactivare load balancing9 ipvsadm -D -t 10.0.0.1:22
SAISP Curs 5, Redundant,a s,i load balancing 21/53
ipvsadm scheduler
1 ipvsadm -A -t 10.0.0.1:80
2 ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.20:80 -g
3 ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.30:80 -g
4
5 # activare scheduler de tip round-robin6 ipvsadm -E -t 10.0.0.1:80 -s rr
7 ipvsadm -e -t 10.0.0.1:80 -r 10.0.0.20:80 -x 2
8 ipvsadm -e -t 10.0.0.1:80 -r 10.0.0.30:80 -x 2
SAISP Curs 5, Redundant,a s,i load balancing 22/53
Outline
Introducere
Linux Virtual Server
Linux HA
DRBD
HSRP
Concluzii
Intrebari
SAISP Curs 5, Redundant,a s,i load balancing 23/53
Linux High Availability
I Linux-HA
I Linux, *BSD, Solaris
I RAS (Reliability, Availability, Serviceability)
I high availability cluster systems
I Heartbeat infrastructure layer – semnalizeazaprezent, a/absent, a peerilor
I Cluster resource manager (CRM) – pornirea/oprirea serviciilor
I GUI
I monitoring, fencing
SAISP Curs 5, Redundant,a s,i load balancing 24/53
Hearbeat
I daemon care asigura interfat, a de comunicare
I transmite client, ilor informat, ii legate de prezent, a sau absent, aserviciilor/sistemelor
I combinat cu un CRM (pentru oprire/pornire)
I messaging layer
I pana la versiunea 2.1.4 toate aplicat, iile erau integrate ınpachetul heartbeat
I acum aplicat, iile sunt distincte – Heartbeat: messaging layer
SAISP Curs 5, Redundant,a s,i load balancing 25/53
Resource Agents
I interfat, a standardizata pentru o resursa din cluster
I traduce un set standard de operat, ii ın operat, ii specializateI operat, ii
I start: activarea sau pornirea unei resurseI stop: opres, te sau dezactiveaza o resursaI status, monitorI validateI meta-data: informat, ii despre resource agent
SAISP Curs 5, Redundant,a s,i load balancing 26/53
Cluster Glue
I set de biblioteci, utilitare pentru Linux HA
I ceea ce nu este cluster messaging layer (Heartbeat) sauResource Agent sau cluster resource manager (Pacemaker)este Glue
I Cluster Plumbing Library – intra-cluster communication
I STONITH (Shoot The Other Node In The Head) – nodefencing
I Local Resource Manager – interfat, a ıntre CRM s, i ResourceAgents
I hb report – aplicat, ie pentru raportarea erorilor
SAISP Curs 5, Redundant,a s,i load balancing 27/53
Pacemaker
I pornes, te/opres, te serviciile
I init, ial parte din suita heartbeat
I acum proiect separat (din 2007)
I suport pentru mai multe configurat, ii de redundant, a
I storage agnostic, resource agnostic (anything that can bescripted can be clustered)
I foloses, te fie OpenAIS, fie Heartbeat
SAISP Curs 5, Redundant,a s,i load balancing 28/53
OpenAIS
I implementare Application Interface Specification
I dezvoltare de aplicat, ii care raman active ın momentul ın careexista caderi
I modul pentru Corosync Cluster Engine
SAISP Curs 5, Redundant,a s,i load balancing 29/53
Outline
Introducere
Linux Virtual Server
Linux HA
DRBD
HSRP
Concluzii
Intrebari
SAISP Curs 5, Redundant,a s,i load balancing 30/53
DRBD
I Ce este?I solutie software de mirroring la nivelul unui clusterI DistributedI ReplicatedI Block-Device
I CaracteristiciI real-timeI transparentI sincron / asincronI shared-nothing
SAISP Curs 5, Redundant,a s,i load balancing 31/53
DRDB - Componente
I modul kernel: drbd.koI utilitare userspace:
I drbdsetupI drbdmetaI drbdadm (wrapper, cel mai des folosit)
SAISP Curs 5, Redundant,a s,i load balancing 32/53
DRDB - Arhitectura
SAISP Curs 5, Redundant,a s,i load balancing 33/53
DRBD - Terminologie
I resursaI resource nameI drbd device - /dev/drbdX, major 147, minor XI disk configuration - data + metadataI network configuration
I rolI primary: poate face ”read / write”I secondary: nu poate face nici ”read”, nici ”write”I a nu se confunda cu active / passive la nivel de cluster
I replicare: real-time, parte a functionarii normale
I sincronizare: initiala sau dupa o cadere
SAISP Curs 5, Redundant,a s,i load balancing 34/53
DRBD - Moduri de operare
I single-primaryI un singur nod poate fi primaryI folosit in clustere high-availabilityI orice sistem de fisiere: ext3, ext4, btrfs etc.
I dual-primaryI doua noduri pot avea acces concurent la dateI folosit in clustere cu load-balancingI sistem de fisiere cu lock distribuit: gfs, ocfs2 etc.
SAISP Curs 5, Redundant,a s,i load balancing 35/53
DRBD - I/O
I Toate operatiile de ”read” se fac local.
I Operatiile de ”write” sunt insotite de replicare.I Moduri de replicare
I Protocol A: asincronI Protocol B: semi-sincronI Protocol C: sincron
I Compromis intre protectie si latenta
I Cel mai des folosit: Protocol C
SAISP Curs 5, Redundant,a s,i load balancing 36/53
DRBD - Networking
I Legatura fizicaI se recomanda cel putin un link Gigabit, dedicat, back to backI optimizari: 10 Gigabit, Etherchannel
I TransportI TCP (port ≥ 7788) peste IPv4, peste IPv6I SuperSocket
SAISP Curs 5, Redundant,a s,i load balancing 37/53
DRBD - Split brain
I Split brain: pierderea totala a conectivitatii intre cele douanoduri
I Recuperare:I ManualaI Discard modifications on younger primaryI Discard modifications on older primaryI Discard modifications on primary with fewer changesI Graceful recovery: daca pe un nod nu s-au facut modificari
I Alegerea depinde foarte mult de serviciile rulate
SAISP Curs 5, Redundant,a s,i load balancing 38/53
DRBD - Instalare
I Linux kernel ≥ 2.6.33
I apt-get install drbd8-utils
SAISP Curs 5, Redundant,a s,i load balancing 39/53
DRBD - Fisiere de configurare
I /etc/drbd.confI /etc/drbd.d/
I global common.confI *.res
I Identice pe fiecare nod!
I Structura ”flat” sau ”multiple-file”
SAISP Curs 5, Redundant,a s,i load balancing 40/53
DRBD - Exemplu configurare
1 global {2 usage-count yes;
3 }4 common {5 protocol C;
6 }7 resource r0 {8 on alice {9 device /dev/drbd1;
10 disk /dev/sda7;
11 address 10.1.1.31:7789;
12 meta-disk internal;
13 }14 on bob {15 device /dev/drbd1;
16 disk /dev/sda7;
17 address 10.1.1.32:7789;
18 meta-disk internal;
19 }20 }
SAISP Curs 5, Redundant,a s,i load balancing 41/53
DRBD - Exemplu configurare
1 resource r0 {2 device /dev/drbd1;
3 disk /dev/sda7;
4 meta-disk internal;
5 on alice {6 address 10.1.1.31:7789;
7 }8 on bob {9 address 10.1.1.32:7789;
10 }11 }
SAISP Curs 5, Redundant,a s,i load balancing 42/53
DRBD - Activare
1 # Create metadate2 drbdadm create-md r0
3
4 # Atasare resursa la block-device5 drbdadm attach r0
6 # Setare parametri sincronizare7 drbdadm syncer r0
8 # Conectare la peer9 drbdadm connect r0
10
11 # Alternativa la ultimele 3 comenzi12 drbdadm up r0
13
14 # Sincronizare initiala15 drbdadm --overwrite-data-of-peer primary r0
SAISP Curs 5, Redundant,a s,i load balancing 43/53
DRBD - Dezactivare
1 # Deconectare de la peer2 drbdadm disconnect r0
3 # Deconectare de la block-device4 drbdadm detach r0
5
6 # Alternativa7 drdbadm down r0
SAISP Curs 5, Redundant,a s,i load balancing 44/53
DRBD - Monitorizare
1 drbd-overview # Overview about all drbd devices2
3 cat /proc/drbd4
5 drbdadm cstate r0 # Connection state6 drbdadm role r0 # Role7 drbdadm dstate r0 # Disk state
SAISP Curs 5, Redundant,a s,i load balancing 45/53
DRBD - Failover manual
1 # Become primary2 drbdadm primary r0
3
4 # Become secondary5 drbdadm secondary r0
SAISP Curs 5, Redundant,a s,i load balancing 46/53
DRBD - Alte facilitati
I Stacking - DRBD over DRBD
I Online growing / shriking
I Integrare cu Heartbeat / Pacemaker
I Integrare cu LVM
I Integrare cu Xen
SAISP Curs 5, Redundant,a s,i load balancing 47/53
Outline
Introducere
Linux Virtual Server
Linux HA
DRBD
HSRP
Concluzii
Intrebari
SAISP Curs 5, Redundant,a s,i load balancing 48/53
HSRP & friends
I Redundanta layer 3 pentru gateway
I HSRP, VRRP
I GLBP (asigura si load-balancing)
SAISP Curs 5, Redundant,a s,i load balancing 49/53
Outline
Introducere
Linux Virtual Server
Linux HA
DRBD
HSRP
Concluzii
Intrebari
SAISP Curs 5, Redundant,a s,i load balancing 50/53
Cuvinte cheie
I cluster
I load balancing
I scale out, scale up
I high availability
I redundant, a
I Linux Virtual Server
I IPVS
I director
I ipvsadm
I real servers
I LVS-NAT, LVS-DR,LVS-Tun
I CIP, VIP, DIP, RIP, DRIP
I CRM (Cluster ResourceManager)
I Heartbeat
I Pacemaker
I OpenAIS
I DRBD
I replicare
I HSRP
SAISP Curs 5, Redundant,a s,i load balancing 51/53
Link-uri utile
I http://www.austintek.com/LVS/LVS-HOWTO/
I http://www.linux-ha.org/wiki/Main_Page
I http://clusterlabs.org/
I http://www.openais.org/doku.php
I http://corosync.org/doku.php
I http://www.drbd.org/
I http://www.drbd.org/users-guide/
I http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
SAISP Curs 5, Redundant,a s,i load balancing 52/53
Outline
Introducere
Linux Virtual Server
Linux HA
DRBD
HSRP
Concluzii
Intrebari
SAISP Curs 5, Redundant,a s,i load balancing 53/53