È possibile estendere un'enorme VM su più server di prodotti fisici?


11

È possibile estendere un'enorme macchina virtuale su più server di prodotti fisici?

Ecco il nostro caso d'uso:

  • Dobbiamo implementare un server db a 32 processori con 64 GB di RAM
  • Non abbiamo un server fisico di tale capacità
  • Abbiamo molti server con risorse minori.

Esiste una tecnologia o (meglio) un prodotto che ci consente di utilizzare questi server per creare una VM con la capacità richiesta? Supponiamo che siamo in grado di combinare 8 macchine fisiche a 4 processori con 8 GB di RAM ciascuna in un'unica "unità logica" da 32 processori con 64 GB di RAM e impostare un server Oracle che utilizza tutta questa capacità?

Prima di pubblicare questa domanda, abbiamo letto domande simili ma non abbiamo trovato una risposta.

Forse qualcuno potrebbe darci un suggerimento ora?


2
Questa non è una risposta alla tua domanda, ma è strano che nessuno consigli di esaminare i limiti del software. Se la tua azienda sviluppa app per aziende di fascia media, mi sembra ovvio che il problema siano le limitazioni del software, probabilmente l'architetto e i progettisti non hanno pensato in un database con miliardi di record o con tabelle o procedure temporanee enormi, pensaci e creare un autotest e la segnalazione degli errori per le query lente per me è il modo di risolvere il problema ... pensa al limite di 3,3 GB in x86

Risposte:


7

Esiste un prodotto commerciale di ScaleMP chiamato vSMP. Ti consente di aggregare più sistemi x86 in una singola istanza virtuale. Non l'ho mai provato personalmente prima, ma ho avuto una presentazione da loro. Se ricordo bene, ci sono requisiti specifici per far funzionare tutto questo, e dovrai ottenere dell'hardware aggiuntivo (Infiniband per interconnessioni veloci a bassa latenza). Potrebbe costare anche un bel centesimo!


1
ScaleMP non emula un ambiente x86. Non avrai mai Windows o qualsiasi altro sistema operativo x86 standard da eseguire nell'ambiente virtuale. Le uniche versioni supportate sono varie versioni di Linux basate sull'architettura di tipo SMP. E di quel tipo di architettura ... ci sono molti sapori. Anche quelli gratuiti.
TheCompWiz

OP non era specifico riguardo agli altri requisiti. Ho solo risposto a ciò che avrei potuto raccogliere dal suo posto.
Ryanlim,

1
Sembra fottutamente figo. Ho il sospetto che un box a 32 core (possibile con 2x 16 chip AMD Core) potrebbe essere più economico di un cluster con Infiniband, ma ci siamo. Questa soluzione guadagna più diritti di vantarsi.
Tom O'Connor,

9

Non c'è modo di ottenere la stessa identica funzionalità di un singolo computer a 32 processori ... con diversi server separati. La soluzione migliore è guardare al clustering o al grid computing. Fatto bene, puoi ottenere prestazioni comparabili ... e un livello più elevato di alta disponibilità. Molte domande dipendono anche dal tipo "db". Microsoft SQL Server funziona in modo significativamente diverso rispetto a MySQL o Oracle ... e anche la scalabilità è completamente diversa.

In alternativa ... potresti prendere in considerazione l'idea di permettere a qualcuno di fare il database per te ... come usare l'EC2 RDS ...

Purtroppo, non c'è modo di combinare più server fisici insieme e schiaffeggiare vmware su di essi e finire con un singolare server virtuale super potente.


TheCompWiz, grazie per la risposta. OK, se la risposta dipende dal mio tipo di db, lascia che sia Oracle o Microsoft SQL Server. Con queste correzioni, è ancora impossibile? Sì, sappiamo di EC2 ma abbiamo bisogno esattamente di Oracle o Microsoft SQL Server per testare i problemi con un prodotto software che forniamo per un cliente ...
user54614

Inoltre, perché solo vmware deve essere preso in considerazione? Non ci importa nessun altro hypervisor ...
user54614

