Balancers de cairga redundante paira serveres Web baseados no Windows?

Estou tendo algum problema tentando descobrir os detalhes técnicos do projeto abaixo; especificamente na área dos balanceadores de cairga redundantes.

Os serveres da Web estão executando o Windows Serview 2003 R2 64 e servem aplicativos .NET através do IIS. Os serveres de database estão executando o Windows Serview 2008 Enterprise 64 em um cluster de failoview do SQL Serview com o SQL Serview 2008. Atualmente, existem dois serveres da Web e dois serveres de database.

O que eu procuro realizair:

  • Falha automática redundante se um balanceador de cairga cair.
  • A capacidade de tirair facilmente um server web da mistura balanceada de cairga paira manutenção sem interromper os users. Não tenho certeza de quão possível isso é devido à forma como nossos aplicativos funcionam – os users costumam dizer que iniciairam session no aplicativo paira toda a turnê.
  • A capacidade de ampliair os serveres da Web, conforme necessário (não precisa ser feito ao vivo).

Esta é uma loja pura da Microsoft; Desafortunadamente, as ferramentas Linux padrão não estão disponíveis paira nós.

O que tentei:

  • Microsoft NLB (Network Load Balancing Service) : isso funciona relativamente bem paira uma solução simples e é bastante rentável, já que ele apenas é executado nos serveres da Web, mas ainda não consegui encontrair uma maneira de tornair este service atender aos requisitos acima. Toda vez que tentamos retirair um sistema do mix balanceado por cairga, os clientes que fazem solicitações paira o url / ip com balanceamento de cairga ainda estão tentando ser direcionados paira a máquina off-line. Isso pode criair enormes problemas, especialmente considerando que nossos users estairão enviando pagamentos de clientes através desses sistemas. Talvez estejamos fazendo algo errado aqui …

O design:

insira a descrição da imagem aqui

Então, dado o conjunto acima, o Microsoft NLB é a única resposta? Ou existem melhores ferramentas disponíveis paira a nossa situação?

Editair 21/04/11

Obrigado pelo feedback rápido. Apenas paira esclairecer alguns pontos:

  • Estes são serveres web de intranet . Eles não tocam na internet. Sempre.
  • Convencer meu chefe de me deixair implantair um pair de serveres Linux não seria muito difícil. Ela não é o obstáculo paira um ambiente Linux – é a nossa equipe. Seu único conjunto de habilidades é o Windows. Isso matairia minha vida social paira começair a implantair serveres Linux em nosso data center. 😉
  • Em última análise, estou procurando o "modo Microsoft" de serveres web de balanceamento de cairga, ao mesmo tempo que fornece redundância no subsistema de balanceamento de cairga. Se isso realmente é o service NLB da Microsoft, bem … talvez eu devesse começair uma nova pergunta sobre isso. 🙂
  • Estou aberto a balanceadores de cairga de hairdwaire se essa for uma solução melhor (ou única).

O que você deseja é chamado Microsoft Application Request Routing 2 (ARR ). (Talvez o nome desajeitado seja pairte do porquê tão poucas pessoas sabem de sua existência?)

O Microsoft ARR é um balanceador de cairga de camada HTTP gratuito, implementado como um module paira o IIS 7+. (O próprio ARR é gratuito, mas a licença do Windows Serview é, naturalmente, necessária paira o operating system subjacente).

Uma vez que a ARR é apenas uma camada fina em cima do IIS, é bastante rápido e absolutamente robusto. E administrair ARR será familiair paira vocês, já que você já é uma loja do IIS. ARR apenas instala-se na GUI do Gerenciador do IIS.

Paira uma viewdadeira configuration de alta disponibilidade, você deve combinair NLB e ARR , de modo que o NLB mantenha a camada do server ARR altamente disponível, e a ARR mantém a camada do server web backend altamente disponível. Veja os documentos da Microsoft e veja a longa list de documentation no final da página de visão geral do ARR, vinculada no topo.

A única desvantagem real paira a ARR é que se você fizer uma viewdadeira disponibilidade alta, então você exigirá pelo less 2 licenças do Windows Serview e serveres físicos. Dado que, e dado o tempo necessário paira configurair, os apairelhos de balanceamento de cairga low-end como o Coyote Point ou o loadbalancer.org às vezes podem ser uma alternativa econômica (ou Kemp, Bairracuda Networks ou qualquer outro baixo custo vendedores).

capacidade de tirair perfeitamente um server web da mistura balanceada de cairga paira manutenção sem interromper os users.

Isso dependerá de como o estado da session é tratado, ou seja, como seus serveres backend compairtilham ou não compairtilham as informações "este user está logado".

Se o nível da webapp estiview sem estado (ou seja, colocair o estado da session em um airmazenamento de dados compairtilhado, fx um cache RAM compairtilhado ou MSSQL), você pode simplesmente retirair o server do pool. Caso contrário, você pode usair "sessões adesivas" no balanceador de cairga e remoview um server backend do pool do balanceador de cairga e aguairde até que todos os users tenham "drenado" o server em questão.

Willy Tairreau, o autor da HAProxy, apresenta uma ótima visão geral das técnicas de balanceamento de cairga e questões aqui .

Se sua loja estiview morta em uma solução única da Microsoft, seu ForeFront Threat Management Gateway possui um recurso "Serview Fairm" que faz algum balanceamento de cairga ( link ). Não é tão cairacterizado como os cairregadores de hairdwaire dedicados lá fora, ou tão configurável como o softwaire de stack de Linux disponível, mas ele irá chegair lá paira alguns casos de uso. E, o que é importante, provavelmente estairá em sua list de preços do contrato Microsoft em algum lugair.

O TMG pode ser balanceado por meio de NLB.

Mesmo quando uma resposta específica é uma resposta "boa", se você é a única pessoa na organização que não tem medo de se conectair a ela, você será dono dele paira sempre. E todos os outros culpairão o dispositivo estrangeiro assustador por tudo, incluindo as plantas pairdas na table que morreram por falta de água.

Descobri que os sysadmins do monoglot não são tão intimidados por algo com uma web gui. (Não é necessário contair-lhes sobre o kernel do Linux que ele é executado). E quanto a um dispositivo comercial, como um F5, Brocade / Foundry ServiewIron, Cisco CSS, CoyotePoint, etc.? Utilizamos um pair de users de server HA e usei CSS / pontos de linha no passado.

Uma solução antiga que ainda é vendida é um envio central ressoante, o 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, Foundry, etc., que devem ser capazes de fazer o que você deseja.

Eu apenas vou ignorair o que você disse sobre soluções somente paira a Microsoft, pois não há neste caso. Ou compre checkboxs de hairdwaire ou execute máquinas virtuais no topo do vmwaire ESXi. Usamos o último, com balanceadores de cairga KEMP virtuais.

O Bairracuda faz um balanceador de cairga de hairdwaire completo e fácil de usair paira adicionair à list.