Active Restore: Voiko katastrofipalautus tapahtua nopeammin? Paljon nopeampi?

Tärkeiden tietojen varmuuskopiointi on hyvä asia. Mutta entä jos työtä on jatkettava heti ja joka minuutti on tärkeä? Me Acronisilla päätimme tarkistaa, kuinka mahdollista on ratkaista järjestelmän käynnistämisongelma mahdollisimman nopeasti. Ja tämä on Active Restore -sarjan ensimmäinen postaus, jossa kerron, miten aloitimme projektin yhdessä Innopolis-yliopiston kanssa, minkä ratkaisun löysimme ja mitä työstetään tänään. Yksityiskohdat ovat leikkauksen alla.

Active Restore: Voiko katastrofipalautus tapahtua nopeammin? Paljon nopeampi?

Hei! Nimeni on Daulet Tumbayev, ja tänään haluan jakaa kanssanne kokemukseni katastrofista palautumista nopeuttavan järjestelmän kehittämisestä. Puhuaksemme koko projektin kehityspolusta, aloitetaan vähän kaukaa. Työskentelen tällä hetkellä Acronisissa, mutta olen myös valmistunut Innopoliksen yliopistosta, jossa suoritin ohjelmistokehityksen hallinnan maisteriohjelman (tunnetaan nimellä MSIT-SE). Innopolis on nuori yliopisto, ja opetussuunnitelma on vielä nuorempi. Mutta se on rakennettu Carnegie Mellon Universityn opetussuunnitelmaan, jonka työhön sisältyy sellainen aihe kuin teollisuusprojektit.

Teollisen projektin tarkoituksena on upottaa opiskelija todelliseen kehitykseen ja vakiinnuttaa hankittua tietoa käytännössä. Tätä varten yliopisto tekee yhteistyötä yritysten, kuten Yandex, Acronis, MTC ja kymmenien muiden kanssa (yhteensä vuonna 2018 yliopistolla oli 144 yhteistyökumppania). Yhteistyön aikana yritykset tarjoavat työalueitaan yliopistolle, ja opiskelijat valitsevat hankkeista yhden, joka on lähempänä heidän kiinnostuksen kohteitaan ja koulutustasoaan. Kirjaimellisesti kaksi vuotta sitten olin vielä "barrikadien toisella puolella" ja työskentelin opiskelijana toisessa Acronis-projektissa. Mutta tällä kertaa minusta tuli yrityksen puolella opiskelijoiden tekninen konsultti ja ehdotin Innopolikselle Active Restore -projektia. Itse Active Restoren idean muotoili Acroniksen Kernel-tiimi, mutta ratkaisun kehittäminen aloitettiin yhdessä Innopolis-yliopiston kanssa.

Active Restore – miksi sitä tarvitaan?

Perinteisesti katastrofipalautus toimii vakiojärjestelmän mukaisesti. Tietokoneen ongelmien jälkeen siirryt jonkin varmuuskopiointijärjestelmän, esimerkiksi Acronis True Imagen, verkkokäyttöliittymään ja napsautat suurta "palauta"-painiketta. Seuraavaksi sinun on odotettava N minuuttia, ja vasta sen jälkeen voit jatkaa työtä.

Active Restore: Voiko katastrofipalautus tapahtua nopeammin? Paljon nopeampi?

Ongelmana on, että tämä luku N, joka tunnetaan myös nimellä RTO (recovery time tavoite), sallittu palautumisaika, voi olla varsin vaikuttava, mikä riippuu yhteyden nopeudesta (jos palautus tapahtuu pilvestä), koneesi kiintolevyn koosta. ja monet muut tekijät. Onko mahdollista vähentää? Kyllä, voit, koska et aina tarvitse täyttä tietokoneen levyä palataksesi työhön. Samat kuvat ja videot eivät vaikuta laitteen toimintaan millään tavalla ja ne voidaan vetää esiin myöhemmin taustalla.

Kuljettaja tarvitaan...

Käyttöjärjestelmä odottaa käynnistyvän, kun levy on täysin valmis. Siksi Windows suorittaa sarjan tarkistuksia tarkistaakseen levyn eheyden. Järjestelmä ei salli normaalia käynnistystä, jos jotkin tiedostot, jotka käyttöjärjestelmä odottaa löytävänsä, puuttuvat tai ovat vaurioituneet. Tämän ongelman ratkaisemiseksi päätettiin sijoittaa levylle luomamme ns. uudelleenohjaustiedostot, jotka korvaavat puuttuvat tai vaurioituneet tiedostot, mutta ovat itse asiassa nukkeja. Tällaisten uudelleenohjaajien luominen ei vie kauan, koska niillä ei itse asiassa ole mitään sisältöä.

