O que acontece quando uma máquina física falha em um ambiente virtual? [fechadas]

12

Estou começando com a virtualização, então tenha paciência comigo.

Em ambientes virtuais, os aplicativos são executados na camada de um hipervisor. Portanto, uma única máquina física pode ter muitas máquinas virtuais executando vários aplicativos.

Por enquanto, tudo bem?

Então, o que acontece quando uma máquina física falha? Isso não faria com que muitos aplicativos falhassem todos em uma única máquina?

Estou procurando desenvolver uma nuvem privada com o OpenStack , mas quero entender completamente a virtualização primeiro.

xerife
fonte

Respostas:

14

As especificidades dependem de qual solução exata de virtualização você usa, mas a idéia é que você tenha um farm virtual, onde há vários hosts físicos com várias máquinas virtuais cada. Em seguida, você usa parte da eficiência obtida ao não precisar de um host físico para cada VM, para que você tenha sobrecarga suficiente para cobrir no caso em que uma máquina física fica inoperante.

Além disso, você pode localizar os VHDs para cada VM em uma SAN comum (redundante). Os hipervisores em cada host físico podem ser configurados para conversar entre si e compartilhar memória de diferentes VMs. Existe alguma latência e grande parte da memória será apoiada por disco, mas se um dos hosts físicos ficar inativo, você nem estará esperando pelas VMs desse host para inicializar novamente. Em vez disso, essas VMs serão distribuídas automaticamente entre os hosts restantes. O objetivo final é que essas máquinas recuperem quase de onde pararam, com pouco ou nenhum tempo de inatividade. De certo modo, todas as suas VMs já estão sendo executadas em pelo menos dois hosts físicos. Na prática, no momento, os hipervisores só podem fazer esse tipo de migração, uma máquina de cada vez, quando sabem que está chegando antes que o host falhe ... mas não se engane: a migração instantânea por falha de hardware é o objetivo final de todos os principais hipervisores.

É por isso que às vezes você vê um servidor virtualizado para um único host físico em um farm. Você pode não obter eficiência no hardware (pode até perder desempenho), mas o compensa em termos de consistência de gerenciamento e alta disponibilidade incorporada.

Joel Coel
fonte
thnx para sua resposta joel ... Eu tenho 2 perguntas ... o ambiente virtual olha as máquinas físicas como um único pool de recursos? isso ajuda a satisfazer o autoatendimento sob demanda? A vitualização também ajuda a utilizar recursos?
Sherif
1
@ Sherif: Basicamente, sim e sim. Se você quiser entender isso com mais detalhes, dê uma olhada no artigo da Wikipedia , que aborda brevemente a migração e o failover da VM. Se você ainda tiver dúvidas, faça uma pergunta mais específica.
sleske
1
Você tem certeza da parte da memória compartilhada? Pelo meu entendimento, uma VM com falha devido a falha de hardware será reiniciada em outro host. Isso pode ser visto como uma reinicialização completa ou uma restauração do ponto de verificação, dependendo da configuração do hypervisor, mas o estado da memória original não pode ser recuperado. Para vspere: vmware.com/products/vsphere/features/high-availability Como nota lateral, alguns projetos foram iniciados para o KVM para permitir verdadeira memória compartilhada e redundante entre uma coleção de hosts de hardware , mas eles foram abandonados.
shodanshok
1
A migração da VM só pode acontecer se a máquina física tiver a chance de transferir o controle antes de cair. Se a máquina física falhar sem cerimônia, a máquina virtual precisará ser reiniciada em uma máquina diferente. Se você possui um servidor sem estado, esse processo de transferência é trivial, porque você pode simplesmente ativar outra máquina. Para máquinas com estados persistentes, é necessário ter um esquema que possa recuperar os dados persistentes da máquina física com falha.
Lie Ryan
13

Todos os servidores virtuais em execução em um host físico ficarão offline se o host tiver algum tipo de falha.

Dito isto, a maioria das plataformas oferece uma solução de alta disponibilidade para uma única VM. Outras vezes, um sistema é construído com vários nós para impedir a interrupção do serviço no caso de um nó ficar inativo.

Se dois nós da VM compõem um serviço altamente disponível, é possível configurar o hyper visor para garantir que os dois nós não sejam dependentes da mesma infraestrutura física (tolerância a falhas). Isso pode ser mais do que apenas tolerância a falhas do servidor físico, incluindo diferentes caminhos de rede, até locais geograficamente diferentes.

blaughw
fonte
2
A AWS, por exemplo, dependendo do serviço, replica o serviço nas zonas de disponibilidade (áreas físicas), caso haja um desastre natural nessa área que interrompa as máquinas físicas.
Michael Bailey
o ambiente virtual olha as máquinas físicas como um único pool de recursos? isso ajuda a satisfazer o autoatendimento sob demanda? A vitualização também ajuda a utilizar recursos? e thnx muito para seus esforços
Sherif
5

Você está certo ao supor que, se a máquina física falhar, as VMs ficarão indisponíveis.

Mas o openstack pode cuidar disso e iniciar as VMs do servidor físico com falha em outro servidor ou você pode usar um sistema de hipervisor já distribuído, acho que o vsphere pode fazer isso.

Você deve ler a documentação do openstack no HA para obter mais informações.

Henrik Pingel
fonte
2

Em relação à sua pergunta - sim, você perderá o acesso a todas as máquinas nesse host físico. Obviamente, depende de qual componente falhou. Se for um disco - é um problema, se for uma placa-mãe - é muito mais fácil. Em geral, a recuperação de hardware é mais fácil, pois o hipervisor é independente de hardware. Nesse momento, existem muitas tecnologias específicas de fornecedor que você pode usar para ter serviços altamente disponíveis.

Pools de recursos (vmware) - NÃO são capazes de agregar vários recursos físicos de host (CPU, memória, etc.), conforme mencionado acima, portanto, se você tiver 2 hosts físicos (digamos 1 núcleos de 1CPU sem hyperthreading - 8GBRAM cada), NÃO será possível ter 5vCPU-12Gb VM lá. Os pools de recursos são lógicos, não são capazes de criar sistemas de supercomputação. No momento, essa é uma maneira de controlar a utilização de recursos.

Disponibilidade (vmware) - é possível usar tecnologias como Alta Disponibilidade (HA), que permitem recuperação automática (com base na minha experiência em 1 a 2 minutos ) de todas as VMs no cluster automaticamente, se você estiver usando Storage Array (NAS, iSCSI, FC) e mantenha todos os arquivos da VM lá. Mais sobre HA funciona apenas no caso de falha da CPU, RAM, placa-mãe, é óbvio que não funcionará. Para evitar falhas de RAID / controladores, as pessoas usam espelhamento de replicação, LUNs de armazenamento etc.

Se a recuperação dentro de 1 a 2 minutos não for uma opção, existem tecnologias como Fault Tolerance (FT) que permitem obter ZERO downtime da VM em caso de falha mantendo uma cópia de sombra (em execução) da VM configurada. Mas essa tecnologia também possui muitas restrições - o problema de VMs com tolerância a falhas com várias vCPUs não está totalmente resolvido.

No geral, cada solução depende do seu objetivo.

Dmitry Savinkov
fonte