Was passiert, wenn eine physische Maschine in einer virtuellen Umgebung ausfällt?

Was passiert, wenn eine physische Maschine in einer virtuellen Umgebung ausfällt?

Ich bin gerade dabei, mich mit der Virtualisierung zu beschäftigen, also haben Sie bitte Geduld mit mir.

In virtuellen Umgebungen werden Anwendungen auf der Ebene eines Hypervisors ausgeführt. Auf einer einzelnen physischen Maschine können also mehrere virtuelle Maschinen laufen, auf denen mehrere Anwendungen ausgeführt werden.

So weit, ist es gut?

Was passiert also, wenn eine physische Maschine ausfällt? Würde das nicht dazu führen, dass viele Anwendungen auf einer einzigen Maschine ausfallen?

Ich suche nach der Entwicklung einer privaten Cloud mitOpenStack, aber ich möchte zuerst die Virtualisierung vollständig verstehen.

Antwort1

Die Einzelheiten hängen davon ab, welche Virtualisierungslösung Sie genau verwenden. Die Idee ist jedoch, dass Sie eine virtuelle Farm haben, in der es eine Reihe physischer Hosts mit jeweils mehreren virtuellen Maschinen gibt. Sie verwenden dannmancheder Effizienz, die Sie dadurch gewinnen, dass Sie nicht für jede VM einen physischen Host benötigen, sodass Ihnen genügend Overhead übrig bleibt, um den Ausfall einer physischen Maschine auszugleichen.

Darüber hinaus können Sie die VHDs für jede VM auf einem gemeinsamen (redundanten) SAN platzieren. Die Hypervisoren auf jedem physischen Host können so eingestellt werden, dass sie miteinander kommunizieren und den Speicher verschiedener VMs gemeinsam nutzen. Es gibt eine gewisse Latenz, und ein Großteil des Speichers wird durch die Festplatte gesichert, aber wenn einer der physischen Hosts ausfällt, müssen Sie nicht einmal darauf warten, dass die VMs von diesem Host wieder hochfahren. Stattdessen werden diese VMs automatisch auf die verbleibenden Hosts verteilt. Das ultimative Ziel ist, dass diese Maschinenmachen fast dort weiter, wo sie aufgehört haben, mit wenig bis gar keiner Ausfallzeit. In gewisser Weise laufen alle Ihre VMs bereits auf mindestens zwei physischen Hosts. In der Praxis können Hypervisoren diese Art der Migration derzeit nur für eine Maschine nach der anderen durchführen, wenn sie wissen, dass sie ansteht, bevor der Host ausfällt... aber machen Sie sich keinen Fehler: Die sofortige Migration bei einem Hardwarefehler ist das ultimative Ziel aller großen Hypervisoren.

Aus diesem Grund wird ein Server manchmal auf einem einzigen physischen Host in einer Farm virtualisiert. Sie erzielen möglicherweise keine Hardwareeffizienz (Sie können sogarverlierenetwas Leistung), aber Sie machen das durch Verwaltungskonsistenz und integrierte Hochverfügbarkeit wieder wett.

Antwort2

Alle auf einem physischen Host ausgeführten virtuellen Server werden offline geschaltet, wenn auf dem Host ein Fehler auftritt.

Allerdings bieten die meisten Plattformen eine Hochverfügbarkeitslösung für eine einzelne VM. In anderen Fällen wird ein System mit mehreren Knoten aufgebaut, um Dienstunterbrechungen zu vermeiden, falls ein Knoten ausfällt.

Wenn zwei VM-Knoten einen hochverfügbaren Dienst bilden, kann der Hypervisor so konfiguriert werden, dass die beiden Knoten nicht von derselben physischen Infrastruktur abhängig sind (Fehlertoleranz). Dies kann mehr als nur die physische Server-Fehlertoleranz sein, einschließlich unterschiedlicher Netzwerkpfade, bis hin zu geografisch unterschiedlichen Standorten.

Antwort3

Sie liegen mit Ihrer Annahme richtig, dass bei einem Ausfall der physischen Maschine auch die VMs nicht mehr verfügbar sind.

Aber OpenStack kann sich darum kümmern und die VMs des ausgefallenen physischen Servers auf einem anderen Server starten, oder Sie können ein bereits verteiltes Hypervisor-System verwenden. Ich denke, vSphere kann das.

Lesen Sie dieOpenStack-Dokumentation zu HAfür mehr Informationen.

Antwort4

Zu Ihrer Frage: Ja, Sie verlieren den Zugriff auf alle Maschinen innerhalb dieses physischen Hosts. Natürlich hängt es davon ab, welche Komponente ausgefallen ist. Wenn es die Festplatte ist, ist es ein Problem, wenn es das Motherboard ist, ist es viel einfacher. Im Allgemeinen ist die Hardwarewiederherstellung einfacher, da der Hypervisor hardwareunabhängig ist. Derzeit gibt es viele herstellerspezifische Technologien, die Sie verwenden können, um hochverfügbare Dienste bereitzustellen.

Ressourcenpools(vmware) - sindNICHTin der Lage, mehrere physische Host-Ressourcen (CPU, Speicher, etc.) zu aggregieren, wie jemand oben erwähnt hat, also wenn Sie 2 physische Hosts haben (sagen wir 1CPU Quad-Cores ohne Hyperthreading - 8GBRAM pro Host), wird esNICHTEs wäre möglich, dort eine 5vCPU-12Gb-VM zu haben. Ressourcenpools sind logisch, sie können keine Supercomputersysteme erstellen. Im Moment ist dies eine Möglichkeit, die Ressourcennutzung zu steuern.

Verfügbarkeit(vmware) - es ist möglich, Technologien wieHohe Verfügbarkeit(HA), die Ihnen eine automatische Wiederherstellung ermöglichen (basierend auf meiner Erfahrung innerhalb1 bis 2 Minuten) aller VMs im Cluster automatisch, WENN Sie ein Storage Array (NAS, iSCSI, FC) verwenden und alle VM-Dateien dort aufbewahren. Darüber hinaus funktioniert HA nur bei CPU-, RAM- und Motherboard-Ausfällen. Es ist offensichtlich, dass es nicht funktioniert, wenn das Storage Array ausfällt. Um RAID-/Controller-Ausfälle zu verhindern, verwenden Benutzer Replikation, Storage-LUN-Spiegelung usw.

Wenn eine Wiederherstellung innerhalb von 1-2 Minuten nicht möglich ist, gibt es Technologien wieFehlertoleranz(FT), wodurch im Fehlerfall NULL Ausfallzeiten der VM erreicht werden, indem eine Schattenkopie (laufende Kopie) der konfigurierten VM aufbewahrt wird. Diese Technologie hat jedoch auch viele Einschränkungen – das Problem der Fehlertoleranz bei VMs mit mehreren vCPUs ist nicht vollständig gelöst.

Insgesamt hängt jede Lösung von Ihrem Ziel ab.

verwandte Informationen