Lisäkunnostus tapahtuu seuraavasti. Taustaprosessilla, rinnakkain käyttöjärjestelmän toiminnan kanssa, "nukkeja" täytetään tiedoilla. Taustapalautusprosessi ottaa huomioon levyn kuormituksen eikä ylitä asetettua rajaa. Käyttäjä tai käyttöjärjestelmä voi kuitenkin yhtäkkiä vaatia tiedoston, jota ei vielä ole olemassa. Tässä tulee käyttöön toinen palautustila. Pyydetyn tiedoston prioriteetti nostetaan maksimissaan, ja palautusprosessi lataa tiedoston kiireesti levylle. Käyttöjärjestelmä vastaanottaa vaaditun tiedoston, vaikkakin pienellä viiveellä.

Tältä näyttää ihanteellinen kuva. Todellisessa maailmassa on kuitenkin valtava määrä sudenkuoppia ja mahdollisia umpikujia. Yhdessä Innopoliksen maisteriopiskelijoiden kanssa päätimme tutkia tätä toipumisskenaariota, arvioida RTO:n hyötyjä ja ymmärtää, onko tällainen lähestymistapa toteutettavissa? Loppujen lopuksi tällaisia ​​ratkaisuja ei yksinkertaisesti ollut markkinoilla tuolloin.

Ja jos päätin viljellä palvelukomponentin Innopoliksen kavereille, niin Acroniksen sisällä alkoi työ minisuodatin tiedostojärjestelmän ohjaimen mukaan. Tämän teki Windows Kernel -tiimi. Suunnitelma oli tällainen:

  • Käynnistä ohjain käyttöjärjestelmän käynnistyksen varhaisessa vaiheessa,
  • Työn aikana, milloin käyttäjätilaa on täysin valmis, lataa palvelu
  • Palvelu käsittelee kuljettajan pyynnöt ja koordinoi jatkotyötään.

Active Restore: Voiko katastrofipalautus tapahtua nopeammin? Paljon nopeampi?

Kuljettajan suunnittelun hienouksia

Jos kollegani puhuvat palvelusta toisessa postauksessa, niin tässä tekstissä paljastamme kuljettajien kehityksen hienoudet. Jo kehitetyllä minisuodatinohjaimella on kaksi toimintatilaa - kun järjestelmä käynnistyy normaalitilassa ja kun järjestelmä on juuri kokenut vian ja sitä palautetaan. Ennen kuin lataat käyttäjäkirjastoja ja sovelluksia, ja siten palveluamme, kuljettaja käyttäytyy samoin. Hän ei tiedä, missä tilassa järjestelmä tällä hetkellä on. Tämän seurauksena jokainen luonti, luku ja kirjoitus kirjataan ja kaikki metatiedot tallennetaan. Ja kun palvelu on online-tilassa, kuljettaja antaa nämä tiedot palvelulle.

Active Restore: Voiko katastrofipalautus tapahtua nopeammin? Paljon nopeampi?
Normaalin käynnistyksen yhteydessä palvelu lähettää "Relax"-signaalin kuljettajalle, jotta se "rentoutuu" ja lopettaa kaikkien tietojen tarkan kirjaamisen. Tällöin ajuri siirtyy kirjaamaan vain levylle tehdyt muutokset ja raportoi ne palvelulle, joka muiden Acronis-työkalujen avulla ylläpitää levyn varmuuskopion ajantasaisimmassa tilassa käyttäjän määrittelemällä medialla. Tämä voi olla pilvi-, etä-, asteittainen tai öinen varmuuskopiointi.

Active Restore: Voiko katastrofipalautus tapahtua nopeammin? Paljon nopeampi?
Jos palautustila on käytössä, palvelu kertoo kuljettajalle, että sen on toimittava "Recovery"-tilassa. Järjestelmä on juuri palautunut kaatumisesta, ja heti kun se pyytää avaamaan levyllä olevan tiedoston, minisuodattimen on keskeytettävä tämä toiminto, tehtävä tämä pyyntö itse, tarkistettava, onko levyllä tällaista tiedostoa ja onko se voidaan avata.

