É possível abranger uma VM enorme em vários servidores físicos comuns?

11

É possível abranger uma enorme máquina virtual em vários servidores físicos de mercadorias?

Aqui está o nosso caso de uso:

  • Precisamos implementar um servidor db de 32 processadores com 64 GB de RAM
  • Não temos um servidor físico com essa capacidade
  • Temos muitos servidores com recursos menores.

Existe uma tecnologia ou (melhor) um produto que nos permita utilizar esses servidores para criar uma VM com a capacidade necessária? Digamos, somos capazes de combinar 8 máquinas físicas de 4 processadores com 8 GB de RAM cada uma em uma "unidade lógica" de 32 processadores com 64 GB de RAM e configurar um servidor Oracle que utilize toda essa capacidade?

Antes de postar esta pergunta, lemos perguntas semelhantes, mas não encontramos uma resposta.

Talvez alguém possa nos dar uma dica agora?

user54614
fonte
2
Esta não é uma resposta para sua pergunta, mas é estranho que ninguém aconselhe sobre as limitações do software. Se sua empresa cria aplicativos para empresas de médio porte, parece-me óbvio que o problema são limitações de software, provavelmente o arquiteto e os designers de software não pensaram em um banco de dados com bilhões de registros ou com enormes tabelas ou procedimentos temporários, pense nisso e criar alguma auto-teste e relatório de erros para as consultas lentas para o meu é o caminho para resolver o problema ... pense sobre o limite de 3,3 GB no x86

Respostas:

7

Existe um produto comercial do ScaleMP chamado vSMP. Ele permite agregar vários sistemas x86 em uma única instância virtual. Eu nunca pessoalmente tentei isso antes, mas passei por uma apresentação deles. Se bem me lembro, existem requisitos específicos para que isso funcione e você precisará obter um hardware adicional (Infiniband para interconexões rápidas e de baixa latência). Pode custar um centavo bonito também!

ryanlim
fonte
1
O ScaleMP não emula um ambiente x86. Você nunca poderá executar o Windows ou qualquer outro sistema operacional x86 padrão no ambiente virtual. Você Os únicos tipos de suporte suportados são várias versões do Linux baseadas na arquitetura do tipo SMP. E desse tipo de arquitetura ... existem vários sabores. Mesmo os gratuitos.
TheCompWiz
O OP não foi específico sobre os outros requisitos. Eu só respondi o que pude reunir em seu post.
Ryanlim #
1
Isso parece muito legal. Suspeito que uma caixa de 32 núcleos (possível com chips AMD de 16 núcleos 2x) possa ser mais barata que um cluster com Infiniband, mas lá vamos nós. Esta solução ganha mais direito de se gabar.
Tom O'Connor
9

Não há como obter exatamente a mesma funcionalidade que uma única máquina com 32 processadores ... com vários servidores separados. Sua melhor aposta é olhar para clustering ou computação em grade. Feito corretamente, você pode ter desempenho comparável ... e um nível mais alto de alta disponibilidade. Muitas das suas perguntas também dependem do seu tipo "db". O Microsoft SQL Server funciona significativamente diferente do MySQL ou Oracle ... e a escalabilidade também é feita de maneira completamente diferente.

Como alternativa ... você pode considerar deixar alguém fazer o banco de dados para você ... como usar o EC2 RDS ...

Infelizmente, não há como combinar vários servidores físicos e colocar um vmware neles e acabar com um servidor virtual super poderoso.

