• Nenhum resultado encontrado

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA

N/A
N/A
Protected

Academic year: 2021

Share "CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA"

Copied!
85
0
0

Texto

(1)

PAULA SOUZA

F

ACULDADE DE

T

ECNOLOGIA DE

L

INS

P

ROF

.

A

NTONIO

S

EABRA

C

URSO

S

UPERIOR DE

T

ECNOLOGIA EM

R

EDES DE

C

OMPUTADORES

ANTONIO MARCOS HONORIO MAIKON HENRIQUE DA SILVA SOUZA

ESTUDO E ANÁLISE DO BALANCEAMENTO DE CARGA DE

SERVIDORES COM LINUX VIRTUAL SERVER (LVS)

LINS/SP 1° SEMESTRE /2014

(2)

PAULA SOUZA

F

ACULDADE DE

T

ECNOLOGIA DE

L

INS

P

ROF

.

A

NTONIO

S

EABRA

C

URSO

S

UPERIOR DE

T

ECNOLOGIA EM

R

EDES DE

C

OMPUTADORES

ANTONIO MARCOS HONORIO MAIKON HENRIQUE DA SILVA SOUZA

ESTUDO E ANÁLISE DO BALANCEAMENTO DE CARGA DE

SERVIDORES COM LINUX VIRTUAL SERVER (LVS)

Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para obtenção do Titulo de Tecnólogo em Redes de Computadores.

Orientador: Prof. Me Julio Fernando Lieira.

LINS/SP 1° SEMESTRE /2014

(3)

ESTUDO E ANÁLISE DO BALANCEAMENTO DE CARGA DE SERVIDORES COM LINUX VIRTUAL SERVER (LVS)

Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins, como parte dos requisitos necessários para a obtenção do título de Tecnólogo em Redes de Computadores sob a orientação do Prof. Me Julio Fernando Lieira.

Data de aprovação _______/________/________

____________________________________________________ Orientador Julio Fernando Lieira

____________________________________________________ Examinador

____________________________________________________ Examinador

(4)

Dedicamos este trabalho aos nossos Professores e familiares que estiveram presente conosco durante toda esta jornada.

Antonio Marcos Honório Maikon Henrique da Silva Souza

(5)

Primeiramente agradeço a Deus por ter me dado saúde e força nesta caminhada para poder cumprir todas as etapas as quais me propus realizar.

Agradeço a toda a minha família que sempre me apoiou e me ajudou a não desanimar nestes anos de estudos, principalmente aos meus pais Antonio e Gilda, minha sogra Antonia e meus irmãos Carlos, Gisele e Keli; agradeço a todos os meus primos e também a meu sobrinho, Diego, pela parceria nas aulas.

Agradeço a Fatec por ter me dado esta chance de estudo que espero retribuir um dia.

A todos os professores que com paciência e competência nos ajudam a nos tornar profissionais mais preparados para a vida. Ao professor Júlio Fernando Lieira, nosso orientador, que com muita dedicação nos ajudou em todos os momentos dessa caminhada e a professora Luciane Noronha que sempre me deu força nesta jornada.

Um agradecimento especial a todos meus amigos de sala durante este curso, principalmente ao Maikon parceiro neste momento final e de muitas dificuldades.

E como não poderia deixar de ser, agradeço a minha esposa Adriana, companheira e parceira de todas as horas, que não mediu esforços para me ajudar e me animar nos momentos de desânimo. E, claro, aos meus queridos filhos Karol e Marco Antonio, pois é por eles que concluo este curso.

(6)

Nessa etapa muito importante da minha vida e que irei carregar comigo todo conhecimento adquirido nesse precioso período de tempo, venho agradecer a todos que contribuíram nessa jornada.

Primeiramente a Deus que traçou o meu caminho até aqui, com alegrias e saúde.

A minha mãe Vilma e ao meu pai Otacilio que desde sempre me apoiaram e ofereceram o alicerce necessário, não só para concluir essa etapa em minha vida, mas como todas que passei até o presente momento.

A minha tia Lourdes que tenho como uma segunda mãe.

A minha irmã Pâmela e a minha namorada Ana pelo apoio e dedicação nos momentos em que precisei.

A toda a minha família que se manteve presente comigo durante essa caminhada.

Ao meu parceiro e amigo nesse trabalho Antonio Marcos Honório, por partilhar todo o seu conhecimento e dedicação em prol desse trabalho.

A cada um dos professores, com os qual tive o privilégio de conviver durante esse período.

Um agradecimento especial ao professor Julio Fernando Lieira, que graças ao seu conhecimento, dedicação e disponibilidade nos ajudou a concluir esse trabalho nos orientando e enriquecendo nossos conhecimentos.

Agradeço a Fatec por proporcionar todos os recursos necessários para os estudos, e por ser palco da fase mais importante da minha vida, por isso, serei eternamente grato a essa instituição.

Também agradeço aos amigos que posso chamar de irmãos que tive a sorte de fazer durante essa jornada: João Luiz, Cezar Henrique, Luciano Kiyosaque, Bruno Carvalho, Antonio Marcos, Bruno Vinicius, Mauricio Gimenez, Fernando e Gustavo Cremonesi, Mari Nogueira e Alexandre Kenji.

(7)

Este trabalho tem como objetivo apresentar uma solução que assegure um serviço web confiável e resguardado contra falhas, sejam elas de software ou de hardware. A solução adotada foi a criação de um cluster com balanceamento de carga utilizando a tecnologia do LVS, que é um projeto de código aberto cujas características de redundância, desempenho e escalabilidade se enquadram perfeitamente às necessidades deste trabalho. Para melhor compreensão do mesmo foram abordados conceitos de rede de computadores com suas topologias e arquitetura; assim como um levantamento bibliográfico sobre alta disponibilidade, clusters, além das tecnologias disponíveis para implementação do LVS. Todo processo de configuração e implantação da estrutura do LVS via Direct Routing foram descritos, bem como a coleta e análise dos dados do comportamento dos servidores WEB perante os testes de vários algoritmos de escalonamento definidos na estrutura do LVS. A tecnologia do LVS, além do fato de não incorrer em custo, se mostrou valiosa por oferecer um ambiente confiável não somente para um serviço web, mas como assegurar alta disponibilidade em um serviço de e-mail, banco de dados, proxy entre outros; assim torna-se uma tecnologia imprescindível para qualquer outro ambiente, seja ele acadêmico ou empresarial, e que tenha necessidade de garantir a total disponibilização de seus serviços.

Palavras-chave: Cluster, balanceamento de carga, alta disponibilidade, Direct Routing.

(8)

This work had the purpose of presenting a solution that ensure a reliable web service and sheltered against failures, whether of software or hardware.

The adopted solution was to create a cluster with load balancing using technology of LVS, which is an open source project whose features redundancy, performance and stability fit perfectly to the needs of this work. For better understanding of the work were discussed concepts of computer network with their topologies and architecture; as well as a bibliographical survey about high availability, clusters, beyond the technologies available for deployment of LVS. The whole process of configuration and deployment of the LVS structure by way of Direct Routing were described, as well as the collection and analysis of data on the behavior of WEB servers, before the testing of various scheduling algorithms defined in the LVS structure. The LVS technology, beyond the fact of not incurring cost, proved valuable for providing a trusted environment not only for a web service, how to ensure high availability in an email service, database, proxy among other; thus becoming an essential technology for any environment, be it academic or business that has the need of ensure the full provision of their services.

(9)

Figura 1. 1 - Modelo de computação centralizada ... 22

Figura 1. 2 - Modelo de computação distribuída ... 23

Figura 1. 3 - Exemplo de uma rede ponto-a-ponto ... 24

Figura 1. 4 - Exemplo de uma rede cliente/servidor ... 26

Figura 1. 5 - Topologia totalmente conectada ... 27

Figura 1. 6 - Topologia em malha ... 28

Figura 1. 7 - Topologia em anel ... 28

Figura 1. 8 - Topologia em barramento ... 29

Figura 1. 9 - Topologia em estrela ... 30

Figura 1. 10 - Topologia em árvore ... 30

Figura 1. 11 - Topologia sem fio ... 31

