Alta Disponibilidade com Failover Clusters


Antes de seguir para o próximo capítulo na minha série sobre o laboratório de virtualização, acho que esta pode ser uma boa oportunidade para rever algumas das opções de agrupamento (clustering) disponíveis hoje. Vou usar o Windows Clustering Failover Server com Hyper-V, porque no mundo de hoje a tendência é combinar a Virtualização com Alta Disponibilidade (AD).

Há muitas maneiras de implementar estas soluções e os conceitos básicos de design aqui apresentados podem ser adaptados para outras plataformas de virtualização. Alguns deles não garantirão uma solução tolerante a falhas, mas a maioria pode ser usada em situações específicas (mesmo que apenas para fins de demonstração).

Duas máquinas virtuais num servidor físico


Neste cenário, um cluster de AD é construído entre duas (ou mais) máquinas virtuais numa única máquina física. Aqui temos um único servidor físico executando o Hyper-V e duas partições filho em que é executado o Failover Clustering. Esta configuração não protege contra falhas de hardware porque, quando o servidor físico falhar, ambos os nós (virtuais) do cluster falham. Portanto, a máquina física em si é um ponto único de falha (Single Point Of Failure - SPOF).

Duas máquinas virtuais num servidor físico
(Clique para aumentar)

Como configurar um laboratório de virtualização (III)

Redes no failover cluster

O primeiro passo na instalação do failover cluster é a criação de um domínio visto que todos os nós que integram o cluster têm que pertencer ao mesmo domínio. E antes de fazer isto, voltei a alterar a configuração de rede de todas as MV de modo a adaptá-las a um melhor funcionamento neste novo ambiente.

LAB-DC:IP: 192.168.1.10
Gateway: 192.168.1.1 (Router Físico)
DNS: 127.0.0.1
DNS Alternativo: 192.168.1.1

LAB-NODE1:
IP: 192.168.1.11
Gateway: 192.168.1.1
DNS: 192.168.1.10 (DC)
DNS Alternativo: 192.168.1.1 (Router Físico)

LAB-NODE2:IP: 192.168.1.12
Gateway: 192.168.1.1
DNS: 192.168.1.10
DNS Alternativo: 192.168.1.1

LAB-NODE3:
IP: 192.168.1.13
Gateway: 192.168.1.1
DNS: 192.168.1.10
DNS Alternativo: 192.168.1.1

LAB-STORAGE:IP: 192.168.1.14
Gateway: 192.168.1.1
DNS: 192.168.1.10
DNS Alternativo: 192.168.1.1

Assim, fiquei com um domínio com 5 máquinas; um controlador e dois servidores como MVs do Hyper-V, um servidor como MV do VMware e outro servidor como MV do VirtualBox.

Até aqui já demonstrei que é possível integrar na mesma infra-estrutura servidores virtualizados sobre diferentes plataformas e técnicas de virtualização porque neste caso temos MVs em hipervisores de Tipo 1 (Hyper-V) e de Tipo 2 (VMware Workstation e VirtualBox).

A opção pela criação de uma rede com IP estático é tão válida quanto a da utilização do DHCP. Mais à frente irei explorar as potencialidades de rede dos clusters em Windows 2008 mas por agora mantive a rede assim e continuei a instalação do laboratório.

Como configurar um laboratório de virtualização (II)


Tal como referi no final do meu anterior artigo, continuei a instalação do meu laboratório com a criação de máquinas virtuais no PC desktop. Mas desta vez utilizei o VMware e o VirtualBox para explorar a possibilidade de utilizar um conjunto de servidores virtualizados através de tecnologias de virtualização diferentes e rivais.

Insisti no detalhe de configuração das redes porque essa é a base do todo o trabalho que se segue; uma máquina virtual isolada pode ser importante mas eu quero mostrar como elas podem trabalhar em conjunto e, por isso mesmo, a configuração correcta das redes é de grande importância.

Importar uma Máquina Virtual para o VMware


Comecei por instalar uma MV no VMware Workstation. Ou melhor, aproveitei o trabalho que já tinha feito e utilizei o ficheiro .vhd generalizado com o sysprep, que tinha guardado. Uma vez que o VMware não suporta directamente a utilização de ficheiros .vhd foi necessário converter o ficheiro em causa do formato utilizado pelo Hyper-V (Virtual Hard Disk, ou seja, .vhd) para o formato utilizado pelo VMware (Virtual Machine Disk, ou seja, .vmdk).

O utilitário gratuito VMware vCenter Converter Standalone, que se pode obter directamente a partir do site oficial da VMware, não resolve o problema visto que não faz este tipo de conversão, embora possa converter a partir de outros formatos e até directamente a partir de servidores de Hyper-V a funcionar. Mas o que me interessava era utilizar a trabalho que já tinha realizado e por isso recorri à ferramenta WinImage.

O processo foi simples:

Seleccionei a opção correcta a partir do menu Disk e seleccionei o ficheiro de origem;

WinImage


Como configurar um laboratório de virtualização (I)


Agora que terminei a explicação do panorama geral da maior parte da teoria relacionada com Alta Disponibilidade e Virtualização é altura de começar a testar alguns desses conceitos e vê-los em acção.

O meu objectivo para os próximos artigos é produzir uma série de guias mostrando como qualquer pessoa pode facilmente instalar um punhado de máquinas virtuais e explorar as possibilidades maravilhosas fornecidos por esta tecnologia. Eu vou usar um velho laptop com uma CPU Turion 64 X2 CPU, um disco SSD de 250 Gb e 4 Gb de RAM combinado com um desktop com o Windows 7 num Athlon 64 X2 4800 + com 4 Gb de RAM e muito espaço livre em disco espalhado por três discos rígidos SATA.

Criação das Máquinas Virtuais


Não vou perder tempo com os detalhes da instalação do sistema operativo porque estou a assumir que os leitores destes artigos estarão muito à frente dessa fase.

Comecei por instalar uma nova cópia do Windows Server 2008 R2 SP1 Standard numa partição secundária no meu laptop. Uma vez concluída a instalação de todas as actualizações disponíveis no Windows Update e a activação do sistema operativo, estava pronto para adicionar a função Hyper-V, a fim de ser capaz de instalar as máquinas virtuais (MVs). Para isso bastou ir ao Server Manager/Roles, iniciar o Add Roles Wizard, seleccionar Hyper-V e seguir os procedimentos. Nada de especial até agora, certo?

Adicionar Hyper-V Role
Nota: Todas as imagens são clicáveis e vão abrir uma versão maior numa janela separada.


Cientistas replicam cérebro com chip

 
Os cientistas estão a chegar cada vez mais perto do sonho de criar sistemas de computador que podem replicar o cérebro humano. Pesquisadores do Massachusetts Institute of Technology (MIT) projectaram um chip de computador que imita a forma como os neurónios do cérebro se adaptam em resposta a novas informações. Esses chips podem, eventualmente, permitir a comunicação entre partes do corpo artificialmente criadas e o cérebro e podem também abrir caminho para dispositivos de inteligência artificial.

Existem cerca de 100 bilhões de neurónios no cérebro, cada um dos quais forma sinapses - as ligações entre os neurónios que permitem o fluxo de informações - com muitos outros neurónios. Este processo é conhecido como plasticidade e acredita-se que sustente muitas funções cerebrais, tais como a aprendizagem e a memória.
 
Cérebro

Bactérias inspiram Robótica


Pesquisadores da Universidade de Tel Aviv desenvolveram um modelo computacional que explica melhor como as bactérias se movem num enxame e este modelo pode ser aplicado a tecnologias humanas, incluindo computadores, inteligência artificial e robótica. A equipa de cientistas descobriu como as bactérias colectivamente reúnem informações sobre o seu ambiente e encontram um caminho ideal para o crescimento, mesmo nos terrenos mais complexos.

