Aktive Wiederherstellung: Kann die Notfallwiederherstellung schneller erfolgen? Viel schneller?

Die Sicherung wichtiger Daten ist essenziell. Aber was, wenn die Arbeit sofort fortgesetzt werden muss und jede Minute zÀhlt? Bei Acronis haben wir uns gefragt, wie wir das Problem der maximal schnellen Systembereitstellung angehen können. Dies ist der erste Beitrag unserer Reihe zur Aktiven Wiederherstellung, in dem ich erlÀutere, wie wir gemeinsam mit der Innopolis-UniversitÀt an diesem Projekt gearbeitet haben, welche Lösung wir gefunden haben und woran wir aktuell arbeiten. Weitere Informationen finden Sie im Folgenden.

Aktive Wiederherstellung: Kann die Notfallwiederherstellung schneller erfolgen? Viel schneller?

Hallo! Mein Name ist Daulet Tumbaev, und heute möchte ich Ihnen von meinen Erfahrungen bei der Entwicklung eines Systems berichten, das die Notfallwiederherstellung beschleunigt. Um den gesamten Entwicklungspfad des Projekts zu erlĂ€utern, fangen wir ein wenig weiter hinten an. Momentan arbeite ich bei Acronis, bin aber auch Absolvent der UniversitĂ€t Innopolis, die ich im Rahmen eines Masterstudiengangs in "Softwareentwicklungsmanagement" (bekannt als MSIT-SE) abgeschlossen habe. Innopolis ist eine junge UniversitĂ€t, und das Curriculum ist noch jĂŒnger. Dennoch basiert es auf den LehrplĂ€nen der Carnegie Mellon University, die ein Thema wie industrielle Projekte abdecken.

Das Ziel des Industrieprojekts ist es, die Studierenden in die reale Entwicklung einzufĂŒhren und das erworbene Wissen praktisch anzuwenden. Zu diesem Zweck kooperiert die UniversitĂ€t mit Unternehmen wie Yandex, Acronis, MTC und vielen anderen (insgesamt gab es im Jahr 2018 144 Partner). Im Rahmen dieser Zusammenarbeit bieten die Unternehmen der UniversitĂ€t ihre Arbeitsgebiete an, wĂ€hrend die Studierenden ein Projekt auswĂ€hlen, das ihren Interessen und ihrem Kenntnisstand am nĂ€chsten kommt. Noch vor zwei Jahren war ich „auf der anderen Seite der Barrikade“ und arbeitete als Student an einem anderen Projekt von Acronis. Diesmal jedoch fungierte ich als technischer Berater fĂŒr die Studierenden seitens des Unternehmens und schlug der Innopolis-UniversitĂ€t das Projekt Active Restore vor. Die Idee von Active Restore wurde vom Kernel-Team bei Acronis formuliert, die Lösung wurde jedoch in Zusammenarbeit mit der UniversitĂ€t Innopolis entwickelt.

Active Restore – wozu ist das notwendig?

Traditionell funktioniert die Notfallwiederherstellung nach einem festgelegten Schema. Nach einem Computerproblem melden Sie sich ĂŒber die Web-OberflĂ€che eines Backup-Systems wie Acronis True Image an und klicken auf die große SchaltflĂ€che „Wiederherstellen“. Danach mĂŒssen Sie N Minuten warten, bevor Sie Ihre Arbeit fortsetzen können.

Aktive Wiederherstellung: Kann die Notfallwiederherstellung schneller erfolgen? Viel schneller?

Das Problem ist, dass diese Zahl N, auch bekannt als RTO (Recovery Time Objective), die zulĂ€ssige Wiederherstellungszeit, erheblich sein kann und von der Geschwindigkeit der Verbindung (wenn die Wiederherstellung aus der Cloud erfolgt), der GrĂ¶ĂŸe der Festplatte Ihres GerĂ€ts und mehreren anderen Faktoren abhĂ€ngt. Kann man sie verringern? Ja, das ist möglich, denn um die Arbeit wieder aufzunehmen, ist nicht immer die gesamte Festplatte des Computers erforderlich. Fotos und Videos haben keinen Einfluss auf die FunktionalitĂ€t des GerĂ€ts und können spĂ€ter im Hintergrund wiederhergestellt werden.

Driver needed


Das Betriebssystem ist darauf ausgelegt, mit einer vollstĂ€ndig vorbereiteten Festplatte zu starten. Daher fĂŒhrt Windows eine Reihe von IntegritĂ€tsprĂŒfungen der Festplatte durch. Das System erlaubt keinen ordnungsgemĂ€ĂŸen Start, wenn bestimmte Dateien fehlen oder beschĂ€digt sind, die das OS erwartet zu finden. Um dieses Problem zu lösen, haben wir uns entschieden, sogenannte Umleitungsdateien auf der Festplatte zu platzieren, die fehlende oder beschĂ€digte Dateien ersetzen, jedoch in der RealitĂ€t leer sind. Solche Umleitungen zu erstellen, ist schnell erledigt, da sie tatsĂ€chlich keinen Inhalt haben.

