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

12

Ich fange gerade mit der Virtualisierung an.

In virtuellen Umgebungen werden Anwendungen auf der Ebene eines Hypervisors ausgeführt. Auf einer einzelnen physischen Maschine können sich also mehrere virtuelle Maschinen befinden, 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 von einem einzigen Computer aus fehlschlagen?

Ich bin auf der Suche nach einer privaten Cloud mit OpenStack , möchte aber zunächst die Virtualisierung vollständig verstehen.

Sherif
quelle

Antworten:

14

Die Einzelheiten hängen von der genauen verwendeten Virtualisierungslösung ab. Die Idee ist jedoch, dass Sie über eine virtuelle Farm verfügen, in der mehrere physische Hosts mit jeweils mehreren virtuellen Maschinen vorhanden sind. Sie nutzen dann einen Teil der Effizienz, die Sie erzielt haben, indem Sie nicht für jede VM einen physischen Host benötigen, sodass Sie genug Overhead für den Fall haben, dass eine physische Maschine ausfällt.

Darüber hinaus können Sie die VHDs für jede VM in einem gemeinsamen (redundanten) SAN suchen. Die Hypervisoren auf jedem physischen Host können so eingestellt werden, dass sie miteinander kommunizieren und den Speicher von verschiedenen VMs gemeinsam nutzen. Es gibt eine gewisse Latenz und ein Großteil des Arbeitsspeichers wird von der Festplatte gesichert. Wenn jedoch einer der physischen Hosts ausfällt, warten Sie nicht einmal darauf, dass die VMs von diesem Host neu gestartet werden. Stattdessen werden diese VMs automatisch auf die verbleibenden Hosts verteilt. Das ultimative Ziel ist, dass diese Maschinen fast dort ankommen, wo sie aufgehört habenmit wenig bis gar keinen Ausfallzeiten. In gewisser Weise werden alle Ihre VMs bereits auf mindestens zwei physischen Hosts ausgeführt. In der Praxis können Hypervisoren diese Art der Migration derzeit nur auf einem Computer durchführen, wenn sie wissen, dass der Host ausfällt Hypervisoren.

Aus diesem Grund wird manchmal ein Server auf einem einzelnen physischen Host in einer Farm virtualisiert. Sie erhalten möglicherweise keine Hardwareeffizienz (Sie verlieren möglicherweise sogar etwas Leistung), können dies jedoch in Bezug auf die Verwaltungskonsistenz und die integrierte Hochverfügbarkeit wieder wettmachen.

Joel Coel
quelle
Vielen Dank für Ihre Antwort, Joel. Ich habe zwei Fragen. Betrachtet die virtuelle Umgebung die physischen Maschinen als einen einzigen Ressourcenpool? Hilft dies bei der Befriedigung von Self-Service auf Abruf? Hilft die Vitalisierung auch dabei, Ressourcen zu nutzen?
Sherif
1
@ Sherif: Grundsätzlich ja und ja. Wenn Sie dies genauer verstehen möchten, lesen Sie den Wikipedia-Artikel , in dem VM-Migration und Failover kurz behandelt werden. Wenn Sie noch Fragen haben, stellen Sie eine genauere Frage.
sleske
1
Sind Sie sich bezüglich des Shared-Memory-Teils sicher? Nach meinem Verständnis wird eine fehlerhafte VM aufgrund eines Hardwarefehlers auf einem anderen Host neu gestartet . Dies kann abhängig von der Hypervisor-Konfiguration als vollständiger Neustart oder als Checkpoint-Wiederherstellung angezeigt werden, der ursprüngliche Speicherstatus kann jedoch nicht wiederhergestellt werden. Für vspere: vmware.com/products/vsphere/features/high-availability Nebenbei bemerkt, wurden einige Projekte für KVM gestartet, um echten gemeinsam genutzten, redundanten Speicher für eine Sammlung von Hardware-Hosts zu ermöglichen . Sie wurden jedoch aufgegeben.
Shodanshok
1
Eine VM-Migration kann nur stattfinden, wenn der physische Computer die Möglichkeit hat, die Kontrolle vor dem Absturz zu übertragen. Wenn die physische Maschine ohne großen Aufwand ausfällt, muss die virtuelle Maschine auf einer anderen Maschine neu gestartet werden. Wenn Sie einen zustandslosen Server haben, ist dieser Übertragungsprozess trivial, da Sie einfach einen anderen Computer hochfahren können. Für Maschinen mit persistenten Zuständen benötigen Sie ein Schema, mit dem die persistenten Daten von der fehlerhaften physischen Maschine wiederhergestellt werden können.
Lie Ryan
13

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

