Projekt Tardigrade: höhere Resilienz für virtuelle Azure-Maschinen

Veröffentlicht am 14 August, 2019

Chief Technology Officer, Microsoft Azure

„Wir wollen Unternehmen dabei unterstützen, ihre Workloads zuverlässig unter Azure auszuführen. Nach diesem Prinzip investieren wir kontinuierlich in die Weiterentwicklung der Azure-Plattform, um die Fehlertoleranz zu steigern. So verbessern wir nicht nur die Unternehmensproduktivität, sondern bieten auch ein nahtloses Kundenerlebnis. Letzten Monat habe ich einen Blogbeitrag zu verschiedenen laufenden Initiativen veröffentlicht, die unser Fortkommen in diesem Bereich sicherstellen. Diese Bemühungen verstehen wir als Teil unserer Verpflichtung, ein vertrauenswürdiges Portfolio von Clouddiensten anzubieten. Heute möchte ich näher auf das Projekt Tardigrade eingehen. Es handelt sich um eine Initiative für resiliente Plattformen, durch die die Hochverfügbarkeit unserer Dienste selbst in den seltenen Fällen plötzlicher Plattformausfälle verbessert wird. Der folgende Beitrag wurde von Pujitha Desiraju und Anupama Vedapuri verfasst, zwei leitenden Mitarbeiterinnen aus unserem Compute Platform Fundamentals Team. Mark Russinovich, CTO, Azure


Co-Autor dieses Beitrags ist Jim Cavalaris, Principal Software Engineer, Azure Compute. 

 

Die Inspiration zu diesem Projekt mit dem Codenamen Projekt Tardigrade kommt von einer achtbeinigen mikroskopisch kleinen Kreatur – dem Bärtierchen, auch bekannt als Wasserbär. Es ist praktisch unmöglich, Bärtierchen den Garaus zu machen. Auch unter extremen Bedingungen schaffen sie es irgendwie, am Leben zu bleiben. Das ist genau das, was wir in puncto Resilienz mit unseren Servern erreichen wollen – daher der Name Projekt Tardigrade. Genauso, wie das Bärtierchen unter verschiedensten extremen Bedingungen überleben kann, beinhaltet auch dieses Projekt Resilienz- und Selbstheilungsmechanismen auf mehreren Plattformebenen – von der Hardware bis zur Software und mit dem Ziel, virtuelle Computer bestmöglich zu schützen.

Abbildung eines Bärtierchens.

So funktioniert's

Das Projekt Tardigrade ist eine breit angelegte Initiative für höhere Plattformresilienz. Mit zahlreichen Risikominderungsstrategien stellen wir sicher, dass Ihre VMs nicht durch unvorhergesehenes Hostverhalten beeinträchtigt werden. Dazu gehört, dass die Komponenten sich selbst heilen und nach potenziellen Ausfällen schnell wiederhergestellt werden, um Auswirkungen auf Workloads zu verhindern. Selbst in den seltenen Fällen von kritischen Hostausfällen ist es unser vorrangiges Ziel, Ihre VMs vor diesen spontanen Ereignissen zu bewahren und zu schützen, damit Ihre Workloads reibungslos ablaufen können.

Im Folgenden erläutern wir ein Beispiel für einen Wiederherstellungsworkflow. Dabei geht es um den eher seltenen Fall, dass ein vom Kunden initiierter VM-Vorgang aufgrund eines Problems mit dem Hostserver fehlschlägt. Um den fehlgeschlagenen VM-Vorgang erfolgreich durchzuführen und auch proaktiv zu verhindern, dass das Problem andere VMs auf dem Server beeinträchtigt, wird der Tardigrade-Wiederherstellungsdienst benachrichtigt. Dieser beginnt dann mit der Ausführung von Failovermaßnahmen.

Durch die folgenden Phasen wird der Tardigrade-Wiederherstellungsworkflow kurz dargestellt:

Phase 1:

Dieser Schritt hat keine Auswirkung auf die aktiven VMs der Kunden. Es werden einfach alle Dienste recycelt, die auf dem Host ausgeführt werden. In dem seltenen Fall, dass der fehlerhafte Dienst nicht erfolgreich neu gestartet werden kann, fahren wir mit Phase 2 fort.

Phase 2:

