SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
O que é LVS?
Apresentação
 
 
 
Henrique Haas - henriquehaas@gmail.com




             Novembro 2008
LVS
 
Linux Virtual Server 
 
Servidor Virtual Linux
 
Conceito Básico de Alta Disponibilidade

• Garantir um ambiente operacional resistente a falhas de
  software e hardware, cujo objetivo é manter os serviços em
  operação durante o tempo previsto no nível de
  disponibilidade da empresa.
Conceito Básico de Balanceamento de
Carga
• O balanceamento de carga permite distribuir as
  requisições aos serviços entre os vários equipamentos que
  os atendem, permitindo uma melhor aproveitamento dos
  recursos entre os mesmos.
O que é LVS?
    • O Linux Virtual Server é um projeto Open Source iniciado
      por Wensong Zhang em maio de 1998.
 
    • É uma tecnologia totalmente escalável, construída sobre um
      cluster de servidores, capaz de prover alta disponibilidade e
      balanceamento de carga.
 
    • A entrega do serviço é completamente transparente para o
      usuário final ou seja eles interagem como se tratasse de um
      único servidor virtual de alta performance.
Conceitos

LVS Master - Servidor LVS Principal (de maior peso).
 
LVS Slave - Servidor LVS Redundante (menor peso).
 
LVS Ativo - Servidor que no momento responde pelo
serviço (pode ser chamado de Director).
Conceitos
VIP - Virtual IP - Endereço IP válido no mundo que
será usado pelo LVS ativo para responder pelos serviços.
 
RIP - Real IP – Endereço IP da rede interna usado pelos
LVS e Servidores Reais para se comunicarem.
 
DIP - Director IP - Endereço IP de rede exclusiva para
comunicação entre LVS's.
Arquiteturas para LVS


    • LVS-NAT (Network Address Translation)
 
    • LVS-DR (Direct Routing)
 
    • LVS-TUN (Tunneling - Encapsulamento IP-IP)
LVS-NAT
• Os Servidores Reais devem estar na mesma subrede do
  Director(LVS);

• Os endereços dos Nós (Servidores Reais) normalmente
  estão em conformidade com a RFC 1918;

• As conexões (de entrada e saída) passam todas pelo
  Director;

• O Director deve ser o gateway padrão dos Servidores
  Reais;
LVS-NAT
• O Director pode remapear números de portas, isto é, uma
  requisição é recebida em uma porta dele e pode ser
  redirecionada para uma porta diferente de um Servidor
  Real;

• Qualquer sistema operacional pode ser usado nos
  Servidores Reais;

• Desvantagem: O gargalo do ambiente pode ser um único
  Director configurado para atender a demanda, embora uma
  rede saturada normalmente seja o problema mais comum.
RFC 1918
LVS-DR

    • Os Servidores Reais devem estar no mesmo barramento
      que o Director;

    • Os RIP não necessitam estar em conformidade com a RFC
      1918;

    • Somente as requisições passam pelo Director, as respostas
      são enviadas diretamente aos clientes pelos Servidores
      Reais;

    • As portas não podem ser remapeadas no Director;
 
 
LVS-DR

    • LVS-DR permite mais Servidores Reais que LVS-NAT;

    • Não há sobrecarga no Director como no LVS-NAT;
 
    • Só permite balanceamento de carga em um mesmo Data-
      Center. 
 
LVS-TUN

• Os Servidores Reais não necessitam estar no
  mesmo barramento e rede que o Director;

• Os RIP não necessitam estar de acordo com a RFC 1918;

• O Director apenas recebe requisição dos clientes, as
  respostas são enviadas diretamente dos Servidores Reais;
LVS-TUN

    • O Director não pode remapear portas;

    • Os sistemas operacionais dos Servidores Reais precisam
      suportar IP tunneling;
 
    • Permite o balanceamento de carga entre Data-Centers
      diferentes.
Tunelamento IP

• É um termo técnico para designar o
  encapsulamento de um pacote IP dentro de
  outro, com o propósito de simular uma
  conexão física ponto a ponto entre duas
  redes remotas através de uma outra rede.
Passo a Passo

Cliente localiza o gateway de sua rede através do protocolo
ARP

   Cliente solicita a resolução de um endereço para o DNS

 Cliente solicita um serviço publicado no mundo através do
protocolo HTTP ou HTTPS
Passo a Passo

 O LVS recebe a solicitação, confere em sua tabela quem
fornece o serviço e encaminha a solicitação para o servidor
real ;

 O servidor recebe a solicitação do cliente, processa e
