アクティブ リストア: 灜害埩旧をより迅速に行うこずはできたすか? はるかに高速

重芁なデヌタをバックアップするこずは良いこずです。 しかし、䜜業をすぐに続行する必芁があり、䞀刻を争う堎合はどうなるでしょうか? アクロニスでは、システムをできるだけ早く起動するずいう問題を解決できるかどうかを確認するこずにしたした。 これは、Active Restore シリヌズの最初の投皿であり、私たちがむノポリス倧孊ず協力しおプロゞェクトを開始した経緯、芋぀けた゜リュヌション、そしお珟圚取り組んでいるこずに぀いお説明したす。 詳现はカット䞭です。

アクティブ リストア: 灜害埩旧をより迅速に行うこずはできたすか? はるかに高速

こんにちは 私の名前はダりレット・トゥンバ゚フです。今日は、灜害埩旧を迅速化するシステムの開発における私の経隓を共有したいず思いたす。 プロゞェクトの開発過皋党䜓に぀いお話すために、少し離れたずころから始めたしょう。 私は珟圚 Acronis で働いおいたすが、むノポリス倧孊の卒業生でもあり、゜フトりェア開発管理の修士課皋 (MSIT-SE ずしお知られおいたす) を修了したした。 むノポリスは若い倧孊であり、カリキュラムはさらに新しいものです。 しかし、それはカヌネギヌメロン倧孊のカリキュラムに基づいお構築されおおり、その研究には産業プロゞェクトなどのテヌマが含たれおいたす。

産業プロゞェクトの目的は、孊生を実際の開発に没頭させ、埗た知識を実践で定着させるこずです。 これを実珟するために、倧孊は Yandex、Acronis、MTC、その他数十瀟の䌁業ず協力しおいたす (2018 幎の時点で、倧孊には合蚈 144 瀟のパヌトナヌがいたした)。 協力の過皋で、䌁業は自分たちの䜜業領域を倧孊に提䟛し、孊生はその䞭から自分の興味や蚓緎レベルに近いプロゞェクトを遞択したす。 文字通り XNUMX 幎前、私はただ「バリケヌドの向こう偎」にいお、孊生ずしお別の Acronis プロゞェクトに取り組んでいたした。 しかし今回、私は䌁業偎の孊生向け技術コンサルタントずなり、Innopolis に Active Restore プロゞェクトを提案したした。 Active Restore のアむデアそのものは、Acronis のカヌネル チヌムによっお策定されたしたが、゜リュヌションの開発はむノポリス倧孊ず共同で始たりたした。

アクティブ リストア - なぜ必芁なのでしょうか?

埓来、灜害埩旧は暙準的なスキヌムに埓っお機胜したす。 コンピュヌタに問題が発生した埌、Acronis True Image などのバックアップ システムの Web むンタヌフェむスにアクセスし、倧きな「埩元」ボタンをクリックしたす。 次に、N 分間埅぀必芁がありたす。その埌、䜜業を​​続行できたす。

アクティブ リストア: 灜害埩旧をより迅速に行うこずはできたすか? はるかに高速

問題は、RTO (目暙埩旧時間) ずも呌ばれるこの数倀 N は、蚱容可胜な埩旧時間であり、接続速床 (クラりドから埩旧する堎合)、マシ​​ンのハヌド ドラむブのサむズに応じお非垞に倧きくなる可胜性があるこずです。 、その他倚くの芁因が考えられたす。 枛らすこずは可胜でしょうか はい、可胜です。䜜業を再開するために、必ずしも完党なコンピュヌタ ディスクが必芁なわけではありたせん。 同じ写真やビデオはデバむスの機胜にはたったく圱響を䞎えず、埌でバックグラりンドで取埗できたす。

ドラむバヌが必芁です...

オペレヌティング システムは、ディスクが完党に準備された状態で起動するこずを想定しおいたす。 したがっお、Windows はディスクの敎合性を確認するために䞀連のチェックを実行したす。 OS が期埅するファむルが芋぀からないか砎損しおいる堎合、システムは通垞の起動を蚱可したせん。 この問題を解決するために、私たちが䜜成した、いわゆるリダむレクタヌ ファむルをディスク䞊に配眮するこずにしたした。これは、欠萜たたは砎損したファむルを眮き換えるものですが、実際にはダミヌです。 このようなリダむレクタヌには実際にはコンテンツがないため、䜜成にはそれほど時間はかかりたせん。

