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

24

Ich benutze VMWare seit vielen Jahren und habe Dutzende von Produktionsservern mit sehr wenigen Problemen ausgeführt. Ich habe jedoch 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 auskommen.
  2. 5.000 US-Dollar bringen mir einen 8-Core-Server mit 64 GB RAM und vier SAS-Spiegeln.
  3. Da 100 der oben genannten VMs in diesen Server passen, kostet meine Hardware nur 50 US-Dollar pro VM, was super ist (billiger als das Mieten von VMs bei GoDaddy oder einem anderen Hosting-Shop).

Ich würde gerne sehen, ob jemand in der Lage ist, diese Art von Skalierbarkeit mit VMWare zu erreichen. Ich habe ein paar Tests gemacht und bin auf ein seltsames Problem gestoßen. Die VM-Leistung verschlechtert sich dramatisch, sobald Sie 20 VMs starten. Gleichzeitig weist der Hostserver keine Ressourcenengpässe auf (die Festplatten sind zu 99% im Leerlauf, die CPU-Auslastung liegt unter 15% und es gibt genügend freien Arbeitsspeicher).

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

user9517 unterstützt GoFundMonica
quelle
4
Welches VMware-Produkt möchten Sie verwenden? ESX? ESXi? Server?
Wzzrd
2
Sie können XP mit 256 ohne große Schwierigkeiten ausführen, insbesondere wenn es sich um leichte Aufgaben handelt. Microsoft erfordert 64, aber 128 ist "ausreichend" technet.microsoft.com/en-us/library/bb457057.aspx
Matt Rogish
1
Wo kaufst du deine Server ein? Ich möchte eine :)
warren
1
Nur 5000 USD, können Sie mir zwei verkaufen? :)
Taras Chuhay
Sie haben "diese Menge an CPU" in Ihrem Hosting-Server, und jede VM wird einen Anteil davon erhalten. Außerdem hat esxi Overhead: "Wechseln Sie zu dieser VM, verwalten Sie sie, wechseln Sie zur nächsten usw.", viele Male pro Sekunde. Dies bedeutet, dass jede VM nur einen Bruchteil der gesamten CPU erhält. Je mehr VMs, desto mehr teilen Sie Ihre CPU (und desto mehr Overhead fügen Sie hinzu, was bedeutet, dass Sie statt 100 VMS tatsächlich einiges mehr haben).
Olivier Dulac

Antworten:

15

Ja, du kannst. Selbst für einige Windows 2003-Workloads reichen nur 384 MB aus. 512 MB sind also eine ziemlich gute Schätzung, wenn auch ein wenig zu hoch. RAM sollte kein Problem sein, ebenso wenig wie CPU.

100 VMs sind ein bisschen steil, aber es ist machbar, besonders wenn die VMs nicht sehr ausgelastet sein werden. Wir betreiben problemlos 60 Server (Windows 2003 und RHEL) auf einem einzigen ESX-Server.

Angenommen, Sie sprechen von VMware ESX, sollten Sie auch wissen, dass es möglich ist, Speicher zu überlasten. VMs nutzen kaum ihre festgelegte Speicherration, sodass ESX mehr RAM für VMs bereitstellen und mehr VMs ausführen kann, als tatsächlich "offiziell" für RAM vorgesehen sind.

Höchstwahrscheinlich handelt es sich bei Ihrem Engpass nicht um CPU oder RAM, sondern um IO. VMware hat eine enorme Menge an IOPS im Marketing, aber wenn es darauf ankommt, werden SCSI-Reservierungskonflikte und eine begrenzte Bandbreite Sie aufhalten, bevor Sie sich den IOPS-Vorzügen von VMware nähern.

Auf jeden Fall ist der Leistungsabfall von 20 VM nicht zu verzeichnen. Welche Version von ESX verwenden Sie?

