Frage Ausführen von 100 virtuellen Maschinen auf einem einzelnen VMWare-Hostserver


Ich benutze VMWare seit vielen Jahren und betreibe Dutzende von Produktionsservern mit sehr wenigen Problemen. Aber ich habe nie versucht, mehr als 20 VMs auf einem einzigen physischen Host zu hosten. Hier ist die Idee:

  1. Eine abgespeckte Version von Windows XP kann mit 512 MB RAM und 4 GB Festplattenspeicher leben.
  2. $ 5.000 bringt mir einen 8-Core-Server-Klasse-Rechner mit 64 GB RAM und vier SAS-Spiegeln.
  3. Da 100 oben erwähnte VMs in diesen Server passen, sind meine Hardwarekosten nur 50 US-Dollar pro VM, was sehr gut ist (billiger als das Anmieten von VMs bei GoDaddy oder anderen Hosting-Shops).

Ich würde gerne sehen, ob jemand diese Skalierbarkeit mit VMWare erreichen kann? Ich habe ein paar Tests gemacht und bin auf ein seltsames Problem gestoßen. Die VM-Leistung beginnt sich drastisch zu verschlechtern, wenn Sie 20 VMs gestartet haben. Gleichzeitig zeigt der Host-Server keine Ressourcenengpässe (die Festplatten sind zu 99% inaktiv, die CPU-Auslastung liegt unter 15% und es gibt reichlich freien Arbeitsspeicher).

Ich freue mich, wenn Sie Ihre Erfolgsgeschichten über die Skalierung von VMWare oder einer anderen Virtualisierungstechnologie teilen können!


24
2018-06-22 20:30


Ursprung


Welches VMware-Produkt möchten Sie verwenden? ESX? ESXi? Server? - wzzrd
Sie können XP mit 256 ohne große Schwierigkeiten ausführen, besonders wenn es sich um leichte Aufgaben handelt. Microsoft benötigt 64, aber 128 ist "ausreichend" technet.microsoft.com/en-us/library/bb457057.aspx - Matt Rogish
Wo kaufst du deine Server ab? Ich will eins :) - warren
Nur 5000 USD, kannst du mir zwei verkaufen? :) - Taras Chuhay
Sie haben "diese Menge an CPU" in Ihrem Hosting-Server, und jeder VMs wird einen Teil davon erhalten. Plus esxi wird Overhead haben: "wechseln Sie zu dieser VM, verwalten Sie sie, wechseln Sie zum nächsten, usw.", oft pro Sekunde. Das bedeutet, dass jede VM nur einen Bruchteil der gesamten CPU erhält. Je mehr VMs, desto mehr teilen Sie Ihre CPU (und je mehr Overhead Sie auch hinzufügen, was bedeutet, anstatt 100 Vms haben Sie tatsächlich ein bisschen mehr). - Olivier Dulac


Antworten:


Ja, du kannst. Selbst für einige Windows 2003-Workloads reicht so wenig wie 384MiB, also ist 512MiB eine ziemlich gute Schätzung, sei es ein wenig hoch. RAM sollte kein Problem sein, sollte CPU auch nicht.

Ein 100 VMs ist ein bisschen steil, aber es ist machbar, besonders wenn die VMs nicht sehr beschäftigt sein werden. Wir können problemlos 60 Server (Windows 2003 und RHEL) auf einem einzelnen ESX-Server ausführen.

Angenommen, Sie sprechen über VMware ESX, sollten Sie auch wissen, dass Speicher überkompensiert werden kann. VMs verwenden kaum ihre volle Speicherration, so dass ESX mehr als die verfügbare RAM-Menge an VMs binden und mehr VMs ausführen kann, als es eigentlich "offiziell" für RAM hat.

Wahrscheinlich ist Ihr Engpass nicht CPU oder RAM, sondern IO. VMware bietet enorme Mengen an IOPS in ihrem Marketing, aber wenn es hart auf hart kommt, werden SCSI-Reservierungskonflikte und begrenzte Bandbreite Sie völlig aufhalten, bevor Sie sich den IOPS nähern, mit denen sich VMware herumschlägt.

Wie auch immer, wir erleben keine Leistungsverschlechterung der 20 VM. Welche Version von ESX verwenden Sie?


15
2018-06-22 20:45