responde diretamente ao cliente usando o VIP no cabeçalho
Diagrama Usado em Laboratório
Adic. ou Rem. Serviços e Servidores dos LVS
vim /etc/ha.d/ldirectord.cf
 
checktimeout=2
checkinterval=2
autoreload=yes
quiescent=no
logfile="info"
#Serviço 1
virtual=172.30.1.9:80
    real=192.168.0.100:80 gate 1 ".alive.html", "ok"
    real=192.168.0.101:80 gate 2 ".alive.html", "ok"
    real=192.168.0.102:80 gate 3 ".alive.html", "ok"
    service=http
    checkport=80
    protocol=tcp 
    scheduler=wlc 
    checktype=negotiate
#Serviço 2
virtual=172.30.1.9:21
    real=192.168.0.120:21 gate 1
    real=192.168.0.121:21 gate 2
 service=ftp
 checkport=21
 protocol=tcp
 scheduler=wlc
 #Serviço 3 ...
 
/etc/init.d/ldirectord restart 
Como um serviço é Monitorado?
   O LVS possui uma lista de servidores e serviços. Ele
    verifica a disponibilidade dos serviços periodicamente.
    Se algum serviço estiver indisponível ele “sai da lista”.
    O LVS continua monitorando, e assim que for
    restabelecido o serviço, o LVS percebe e ele volta a
    lista de serviços disponíveis.
Adaptações Necessárias nos Servidores
Reais
No Servidor Real é criado um script que é inicializado no
boot, e o prepara para trabalhar com o LVS-DR.
 
/etc/init.d/lvsdrrs
 
Quando executado ele:
 
  •  Ativa a interface lo;
  •  Configura o ARP para não se anunciar;
  •  Configura IP VIRTUAL para lo:0;
  •  Adiciona rota para o IP VIRTUAL acima
  •  Adiciona rota para rede 172.30.1.0 no dispositivo real
  •  Adiciona rota default para o roteador da rede 172
 
Justificativa para
ARP Non-Announce nos servidores.


   Para garantir um perfeito funcionamento desta
    tecnologia, só o LVS pode responder pelos serviços.
    Por isso na entrada ninguém chega aos servidores se
    não pelo LVS.
Algoritmos de Balanceamento de Carga

 rr (Round Robin): distribui as requisições igualmente entre
os servidores reais disponíveis. Este é o algoritmo de
agendamento mais simples.

wrr (Weighted Round Robin): similar ao anterior, utiliza,
entretanto um valor que determina o peso de cada servidor
real. Servidores reais com maior peso receberão mais
requisições que os de menor peso.
Algoritmos de Balanceamento de Carga

lc (Least-Connection): distribui requisições ao servidor com
menor quantidade de conexões no momento da escolha.

wlc (Weighted Least-Connection): distribui requisições ao
servidor com menor quantidade de conexões no momento
da escolha, levando em consideração também o peso
atribuído a cada servidor real. Este é o modo de
agendamento escolhido por padrão.
Persistência de Conexão
   A persistência garante que o cliente sempre será
    direcionado a um mesmo servidor, mesmo em
    diferentes conexões, possibilitando que ele mantenha
    por exemplo um carrinho de compras ou um formulário
    preenchido.
   Ela é útil quando o estado precisa ser mantido.
   Só é possível se a aplicação prover suporte a esta
    funcionalidade.
   Também conhecida como afinidade de sessão.
   Pode ser custosa a sua implementação, pois será
    necessária uma replicação de dados.
   No LVS é possível incluir um serviço com persistência.
Referências Bibliográficas
   LINUX ENTERPRISE CLUSTER – KARL KOPPER
   http://www.linux-ha.org/
   http://guialivre.governoeletronico.gov.br/
   http://wiki.sintectus.com/
   http://www.austintek.com/
henriquehaas.com.br/blog/
Perguntas?

Más contenido relacionado

La actualidad más candente

DNSORC
DNSORCDNSORC
DNSORCdnsorc
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostasForça Tauá
 
Clustering Domino8.5
Clustering Domino8.5Clustering Domino8.5
Clustering Domino8.5Rodrigo Duran
 
Tópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceTópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceLuiz Arthur
 
Resolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª EdiçãoResolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª EdiçãoRonildo Oliveira
 
Diffserv (serviços diferenciados)
Diffserv (serviços diferenciados)Diffserv (serviços diferenciados)
Diffserv (serviços diferenciados)UFPA
 