Figura 1. 12 - Camadas da arquitetura TCP/IP e respectivos protocolos ... 34

Figura 1. 13 - Datagrama do protocolo IP ... 35

Figura 2. 1 - Esquema de Alta Disponibilidade ... 40

Figura 2. 2 - Exemplo de cluster de balanceamento de carga ... 41

Figura 2. 3 - Esquema geral de um Linux Virtual Server ... 43

Figura 2. 4 - LVS via NAT... 45

Figura 2. 5 - LVS via IP Tunneling ... 46

Figura 2. 6 - LVS via Direct Routing ... 47

Figura 3. 1 - Arquitetura LVS ... 53

Figura 3. 2 - Interface de Login do software piranha ... 63

Figura 3. 3 - Definição do IP primário e tipo de LVS no servidor LVS1 e LVS2 ... 64

Figura 3. 4 - Definição do IP Secundário e configurações de monitoramento ... 65

Figura 3. 5 - Adicionando um servidor virtual ao cluster LVS ... 66

Figura 3. 6 - Adicionando um servidor real ao cluster LVS... 67

Figura 3. 7 – Servidores reais adicionados ao cluster LVS ... 67

Figura 3. 8 - Teste de funcionamento da estrutura ... 69

Figura 4. 1 - Configurações do algoritmo Round-Robin no LVS ... 72

Figura 4. 2 - Totalização das requisições recebidas - Algoritmo RR ... 72

Figura 4. 3 - Média de requisições recebidas pelo Apache no servidor WEB1 ... 73

(10)

Figura 4. 7 - Configurações do algoritmo Weighted Round Robin no LVS ... 75

Figura 4. 8 - Totalização das requisições recebidas - Algoritmo WRR ... 75

Figura 4. 9 - Requisições - Apache no WEB1 - algoritmo WRR ... 76

Figura 4. 10 - Tráfego de entrada/saída de rede no WEB1 - algoritmo WRR ... 76

Figura 4. 11 - Média de consumo de CPU no - WEB1 - algoritmo WRR ... 77

(11)

Quadro 1. 1 - Diferenças entre redes cliente/servidor e ponto-a-ponto ... 26

Quadro 1. 2 - Modelo de Referência OSI ... 33

Quadro 2. 1 - Métodos de implementação do LVS ... 44

(12)

Script 3. 1 - Comandos para desabilitar o iptables ... 55

Script 3. 2 - Desabilitando o SELinux ... 55

Script 3. 3 - Configuração IP nas interfaces do servidor web 1 ... 55

Script 3. 4 - Configuração IP nas interfaces do servidor web 2 ... 56

Script 3. 5 Configuração IP nas interfaces do servidor web 3 ... 56

Script 3. 6 - Ativação das configurações IP nas interfaces ... 56

Script 3. 7 - Procedimentos de instalação e configuração inicial do Apache ... 57

Script 3. 8 - Configuração do Apache para gerar informações mais detalhadas ... 58

Script 3. 9 - Instalação das dependências do Monitorix ... 58

Script 3. 10 - Comandos para download e instalação do Monitorix ... 59

Script 3. 11 - Comandos instalação e configuração do arptables ... 60

Script 3. 12 - Configuração IP nas interfaces do servidor LVS 1 ... 61

Script 3. 13 - Configuração IP nas interfaces do servidor LVS 2 ... 61

Script 3. 14 - Ativação das configurações IP nas interfaces dos servidores LVS ... 62

Script 3. 15 - Instalação dos pacotes ipvsadm e piranha nos servidores LVS ... 62

Script 3. 16 - Configurações sysctl nos servidores LVS ... 62

Script 3. 17 - Configuração e inicialização do software piranha ... 63

Script 3. 18 - Arquivo com as configurações do cluster LVS criado pelo Piranha ... 68

Script 4. 1 - Script de requisição de página ... 70

(13)

ARP - Address Resolution Protocol

ARPA – Advanced Research Projects Agency

ARPANET - Advanced Research Projects Agency Network CAN - Campus Area Network

CPU - Central Processing Unit CVS - Concurrent Version System

DARPA - Defense Advanced Research Projects Agency DH - Destination hash

DNS - Domain Name System FSP - Free Software Foundation FTP - File Transfer Protocol GNU - General Public License GUI - Graphical User Interface

HTTP - Hyper Text Transfer Protocol

HTTPS – Hyper Text Transfer Protocol Secure IAB - Internet Activity Board

IEEE - Institute of Electrical and Electronics Engineers IP - Internet Protocol

IPVS - IP Virtual Server

ISO - International Organization for Standardization Kbps - kilobit por Segundo

LAN - Local Area Network

LBLC - Locality-Based Least-Connection

LBLCR - Locality-Based Least-Connection with Replication Scheduling LC - Least-Connection

LVS – Linux Virtual Server

MAN - Metropolitan Area Network Mbps - Megabit por segundo

NAT - Network Address Translation NAT - Network Address Translation NNTP - Network News Transfer Protocol

(14)

PC - Personal Computer PHP - Hypertext Preprocessor RR – Round Robin

SED - Shortest Expected Delay

SMTP - Simple Mail Transfer Protocol SRI - Stanford Research Institute SSH – Secure Shell

TCP - Transmission Control Protocol

UCLA - University of California, Los Angeles UCSB - University of California, Santa Barbara UDP - User Datagram Protocol

VLAN - Virtual Local Area Network WAN - Wide Area Network

WLAN - Wireless Local Area Network WLC - Weighted Least-Connection WRR - Weighted Round Robin

(15)

INTRODUÇÃO ... 17

1 REDES DE COMPUTADORES... 20

1.1 MODELO COMPUTACIONAL ... 21 1.2 TOPOLOGIAS DE REDES ... 23 1.2.1 Redes Ponto-a-Ponto ... 23 1.2.2 Redes Cliente/Servidor ... 25 1.3 TOPOLOGIAS DE CONEXÃO ... 27

1.3.1 Topologia Totalmente Conectada... 27

1.3.2 Topologia em Malha ... 27

1.3.3 Topologia em Anel... 28

1.3.4 Topologia em Barramento ... 29

1.3.5 Topologia em Estrela ... 29

1.3.6 Topologia em Árvore ... 30

1.3.7 Topologia Sem Fio ... 31

1.3.8 Topologia Híbrida ou Mista ... 31

1.4 MODELO DE REFERÊNCIA OSI ... 31

1.5 MODELO DE REFERÊNCIA TCP/IP ... 33

1.5.1 Camada Física ... 34

1.5.2 Camada Inter-Redes ... 35

1.5.3 Camada de Transporte ... 35

1.5.4 Camada de Aplicação ... 36

2 BALACEAMENTO DE CARGA E ALTA DISPONIBILIDADE EM

SERVIDORES... 38

2.1 CLUSTER ... 38

2.1.1 Aplicações para Clusters ... 38

2.1.2 Tipos de Clusters... 39

2.2 ALTA DISPONIBILIDADE ... 39

2.3 BALACEAMENTO DE CARGA ... 40

2.4 LINUX VIRTUAL SERVER (LVS) ... 41

(16)

2.8 ALGORITMOS DE ESCALONAMENTO ... 47 2.8.1 Round-Robin (RR) ... 48 2.8.2 Weighted Round-Robin (WRR) ... 48 2.8.3 Destination hash (DH) ... 48 2.8.4 Least-Connection (LC) ... 48 2.8.5 Weighted Least-Connection (WLC) ... 49

2.8.6 Shortest Expected Delay (SED) ... 49

2.8.7 Never Queue (NQ) ... 50

2.8.8 Locality-Based Least-Connection (LBLC) ... 50

2.8.9 Locality-Based Least-Connection With Replication Scheduling (LBLCR)... 50

2.9 FERRAMENTAS EXISTENTES ... 51

2.9.1 HeartBeat ... 51

2.9.2 Piranha ... 51

2.9.3 KeepAlived ... 52

2.9.4 Ultra Monkey ... 52

3 Balanceamento de Carga de servidores com LVS ... 53

3.1 CONFIGURAÇÕES DOS SERVIDORES WEB ... 54

3.1.1 Configurações de Rede ... 54