wzzrd
quelle
Danke Wzzrd! Ich verwende derzeit VMWare Server 2.0, plane jedoch, ESX sehr bald zu testen. Ich habe die E / A-Vorgänge auf allen Host-Arrays sehr sorgfältig überwacht und konnte sie nur durch gleichzeitiges Neustarten mehrerer Gäste maximieren. Wenn die Gäste wenig arbeiten oder untätig bleiben, sind die Host-Festplatten zu 99% untätig. Ich vermute also, dass etwas anderes als CPU und IO dazu führt, dass alle VMs langsamer werden. Übrigens verlangsamen sie sich dramatisch - es dauert 20 Sekunden, um das Startmenü zu öffnen, und wenn ich den Task-Manager in einer VM ausführe, beansprucht der Task-Manager 90% der CPU - komisch!
Dennis Kashkin
2
Dies liegt daran, dass Sie VMware Server verwenden. VMware Server ist eine Virtualisierungsplattform über einer anderen Plattform (meist Linux), während ESX eine Bare-Metal-Virtualisierungsplattform ist. Ganz anders, sowohl konzeptionell als auch leistungsmäßig.
Wzzrd
Wenn der Patch-Tag mit 100 VMS kommt, wirst du leider einen Großteil der Matte gleichzeitig neu booten;) Und das Patchen selbst ist schwierig. Vorsicht vor einem Service Pack - dann fängt der wahre Schmerz an;)
TomTom
Hör auf, dich zu täuschen, weil du denkst, dass Bare Metal etwas Besonderes ist. ESXi ist nur ein abgespecktes Linux. Ja, Linux.
dresende
2
@dresende. Nein, das ist es nicht. Vertrau mir.
Wzzrd
11

Ein Hauptproblem in einer so großen Umgebung wäre die Katastrophenverhütung und der Datenschutz. Wenn der Server ausfällt, sterben 100 VMs mit.

Sie müssen eine Art Failover der VMs einplanen und eine Art "Extra-VM" -Verwaltung einplanen, die Ihre VMs im Falle eines Ausfalls schützt. Natürlich bedeutet diese Art der Redundanz einen Kostenanstieg - was wahrscheinlich der Grund ist, warum ein solcher Aufwand oft erst genehmigt wird, nachdem sich seine Vorteile in der Praxis gezeigt haben (weil er nicht vorhanden ist).

Denken Sie auch daran, dass der VM-Host nur eine von mehreren einzelnen Fehlerquellen ist:

  • Netzwerk - Was ist, wenn die Netzwerkkarte des VM-Hosts ausfällt?
  • Arbeitsspeicher - Was ist, wenn ein Teil des Arbeitsspeichers des VM-Hosts kaputt geht?
  • CPU - Wenn ein CPU-Kern ausfällt, was passiert dann mit den VMs?
  • Stromversorgung - Gibt es nur ein oder zwei Stromkabel?
  • Management-Port - Angenommen, Sie können nicht zur Host-Verwaltung der VM gelangen?

Dies sind nur einige Beispiele: Bei einer umfangreichen VM-Infrastruktur muss sorgfältig darauf geachtet werden, dass kein Datenverlust und kein VM-Verlust auftritt.

Mei
quelle
2
Hör auf David. Sie benötigen eine N + 1-Konfiguration. Dies bedeutet, dass Sie mindestens einen freien Rechner benötigen, der im Falle eines Ausfalls die gesamte Arbeitslast eines anderen Rechners aufnehmen kann. Meine Empfehlung ist ein Cluster mit zwei Servern, der die Last gleichmäßig verteilt, aber die gesamte Arbeitslast unabhängig verarbeiten kann, falls ein Computer ausfällt.
Jason Pearce
4

Keine Aussage über die Realisierbarkeit in der Produktion, aber es gibt eine sehr interessante NetApp-Demo, in der 5440 XP-Desktops auf 32 ESX-Hosts (das sind 170 pro Host) in etwa 30 Minuten bereitgestellt werden bilder

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

Ich vermute, dass Ihre Einschränkungen vom Festplattensubsystem herrühren. Sie scheinen die Speicher- und CPU-Auslastung entsprechend berücksichtigt zu haben.

Kevin Kuphal
quelle
3

Nie getan - aber ich verspreche, Sie werden viel mehr als nur für Speicher ausgeben, um genügend IOPs zu erhalten, um so viele VMs zu unterstützen, wie Sie auf der Serverhardware benötigen. Sie benötigen eine Menge IOPs, wenn alle 100 gleichzeitig aktiv sind. Nicht negativ zu klingen, aber haben Sie auch darüber nachgedacht, dass Sie eine Menge Eier in einen Korb legen?

Jeff Hengesbach
quelle
2
Ich würde definitiv mehrere "Körbe" erstellen und einige automatisierte Backups einrichten. E / A-Engpässe können heutzutage mit SSD-Laufwerken problemlos behoben werden. Ich habe 160 GB Intel MLC-Laufwerke in der Produktion verwendet und sie sind spektakulär. Grundsätzlich erhalten Sie eine 5-mal bessere zufällige E / A-Leistung als erstklassige SAS-Laufwerke (in einfachen RAID-Konfigurationen).
Dennis Kashkin
1