Estudar os princípios de navegação das bactérias permitirá aos pesquisadores projectar uma nova geração de robôs inteligentes que podem formar enxames inteligentes, ajudando no desenvolvimento de micro robôs médicos usados para diagnosticar ou distribuir medicamentos no corpo, ou "descodificar" sistemas utilizados em redes sociais e em toda a Internet para recolher informações sobre comportamentos dos consumidores.

Bactérias
Interacção simulada de bactérias navegando colectivamente numa direcção (American Friends of Tel Aviv University)

Virtualização Assistida por Hardware Explicada


A virtualização assistida por hardware foi introduzida pela primeira vez pela IBM no seu System/370 em 1972 para ser utilizada com o VM/370, o primeiro sistema operativo de máquina virtual. A virtualização foi esquecida no final dos anos 70, mas a proliferação de servidores x86 reacendeu o interesse em virtualização motivado pela necessidade de consolidação de servidores; a virtualização permitiu que um único servidor substituísse vários servidores dedicados subutilizados.

No entanto, a arquitectura x86 não cumpria os Critérios de Popek e Goldberg para alcançar a chamada "virtualização clássica". Para compensar essas limitações, a virtualização da arquitectura x86 tem sido realizada através de dois métodos: a virtualização total e a paravirtualização. Ambos criam a ilusão de hardware físico para alcançar a meta de independência do sistema operativo do hardware, mas apresentam algumas desvantagens no desempenho e complexidade.

Assim, a Intel e a AMD criaram as suas novas tecnologias de virtualização, um punhado de novas instruções e, fundamentalmente, um novo nível de privilégio. O hipervisor pode agora ser executado no Anel -1 e assim os sistemas operativos hóspedes podem ser executados no Anel 0.

A virtualização por hardware utiliza recursos de virtualização incorporados nas últimas gerações de CPUs da Intel e da AMD. Estas tecnologias, conhecidas como Intel VT e AMD-V, respectivamente, oferecem extensões necessárias para executar máquinas virtuais não modificadas sem as desvantagens inerentes à emulação de CPU da virtualização total. Em termos muito simplistas, estes novos processadores fornecem um modo de privilégio adicional abaixo do Anel 0 em que o hypervisor pode operar, deixando o Anel 0 disponível para sistemas operativos hóspedes não modificados.

Um novo estado quântico da matéria?


Pesquisadores da Universidade de Pittsburgh fizeram avanços na compreensão da matéria quântica correlacionada estudando estados topológicos para avançar a computação quântica, um método que utiliza a força de átomos e moléculas para tarefas computacionais.

Através de sua pesquisa, Vincent W. Liu e a sua equipa têm estudado graus de liberdade orbital e nano átomos perto do zero absoluto em redes ópticas (um conjunto de lasers de onda estacionária) para entender melhor novos estados quânticos da matéria. Desta investigação surgiu um surpreendente semimetal topológico.

Quântico

Desde a descoberta do efeito Hall quântico por Klaus Van Klitzing em 1985, pesquisadores como Liu têm estado particularmente interessados em estudar os estados topológicos da matéria, isto é, propriedades do espaço inalteradas sob deformações contínuas ou distorções, tais como flexão e alongamento. O efeito Hall quântico provou que quando um campo magnético é aplicado perpendicularmente ao sentido em que uma corrente está a fluir através de um metal, uma tensão é desenvolvida no terceira direcção perpendicular. O trabalho de Liu resultou em resultados semelhantes ainda que notavelmente diferentes.

"Nunca esperámos um resultado como este, com base em estudos anteriores", disse Liu”. Ficámos surpreendidos ao descobrir que um sistema tão simples poderia revelar-se como um novo tipo de estado topológico; um isolante que partilha as mesmas propriedades de um estado Hall quântico em materiais sólidos"
"Este novo estado quântico é muito reminiscente de alguns estados Hall", disse Liu. "Partilha a mesma aparência da superfície, mas o mecanismo é completamente diferente: Este estado quase-Hall é impulsionado pela interacção e não por um campo magnético aplicado."

Liu diz que esta matéria líquida pode potencialmente levar a computadores quânticos topológicos e novos dispositivos quânticos para telecomunicações quânticas topológicas.

Virtualização ao Nível do Sistema Operativo Explicada


Este tipo de virtualização de servidores é uma técnica onde o núcleo (kernel) de um sistema operativo permite a existência de múltiplas ocorrências de espaços de utilizador isolados. Essas ocorrências correm sobre um sistema operativo anfitrião e fornecem um conjunto de bibliotecas com as quais as aplicações interagem, dando-lhes a ilusão de que elas estão a ser executadas numa máquina dedicada ao seu uso. As ocorrências são conhecidas como Contentores, Servidores Virtuais Privados ou Ambientes Virtuais.

Virtualização ao Nível do Sistema Operativo

A virtualização ao nível do sistema operativo é obtida através da execução, pelo sistema anfitrião, de um único kernel do sistema operativo e do seu controlo de funcionalidade do sistema operativo hóspede. Nesta virtualização do kernel partilhado, cada um dos sistemas virtuais hóspedes tem o seu próprio sistema de arquivos mas partilham o kernel do sistema operativo anfitrião.

Paravirtualização Explicada


"Para" é um prefixo de origem grega que significa “ao lado de”, “proximidade” ou “semelhança”. A paravirtualização é outra abordagem para a virtualização de servidores onde, ao invés de emular um ambiente de hardware completo, a paravirtualização age como uma camada fina, que garante que todos os sistemas operativos hóspedes partilham os recursos do sistema e convivem harmoniosamente.

Paravirtualização

Na paravirtualização, o núcleo (kernel) do sistema operativo hóspede é modificado especificamente para correr no hipervisor. Isto normalmente envolve a substituição de quaisquer operações privilegiadas, que só seriam executadas no anel 0 da CPU, por chamadas para o hipervisor, conhecidas como hiperchamadas (hypercalls). O hipervisor, por sua vez executa a tarefa em nome do núcleo hóspede e também fornece interfaces de hiperchamada para outras operações críticas do núcleo, tais como gestão de memória ou gestão de interrupções.

Virtualização Total Explicada


Esta é provavelmente a mais comum e mais facilmente explicável forma de virtualização de servidores. Quando os departamentos de TI lutavam para obter resultados com as máquinas em plena capacidade, fazia sentido atribuir um servidor físico para cada função de TI aproveitando o hardware barato. A empresa típica teria uma máquina para SQL, uma para o servidor Apache e outra máquina para o servidor Exchange. Agora, cada uma dessas máquinas pode estar a ser usada apenas a 5% do seu potencial de processamento total. É aqui que entram em cena os emuladores de hardware, num esforço para consolidar os servidores.

Um emulador de hardware cria uma interface de hardware simulada para os sistemas operativos hóspedes. Na emulação de hardware, o software de virtualização (normalmente referido como um hipervisor) na verdade cria um dispositivo de hardware artificial com tudo o que precisa para executar um sistema operativo e apresenta um ambiente de hardware emulado em que os sistemas operativos hóspedes operam. Este ambiente de hardware emulado é normalmente referido como um Monitor de Máquina Virtual ou VMM (Virtual Machine Monitor).

A emulação de hardware suporta sistemas operacionais hóspedes reais; as aplicações em execução em cada sistema operativo hóspede são executadas em ambientes verdadeiramente isolados. Desta forma, podemos pode ter vários servidores a correr numa única máquina, cada um completamente independente do outro. O VMM fornece ao sistema operativo hóspede uma emulação completa do hardware subjacente e, por esta razão, este tipo de virtualização é também referida como Virtualização Total.

Criptografia quântica quebrada?

A criptografia quântica tem sido anunciada no mercado como uma forma de oferecer segurança absoluta para as comunicações e, tanto quanto sabemos, nenhum sistema dos actuais sistemas de criptografia em utilização foi violado na prática. O sistema é já utilizado nas eleições suíças para garantir que os dados de voto electrónico são transmitidos com segurança para os locais centrais.

