Frage

Ich habe eine Notwendigkeit, eine relativ große Anzahl von virtuellen Maschinen auf eine relativ kleine Anzahl von physischen Hosts laufen. Jede virtuelle Maschine tut nicht zu viel - jeder braucht nur im Wesentlichen ein Basisnetzdienst zu laufen - man denke SMTP oder dergleichen. Darüber hinaus wird die Last auf jedem geht extrem leicht sein.

Leider sind die Zahlen etwas wie 100 virtuelle Maschinen auf 5 physischen Hosts. Jeder Host ist anständig genug - Core 2 mit 2 GB RAM und einer 1 TB Festplatte. Allerdings weiß, ich habe gerade ein vmware Bild von ubuntu zu nehmen und auf dieser Maschine zu werfen pflegte mich bekommt irgendwo in der Nähe von 100 Fällen und würde etwas näher an 20 sein.

Also, gibt es keine Hoffnung für dieses Verhältnis von Bildern zu Hosts? Auch die Umsetzung der virtuellen Maschine am besten für diesen Zweck geeignet wäre - also hat effiziente Gesamtnutzung von Ressourcen? Wir meist vmware verwenden hier, aber wenn es einen signifikanten Leistungsvorteil ist, dass durch die Umstellung auf Xen oder dergleichen gewonnen werden konnten, bin ich sicher, dass wir es in Betracht ziehen würden.

Vielen Dank im Voraus für Ihre Einsichten:)

Hinweis: Wir sind am Ende mit OpenVZ und es funktionierte recht gut. Die Standardparameter für eine ubuntu-Vorlage lassen Sie uns über 40 Fällen pro Maschine.

War es hilfreich?

Lösung

Es gibt drei Hauptfronten diejenigen fit zu machen:

  1. geringerer Overhead. OpenVZ, Vserver, chroot, wäre ideal, wenn anwendbar. wenn Sie wirklich jede Instanz müssen mit einer eigenen Kernel eine echte VM sein, versuchen Sie KVM / Xen statt VMWare. möglicherweise weniger ausgereift, aber Sie werden viel mehr Flexibilität haben.

  2. kleine Gäste. versuchen Ubuntu JeOS, oder rollen Sie Ihre eigene mit Busybox

  3. Aktie so viel wie möglich zwischen den Gästen. versuchen, ein einzelnes R / O Bild mit allen OS teilen, und montieren Sie für jeden Gast auf / var ein kleines R / W-Bild, / home, / etc, etc

Andere Tipps

Ein paar Probleme mit dem ...

  1. Für Vmware Server, den Sie benötigen Server-Hardware wirklich, wenn es nur für die Prüfung ist.
  2. Gehen Sie mit einer Virtualisierungslösung, die nackte Ebene wie Xen Server oder VMware ESX oder ESXi (kostenlos) oder Hyper-V ist, die nicht mit nacktem Niveau ist aber näher in der Leistung.
  3. Für 20-1 werden Sie mehr RAM benötigen. Die Mathematik ist nicht auf. Minimale Funktionsgeräte benötigen 512, es sei denn es ist ein vollkommen entkleidet Linux ist, dass mindestens 256 20x256 = 5 GB + 5-10% Overhead haben sollte. Nicht wirklich auf diesen Spezifikationen passieren wird.
  4. Für 20-1 werden Sie mehr Prozessor benötigen. Jede Maschine wird eine vCPU haben. geteilt auf einem Kern 2 bedeutet, dass 10-1 pro Prozessor. nicht gut. Wir führen fast 20 auf einem Dual-Quad-Core Dell 1950 16gb RAM. Funktioniert prima.
  5. Was auch immer Sie sich entscheiden, werden Sie Speicher oversubscribing werden. Nicht ganz sicher, welche Sie lassen. Vmware will, sondern zeigt Warnungen.
  6. Ich habe gehört, haben aber keinen Beweis dafür, dass XenServer Leistungsvorteile bieten wird, aber niemand behauptet, mehr als 10-20%.

Viel Glück

Haben Sie wirklich brauchen 100 voll funktionsfähige Betriebssysteme?

Warum nicht Ansatz Web-Server bereits nutzen? Ich meine virtuellen Web-Server / hosts.