Danke Wzzrd! Ich verwende derzeit VMWare Server 2.0, aber ich plane ESX sehr bald zu testen. Ich habe I / O auf allen Host-Arrays sehr sorgfältig beobachtet, und die einzige Möglichkeit, es zu maximieren, ist es, mehrere Gäste gleichzeitig neu zu starten. Wenn die Gäste wenig Arbeit verrichten oder im Leerlauf sind, sind die Host-Festplatten zu 99% inaktiv. Also vermute ich, dass etwas anderes als CPU und IO alle VMs verlangsamen. Im Übrigen werden sie dramatisch verlangsamt - es dauert 20 Sekunden, um das Startmenü zu öffnen, und wenn ich den Task-Manager in einer VM starte, nimmt der Task-Manager 90% CPU - komisch! - Dennis Kashkin
Das liegt daran, dass Sie VMware Server verwenden. VMware Server ist eine Virtualisierungsplattform auf einer anderen Plattform (am häufigsten Linux), während ESX eine Bare-Metal-Virtualisierungsplattform ist. Ganz anders, sowohl im Konzept als auch in der Art, wie es funktioniert. - wzzrd
Leider, wenn der Patch-Tag mit 100 VMs kommt, werden Sie einen Großteil der Matte gleichzeitig neu starten;) Und das Patchen selbst ist schwierig. Hüten Sie sich vor einem Service Pack - dann beginnt der eigentliche Schmerz;) - TomTom
Hören Sie auf, sich selbst zu täuschen, wenn Sie Bare Metal denken, ist etwas Besonderes. ESXi ist nur ein abgespecktes Linux. Ja, Linux. - dresende
@dresende. Nein, ist es nicht. Vertrau mir. - wzzrd


Ein großes Problem in einem solchen großen Umfeld wären Katastrophenschutz und Datenschutz. Wenn der Server stirbt, dann sterben 100 VMs damit.

Sie müssen eine Art Failover der VMs planen und eine Art "Extra-VM" -Management planen, das Ihre VMs im Falle eines Ausfalls schützt. Natürlich bedeutet diese Art von Redundanz höhere Kosten - und das ist wahrscheinlich der Grund, warum ein solcher Aufwand oft erst dann genehmigt wird, wenn seine Vorteile in der Praxis gesehen wurden (durch seine Abwesenheit).

Beachten Sie auch, dass der VM-Host nur einer von mehreren Single-Point-of-Failures ist:

  • Netzwerk - Was passiert, wenn die Netzwerkkarte des VM-Hosts ausfällt?
  • Speicher - was passiert, wenn ein Teil des Speichers des VM-Hosts beschädigt wird?
  • CPU - Wenn ein CPU-Kern stirbt, was passiert dann mit den VMs?
  • Power - gibt es nur ein - oder zwei - Stromkabel?
  • Management-Port - Angenommen, Sie können nicht zum Host-Management der VM gelangen?

Dies sind nur einige wenige Punkte: Eine massive VM-Infrastruktur erfordert eine sorgfältige Überwachung von Datenverlust und Verhinderung von VM-Verlust.


11
2018-06-22 23:07



Höre David zu. Sie werden eine N + 1-Konfiguration benötigen, was bedeutet, dass Sie mindestens eine Ersatzleerlaufmaschine benötigen, die in der Lage ist, die gesamte Arbeitslast einer anderen Maschine zu absorbieren, sollte sie ausfallen. Meine Empfehlung ist ein Cluster mit zwei Servern, der die Last gleichmäßig verteilt, aber bei einem Ausfall eines Computers die gesamte Arbeitslast selbstständig bewältigen könnte. - Jason Pearce


Keine Aussage darüber, ob dies in der Produktion möglich ist, aber es gibt eine sehr interessante NetApp-Demo, bei der 5440 XP-Desktops auf 32 ESX-Hosts (das sind 170 pro Host) in ungefähr 30 Minuten mit sehr wenig Speicherplatz aufgrund der Deduplizierung gegen die übliche VM bereitgestellt werden Bilder

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

Ich schätze, Ihre Einschränkungen kommen vom Disk-Subsystem. Sie scheinen die Speicher- und CPU-Auslastung entsprechend berücksichtigt zu haben.


4
2018-06-22 20:50





Ich habe es nie getan - aber ich verspreche Ihnen, dass Sie viel mehr ausgeben werden als auf Speicher, um genügend IOPs zu erhalten, um so viele VMs zu unterstützen, wie Sie es auf der Serverhardware tun. Sie benötigen viele IOPs, wenn alle 100 gleichzeitig aktiv sind. Nicht negativ klingen, aber haben Sie auch gedacht, dass Sie eine Menge Eier in einen Korb legen (hört sich an, als ob Sie nach einer Single-Server-Lösung suchen?)


3
2018-06-22 20:53



Ich würde definitiv mehrere "Körbe" erstellen und einige automatische Backups einrichten. I / O-Engpässe können heutzutage mit SSD-Laufwerken problemlos gelöst werden. Ich habe 160 GB Intel MLC-Laufwerke in der Produktion verwendet und sie sind spektakulär. Sie erhalten im Grunde eine fünfmal bessere zufällige I / O-Leistung als erstklassige SAS-Laufwerke (in einfachen RAID-Konfigurationen). - Dennis Kashkin


Ich würde mich am meisten Sorgen über CPU-Konflikte mit 100 VMs auf einem einzelnen Host machen. Sie müssen daran denken, dass der Prozessor NICHT virtualisiert ist, so dass jede Maschine auf den Zugriff auf die CPU warten muss. Sie können anfangen, Konkurrenz zu sehen, indem Sie auf ESXTOP schauen, mir wurde gesagt, dass etwas über 5 im Feld% RDY von VMWare Engineers sehr schlecht ist.