A criptografia quântica baseia-se no conceito de enlace quântico (quantum entanglement). Com enlace, as medidas de algumas correlações estatísticas são maiores que aquelas encontradas em experiências puramente baseadas em física clássica. A segurança criptográfica funciona usando as correlações entre pares enlaçados de fotões para gerar uma chave secreta comum. Se um intruso intercepta a parte quântica do sinal, as estatísticas mudam, revelando a presença de um intruso.

A abordagem geral dos suíços pode ser resumido da seguinte forma: se você pode levar um detector a pensar que um impulso de luz clássico é na verdade um impulso de luz quântica, então talvez seja capaz de derrotar um sistema de criptografia quântica. Mas, mesmo assim, o ataque falha porque os estados quânticos enlaçados têm estatísticas que não pode ser alcançadas com fontes de luz clássicas, e assim, comparando as estatísticas, você pode desmascarar a fraude.

Mas há aqui um problema; eu posso fazer um sinal clássico de que é perfeitamente correlacionado com qualquer sinal em tudo, desde que eu tenha tempo para medir o o dito sinal e replicá-lo adequadamente. Noutras palavras, estes argumentos estatísticos só se aplicam quando não há nexo causal entre as duas medições.


Você pode pensar que isso torna fácil interceptar a natureza quântica de um sistema de criptografia. Mas estaria errado! Quando a Eva intercepta os fotões da estação transmissora dirigida pela Alice, ela também destrói os fotões. E mesmo que ela receba um resultado da sua medida, ela não pode saber o estado completo dos fotões. Assim, ela não pode recriar, ao nível do fotão individual, um estado que vai garantir que o João, na estação de recepção, vai observar medidas idênticas. Essa é a teoria.

Mas é aquí que a segunda falha entra em jogo. Assumimos muitas vezes que os detectores estão efectivamente a detectar o que nós pensamos que eles estão a detectar. Na prática, não existe tal coisa como um detector de fotão único, com polarização única. Em vez disso, o que usamos é um filtro que só permite que uma polarização particular de luz passe e um detector de intensidade para procurar por luz. O filtro não se importa com o número de fotões que passam, enquanto o detector tenta a todo o custo ser sensível a um único fotão quando, em última análise, não é.

É essa lacuna entre a teoria e a prática que permite que um feixe de luz clássica cuidadosamente manipulado possa enganar um detector e levá-lo a reportar fotões únicos. Desde que Eva mediu o estado de polarização do fotão, ela sabe que estado de polarização definir no seu impulso de luz clássica, a fim de enganar o João e levá-lo a registar o mesmo resultado. Quando o João e a Alice comparam as notas, obtêm as respostas certas e assumem que tudo está bem.

Os pesquisadores demonstraram que este ataque é bem sucedido equipamentos de criptografia quântica padrão (mas não comerciais) sob uma variedade de circunstâncias diferentes. Na verdade, eles poderiam superar a implementação quântica para algumas configurações específicas.

Software de Prevenção ao Abuso Infantil

Alguns investigadores estimam que existem actualmente mais de 15 milhões de fotografias e vídeos de crianças vítimas de violência em circulação na Internet, ou na Darknet. Quando este este material é detectado e excluído, já há muito que os pedófilos fizeram o download para os seus computadores. Procurar e monitorizar centenas de milhares de ficheiros ilegais no computador dos suspeitos era um processo tedioso e extremamente demorado para os investigadores, até agora.

Pesquisadores do Fraunhofer Institute produziram um sistema de assistência automatizado, chamado desCRY, que pode detectar imagens e vídeos de pornografia infantil entre grandes volumes de dados.

Resultados do desCRY

O software desCRY utiliza novos processos de reconhecimento de padrões para navegar pelas fotos e vídeos digitais em busca de conteúdo ilegal, não importa o quão bem escondido que seja. O núcleo do software consiste em algoritmos inteligentes de reconhecimento de padrões que automaticamente analisam e classificam imagens e sequências de vídeo e que combinam tecnologias como reconhecimento facial e tom de pele com análises contextuais e de cenas para identificar conteúdo suspeito.

O software procura todos os arquivos num computador, incluindo e-mail e arquivos anexos e tem muitos tipos de filtragem o que permite uma grande variedade de opções de pesquisa. Por exemplo, pode aplicar filtros e classificação de dados baseados em conteúdo. Desta forma, os investigadores podem classificar arquivos por objecto, pessoa ou localização, por exemplo.

Os algoritmos podem usar milhares de características que descrevem propriedades tais como cor, textura e contornos, a fim de analisar se uma imagem retrata o abuso de crianças. Se o sistema for executado num PC padrão, pode classificar até dez imagens por segundo, acelerando drasticamente os trabalhos de investigação.

Virtualização de Servidores Explicada

Provavelmente já ouviram falar sobre uma imensa variedade de tipos distintos de virtualização; Total, no metal nu, para-virtualização, SO convidado (guest), SO assistido, assistida por hardware, hospedada, ao nível do SO, ao nível do kernel, de kernel partilhado, por emulação de hardware, virtualização de hardware, baseada em hipervisor, por contentores ou ainda virtualização nativa. Confuso, não é?

Não se preocupem meus fiéis leitores, o propósito deste blog é exactamente explicar estes assuntos para que todos possam ter uma visão clara sobre as questões normalmente restritas a um grupo de geeks. Mas lembrem-se que alguns destes termos são popularizados por certos fornecedores e não têm a aceitação total de toda a indústria. Além disso, muitos dos termos são usados indistintamente e de forma intermutável (e por isso mesmo são tão confusos).

Apesar de outros classificarem as actuais técnicas de virtualização de uma maneira diferente, eu vou utilizar o seguinte critério:

  1. Virtualização Completa;
  2. Para-Virtualização;
  3. Virtualização ao Nível do Sistema Operativo;
  4. Virtualização assistida por hardware.

Nos emocionantes capítulos seguintes vou explicar estas técnicas, uma a uma, mas antes acredito que seja útil dar-lhes uma breve introdução a alguns conceitos subjacentes.

Virtualização (III)


Virtualização de Servidores


Dos três diferentes tipos de virtualização discutidos neste blog, acredito que a virtualização de servidores seja o tipo de virtualização com o qual todos estão mais familiarizados. Quando se fala em "virtualização", normalmente referimo-nos a virtualização de servidores porque esta é a principal área de virtualização, na qual um número de "máquinas virtuais" são criadas num servidor, o que significa que múltiplas tarefas podem ser atribuído ao servidor, economizando em poder de processamento, custo e espaço.

A virtualização de servidores insere uma camada de abstracção entre o hardware do servidor físico e o software que corre no servidor, permitindo que executemos múltiplos computadores num único computador anfitrião (host) com os computadores hóspedes (guests) a acreditar que estão em execução no seu próprio hardware. A máquina física é traduzida numa ou mais máquinas virtuais (VMs). Cada VM executa o seu próprio sistema operativo e aplicações, e cada uma utiliza uma parte de recursos alocados de processamento do servidor, como CPU, memória, acesso de rede e de armazenamento de E/S. Isto significa que todas as tarefas de rede que estão a ocorrer no servidor ainda parecem estar num espaço separado, de modo que qualquer erro pode ser diagnosticado e corrigido rapidamente.

Virtualização de Servidores

Ao fazer isso, ganhamos todos os benefícios de qualquer tipo de virtualização: a portabilidade de máquinas virtuais, custos operacionais reduzidos, redução da sobrecarga administrativa, consolidação de servidores, testes e treino, benefícios de recuperação de desastres e muito mais.

Virtualização (II)


Virtualização de Redes