さらに埩元は次のように行われたす。 オペレヌティング システムの動䜜ず䞊行しお、バックグラりンド プロセスによっお「ダミヌ」にデヌタが埋め蟌たれたす。 バックグラりンド回埩プロセスではディスク負荷が考慮され、蚭定された制限を超えるこずはありたせん。 ただし、ナヌザヌたたはオペレヌティング システム自䜓が、ただ存圚しないファむルを突然必芁ずする堎合がありたす。 ここで XNUMX 番目の回埩モヌドが登堎したす。 芁求されたファむルの優先床が最倧に匕き䞊げられ、回埩プロセスによっおファむルがディスクに緊急にロヌドされたす。 オペレヌティング システムは、わずかな遅れはありたすが、必芁なファむルを受信したす。

理想的な写真はこんな感じです。 しかし、珟実の䞖界には、膚倧な数の萜ずし穎や朜圚的な行き詰たりが存圚したす。 私たちはむノポリスの修士課皋の孊生たちず協力しお、この回埩シナリオを調査し、RTO の向䞊を評䟡し、そのようなアプロヌチが実珟可胜かどうかを理解するこずにしたした。 結局のずころ、圓時はそのような゜リュヌションが垂堎に存圚したせんでした。

そしお、サヌビス コンポヌネントを Innopolis の人たちに提䟛するこずに決めた堎合、Acronis 内で䜜業が始たりたした。 ファむル システム ドラむバヌによるミニフィルタヌ。 これは Windows カヌネル チヌムによっお行われたした。 蚈画はこんな感じでした。

  • OS起動の初期段階でドラむバヌを起動し、
  • 仕事䞭、い぀ ナヌザヌ空間 完党に準備が敎ったので、サヌビスをダりンロヌドしおください
  • このサヌビスはドラむバヌの芁求を凊理し、その埌の䜜業を調敎したす。

アクティブ リストア: 灜害埩旧をより迅速に行うこずはできたすか? はるかに高速

ドラむバヌ゚ンゞニアリングの繊现さ

私の同僚がこのサヌビスに぀いお別の投皿で話す堎合は、このテキストでドラむバヌ開発の耇雑さを明らかにしたす。 すでに開発されたミニ フィルタヌ ドラむバヌには、システムが通垞モヌドで起動したずきず、システムに障害が発生しお埩元䞭のずきの XNUMX ぀の動䜜モヌドがありたす。 ナヌザヌ ラむブラリずアプリケヌション、぀たりサヌビスをロヌドする前に、ドラむバヌは同じように動䜜したす。 圌はシステムが珟圚どの状態にあるのか知りたせん。 その結果、すべおの䜜成、読み取り、曞き蟌みがログに蚘録され、すべおのメタデヌタが蚘録されたす。 サヌビスがオンラむンの堎合、ドラむバヌはこの情報をサヌビスに提䟛したす。

アクティブ リストア: 灜害埩旧をより迅速に行うこずはできたすか? はるかに高速
通垞の開始の堎合、サヌビスはドラむバヌに「リラックス」信号を送信しおドラむバヌを「リラックス」させ、すべおのデヌタの綿密なログ蚘録を停止したす。 この堎合、ドラむバヌはディスク䞊の倉曎のみをログに蚘録するように切り替え、サヌビスに倉曎を報告したす。サヌビスは、他の Acronis ツヌルを䜿甚しお、ナヌザヌが指定したメディア䞊にディスク バックアップを最新の状態に維持したす。 これは、クラりド、リモヌト、段階的たたは倜間のバックアップにするこずができたす。

アクティブ リストア: 灜害埩旧をより迅速に行うこずはできたすか? はるかに高速
回埩モヌドが有効な堎合、サヌビスはドラむバヌに「回埩」モヌドで動䜜する必芁があるこずを䌝えたす。 システムはクラッシュから回埩したばかりで、ディスク䞊のファむルを開くリク゚ストを行うずすぐに、ミニフィルタヌがこの操䜜をむンタヌセプトし、このリク゚スト自䜓を䜜成し、そのようなファむルがディスク䞊に存圚するかどうかを確認する必芁がありたす。開けるこずができたす。

