Balanceadores de carga redundantes para servidores Web baseados no Windows?

4

Estou tendo problemas para descobrir os detalhes técnicos do design abaixo; especificamente na área dos balanceadores de carga redundantes.

Os servidores da web estão executando o Windows Server 2003 R2 64 e servem aplicativos .NET por meio do IIS. Os servidores de banco de dados estão executando o Windows Server 2008 Enterprise 64 em um cluster de failover do SQL Server com o SQL Server 2008. Atualmente, há dois servidores da Web e dois servidores de banco de dados.

O que estou procurando realizar:

  • failover redundante automático se um balanceador de carga ficar inativo.
  • A capacidade de remover facilmente um servidor da web do mix de balanceamento de carga para manutenção sem interromper os usuários. Não tenho certeza de como isso é possível devido ao modo como nossos aplicativos funcionam - os usuários costumam dizer que estão conectados ao aplicativo durante todo o turno.
  • A capacidade de ampliar servidores da web, conforme necessário (não precisa ser feita ao vivo).

Esta é uma loja pura da Microsoft; então, infelizmente, as ferramentas padrão do Linux não estão disponíveis para nós.

O que tentei:

  • Microsoft NLB (serviço de balanceamento de carga em rede) : isso funciona relativamente bem para uma solução simples e é bastante econômico, já que é executado nos servidores da Web, mas ainda não encontrei uma maneira de fazer isso serviço atender aos requisitos acima. Toda vez que tentamos remover um sistema do mix de balanceamento de carga, os clientes que fazem solicitações ao URL / ip com balanceamento de carga ainda tentam ser direcionados para a máquina off-line. Isso pode criar grandes problemas, especialmente considerando que nossos usuários estarão enviando pagamentos de clientes por meio desses sistemas. Talvez estejamos fazendo algo errado aqui ...

O design:

Então,considerandotodosositensacima,oMicrosoftNLBéaúnicaresposta?Ouexistemferramentasmelhoresdisponíveisparaanossasituação?

Editar21/04/11

Obrigadopelorápidofeedback.Apenasparaesclareceralgunspontos:

  • Estessãoservidoresdawebdeintranet.ElesnãotocamnaInternet.Sempre.
  • ConvencermeuchefeapermitirqueeuimplanteumpardeservidoresLinuxnãoseriamuitodifícil.ElanãoéoobstáculoparaumambienteLinux-éanossaequipe.SeuúnicoconjuntodehabilidadeséoWindows.IssomatariaminhavidasocialparacomeçaraimplantarservidoresLinuxemnossodatacenter.;-)
  • Porfim,estouprocurandoa"maneira da Microsoft" de servidores da web de balanceamento de carga, enquanto ao mesmo tempo forneço redundância no subsistema de balanceamento de carga. Se esse é realmente o serviço NLB da Microsoft, bem ... talvez eu deva começar uma nova pergunta sobre isso. :)
  • Estou aberto a balanceadores de carga de hardware se essa for uma solução melhor (ou única).
por Cypher 22.04.2011 / 00:53

6 respostas

4

O que você deseja é chamado de Roteiro de Solicitação de Aplicativo da Microsoft 2 (ARR ). (Talvez o nome desajeitado faz parte do porquê tão poucas pessoas sabem de sua existência?)

O Microsoft ARR é um balanceador de carga de camada HTTP gratuito, implementado como um módulo para o IIS 7+. (A ARR em si é gratuita, mas a licença do Windows Server é necessária para o SO subjacente.)

Como o ARR é apenas um thin shim no topo do IIS, ele é bastante rápido e absolutamente robusto. E administrar o ARR será familiar para vocês, já que você já é uma loja do IIS. O ARR apenas se instala na GUI do Gerenciador do IIS.

Para uma verdadeira configuração de alta disponibilidade, você devem combinar NLB e ARR , para que o NLB mantenha a camada do servidor ARR altamente disponível, e a ARR mantém a camada de servidor da web de backend altamente disponível. Consulte os documentos da Microsoft e veja a longa lista de documentação no final da página de visão geral da ARR, na parte superior.

A única desvantagem real do ARR é que, se você fizer uma alta disponibilidade real, precisará de pelo menos 2 licenças e & servidores físicos. Dado que, e dado o tempo que leva para configurar, então, dispositivos de balanceamento de carga low-end, como Coyote Point ou loadbalancer.org às vezes pode ser uma alternativa econômica (Or Kemp, Barracuda Networks ou qualquer um dos outros fornecedores de baixo custo).

ability to seamlessly take a web server out of the load-balanced mix for maintenance without interrupting users.

Isso depende de como o estado da sessão é tratado, ou seja, como seus servidores de back-end compartilham ou não o compartilhamento das informações "este usuário está conectado".

Se a camada de webapp for sem estado (ou seja, colocando o estado de sessão em um armazenamento de dados compartilhado, fx um cache de RAM compartilhado ou MSSQL), você poderá simplesmente extrair um servidor do pool. Caso contrário, você poderá usar "sessões fixas" no balanceador de carga e remover um servidor de back-end do pool do balanceador de carga e aguardar até que todos os usuários tenham "esgotado" o servidor em questão.

Willy Tarreau, autor de HAProxy, tem uma bela visão geral das técnicas e questões de balanceamento de carga aqui .

    
por 22.04.2011 / 14:55
1

Se a sua loja estiver totalmente definida em uma solução exclusiva da Microsoft, o ForeFront Threat Management Gateway terá um recurso "Server Farm" que faz algum balanceamento de carga ( link ). Não é tão característico quanto os balanceadores de carga de hardware dedicados por aí, ou tão configuráveis quanto o software Linux-stack disponível, mas o levará até lá para alguns casos de uso. E, mais importante, provavelmente estará em sua lista de preços de contrato da Microsoft em algum lugar.

O TMG pode ser balanceado por meio do NLB.

    
por 22.04.2011 / 01:21
1

Mesmo quando uma resposta em particular é uma "boa" resposta, se você é a única pessoa na organização que não tem medo de fazer login, você a possuirá para sempre. E todos os outros culparão o assustador dispositivo estrangeiro por tudo, incluindo as plantas marrons em sua mesa que morreram por falta de água.

Eu descobri que os administradores monoglot não são tão intimidados por algo com um web gui. (Não há necessidade de informá-los sobre o kernel do Linux em que ele roda). Que tal um aparelho comercial, como um F5, ServerIron Brocade / Foundry, Cisco CSS, CoyotePoint, etc? Usamos um par HA de ServerIrons e usamos CSS / Arrowpoints no passado.

    
por 22.04.2011 / 02:20
0

Uma solução antiga que ainda é vendida é a ressonância do despacho central, que faz o que você quer fazer. Eu notei que você não listou "livre" em seus requisitos, então você tem soluções comerciais da Cisco, F5, Fundição, etc., que devem ser capazes de fazer o que quiser.

    
por 22.04.2011 / 01:22
0

Só vou ignorar o que você disse sobre as soluções exclusivas da Microsoft, pois não há nenhuma neste caso. Compre caixas de hardware ou execute máquinas virtuais no topo do vmware ESXi. Usamos o último, com balanceadores de carga KEMP virtuais.

    
por 22.04.2011 / 01:54
0

O Barracuda faz um balanceador de carga de hardware completo e fácil de usar para adicionar à lista.

    
por 22.04.2011 / 02:35