Quando pensamos em virtualização de redes, pensamos sempre em VLANs, mas há muito mais na virtualização de redes do que apenas VLANs. Virtualização de rede é quando todos os recursos separados de uma rede são combinados, permitindo que o administrador possa partilhá-los entre os utilizadores da rede. Assim, é um método de combinar os recursos disponíveis numa rede, dividindo-se a largura de banda disponível em canais, cada um dos quais é independente dos outros, e cada um dos quais pode ser atribuído (ou transferido) para um determinado servidor ou dispositivo em tempo real. Isso permite a cada utilizador aceder a todos os recursos de rede do seu computador sejam ficheiros e pastas no computador, impressoras ou discos rígidos, etc.

Virtualização de Redes

A teoria por trás da virtualização de rede é pegar em muitos dos tradicionais serviços cliente/servidor e colocá-los "na rede". Determinados fornecedores anunciam a virtualização e a colocação na rede como um veículo para serviços adicionais e não apenas como uma forma de agregar e alocar recursos de rede. Por exemplo, é prática comum os routers e switches suportarem segurança, armazenamento, voz sobre IP (VoIP), mobilidade e entrega de aplicações.

Um fornecedor de redes tem um cartão que é inserido num router. No cartão está um servidor Linux plenamente funcional que tem uma ligação com o backbone do router. No servidor Linux, podemos instalar aplicações como sniffers, VoIP, aplicações de segurança, e muitas mais.

A virtualização de rede fornece uma camada de abstracção que separa os dispositivos físicos de rede de sistemas operativos, aplicações e serviços prestados através da rede, permitindo que eles sejam executados num único servidor ou que desktops sejam executados como máquinas virtuais em centros de dados seguros, criando uma infra-estrutura mais ágil e eficiente. Esta abordagem simplificada torna a vida do administrador de redes muito mais fácil, e faz o sistema parecer muito menos complicado para o olho humano do que realmente é.

A virtualização de rede é uma tecnologia versátil. Permite que se combinem várias redes numa única rede lógica, se separe uma única rede em várias redes lógicas e até mesmo criar redes só de software entre máquinas virtuais (VMs) num servidor físico. Virtualizar redes normalmente começa com software de rede virtual, que é colocado fora de um servidor virtual (externa) ou dentro de um servidor virtual - dependendo do tamanho e tipo da plataforma de virtualização.

Virtualização (I)


A virtualização é uma área de crescimento exponencial na computação e nas TI, criando "virtualmente" um número ilimitado de possibilidades para os administradores de sistemas. A virtualização já existe há muitos anos, de uma forma ou outra, o problema é ser capaz de compreender os diferentes tipos de virtualização, o que eles oferecem, e como podem ajudar-nos.

A virtualização tem sido definida como a abstracção dos recursos do computador ou como uma técnica para esconder as características físicas dos recursos computacionais da forma como outros sistemas, aplicações ou utilizadores interagem com esses recursos. De facto, virtualização sempre significa abstracção. Tornamos algo transparente adicionando camadas que lidam com traduções, fazendo com que os aspectos anteriormente importantes de um sistema se tornem quase irrelevantes.

Virtualização do Armazenamento


A quantidade de dados que as organizações estão a criar e armazenar, aumenta cada vez mais rapidamente devido à mudança de processos de negócios para aplicações digitais baseadas na Web e essa enorme quantidade de dados está a causar problemas para muitas delas. Em primeiro lugar, muitas aplicações geram mais dados que aqueles que podem ser armazenados fisicamente num único servidor. Depois, muitas aplicações, especialmente as baseadas na Internet, têm várias máquinas que precisam aceder aos mesmos dados. Ter todos os dados numa só máquina pode criar um estrangulamento, para não mencionar o risco que representa a situação em que muitas máquinas podem ser ficar inoperacionais se uma simples máquina, contendo todos os dados da aplicação, sofrer uma falha. Finalmente, o aumento do número de máquinas de backup causa problemas porque tentar criar cópias de segurança de dados é uma tarefa enorme, quando há centenas ou até milhares de máquinas que precisam de backup de dados.

Por estas razões, os dados foram movidos para a virtualização. As empresas utilizam armazenamento centralizado (armazenamento virtualizado), como forma de evitar problemas de acesso a dados. Além disso, a mudança para o armazenamento de dados centralizado pode ajudar as organizações de TI a reduzir custos e melhorar a eficiência da gestão de dados. A premissa básica das soluções de virtualização de armazenamento não é nova. O armazenamento em disco há muito que conta com particionamento para organizar faixas do disco físico e sectores em clusters, e em seguida abstrair clusters em unidades de partição lógica (por exemplo, a unidade C:). Isso permite que o sistema operativo possa ler e gravar dados nos discos locais sem ter em conta a localização física dos bytes individuais nos pratos do disco.

Camada de Virtualização de Amazenamento

A virtualização de armazenamento cria uma camada de abstracção entre o sistema operativo e os discos físicos utilizados para armazenamento de dados. O armazenamento virtualizado é então independente do local, o que pode permitir a utilização mais eficiente e a melhor gestão do armazenamento. Por exemplo, o software de virtualização de armazenamento, ou dispositivo, cria um espaço lógico e gere de metadados que estabelecem um mapa entre o espaço lógico o espaço em disco físico. A criação do espaço lógico permite uma plataforma de virtualização para apresentar volumes de armazenamento que podem ser criados e alterados dando pouca atenção aos discos subjacente.

A camada de virtualização de armazenamento é onde os recursos de muitos dispositivos de armazenamento diferentes são agrupados de modo a que aparentem ser todos apenas um grande contentor de armazenamento. Este é então gerido por um sistema central que faz tudo parecer muito simples para os administradores de rede. Esta é também uma óptima maneira de monitorizar recursos porque é possível saber exactamente quanto está disponível num determinado momento e cria muito muito menos preocupações quando se trata de backups, etc.
Na maioria dos centros de dados, apenas uma pequena percentagem do armazenamento é usada porque, mesmo com uma SAN, você tem que alocar uma LUN (Logical Unit Number) inteira ao servidor (ou servidores) associado a essa LUN. Imaginemos que uma LUN enche, mas existe espaço em disco disponível noutra LUN. É muito difícil tirar o espaço em disco de uma LUN e dá-lo a outra LUN. Além disso, é muito difícil de misturar e combinar armazenamento e fazê-lo aparecer como um todo.
Virtualização de Armazenamento
A virtualização de armazenamento funciona muito bem para espelhamento de tráfego através de uma WAN e para a migração de LUNs de um conjunto de armazenagem para outro, sem tempo de inactividade. Com alguns tipos de virtualização de armazenamento podemos, por exemplo, esquecer onde estão alocados os dados pois migrá-los para outro lugar é muito mais simples. De facto, muitos sistemas migram os dados com base na utilização de modo a optimizar o desempenho.

Armazenamento de Alta Disponibilidade (II)


Storage Area Network


Uma Storage Area Network (SAN) é uma sub-rede de alto desempenho dedicada que oferece acesso a armazenamento de dados consolidado ao nível de bloco, e é usada principalmente para a transferência de dados entre sistemas de computadores e elementos de armazenamento e entre os próprios elementos de armazenamento, fazendo com que dispositivos de armazenamento, como conjuntos de discos, bibliotecas de fitas, e torres de armazenamento óptico estejam acessíveis aos servidores de modo a que os dispositivos apareçam como dispositivos locais ligados ao sistema operativo.

Storage Area Network

Uma SAN normalmente tem a sua própria infra-estrutura de comunicação, que geralmente não é acessível por outros dispositivos através da rede de área local. A SAN move dados entre vários dispositivos de armazenamento, permitindo a partilha de dados entre servidores diferentes, e fornece um meio de ligação rápido para backup, restauro, arquivo e recuperação de dados. Os dispositivos da SAN são normalmente instalados numa sala individual, mas também podem ser ligados a longas distâncias, tornando-os muito úteis para grandes empresas.

Benefícios das SAN


