Virtualização para resiliência de hardware?

5

Alguém pode me dizer se é possível agrupar vários servidores físicos para executar um ambiente de virtualização resiliente. Nossos servidores estão ficando cada vez mais críticos para nossos clientes e queremos fazer tudo o que pudermos para melhorar a resiliência no caso de uma falha de hardware. Eu usei VMs de desktop, mas não estou familiarizado com o que é possível em VMs de nível corporativo.

O ideal seria ter alguns servidores físicos em nosso datacenter. Algumas VMs seriam compartilhadas entre elas para executar um servidor da Web, um servidor de aplicativos e um servidor de banco de dados. Se um servidor físico falhar, as VMs devem alternar para um dos outros servidores e continuar executando sem qualquer interrupção.

Isso pode ser feito? Eu percebo que até o Google cai de vez em quando, então eu não estou procurando por perfeição; apenas uma solução ótima.

    
por Kev 18.08.2012 / 23:34

4 respostas

2

É factível e fazemos algo semelhante, apenas sem a parte automática.

Como apontado @ewwhite, a chave é ter um conjunto de armazenamento compartilhado que seja visível para vários servidores host, portanto, se um host ficar inativo, pouco importa muito, porque outro host pode assumir o controle. Configurar o tipo de failover automático imperceptível e sem interrupções que você está perguntando não é fácil (ou barato) e, francamente, muito mais problemas do que vale a pena, pelo menos para a grande maioria dos casos de uso existentes. O hardware moderno não falha muito, a menos que seja muito mal configurado, por isso você terá mais quilometragem garantindo que ele esteja configurado corretamente e em um ambiente que esteja dentro dos intervalos operacionais do equipamento.

Usamos as funções de failover e alta disponibilidade de nossos sistemas apenas para duas coisas. O primeiro é em recuperação de desastres (se nosso site principal perder energia ou explodir, ou o que você tem, as partes críticas são espelhadas em uma segunda instalação) e a segunda é evitar janelas de manutenção. Usamos servidores blade e ESX / vSphere e entre ter a capacidade de fazer failover para um site secundário e a facilidade de usar o vMotion para mover VMs entre hosts, há muito pouco que não podemos fazer sem uma interrupção de serviço. / p>

Eu me concentraria em fazer isso primeiro - depois que você for capaz de (manualmente) deixar as coisas para sempre, você pode decidir que fazê-lo funcionar automaticamente é mais caro e difícil do que vale a pena. Parece bastante fácil e ótimo em teoria, mas na prática pode ser uma dor real fazer com que tudo funcione corretamente em clusters ou em uma configuração de convidado distribuído.

    
por 19.08.2012 / 00:50
6

Este é um excelente motivo para virtualizar. À medida que a disponibilidade de aplicativos, em vez do tempo de atividade do servidor individual (físico), se torna mais importante para as empresas, muitas organizações acham que podem atingir um nível mais alto de confiabilidade por meio da virtualização.

Usarei VMWare e Xen como exemplos, mas com alguma forma de armazenamento compartilhado visível para dois ou mais sistemas host, os convidados virtualizados podem ser distribuídos e balanceados em carga em servidores físicos. O foco começa a ser a qualidade da solução de armazenamento compartilhado, o gerenciamento e a interconexão / rede no ambiente.

No entanto, um pouco de cautela ... Você deve avaliar que tipo de hardware e situações ambientais representam uma ameaça. O equipamento de classe de servidor de qualidade inclui muitas redundâncias (ventoinhas, fontes de alimentação, RAID e até RAM) ... O hardware moderno não falha apenas frequentemente. Portanto, evite reagir exageradamente construindo um ambiente desnecessariamente complexo se especificar servidores de ponta pode ajudar a eliminar 90% dos possíveis problemas.

    
por 18.08.2012 / 23:57
4

Parece que o VMware FT pode ser o que você está procurando. Ele mantém uma "instância de sombra" de cada máquina virtual em sincronia com cada VM de origem e permite failover instantâneo entre as duas instâncias. Mais aqui:

link

    
por 19.08.2012 / 01:23
3

A parte de qualquer interrupção é uma pergunta, especialmente que hoje você está indo do que parece ser servidores padrão sem resiliência?

A virtualização é uma opção, mas para uma divulgação completa, você deve tomar uma decisão informada entre os seguintes,

  1. Pequena interrupção , na ordem de alguns mins .
  2. Sem interrupção (estamos falando em milissegundos ).

(2) é normalmente muito,

  1. Caro - você precisa da capacidade de hardware N + N. Ou seja para cada servidor que você está executando, você tem um servidor de espera completo executando exatamente o mesmo software pronto para assumir o controle em caso de falha de hardware .
  2. Restritivo - o software que você usa garante que as máquinas estejam "em sincronia", normalmente por meio de ethernet. Isso significa que se sua rede ficar mais lenta, irá atrasar seu aplicativo para garantir que as coisas permaneçam em sincronia. Para garantir que isso não aconteça, essas máquinas têm de estar no mesmo Datacenter para obter qualquer tipo de desempenho.

A virtualização com o VMware-FT está em solução. O Xen tem seu equivalente em everRun, e há o equivalente em metal (sem hypervisor).

(1) pode muito bem ser tudo o que você precisa ( Clustering )

  1. Dependendo da aplicação, isso pode oferecer falha igual a (2). Por exemplo. Os servidores NFS, como a NetApp, podem oferecer um failover contínuo, e os clientes continuam sem falhas e apenas com uma breve interrupção.
  2. "Ligeiramente" mais tolerante a falhas de software. Como nenhuma instrução determinista da CPU não está em sincronia, vários bugs, como condições de corrida, não serão acionados.
  3. Poderia permitir que você execute versões diferentes do software. Por exemplo, atualize o Nó 1 do cluster para o service pack 1 do Windows Server 2008, confirme sua aprovação, atualize o Nó 2 para o Service Pack do Windows Server 2008.

Não quero vender clustering versus tolerância a falhas, ou hypervisor bare metal vs, mas quando se trata de alta disponibilidade, espero que o acima ilustre um grande número de perguntas que você precisa responder antes de implementá-lo.

  1. Qual é o tempo de inatividade máximo tolerado pelos usuários (seja realista)
  2. Quais são os domínios de interrupção que você tolerará? Servidor físico? Programas? Rede de camada 2? Camada 3? Datacenter?
  3. Quais são os requisitos de desempenho do aplicativo? A virtualização não é para tudo, e apenas muito recentemente que aplicativos sensíveis ao relógio, como o Active Directory, foram aceitos em Máquinas Virtuais (e isso não é uma prática comum). Independentemente de você usar o hypervisor latets e os chipsets, a virtualização ainda significará um impacto no desempenho, na taxa de transferência e na latência.
  4. Inclua um orçamento para o qual você precisa trabalhar.

Esses requisitos podem ser traduzidos para coisas como MTTF e, dependendo do orçamento e das qualificações de sua equipe, algumas soluções serão inaceitáveis.

    
por 20.08.2012 / 17:31