Zum Beispiel nehmen Apache HTTPD auf einzelnen physischen Server installiert Hosting viele virtuellen Server einzelne Konfigurationsdatei verwenden. Plus Sie müssen DNS konfiguriert und / oder viele virtuelle Netzwerk-Schnittstellen (eth0: 0, eth0: 1, ..., eth0: n). Mit unterschiedlichen IP-Adressen

Das sollte funktionieren, wenn Sie wirklich nur mehrere Dienste in der Welt ausgesetzt brauchen und die Last ist nicht hoch.

Eine andere Möglichkeit ist es, eine leichte Linux-Distribution zu verwenden, die in sehr geringen Mengen an Speicher ausgeführt werden kann. So etwas wie DamnSmallLinux oder eine Variation DDWRT. Sie können so wenig wie 16 MB Speicher zulaufen, so dass Sie 20 oder mehr auf einer Maschine laufen zu lassen.

Sie würden am besten aus seiner mit VMware ESX / ESXi, da sie beide eine ausgefallenen Speicherfunktion Pooling haben. Es dauert im Grunde Speicherseiten, die identisch sind und verwendet sie unter mehreren Gästen, also, wenn Sie eine Menge von identischen Gäste laufen, werden Sie in der Lage sein, eine Menge mehr auf dem Host zu bekommen, als mit anderen VMs.

Überprüfen Sie das Bit über "Transparent Seite Sharing" in dieser Blog-Eintrag und einen Kommentar dazu hier zu.

Offensichtlich sind schieben Sie es noch mit 20 Gästen pro Host und nur 2 GB RAM auf jedem, aber wenn Sie entfernen alle Fremd Dienste und Anwendungen, und 1 Gast-Image erstellen und klonen, bevor die Installation dedizierte App auf jedem, könnte man nur weg mit ihm, zumal die VMware Link einen 4Gb-Host ausgeführt wird 40 Gäste zeigt!

ich habe eine Quad-Core-Maschine einen vollständigen Desktop und 9 virtuelle Maschinen bekommt läuft. da dies eine Prüfmaschine ist verwende ich alle Arten von Gästen. die besten auf RAM-Auslastung scheinen debian-kfreebsd und Tiny Core Linux zu sein. Tiny Core Linux verwendet 10M RAM nichts zu tun. ein paar Dienste hinzufügen und es könnte 32M sein, so konnte ich 32 VMs innerhalb 1 GB RAM laufen! Sie haben 2 GB kann so sagen, Sie 48 Maschinen mit einem Hypervisor laufen konnten und Overhead (ich verwende kvm.) so mit 5 Maschinen würden wir bis zu 240 Maschinen sein: D

Ich glaube, ich werde das in einem Moment, um zu versuchen: D

btw. Sie sagte, dass die VMs whould eine geringe Last haben, so dass ich nicht auf cpuload oder Diskload zählte. und diese Zahlen genau 0 Redundanz.

Wenn Sie schlank können auf den Gast genug könnten Sie wahrscheinlich tun es, keine X, minimale Dienstleistungen usw. bei Slackware oder Ubuntu-Server Schauen gestartet. Xen scheint unter den Web-Hosting-Unternehmen beliebt, so könnte sich lohnen, ein Blick auf.

CPU-Auslastung hängt von den Anwendungen ab, sondern man könnte etwas mehr RAM kaufen möchte!

Gibt es einen Grund, warum jeder Netzdienstinstanz muss in ihre eigenen virtuellen Maschinen werden in Kompartimente? Wenn Sie Benutzer nicht voneinander isolieren müssen, aber brauchen die Prozesse und Datenverkehr zu isolieren, dann würden Sie wahrscheinlich besser dran, nur die fünf Servern mit, wie sie ist und für jede Instanz separate Prozesse starten. Jede Instanz würde in eine separate virtuelle Schnittstelle gebunden werden.

Zum Beispiel konfigurieren Sie eine virtuelle Schnittstelle und weisen Sie eine IP-Adresse. Erstellen Sie eine Datei httpd.conf und / oder sendmail.cf-Datei für die Instanz, die Sie erstellen möchten. In der Konfigurationsdatei an, dass der Dämon auf die virtuelle Schnittstelle gebunden werden soll (und nur, dass man). Starten Sie den Daemon.

Wiederholen Sie für jede der Instanzen. Sie werden viele Prozesse laufen (Hunderte, wenn nicht Tausende), wird die Summe von ihnen verwenden weniger Speicher als Dutzende von VMs. Plus, Ihre OS können nicht verwendete auf die Festplatte tauschen.