Os principais benefícios de uma SAN são:
  • Alta Disponibilidade: Uma cópia de quaisquer dados está sempre acessível a todos e quaisquer clientes via múltiplos caminhos;
  • Fiabilidade: O transporte de dados fiável assegura uma baixa taxa de erro e capacidades de tolerância a falhas;
  • Escalabilidade: Servidores e dispositivos de armazenamento podem ser adicionados de forma independente uns dos outros e de quaisquer sistemas proprietários;
  • Desempenho: Fibre Channel (o método padrão para a interligação nas SAN) tem agora mais de 2000MB/seg de largura de banda e separa as E/S de armazenamento e de rede.

Armazenamento de Alta Disponibilidade (I)


Conceitos sobre RAID


A sigla RAID significa Redundant Array of Inexpensive Disks e é uma tecnologia que fornece funções de armazenamento e fiabilidade através de redundância. Foi desenvolvida utilizando um grande número de discos rígidos de baixo custo unidos para formar um único dispositivo de armazenamento de grande capacidade que oferecia um desempenho, capacidade de armazenamento e fiabilidade superiores em relação aos sistemas mais antigos de armazenamento. Isto foi conseguido através da combinação de múltiplas unidades físicas numa única unidade lógica onde os dados foram distribuídos entre as unidades, numa de várias formas conhecidas como níveis de RAID.

Este conceito de virtualização de armazenamento foi inicialmente definido como Redundant Array of Inexpensive Disks (conjunto redundante de discos baratos) mas o termo mais tarde evoluiu para Redundant Array of Independent Disks como forma de dissociar a tecnologia RAID das expectativas de baixo custo.
Há duas principais razões pelas quais o RAID foi desenvolvido:

  • Redundância: Este é o factor mais importante no desenvolvimento de RAID para ambientes de servidor. Um sistema RAID típico vai garantir algum nível de tolerância a falhas, fornecendo recuperação de dados em tempo real com acesso ininterrupto no caso de ocorrer uma falha de disco; 

  • Aumento de desempenho: O aumento de desempenho só ocorre nalgumas versões específicas de RAID e será sempre dependente do número de unidades utilizadas e do controlador;

RAID baseado em software


Muitos sistemas operativos oferecem funcionalidades para a implementação de sistemas de RAID baseado em software onde o OS gera os algoritmos de RAID usando a CPU do servidor. Na verdade, a carga de processamento do RAID é suportada pela unidade de processamento central, em vez de ser pelo controlador RAID em si, o que pode limitar severamente o desempenho do RAID. Embora de implementação barata, estes sistemas não garantem qualquer tipo de tolerância a falhas; se um servidor falhar todo o sistema RAID é perdido.

RAID baseado em hardware


Ao usar controladores RAID de hardware, todos os algoritmos são gerados na placa controladora RAID, libertando assim a CPU do servidor. Num sistema desktop, um controlador RAID de hardware pode ser uma placa de expansão PCI ou PCIe placa ou um componente integrado na motherboard. Estes são mais robustos e tolerantes a falhas que o software RAID, mas requerem um controlador RAID dedicado a essa tarefa. Implementações de hardware fornecem um desempenho garantido, não acrescentam sobrecarga computacional para o computador e podem suportar muitos sistemas operativos; o controlador apresenta o conjunto RAID como apenas mais uma unidade lógica.

Unidade “Hot Spare”


Tanto os RAIDs de hardware como os de software podem suportar a utilização das chamadas drives “hot spare”, ou seja, uma unidade fisicamente instalada no conjunto mas que fica inactiva até que uma unidade activa falhe. O sistema automaticamente substitui a unidade que falhou com a de reserva, reconstruindo o conjunto com a unidade de reserva incluída. Isso reduz o tempo médio de recuperação (MTTR), mas não o elimina completamente porque uma falha adicional subsequente no mesmo grupo de redundância RAID antes deste ser totalmente reconstruído, pode resultar em perda de dados. A reconstrução pode levar várias horas, especialmente em sistemas muito carregados.

Failover Clustering (IV)

 

Configurações dos Nós do Cluster


O tamanho mais vulgar para um cluster de alta disponibilidade é um cluster de dois nós, já que esse é o mínimo necessário para garantir redundância, mas muitos clusters consistem de muitos mais, às vezes dezenas de nós e essas configurações podem ser categorizados num dos seguintes modelos:

Cluster Activo/Passivo


Numa configuração Activo/Passivo (ou assimétrica), as aplicações são executadas num servidor primário, ou mestre. Um servidor redundante dedicado está presente para o substituir em caso de falha mas, para além disso, não está configurado para desempenhar qualquer outra função. Assim, a qualquer momento, um dos nós é activo e o outro é passivo. Esta configuração fornece uma instância totalmente redundante de cada nó, que só é colocada online quando o seu nó primário associado falhar.

O cluster activo/passivo geralmente contém dois nós idênticos. As instâncias das aplicações de base de dados são instaladas em ambos os nós, mas a base de dados está localizada no armazenamento partilhado. Durante a operação normal, a instância da aplicação de base de dados é executada somente no nó activo. No caso de uma falha do sistema activo principal, o software de clustering vai transferir o controlo do subsistema de disco para o sistema secundário. Como parte do processo de failover, a instância da aplicação de base de dados no nó secundário é iniciada, retomando assim o serviço.
 
Cluster Activo/Passivo
 
Esta configuração é mais simples e mais fiável, mas normalmente exige mais hardware extra.

Failover Clustering (III)

 

Configurações de Quórum do Cluster


Em termos simples, o quórum de um cluster é o número de elementos que devem estar online para que o cluster continue em funcionamento. Os servidores de um cluster necessitam de um recurso de quórum para funcionarem e este, como qualquer outro recurso, é um recurso que só pode ser possuído por um servidor de cada vez e pelo qual os servidores podem negociar a sua posse. Com efeito, cada elemento pode lançar um "voto" para determinar se o cluster continua a funcionar. Os elementos votantes são nós ou, nalguns casos, um disco testemunha ou ficheiro partilhado testemunha. O recurso de quórum é usado para armazenar a cópia definitiva da configuração do cluster de modo que, independentemente de qualquer sequência de falhas, a configuração do cluster será sempre consistente. Cada elemento votante (com excepção do ficheiro partilhado testemunha) contém uma cópia da configuração do cluster e o serviço de cluster trabalha de modo a manter todas as cópias constantemente sincronizadas.

Quando ocorrem problemas de rede, estes podem interferir na comunicação entre os nós do cluster. Um pequeno grupo de nós pode ser capaz de comunicar em conjunto através de uma parte da rede mas não ser capaz de comunicar com outro grupo diferente de nós noutra parte da rede. Isso pode causar problemas sérios. Nesta situação dividida, pelo menos um dos conjuntos de nós deve parar de funcionar como um cluster.A negociação pelo recurso de quórum permite que os servidores do cluster evitem situações de divisão (split-bain) em que os servidores estão activos e julguem que os outros servidores estão em baixo.

Para evitar os problemas que são causados por uma divisão no cluster, o software do cluster exige que qualquer conjunto de nós a funcionar como um cluster tem que usar um algoritmo de votação para determinar se, num dado momento, esse conjunto tem quórum. Como um determinado cluster tem um conjunto específico de nós e uma configuração de quórum específica, o cluster saberá quantos "votos" constitui uma maioria (ou seja, um quórum). Se o número cair abaixo da maioria, o cluster pára de funcionar. Os nós continuarão a ouvir a presença de outros nós, no caso de outro nó aparecer novamente na rede, mas os nós não começarão a funcionar como um cluster até que o quórum exista novamente.

Failover Clustering (II)

O mecanismo de failover