Die meisten Plattformen bieten jedoch eine Hochverfügbarkeitslösung für eine einzelne VM. In anderen Fällen wird ein System mit mehreren Knoten erstellt, um eine Unterbrechung des Dienstes zu verhindern, falls ein Knoten ausfällt.

Wenn zwei VM-Knoten einen hochverfügbaren Dienst bilden, kann das Hyper-Visor so konfiguriert werden, dass sichergestellt ist, dass die beiden Knoten nicht auf dieselbe physische Infrastruktur angewiesen sind (Fehlertoleranz). Dies kann mehr als nur eine Fehlertoleranz für physische Server sein, einschließlich verschiedener Netzwerkpfade bis hin zu geografisch unterschiedlichen Standorten.

blaughw
quelle
2
AWS beispielsweise repliziert den Service je nach Service in verschiedenen Verfügbarkeitszonen (physischen Bereichen), falls ein Naturkatastrophenfall in diesem Bereich vorliegt, der die physischen Maschinen stört.
Michael Bailey
Betrachtet die virtuelle Umgebung die physischen Maschinen als einen einzelnen Ressourcenpool? Hilft dies bei der Befriedigung von Self-Service auf Abruf? Hilft die Vitalisierung auch dabei, Ressourcen zu nutzen? und vielen Dank für Ihre Bemühungen
Sherif
5

Sie haben Recht mit Ihrer Annahme, 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 Hypervisorsystem verwenden, das bereits verteilt ist. Ich denke, vsphere kann das.

Weitere Informationen finden Sie in der OpenStack-Dokumentation zu HA .

Henrik Pingel
quelle
2

In Bezug auf Ihre Frage - Ja, Sie verlieren den Zugriff für alle Computer in diesem physischen Host. Natürlich kommt es darauf an, welche Komponente ausgefallen ist. Wenn es sich um eine Festplatte handelt, ist es ein Problem, wenn es sich um eine Hauptplatine handelt, ist es viel einfacher. Im Allgemeinen ist die Wiederherstellung der Hardware einfacher, da der Hypervisor hardwareunabhängig ist. Derzeit gibt es viele herstellerspezifische Technologien, mit denen Sie hochverfügbare Services bereitstellen können.

Ressourcenpools (VMware) - können NICHT mehrere physische Hostressourcen (CPU, Speicher usw.) wie oben beschrieben zusammenfassen. Wenn Sie also zwei physische Hosts (z. B. 1CPU Quad-Cores ohne Hyperthreading - jeweils 8 GB RAM) haben, ist dies NICHT der Fall möglich, dort 5vCPU-12Gb VM zu haben. Ressourcenpools sind logisch und können keine Supercomputersysteme erstellen. Derzeit ist dies eine Möglichkeit, die Ressourcennutzung zu steuern.

Verfügbarkeit (VMware) - Es ist möglich, Technologien wie Hochverfügbarkeit ( High Availability, HA) zu verwenden, mit denen Sie eine automatische Wiederherstellung (basierend auf meiner Erfahrung innerhalb von 1-2 Minuten ) aller VMs im Cluster automatisch durchführen können, WENN Sie Storage Array (NAS) verwenden. iSCSI, FC) und bewahren Sie alle VM-Dateien dort auf. Mehr über HA funktioniert nur für den Fall, dass CPU, RAM, Motherboard ausfällt, es ist offensichtlich, dass es nicht funktionieren wird, wenn Storage Array ausfällt. Um RAID / Controller-Ausfälle zu vermeiden, verwenden Benutzer die Replikation, die Spiegelung von Speicher-LUNs usw.

Wenn eine Wiederherstellung innerhalb von 1-2 Minuten nicht möglich ist, gibt es Technologien wie Fault Tolerance (FT), mit denen bei einem Ausfall eine NULL-Ausfallzeit der VM erzielt werden kann, indem eine Schattenkopie der konfigurierten VM (die gerade ausgeführt wird) aufbewahrt wird. Diese Technologie weist jedoch auch zahlreiche Einschränkungen auf - das Problem der Fehlertoleranz von VMs mit mehreren vCPUs ist nicht vollständig gelöst.

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

Dmitry Savinkov
quelle