Nach meiner Erfahrung habe ich etwa 30 - 40 Server auf einem Host (nicht zu viel) gesehen.


1
2018-06-22 23:58





Ich hatte 10 Hosts auf VMWare Server 1.0.6 (unter Windows 2003) und es würde regelmäßig IO-Probleme auftreten (und wenn die nächtlichen Builds sich jemals mit etwas anderem überschneiden würden, dann hätten sie Probleme). Nach dem Upgrade von Windows auf ESXi U3 stellten wir fest, dass unsere Leistungsprobleme nachließen (nächtliche Builds waren nicht mehr fehlgeschlagen).

Beachten Sie außerdem, dass SSDs zwar eine viel höhere IO-Rate als drehende Medien haben, dass es jedoch einige Fälle nicht gibt, z. B. bestimmte Arten von Schreibmustern (viele kleine Schreibvorgänge auf dem Laufwerk führen zu Leistungseinbußen, es sei denn, der Controller hat eine Smart-Write-Puffering-Cache, der bei Scatter-Schreibvorgängen gute Arbeit leistet).

Ich würde empfehlen, die SWAP-Dateien auf verschiedenen Laufwerken zu untersuchen / testen, wenn Probleme auftreten.


1
2018-06-27 17:45





Wenn Sie das tun, dann bitte ich Sie dringend, die neuen Intel Nehalem Xeon 55xx Prozessoren zu verwenden - sie sind für den Betrieb von VMs konzipiert und ihre zusätzliche Speicherbandbreite wird auch enorm helfen. Oh, und wenn Sie mehr, kleinere Scheiben als nur wenige, große verwenden können - das wird viel helfen. Wenn Sie ESX v4 auch über 3.5U4 verwenden können.


1
2018-06-27 19:19





Ich habe 20 etwas XP VMs mit 512M RAM auf einer Maschine mit 16G RAM laufen. Weniger als das und sie tauschen auf die Festplatte und das gibt den Flaschenhals. Diese sind jedoch immer aktive XP-VMs.

VMware und seine OverCommit-Funktion sollten es Ihnen ermöglichen, mehr RAM auf jeden XP-Rechner zu übertragen. Eine ähnliche Maschine teilt die gleichen Seiten, so dass das Schreiben von Daten reduziert werden kann. Es ist etwas, das ich für unser Setup untersuchen möchte, um zu versuchen, mehr Maschinen hinzuzufügen, da unsere XP VMs 10-20mg ununterbrochenen Plattenverkehrs machen.


1
2017-09-13 22:32





Wir konnten nicht 100 zufriedene Gäste auf dem VMWare Server erreichen, fanden dann aber heraus, dass ESXi einen viel besseren Job macht. So scheint es, dass 100 XP vms kein Problem ist, wenn Sie ESXi und einen anständigen Server verwenden (ein paar Disk-Spiegel, um die I / O zu verteilen, ein paar I7-Chips und 64 GB RAM). Es gibt keine sichtbare Verzögerung für die Endbenutzer, und die Hostressourcen sind nicht ausgelastet (der heißeste ist die CPU, aber sie ist typischerweise mindestens 70% inaktiv).

PS. Diese Frage wurde von mir gepostet, als wir mit VMWare Server zu kämpfen hatten.


1
2017-11-04 17:29





Bei der letzten Überprüfung empfiehlt VMware nicht mehr als 4 VMs pro Verarbeitungskern für ESX, wobei eine vCPU pro VM angenommen wird.

Dies deutet darauf hin, dass Verwaltungsgemeinkosten zu einem Faktor werden.

Ich bin sehr gespannt, ob Sie tatsächlich einen 4x-Faktor auf einer 8-Kern-Box erreichen können.


0
2018-06-22 21:03



Das ist vor ESX 3.5U2 dann - das config maximums doc für Update 2 sagt 8 für allgemeine Zwecke, aber das erhöht sich auf 11 für VDI-Workloads. Ich bin mir ziemlich sicher, dass ich etwas gesehen habe, das ich nicht finden kann, das diese VDI-Empfehlung mit Update 3 oder 4 auf 19 erhöht. Für vSphere ist dieses Limit nun 20. Suchen Sie nach VMware ESX Configuration Maximum für die offiziellen Dokumente von VMware. - Helvick
Meine VMs bleiben die meiste Zeit im Leerlauf. Leute verbinden vielleicht ein paar Mal am Tag, um etwas leichte Software zu laufen. Ich habe bestätigt, dass diese VMs sehr wenig CPU-Overhead auf dem Host verursachen, wenn sie im Leerlauf sind (20 VMs addieren bis zu 9% CPU-Auslastung basierend auf Dual-Quadcore-System). Wären Sie in der Lage, sich zu erinnern, wie die vier VM pro CPU-Grenze gerechtfertigt ist? Denken sie über Webserver oder Desktop-OS-Instanzen nach? - Dennis Kashkin