La capacità di attraversare più server è un enorme incubo logistico ... per non parlare della mancanza di larghezza di banda disponibile tra i dispositivi. Pensa a quanto è veloce una CPU ... quindi tutte le cose che dovresti fare per rallentare il processo ... ad esempio CPU -> bus -> PCI-bridge -> scheda di rete -> cavo ethernet -> rete stack -> ... anche prima che raggiunga l'altro server? Non vorresti aspettare 1 secondo per poter aggiungere 1 + 1. I cluster in genere sono in grado di farlo perché le attività sono assegnate in "Lavori" e un lavoro viene inviato a un nodo di calcolo che svolge tutte le attività in quel lavoro ...
TheCompWiz

... e quindi invia le risposte al nodo di gestione. Windows no. Non c'è modo di configurare un ambiente X86 virtuale (o X86_64) che tenterebbe persino di farlo.
TheCompWiz,

2
@ user54614 - Non sarai assolutamente in grado di replicare il loro scenario legando insieme le macchine. Suggerirei di parlare sia con il tuo client che con il supporto Oracle per individuare e identificare i problemi.
Chris Thorpe,

-1

"TheCompWiz" ha risposto utilmente alla tua domanda.

Vorrei ancora dire che, sì, è possibile creare un hypervisor che consenta a una singola VM di estendersi su più host fisici e che possa eseguire quella VM "correttamente" dove tutto ha funzionato.

Ma, anche con reti ad alta velocità veramente buone tra gli host fisici, le prestazioni di una cosa del genere sarebbero davvero terribili, funzionando molto più lentamente di una VM più piccola che si adatta a un singolo di quegli host. Dovresti simulare le proprietà di coerenza della cache di una singola VM intercettando ogni singola memoria letta o scritta dal sistema operativo guest e dall'applicazione, il che moltiplicerebbe il costo dell'accesso alla memoria per migliaia, se non milioni.

Quindi nessun venditore di hypervisor commerciali consente una cosa del genere. È stato provato in laboratorio. Nessuno si è preso la briga di ricavarne un prodotto.

Per sottolineare ancora una volta il punto, cerca una soluzione al clustering.


Ma cosa succede se un prodotto software che forniamo funziona bene per la maggior parte dei clienti ma non funziona correttamente sull'ambiente di un cliente enorme che esegue la nostra applicazione su un server Oracle da 32 proc con 64 GB di RAM. Vogliamo riprodurre questo fallimento nel nostro ambiente.
user54614,

2
Non so nulla del tuo software, ma cosa sta succedendo a 32 processori e 64 GB di RAM che non sta accadendo a 2 processori e 8 GB di RAM? Se c'è davvero qualcosa di ripetibilmente sbagliato a quel livello, allora è un problema Oracle / OS / driver / IO / hardware.
gravyface,

Non avrai mai un hypervisor per attraversare macchine fisiche. Sono ancora confinati nel nucleo fisico della macchina. Detto questo ... Scommetto che potresti costruire un'architettura di tipo mainframe simile a quella dei behemoth arcaici di molto tempo fa ... ma non avresti mai avuto nulla x86 in esecuzione su di esso.
TheCompWiz,

1
Il tuo enorme cliente dovrebbe avere una seconda istanza di QA di quel monster database server. Se non lo hanno a disposizione, è davvero il loro problema. In 15 anni di lavoro IT, non ho mai visto nessuno aspettarsi che un fornitore di software duplicasse la propria infrastruttura (a meno che non facesse parte di un contratto di servizio che lo specificasse esattamente, e il cliente lo pagasse). Soprattutto quando quell'infrastruttura è esoterica (anche se un server a 64 core da 64 GB può essere utilizzato da Dell per circa $ 22K in questi giorni).
rmalayter,

Che dire di ScaleMP ( scalemp.com )?
user54614

-2

VMWare lo fa. Si chiama DRS o Distributed Resources Scheduler. Ti permette di combinare le risorse di 16 server. È quindi possibile distribuire tale totale su uno o più ambienti virtuali.


No, questo non è affatto ciò che fa DRS. DRS consente di caricare automaticamente le macchine vMotion nel cluster anche tra i nodi host. Non consente in alcun modo l'accesso a più host da una singola macchina virtuale.
EEAA,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.