Aktívne obnovenie: Môže sa zotavenie po havárii uskutočniť rýchlejšie? Oveľa rýchlejšie?

Zálohovanie dôležitých údajov je skvelé. Čo ak však potrebujete okamžite obnoviť prácu a každá minúta sa počíta? V spoločnosti Acronis sme sa rozhodli otestovať uskutočniteľnosť maximalizácie času spustenia systému. Toto je prvý príspevok zo série Active Restore, v ktorom vysvetlím, ako sme začali projekt s Innopolis University, aké riešenie sme našli a na čom dnes pracujeme. Čítajte ďalej a dozviete sa viac podrobností.

Aktívne obnovenie: Môže sa zotavenie po havárii uskutočniť rýchlejšie? Oveľa rýchlejšie?

Dobrý deň! Volám sa Daulet Tumbayev a dnes by som sa s vami rád podelil o svoje skúsenosti s vývojom systému, ktorý urýchľuje obnovu po havárii. Aby sme opísali vývoj projektu, začnime trochu neskôr. Momentálne pracujem v spoločnosti Acronis, ale som aj absolventom Innopolis University, kde som ukončil magisterský program v odbore softvérové ​​inžinierstvo (MSIT-SE). Innopolis je mladá univerzita a jej učebné osnovy sú ešte mladšie. Je však založená na učebných osnovách Carnegie Mellon University, ktorej práca zahŕňa aj tému priemyselných projektov.

Cieľom priemyselného projektu je ponoriť študentov do vývoja v reálnom svete a upevniť si nadobudnuté vedomosti v praxi. Na dosiahnutie tohto cieľa univerzita spolupracuje so spoločnosťami ako Yandex, Acronis, MTC a desiatkami ďalších (v roku 2018 mala univerzita celkovo 144 partnerov). Počas spolupráce spoločnosti navrhujú univerzite svoje oblasti práce a študenti si vyberajú jeden z projektov, ktorý najlepšie vyhovuje ich záujmom a zázemiu. Len pred dvoma rokmi som bol stále „na druhej strane plota“ a pracoval som ako študent na inom projekte Acronis. Tentoraz som sa však stal technickým konzultantom pre študentov na strane spoločnosti a navrhol som projekt Active Restore Univerzite Innopolis. Nápad na Active Restore pôvodne sformuloval tím jadra v Acronis, ale vývoj riešenia sa začal už na Univerzite Innopolis.

Aktívna obnova – prečo je potrebná?

Tradične funguje obnova po havárii podľa štandardného postupu. Po probléme s počítačom sa prihlásite do webového rozhrania zálohovacieho systému, ako je napríklad Acronis True Image, a kliknete na veľké tlačidlo „Obnoviť“. Potom musíte počkať N minút, kým budete môcť pokračovať v práci.

Aktívne obnovenie: Môže sa zotavenie po havárii uskutočniť rýchlejšie? Oveľa rýchlejšie?

Problém je v tom, že toto číslo, známe aj ako RTO (cieľový čas obnovy), môže byť dosť významné v závislosti od rýchlosti pripojenia (ak sa obnovuje z cloudu), kapacity pevného disku a mnohých ďalších faktorov. Dá sa znížiť? Áno, dá sa, pretože na obnovenie prevádzky nie je vždy potrebný plný disk počítača. Fotografie a videá napríklad nijako neovplyvňujú funkčnosť zariadenia a je možné ich neskôr načítať na pozadí.

Hľadá sa vodič…

Операционная система рассчитывает запускаться с полностью готовым диском. Поэтому Windows проводит ряд проверок на целостность диска. Система не позволит произвести нормальный запуск при отсутствии или повреждении некоторых файлов, которые ОС ожидает найти. Для решений этой проблемы было решено подложить на диск созданные нами, так называемые, файлы-редиректоры, которые заменяют отсутствующие или поврежденные файлы, но по факту являются пустышками. Создать такие редиректоры совсем недолго, ведь они по факту не имеют никакого содержимого.

Proces obnovy potom prebieha nasledovne. Proces na pozadí, paralelne s operačným systémom, zapĺňa „prázdne“ disky dátami. Proces obnovy na pozadí zohľadňuje zaťaženie disku a neprekračuje nastavený limit. Používateľ alebo samotný operačný systém však môžu náhle požiadať o súbor, ktorý ešte neexistuje. Tu prichádza do úvahy druhý režim obnovy. Priorita požadovaného súboru sa zvýši na maximum a proces obnovy súbor urgentne stiahne na disk. Operačný systém dostane požadovaný súbor, aj keď s miernym oneskorením.

Toto je ideálny scenár. V reálnom svete však existuje nespočetné množstvo nástrah a potenciálnych patových situácií. Spolu s postgraduálnymi študentmi z Innopolisu sme sa rozhodli preskúmať tento scenár obnovy, odhadnúť prínos RTO a určiť, či je tento prístup uskutočniteľný. Koniec koncov, podobné riešenia v tom čase na trhu jednoducho neexistovali.

A ak som sa rozhodol odovzdať servisnú zložku chalanom z Innopolisu, potom sa začali práce vo vnútri Acronisu na... ovládač súborového systému mini-filtra. Этим занялась команда Windows Kernel. План был такой:

  • Spustite ovládač v počiatočnej fáze spúšťania operačného systému,
  • Počas práce, keď používateľský priestor bude úplne pripravený, stiahnite si službu
  • Služba spracováva požiadavky vodiča a koordinuje svoju ďalšiu prácu.

Aktívne obnovenie: Môže sa zotavenie po havárii uskutočniť rýchlejšie? Oveľa rýchlejšie?