Unser Diagnosedienst wird auf dem Host ausgeführt, um alle relevanten Protokolle/Sicherungen systematisch zu sammeln. So stellen wir sicher, dass wir den Grund für den Ausfall in Phase 1 präzise diagnostizieren können. Diese umfassende Analyse ermöglicht es uns, das Problem an der Wurzel zu packen und ein erneutes Auftreten in Zukunft zu vermeiden.

Phase 3:

Auf einer höheren Ebene haben wir das Betriebssystem in einen stabilen Zustand mit minimalen Auswirkungen auf den Kunden zurückgesetzt, um das Hostproblem zu entschärfen. Während dieser Phase halten wir Zustandsdaten jeder VM im RAM vor. Anschließend beginnen wir damit, das Betriebssystem in einen stabilen Zustand zurückzusetzen. Während das darunter liegende Betriebssystem schnell zurückgesetzt wird, werden alle laufenden Anwendungen auf sämtlichen VMs, die auf dem Server gehostet werden, kurz „eingefroren“. Währenddessen wird die CPU vorübergehend angehalten. Dies ist vergleichbar mit einer Netzwerkverbindung, die vorübergehend unterbrochen, aber aufgrund der Wiederholungslogik schnell wiederhergestellt wird. Nachdem das Betriebssystem erfolgreich zurückgesetzt wurde, nutzen die VMs ihren gespeicherten Status und setzen die normale Aktivität fort, sodass potenzielle VM-Neustarts umgangen werden.

Durch die oben genannten Prinzipien stellen wir sicher, dass der Ausfall einer einzelnen Komponente im Host keine Auswirkungen auf das gesamte System hat. Dadurch sind die Kunden-VMs weniger anfällig für plötzliche Hostausfälle. Auf diese Weise können wir uns auch von einigen der extremsten Formen kritischer Ausfälle (wie Kernel-Level-Fehler und Firmware-Probleme) schnell erholen. Gleichzeitig bleibt der Zustand des virtuellen Computers stabil.

Blick in die Zukunft

Momentan verwenden wir den bereits erwähnten Tardigrade-Wiederherstellungsworkflow, um potenzielle Ausfälle des Softwarehosts in der Azure-Flotte aufzuspüren und schnell zu beheben. Parallel dazu bauen wir unser technisches Know-how kontinuierlich aus, um verschiedene Host-Ausfallszenarien abzudecken, die wir mit unserer Resilienzinitiative bekämpfen können.

Außerdem wollen wir die neuesten Innovationen im Bereich des maschinellen Lernens erforschen, um die proaktiven Fähigkeiten des Projekts Tardigrade zu nutzen. So planen wir zum Beispiel den Einsatz von maschinellem Lernen, um weitere Arten von Hostausfällen so früh wie möglich vorherzusagen. Beispiel: Wir erkennen anormale Ressourcennutzungsmuster des Hosts, die sich möglicherweise auf seine Workloads auswirken könnten. Wir nutzen das maschinelle Lernen auch, um geeignete Reparaturmaßnahmen (wie etwa Tardigrade-Wiederherstellungsschritte und eine potenzielle Livemigration) zu empfehlen und dadurch unsere flottenweiten Wiederherstellungsoptionen zu optimieren.

Da Kunden immer mehr geschäftskritische Workloads auf die Microsoft Azure Cloud-Plattform verlagern, lernen wir ständig hinzu. So können wir die Erwartungen unserer Kunden in Bezug auf die Minimierung von Unterbrechungen durch ungeplante Ausfälle noch besser erfüllen. Verlässlichkeit ist und bleibt neben Compliance, Sicherheit, Datenschutz und Transparenz ein wesentlicher Grundsatz unserer Verpflichtungen rund um die vertrauenswürdige Cloud. Für alle diese Bereiche gilt, dass das Vertrauen der Kunden verdient und erhalten werden muss. Das heißt: Man muss das Richtige sagen und tun. Die mit dem Projekt Tardigrade umgesetzte Plattformresilienz stärkt die VM-Verfügbarkeit bereits dadurch, dass die VMs der Kunden durch die zugrunde liegenden Hostprobleme nicht beeinträchtigt werden.

Wir werden unsere Leser weiterhin über Verbesserungen an diesem Projekt und anderen ähnlichen Projekten auf dem Laufenden halten. So können wir mit der größtmöglichen Transparenz vermitteln, wie wir die Zuverlässigkeit der Plattform laufend verbessern, um unsere Kunden zu unterstützen.