3.1.2 Instalação e Configuração do Apache ... 57

3.1.3 Instalação e Configuração do Monitorix ... 58

3.1.4 Instalação e Configuração do Arptables ... 59

3.2 CONFIGURAÇÕES DOS SERVIDORES LVS ... 60

3.2.1 Configurando o Cluster de Balanceamento Via Software Piranha ... 63

3.2.1.1 Definindo IP para os Servidores LVS Primário e Secundário ... 64

3.2.1.2 Adicionar um Servidor Virtual ao Cluster LVS ... 65

3.2.1.3 Adicionar e Ativar os Servidores Reais ... 67

3.2.2 Configuração dos Servidores LVS Via Arquivo ... 68

3.3 TESTE DE FUNCIONAMENTO DA ESTRUTURA... 69

4 ANÁLISE DO FUNCIONAMENTO E DESEMPENHO DO LVS... 70

4.1 METODOLOGIA DE TESTES ... 70

(17)

CONCLUSÃO ... 81

REFERÊNCIAS BIBLIOGRÁFICAS ... 83

(18)

INTRODUÇÃO

Cada vez mais empresas dependem da tecnologia da informação para conseguir manter, promover e expandir seus negócios. Com o crescimento da internet vem se tornando imprescindível para todos os tipos de empresas o uso de um servidor confiável e sem falhas e com uma boa relação custo-benefício para dar sustentabilidade e segurança aos dados.

Problemas frequentemente encontrados na web, tais como “Página não encontrada”, “Tente novamente mais tarde”, “Serviço indisponível”; não só irritam o usuário como o impossibilita de realizar suas tarefas, causando prejuízo tanto para a empresa que disponibiliza o site quanto para o usuário.

Alguns sites possuem tecnologias para suportar grandes números de acessos, como por exemplo, o site da Receita Federal que é conhecido por lidar de forma eficiente com situações de excesso de tráfego. Em 2005, foram entregues mais de 20 milhões de declarações do Imposto de Renda, sendo que 98% das declarações de IR Pessoa Física foram realizadas pela Internet. (AZEREDO, 2006)

Entretanto, alguns sites ainda sofrem com o excesso de tráfego, como o site de compra coletiva Groupon, uma das principais empresas do mundo neste segmento do e-commerce e que apresentou desempenho abaixo do normal em sua infraestrutura de servidores. De acordo com um estudo da WatchMouse, uma empresa que realiza pesquisas sobre a internet, revelou que o gigante coletivo ficou 26 horas inoperante entre os dias 22 novembro a 22 dezembro de 2010, impedindo inúmeros usuários de comprarem em seu site. (E-COMMERCE, 2010)

Outro exemplo de indisponibilidade que gerou transtornos e prejuízos aconteceu com o site do jornal on-line Africanidade.com em 25/04/2008, o servidor no qual o site estava hospedado, sofreu um grave problema técnico que provocou uma indisponibilidade no acesso ao site. Este problema técnico foi suficientemente grave ao causar perda de dados, o que obrigou a administração do jornal on-line a tomar a decisão de transferir os dados que se conseguiu recuperar para outro servidor e para outra empresa de hospedagem. (AFRICANIDADE, 2008)

Como o objetivo de visar soluções eficazes para os problemas descritos acima, este trabalho tem como objetivo o estudo de técnicas para criar um serviço web confiável e protegido contra erros e falhas que possam acontecer, sejam elas

(19)

de software ou de hardware. Isso é possível por meio de um balanceamento de carga, que faz com que um servidor web não sobrecarregue e torne o serviço indisponível ou, em caso de falha de um servidor, automaticamente outra máquina assume o seu lugar e faz com que o sistema não pare de funcionar.

A tecnologia base usada para o desenvolvimento do trabalho foi o Linux Virtual Server (LVS), que é um projeto open source e que tem como principal objetivo a criação de clusters com balanceamento de carga para aplicações críticas. Dentre suas características, pode-se mencionar sua redundância de serviços, desempenho e escalabilidade flexível.

Para implantação de um serviço seguro e sem falhas é indispensável o uso da redundância como método para lidar com falhas em componentes confiáveis. Para que este método possa funcionar corretamente, um sistema tem que ter sempre um segundo servidor com as mesmas características do servidor principal, o qual assume as funções em caso de falha do servidor principal.

A redundância fornece total segurança para o sistema como, por exemplo, caso um servidor precise ser removido para atualização ou manutenção, ele pode ser retirado e recolocado de volta, sem interrupção do serviço ao cliente.

O LVS possui uma arquitetura totalmente transparente para o usuário final, na qual o cliente parece estar conectado a um servidor real. Porém é o LVS que realiza as requisições no lugar do cliente, assim, escolhe um entre dois ou mais servidores web, caso um desses servidores pare de responder, o LVS redireciona as requisições para os outros servidores Web que estão ativos, e fica transparente para o usuário.

O fato da arquitetura ser transparente torna-se um fator de extrema importância, pois, a partir dele, um conjunto de servidores parece ser um servidor único, faz com que os usuários não saibam quantos servidores têm por trás do LVS, e tem-se apenas acesso as suas aplicações.

Basicamente a transparência tem como objetivo esconder o fato de seus recursos e processos estarem distribuídos através de diversas máquinas.

No que se refere à organização, este trabalho está dividido da seguinte forma: o primeiro capítulo descreve alguns conceitos importantes sobre redes de computadores, tais como topologia, protocolos e sua arquitetura; no segundo é feito um estudo sobre o conceito de alta disponibilidade, balanceamento de carga, a tecnologia de cluster e sobre LVS; o terceiro capítulo é demostrado um tutorial sobre

(20)

a instalação e configuração do software de balanceamento de carga, bem como outros utilitários necessários para a topologia de servidores utilizada neste trabalho; o quarto capítulo descreve os testes e resultados feitos com os diferentes algoritmos de balanceamento de carga, e por fim, têm-se as conclusões finais sobre o trabalho.

(21)

1 REDES DE COMPUTADORES

Segundo Torres (2009), as redes de computadores surgiram da necessidade da troca de informações de dados que estão fisicamente localizados longe do usuário, ele afirma que é impossível não pensar em redes de computadores, quando o assunto é informática. Na Internet, essa troca de informações armazenadas remotamente vai ao extremo quando acessa dados em locais remotos, e o local onde geralmente estão armazenadas, não tem a menor importância para o usuário.

Para Tanenbaum (1997), rede de computadores é um conjunto de computadores autônomos interconectados, trocando informações entre si, através de um fio de cobre, fibras ópticas, rádio, micro-ondas, satélites de comunicação, entre outros.

Um exemplo de rede mundialmente difundida é a Internet, que possui milhares de computadores interconectados trocando as mais diversas informações, tais como e-mail, arquivos, páginas pessoais e corporativas.

A Internet iniciou-se no final da década de 1960, quanto a Agência de Projetos de Pesquisas Avançadas do Departamento de Defesa dos Estados Unidos da América – Advanced Reserch Projects Agency (ARPA), mais tarde chamada de DARPA – começou a consolidar uma rede experimental de computadores de longa distância, chamada de ARPANET, que se espalhou pelos Estados Unidos. O objetivo original da ARPANET era permitir aos fornecedores do governo compartilhar caros e também escassos recursos computacionais.

Inicialmente a ARPANET permitia que os laboratórios de pesquisa dos Estados Unidos da América (EUA) (Universidade da Califórnia – UCLA – em Los Angeles, Universidade de Utah, em Salt Lake City, Universidade da Califórnia em Santa Barbara – UCSB, e Stanford Research Institute – SRI – em Stanford) trocassem informações entre si. Desde o início, entretanto, usuários da ARPANET também usavam a rede para colaboração. Essa colaboração abrangia desde compartilhamento de arquivos e programas, e troca de mensagens via correio eletrônico (e-mail) até desenvolvimento conjunto de pesquisa usando computadores remotos. (TORRES, 2001)

Segundo Torres (2009), atualmente, as redes de computadores podem ser classificadas de acordo com o tamanho da área geográfica que elas abrangem.

(22)

Local Area Network (LAN) é o nome dado às redes locais mais comuns, sua abrangência pode chegar até ao espaço de uma sala ou mesmo de um prédio inteiro, pois se ultrapassar essa demanda pertencerá á outra classificação. O padrão de mais comum deste tipo de rede chama-se Ethernet ou IEEE 802.3.

Wireless Local Area Network (WLAN) o que diferencia esta da LAN é a ausência de cabos, utilizam transmissores de radiofrequência. A arquitetura mais popular deste tipo de rede chama-se Wi-Fi ou IEEE 802.11.

Campus Area Network (CAN) também chamada de rede de campo é uma rede maior que a local, com a abrangência maior que um prédio, possui interligação de pelo menos duas redes locais. Exemplo disso são os hospitais, universidades e grandes empresas.

Metropolitan Area Network (MAN) é uma rede metropolitana, podendo abranger até mesmo uma cidade inteira, interligando redes locais e de campo, que geralmente são realizadas por concessionárias de telecomunicações (Embratel, Oi, Vivo etc.).

Wide Area Network (WAN) também chamada de rede de longa distância abrange uma área maior que uma cidade, atuando na esfera mundial, sua melhor definição é a internet.

Virtual Local Area Network (VLAN) neste caso pode-se configurar uma rede de computadores distante fisicamente, que mesmo assim fazem parte de uma rede local, para que possam acessar e compartilhar recursos.

Internet que é rede mundial de computadores e que interliga milhões de computadores em todo o mundo, de vários tipos e tamanhos, marcas e modelos e com diferentes sistemas operacionais.

A Intranet, rede privada que usa o mesmo modelo da internet, navega por meio de um navegador web em um site interno da empresa, disponível para funcionários.

Extranet é uma intranet que permite acesso remoto, através de um modem ou mesmo por meio da Internet.

1.1 MODELO COMPUTACIONAL

(23)

o processamento dos dados e pode ser de processamento centralizado, processamento distribuído ou processamento cooperativo. A computação centralizada foi o primeiro modelo de redes de computadores, possuíam uma grande capacidade de processamento sendo acessado através de terminais sem qualquer poder de processamento (terminais burros), que apenas nos dão dispositivos de entrada (teclado e monitor) para conectarmos ao computador central conforme a figura 1.1.

Figura 1. 1 - Modelo de computação centralizada Fonte: Farias, 2006, Adaptado pelos autores

A computação cooperativa, segundo Torres (2009), é um tipo de computação distribuída. Nela vários computadores executam a mesma tarefa. Quando são utilizados computadores comuns conectados à internet, esse tipo de computação passa a chamar de computação em nuvem, mas se os computadores forem dedicados ela passa a chamar computação em grade.

Na computação distribuída cada máquina tem seu próprio processador, logo, tem poder de processamento. Elas podem ser classificadas como cliente/servidor, ponto-a-ponto, baseada em servidor e front-end/back-end. A figura 1.2 demostra um exemplo de computação distribuída.

(24)

às de computação centralizada. A diferença é que na computação centralizada os terminais não possuem qualquer tipo de processamento, diferente das baseadas em servidor, nas quais os computadores não são terminais burros e sim usados como clientes, portanto capazes de realizar processamento de dados.

Redes Front-End/Back-End são utilizadas na comunicação entre servidores (frontal e traseiro). O modelo mais comum é o servidor web (front-end) e o servidor de banco de dados (back-end). Assim quando é feita a solicitação de uma página para o servidor web ele busca os dados no servidor de banco e então envia ao usuário. O servidor web é responsável pela formatação e apresentação dos dados. (TORRES, 2009)

Figura 1. 2 - Modelo de computação distribuída Fonte: Farias, 2006, Adaptado pelos autores

1.2 TOPOLOGIAS DE REDES

Topologia de redes é o canal no qual o meio de rede está conectado e que pode ser descrito fisicamente ou logicamente.

1.2.1 Redes Ponto-a-Ponto

As redes ponto-a-ponto possuem algumas características importantes que devem ser lembradas. Elas são utilizadas em locais geograficamente menores, são fáceis de serem implementadas, possuem baixo custo, o sistema de cabeamento é

(25)

simples, não necessitam de um administrador e não existem computadores servidores. Porém possuem pouca segurança, exigem que os computadores sejam independentes e instalados em um mesmo ambiente de trabalho e são de difícil expansão. A Figura 1.3 mostra um exemplo de rede ponto-a-ponto. (TORRES, 2001)

Figura 1. 3 - Exemplo de uma rede ponto-a-ponto Fonte: Torres, 2001, p.8

Na rede ponto-a-ponto, os computadores compartilham dados e periféricos sem muita burocracia. Qualquer computador pode facilmente ler e escrever arquivos armazenados em outros computadores da rede bem como utilizar periféricos que estejam instalados em outros PC's. Obviamente tudo isso depende da configuração, que é feita em cada computador individualmente. Ou seja, não há papel de um computador “servidor” como nas redes cliente/servidor. (TORRES, 2001)

Os computadores presentes em uma rede ponto-a-ponto são computadores “completos”, isto é, funcionam normalmente quando não estão ligados em rede, tanto no que diz respeito ao hardware quanto ao software.

De acordo com Torres (2001), a grande vantagem das redes ponto-a-ponto é a facilidade de instalação e de configuração, onde os próprios usuários podem configurar manualmente quais serviços estarão disponíveis em seu computador. Essa vantagem, entretanto, traz alguns inconvenientes como, por exemplo, a vulnerabilidade em relação à segurança da rede.

(26)

estações, podendo haver o controle dos arquivos, pois nesse tipo de rede todas as estações conseguem ler e gravar informações em qualquer outra estação, sem perder a integridade das informações. O correto é existir regras entre os usuários da rede, definindo apenas uma estação para armazenamento das informações. O custo de implementação deste tipo de rede é baixo, pois não são necessários servidores e outros recursos de infraestrutura, que são caros para pequenas organizações. Não há grandes gastos com a administração da rede, pois somente as próprias estações dos usuários são configuradas. Também não se gasta muito com cabeamento, pois este tipo de rede é destinado a estruturas de pequeno porte, não sendo necessários recursos como fibras ópticas ou pontos para acesso sem fio.

1.2.2 Redes Cliente/Servidor

Nesse tipo de rede existe a figura do servidor, geralmente um computador dedicado a fornecer recursos aos usuários da rede. O servidor é um computador especializado que executa apenas tarefas específicas como armazenar e compartilhar dados, por exemplo. A utilização de Servidores traz vários benefícios como segurança, disponibilidade e integridade das informações, além da otimização de recursos. (TANENBAUM, 2003)

A configuração de uma rede cliente servidor e toda administração é feita de forma centralizada, ou seja, as configurações estão no servidor. Desta forma é possível executar processos diretamente no servidor, processos estes resultantes de aplicativos executados nas estações, aumentando a organização e segurança da rede.

O custo para a implementação desse tipo de rede depende muito das necessidades da organização, pois essa rede poderá possuir vários servidores, cada um com uma função específica. É necessário um administrador de redes para configuração e manutenção dessa rede. Geralmente também são essenciais investimentos maiores em infraestrutura como um centro de dados para alocar estes servidores e cabeamento mais específico como fibras ópticas para interligação dos servidores e outros dispositivos da rede. (TANENBAUM, 2003)

O desempenho dessa estrutura em relação a ponto-a-ponto, considerando um servidor que atenda às necessidades, é maior, pois, as estações não ficam responsáveis pelo processamento referente à rede, ou seja, o armazenamento de

(27)

arquivos ou o compartilhamento da Internet são de responsabilidade dos servidores. Os servidores desse tipo de rede podem ser computadores simples ou equipamentos sofisticados. A definição de qual utilizar depende das necessidades da organização, dos recursos disponíveis e da necessidade de futura expansão dos serviços disponibilizados. Nesse tipo de arquitetura é possível implementar bancos de dados oferecendo serviços de armazenamento e disponibilidade de informações para as demais estações, como mostra a Figura 1.4.

Figura 1. 4 - Exemplo de uma rede cliente/servidor Fonte: Tanenbaum, 2003, p.4

No Quadro 1.1 podem ser observadas as principais diferenças existentes entre os dois modelos descritos.