Jemnosti dizajnu vodiča

Zatiaľ čo moji kolegovia budú o službe diskutovať v inom príspevku, v tomto texte sa budeme venovať zložitostiam vývoja ovládačov. Minifilter ovládača má dva prevádzkové režimy: keď sa systém normálne spustil a keď systém práve zaznamenal poruchu a zotavuje sa. Pred načítaním používateľských knižníc a aplikácií, a teda aj našej služby, sa ovládač správa rovnako. Nevie, v akom stave sa systém momentálne nachádza. V dôsledku toho sa každá operácia vytvorenia, čítania a zápisu zaznamenáva a zaznamenávajú sa všetky metadáta. Keď je služba online, ovládač poskytne tieto informácie službe.

Aktívne obnovenie: Môže sa zotavenie po havárii uskutočniť rýchlejšie? Oveľa rýchlejšie?
Počas normálneho spustenia služba odošle ovládaču signál „Uvoľniť sa“, ktorý ho vyzve, aby sa uvoľnil a prestal starostlivo zaznamenávať všetky údaje. V tomto prípade ovládač prepne na zaznamenávanie iba zmien na disku a hlási ich službe, ktorá pomocou iných nástrojov Acronis udržiava zálohu disku v najaktuálnejšom stave na používateľom definovanom úložnom médiu. Môže ísť o cloudovú, vzdialenú, inkrementálnu alebo nočnú zálohu.

Aktívne obnovenie: Môže sa zotavenie po havárii uskutočniť rýchlejšie? Oveľa rýchlejšie?
Ak je povolený režim obnovy, služba informuje ovládač, že musí pracovať v režime „Obnova“. Systém sa práve zotavil z havárie a hneď ako požiada o otvorenie súboru na disku, minifilter by mal túto operáciu zachytiť, sám vykonať požiadavku, skontrolovať, či súbor na disku existuje a či ho možno otvoriť.

Ak súbor chýba, minifilter odovzdá túto informáciu službe, čo zvýši prioritu obnovy súboru (zatiaľ čo obnova prebieha na pozadí). To znamená, že súbor jednoducho preskočí na začiatok frontu. Služba potom súbor sama obnoví (alebo pomocou iných nástrojov Acronis) a upozorní ovládač, že všetko je v poriadku. Operačný systém k nemu teraz môže pristupovať a ovládač „uvoľní“ pôvodnú požiadavku zo systému na disk.

Ak obnova nie je možná, služba informuje ovládač, že súbor sa v zálohe nenachádza. Náš ovládač mini filtra jednoducho odovzdá systémovú požiadavku ďalej a pôvodný žiadateľ (samotný operačný systém alebo aplikácia) dostane chybu „súbor sa nenašiel“. Je to však úplne normálne, ak sa súbor naozaj nenachádzal na disku alebo v zálohe.

Aktívne obnovenie: Môže sa zotavenie po havárii uskutočniť rýchlejšie? Oveľa rýchlejšie?

Operačný systém bude samozrejme bežať oveľa pomalšie, pretože čítanie akéhokoľvek súboru alebo knižnice vyžaduje niekoľko krokov, vrátane prístupu k vzdialeným zdrojom. Používateľ však môže čo najrýchlejšie pokračovať v práci, kým stále prebieha obnova.

Musíme ísť nižšie, ešte nižšie…

Prototyp preukázal svoju funkčnosť. Zistili sme však aj potrebu posunúť sa vpred, pretože v niektorých prípadoch stále dochádza k zablokovaniu. Napríklad operačný systém môže vyžadovať rôzne knižnice vo viacerých vláknach, čo vedie k zablokovaniu našej služby.

Problém, na ktorom momentálne pracujem, je zvýšenie rýchlosti funkcie Active Restore a zvýšenie bezpečnosti systému. Povedzme, že systém nepotrebuje celý súbor, ale iba jeho časť. Na tento účel bol vyvinutý ďalší ovládač – ovládač filtra disku. Funguje na úrovni blokov, nie na úrovni súborov. Princíp fungovania je podobný: v normálnom režime ovládač jednoducho zaznamenáva upravené bloky na disku, ale v režime obnovy sa pokúša prečítať samotný blok a ak sa to nepodarí, požiada službu o zvýšenie priority. Všetky ostatné časti systému zostávajú rovnaké. Napríklad služba na úrovni operačného systému si ani neuvedomuje, že je požiadaná o komunikáciu s iným ovládačom, pretože jej hlavnou úlohou je poskytnúť operačnému systému údaje, ktoré potrebuje na fungovanie. Táto oblasť si vyžaduje výrazné zlepšenie, už len preto, že služba ešte nemá schopnosť myslieť na úrovni blokov.

Следующим шагом я решил запустить драйвер глубже и раньше, опустившись на уровень UEFI драйверов и Native Windows приложений вместо сервиса. Для этого был разработан Ovládač bootovania UEFI (или DXE драйвер), который стартует и умирает еще до старта ОС. Но “историю” UEFI драйверов, подробности о сборке и установке, а также специфике Windows Native приложений, мы рассмотрим в следующем посте. Так что подписывайтесь на наш блог, а я пока подготовлю рассказ о следующем этапе работ. Буду рад вашим комментариям и советам.

Do prieskumu sa môžu zapojiť iba registrovaní užívatelia. Prihlásiť saProsím.

Zažili ste niekedy situácie, keď rekonvalescencia trvala neznesiteľne dlho?

  • 65.1%Áno28

  • 23.2%č.10

  • 11.6%Nemyslel som na to5

Hlasovali 43 používatelia. 3 používatelia sa zdržali hlasovania.

Zdroj: hab.com

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster