Archive for the ‘cluster’ Category

Interop Router

Sunday, March 2nd, 2008

Data de Publicação: 26 de fevereiro de 2008

A tendência atual de alto poder de processamento, demonstrada por aplicações científicas e comerciais, gera a necessidade de utilizar supercomputadores para execução destas tarefas de processamento maciço. Uma alternativa aos elevados custos para montagem e manutenção de um supercomputador é a utilização de um cluster, sendo este, um conjunto de dois ou mais computadores que simultaneamente realizam o processamento de uma aplicação.

Todo cluster é baseado em um único tipo de sistema operacional: Windows, Linux ou outro. Isto porque em cada tipo de sistema existe alguma peculiaridade que impede a integração com os outros. Podemos afirmar que cada infra-estrutura tem suas vantagens e desvantagens. Em um cenário mais abrangente poderíamos unir os benefícios de conjuntos de computadores com diferentes sistemas e gerar um Cluster unificado à partir de outros já consolidados com sistemas distintos.

Dentre os diferentes tipos de clusters que se destacam, temos os baseados em Beowulf, uma arquitetura multicomputador idealizada pela NASA em 1994 para processar a grande quantidade de informações da entidade. Estes clusters são bastante populares por basearem-se em softwares livres (como o Linux) e por funcionarem também em máquinas obsoletas. E, lternativamente, o Windows Compute Cluster da Microsoft, lançado em 24 de Abril de 2003 que, pesar das restrições de arquitetura (necessariamente x64), conta com instalação simplificada e uma interface gráfica para seu gerenciamento.

Atualmente encontramos clusters em muitas empresas. Estes equipamentos poderiam ser interligados e aumentar o seu poder de processamento. No meio acadêmico não é diferente: existem diversos pequenos clusters que poderiam ser interligados e assim maximizar a capacidade de recursos disponíveis aos pesquisadores. Mas, muitas vezes essa união é inviabilizada pela falta de integração entre os sistemas operacionais distintos em cada cluster.

Uma linha de pesquisa que está em andamento no Microsoft Innovation Center/Interop da Unicamp, tem como objetivo é criar meios de interoperação entre os diferentes clusters existentes, e prevê a criação de um conjunto de aplicativos que formarão uma camada transparente entre usuários e diversos clusters controlados por um núcleo, aumentando a escalabilidade e poder de distribuição. Atualmente os desenvolvedores trabalham em versões
intermediárias, realizando acréscimos gradativos aos recursos.

Conhecido como Interop Router, o projeto, que está na versão 2.0, já opera com clusters Windows e Linux e está em fase de testes e aprimoramento. Ao final, o projeto terá configuração genérica para suportar mais plataformas além de Windows e Linux e utilizará a Internet como meio de comunicação, aumentando o potencial de integração.

- Página do Projeto: Interop Router

- Página do Laboratório: LMSU

Por Bruno A. Melo, Daniele R. Santos, Henrique Baggio, Raul Kist e Ivo Trivella

Fonte: Dicas-L

Memcache + HttpSession = cluster???

Wednesday, September 26th, 2007

Bem, ontem ocorreu o primeiro tech talk 2.0, digo isso pois a Web 2.0 está em onda no mercado de TI com todo o seu discurso colaborativo. Pois bem, ontem o tema do tech talk foi o famigerado memcache, e a palestra foi apresentada de forma colaborativa. Entre os palestrantes estavam:

Guilherme - Equipe WebMedia
Arthur Gasnner - Equipe Aplicativos
Marco Bicudo - Equipe Webmedia
Gustavo Soares (o que vos escreve :D) - Equipe Produção

Achei legal ter 3 áreas diferentes falando sobre um mesmo tema, pois cada um pôde falar a sua experiência com o memcache, o que na minha opinião agregou mais valor e tornou este tech talk em especial mais abrangente.

Uma “idéia”, que vou comentá-la logo logo, já havia me ocorrido um tempo atrás, e hoje vindo para o trabalho e com o tech talk de ontem na cabeça pensei novamente nela… O lance é o seguinte… a equipe de Produção já tentou algumas vezes implantar um cluster nos diversos
applications servers que usamos em producao (weblogic, jboss, tomcat) para replicar sessão
http e com isso termos o balanceamento setado para least conn, ao invés de hash. Vale ressaltar, que nossas experiências com cluster não foram muito boas, especificamente para aplicações com um fluxo intenso de informações, ou seja, bastante acessadas.

Resumidamente… o balanceamento least conn faz com que o request enviado por um usuário cada hora caia em um servidor diferente, distribuindo melhor a carga entre os diversos servidores membros de um grupo. Já o balanceamento em hash, faz com que o request de um usuário sempre caia no mesmo servidor que ele caiu inicialmente, ou seja, se tivermos 3 servidores: A, B e C e o meu primeiro request cair no servidor A, ele irá sempre cair no servidor A, salvo claro, algum indisponibilidade neste servidor. O balanceamento em hash nao é muito bom, pois em algumas situações podemos ter um servidor com um número muito grande de sessões enquanto que o(s) outro(s) servidor(es) está(ão) com um número baixo de sessões http.

Após a explicação do que é least conn e o que é hash, vamos a minha idéia (que ainda nao sei se é viável, ou se trará algum ganho…. é apenas uma idéia). Poderíamos instalar instâncias de memcache nos servidores de backend, e a aplicação poderia salvar a sessão http do usuário no memcache, fazendo uma distribuição das diversas sessões entres os memcache. Só para lembrar, e conforme foi explicado ontem, com o memcache nao há replicação dos dados, as informações ficam distribuídas entre as diversas instâncias do memcache. Desta forma, a persistência de sessão seria garantida pelo memcache, ao invés do cluster habilitado no app server, seja ele jboss ou weblogic, e poderìamos ter o balanceamento configurado para least conn.

Quanto a esta “solução”, restam algumas dúvidas:

- Como o memcache iria se comportar nestas condições?
- É viável?
- E a performance, como seria?
- Seria fácil ligar/desligar o cluster, caso precisássemos?
- Qual o tamanho típico de uma sessão http?
- Haveria realmente uma melhor distribuição da carga entre os servidores?

Well… é isto.. ainda nao tive tempo de testá-la, e pelo andar da carruagem nao terei tempo tão cedo… mas fica aqui o registro da minha proposta… e quem sabe arrumo um tempo para testar.. ou alguma boa alma para me ajudar??? :D

Comentários serão benvindos…

Google lança gerenciador GPL de servidores virtuais

Friday, August 31st, 2007

O projeto Ganeti do Google se baseia no uso do Xen em servidores Linux

O Ganeti é capaz de gerenciar servidores virtuais na plataforma Xen sobre sistema operacional Linux em clusters de PCs comuns. Após ser instalado em uma máquina física (ou cluster) equipada com Linux e Xen, o gerenciador se encarrega das tarefas de criação de discos virtuais, instalação de sistemas operacionais, inicialização e desligamento de máquinas virtuais e ainda suporte a falhas de hardware. Com esses recursos, o Ganeti facilita muito a recuperação de máquinas virtuais após falhas físicas.

Fonte: http://www.linuxmagazine.com.br/ganeti