Quadro 1. 1 - Diferenças entre redes cliente/servidor e ponto-a-ponto

Cliente/Servidor Ponto-a-Ponto

Serviço de diretório Não tem serviço de diretório

Administração centralizada Não tem administração centralizada

Alta manutenção Baixa manutenção

Implementação complexa Simples implementação Várias opções de segurança Segurança fraca

Alto custo Baixo custo

(28)

1.3 TOPOLOGIAS DE CONEXÃO

Segundo o autor Torres (2009) as redes de computadores podem ser conectadas das seguintes maneiras:

1.3.1 Topologia Totalmente Conectada

Neste modelo cada computador possui uma conexão individual para cada outro computador, sendo assim ele oferece o maior nível de redundância, porque caso a conexão seja interrompida é possível continuar a conexão entre eles simplesmente mudando o caminho da conexão. É claro que neste caso o caminho será mais longo.

A figura 1.5 a seguir mostra um exemplo deste tipo de topologia.

Figura 1. 5 - Topologia totalmente conectada Fonte: Torres, 2009, p.21

1.3.2 Topologia em Malha

Ela é parecida com a anterior, mais usa menos conexões e alguns computadores precisam passar por outros para acessar determinado destinatário. Para alguns autores não á distinção entre estes dois tipos, eles consideram os dois como rede em malha. A figura 1.6 mostra um modelo desta topologia.

(29)

Figura 1. 6 - Topologia em malha Fonte: Torres, 2009, p.21

1.3.3 Topologia em Anel

De acordo com Torres (2009), cada computador possui dois cabos, um conectado ao anterior e outro conectado ao mais próximo computador da rede.

Redes em anel são capazes de transmitir e receber dados em qualquer direção, mas as configurações mais usuais são unidirecionais, de forma a tornar menos sofisticado os protocolos de comunicação que asseguram a entrega da mensagem corretamente e em sequencia ao destino, conforme é demostrado na figura 1.7.

Figura 1. 7 - Topologia em anel Fonte: Torres, 2009, p.22

(30)

1.3.4 Topologia em Barramento

Neste tipo de topologia há um elemento central ao quais todos os computadores são conectados. Quando o elemento central é partido, a rede deixa de funcionar. Este modelo é muito usado em redes Ethernet usando cabo coaxial ou cabo de par trançado usando um periférico concentrador chamado hub.

Este tipo de rede também é conhecido como topologia linear e fica bastante claro que nenhum micro pode usar o cabo enquanto uma comunicação está sendo efetuada. A figura 1.8 mostra como micros são ligados fisicamente. (TORRES, 2009)

Figura 1. 8 - Topologia em barramento Fonte: Torres, 2009, p.22

1.3.5 Topologia em Estrela

Redes do tipo estrela são aquelas em que os dispositivos de rede convergem para um ponto central, ou seja, um concentrador.

Esse concentrador central é um hardware, que pode ser hub, switch ou roteador.

Todos os equipamentos como computadores, impressoras de rede, pontos de acesso sem fio, etc. Convergem para o ponto concentrador da rede e, havendo problema nesse ponto da rede, toda a rede fica inoperante porque o concentrador é o equipamento responsável para servir as informações aos demais computadores da rede. Esse tipo de rede é mais eficiente e eficaz, porque, se existir uma interrupção em uma das estações de trabalho, a rede não será comprometida.

(31)

Outra vantagem da topologia em estrela é a sua flexibilidade, e também o uso de cabeamento estruturado, que permite melhor organização, controle e expansão do cabeamento da rede. A figura 1.9 mostra um exemplo de ligação desta topologia.

Figura 1. 9 - Topologia em estrela Fonte: Torres, 2009, p.23

1.3.6 Topologia em Árvore

É uma topologia também chamada estrela hierárquica e é feita ligando-se redes estrelas junta. Esta é a topologia mais comum atualmente, ela utiliza mais periféricos concentradores. A figura 1.10 demostra um exemplo de ligação.

Figura 1. 10 - Topologia em árvore Fonte: Torres, 2009, p.23

(32)

1.3.7 Topologia Sem Fio

Como o próprio nome diz, ela permite que computadores se conectem a rede sem a necessidade de uso de cabos. É necessário um equipamento chamado ponto de acesso Wireless Access Point (WAP) para fazer a conexão entre os computadores dotados de placa de rede sem fio e a rede física.

A figura 1.11 demostra um exemplo deste tipo de rede.

Figura 1. 11 - Topologia sem fio Fonte: Torres, 2009, p.24

1.3.8 Topologia Híbrida ou Mista

São redes que usam mais de uma topologia descrita acima ao mesmo tempo.

1.4 MODELO DE REFERÊNCIA OSI

O modelo Open Systems Interconnection (OSI), proposto pela Organização Internacional de Padronização, não é uma arquitetura de rede, pois não especifica os serviços e os protocolos que devem ser usados em cada camada e sim informa o que cada uma deve ser responsável. (TANENBAUM, 1997)

(33)

O modelo OSI descreve sete camadas, onde cada nova camada é criada quando há necessidade de outra camada de abstração. As camadas referenciadas devem executar funções bem definidas. Este modelo é tido como base das arquiteturas já existentes e para o desenvolvimento de novas arquiteturas de redes, sendo que nem sempre todas as camadas que o modelo propõe são implementadas. Em seguida, uma breve descrição das camadas embasada na literatura de Tanenbaum (1997) e Stallings (2005) será realizada, onde começa-se pela camada mais inferior:

Camada Física: lida com as características de acesso ao meio físico, ou seja, é a camada responsável pela transmissão dos bits em um meio de comunicação. Esta camada é interconectada a outra camada física através de um meio físico para que haja a comunicação, seja ele, metálico, de fibra ou eletromagnético.

Camada de Enlace: faz a interface entre o bloco de dados e o meio físico. Sua principal finalidade é dividir a informação recebida da camada superior (Rede) em quadros (do inglês: frames) com tamanho permitido pelo meio físico, o que reduz a perda dessas informações através de controle de fluxo, controle de erros e sincronização.

Camada de Rede: provê às camadas superiores independência quanto à tecnologia de transmissão utilizada. Responsável também por endereçamento lógico e roteamento de pacotes, e por este motivo, é de fundamental importância para os projetos de rede.

Camada de Transporte: realiza controle dos dados transmitidos e proporciona confiabilidade, controle de fluxo, recuperação de dados perdidos, transmissão e recepção simultânea (do inglês: full duplex).

Camada de Sessão: camada responsável pelo controle de conexões entre aplicações como estabelecimento, gerenciamento e término de sessões entre as partes envolvidas. Também é responsável pela gerência do tráfego, tokens (conjunto de caracteres) e pela sincronização.

Camada de Apresentação: esta camada é responsável pela adoção de um sistema padronizado de representação dos dados em alto nível, compressão e codificação de dados.

Camada de Aplicação: serve de interface entre os usuários e as demais camadas OSI, é onde ocorrem todas as trocas de informações úteis ao usuário.

(34)

O Quadro 1.2 exemplifica as camadas, serviços e exemplos de utilização aplicados do modelo OSI, descrito anteriormente.

Quadro 1. 2 - Modelo de Referência OSI

Camadas Serviços Exemplos

7 Aplicação Aplicação do Usuário FTP, Web, Browser

6 Apresentação Encriptação, compressão ASCII, UniCode, jpg

5 Sessão Controle, sincronismo RPC, NetBios

4 Transporte Recuperação de erro TCP, UDP

3 Rede Roteamento, conexão IP, IPX

2 Enlace Controle de erro de fluxo FDDI, Frame Relay, PPP

1 Física Interface de acesso ao meio Conector, cabo

Fonte: Stallings, 2005, Adaptado pelos autores

1.5 MODELO DE REFERÊNCIA TCP/IP

Esse modelo baseia-se principalmente em um serviço de transporte orientado à conexão fornecido pelo Transmission Control Protocol (TCP), e em um serviço de rede não orientado à conexões (datagrama não confiável), fornecido pelo protocolo Internet Protocol (IP). (TANENBAUM, 2003)