No cluster, os recursos partilhados podem ser vistos por todos os computadores, ou nós. Cada detecta automaticamente se outro nó no cluster falhou e os processos em execução no nó que falhou continuam a ser executados num que fica operacional. Para o utilizador, o failover é normalmente transparente. Retratado na figura seguinte está um cluster de dois nós em que ambos têm discos locais e existem recursos partilhados disponíveis para ambos os computadores. A ligação de heartbeat permite que os dois computadores comuniquem e detecta quando um falha; se o Nó 1 falhar, o software do cluster irá transferir todos os serviços de forma transparente para o Nó 2.
 
O mecanismo de failover
 
O serviço do Windows associado ao serviço de cluster, chamado Cluster Service, tem alguns componentes:
  • Processador de eventos;
  • Gestor de Base de Dados;
  • Gestor de Nó;
  • Actualizador Geral;
  • Gestor de Comunicações;
  • Gestor de Recursos ou de Failover.
O gestor de recursos comunica directamente com um monitor de recursos que utiliza uma DLL específica que torna uma aplicação apropriada para ser utilizada num cluster (cluster-aware). O gestor de comunicações fala directamente com o Winsock do Windows (um componente do nível de rede do Windows).
 
O processo de failover é o seguinte:

Failover Clustering (I)

 

Fundamentos do Clustering

 
Clustering é a utilização de vários computadores e ligações redundantes para formar o que parece ser um sistema único e altamente disponível. Um cluster fornece protecção contra a inactividade para  aplicações importantes ou serviços que precisam estar sempre disponíveis, distribuindo a carga entre vários computadores para que, no caso de falha num sistema, o serviço esteja disponível noutro.

O conceito básico de um cluster é fácil de entender; um cluster são dois ou mais sistemas trabalhando em conjunto para alcançar um objectivo comum. No Windows existem dois tipos principais de clustering: clusters de expansão/disponibilidade conhecidos como Network Load Balancing clusters (NLB)  e clusters estritamente baseados em disponibilidade conhecidos como Failover Clusters. A Microsoft  tem também uma variante do Windows chamada Windows Compute Cluster Server.

Quando um computador inesperadamente falha ou é deliberadamente desligado, o clustering garante que os processos e serviços a ser executados, mudam para outra máquina, ou seja, fazem "failover" no cluster. Isto acontece sem interrupção nem necessidade de intervenção imediata do administrador fornecendo uma solução de alta disponibilidade, o que significa que os dados críticos estão sempre disponíveis.
 
Failover Cluster
 

Balanceamento de Carga (V)

Balanceamento de Carga por Software


Vamos dar agora uma rápida vista de olhos às soluções de balanceamento de carga executadas sem a necessidade de hardware específico, como os ADCs já discutidos em artigos anteriores. Embora existam várias soluções de software disponíveis para o mundo Unix / Linux, vou-me concentrar principalmente nas tecnologias da Microsoft. No futuro pretendo escrever uma série de tutoriais passo a passo e então eu poderei fazê-lo também para a comunidade Linux.

Balanceamento de Carga por DNS


O balanceamento de carga por DNS é uma abordagem popular e simples para as solicitações de balanceamento de servidores e consiste basicamente na criação de múltiplas entradas DNS no registo do DNS para o domínio, ou seja, o servidor DNS autoritário contém vários registos do tipo "A" para um único host.

Imaginemos que queremos equilibrar a carga em www.meusite.com, e temos três servidores web com endereços IP 64.13.192.120, 64.13.192.121 e 64.13.192.122, respectivamente, cada um deles tem uma cópia completa do site e assim, seja para qual deles for direccionado o pedido, a resposta fornecida será sempre a mesma.

Para implementar isso, basta criar as seguintes entradas no DNS:

www.meusite.com 64.13.192.120
www.meusite.com 64.13.192.121
www.meusite.com 64.13.192.122

Quando chega um pedido de DNS para o servidor DNS resolver o nome de domínio, ele pode dar um dos endereços IP do servidor com base em diferentes critérios, como a simples rotatividade (round-robin) ou localização geográfica redireccionando assim o pedido para um dos servidores de um grupo de servidores. Uma vez que o domínio seja resolvido para um dos servidores especificados, as solicitações subsequentes dos clientes usando o mesmo servidor DNS local serão enviadas ao mesmo servidor mas as provenientes de outros DNSs locais serão encaminhadas para outro servidor. Este processo é conhecido como Round Robin DNS (RRDNS).

Balanceamento de Carga por DNS

Balanceamento de Carga (IV)

Balanceamento de Carga por hardware


 Um dispositivo de hardware para balanceamento de carga, também conhecido como um router de camada de 4-7, é uma appliance que é usada para dividir a carga da rede por vários servidores com base em factores tais como a utilização dos processadores, o número de ligações ou o desempenho geral do servidor.

O uso de uma appliance deste tipo minimiza a probabilidade de qualquer servidor ser sobrecarregado e optimiza a largura de banda disponível para cada computador ou terminal. Além disso, o uso de hardware para balancear a carga  pode minimizar quebras de rede, facilitar a priorização de tráfego, fornecer monitorização de aplicações, fornecer autenticação de utilizadores, e ajudar a proteger contra actividades maliciosas tais como ataques de negação de serviço (DoS).

O princípio básico é que o tráfego de rede é enviado para um endereço IP partilhado, chamado IP virtual (VIP) e este está atribuído ao balanceador de carga. Assim que o balanceador de carga recebe uma solicitação neste VIP terá que tomar uma decisão sobre para onde encaminhá-lo e esta decisão normalmente é controlada por um algoritmo de balanceamento de carga, uma verificação do estado do servidor ou um conjunto de regras.

O pedido é então enviado para o servidor apropriado e este produzirá uma resposta que, dependendo do tipo de balanceador utilizado, será enviada ou para o balanceador de carga, no caso de um dispositivo de Camada 7, ou, mais geralmente com um dispositivo de Camada 4, directamente para o utilizador final (normalmente através de seu default gateway).

No caso de um balanceador de carga por proxy, o pedido do servidor web pode ser retornado para o balanceador de carga e manipulado antes de ser enviado de volta para o utilizador. Esta manipulação pode envolver a substituição de conteúdo ou compressão e alguns dispositivos de topo de gama dispõem de total capacidade de processamento de scripts.


Algoritmos de Balanceamento de Carga


Os balanceadores de carga usam diversos tipos de algoritmos para controlar o tráfego com o objectivo específico de distribuir a carga de forma inteligente e / ou maximizar a utilização de todos os servidores no cluster.


Distribuição Aleatória


Numa distribuição aleatória, o tráfego é atribuído a um servidor escolhido aleatoriamente entre o grupo de servidores de destino. Neste caso, podem ser atribuídas muito mais solicitações a um dos servidores, enquanto os outros servidores estão de parados. No entanto, em média, cada servidor recebe uma quota aproximadamente igual de carga devido à selecção aleatória. Embora simples de implementar, pode levar à sobrecarga de um servidor ou mais e simultaneamente à subutilização dos outros.

Balanceamento de Carga (III)

Antes de mergulharmos mais fundo no abismo de todas as técnicas e algoritmos utilizados no mundo do balanceamento de carga, é importante esclarecer alguns conceitos e noções e dar uma espreitadela à terminologia mais utilizada no balanceamento de carga. O público-alvo deste blog é suposto saber o que é o modelo OSI e, portanto, eu não me vou preocupar com explicações acerca das camadas ou níveis...

Verificação do estado do servidor


A verificação do estado ou saúde do servidor (server health checking ) é a capacidade do balanceador de carga para executar testes aos servidores para determinar se eles estão ou não a fornecer os serviços:

  • Ping: Este é o método mais simples, porém não é muito fiável porque o servidor pode responder enquanto, por exemplo, o serviço web está em baixo;

  • TCP connect: Este é um método mais sofisticado que pode verificar se um serviço está instalado e a funcionar, como um serviço web na porta 80 ou seja, tentar abrir uma ligação para a porta no servidor real;

  • HTTP GET HEADER: Isso irá fazer uma solicitação HTTP GET para o servidor web e, normalmente, verificar se há um cabeçalho resposta, como 200 OK;

  • HTTP GET CONTENTS: Isto fará um HTTP GET seguido de uma verificação do conteúdo real em busca de uma resposta correcta. Pode ser útil para verificar uma página dinâmica que retorna 'OK' somente se alguns testes de verificação de aplicação funcionam, por exemplo, validação de consultas a bases de dados. Este recurso só está disponível nalguns dos produtos mais avançados, mas é o método mais fiável para aplicações web porque verifica se a aplicação está de facto disponível.