Linux Network Fault Tolerance
Linux Network Fault ToleranceLinux Network Fault Tolerance
Linux Network Fault ToleranceFrederico Madeira
 
Protocolos de transporte
Protocolos de transporteProtocolos de transporte
Protocolos de transporteJoel Saramago
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Caio Miranda
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
Newtec sspi vsat_day_2010
Newtec sspi vsat_day_2010Newtec sspi vsat_day_2010
Newtec sspi vsat_day_2010SSPI Brasil
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Evandro Júnior
 
Message Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQMessage Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQLuiz Carlos Faria
 
Scale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria dbScale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria dbFrancisco Gonçalves
 

La actualidad más candente (20)

DNSORC
DNSORCDNSORC
DNSORC
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostas
 
Clustering Domino8.5
Clustering Domino8.5Clustering Domino8.5
Clustering Domino8.5
 
Tópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceTópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta Performance
 
Resolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª EdiçãoResolução Parcial - Redes de Computadores - Kurose 6ª Edição
Resolução Parcial - Redes de Computadores - Kurose 6ª Edição
 
Diffserv (serviços diferenciados)
Diffserv (serviços diferenciados)Diffserv (serviços diferenciados)
Diffserv (serviços diferenciados)
 
Linux Network Fault Tolerance
Linux Network Fault ToleranceLinux Network Fault Tolerance
Linux Network Fault Tolerance
 
Protocolos de transporte
Protocolos de transporteProtocolos de transporte
Protocolos de transporte
 
Aula 1
Aula 1Aula 1
Aula 1
 
Aula10
Aula10Aula10
Aula10
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2
 
Controle de congestionamento tcp
Controle de congestionamento tcpControle de congestionamento tcp
Controle de congestionamento tcp
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Newtec sspi vsat_day_2010
Newtec sspi vsat_day_2010Newtec sspi vsat_day_2010
Newtec sspi vsat_day_2010
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
 
MQTT VS REST
MQTT VS RESTMQTT VS REST
MQTT VS REST
 
Message Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQMessage Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQ
 
Aula 02 30072010
Aula 02 30072010Aula 02 30072010
Aula 02 30072010
 
Scale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria dbScale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria db
 
Servidor proxy Squid
Servidor proxy SquidServidor proxy Squid
Servidor proxy Squid
 

Destacado (8)

Rh436 rhel6.2
Rh436 rhel6.2Rh436 rhel6.2
Rh436 rhel6.2
 
RedHat Cluster!
RedHat Cluster!RedHat Cluster!
RedHat Cluster!
 
Rh442 rhel6.2
Rh442 rhel6.2Rh442 rhel6.2
Rh442 rhel6.2
 
1 formacao instrutores_lv_instrutor
1 formacao instrutores_lv_instrutor1 formacao instrutores_lv_instrutor
1 formacao instrutores_lv_instrutor
 
Rh401 rhel6
Rh401 rhel6Rh401 rhel6
Rh401 rhel6
 
Rh199 rhel 7
Rh199   rhel 7Rh199   rhel 7
Rh199 rhel 7
 
Rh436 pdf
Rh436 pdfRh436 pdf
Rh436 pdf
 
Rh318 rhev3
Rh318 rhev3Rh318 rhev3
Rh318 rhev3
 

Similar a linux lvs

Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaDaniel Silveira
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-ServidorIsrael Messias
 
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Kelver Merlotti
 
Desenho de uma rede
Desenho de uma redeDesenho de uma rede
Desenho de uma redeMaxFiberson
 
Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebRafael Chagas
 
Cliente e servidor
Cliente e servidorCliente e servidor
Cliente e servidorDavi Silva
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application ServerFabricio Carvalho
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02DP7
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internetMarco Pinheiro
 
Arquiteturas para soluções microsoft na nuvem da aws
Arquiteturas para soluções microsoft na nuvem da awsArquiteturas para soluções microsoft na nuvem da aws
Arquiteturas para soluções microsoft na nuvem da awsAmazon Web Services LATAM
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Pablo Souza
 
Webinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualWebinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualAmazon Web Services LATAM
 
CDNs – Introdução
CDNs – IntroduçãoCDNs – Introdução
CDNs – Introduçãoelliando dias
 
Coisas Boas
Coisas BoasCoisas Boas
Coisas Boasninih23
 

Similar a linux lvs (20)

procolo de Reserva.pptx
procolo de Reserva.pptxprocolo de Reserva.pptx
procolo de Reserva.pptx
 
Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiula
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
 