Diferente dos sistemas proprietários, o TCP/IP foi desenvolvido como padrão aberto no qual qualquer um pudesse usar em uma grande escala de interoperabilidade de sistemas. A ideia deste modelo surgiu no Departamento de defesa Americano, que tinha como objetivo manter a comunicação entre as bases militares em uma ocorrência de ataques ou catástrofes que afetassem os meios de comunicação. (MENDES, 2007)

Os padrões da arquitetura TCP/IP não são elaborados por órgãos internacionais de padronização, como a ISO ou a IEEE. O coro técnico que coordena o desenvolvimento dos protocolos dessa arquitetura é um comitê denominado Internet Activity Board (IAB). O IAB é formado por pesquisadores seniores, tendo a maioria deles projetado e implementado os protocolos da arquitetura internet. O IAB, na realidade, produz poucos documentos. Qualquer

(35)

pessoa pode projetar, documentar, implementar e testar um protocolo para ser usado na Internet. (SOARES, 1995)

Segundo Odom (2003), o TCP/IP possui uma série de protocolos menores: na verdade, o próprio nome TCP/IP é uma combinação de dois desses protocolos: o TCP e o IP. A arquitetura TCP/IP é composta por quatro camadas conforme é demostrado na figura 1.12.

Figura 1. 12 - Camadas da arquitetura TCP/IP e respectivos protocolos Fonte: Odom, 2003, Adaptado pelos autores

1.5.1 Camada Física

A camada de rede, ou física, é responsável por converter as tensões elétricas recebidas pela placa de rede em bits 1 ou 0. Em seguida, esses bits são agrupados em pacotes e entregues à camada superior que, por sua vez, continuará repassando até chegar à camada de aplicação, na qual o conteúdo recebido será processado e apresentado ao usuário. (MENDES, 2007)

Na arquitetura Internet (TCP/IP) não há restrições às redes que são interligadas para formar a inter-rede. Para uma rede ser conectada ela deve apenas possuir uma interface que a torne compatível com o protocolo IP. Essa função se encontra mais especificamente no nível de interface da rede, que encaminha os datagramas IP para os destinos específicos. Para realizar este encaminhamento os endereços IP são traduzidos para os endereços de hardware dos dispositivos conectados à rede. (SOARES, 1995)

(36)

1.5.2 Camada Inter-Redes

O nível inter-redes é responsável pela interligação de redes de comunicação. Sua tarefa è permitir que os hosts enviem e recebam pacotes em qualquer rede e garantir que estes pacotes trafegarão corretamente até seu destino. O roteamento de pacotes é uma questão de grande importância neste nível, assim como o controle de congestionamentos na rede. (TANENBAUM, 2003)

Estas mensagens podem chegar a uma ordem diferente daquela em que foram enviadas, obrigando as camadas superiores a reorganizá-las, caso a entrega em ordem seja desejável. (TANENBAUM, 2003)

A camada inter-rede define um formato de pacote oficial e o protocolo IP. O pacote ou datagrama (Figura 1.13) utilizado pelo protocolo IP consiste em um cabeçalho e um payload (pacotes de dados), sendo que o cabeçalho possui um comprimento fixo de 20 bytes mais um comprimento variável. A tarefa da camada inter-redes é entregar os pacotes IP onde são necessários. O roteamento é uma questão de grande importância nessa camada, assim como a necessidade de evitar congestionamentos. (TANENBAUM, 2003)

Figura 1. 13 - Datagrama do protocolo IP Fonte: Tanenbaum, 2003, p.461

1.5.3 Camada de Transporte

(37)

serviços oferecidos pelas camadas mais baixas (física e inter-redes). Isso torna as redes físicas transparentes para a camada de aplicação. A camada de transporte trata também do controle de conexão, oferecendo serviços orientados à conexão e serviços sem conexão. (FOROUZAN, 2008)

Dois protocolos fim-a-fim atuam nesta camada. O primeiro deles, o TCP, é um protocolo orientado a conexão confiável que permite a entrega sem erros de um fluxo de bytes, originado de um determinado computador, em qualquer outro computador da inter-rede. Esse protocolo fragmenta o fluxo de bytes de entrada em mensagens e encaminha cada uma delas para a camada inter-redes. No destino, O TCP cuida também do controle de fluxo, impedindo que um transmissor rápido sobrecarregue um receptor lento com um volume de mensagens maior do que ele pode manipular. (TANEMBAUM, 2003)

O segundo protocolo, o User Datagram Protocol (UDP), é um protocolo de conexão não confiável destinado a aplicações que não requerem controle de fluxo nem a manutenção da sequência das mensagens enviadas. Ele é amplamente usado em consultas e aplicações diretas do tipo cliente/servidor com solicitação e resposta, nas quais a entrega é mais importante do que a entrega precisa, como transmissão de dados de voz ou de vídeo. (TANEBAUM, 2003)

1.5.4 Camada de Aplicação

A camada de aplicação trata de protocolos de alto nível. No modelo TCP/IP questões de representação, codificação e controle de diálogo foram tratados em uma única camada. O TCP/IP combina todas as questões relacionadas a aplicações e presume que esses dados estejam empacotados corretamente para a próxima camada. (MENDES, 2007)

A camada de aplicação contém os protocolos de alto nível. Dentre eles estão o protocolo de terminal virtual (Telnet), o File Transfer Protocol (FTP) e o protocolo de correio eletrônico Simple Mail Transfer Protocol (SMTP). O protocolo de terminal virtual permite que o usuário de um computador estabeleça login em uma máquina remota e a utilize. O protocolo de transferência de arquivos permite mover dados com eficiência de uma máquina para outra. Originalmente, o correio eletrônico era um tipo de transferência de arquivos. Posteriormente um protocolo especializado foi desenvolvido para essa função. Muitos outros protocolos foram incluídos com o

(38)

decorrer dos anos como o Domain Name System (DNS), que realiza o mapeamento dos nomes de hosts para seus respectivos endereços de rede, o Network News Transfer Protocol (NNTP), protocolo usado para mover novos artigos e o Hyper Text Transfer Protocol (HTTP), utilizado para acessar páginas web, entre outros. (TANEMBAUM, 2003)

Neste capítulo foram abordados aspectos gerais de rede de computadores, suas topologias e protocolos. No próximo capítulo serão abordados assuntos referentes à Alta Disponibilidade, Cluster, com ênfase em LVS.

(39)

2 BALACEAMENTO DE CARGA E ALTA DISPONIBILIDADE EM

SERVIDORES

Neste capítulo são abordados os conceitos relacionados a clusters, suas aplicações e seus tipos, balanceamento de carga, alta disponibilidade, escalabilidade computacional, estudo sobre a tecnologia do LVS, algoritmos de escalonamento e algumas das ferramentas existentes que possibilitam a implantação e funcionalidade do ambiente.

2.1 CLUSTER

De acordo com o autor Dantas (2002) Cluster é um sistema que compreende um conjunto de computadores ou sistemas na qual trabalham de forma agregada para executar aplicações ou desempenhar outras tarefas, produzindo a ilusão de um recurso único. Esse conceito é denominado de transparência do sistema.

Ele foi desenvolvido para balancear servidores entre computadores, tem como objetivo dividir certo processamento de dados com outras máquinas conectadas na mesma rede para acelerar o processamento. (DANTAS, 2002)

2.1.1 Aplicações para Clusters

Os clusters podem ser utilizados para uma infinidade de aplicações. Basicamente, para qualquer uma que demande processamento pesado. Como exemplos de aplicações, destaca-se a previsão meteorológica (previsão do tempo e condições climáticas), simulações geotérmicas (simulação de eventos no solo), renderização de efeitos especiais (muito usado em filmes), simulações financeiras, distribuição de carga, entre outras. (DANTAS, 2002)

Basicamente, qualquer tipo de aplicação crítica, ou seja, aplicações que não podem ser interrompidas ou não podem perder dados (como os sistemas de bancos, por exemplo), podem empregar as tecnologias de cluster, desde que devidamente configurados para não serem sujeitas a falhas graves. Assim, o cluster deve contar com nobreaks ou geradores que assegurem o funcionamento do sistema mesmo nos casos de queda de energia, além de meios de manutenção e detecção e falhas eficientes. (DANTAS, 2002)