Balanceamento de carga na camada 2


Balanceamento de carga na camada 2 (também conhecido como agregação de ligações ou agregação de portas) é unir duas ou mais ligações numa única ligação lógica com maior largura de banda. As ligações agregadas também fornecem redundância e tolerância a falhas, se cada uma das ligações seguir um caminho físico diferente.

Balanceamento de Carga (II)

Balanceamento de Carga no Cliente


Pode ser mais fácil tornar o código e recursos do cliente altamente disponíveis e escaláveis do que fazê-lo para os servidores uma vez que servir conteúdo estático requer menos recursos no servidor. Antes de entrar em detalhes, vamos considerar uma aplicação que precisa ligar-se a servidores na Internet para aceder a dados. Se esta aplicação teórica gerar mais pedidos ao servidor remoto que aqueles que ele pode manipular, vamos precisar de uma solução de balanceamento de carga.

Balanceamento de carga no servidor 
Em vez de dar a conhecer ao cliente apenas um servidor a partir do qual pode aceder aos dados, podemos fornecer-lhe muitos servidores, por exemplo s1.meusite.com, s2.meusite.com, e assim por diante. O cliente selecciona aleatoriamente um servidor e tenta aceder aos dados. Se o servidor não estiver disponível, ou não responder num período de tempo pré-definido, o cliente pode escolher outro servidor até conseguir os dados.

Ao contrário das aplicações Web, que armazenam o código do cliente (o código JavaScript ou Flash SWF) no mesmo servidor que fornece dados e recursos, o cliente é independente do servidor e capaz de utilizar servidores de  balanceamento de carga a partir do seu lado (cliente) para obter escalabilidade para a aplicação.

Balanceamento de carga no cliente

Balanceamento de Carga (I)

Balanceamento de Carga


O constante crescimento da Internet tem vindo a provocar muitos problemas de desempenho, incluindo tempos de resposta baixos, congestionamento da rede e interrupção dos serviços, quer causada por normal sobrecarga do sistema ou por ataques cibernéticos (DDoS). A solução mais utilizada para minimizar ou resolver esses problemas é o Balanceamento de Carga.
O Balanceamento de Carga é dividir a quantidade de trabalho que um computador tem para fazer entre dois ou mais computadores para que mais trabalho seja feito na mesma quantidade de tempo e, em geral, todos os utilizadores sejam servidos mais rapidamente.
O Balanceamento de Carga (BC) pode também ser descrito como o processo de distribuição de solicitações de serviço por um grupo de servidores. Isso resolve uma série de exigências que se têm tornado cada vez mais importantes nas redes:

  • Aumento da escalabilidade: Quando muitas aplicações de conteúdo intensivo crescem para além do ponto em que um único servidor pode fornecer poder de processamento adequado, é cada vez mais importante para ter a flexibilidade de adicionar mais servidores de forma rápida e transparente aos utilizadores finais;

  • Alto desempenho: O melhor desempenho é alcançado quando o poder de processamento dos servidores é usado de forma inteligente. Uma infra-estrutura avançada de balanceamento de carga pode direccionar as solicitações de serviço ao utilizador final para os servidores que estão menos ocupadas e, portanto, capazes de fornecer o tempo de resposta mais baixo;

  • Alta disponibilidade e recuperação de desastres: O terceiro benefício do balanceamento de carga é a sua capacidade de melhorar a disponibilidade das aplicações. Se uma aplicação ou servidor falha, o balanceamento de carga pode automaticamente redistribuir as solicitações de serviço do utilizador final para outros servidores dentro de um cluster de servidores ou para servidores noutro local.

Na Internet, as empresas cujos websites têm grande volume de tráfego normalmente usam o BC. Quando um único servidor Web não é suficiente para lidar com o tráfego num site então é altura de equacionar a instalação de uma Webfarm que usa várias máquinas na rede actuando como um único servidor.

Alta Disponibilidade – Redes (II)

Protocolos Redundantes


Se leu os artigos anteriores a sua rede já tem ligações redundantes e portanto resta agora decidir como irão os pacotes seleccionar os caminhos na rede de forma a evitar loops. Isto não é um problema novo; caminhos redundantes foram abordados por protocolos como o Spanning Tree Protocol (STP) na camada 2 e protocolos de endereçamento como o Open Shortest Path First ( OSPF) na Camada 3. Mas esses protocolos podem levar 40 segundos ou mais para convergir e isto é inaceitável para redes críticas, especialmente aquelas com aplicações em tempo real, como VoIP e vídeo.

O STP é um protocolo de gestão de ligações (comutação) que fornece redundância de caminhos, evitando loops indesejáveis na rede. Para uma rede Ethernet funcionar correctamente, apenas pode existir um caminho activo entre duas estações. Este protocolo deve ser utilizado em situações onde se querem ligações redundantes, mas não loops. Ligações redundantes são tão importantes como backups em caso de falha numa rede. Uma falha do router principal activa as ligações de backup para que os utilizadores possam continuar a usar a rede. Sem STP nas bridges e switches, tal falha pode resultar num loop.

Para fornecer redundância de caminhos, o STP define uma árvore de ligações que abarca todos os switches numa rede e força determinados caminhos redundantes a ficarem em estado de espera (bloqueados). Se um segmento de rede no protocolo STP se tornar inacessível, ou se o STP alterar os custos dessa ligação, o algoritmo spanning-tree reconfigura a topologia da árvore de ligações e restabelece a ligação activando um dos caminhos em espera.

Uma versão actualizada do STP é o chamado RSTP (Rapid Spanning Tree Protocol) que reduz o tempo de convergência do STP para cerca de um segundo. Uma das desvantagens deste RSTP (e do STP) é que apenas uma das ligações redundantes pode ser colocada em "espera activa", outra é que quando o STP muda o caminho activo para outro router, então os endereços de gateway dos clientes também têm que mudar.

Para evitar esses problemas, deve ser utilizado o Virtual Router Redundancy Protocol (VRRP) em conjunto com o STP ou o RSTP nos routers, que simula um endereço virtual de encaminhamento para os routers principais e leva cerca de três segundos para fazer o failover.A vantagem de usar VRRP é que se ganha uma maior disponibilidade para o caminho padrão, sem necessidade de configuração de protocolos de encaminhamento dinâmico ou de descoberta de routers em cada host.

Os routers VRRP vistos como um "grupo de redundância" partilham a responsabilidade do encaminhamento de pacotes, como se fossem proprietários do endereço IP correspondente ao gateway padrão configurado nos hosts. Um dos routers VRRP actua como mestre e os outros como backups; se o router mestre falhar, um dos backups torna-se o novo mestre. Desta forma, a redundância do router é sempre garantida, permitindo que o tráfego na rede local seja encaminhado sem depender de um único router.

Mas como o VRRP e o RSTP trabalham de forma independente, é possível que o VRRP designe um router como mestre e o RSTP determine que o caminho para o router de backup é o caminho preferencial. No pior caso, isto significa que se o router backup receber tráfego, vai enviá-lo imediatamente para o router mestre para processamento, acrescentando assim um router ao caminho.
O Common Address Redundancy Protocol (CARP) é uma melhoria sobre o VRRP e é também uma ferramenta para ajudar a criar redundância, por ter vários computadores a criar uma única interface de rede virtual entre eles, de modo que se qualquer máquina falhar, o outro pode responder em vez disso, permitindo ainda um grau de partilha de carga entre os sistemas.