TheCompWiz
fonte
TheCompWiz, obrigado pela resposta. OK, se a resposta depende do meu tipo de banco de dados, seja Oracle ou Microsoft SQL Server. Com essas correções, ainda é impossível? Sim, nós sabemos sobre EC2 mas precisamos exatamente Oracle ou Microsoft SQL Server para questões de teste com um produto de software que entregamos para um cliente ...
user54614
Além disso, por que apenas o vmware deve ser levado em consideração? Nós não nos importamos quaisquer outros hypervisors ...
user54614
A capacidade de atravessar vários servidores é um pesadelo logístico ENORME ... sem mencionar a falta de largura de banda disponível entre dispositivos. Pense na rapidez com que uma CPU é ... todas as coisas que você precisaria fazer para retardar o processo ... ou seja, CPU -> barramento -> ponte PCI -> placa de rede -> cabo Ethernet -> rede empilhar -> ... mesmo antes de chegar ao outro servidor? Você não gostaria de esperar 1 segundo para poder adicionar 1 + 1. Os clusters normalmente são capazes de fazer isso porque as tarefas são atribuídas em "Trabalhos" e um trabalho é emitido para um nó de computação que executa todas as tarefas nesse trabalho ...
TheCompWiz
... e, em seguida, envia as respostas de volta ao nó de gerenciamento. Windows não. Não há como configurar um ambiente virtual X86 (ou X86_64) que tente fazer isso.
TheCompWiz
2
@ user54614 - Você absolutamente não será capaz de replicar o cenário deles amarrando as máquinas. Eu sugeriria conversar com o cliente e o suporte da Oracle para identificar e identificar os problemas.
Chris Thorpe
-1

"TheCompWiz" respondeu sua pergunta de maneira útil.

Eu ainda gostaria de dizer que, sim, você pode criar um hipervisor que permita que uma única VM abranja vários hosts físicos e possa executá-la "corretamente" onde tudo funcionou.

Mas, mesmo com redes realmente boas e de alta velocidade entre os hosts físicos, o desempenho de algo assim seria realmente terrível, executando muito mais lentamente do que uma VM menor que se encaixasse em um único desses hosts. Você precisaria simular as propriedades de coerência do cache de uma única VM interceptando todas as leituras ou gravações de memória que o SO e o aplicativo convidado fizeram, o que multiplicaria o custo do acesso à memória por milhares, senão milhões.

Portanto, nenhum fornecedor comercial de hipervisores permite isso. Foi tentado no laboratório. Ninguém se preocupou em fazer um produto com isso.

Para destacar o ponto mais uma vez, procure um cluster para uma solução.

Jake Oshins
fonte
Mas e se um produto de software que entregamos funcionar bem para a maioria dos clientes, mas não funcionar adequadamente no ambiente de um grande cliente que executa nosso aplicativo em um servidor Oracle de 32 processos com 64 GB de RAM. Queremos reproduzir essa falha em nosso ambiente.
user54614
2
Não sei nada do seu software, mas o que está acontecendo com 32 processadores e 64 GB de RAM que não está acontecendo com 2 processadores e 8 GB de RAM? Se houver realmente algo repetidamente errado nesse nível, é um problema do Oracle / OS / driver / IO / hardware.
Gravyface 17/09/10
Você nunca terá um hipervisor para atravessar máquinas físicas. Eles ainda estão confinados dentro do núcleo físico da máquina. Dito isto ... aposto que você poderia construir uma arquitetura do tipo mainframe semelhante à dos gigantes arcaicos de muito tempo atrás ... mas você nunca obteria nada de x86 em execução nele.
TheCompWiz
1
Seu grande cliente deve ter uma segunda instância de controle de qualidade desse servidor de banco de dados monstro. Se eles não têm isso disponível, é realmente o problema deles. Em 15 anos de trabalho em TI, nunca vi alguém esperar que um fornecedor de software duplicasse sua infraestrutura (a menos que faça parte de um contrato de serviço especificando exatamente isso e o cliente pague por isso). Especialmente quando essa infraestrutura é esotérica (embora um servidor de 32 núcleos e 64 GB possa ser adquirido por cerca de US $ 22 mil da Dell atualmente).
precisa saber é o seguinte
E o ScaleMP ( scalemp.com )?
user54614
-2

VMWare faz. É chamado DRS ou Scheduler de Recursos Distribuídos. Permite combinar os recursos de 16 servidores. Você pode distribuir esse total para um ou mais ambientes virtuais.

Rick Dettwyler
fonte
Não, isso não é o que o DRS faz. O DRS permite que uma máquina vMotion automaticamente em torno do cluster seja carregada entre os nós do host. De forma alguma, dá acesso a vários hosts a partir de uma única VM.
EEAA