Desenho de uma rede
Desenho de uma redeDesenho de uma rede
Desenho de uma rede
 
Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na Web
 
World Wide Web
World Wide WebWorld Wide Web
World Wide Web
 
Cliente e servidor
Cliente e servidorCliente e servidor
Cliente e servidor
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internet
 
Elastic load balancing melhores praticas
Elastic load balancing melhores praticasElastic load balancing melhores praticas
Elastic load balancing melhores praticas
 
Arquiteturas para soluções microsoft na nuvem da aws
Arquiteturas para soluções microsoft na nuvem da awsArquiteturas para soluções microsoft na nuvem da aws
Arquiteturas para soluções microsoft na nuvem da aws
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
 
Webinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualWebinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter Virtual
 
CDNs – Introdução
CDNs – IntroduçãoCDNs – Introdução
CDNs – Introdução
 
Coisas Boas
Coisas BoasCoisas Boas
Coisas Boas
 
Aplicações web parte 2
Aplicações web parte 2Aplicações web parte 2
Aplicações web parte 2
 

Más de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Más de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Último

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 

Último (6)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

linux lvs

  • 1. O que é LVS?
  • 2. Apresentação       Henrique Haas - henriquehaas@gmail.com Novembro 2008
  • 4. Conceito Básico de Alta Disponibilidade • Garantir um ambiente operacional resistente a falhas de software e hardware, cujo objetivo é manter os serviços em operação durante o tempo previsto no nível de disponibilidade da empresa.
  • 5. Conceito Básico de Balanceamento de Carga • O balanceamento de carga permite distribuir as requisições aos serviços entre os vários equipamentos que os atendem, permitindo uma melhor aproveitamento dos recursos entre os mesmos.
  • 6. O que é LVS? • O Linux Virtual Server é um projeto Open Source iniciado por Wensong Zhang em maio de 1998.   • É uma tecnologia totalmente escalável, construída sobre um cluster de servidores, capaz de prover alta disponibilidade e balanceamento de carga.   • A entrega do serviço é completamente transparente para o usuário final ou seja eles interagem como se tratasse de um único servidor virtual de alta performance.
  • 7. Conceitos LVS Master - Servidor LVS Principal (de maior peso).   LVS Slave - Servidor LVS Redundante (menor peso).   LVS Ativo - Servidor que no momento responde pelo serviço (pode ser chamado de Director).
  • 8. Conceitos VIP - Virtual IP - Endereço IP válido no mundo que será usado pelo LVS ativo para responder pelos serviços.   RIP - Real IP – Endereço IP da rede interna usado pelos LVS e Servidores Reais para se comunicarem.   DIP - Director IP - Endereço IP de rede exclusiva para comunicação entre LVS's.
  • 9. Arquiteturas para LVS • LVS-NAT (Network Address Translation)   • LVS-DR (Direct Routing)   • LVS-TUN (Tunneling - Encapsulamento IP-IP)
  • 10. LVS-NAT • Os Servidores Reais devem estar na mesma subrede do Director(LVS); • Os endereços dos Nós (Servidores Reais) normalmente estão em conformidade com a RFC 1918; • As conexões (de entrada e saída) passam todas pelo Director; • O Director deve ser o gateway padrão dos Servidores Reais;
  • 11. LVS-NAT • O Director pode remapear números de portas, isto é, uma requisição é recebida em uma porta dele e pode ser redirecionada para uma porta diferente de um Servidor Real; • Qualquer sistema operacional pode ser usado nos Servidores Reais; • Desvantagem: O gargalo do ambiente pode ser um único Director configurado para atender a demanda, embora uma rede saturada normalmente seja o problema mais comum.
  • 12.
  • 14. LVS-DR • Os Servidores Reais devem estar no mesmo barramento que o Director; • Os RIP não necessitam estar em conformidade com a RFC 1918; • Somente as requisições passam pelo Director, as respostas são enviadas diretamente aos clientes pelos Servidores Reais; • As portas não podem ser remapeadas no Director;    
  • 15. LVS-DR • LVS-DR permite mais Servidores Reais que LVS-NAT; • Não há sobrecarga no Director como no LVS-NAT;   • Só permite balanceamento de carga em um mesmo Data- Center.   
  • 16.
  • 17. LVS-TUN • Os Servidores Reais não necessitam estar no mesmo barramento e rede que o Director; • Os RIP não necessitam estar de acordo com a RFC 1918; • O Director apenas recebe requisição dos clientes, as respostas são enviadas diretamente dos Servidores Reais;
  • 18. LVS-TUN • O Director não pode remapear portas; • Os sistemas operacionais dos Servidores Reais precisam suportar IP tunneling;   • Permite o balanceamento de carga entre Data-Centers diferentes.
  • 19.
  • 20. Tunelamento IP • É um termo técnico para designar o encapsulamento de um pacote IP dentro de outro, com o propósito de simular uma conexão física ponto a ponto entre duas redes remotas através de uma outra rede.
  • 21. Passo a Passo Cliente localiza o gateway de sua rede através do protocolo ARP  Cliente solicita a resolução de um endereço para o DNS  Cliente solicita um serviço publicado no mundo através do protocolo HTTP ou HTTPS
  • 22. Passo a Passo  O LVS recebe a solicitação, confere em sua tabela quem fornece o serviço e encaminha a solicitação para o servidor real ;  O servidor recebe a solicitação do cliente, processa e responde diretamente ao cliente usando o VIP no cabeçalho
  • 23.
  • 24.
  • 25. Diagrama Usado em Laboratório
  • 26. Adic. ou Rem. Serviços e Servidores dos LVS vim /etc/ha.d/ldirectord.cf   checktimeout=2 checkinterval=2 autoreload=yes quiescent=no logfile="info" #Serviço 1 virtual=172.30.1.9:80     real=192.168.0.100:80 gate 1 ".alive.html", "ok"     real=192.168.0.101:80 gate 2 ".alive.html", "ok"     real=192.168.0.102:80 gate 3 ".alive.html", "ok"     service=http     checkport=80     protocol=tcp      scheduler=wlc      checktype=negotiate #Serviço 2 virtual=172.30.1.9:21     real=192.168.0.120:21 gate 1     real=192.168.0.121:21 gate 2  service=ftp  checkport=21  protocol=tcp  scheduler=wlc  #Serviço 3 ...   /etc/init.d/ldirectord restart 
  • 27. Como um serviço é Monitorado?  O LVS possui uma lista de servidores e serviços. Ele verifica a disponibilidade dos serviços periodicamente. Se algum serviço estiver indisponível ele “sai da lista”. O LVS continua monitorando, e assim que for restabelecido o serviço, o LVS percebe e ele volta a lista de serviços disponíveis.
  • 28. Adaptações Necessárias nos Servidores Reais No Servidor Real é criado um script que é inicializado no boot, e o prepara para trabalhar com o LVS-DR.   /etc/init.d/lvsdrrs   Quando executado ele:   •  Ativa a interface lo; •  Configura o ARP para não se anunciar; •  Configura IP VIRTUAL para lo:0; •  Adiciona rota para o IP VIRTUAL acima •  Adiciona rota para rede 172.30.1.0 no dispositivo real •  Adiciona rota default para o roteador da rede 172  
  • 29. Justificativa para ARP Non-Announce nos servidores.  Para garantir um perfeito funcionamento desta tecnologia, só o LVS pode responder pelos serviços. Por isso na entrada ninguém chega aos servidores se não pelo LVS.
  • 30. Algoritmos de Balanceamento de Carga  rr (Round Robin): distribui as requisições igualmente entre os servidores reais disponíveis. Este é o algoritmo de agendamento mais simples. wrr (Weighted Round Robin): similar ao anterior, utiliza, entretanto um valor que determina o peso de cada servidor real. Servidores reais com maior peso receberão mais requisições que os de menor peso.
  • 31. Algoritmos de Balanceamento de Carga lc (Least-Connection): distribui requisições ao servidor com menor quantidade de conexões no momento da escolha. wlc (Weighted Least-Connection): distribui requisições ao servidor com menor quantidade de conexões no momento da escolha, levando em consideração também o peso atribuído a cada servidor real. Este é o modo de agendamento escolhido por padrão.
  • 32. Persistência de Conexão  A persistência garante que o cliente sempre será direcionado a um mesmo servidor, mesmo em diferentes conexões, possibilitando que ele mantenha por exemplo um carrinho de compras ou um formulário preenchido.  Ela é útil quando o estado precisa ser mantido.  Só é possível se a aplicação prover suporte a esta funcionalidade.  Também conhecida como afinidade de sessão.  Pode ser custosa a sua implementação, pois será necessária uma replicação de dados.  No LVS é possível incluir um serviço com persistência.
  • 33. Referências Bibliográficas  LINUX ENTERPRISE CLUSTER – KARL KOPPER  http://www.linux-ha.org/  http://guialivre.governoeletronico.gov.br/  http://wiki.sintectus.com/  http://www.austintek.com/