Alta Disponibilidade – Redes (I)

Dispositivos redundantes

 
As redes actuais são de alta tecnologia e, na maioria dos casos, de alta velocidade. Todos os projectos de WAN (Wide Area Network) necessitam ter uma ligação alternativa em caso de qualquer tipo de falha na ligação principal. Um cenário simples será o de ter uma única ligação T1 para cada escritório remoto ou filial se ligar à sede da empresa. E se essa ligação cair? Como continuar as operações nessas circunstâncias?
 
Criação de redundância é a forma mais comum de aumentar a disponibilidade. Primeiro devemos garantir que há redundância no núcleo do router; CPUs redundantes, fontes de alimentação e ventoinhas podem ser adicionados aos routers e switches montados em rack. Com CPUs redundantes pode-se forçar um failover numa placa enquanto se actualizar a segunda, ao invés de ter que desligar completamente o router para efectuar a actualização.
 
O objectivo das topologias redundantes é eliminar as interrupções da rede causadas por um único ponto de falha. Todas as redes necessitam de redundância para maior fiabilidade e isto é conseguido através de um equipamento fiável e projectos de rede que são tolerantes a falhas e defeitos e as redes devem ser projectadas de modo a convergirem rapidamente contornando a falha.
 
A redundância de rede é um conceito simples de entender; se existir um ponto único de falha e ele falhar, então não há nada a fazer. Se forem colocados métodos de acesso secundários (ou mesmo terciários), então, quando a principal ligação falhar, existirá uma forma alternativa de interligar os recursos e manter a empresa operacional.
 
O ponto crítico é que os equipamentos de rede altamente fiáveis são caros porque são projectados para não falharem e isso geralmente inclui coisas como duas fontes de energia, os CPUs de reserva e sistemas de disco redundantes.
 
Um sistema altamente disponível pode ser construído a partir de produtos de rede menos caros mas esses componentes podem não ter as fontes de alimentação redundantes ou outras características dos equipamentos de alta fiabilidade e, portanto, eles podem falhar com mais frequência do que os equipamentos mais caros. No entanto, se o projecto da rede geral tiver em consideração o facto de que o equipamento pode falhar, então o utilizador final ainda será capaz de aceder à rede, mesmo se algo falhar.
 

Alta Disponibilidade – Soluções

Todas as grandes empresas estão actualmente sob crescente pressão para manterem os seus sistemas a funcionar de modo a disponibilizarem os seus dados e serviços continuamente. Assim, sendo os padrões de exigência para a disponibilidade cada vez mais elevados, a solução passa por projectar sistemas de armazenamento e servidores altamente disponíveis e quase à prova de balas contra a inactividade não planeada.
 
A fim de atingir os mais altos níveis de disponibilidade, uma empresa tem que implementar uma solução completa que cubra todos os possíveis pontos de falha. Mas quais são as opções disponíveis para criar uma solução de alta disponibilidade?

Podem ver no gráfico as principais soluções para as três áreas a ser abordadas, armazenamento, serviços e redes:
 
Soluções de Alta Disponibilidade

Nos próximos artigos vou explicar estas soluções em detalhe. Continuem a ler ok?

Alta Disponibilidade–Medição (II)

Parâmetros da Fiabilidade

Taxa de falhas


A fiabilidade pode ser quantificada em termos do Tempo Médio Entre Falhas (MTBF), para um produto reparável, ou em termos do Tempo Médio Para Falhas (MTTF) para um produto não reparável.

Segundo a teoria que suporta a estatística dos intervalos de confiança, a média estatística torna-se o valor médio real à medida que aumentamos o número de amostras. Assim, dizer que uma fonte de alimentação tem um MTBF de 50.000 horas não significa que essa fonte deve durar uma média de 50.000 horas, porque o MTBF de 50.000 horas, ou um ano para 1 fonte, torna-se 50.000/2 para duas fontes e 50.000/4 para quatro fontes. Somente quando todas as fontes falharem com a mesma falha é que o valor do MTBF converge para MTTF.
Se o MTBF é conhecido, pode calcular-se a taxa de falha (l) como o inverso do MTBF. A fórmula para l é:   
Taxa de Falhas

Uma vez calculado o MTBF, qual é a probabilidade de que qualquer dispositivo em particular esteja operacional no intervalo de tempo igual ao MTBF? Para componentes electrónicos, temos a seguinte equação:
 
   Fiabilidade

Mas quando t = MTBF   
Fiabilidade  
  
Isto diz-nos que a probabilidade de qualquer dispositivo em particular sobreviver ao seu MTBF é calculada apenas em 36,8%, ou seja, há 63,2% de probabilidade que um único dispositivo avarie antes do MTBF!

Alta Disponibilidade - Medição (I)

Medida da disponibilidade

A necessidade de disponibilidade é regida pelos objectivos do negócio e os principais objectivos da sua quantificação são os seguintes:
  • Fornecer e manter um referencial de disponibilidade (baseline);
  • Ajudar a identificar onde melhorar os sistemas;
  • Monitorizar e controlar projectos de melhoria.
A evolução tecnológica dos últimos anos tornou possível que a maioria dos sistemas possa atingir 90% de disponibilidade com pouco mais que alguma redundância e disciplina no departamento de TI, em vez de qualquer hardware ou software específicos para atingir esse objectivo. Porém, para atingir mais de 90% de disponibilidade do sistema, há que ter em conta algumas considerações especiais e nós vamos olhar para isso nos próximos posts.
É importante reconhecer que números como estes podem ser difíceis de alcançar uma vez que é necessário algum tempo para a recuperação de interrupções. A duração do tempo de recuperação correlaciona-se com os seguintes factores:
  • Complexidade do sistema: Quanto mais complicado for o sistema, mais tempo levará a ser reiniciado o que significa que as interrupções que exigem desligar e reiniciar o sistema podem afectar drasticamente a sua capacidade de atingir uma desafiadora meta de disponibilidade. Por exemplo, aplicações a ser executadas num servidor de grande porte podem demorar até uma hora só para reiniciar quando o sistema foi desligado normalmente, e mais ainda se o sistema foi encerrado de forma anormal e houver necessidade de recuperar dados e ficheiros;
  • Gravidade do problema: Geralmente, quanto maior a gravidade do problema, mais tempo é necessário para resolvê-lo totalmente, incluindo a recuperação de dados ou trabalho perdidos;
  • Disponibilidade de pessoal de apoio: Consideremos que a interrupção ocorre após o expediente. Uma pessoa de apoio que seja chamada fora de horas poderá facilmente demorar uma ou duas horas só para diagnosticar o problema;
  • Outros factores: Muitos outros factores podem impedir a resolução imediata de uma interrupção. Às vezes, uma aplicação pode sofrer uma interrupção simplesmente porque não suporta que o sistema seja desligado enquanto está a ser executada. Outros casos podem envolver a falta de hardware de substituição pelo fornecedor do sistema, ou mesmo a falta de pessoal de apoio.


Parâmetros da Disponibilidade

  • Tempo Médio para Reparação (MTTR)
  • Defeitos por Milhão (DPM)
  • Tempo Médio entre Falhas (MTBF)
  • Desempenho (por exemplo, latência, quebras de serviço)
A disponibilidade é geralmente expressa como uma percentagem de tempo de actividade num determinado ano. A tabela a seguir mostra o tempo de inactividade que será permitido para uma determinada percentagem de disponibilidade, partindo do pressuposto que o sistema opera continuamente. Os níveis de serviço acordados referem-se geralmente aos tempos de inactividade ou disponibilidade mensais de modo a calcular os créditos de serviço para combinar com os ciclos de facturação mensal. A tabela mostra a equivalência entre uma dada percentagem de disponibilidade e o correspondente tempo que um sistema estaria disponível por ano, mês ou semana.

Disponibilidade