(40)

2.1.2 Tipos de Clusters

Segundo Pitanga (2003) Existem vários tipos de clusters, aqui estão descritos os tipos de clusters mais utilizados:

Cluster de alta disponibilidade: os sistemas deste modelo conseguem permanecer ativos por um extenso período de tempo e em plena condição de uso de forma contínua através do uso da redundância implícita ao sistema, além disso, conseguem detectar erros se resguardando de possíveis falhas, esse tipo de cluster é muito empregado para base de dados de missões críticas, para os correios, servidores de arquivos e aplicações.

Cluster de alto desempenho: esse tipo de cluster tem como papel permitir que a união de vários computadores comuns consiga-se um alto poder de processamento.

Cluster para balanceamento de carga: este modelo tem como papel distribuir controladamente o processamento. Seu mecanismo de redundância exige constante monitoramento, se um nó falhar as requisições são redistribuídas entre os nós disponíveis no momento. São utilizados, por exemplo, em cluster de servidores de web.

2.2 ALTA DISPONIBILIDADE

A Alta Disponibilidade está vinculada diretamente a crescente dependência dos serviços oferecidos pelos computadores. Atualmente, várias empresas contam com os recursos computacionais para fornecerem os seus serviços, como sistemas bancários, sites web, e-business, banco de dados, entre outros.

Um cluster de Alta Disponibilidade tem como finalidade manter os serviços prestados, por um sistema computacional, disponíveis a todo o momento, mesmo em caso de falhas. Isso é obtido através da criação de réplicas dos serviços e servidores, onde os computadores atuam como um único sistema. Cada computador monitora os outros por meio de software, e no caso de ocorrer uma falha um deles assume os serviços daquele que ficou indisponível. (PITANGA, 2003)

Segundo Pitanga (2003) A Alta disponibilidade pode ser classificada como: Disponibilidade básica: Empregada em máquinas comuns, sem mecanismos especiais, garantindo disponibilidade de 99% a 99,9%. Isto equivale a

(41)

dizer que em um ano a máquina pode ficar indisponível por um período de 9 horas a quatro dias.

Alta disponibilidade: São mecanismos especializados que contém mecanismos de detecção, recuperação e mascaramento de falhas elevando a disponibilidade do sistema. Nesse modelo, as máquinas têm uma disponibilidade de 99,99% a 99,999%, podendo ficar indisponível por um período de 5 horas até uma hora em um ano de operação.

Disponibilidade contínua: teoricamente ideal chegando muito próximo de 100%, neste modelo o tempo de inoperância do sistema é insignificante, todas as paradas planejadas ou não são mascaradas, e o sistema está sempre disponível, mas sempre existe a possibilidade do sistema parar.

A figura 2.1 demostrada a seguir apresenta um modelo de alta disponibilidade, na qual os Servidores são precisamente réplicas, tanto de hardware como de software. O Servidor da direita, através do esquema de monitoramento, detecta a indisponibilidade do Servidor da esquerda, e logo assume o posto para manter o serviço disponível.

Figura 2. 1 - Esquema de Alta Disponibilidade Fonte: Pitanga, 2003, Adaptado pelos Autores

2.3 BALACEAMENTO DE CARGA

Esta solução tem como finalidade manter o equilíbrio de carga entre vários servidores, assegurando assim a disponibilidade do serviço em momentos de

(42)

elevados acessos. A necessidade desta implementação é devido a elevada quantidade de tráfego nos servidores que prestam serviço em uma rede, pois, um dos maiores problemas enfrentados na Internet são os excessivos acessos quando se tem apenas um servidor.

De acordo com Pitanga (2003) O sistema de cluster baseado em balanceamento de carga consiste em integrar seus computadores para que todas as requisições provenientes dos clientes sejam distribuídas de forma equilibrada entre os servidores. A tarefa principal é redirecionar essas requisições de entrada por meio de um elemento que fará o balanceamento entre os servidores e os usuários. Consequentemente, nessa estrutura teriam-se múltiplos servidores, mas que parecem ser apenas um para o cliente.

A figura 2.2 mostra um tipo de cluster que é especialmente empregado em serviços de comércio eletrônico e provedores de Internet, que precisam resolver diferenças de carga provenientes de múltiplas requisições de entrada em tempo real.

Figura 2. 2 - Exemplo de cluster de balanceamento de carga Fonte: Pitanga, 2003, Adaptado pelos Autores

2.4 LINUX VIRTUAL SERVER (LVS)

O LVS é um projeto Open Source que tem como principal objetivo a construção de sistemas com alta disponibilidade e profundamente escaláveis, a

(43)

partir do uso conjunto de vários servidores. A arquitetura é totalmente imperceptível para o usuário final e os serviços são providos por um conjunto de máquinas e acessados por meio de um único servidor. O LVS pode oferecer serviços de maior capacidade, desempenho e serviços redundantes em relação aos serviços disponíveis em servidores únicos. (GOVERNO ELETRÔNICO, 2006)

Dentre suas características, é importante citar seu desempenho e escalabilidade flexível. O LVS é um sistema de cluster totalmente transparente para seu usuário final, pois mesmo que tenha 20 nós em seu cluster, seu usuário interagirá com apenas um endereço de entrada.

Para o funcionamento do LVS são necessários dois tipos de máquinas:

Load Balancer: este é o host responsável por receber as requisições vindas dos clientes e transmiti-las aos servidores reais do cluster, lógico que este é o ponto vulnerável do cluster. Mas se o ponto de entrada é apenas uma máquina, isto é uma falha, pois se esta máquina falhar, consecutivamente o cluster também falhará, porém pode-se usar ferramentas como o HeartBeat para monitorar e criar um "espelho" deste Servidor de Load Balancer para se caso ele falhar, a máquina espelhada assumir seu lugar automaticamente.

Servidores reais: são os servidores do cluster que detêm os serviços oferecidos pelo cluster aos clientes. Para um cluster é necessário que exista no mínimo dois servidores reais. (GOVERNO ELETRÔNICO, 2006)

O LVS é como um roteador da camada quatro do modelo OSI. A estrutura do cliente-servidor continua preservada, onde cada cliente pensa que está diretamente conectado a um servidor real e este pensa que está conectado diretamente a um cliente. Tanto o cliente como o servidor não percebem que as conexões sofrem a intervenção do direcionador. Um servidor real do LVS não coopera e não sabe da existência de outros servidores reais no LVS, um LVS não é um beowulf (Projeto de cluster que utiliza computadores pessoais) e também não é um cluster, mas se comporta como um agregador de serviços que possibilita o atendimento de uma demanda grande em um serviço.

O código IPVS é responsável por possibilitar a criação do sistema LVS, é uma coleção de modificações para kernel Linux, que combinadas com as capacidades de roteamento e filtragem de pacotes de uma máquina Linux, transformam-na em um roteador com características especiais, capaz de balancear sessões TCP e UDP entre várias máquinas. Este roteador especial chamado Linux Director distribui a

(44)

carga de requisições de serviços entre os computadores que os proveem. Com isso, o sistema constituído pela máquina Linux com o código IPVS e as outras máquinas que hospedam os serviços é chamado Linux Virtual Server. (GOVERNO ELETRÔNICO, 2006)

O sistema LVS não precisa de nenhuma modificação nos servidores reais ou nos clientes. Estes por sua vez, enviam suas requisições apenas para uma máquina não importando quantos servidores reais estejam provendo os serviços, que podem ser os comuns HTTP e HTTPS, servidores de e-mail, bancos de dados, Concurrent Version System (CVS), Secure Shell (SSH), ou seja, em geral todas as aplicações TCP/IP. (GOVERNO ELETRÔNICO, 2006)

O LVS fornece, de maneira imperceptível e simples, um ambiente altamente escalável de alta disponibilidade. Seu ponto único de falha é o Director, mas mesmo assim, em conjunção com outras ferramentas como HeartBeat e Ldirectord, pode-se construir um sistema de alta disponibilidade para o Director, aumentando ainda mais sua confiabilidade e eliminando seu ponto único de falha.

A figura 2.3 demostra como funciona um servidor Linux Virtual Server.

