Alta Disponibilidade com 3 servidores: Para virtualizar ou não?

3

Estamos mudando os hosts para nosso aplicativo SAAS (IIS + MSSQL) e temos a oportunidade de reformular a infraestrutura. Fique com o que temos (que funciona bem) ou virtualize com o vSphere.

Atual:

2x servidores Web / DB Cada um tem o IIS / MSSQL instalado. Balanceamento de carga de rede do Windows para distribuir o tráfego entre os dois nós com um endereço IP virtual & Espelhamento MSSQL com failover automático para o banco de dados.

1x servidor testemunha MSSQL (pequena VM)

Se um servidor falhar, o NLB redirecionará o tráfego para o outro nó e o MSSQL fará o failover automaticamente. Há talvez 40 segundos de inatividade enquanto o NLB redireciona.

Possível:

2x hosts do vSphere

  • Firewall VM - 1 vCPU, 512 MB de RAM, 20 GB de HDD
  • VM do servidor da Web - 1 vCPU, 2 GB de RAM, HD de 50 GB
  • VM do servidor do banco de dados - 2 vCPUs, 4 GB de RAM, HDD de 100 GB

1x CentOS Linux SAN (montado como compartilhamentos NFS)

As preocupações não são recursos suficientes para o DB & rede. Atualmente, o servidor Web / DB faz uso total do nó e só precisa compartilhar um nó se houver um deles. E se a SAN falhar? Foi informado que o HDD das VMs residiria nos próprios Hosts com a SAN atuando como um repositório redundante. Eu presumo que esta solução usa VMware High Availability - perda de dados para o DB é inaceitável. Deveria haver 2x máquinas DB VM com o espelhamento MSSQL configurado, mas rodando em nós de host diferentes?

EDIT: Prós da virtualização são a capacidade de clonar máquinas, mover-se facilmente para um novo hardware, capaz de separar servidores DB / Web. Algum comentário sobre isso?

Qualquer ajuda seria muito apreciada!

    
por Marcus 14.02.2012 / 12:19

2 respostas

3

Com o vSphere, a SAN se torna um ponto de falha (teórico, porque boas SANs possuem redundância integrada); mas você precisa colocar discos de VM lá se quiser mover as VMs entre os hosts (não há como isso poder ser feito com o armazenamento local nos hosts).

Além disso, sua solução atual protege você de problemas dentro dos servidores: deve f.e. o O.S. de um deles ficar danificado, o outro servidor permanecerá online; se, ao invés disso, sua única DB VM tivesse um problema, você acabaria perdendo.

Eu sugeriria usar as duas soluções: criar um ambiente de virtualização com os dois hosts e, em seguida, colocar máquinas virtuais redundantes dentro deles para poder lidar com falhas no nível do sistema operacional. Mas se seus recursos de hardware forem limitados e não puderem lidar com isso, basta seguir a solução atual.

    
por 14.02.2012 / 12:42
1

data loss for the DB is unacceptable

Ok. você precisa de 3 servidores de banco de dados usando MIRRORING e o terceiro como Witness. Como alternativa, envie o arquivo de log para um terceiro sistema externo em caso de problemas.

Porque é possível que o servidor sql corrompa o banco de dados quando falhar. O que resulta em dados ruins.

Você precisa de backups quase em tempo real ou basicamente uma cópia do banco de dados permanentemente atualizada.

    
por 14.02.2012 / 15:46