Jos tiedosto puuttuu, minisuodatin lähettää nämä tiedot palveluun, mikä lisää tiedostojen palautuksen prioriteettia (koko tämän ajan palautus tapahtuu taustalla). Osoittautuu, että tämä tiedosto yksinkertaisesti hyppää jonon alkuun. Tämän jälkeen palvelu itse (tai muu Acronis-väline) palauttaa tämän tiedoston ja kertoo ajurille, että kaikki on ok, nyt käyttöjärjestelmä pääsee käsiksi siihen ja ajuri "vapauttaa" alkuperäisen pyynnön, järjestelmästä levylle.

Jos palautus ei ole mahdollista, palvelu ilmoittaa kuljettajalle, ettei tiedostoa ole varmuuskopiossa. Minisuodatinohjaimemme yksinkertaisesti välittää järjestelmäpyynnön eteenpäin ja alkuperäinen pyytäjä (itse käyttöjärjestelmä tai sovellus) saa "tiedostoa ei löydy" -virheilmoituksen. Tämä on kuitenkin aivan normaalia, jos tiedostoa ei todellakaan ollut levyllä ja varmuuskopiossa.

Active Restore: Voiko katastrofipalautus tapahtua nopeammin? Paljon nopeampi?

Tietenkin käyttöjärjestelmä toimii paljon hitaammin, koska minkä tahansa tiedoston tai kirjaston lukeminen tapahtuu useissa vaiheissa, mahdollisesti etäresurssien kanssa. Mutta käyttäjä voi palata töihin mahdollisimman pian, kun palautuminen on vielä käynnissä.

Tarvitaan alempana, vielä alempana...

Prototyyppi on osoittanut toimivuutensa. Mutta löysimme myös tarpeen siirtyä eteenpäin, koska joissakin tapauksissa on edelleen umpikuja. Esimerkiksi käyttöjärjestelmä voi pyytää erilaisia ​​kirjastoja useissa säikeissä, mikä johtaa siihen, että palvelumme palaa itsestään.

Ongelma, jonka parissa työskentelen tällä hetkellä, on Active Restoren nopeuden lisääminen ja järjestelmän suojaustason nostaminen. Oletetaan, että järjestelmä ei tarvitse koko tiedostoa, vaan vain osan siitä. Tätä tarkoitusta varten kehitettiin toinen ohjain - levysuodatinohjain. Se ei enää toimi tiedostotasolla, vaan lohkotasolla. Toimintaperiaate on samanlainen: normaalissa toimintatilassa ajuri yksinkertaisesti kirjaa muuttuneet lohkot levylle, ja palautustilassa se yrittää lukea lohkon itse, ja jos epäonnistuu, pyytää palvelua lisäämään prioriteettia. Kaikki muut järjestelmän osat pysyvät kuitenkin samoina. Esimerkiksi käyttöjärjestelmätason palvelu ei edes epäile, että sitä pyydetään kommunikoimaan toisen ajurin kanssa, koska päätehtävänä on toimittaa käyttöjärjestelmälle juuri ne tiedot, jotka ovat tarpeen toiminnan kannalta. Tämä alue vaatii merkittäviä parannuksia jo pelkästään siksi, että palvelu ei vielä osaa ajatella lohkotasolla.

Seuraavana askeleena päätin käynnistää ohjaimen syvemmällä ja aikaisemmin laskeutuen UEFI-ajureiden ja natiivi Windows -sovellusten tasolle palvelun sijaan. Tätä tarkoitusta varten se kehitettiin UEFI käynnistysohjain (tai DXE-ohjain), joka käynnistyy ja sammuu jo ennen kuin käyttöjärjestelmä käynnistyy. Mutta tarkastelemme seuraavassa viestissä UEFI-ajurien "historiaa", kokoonpanon ja asennuksen yksityiskohtia sekä Windows Native -sovellusten yksityiskohtia. Tilaa siis blogimme, niin valmistelen sillä välin tarinaa työn seuraavasta vaiheesta. Mielelläni näen kommenttejasi ja neuvojasi.

Vain rekisteröityneet käyttäjät voivat osallistua kyselyyn. Kirjaudu sisään, ole kiltti.

Onko sinulla koskaan ollut tilanteita, joissa toipuminen kesti tuskallisen kauan:

  • 65.1%Kyllä 28

  • 23.2%Nro 10

  • 11.6%En ajatellut sitä 5

43 käyttäjää äänesti. 3 käyttäjää pidättyi äänestämästä.

Lähde: will.com

Lisää kommentti