23
Balanceamento de carga em GNU/Linux O que temos e o que falta? Fernanda G Weiden

Balanceamento de Carga Latinoware

Embed Size (px)

DESCRIPTION

Balanceamento de Carga Latinoware

Citation preview

Balanceamento de carga em GNU/LinuxO que temos e o que falta?Fernanda G WeidenGoogle's missionToorganizetheworldsinformation andmakeituniversally accessibleandusefulIntroduoServionomundodigitalDisponibilidadeEscalabilidadeVelocidadedecrescimentosvezesnoprevisvelCombinarmelhorcustobenefciotambmnacompra dehardwareDowntimeparamanutenonotrazclientesfelizesBalanceamentodecargaMuitasmquinas(backends)efetuandoamesma tarefaEscalabilidadesemdowntimePossibilidadedecrescimentorpidosemnecessidadede renovaodehardwareMelhorutilizaoderecursosdehardwareTolernciaafalhasAltadisponibilidadeBalanceamento de cargaLoadBalancermquina(s)querecebemedistribui asrequisiesVirtualServercombinaodeIP:portaconfigurados noLoadBalancerBackendservidorreal(fsicoouno)ClientequemrequisitaoservioVIPoendereoIPconhecidopeloclienteRIPendereoIPdobackend(realserver)CIPendereoIPdoclienteDNS round robinDNSbasedloadbalancingclusterconfiguradono servidordenomes.Maneiramaisfcildecriarum clusterdeservidores. www.google.com.60INA10.0.0.1 www.google.com.60INA10.0.0.2 www.google.com.60INA10.0.0.3 www.google.com.60INA10.0.0.4GlobalServerLoadBalancingDistribuiotrfegoentreumclustergeograficamente distribudo,baseadonalocalizaodoclienteena disponibilidadedoservidor/clusterDNS basedRouting basedDispatcherbasedloadbalancingclusteromtodotradicionaldebalanceamentodecargaOusuriosconheceoVIP,enotodososbackendsBaseadoemIPouaplicaoTolernciaafalhaGrandecontrolesobasconexeseutilizaodos backends(estado,persistncia)Madonna-like O que temos em GNU/Linux?DNS round robinRouting based GSLBip_vs - dispatches LB clusterip_vsLayer 4 switchhalf NATtunnelingDSR NATNATmudaoendereodedestinodopacote,e redirecionaaobackend.Aconexopassapelodirector antesderetornaraocliente.TunnelingTUNTnelentreoLoadBalancereosBackend Necessriaconfiguraoesuporteatneisemtodosos backends. Direct server responseDSRobackendrespondearequisiodiretoao cliente,sempassarpelodirector(noretorno).Backends eLBnomesmosegmentoderede. Requer non-arp interface nos backends.AlgoritmosparaSchedulingDefine a distribuio das requisies entre os backends.RR:RoundRobin WRR:WeightedRoundRobin LC:LeastConnectionWLC:WeightedLeastConnectionPersistnciaSourceIPconexesdeummesmoIPdeorigem sodirecionadasaomesmobackend.CookieInsertion(http)oloadbalanceradicionaum cookienoheaderhttp,quevaiconterinformao sobrequalbackendutilizarSSLsessionIDpersistnciabaseadonoIDda sesso,quefazpartedoSSLhandshakeHeartbeatGerenciamento de recursos entre os nodes de um cluster de alta disponibilidadeMonitoramento de backendsldirectordnao tem monitoramento paraleloinstancias individuais por VIPkeepalivednao tem instancias individuais por VIPIPv6mainstream no linux 2.6.28ip_vs movido de net/ipv4/ipvs para net/netfilter/ipvsadicionada interface netlink para comunicacao inter-processo O que falta?monitoramento paralelo de backendsfull NAT/proxy (+ failback)checar status atual de um VIP e seus backendsread-only mode (ipvsadm funciona somente como root)suporte IPv6espelhamento de configuracao entre HA nodesnanda@localhost> sh vserver mywebserver mywebserver (192.168.1.66:80) - ANY Type: ADDRESS State: UP Effective State: UP Client Idle Timeout: 120 sec Method: LEASTCONNECTION Mode: MAC Persistence: NONE Backup: mybackupcluster Connection Failover: DISABLED1) backend1_http (192.168.1.1:80) - ANY State: UP Weight: 12) backend2_http (192.168.1.2:80) - ANY State: UP Weight: 13) backend3_http (192.168.1.3:80) - ANY State: UP Weight: 1Done pfrost@localhost> sh service backend1_http backend1_http (192.168.1.1:80) - ANY State: UP Server Name: backend1.mydomain Max Conn: 0 Max Req: 0 Max Bandwidth: 0 kbits Use Source IP: YES Client Keepalive(CKA): NO Access Down Service: NO TCP Buffering(TCPB): NO HTTP Compression(CMP): NO Idle timeout: Client: 120 sec Server: 120 sec Client IP: DISABLED Server ID : 0 Monitor Threshold : 01) Monitor Name: http State: UP Weight: 1 Probes: 1064893 Failed [Total: 2979 Current: 0] Last response: Success - 200 OK.2) Monitor Name: ping State: UP Weight: 1 Probes: 2128057 Failed [Total: 637 Current: 0] Last response: Success - TCP syn+ack received. DonePerguntas?