Figura 2. 3 - Esquema geral de um Linux Virtual Server Fonte: Elaborado pelos autores, 2014

O LVS pode ser implantado de três formas diferentes, como Virtual Server via Network Address Translation (NAT), via IP Tunneling e via Direct Routing.

(45)

No LVS via NAT tem como vantagem a utilização de qualquer sistema operacional nos servidores reais, mas tem como desvantagem a baixa capacidade implantação de servidores reais, além de sua alta latência e seu menor desempenho comparado aos métodos IP Tunneling e Direct Routing. (MACK, 2004)

O método IP Tunneling tem como vantagem seu alto desempenho, sua capacidade de suportar um número maior de servidores reais (mais de 100), e a possibilidade de implantar os servidores reais em uma rede diferente dos servidores LVS. A desvantagem desse método é em relação aos sistemas operacionais dos servidores reais, que devem suportar túneis. (MACK, 2004)

O método Direct Routing oferece alto desempenho, os servidores reais podem utilizar a maioria dos sistemas operacionais, desde que a interface de loopback não responda arp. Todos os servidores da estrutura devem estar no mesmo segmento de rede. (MACK, 2004)

O quadro 2.1 demonstra as principais características dos métodos NAT, IP Tunneling e Direct Routing.

Quadro 2. 1 - Métodos de implementação do LVS

Fonte: Elaborado pelos autores, 2014

2.5 LVS VIA NAT

Segundo Cota (2005), a superioridade do Linux Virtual Server via NAT está em que os servidores reais podem executar qualquer sistema operacional que

(46)

suporta TCP/IP com endereços IP privados e apenas um endereço IP é necessário para o Load Balancer.

A desvantagem deste tipo de cluster do LVS é a limitação da escalabilidade, caso o número de servidores reais em seu cluster passe de 20 servidores. Caso este número seja ultrapassado, o load balancer pode ser um gargalo em seu sistema LVS, pois todos os pacotes que passam pelo load balancer têm que ser reescritos para fazer o NAT. Isto é lógico, pois supondo que a média do tamanho dos pacotes TCP que irão trafegar por seu load balancer seja de 563 bytes, o tempo médio para reescrever este pacote é de 60us, em um processador Intel Pentium. O throughput (capacidade total de um canal em processar e transmitir dados durante um determinado período de tempo) do load balancer será de 8.93 Megabit por Segundo (Mbps).

Ao assumir que o throughput dos servidores reais seja de 400 Kilobit por Segundo (kbps), o load balancer pode gerenciar até no máximo 22 servidores reais. Lógico que isso é baseado em suposições e projetado para ambientes realmente enormes, com mais de 20 nós de cluster. A figura 2.4 demostra LVS via NAT.

Figura 2. 4 - LVS via NAT Fonte: Elaborado pelos autores, 2014

2.6 LVS VIA IP TUNNELING

De acordo com Cota (2005), neste tipo de cluster o load balancer ao invés de fazer a comunicação de entrada e saída, ele faz apenas um agendamento das

(47)

requisições, pois a resposta do servidor real é enviada diretamente ao usuário, sem passar pelo load balancer. Desta maneira, o load balancer pode administrar até 100 servidores reais, sem gerar gargalos no sistema.

Este tipo de LVS é recomendado para implementação de sistemas de Proxy (define os intermediários entre o usuário e seu servidor, tendo como função a conexão do computador local com a rede externa) para a Internet altamente disponível. Pois o load balancer encaminha as requisições dos clientes para os servidores Proxy e estes respondem diretamente para os usuários.

Para que esta estrutura funcione, todos os servidores do cluster precisam ter o IP Tunneling habilitado. E é aqui que teremos um problema, pois habilitar este IP Tunneling pode ser simples para o Linux, mas talvez não seja se tiver servidores reais com Solaris, por exemplo. Isto dificulta a utilização de servidores reais com sistemas operacionais diferentes.

A figura 2.5 demostra um exemplo de LVS via IP Tunneling

Figura 2. 5 - LVS via IP Tunneling Fonte: Elaborado pelos autores, 2014

2.7 LVS VIA DIRECT ROUTING

Como descrito por Cota (2005), no tipo de cluster via Direct Routing, o servidor LVS só processa requisições de entrada, deixando os servidores reais

(48)

responder diretamente para os usuários, utilizando roteamento direto.

A única limitação para este tipo de LVS é que tanto o load balancer quanto os servidores reais precisam ter uma interface de rede que esteja no mesmo segmento ou Sub-Rede. A figura 2.6 exemplifica o LVS via Direct Routing.

Figura 2. 6 - LVS via Direct Routing Fonte: Elaborado pelos autores, 2014

Estas três formas dependem de um algoritmo de escalonamento para realizar o balanceamento de carga do LVS.

2.8 ALGORITMOS DE ESCALONAMENTO

Como descrito no Governo Eletrônico (2006), existem diversos algoritmos utilizados para a implementação do LVS e seus métodos de escalonamento para o balanceamento de carga. Os métodos de escalonamento controlam a maneira como a carga é distribuída entre os nós que compõem o sistema. Quando o Director recebe uma requisição de um cliente, é através dos algoritmos de escalonamento que ele decide qual nó deverá tratá-la.

Existem métodos de escalonamento dinâmico que dão maior controle sobre a carga de chegada, com pouco ou nenhum custo adicional em processamento. O

(49)

Director mantém uma lista do número de conexões ativas e inativas para cada nó do cluster e usa esta informação para determinar qual nó irá receber a nova conexão.

2.8.1 Round-Robin (RR)

Através da leitura do Governo Eletrônico (2006), é possível afirmar que o Director armazena uma lista com os endereços de cada servidor real, assim que recebe uma conexão, ele a redireciona para um servidor dessa lista, onde uma próxima conexão será enviada para o servidor seguinte e assim continua percorrendo essa lista de forma circular atendendo todas as requisições. Todos os servidores da lista são tratados de maneira igual, não importando quantas conexões estão sendo manipuladas por um servidor específico, nem seu tempo de resposta e/ou capacidades de processamento.

2.8.2 Weighted Round-Robin (WRR)

De acordo com a leitura do Governo Eletrônico (2006), cada nó do sistema LVS possui um peso, baseado na quantidade de carga que ele pode processar. O peso é então usado, em conjunto com o método Round-Robin, para selecionar o próximo nó que será usado quando uma nova conexão chegar, sem levar em consideração o número de conexões que ainda estão ativas, servidores reais com pesos maiores terão prioridade no recebimento e quantidade de requisições, se comparados com servidores reais com pesos menores.

2.8.3 Destination Hash (DH)

De acordo com o Governo Eletrônico (2006), neste método, o Director, envia requisições de um mesmo endereço IP de origem para o mesmo servidor real no sistema LVS, usando uma lista estática de endereços de destino. O método é útil quando o servidor real é um servidor Proxy ou cache.

2.8.4 Least-Connection (LC)

Referências

Documentos relacionados

Tudo isso confirma a compreensão de que não basta a criação de políticas públicas voltadas à qualidade do processo de gestão pública municipal, sendo neces- sário estar atento

especialização, e se caracteriza por permanecer o P&D na matriz, contudo ocorrendo visitas de seus membros às filiais – para captar especificidades locais –

Resultados: O presente estudo apontou como resultado o pensamento de Luigi Ferrajoli, autor florentino, a respeito do direito e da razão na diminuição do poder do Estado

Foi realizado um estudo da estabilidade da resposta do sistema de dosimetria que é utilizado como referência na calibração de instrumentos medidores de radiação utilizados em

As informações básicas sobre a forma de acesso às referências bibliográficas e ao material de apoio, as propostas de atividades, bem como os aplicativos necessários para

Quadro 2 - Efeito de fungos micorrízicos nativos, calcário e fosfato de baixa solubilidade no rendimento de matéria seca (M.S.), conteúdo de nutrientes e nível

Subordinada a Diretoria Executiva, tem como competência as atividades de desenvolvimento de protocolo, registros dos profissionais médicos veterinários e zootecnistas, registro

Centro Estadual de Educação Tecnológica Paula Souza Cetec – Unidade do Ensino Médio e