Das Wiederherstellungsverfahren erfolgt wie folgt: WĂ€hrend das Betriebssystem lĂ€uft, werden die 'LĂŒcken' im Hintergrund mit Daten gefĂŒllt. Der Hintergrund-Wiederherstellungsprozess berĂŒcksichtigt die Belastung der Festplatte und ĂŒberschreitet nicht das festgelegte Limit. Allerdings kann es sein, dass der Benutzer oder das Betriebssystem plötzlich eine Datei anfordert, die noch nicht vorhanden ist. In diesem Fall kommt der zweite Wiederherstellungsmodus ins Spiel. Die PrioritĂ€t der angeforderten Datei wird auf maximal gesetzt, und der Wiederherstellungsprozess lĂ€dt die Datei dringend auf die Festplatte. Das Betriebssystem erhĂ€lt die benötigte Datei, jedoch mit einer kleinen Verzögerung.

So sieht das ideale Szenario aus. In der realen Welt gibt es jedoch zahlreiche Fallstricke und potenzielle Deadlocks. Zusammen mit den Master-Studenten von Innopolis haben wir beschlossen, dieses Wiederherstellungsszenario zu untersuchen, den Gewinn in der RTO zu bewerten und zu verstehen, ob ein solcher Ansatz umsetzbar ist. Solche Lösungen waren zu diesem Zeitpunkt auf dem Markt schlichtweg nicht vorhanden.

WĂ€hrend ich den Service-Aspekt den Kollegen aus Innopolis ĂŒberlassen habe, wurde intern bei Acronis an einem Mini-Filter-Treiber fĂŒr das Dateisystem gearbeitet.. Das ĂŒbernahm das Team des Windows Kernels. Der Plan war folgender:

  • Den Treiber in einer frĂŒhen Phase des Systemstarts zu laden,
  • wĂ€hrend der Betrieb lĂ€uft, wenn der Benutzerbereich vollstĂ€ndig bereit ist, den Dienst zu laden.
  • Der Dienst verarbeitet die Anfragen des Treibers und koordiniert dessen weitere Arbeit.

Aktive Wiederherstellung: Kann die Notfallwiederherstellung schneller erfolgen? Viel schneller?

Details zur Treiberentwicklung

WĂ€hrend meine Kollegen in einem anderen Post ĂŒber den Dienst berichten, werden wir in diesem Text die Feinheiten der Treiberentwicklung erlĂ€utern. Der bereits entwickelte Mini-Filter-Treiber hat zwei Betriebsmodi – wenn das System im Normalbetrieb gestartet wurde und wenn das System gerade einen Fehler erlebt hat und sich im Wiederherstellungsprozess befindet. Vor dem Laden der Benutzerbibliotheken und Anwendungen, und folglich auch unseres Dienstes, verhĂ€lt sich der Treiber gleich. Er weiß nicht, in welchem Zustand sich das System gerade befindet. Infolge dessen werden jeder create, read und write protokolliert, und alle Metadaten werden erfasst. Und wenn der Dienst online ist, stellt der Treiber diese Informationen dem Dienst zur VerfĂŒgung.

Aktive Wiederherstellung: Kann die Notfallwiederherstellung schneller erfolgen? Viel schneller?
Bei einem regulĂ€ren Start sendet der Dienst ein Signal "Relax" an den Treiber, damit dieser "entspannt" und aufhört, alle Daten penibel zu protokollieren. In diesem Fall wechselt der Treiber zu einer Protokollierung, die nur die Änderungen auf der Festplatte erfasst, und informiert den Dienst, der mithilfe anderer Acronis-Tools das Backup der Festplatte in einem möglichst aktuellen Zustand auf dem vom Benutzer festgelegten Medium hĂ€lt. Dies kann ein cloudbasiertes, entferntes, inkrementelles oder nĂ€chtliches Backup sein.

Aktive Wiederherstellung: Kann die Notfallwiederherstellung schneller erfolgen? Viel schneller?
Wenn der Wiederherstellungsmodus aktiviert wird, informiert der Dienst den Treiber, dass er im Modus "Recovery" arbeiten muss. Das System hat sich gerade von einem Absturz erholt, und sobald es eine Anfrage zum Öffnen einer Datei auf der Festplatte stellt, muss der Mini-Filter diese Operation abfangen, die Anfrage selbst stellen, ĂŒberprĂŒfen, ob eine solche Datei auf der Festplatte vorhanden ist und ob sie geöffnet werden kann.