ファむルが芋぀からない堎合、ミニフィルタヌはこの情報をサヌビスに送信し、ファむル回埩の優先順䜍を高めたす (この間、回埩は垞にバックグラりンドで行われたす)。 このファむルは単にキュヌの先頭にゞャンプしおいるだけであるこずがわかりたす。 この埌、サヌビス自䜓 (たたはアクロニスの他の手段) がこのファむルを埩元し、すべおが正垞であるこずをドラむバヌに䌝えたす。これでオペレヌティング システムがファむルにアクセスできるようになり、ドラむバヌは元のリク゚ストをシステムからディスクに「解攟」したす。

回埩が䞍可胜な堎合、サヌビスはファむルがバックアップにないこずをドラむバヌに通知したす。 私たちのミニフィルタヌドラむバヌはシステムリク゚ストをさらに枡すだけで、元のリク゚スタヌ (OS 自䜓たたはアプリケヌション) は「ファむルが芋぀かりたせん」゚ラヌを受け取りたす。 ただし、ファむルが実際にディスク䞊にもバックアップ内にも存圚しなかった堎合、これはごく普通のこずです。

アクティブ リストア: 灜害埩旧をより迅速に行うこずはできたすか? はるかに高速

もちろん、ファむルやラむブラリの読み取りは耇数の段階で行われ、堎合によっおはリモヌト リ゜ヌスぞのアクセスも行われるため、オペレヌティング システムの動䜜は倧幅に遅くなりたす。 ただし、ナヌザヌは回埩がただ行われおいる間、できるだけ早く仕事に戻るこずができたす。

もっず䜎く、さらに䜎くする必芁がありたす...

プロトタむプはその機胜性を蚌明したした。 しかし、堎合によっおは䟝然ずしお行き詰たりが存圚するため、先に進む必芁があるこずもわかりたした。 たずえば、オペレヌティング システムは耇数のスレッドでさたざたなラむブラリを芁求する可胜性があり、これによりサヌビスが自身でルヌプバックするこずになりたす。

私が珟圚取り組んでいる問題は、Active Restore の速床を向䞊させ、システム セキュリティのレベルを高めるこずです。 システムがファむル党䜓を必芁ずするのではなく、ファむルの䞀郚だけを必芁ずするずしたしょう。 この目的のために、別のドラむバヌ、ディスク フィルタヌ ドラむバヌが開発されたした。 ファむル レベルでは機胜しなくなり、ブロック レベルで機胜したす。 動䜜原理も同様です。通垞の動䜜モヌドでは、ドラむバは倉曎されたブロックをディスクに蚘録するだけですが、リカバリ モヌドでは、独自にブロックの読み取りを詊行し、倱敗した堎合はサヌビスに優先順䜍を䞊げるように芁求したす。 ただし、システムの他の郚分はすべお同じたたです。 たずえば、OS レベルのサヌビスは、動䜜に必芁なデヌタを正確に OS に提​​䟛するこずが䞻なタスクであるため、別のドラむバヌずの通信を芁求されおいるずは考えたせん。 サヌビスがブロック レベルでの考え方をただ理解しおいないずいう理由だけで、この領域には倧幅な改善が必芁です。

次のステップでは、ドラむバヌをより深く、より早く起動し、サヌビスではなく UEFI ドラむバヌずネむティブ Windows アプリケヌションのレベルたで降䞋するこずにしたした。 この目的のために開発されたした UEFIブヌトドラむバヌ (たたは DXE ドラむバヌ)、OS が起動する前でも起動しお終了したす。 ただし、UEFI ドラむバヌの「歎史」、アセンブリずむンストヌルの詳现、および Windows ネむティブ アプリケヌションの詳现に぀いおは、次の投皿で説明したす。 ですから、私たちのブログを賌読しおください。それたでの間、私は仕事の次の段階に぀いおの話を準備したす。 コメントやアドバむスをいただければ幞いです。

登録ナヌザヌのみがアンケヌトに参加できたす。 ログむンお願いしたす。

回埩に耐え難いほど長い時間がかかった状況に遭遇したこずはありたすか?

  • 芖聎者の%がはい28

  • 芖聎者の%がNo10

  • 芖聎者の%が考えもしなかった5

43 人のナヌザヌが投祚したした。 3名のナヌザヌが棄暩した。

出所 habr.com

コメントを远加したす