Wenn Sie die Mathematik zu tun, erhalten Sie in durchschnittlich 100 MB RAM für jede Maschine. Das ist nicht viel. Der Aufwand für eine VM ist ziemlich groß, ein komplettes Betriebssystem in jedem Fall ausgeführt werden muß.

Entweder man einige wirklich kleine Stellfläche os verwenden ( http://www.damnsmalllinux.org/ ? ) und verbringen Zeit, um es auszuziehen noch mehr oder Sie größere Maschinen.

Maschinen ist, dass billig, würde ich auf eine 64-Bit-OS mit viel RAM aufzurüsten neigen.

VMWare hat eine coole Option, wo man kann „Pool“ eine Gruppe von physischen Maschinen, und es wird automatisch die virtuellen Maschinen bewegen zu welcher Hardware dest genutzt wird, ohne den Betrieb der VM unterbrochen wird.

eher advertisey Link.

beschränken sich auf VMware? Haben Sie darüber nachgedacht Betriebssystemebene Virtualisierung? werden Sie mehr VMs bekommen mit weniger Aufwand , da jede VM den gleichen Kernel ausgeführt werden.

Einige Gedanken ...

1- Wie von anderen darauf hingewiesen wird, wird der Speicher Arithmetik nicht funktioniert, müssen Sie mehr RAM benötigen.

2- Je nach Dienst, können Sie in der Lage sein, vorkonfigurierte virtuelle Maschinen zu finden. Zum Beispiel Astaro hat eine VM-Setup für sie kostenlose Firewall-Software ist. Sie können möglicherweise auch eine sehr kleine Linux-Distribution, die Sie anpassen können.

3 Vielleicht etwas fehlt mir, aber es klingt wie Ubuntu schon ziemlich nah dran ist ... 20 Fällen pro Maschine auf 5 Rechnern, die unter 100 Fällen, die Sie benötigen. Es gibt nicht viel Spielraum für künftiges Wachstum, aber ...

Achten Sie darauf, viel Glück.

Ich weiß nicht, ob dies möglich ist, aber wie wäre es jeden Dienst in einer chroot-Umgebung ausgeführt wird? Sie könnten wahrscheinlich Speicherplatz sparen, indem schwer, die notwendigen Bibliotheksdateien Verknüpfung jedes chroot-Dateisystem zu erstellen.

Ein weiteres Problem mit jedem Dienst in seiner eigenen VM ausgeführt ist, dass sie alle ihre eigene IP-Adresse benötigen. 100 IP-Adressen können kein Problem in einem internen Netzwerk (wie ein 172/8 oder 8.10-Setup) sein, aber wenn sie Teil Ihrer Klasse A sind (vorausgesetzt, Sie haben, dass viele öffentliche), wirst du erschöpft schnell.

Und, wie andere gefragt haben, warum jeder Dienst benötigt eine eigene VM sein? Viele von ihnen sollten auf demselben Host leicht in der Lage sein.

Wenn es etwas, das auf der Anwendungsebene durchgeführt werden kann - würde ich ohne virtualizatoin gehen. Sie können ganz einfach mehrere Instanzen Ihrer App auf verschiedene Portnummern, sogar verschiedenen IPs mit IP-Aliasing laufen. Auf diese Weise können Sie leicht mehr als 20 Kopien auf jedem Ihrer Boxen laufen. Heck, Sie vielleicht in der Lage, alles mit der Hälfte Ihrer Hardware zu tun.

Die Virtualisierung ist nicht die Lösung für alles. :)

Meine 2c.

Cloud Foundry. Ich weiß nichts über VMs im Vergleich zu allen anderen, die eine Antwort abgegeben haben, aber von dem, was ich verstehen, wenn Sie einen Host, eine VM auf dem Host und dann Cloud Foundry auf dieser VM können Sie ganz einfach eine Basis sekundäre virtuelle Maschine und einfach erstellen replizieren und alle Ihre Dienste innerhalb dieser sekundären virtuellen Maschine Set konfigurieren, während Hardware-Nutzung gering zu halten. Ich weiß nicht, ob es sicher funktionieren wird, aber von dem, was ich verstehe, dass eine der minimalen Ansätze wäre und es ist ein zwei Rumpf Ansatz, die Gefahr eines mögliche Beschädigung der Host-Maschine verringern würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top