Wenn die Datei fehlt, ĂŒbertrĂ€gt der Minifilter diese Information an den Dienst, der die Wiederherstellung der Datei priorisiert (wĂ€hrenddessen erfolgt im Hintergrund die Wiederherstellung). Das bedeutet, dass diese Datei einfach an den Anfang der Warteschlange springt. Danach stellt der Dienst selbst (oder andere Acronis-Mittel) diese Datei wieder her und informiert den Treiber, dass alles in Ordnung ist. Nun kann das Betriebssystem darauf zugreifen und der Treiber "gibt" die ursprĂŒngliche Anfrage vom System an die Festplatte frei.

Wenn die Wiederherstellung nicht möglich ist, informiert der Dienst den Treiber, dass die Datei auch im Backup nicht vorhanden ist. unser Minifilter-Treiber leitet die systemtechnische Anfrage einfach weiter, und die ursprĂŒngliche anfragende EntitĂ€t (das Betriebssystem oder die Anwendung) erhĂ€lt den Fehler "Datei nicht gefunden". Das ist durchaus normal, wenn die Datei tatsĂ€chlich nicht auf der Festplatte und im Backup vorhanden war.

Aktive Wiederherstellung: Kann die Notfallwiederherstellung schneller erfolgen? Viel schneller?

NatĂŒrlich wird das Betriebssystem deutlich langsamer arbeiten, da das Lesen einer Datei oder Bibliothek mehrere Schritte erfordert, möglicherweise mit Zugriff auf remote Ressourcen. Dennoch kann der Benutzer so schnell wie möglich mit der Arbeit beginnen, wĂ€hrend die Wiederherstellung weiterhin im Gange ist.

Noch weiter nach unten, noch weiter nach unten...

Der Prototyp hat seine FunktionsfĂ€higkeit bewiesen. Allerdings haben wir auch die Notwendigkeit erkannt, weiterzugehen, da in einigen FĂ€llen weiterhin Deadlocks auftreten. Zum Beispiel kann das Betriebssystem mehrere Bibliotheken in mehreren Threads anfordern, was dazu fĂŒhrt, dass unser Service sich selbst blockiert.

Das Problem, an dem ich gerade arbeite, ist die Verbesserung der Geschwindigkeit von Active Restore und die Erhöhung der Sicherheit des Systems. Angenommen, das System benötigt nicht die gesamte Datei, sondern nur einen Teil davon. Zu diesem Zweck wurde ein weiterer Treiber entwickelt – ein Filter-Treiber fĂŒr Laufwerke. Dieser arbeitet nicht auf Dateiebene, sondern auf Blockebene. Der Arbeitsprinzip ist Ă€hnlich: Im normalen Betriebsmodus protokolliert der Treiber einfach die geĂ€nderten Blöcke auf dem Laufwerk, und im Wiederherstellungsmodus versucht er, den Block selbst zu lesen; im Falle eines Fehlschlags fordert er eine PrioritĂ€tserhöhung vom Dienst an. Dabei bleiben alle anderen Teile des Systems unverĂ€ndert. Beispielsweise ahnt der Dienst auf Betriebssystemebene nicht einmal, dass er mit einem anderen Treiber kommunizieren soll, denn die Hauptaufgabe besteht darin, dem Betriebssystem genau die Daten bereitzustellen, die fĂŒr den Betrieb erforderlich sind. Diese Richtung erfordert erhebliche Nachbesserungen, zumal der Dienst noch nicht auf Blockebene denken kann.

Als nĂ€chsten Schritt entschied ich mich, den Treiber tiefer und frĂŒher zu starten, indem ich auf die Ebene der UEFI-Treiber und nativen Windows-Anwendungen anstelle des Dienstes wechselte. Zu diesem Zweck wurde entwickelt UEFI-Boot-Treiber (oder DXE-Treiber), der startet und stirbt, bevor das Betriebssystem ĂŒberhaupt hochfĂ€hrt. Doch die „Geschichte“ der UEFI-Treiber, Details zur Erstellung und Installation sowie spezifische Informationen zu Windows Native-Anwendungen werden wir im nĂ€chsten Beitrag behandeln. Also abonnieren Sie unseren Blog, wĂ€hrend ich die nĂ€chsten Schritte vorbereite. Ich freue mich auf Ihre Kommentare und RatschlĂ€ge.

Nur registrierte Benutzer können an der Umfrage teilnehmen. Bitte melden Sie sich an.Sind Sie an Contour interessiert?

Hatten Sie schon einmal Situationen, in denen die Wiederherstellung quÀlend lange dauerte:

  • 65.1%Ja28

  • 23.2%Nein10

  • 11.6%Habe nicht darĂŒber nachgedacht5

43 Benutzer haben abgestimmt. 3 Benutzer haben sich enthalten.

Quelle: habr.com

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster