Esecuzione di 100 macchine virtuali su un singolo server host VMWare


24

Uso VMWare da molti anni, eseguendo decine di server di produzione con pochissimi problemi. Ma non ho mai provato a ospitare più di 20 macchine virtuali su un singolo host fisico. Ecco l'idea:

  1. Una versione ridotta di Windows XP può vivere con 512 MB di RAM e 4 GB di spazio su disco.
  2. $ 5.000 mi danno un computer di classe server a 8 core con 64 GB di RAM e quattro mirror SAS.
  3. Dal momento che 100 VM sopra menzionate si adattano a questo server, il mio costo hardware è di soli $ 50 per VM, il che è super bello (più economico del noleggio di VM su GoDaddy o in qualsiasi altro negozio di hosting).

Mi piacerebbe vedere se qualcuno è in grado di raggiungere questo tipo di scalabilità con VMWare? Ho fatto alcuni test e mi sono imbattuto in uno strano problema. Le prestazioni della VM iniziano a peggiorare notevolmente quando si avviano 20 VM. Allo stesso tempo, il server host non mostra alcun collo di bottiglia delle risorse (i dischi sono inattivi al 99%, l'utilizzazione della CPU è inferiore al 15% e c'è molta RAM libera).

Apprezzerò se puoi condividere le tue storie di successo sul ridimensionamento di VMWare o di qualsiasi altra tecnologia di virtualizzazione!


4
Quale prodotto VMware stai pensando di utilizzare? ESX? ESXi? Server?
wzzrd,

2
Puoi eseguire XP con 256 senza troppe difficoltà, specialmente se si tratta di compiti leggeri. Microsoft richiede 64 ma 128 è "sufficiente" technet.microsoft.com/en-us/library/bb457057.aspx
Matt Rogish,

1
da dove acquisti i tuoi server? Ne voglio uno :)
Warren,

1
Solo 5000 USD, puoi vendermene due? :)
Taras Chuhay il

Hai "questa quantità di CPU" nel tuo server di hosting e ogni VM ne avrà una quota. Inoltre esxi avrà un sovraccarico: "passa a questa VM, gestiscila, passa alla successiva, ecc.", Molte volte al secondo. Ciò significa che ogni VM otterrà solo una frazione della CPU totale. Più VM, più dividi la tua cpu (e più sovraccarico aggiungi, il che significa che invece di avere 100 vms, in realtà ne hai un po 'di più).
Olivier Dulac,

Risposte:


15

Si, puoi. Anche per alcuni carichi di lavoro di Windows 2003 sono sufficienti solo 384 MiB, quindi 512 MiB è una stima abbastanza buona, sia un po 'alta. La RAM non dovrebbe essere un problema, né la CPU.

A 100 VM è un po 'ripido, ma è fattibile, soprattutto se le VM non saranno molto impegnate. Eseguiamo facilmente 60 server (Windows 2003 e RHEL) su un singolo server ESX.

Supponendo che tu stia parlando di VMware ESX, dovresti anche sapere che è in grado di sovraccaricare la memoria. Le VM non usano quasi mai la loro razione di memoria completamente nominata, quindi ESX può impegnare più VM della quantità disponibile di RAM per le VM ed eseguire più VM di quante ne abbia "ufficialmente" RAM.

Molto probabilmente il tuo collo di bottiglia non sarà CPU o RAM, ma IO. VMware vanta enormi quantità di IOPS nel loro marketing, ma quando arriva la spinta, i conflitti di prenotazione SCSI e la larghezza di banda limitata ti fermeranno molto prima che ti avvicini agli IOPS VMware si vanta.

Ad ogni modo, non stiamo riscontrando il degrado delle prestazioni di 20 VM. Quale versione di ESX stai usando?


Grazie Wzzrd! Attualmente sto usando VMWare Server 2.0, ma sto pianificando di provare ESX molto presto. Ho osservato con attenzione l'I / O su tutti gli array di host e l'unico modo in cui sono stato in grado di ottimizzarlo è riavviare più guest alla volta. Quando gli ospiti eseguono un carico di lavoro leggero o rimangono inattivi, i dischi host sono inattivi al 99%. Quindi, sospetto che qualcos'altro oltre a CPU e IO stia rallentando tutte le macchine virtuali. A proposito, rallentano drasticamente: ci vogliono 20 secondi per aprire il menu Start e se eseguo Task Manager all'interno di una VM, il task manager impiega il 90% di CPU - strano!
Dennis Kashkin,

2
Questo perché stai utilizzando VMware Server. VMware Server è una piattaforma di virtualizzazione su un'altra piattaforma (Linux, il più delle volte), mentre ESX è una piattaforma di virtualizzazione bare metal. Molto diverso, sia nel concetto che nel modo in cui si esibisce.
wzzrd,

Purtroppo quando il giorno della patch arriva con 100 vm, riavvierai molto il tappetino allo stesso tempo;) E patchare se stesso è difficile. Fai attenzione a un service pack - ovvero quando inizia il vero dolore;)
TomTom

Smetti di illuderti nel pensare che il bare metal sia qualcosa di speciale. ESXi è solo un Linux ridotto. Sì, Linux.
dresende,

2
@dresende. No, non lo è. Fidati di me.
wzzrd,

11

Un grosso problema con un ambiente di questo tipo sarebbe la prevenzione delle catastrofi e la protezione dei dati. Se il server muore, quindi 100 VM muoiono con esso.

È necessario pianificare una sorta di failover delle VM e pianificare una sorta di gestione "extra-VM" che proteggerà le VM in caso di errore. Naturalmente, questo tipo di ridondanza comporta un aumento dei costi, motivo per cui molte volte tale esborso non viene approvato fino a quando i suoi benefici non sono stati visti in pratica (per la sua assenza).

Ricordare inoltre che l'host di macchine virtuali è solo uno dei numerosi punti di errore singoli:

  • Rete: cosa succede se la scheda di rete dell'host VM si interrompe?
  • Memoria: cosa succede se una parte della memoria dell'host di macchine virtuali si guasta?
  • CPU: se un core della CPU muore, cosa succede alle VM?
  • Alimentazione: sono presenti solo uno o due cavi di alimentazione?
  • Porta di gestione: supponi di non poter accedere alla gestione host della VM?

Questo è solo alcuni: una massiccia infrastruttura di VM richiede un'attenta attenzione alla prevenzione della perdita di dati e alla prevenzione della perdita di VM.


2
Ascolta David. Avrai bisogno di una configurazione N + 1, il che significa che hai bisogno di almeno una macchina inattiva di riserva in grado di assorbire tutto il carico di lavoro di un'altra macchina in caso di guasto. La mia raccomandazione è un cluster a due server che distribuisce il carico in modo uniforme ma potrebbe gestire in modo indipendente tutto il carico di lavoro in caso di guasto di una macchina.
Jason Pearce,

4

Nessuna affermazione sulla fattibilità di questo nella produzione, ma esiste una demo NetApp molto interessante in cui eseguono il provisioning di desktop 5440 XP su 32 host ESX (ovvero 170 per host) in circa 30 minuti utilizzando pochissimo spazio su disco a causa della deduplicazione sulla VM comune immagini

http://www.youtube.com/watch?v=ekoiJX8ye38

Suppongo che i tuoi limiti provengano dal sottosistema del disco. Sembra che tu abbia tenuto conto della memoria e dell'utilizzo della CPU di conseguenza.


3

Non l'ho mai fatto, ma prometto che spenderai molto di più che in spazio di archiviazione per ottenere abbastanza IOP per supportare così tante macchine virtuali di te rispetto all'hardware del server. Avrai bisogno di molti IOP se tutti e 100 sono attivi contemporaneamente. Non per sembrare negativo ma hai anche considerato che stai mettendo molte uova in un paniere (sembra che tu stia cercando una soluzione a server singolo?)


2
Vorrei sicuramente creare più "cestini" e impostare alcuni backup automatici. Oggigiorno i colli di bottiglia degli I / O possono essere facilmente risolti con le unità SSD. Ho utilizzato unità Intel MLC da 160 GB in produzione e sono spettacolari. Fondamentalmente si ottengono prestazioni I / O casuali 5 volte migliori rispetto alle unità SAS di fascia alta (in semplici configurazioni RAID).
Dennis Kashkin,

1

Sarei più preoccupato per la contesa della CPU con 100 VM su un singolo host. Devi ricordare che il processore NON è virtualizzato, quindi ogni macchina dovrà attendere l'accesso alla cpu. Puoi iniziare a vedere la contesa guardando ESXTOP mi è stato detto che qualcosa di più di 5 nel campo% RDY è molto male dagli ingegneri VMWare.

Nella mia esperienza ho visto circa 30 - 40 server in esecuzione su un host (non facendo troppo).


1

Avevo 10 host su VMWare Server 1.0.6 (sotto Windows 2003) e si sarebbero imbattuti in problemi di I / O su base regolare (e se le build notturne si fossero mai sovrapposte a qualcos'altro, avrebbero avuto problemi). Dopo l'aggiornamento da Windows a ESXi U3, abbiamo riscontrato che i nostri problemi di prestazioni sono scomparsi (le build notturne non sono più fallite).

Si noti inoltre che mentre gli SSD hanno una velocità di I / O molto più elevata rispetto agli spinning media, ci sono alcuni casi in cui ciò non è valido, come alcuni tipi di pattern di scrittura (molte piccole scritture sparse sull'unità annullano le prestazioni a meno che il controller non abbia un cache di buffering di scrittura intelligente che fa un buon lavoro sulle scritture scatter).

Ti consiglio di investigare / testare i file SWAP su unità diverse se riscontri problemi.


1

Se hai intenzione di farlo, ti consiglio vivamente di utilizzare i nuovi processori Intel 'Nehalem' Xeon serie 55xx: sono progettati per eseguire macchine virtuali e la loro larghezza di banda di memoria aggiuntiva ti aiuterà enormemente. Oh, e se puoi usare più dischi più piccoli di pochi, quelli grandi - questo ti aiuterà molto. Se puoi usare ESX v4 anche su 3.5U4.


1

Ho 20 macchine virtuali XP in esecuzione con 512 M di RAM ciascuna su una macchina con 16 G di RAM. Meno di questo e si scambiano su disco e questo dà il collo di bottiglia. Tuttavia, si tratta sempre di macchine virtuali XP attive.

VMware e la sua funzionalità OverCommit dovrebbero consentire di inviare più RAM a ogni macchina XP. Macchina simile condividerà le stesse pagine in modo da ridurre la scrittura del disco. È qualcosa che mi piacerebbe cercare nella nostra configurazione per provare ad aggiungere più macchine mentre le nostre macchine virtuali XP stanno facendo 10-20meg di traffico su disco continuo.


1

Non siamo riusciti a raggiungere 100 ospiti felici sul server VMWare, ma poi abbiamo scoperto che ESXi sta facendo un lavoro molto migliore. Quindi, sembra che 100 XP vms non siano un problema se si utilizza ESXi e un server decente (alcuni mirror del disco per diffondere l'I / O, un paio di chip I7 e 64 GB di RAM). Non vi è alcun ritardo visibile per gli utenti finali e le risorse dell'host non sono massimizzate (la più calda è la CPU ma in genere è almeno al 70% inattiva).

PS. Questa domanda è stata posta da me quando stavamo lottando con VMWare Server.


0

L'ultima volta che ho verificato, VMware non consiglia più di 4 VM per core di elaborazione per ESX, ipotizzando una vCPU per VM.

Ciò suggerisce che le spese generali di gestione stanno diventando un fattore.

Sono molto interessato a vedere se puoi effettivamente ottenere un fattore 4x su una scatola a 8 core.


1
Questo è pre ESX 3.5U2 quindi - il documento di configurazione massima per l'aggiornamento 2 dice 8 per scopi generali ma che aumenta a 11 per i carichi di lavoro VDI. Sono abbastanza sicuro di aver visto qualcosa che non riesco a trovare fuori mano che ha aumentato la raccomandazione VDI a 19 con Update 3 o 4. Per vSphere quel limite è ora 20. Cerca i valori massimi di configurazione ESX di VMware per i documenti ufficiali da VMware.
Helvick,

Le mie macchine virtuali rimangono inattive la maggior parte delle volte. Le persone si collegano forse alcune volte al giorno per eseguire software leggero. Ho confermato che queste VM creano un sovraccarico della CPU molto piccolo sull'host quando sono inattive (20 VM aggiungono fino al 9% di utilizzo della CPU in base al doppio sistema quadcore). Saresti in grado di ricordare come è giustificato il limite di quattro VM per CPU? Stanno pensando ai server Web o alle istanze del sistema operativo desktop?
Dennis Kashkin,
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.