Ich wäre am meisten besorgt über CPU-Konflikte mit 100 VMs auf einem einzelnen Host. Sie müssen sich daran erinnern, dass der Prozessor NICHT virtualisiert ist, sodass jede Maschine auf den Zugriff auf die CPU warten muss. Sie können anfangen, Konflikte zu sehen, indem Sie sich ESXTOP ansehen. Es wurde mir gesagt, dass VMWare Engineers alles, was über 5 im Feld% RDY steht, sehr schlecht ist.

Nach meiner Erfahrung habe ich ungefähr 30 - 40 Server gesehen, die auf einem Host laufen (nicht zu viel).

Zypher
quelle
1

Ich hatte 10 Hosts auf VMWare Server 1.0.6 (unter Windows 2003) und es traten regelmäßig E / A-Probleme auf (und wenn sich die nächtlichen Builds jemals mit etwas anderem überschnitten, hatten sie Probleme). Nach dem Upgrade von Windows auf ESXi U3 haben wir festgestellt, dass unsere Leistungsprobleme behoben sind (nächtliche Builds sind nicht mehr fehlgeschlagen).

Beachten Sie auch, dass SSDs eine viel höhere E / A-Rate aufweisen als sich drehende Medien. In einigen Fällen kann dies jedoch nicht der Fall sein, z Smart Write Buffering Cache, der bei Scatter-Schreibvorgängen gute Arbeit leistet).

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

Walter
quelle
1

Wenn Sie dies tun, empfehlen wir Ihnen dringend, die neuen Prozessoren der Intel 'Nehalem' Xeon 55xx-Serie zu verwenden. Sie wurden für den Betrieb von VMs entwickelt und ihre zusätzliche Speicherbandbreite wird ebenfalls enorm helfen. Oh, und wenn Sie mehr, kleinere als wenige, große Festplatten verwenden können, hilft das sehr. Wenn Sie ESX v4 auch über 3.5U4 verwenden können.

Chopper3
quelle
1

Ich habe 20 XP-VMs mit je 512 MB RAM auf einer Maschine mit 16 GB RAM. Weniger als das und sie tauschen auf die Festplatte und das gibt den Flaschenhals. Dies sind jedoch immer aktive XP-VMs.

VMware und seine OverCommit-Funktion sollten es Ihnen ermöglichen, mehr RAM auf jede XP-Maschine zu übertragen. Ein ähnlicher Computer teilt dieselben Seiten, sodass das Beschreiben der Festplatte verringert werden kann. Es ist etwas, worauf ich bei unserem Setup achten möchte, um weitere Maschinen hinzuzufügen, da unsere XP-VMs 10 bis 20 Megabyte kontinuierlichen Festplattenverkehrs ausführen.

Ryaner
quelle
1

Wir konnten nicht 100 zufriedene Gäste auf VMWare Server erreichen, stellten dann aber fest, dass ESXi einen viel besseren Job macht. Es scheint also, dass 100 XP vms kein Problem sind, wenn Sie ESXi und einen anständigen Server verwenden (ein paar Festplattenspiegel, um die E / A zu verteilen, ein paar I7-Chips und 64 GB RAM). Es gibt keine sichtbare Verzögerung für Endbenutzer und die Hostressourcen werden nicht ausgelastet (die heißeste ist die CPU, aber normalerweise sind es mindestens 70% im Leerlauf).

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

Dennis Kashkin
quelle
0

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

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

Ich bin sehr gespannt, ob man mit einer 8-Kern-Box tatsächlich einen 4-fachen Faktor erreichen kann.

Hans Malherbe
quelle
1
Das ist dann vor ESX 3.5U2 - das Konfigurationsmaximum für Update 2 lautet 8 für allgemeine Zwecke, aber das erhöht sich für VDI-Workloads auf 11. Ich bin mir ziemlich sicher, dass ich etwas gefunden habe, das ich nicht finden kann und das diese VDI-Empfehlung mit Update 3 oder 4 auf 19 erhöht hat. Für vSphere ist das Limit jetzt 20. Suchen Sie nach VMware ESX-Konfigurationsmaxima für die offiziellen Dokumente von VMware.
Helvick
Meine VMs bleiben die meiste Zeit inaktiv. Die Leute verbinden sich vielleicht ein paar Mal am Tag, um eine leichte Software auszuführen. Ich habe bestätigt, dass diese VMs im Leerlauf einen sehr geringen CPU-Overhead auf dem Host verursachen (20 VMs erhöhen die CPU-Auslastung auf der Basis eines Dual-Quadcore-Systems um bis zu 9%). Können Sie sich daran erinnern, wie gerechtfertigt die Begrenzung auf vier VM pro CPU ist? Denken sie über Webserver oder Desktop-Betriebssystem-Instanzen nach?
Dennis Kashkin