Cluster de IIS e SQL Server

4

Eu tenho um serviço WCF implantado no IIS e usando o SQL Server 2008 como back-end.

A minha pergunta é: Como posso fazer cluster (balanceamento de carga / failover) no IIS e no SQL Server e que tipo de coisa preciso ter em mente antes de fazer isso? (por exemplo, tenho que mover as sessões da memória para o servidor SQL, etc.)

Além disso, como posso ter certeza de que os dois servidores SQL tenham os dados espelhados todas as vezes e que os dois servidores compartilhem informações de bloqueios (linha, página, tabela) em tempo real?

Esta é a minha primeira vez nisso. Isso é chamado de agricultura web?

    
por Mubashar Ahmad 03.02.2010 / 11:39

3 respostas

1

Acho que o IIS e o SQL estão em servidores separados:

IIS: Você pode usar o recurso Microsoft NLB para distribuir a carga entre 2 ou mais servidores. Eles podem ser edições da Web do Windows. Está incluído no windows. Você terá um IP virtual ao qual o cliente se conectará. Servidores irão "compartilhar" este ip e espalhar o cliente para outro servidor. O multicast / unicast depende da rede, número de comunicação nic e intra-servidor ou não. O NLB não reconhece o aplicativo, se você fechar o IIS, os usuários serão perdidos se você tiver afinidade. O NLB apenas remove um servidor se estiver abaixo do ponto de vista do ip. Você terá que mudar na metabase do IIS (loadbalancercapabilities) como explicado aqui: link Do ponto de vista da licença, está incluído no Windows, sem mais custo.

Do ponto de vista do WCF: O cliente se conectará a um dos servidores da Web do X. Você pode mantê-los nos mesmos servidores enquanto este está funcionando (por meio de afinidade). A afinidade é baseada em um hash entre o IP do cliente e o IP virtual. Se um servidor falhar, o cliente será despachado para outros servidores. Se você usar sessões / autenticação http, terá que armazenar a sessão fora do servidor, como no banco de dados. Outra sessão do cliente será perdida quando um servidor falhar.

SQL: Você tem opções diferentes: usando o mecanismo SQL para replicar o banco de dados ou usar o Microsoft MSCS (cluster). A última delas significa a versão corporativa do Windows e o armazenamento compartilhado externo, o que implica alto custo (mas ainda a versão padrão do SQL). Indo com camada pura SQL, você pode espelhar seu banco de dados. Cada servidor recebeu um armazenamento local e a transação primária de envio em tempo real para o servidor em espera (synchrone ou assincronizado). Quando o servidor da Web se conecta, o servidor informa que um servidor em espera está disponível em caso de problema, por meio do cliente nativo do SQL e do ADO.Net. Portanto, seu servidor da Web alterna para o servidor em espera automaticamente em caso de problema. Tudo isso funciona com a versão padrão do SQL. Os bancos de dados precisam estar no modo de recuperação total. É por banco de dados, portanto, se seu WCF usar vários bancos de dados e apenas um estiver corrompido, você terá problemas porque um banco de dados está ativo no servidor em espera, mas todos os outros ainda estão no servidor principal.

Mais informações aqui: link

    
por 03.02.2010 / 12:58
1

Eu tenho 6 servidores iis e também tenho serviço WCF para.

Eu uso o ARR (Application Request Routing), é uma extensão de módulo do IIS, para direcionar a solicitação ao farm da web. está funcionando muito bem.

Eu também uso o NLB para meu serviço WCF, como o Mathieu diz.

Para o meu servidor SQL, eu uso o Hyper-V, duas VMs para o meu servidor sql, com um cluster do SQL e cluster do Windows faileover e Live migration.

Eu vou responder em francês, então se algum corpo puder traduzir, será apreciado.

Ce que vous deve faire, c av av un un serveur de cluster. O serviço de atendimento à saúde serve para manter a "batida do coração" entre os seus serviços. O software do SQL do serviço está incluído nas máquinas distintas, mais faz parte do programa de partilha de dados (SAN ou NAS ou autre). Les bases de donnée sont monté sur un seul serveur à fois. Lorsque le "heart beat" é melhor, é melhor usar a relação, e monte uma fração de segundo na base de dados e serviço de votação é receita, ceci est "failover cluster". Lorsque le processus de transfert de serveur inicia pours pouvez perdre quelques pings. Você pode entrar em contato connosco com a base de donnée. La seul facons que vous pouvez être "UP" à 99% c'est dy ajouter live migration. Vous avez un 2 serveur Hyper-V (host) qui monte vos deux servo SQL (un sur chaque host), vous activer le live migration entre vos deux machine virtuel, vc a vous avez un redémarer un host (serveur qui héberge SQL), vous faites un live migration de votre machine sql d'un host à l'autre. La mémoire sera transferer d'un coté à l'autre et vous n'aurez aucune perte de connection. Votre failover fonctionne toujours, donc si c'est la machine virtuelle qui dientient le service sql qui plante, all c'est l'autre qui va prendre la relève et vous perdrez alors quelques ping mais votre service sera remonté très rapidement.

J'epère que cela va vous aider, et désoler pour le francais, mais inglés j'aurais surement été mal compris.

    
por 03.02.2010 / 16:48
-1

Sim, os servidores da Web em cluster normalmente são chamados de farms da Web (observe que o termo não possui nenhum banco de dados SQL associado a ele, apenas servidores da Web).

Normalmente, um balanceador de carga é usado na frente dos servidores da Web.

    
por 03.02.2010 / 11:42