Laufen viele virtuelle Maschinen auf einem einzelnen host
Habe ich eine ausführen müssen, um eine relativ große Anzahl von virtuellen Maschinen auf eine relativ kleine Anzahl von physischen hosts. Jede virtuelle Maschine ist nicht zu viel - jeder nur ausführen muss, um im wesentlichen eine grundlegende Netzwerk-service - denken, SMTP oder dergleichen. Darüber hinaus ist die Last auf jedem Los ist extrem hell.
Leider die zahlen sind so 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. Ich weiß jedoch, nur ein vmware-image von ubuntu und werfen auf, dass die Maschine nicht bekommen, mir irgendwo in der Nähe von 100 Instanzen und wäre etwas näher an der 20.
So, gibt es irgendeine Hoffnung für das Verhältnis von Bildern zu hosts? Auch die Implementierung der virtuellen Maschine am besten geeignet wäre für diesen Zweck - sprich effiziente Allgemeine Nutzung von Ressourcen? Wir verwenden meist das vmware hier, aber wenn es einen signifikanten performance-Vorteil, der erreicht werden könnte durch die Umstellung auf Xen oder dergleichen, ich bin sicher, wir würden es prüfen.
Vielen Dank im Voraus für Eure Erkenntnisse 🙂
Hinweis: Wir landeten mit OpenVZ und es funktionierte ziemlich gut. Die Standard-Parameter für eine ubuntu-Vorlage lasst uns laufen über 40-Instanzen pro Rechner.
InformationsquelleAutor Voltaire | 2008-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
gibt es drei Fronten, um diese fit:
geringeren overhead. OpenVZ, Vserver, chroot, wäre ideal, wenn anwendbar. wenn Sie wirklich brauchen, jede Instanz einer echten VM mit eigenem kernel, die versuchen, KVM/Xen statt VMWare. möglicherweise weniger ausgereift, aber Sie haben viel mehr Flexibilität.
kleineren Gäste. versuchen Sie Ubuntu JeOS, oder Rollen Sie Ihre eigenen mit busybox
teilen so viel wie möglich zwischen den Gästen. versuchen Sie den Austausch einer einzelnen R/O Bild mit allen OS, und montieren eine kleine R/W-Bild für jeden Gast, der auf /var, /home, /etc, etc
stimmt, Linux containers (und BSD/solaris-Varianten) sind ebenso mit geringem Aufwand als chroot; aber Andockfenster fügt ein Dateisystem-overlay, das weiß ich nicht, wie viel Auswirkungen hat es auf Festplatten-IO.
Ich sagte nur, es sind die neuen trends. Es ist mehr Entwickler freundlich. Und es reduziert die Schwierigkeiten bei der Bereitstellung einer app. Große Firmen wie Google,Canonical(Ubuntu-Gesellschaft),Redhat etc. ziehen dies in Erwägung. Ich verstehe, dass es möglicherweise Auswirkungen auf IO, aber die Frage war über die virtuelle Maschine. Docket ist eine linux-container-basierte (zumindest einige Konzept und code), also ich glaub es ist auch eine Antwort. Vor allem, Redhat wird mit dem Projekt Atomic und Canonical mit Snappy Ubuntu, und ich habe gehört, google ist auch daran interessiert.
InformationsquelleAutor Javier
Ein paar Probleme mit...
Glück
InformationsquelleAutor Brian
Brauchen Sie wirklich 100 voll funktionsfähige Betriebssysteme?
Warum nicht Ansatz, web-Server, verwenden Sie bereits? Ich meine virtuellen web-Servern/hosts.
Beispielsweise in der Apache HTTPD Installation auf einzelnen physischen server mit vielen virtuellen Servern über eine einzige config-Datei. Plus müssen Sie DNS so konfiguriert und/oder viele virtuelle Netzwerk-interfaces (eth0:0, eth0:1, ... ,eth0:n) mit unterschiedlichen IP-Adressen.
Dieser sollte funktionieren, wenn Sie wirklich brauchen nur mehrere Dienste, die im Kontakt mit der Welt und die Belastung ist nicht hoch.
InformationsquelleAutor Yurii Soldak
Andere Möglichkeit ist die Verwendung von einem leichten Linux-distribution, die ausgeführt werden können in sehr kleinen Mengen an Speicher. So etwas wie DamnSmallLinux oder eine variation auf DDWRT. Sie kann in weniger als 16MB Speicher, so dass Sie 20 oder mehr auf einer einzigen Maschine.
InformationsquelleAutor Barry Brown
Würden Sie am besten ab, läuft unter VMware ESX/ESXi, da Sie beide haben eine Lust auf Speicher-pooling. Es dauert im Prinzip-Seiten-Speicher identisch sind, und verwendet Sie zwischen mehreren Gästen, so dass, wenn Sie eine Menge von identisch Gäste, Sie werden in der Lage sein zu viel mehr bekommen Sie auf Ihrem host als mit anderen VMs.
Prüfen, die etwas über "Transparent Page Sharing" in dieser blog-Eintrag, und ein Kommentar darüber hier zu.
Offensichtlich bist du immer noch dabei, es mit 20 Gästen pro host und nur 2 GB RAM auf jeden, aber wenn Sie entfernen alle überflüssige Dienste und apps, und bauen 1 Gast Bild und Klonen Sie vor dem installieren der dedizierten app auf jeden, Sie könnte nur Weg mit ihm, vor allem als VMware-link zeigt eine 4Gb-host unter 40 Gäste!
InformationsquelleAutor gbjbaanb
ich hab eine quadcore-Maschine läuft ein vollständiges desktop-und 9 virtuelle Maschinen. da dies ist ein Test-Maschine verwende ich alle Arten von Gästen. das beste auf der ram-Auslastung zu sein scheinen debian-kfreebsd, und tiny core linux. tiny core linux nutzt 10M ram nichts zu tun. fügen Sie ein paar Dienste, und es könnte sein, 32M, so konnte ich 32 vm ' s innerhalb 1 GB ram! Sie haben 2 GB so können sagen, Sie könnten 48-Maschinen, einschließlich hypervisor-und Gemeinkosten(ich bin mit kvm.) also mit 5 Maschinen, wir würden bis zu 240 Maschinen 😀
ich denke, ich werde versuchen, dass in einem moment 😀
btw. Sie haben gesagt, der vm ist whould haben eine geringe Last, so dass ich nicht rechnen cpuload oder diskload. und diese zahlen haben genau 0-Redundanz.
InformationsquelleAutor isama
Wenn Sie können, slim hinunter, der Gast genug sind, könnten Sie wahrscheinlich tun Sie es, no X, minimal-Dienste gestartet etc. Blick auf slackware oder ubuntu-server.
Xen scheint beliebt unter den web-hosting-Unternehmen, also vielleicht einen Blick Wert.
CPU-Auslastung hängt von den apps, aber möchten Sie vielleicht, um zu kaufen einige mehr ram!
Oh in der Lage sein zu Stimmen, Kommentare
InformationsquelleAutor Martin Beckett
Gibt es einen Grund, warum jedes Netzwerk-service-Instanz benötigt werden, aufgeteilt in Ihre eigenen virtuellen Maschinen? Wenn Sie nicht brauchen, um Benutzer isolieren von einander, aber Sie brauchen, um zu isolieren, die Prozesse und Verkehr, dann würden Sie wahrscheinlich besser dran, nur mit der fünf-Servern und starten separate Prozesse für jede Instanz. Jede Instanz gebunden werden, um eine separate virtuelle Schnittstelle.
Konfigurieren Sie beispielsweise eine virtuelle Schnittstelle, und weisen Sie eine IP-Adresse. Erstellen Sie eine httpd.conf-Datei und/oder sendmail.cf-Datei für die Instanz, die Sie erstellen möchten. In der config-Datei angeben, dass der daemon sollte gebunden werden, um die virtuelle Schnittstelle (und nur ein). Starten Sie den daemon.
Wiederholen Sie für jede der Instanzen. Haben Sie viele der Laufenden Prozesse (Hunderte, wenn nicht Tausende), die Summe von Ihnen wird weniger Speicher verwenden, als Dutzende von VMs. Plus, Ihr Betriebssystem wird in der Lage sein, swap unbenutzt sind auf die Festplatte.
Leider, obwohl, ich glaube, wir haben tatsächlich einen Grund zu haben eine vollständige geblasen OS. Aber wir werden vielleicht nicht brauchen, 100 von Ihnen, vielleicht auch nur 40, und dann können wir mit diesem trick, für den rest. Seine sicherlich etwas zu betrachten.
Sie könnten auch versuchen, etwas mit chroot-Umgebungen benötigen Sie weitere Abschottung. Sie würde erstellen Sie kleine mini-Dateisysteme für jeden isolierten Prozess, dann starten Sie den Prozess in ein chroot-Gefängnis.
InformationsquelleAutor Barry Brown
Wenn Sie die Mathematik zu tun, erhalten Sie im Durchschnitt 100 MB ram für jede Maschine. Das ist nicht viel. Der Aufwand für eine VM ist ziemlich groß, dass ein komplettes OS in jeder Instanz.
Entweder verwenden Sie ein paar wirklich kleine Stellfläche os (http://www.damnsmalllinux.org/?) und Zeit verbringen, Streifen Sie sich noch mehr oder bekommt man größere Maschinen.
Maschinen, die Billig, da würd ich eher ein upgrade auf ein 64bit-OS mit viel ram.
InformationsquelleAutor Oli
VMWare hat eine Coole option, wo können Sie "pool", eine Gruppe von physischen Maschinen, und es wird automatisch verschieben Sie die virtuellen Maschinen auf welcher hardware wird am wenigsten genutzt, ohne Unterbrechung des Betriebs der VM.
Eher advertisey link.
InformationsquelleAutor JosephStyons
Sind Sie beschränkt auf vmware? Haben Sie sich überlegt Operating system-level virtualization? erhalten Sie mehr VMs mit weniger overhead, da jeder VM ausführen kann, die den gleichen kernel.
Tatsächlich - ich bin nicht sicher. Wir haben vielleicht einige os-spezifischen Anforderungen für jedes Bild, das uns hindert, etwas zu tun wie laufen eine Reihe von FreeBSD-jails.
Nun, wenn Sie können für eine einzelne Linux-kernel, der unterstützt alle Ihre verschiedenen apps, dann Virtuozo und OpenVZ konnten pack viel mehr VMs in einen einzelnen physischen host. Viel Glück!
InformationsquelleAutor Kevin Little
Einige Gedanken ...
1 - Wie von anderen darauf hingewiesen, den Speicher Arithmetik nicht funktioniert, benötigen Sie mehr RAM.
2 - Je nach service, werden Sie möglicherweise in der Lage zu finden, vorkonfigurierte virtuelle Maschinen. Zum Beispiel, Astaro hat eine VM setup für seine Kostenlose firewall-software. Sie können auch in der Lage sein zu finden, eine sehr kleine linux-Distribution, die Sie anpassen können.
3 - Vielleicht bin ich etwas fehlt, aber es klingt wie Ubuntu ist schon ziemlich nah ... 20 Instanzen pro Maschine auf 5 Maschinen erhalten die 100 Instanzen, die Sie benötigen. Es gibt nicht viel Spielraum für zukünftiges Wachstum, aber ...
Take care, good luck.
InformationsquelleAutor tomjedrz
Ich weiß nicht, ob das möglich ist, aber wie über die Ausführung jeder Dienst in einer chroot-Umgebung? Wahrscheinlich könnte man Speicherplatz sparen, indem Sie harte Verknüpfung der notwendigen Bibliotheks-Dateien zu erstellen, die jede chroot-Dateisystem.
InformationsquelleAutor Barry Brown
Anderen Problem mit dem jeder Dienst in eigener VM ist, dass Sie brauchen alle Ihre eigene IP-Adresse. 100 IPs kann nicht sein ein Problem auf ein internes Netzwerk (wie ein 172/8-oder 10/8-setup), aber wenn Sie sind Teil der Klasse Ein (vorausgesetzt, Sie haben, dass viele öffentlich), Sie laufen schnell aus.
Und, wie andere schon gefragt, warum jeden Dienst müssen eigene VM? Viele von Ihnen sollten leicht in der Lage, läuft auf dem gleichen host.
InformationsquelleAutor warren
Ob es etwas, das getan werden kann auf der Anwendungsebene - ich würde gehen ohne virtualizatoin. Sie können mehrere Instanzen ausführen Ihrer app auf verschiedenen port-Nummern, auch unterschiedliche IP-Adressen mit IP-aliasing leicht. Auf diese Weise können Sie leicht laufen mehr als 20 Kopien auf jedem Ihrer Boxen. Heck, könnten Sie in der Lage sein, alles zu tun, mit der Hälfte Ihrer hardware.
Virtualisierung ist nicht die Lösung für alles. 🙂
Meine 2c.
InformationsquelleAutor Lester Cheung
Cloud Foundry. Ich weiß nichts über VMs im Vergleich zu jemand anderes, kann vorgelegt haben, eine Antwort, aber von dem, was ich verstehe, wenn Sie einen host, eine virtuelle Maschine auf diesem host, und dann Cloud Foundry auf, dass die VM können Sie ganz einfach erstellen Sie eine base Sekundäre VM und leicht replizieren und konfigurieren, alle Dienste innerhalb des Sekundären VM gesetzt, während die hardware-Auslastung niedrig ist. Ich weiß nicht, ob es funktionieren wird, das ist sicher, aber von was ich verstehe, das wäre einer der eher minimalistischen Ansätzen und es ist ein zwei-Rumpf-Ansatz, die Verringerung der möglichen Gefahr der Beschädigung der host-Maschine.
InformationsquelleAutor Jared Lourie