CH717425B1 - Sistema e metodo per il ripristino selettivo di un sistema informatico a uno stato operativo. - Google Patents

Sistema e metodo per il ripristino selettivo di un sistema informatico a uno stato operativo. Download PDF

Info

Publication number
CH717425B1
CH717425B1 CH000679/2020A CH6792020A CH717425B1 CH 717425 B1 CH717425 B1 CH 717425B1 CH 000679/2020 A CH000679/2020 A CH 000679/2020A CH 6792020 A CH6792020 A CH 6792020A CH 717425 B1 CH717425 B1 CH 717425B1
Authority
CH
Switzerland
Prior art keywords
data
computer system
data blocks
storage
blocks
Prior art date
Application number
CH000679/2020A
Other languages
English (en)
Other versions
CH717425A2 (it
Inventor
Sergeev Alexey
Anton Enakiev
Beloussov Serguei
Protasov Stanislav
Strogov Vladimir
Original Assignee
Acronis Int Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Acronis Int Gmbh filed Critical Acronis Int Gmbh
Publication of CH717425A2 publication Critical patent/CH717425A2/it
Publication of CH717425B1 publication Critical patent/CH717425B1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

L'invenzione comprende un sistema e un metodo per il ripristino selettivo di un sistema informatico a uno stato operativo. Il metodo crea un'immagine di backup del sistema informatico comprendente un insieme di blocchi di dati e può memorizzare l'immagine di backup del sistema informatico in un database di archiviazione (214). Il metodo determina un sottoinsieme dei blocchi di dati dell'immagine di backup che sono necessari per mantenere operativo il sistema informatico. In risposta alla determinazione del fatto che il sistema informatico debba essere ripristinato, il metodo può ripristinare il sottoinsieme di blocchi di dati in modo che il sistema informatico sia operativo durante l'avvio e può ripristinare un insieme rimanente di blocchi di dati a partire dall'immagine di backup dopo l'avviamento del sistema informatico.

Description

CAMPO DELLA TECNOLOGIA
[0001] La presente divulgazione si riferisce in generale al campo del ripristino dei dati e, più nello specifico, a sistemi e a un metodo per ripristinare in modo selettivo un sistema informatico ad uno stato operativo.
STATO DELL'ARTE
[0002] Convenzionalmente, il recupero (ad esempio il ripristino di emergenza) di un sistema informatico e dei dati del sistema informatico viene molto spesso eseguito estraendo dati da una copia di backup eseguita in precedenza che contiene un'immagine del sistema di cui si sta effettuando il recupero. In molti casi, durante il recupero, il sistema deve essere ripristinato prima possibile a uno stato operativo dopo l'arresto anomalo del computer o il verificarsi dell'emergenza. Tuttavia, quando si procede al ripristino del sistema e dei dati a partire da una copia di backup, i blocchi di dati ottenuti dalla copia di backup vengono letti sequenzialmente, ovvero nell'ordine in cui i blocchi di dati sono stati memorizzati nella copia di backup. Il recupero dei dati non viene effettuato nell'ordine in cui i dati sono necessari per il recupero più rapido possibile del sistema.
[0003] Inoltre, durante il recupero, non tutti i blocchi di dati memorizzati nell'archivio potrebbero essere necessari. La ricerca e il recupero di quei blocchi che sono necessari per il recupero e l'avvio possono però richiedere molto tempo, in particolare se l'archivio è particolarmente voluminoso. Ad esempio, un archivio come quello illustrato nella Fig. 1 contiene un archivio (o immagine) di backup 100 di un computer, server o dispositivo analogo. Un agente di recupero avvia il processo di recupero a partire dal 1° blocco e procede a recuperare i dati fino all'ultimo blocco di dati in modo sequenziale. Tuttavia, ai fini del recupero iniziale del sistema, per lanciare e avviare il sistema, potrebbe essere necessario solo un ridotto numero di blocchi, ad esempio i blocchi 3, 7, 12 e simili. Tali blocchi potrebbero essere sparpagliati nell'archivio 100 in ordine casuale, non all'inizio dell'archivio 100, ma al centro oppure alla fine dell'archivio, per cui l'agente di ripristino potrebbe richiedere un periodo di tempo notevolmente superiore per ripristinare l'archivio.
[0004] Pertanto, il funzionamento del sistema viene ripristinato solo dopo che l'intero archivio 100 e tutti i blocchi in esso contenuti vengono ripristinati. Solo dopo di allora il sistema può essere caricato ed eseguito. Di conseguenza, sussiste la necessità di ridurre i tempi di ripristino del sistema durante il recupero.
SOMMARIO
[0005] Per ovviare a queste lacune, vengono qui descritti metodi e sistemi per il ripristino di un sistema informatico a uno stato operativo. Un metodo per il ripristino del sistema informativo a uno stato precedente secondo la presente invenzione è rivendicato nella rivendicazione 1. Forme di realizzazione preferite del metodo secondo la rivendicazione 1 sono date nelle rivendicazioni dipendenti 2-10.
[0006] Il metodo può creare un'immagine di backup del sistema informatico comprendente un insieme di blocchi di dati e potrebbe memorizzare l'immagine di backup del sistema informatico in un database di archiviazione. Il metodo può determinare un sottoinsieme dei blocchi di dati dell'immagine di backup che sono necessari per mantenere operativo il sistema informatico. In risposta alla determinazione del fatto che il sistema informatico debba essere ripristinato, il metodo può ripristinare il sottoinsieme di blocchi di dati in modo che il sistema informatico sia operativo durante l'avvio e può ripristinare un insieme rimanente di blocchi di dati a partire dall'immagine di backup dopo l'avviamento del sistema informatico.
[0007] Il metodo può determinare il sottoinsieme creando e avviando una macchina virtuale in base all'immagine di backup, monitorando i blocchi di dati a cui si è acceduto a partire dall'immagine di backup durante l'avvio della macchina virtuale, identificando i blocchi di dati monitorati nel sottoinsieme e posizionando i blocchi di dati monitorati in una cache di dati persistente.
[0008] In un esempio, il metodo può monitorare i blocchi di dati mediante un driver di filtro.
[0009] In un esempio, i blocchi di dati monitorati vengono richiesti, da un disco virtuale della macchina virtuale, a partire dall'immagine di backup.
[0010] In un esempio, il metodo può determinare il sottoinsieme rilevando che il sistema informatico ha iniziato un primo avvio, monitorando i blocchi di dati letti da un disco del sistema informatico durante il primo avvio e identificando i blocchi di dati monitorati nel sottoinsieme.
[0011] In un esempio, l'immagine di backup viene memorizzata in un primo tipo di archivio del sistema informatico e il metodo può posizionare i blocchi di dati monitorati in un secondo tipo di archivio.
[0012] In un esempio, il primo tipo di memorizzazione è l'archiviazione offline sicura e il secondo tipo di memorizzazione è l'archiviazione ad accesso frequente, in cui le velocità di lettura e scrittura dei dati del secondo tipo di archiviazione sono più rapide rispetto alle velocità di lettura e scrittura di dati del primo tipo di archiviazione.
[0013] In un esempio, il metodo può determinare il sottoinsieme valutando una criticità dei blocchi di dati e degli eventi che si verificano al primo avvio del sistema informatico, creando una serie di regole in base alla criticità valutata e applicando l'insieme di regole ai blocchi di dati per dividere i blocchi di dati nel sottoinsieme e in un insieme rimanente.
[0014] In un esempio, il metodo può disporre i blocchi di dati in un ordine in cui i blocchi di dati debbano essere letti durante il ripristino e può eseguire il ripristino dei blocchi di dati in base a tale disposizione.
[0015] In un esempio, il metodo può determinare che il sistema informatico debba essere ripristinato in base al rilevamento di almeno uno dei seguenti elementi: un attacco di malware al sistema informatico, una richiesta ripristino d'emergenza e un evento che causa l'arresto anomalo del sistema informatico.
[0016] In un esempio, il sistema informatico è ritenuto operativo quando una pluralità di applicazioni pre-identificate e di dati importanti associati alla pluralità di applicazioni pre-identificate è funzionale e accessibile sul sistema informatico.
[0017] Va notato che i metodi sopra descritti possono essere implementati in un sistema comprendente un processore hardware. In alternativa, i metodi possono essere implementati utilizzando istruzioni eseguibili del computer di un supporto non transitorio leggibile dal computer.
[0018] Il suddetto riepilogo semplificato serve a fornire una presentazione sintetica della presente divulgazione. Tale riepilogo non è una panoramica completa di tutti gli aspetti contemplati e non è destinato a identificare tutti gli aspetti della presente divulgazione. Il suo unico scopo è presentare uno o più aspetti in forma semplificata in vista di una descrizione più dettagliata della divulgazione che segue.
BREVE DESCRIZIONE DEI DISEGNI
[0019] I disegni accompagnatori, che sono integrati e costituiscono parte integrante delle presenti specifiche, illustrano uno o più aspetti esemplificativi della presente divulgazione e, insieme alla descrizione dettagliata, servono a spiegare i rispettivi principi e implementazioni. LaFig.1è un'illustrazione di un archivio di dati contenente un'immagine di backup di un computer o server. LaFig.2è un diagramma a blocchi illustrante un sistema per il ripristino selettivo di un sistema informatico a uno stato operativo. LaFig.3è un diagramma a blocchi illustrante un altro sistema per il ripristino selettivo di un sistema informatico a uno stato operativo. LaFig.4è un diagramma di flusso illustrante un metodo per il ripristino selettivo di un sistema informatico a uno stato operativo. LaFig.5è un diagramma a blocchi di un sistema informatico in cui il sistema e il metodo divulgati possono essere implementati in base a un esempio.
DESCRIZIONE DETTAGLIATA
[0020] Viene qui descritto un esempio nel contesto di un sistema, metodo e prodotto di programma informatico per il ripristino selettivo di un sistema informatico a uno stato operativo. Agli esperti del settore risulta chiaro che la seguente descrizione è puramente illustrativa e non è destinata a essere in alcun modo limitante. Altri aspetti si suggeriranno prontamente agli esperti del settore che trarranno beneficio dalla presente divulgazione. A questo punto verrà fatto riferimento in dettaglio alle implementazioni degli aspetti esemplificativi illustrati nei disegni accompagnatori. Gli stessi indicatori di riferimento saranno utilizzati nella misura possibile attraverso i disegni e la successiva descrizione in riferimento agli stessi elementi o ad elementi simili.
[0021] Per avviare un dispositivo o sistema informatico che debba essere recuperato più rapidamente possibile, i blocchi di dati che sono necessari per l'avvio dovrebbero essere identificati prima possibile. Nel caso di un ripristino d'emergenza in cui è auspicabile un recupero rapido, tali blocchi di dati identificati dovrebbero essere recuperati per primi, senza dover aspettare che siano ripristinati i rimanenti blocchi. Il processo di recupero, pertanto, può non iniziare dal 1° blocco in un'immagine di backup di una macchina, ma in questo esempio a partire dal 3° blocco, poi dal 7° blocco, 12° blocco ecc., come illustrato nella Fig. 1. Di conseguenza, i blocchi necessari per il recupero vengono raccolti e archiviati in un archivio più rapido („archivio ad accesso frequente“), mentre l'intero archivio viene memorizzato in un „archivio offline sicuro“ relativamente più lento (laddove l'archivio offline sicuro è meno costoso rispetto all'archivio ad accesso frequente).
[0022] In un esempio, l'archivio offline sicuro è destinato all'archiviazione a lungo termine dei dati e, in particolare, ad archivi che non sono destinati ad accesso frequente. Di conseguenza, l'archivio offline sicuro prioritarizza l'archiviazione sicura dei dati, sacrificando la velocità di lettura e di ricerca dei dati, riducendo sensibilmente in tal modo i costi di archiviazione offline sicura. D'altro canto, l'archivio ad accesso frequente si riferisce a un'archiviazione che prioritarizza l'accesso rapido a dati utilizzati frequentemente, in grado di fornire ricerche molto più rapide rispetto all'archiviazione offline sicura per merito delle velocità di lettura e/o scrittura superiori. In particolare, l'archiviazione ad accesso frequente presenta minime esigenze di elaborazione per velocità di accesso e ricerca di dati e possibilmente di scrittura di dati. Pertanto, l'archiviazione ad accesso frequente è molto più costosa rispetto all'archiviazione offline sicura e memorizza quindi solo dati a cui occorre accedere rapidamente e che sono pertanto fondamentali per un utente o un'azienda. L'archiviazione ad accesso frequente può riferirsi, in un esempio, a un disco di archiviazione locale, mentre l'archiviazione offline sicura può riferirsi, in un esempio, all'archiviazione cloud o simile, sebbene gli aspetti della presente divulgazione non siano limitati a tali archivi. A un livello più tecnico, qualsiasi tipo di archiviazione in cui il tempo di accesso a un blocco di dati è superiore a una soglia di tempo predeterminata (ad esempio 500 millisecondi), a causa sia di limitazioni fisiche di un disco, sia di velocità di collegamento di Internet, può essere classificato come archiviazione offline sicura. Se il tempo di accesso è inferiore alla soglia di tempo predeterminata, il tipo di archiviazione può essere classificato come archiviazione ad accesso frequente.
[0023] LaFig.2è un diagramma a blocchi illustrante un sistema 200 per il ripristino selettivo di un sistema informatico a uno stato operativo, in conformità a un esempio della presente divulgazione.
[0024] Il sistema 200 comprende un controller di recupero 202, una macchina da recuperare 204, una macchina virtuale per eseguire test 206, un driver 208, un'archiviazione offline sicura 210 e un'archiviazione ad accesso frequente 212. Il controller di recupero 202 controlla vari componenti del sistema 200 che funzionano insieme per recuperare la macchina 204 in un punto in cui la macchina 204 può essere avviata, ovvero il sistema operativo (sistema informatico) della macchina 204 può entrare in uno stato operativo e un utente è in grado di utilizzare la macchina 204 ripristinando anzitutto quei blocchi di dati che sono necessari per riportare la macchina 204 a uno stato operativo.
[0025] In un esempio, uno stato operativo si riferisce a uno stato in cui la macchina può essere usata per qualsiasi operazione o, in un esempio, una porzione di operazioni. Un amministratore può definire in cosa consiste lo stato operativo; lo stato operativo può essere, ad esempio, uno stato in cui la macchina può essere utilizzata peraccedere ad applicazioni installate e a dati memorizzati su dischi associati o simili. In un esempio, uno stato operativo indica uno stato in cui vengono ripristinati dati importanti, i dati importanti vengono usati da applicazioni importanti, come stabilito da un amministratore e/o da una politica di sicurezza aziendale.
[0026] In un esempio, il controller di recupero 202 incarica un agente di backup e di recupero 205 di scattare un'istantanea della macchina 204 e memorizzare l'istantanea nell'archivio offline sicuro 210. L'archivio offline sicuro 210 rappresenta qualsiasi dispositivo di archiviazione di dati che memorizza grandi quantità di dati che possono non essere necessari immediatamente nel processo di recupero di un dispositivo informatico (espressione usata in modo interscambiabile con „sistema operativo“). In un esempio, istantanee e backup completi dei dati di macchine facenti parte di una rete vengono memorizzati in un archivio di backup 214 nell'archivio offline sicuro 210 dall'agente di backup e recupero 205. In un altro esempio, l'archivio offline sicuro 210 può includere solo dati inattivi o dati non necessari all'interno di una finestra temporale prestabilita da un computero un'organizzazione (ad esempio i primi 10 minuti di avvio). In questo modo, l'archivio offline sicuro 210 consente alle aziende di mantenere i dati inattivi in una sede esterna e fornire accesso ai dati in blocco solo quando è necessario per ridurre la congestione della rete e ridurre l'archivio di rete locale.
[0027] Dopo che l'agente di backup e di recupero 205 esegue il(i) backup dell'immagine affidato(i) delle macchine di una rete, inclusa la macchina 204, può esserci un'istanza in cui si verifica un evento che causa un guasto della macchina 204 e/o altro dispositivo informatico all'internodella rete. La macchina 204 può contenere dati aziendali importanti oppure può essere un server che gestisce richieste di servizi o di dati importanti del cliente. In caso di guasto della macchina 204 o di altre macchine, i clienti, gli utenti aziendali e gli amministratori possono non essere in grado di eseguire funzioni di lavoro importanti, riducendo pertanto l'efficienza all'interno dell'organizzazione.
[0028] Di conseguenza, in un esempio, per velocizzare il recupero della macchina importante, ad esempio la macchina 204, il controller di recupero 202 determina quali porzioni di dati dall'istantanea sono necessari per ripristinare la macchina 204 a uno stato operativo. In questo esempio, la macchina 204 può essere considerata operativa (espressione usata in modo intercambiabile con „trovarsi in uno stato operativo“) quando una pluralità di applicazioni pre-identificate e dati importanti associati alla pluralità di applicazioni pre-identificate è funzionale e accessibile sulla macchina 204. Ad esempio, la macchina 204 può essere configurata per ricevere dati ed eseguire un filtro sui dati per emettere i dati elaborati. Supponiamo che il filtro elimini elementi vuoti in un insieme di dati di input. Il filtro può essere un'applicazione che viene identificata manualmente da un amministratore come un'applicazione che dovrebbe essere funzionale e accessibile sulla macchina 204. Tutti i dati che consentono l'applicazione del filtro da eseguire vengono pertanto considerati dati importanti, che possono includere file del sistema operativo per eseguire del sistema operativo (che a sua volta esegue l'applicazione del filtro) e file DLL. Va notato che non tutti i dati associati a un'applicazione pre-identificata sono di fatto dati importanti. Ad esempio, un plug-in di stampa su un'applicazione di word-editing può non essere necessario per abilitare la funzionalità di word-editing sull'applicazione. Di conseguenza, il plug-in non è un dato importante. In un esempio, il controller di recupero 202 può identificare un sottoinsieme di blocchi di dati che includono i dati importanti e memorizzano il sottoinsieme nell'archivio ad accesso frequente.
[0029] In un esempio, il controller di recupero 202 può mantenere un elenco di porzioni di dati, ad esempio blocchi di dati, di un'immagine di backup o un'istantanea che vengono utilizzati quando si avvia o si ripristina un computer a uno stato operativo. In un esempio il numero di porzioni di dati viene mantenuto al numero minimo necessario per ripristinare interamente la macchina 204 a uno stato operativo. Di conseguenza, il controller di recupero 202 determina un sottoinsieme di blocchi di dati dell'immagine di backup che sono necessari per mantenere operativo il sistema informatico.
[0030] In questo esempio, l'amministratore può stabilire quali servizi o funzioni sono disponibili sulla macchina 204 in modo che sia considerata operativa. In altri esempi, l'apprendimento automatico può essere sfruttato per monitorare la macchina 204 per apprendere, al momento dell'avvio, quali dati vengono acceduti per primi e quali dati vengono acceduti per ultimi, oltre a monitorare le porzioni dei dati utilizzate quando si avviano particolari servizi, l'ordine dei servizi all'avvio e simili. I dati possono cambiare nel tempo, tenendo conto delle operazioni di ripristino cronologiche, aggiornando e mantenendo un nuovo elenco di dati considerati „importanti“ o un blocco di dati necessario per riportare la macchina a uno stato operativo.
[0031] In un esempio, il controller di recupero 202 può avviare una macchina virtuale per eseguire test 206 con un'istantanea o un archivio della macchina 204 salvati nell'archivio di backup 214. In questa istanza, il controller di recupero 202 può montare un disco virtuale 207 e iniettare anche un filtro o un driverdel file 208 per monitorare richieste effettuate dalla macchina virtuale di test 206 al disco virtuale 207. In un esempio, il disco virtuale 207 può essere in formato VHD, VHDX, VMDK o simili, sebbene la presente divulgazione non sia limitata a tali formati. Il controller di recupero 202 monitora quindi, tramite il driver 208, quali blocchi di dati dell'istantanea o dell'archivio sono stati acceduti durante l'avvio della macchina o fino a quando la macchina virtuale di test 206 ha raggiunto uno stato operativo, come definito da un amministratore, tramite apprendimento automatico o simili.
[0032] In un esempio, i blocchi di dati acceduti durante l'avvio o fino a quando la macchina virtuale 206 ha raggiunto uno stato operativo sono definiti come le porzioni di dati minime o i blocchi di dati „minimi“, ovvero si tratta dei blocchi che vengono, come minimo, utilizzati per avviare la macchina 204. Tali blocchi di dati vengono quindi memorizzati sotto forma di elenco o qualsiasi tipo di struttura di dati nell'archivio ad accesso frequente 212, ad esempio in una cache persistente 216 che viene mantenuta anche quando si verifica un evento che causa l'arresto anomalo della rete o delle macchine della rete, ad esempio un attacco dannoso, una catastrofe naturale o evento simile. In un altro esempio, l'archivio ad accesso frequente 212 viene replicato e/o memorizzato fuori sede al fine di isolare la cache persistente 216 da attacchi o disastri. In altri esempi, i blocchi di dati stessi non vengono memorizzati nella cache persistente 216, bensì vengono memorizzati nella cache persistente i collegamenti ai blocchi di dati nell'archivio di backup 214. Sebbene memorizzare i blocchi di dati minimi nell'archivio offline sicuro 210 necessiti di un tempo di recupero più lungo rispetto allo stato operativo, in alcuni casi può essere auspicabile risparmiare spazio nell'archivio ad accesso frequente 212 per i dati che possono essere più importanti.
[0033] In un esempio, il controller di recupero 202 può successivamente riordinare l'elenco dei blocchi di dati nella cache persistente 216 nell'ordine in cui questi sono stati acceduti durante l'avvio del computer in uno stato operativo, per ridurre ulteriormente i tempi di recupero. In ulteriori esempi, la macchina virtuale di test può essere richiamata dopo ogni nuovo backup programmato della macchina 204. Dato che i blocchi di dati possono essere modificati o aggiornati (rimossi o aggiunti), il contenuto della cache persistente viene ogni volta aggiornato. In un esempio, la cache persistente 216 viene memorizzata in un archivio ad accesso frequente 212, ad esempio, come un file di dati o un insieme di file di dati, ovvero la cache persistente 216 viene archiviata nella memoria del disco rigido. In alcuni altri esempi, tuttavia, l'archivio ad accesso frequente 212, e pertanto la cache persistente 216, possono essere in RAM, in scenari in cui non viene assicurata la non-perdita della RAM oppure la probabilità di tale perdita dovuta al riavvio del server, alla perdita di potenza o simili è inferiore a una soglia predeterminata. In questo caso, la cache persistente 216 può essere ripristinata a partire dall'archivio di backup 214.
[0034] Un altro esempio è illustrato nella Fig. 3. In questo esempio, anziché il controller di recupero 202 che avvia una macchina virtuale di test 206 per determinare un numero minimo di blocchi di dati, il controller di recupero 202 implementa un driver di monitoraggio 300 per monitorare l'avvio della macchina 204 ogniqualvolta viene avviata. Man mano che avviene il monitoraggio, il controller di recupero 202 richiama l'agente di backup e recupero 205 per iniziare un'operazione di backup 304 per creare un'immagine di backup della macchina 204 e memorizzare l'immagine di backup in un archivio di backup 214 dell'archivio offline sicuro 210. L'operazione di backup 304 memorizza i blocchi di dati acceduti durante l'avvio, ovvero i blocchi ad accesso frequente 302, nella cache persistente 216 sul server dell'archivio ad accesso frequente 212, mentre tutti i blocchi di dati, inclusi i blocchi di dati minimi per il ripristino di uno stato operativo, sono memorizzati nell'archivio di backup 214 in un archivio offline sicuro 210. In una modifica, il controller di recupero 202 memorizza solo blocchi „freddi“, ovvero blocchi di dati che non sono blocchi ad accesso frequente 302, nell'archivio offline sicuro 210.
[0035] In un altro esempio illustrato nella Figura 3, un modulo di apprendimento automatico (machine learning - ML) 310 viene richiamato dal controller di recupero 202 che raccoglie informazioni ed eventi che si verificano sulla macchina 204 e altre macchine della rete. In un esempio, le informazioni e gli eventi includono dati relativi ai file e altri oggetti che sono necessari durante particolari eventi, quali l'avvio del computer, il lancio di un'applicazione, un intervento di manutenzione o simili. In base alle informazioni raccolte e agli eventi, il modulo di apprendimento automatico 310 può creare un insieme di regole su come dividere i blocchi di dati in blocchi che includono dati importanti e debbano pertanto essere memorizzati nell'archivio ad accesso frequente, e i blocchi che possono essere ripristinati successivamente al ripristino dei blocchi di dati importanti (ad esempio dall'archivio offline sicuro). In un esempio, l'insieme di regole si basa su classificazioni di dati preliminari riguardo alla criticità e/o all'utilità di particolari dati, a seconda dei vari criteri. I criteri possono includere l'ubicazione dei dati (ad es. cartelle o dischi dedicati), la frequenza di accesso, la proprietà dei dati e simili.
[0036] Ad esempio, una regola può classificare se un determinato blocco di dati debba essere incluso in un sottoinsieme della pluralità di blocchi di dati oppure in un rimanente sottoinsieme della pluralità dei blocchi di dati. In un esempio, una regola può essere formattata in un'istruzione „if-else“. Alcune regole a titolo esemplificativo possono essere (1) „se il blocco di dati in questione comprende un file di un'applicazione importante pre-identificata, posizionare nel sottoinsieme, diversamente posizionare nel rimanente insieme“, (2) „se il blocco di dati in questione comprende un file che è incluso in un avviamento iniziale del sistema informatico, posizionare nel sottoinsieme, diversamente posizionare nel rimanente insieme“, (3) „se il blocco di dati in questione comprende un file che è stato utilizzato in un periodo di soglia di tempo antecedente il ripristino, posizionare nel sottoinsieme, diversamente posizionare nel rimanente insieme“ ecc.
[0037] Utilizzando i metodi sopra descritti, la cache persistente 216 memorizza i blocchi di dati ad accesso frequente o i blocchi di dati minimi necessari per ripristinare la macchina 204 a uno stato operativo. In una situazione di emergenza, dopo un attacco dannoso, durante un ripristino d'emergenza o simili, il controller di recupero 202 ripristina i blocchi ad accesso frequente (ad es. i blocchi di dati minimi) identificati nell'elenco memorizzato nella cache persistente 216 a partire dall'immagine di backup. Successivamente, il controller di recupero 202 esegue un avvio del sistema informatico con i blocchi associati al ripristino di uno stato operativo della macchina 204 ripristinata. Il controller di recupero 202 ripristina quindi un insieme rimanente di blocchi a partire dall'immagine di backup dopo l'avvio del sistema informatico.
[0038] LaFig.4è un diagramma di flusso illustrante un metodo 400 per il ripristino selettivo di un sistema informatico a uno stato operativo, in conformità a un esempio della presente divulgazione.
[0039] All'operazione 402, il controller di recupero 202 affida all'agente di backup e recupero 205 il compito di creare un'immagine di backup di un sistema informatico, ad esempio la macchina 40 illustrata nella Figura 2, comprendente un insieme di blocchi di dati.
[0040] All'operazione 404, il controller di recupero 202 controlla l'agente di backup e recupero 205 per memorizzare l'immagine di backup del sistema informatico in un database di archiviazione. In un esempio, il database di archiviazione è l'archivio offline sicuro.
[0041] All'operazione 406, il controller di recupero 202 identifica un blocco di dati a partire dall'insieme di blocchi di dati. All'operazione 408, il controller di recupero 202 determina se il blocco di dati identificato è necessario per mantenere operativo il sistema informatico. In un esempio, per operativi si intende trovarsi in uno stato operativo dopo il completamento dell'avvio del computer o quando una pluralità di applicazioni pre-identificate e dati importanti associati alla pluralità delle applicazioni pre-identificate è funzionale e accessibile sul sistema informatico, come definito da apprendimento automatico o da un amministratore o una combinazione dei medesimi.
[0042] Se l'assenza del blocco di dati impedisce al sistema informatico di essere operativo, all'operazione 410, il controller di recupero 202 identifica il blocco di dati come parte di un sottoinsieme di blocchi di dati che dovrebbero essere prioritarizzati durante il ripristino. In un esempio, il sottoinsieme di blocchi di dati è determinato dal controller di recupero 202 che avvia una macchina virtuale di test e ripristina l'immagine di backup a un disco virtuale della macchina virtuale di test. Un driver del filtro intercetta richieste dal disco rigido virtuale verso l'immagine di backup durante l'avvio per determinare quali blocchi di dati sono necessari per ripristinare la macchina a uno stato operativo - tali blocchi di dati vengono registrati e memorizzati nella cache persistente. In un esempio alternativo, il controllo di recupero inserisce un driver di monitoraggio nella macchina 204, osserva l'avvio della macchina e i blocchi di dati richiamati durante l'avvio. Tali blocchi di dati richiamati vengono determinati come „blocchi ad accesso frequente“ e sono memorizzati in una cache persistente per il futuro recupero rapido.
[0043] Quando la macchina virtuale si avvia, la macchina virtuale legge dati dal disco rigido. Il disco viene virtualizzato (montato) mediante un driver in modo tale che i dati vengano letti direttamente dall'archivio di backup (ad esempio archivio di backup 214). I dati che sono già stati letti (o scritti dalla macchina virtuale) vengono posizionati nel disco virtuale „reale“ in modo che non vengano effettuate letture ripetute dall'archivio. Durante l'avvio della macchina virtuale, non tutti i dati necessari per la successiva elaborazione vengono letti. Ad esempio, l'intero database non è leggibile da programmi come Exchange o SQL. L'insieme minimo di dati è costituito dai dati che la macchina virtuale legge fino al punto in cui la macchina virtuale è ritenuta in uno „stato operativo“ come quello definito in precedenza.
[0044] In un esempio, un driver del filtro dedicato viene utilizzato per tenere traccia di quali settori, blocchi di dati o file vengono utilizzati al primo avvio. Utilizzando questo driver del filtro, è possibile determinare i file che sono necessari per ripristinare una macchina a uno stato operativo (secondo una configurazione predefinita). La macchina di test virtuale offre un ambiente realistico in cui è possibile eseguire tale tracciamento.
[0045] Tuttavia, se il blocco di dati non è necessario, il controller di recupero 202 identifica il blocco di dati come parte di un insieme rimanente di blocchi di dati (ad es. blocchi che non devono essere prioritarizzati). All'operazione 414, il controller di recupero 202 determina se vi sono altri blocchi di dati nell'insieme dei blocchi di dati da considerare (che non sono stati valutati all'operazione 408). Se esistono altri blocchi di dati da considerare, il metodo 400 ritorna all'operazione 406 e viene selezionato un altro blocco di dati. Il loop tra 406 e 414 può continuare finché tutti i blocchi di dati nell'insieme sono stati classificati.
[0046] In un esempio, successivamente a classificare ogni blocco di dati, il controller di recupero 202 può memorizzare il sottoinsieme di blocchi di dati in una cache persistente 216 e mantenere il rimanente insieme di blocchi di dati nell'archivio offline sicuro (ad esempio il disco rigido).
[0047] All'operazione 416, il controller di recupero 202 determina che il sistema informatico debba essere ripristinato. In un esempio, la determinazione che il sistema informatico debba essere ripristinatosi basa sul rilevamento di almeno uno dei seguenti elementi: (1) un attacco di malware al sistema informatico, (2) una richiesta ripristino d'emergenza e (3) un evento che causa l'arresto anomalo del sistema informatico.
[0048] All'operazione 418, il controller di recupero 202 ripristina il sottoinsieme dei blocchi di dati in modo che il sistema informatico sia operativo durante l'avvio.
[0049] All'operazione 420, il controller di recupero 202 ripristina un insieme rimanente di blocchi di dati a partire dall'immagine di backup dopo l'avvio del sistema informatico. In un esempio, il controller di recupero 202 accede all'archivio offline sicuro per recuperare l'intera immagine di backup, quindi confronta i blocchi dell'immagine con i blocchi nella cache persistente. Se i blocchi sono contenuti nella cache persistente 216, il blocco viene ignorato (essendo già stato ripristinato all'operazione 418) e solo i blocchi non trovati nella cache persistente vengono ripristinati nel sistema informatico.
[0050] LaFig.5è un diagramma a blocchi che illustra un sistema informatico 20 su cui possono essere implementati aspetti di sistemi e metodi di ripristino selettivo di un sistema informatico a uno stato operativo in conformità a un esempio. Va notato che il sistema informatico 20 può corrispondere a qualsiasi componente del sistema 100 descritto in precedenza. Il sistema informatico 20 può essere sotto forma di dispositivi di calcolo multipli oppure sotto forma di un dispositivo di calcolo unico, ad esempio un computer desktop, un notebook, un computer portatile, un dispositivo informatico mobile, uno smartphone, un tablet, un server, un mainframe, un dispositivo incorporato o altre forme di dispositivi informatici.
[0051] Come illustrato, il sistema informatico 20 include un'unità di elaborazione centrale (CPU) 21, una memoria di sistema 22 e un bus di sistema 23 che collega i vari componenti del sistema, inclusa la memoria associata all'unità di elaborazione centrale 21. Il bus di sistema 23 può comprendere una memoria bus o un controller della memoria bus, un bus periferico e un bus locale che è in grado di interagire con qualsiasi altra architettura bus. Esempi dei bus possono includere PCI, ISA, PCI-Express, HyperTransport™, InfiniBand™, Serial ATA, I<2>C e altre interconnessioni idonee. L'unità di elaborazione centrale 21 (denominata anche processore) può includere uno o più insiemi di processori dotati di core singoli o multipli. Il processore 21 può eseguire uno o più codici eseguibili da computer, implementando le tecniche della presente divulgazione. La memoria di sistema 22 può essere qualsiasi memoria per archiviare i dati utilizzati e/o programmi informatici che sono eseguibili dal processore 21. La memoria di sistema 22 può includere memoria volatile come una memoria ad accesso casuale (RAM) 25 e memoria non volatile come la memoria di sola lettura (ROM) 24, memoria flash ecc. o qualsiasi combinazione delle medesime. Il sistema di ingresso/uscita di base (BIOS) 26 può archiviare le procedure di base per il trasferimento di informazioni tra elementi del sistema informatico 20, come quelle al momento del caricamento del sistema operativo con l'utilizzo della ROM 24.
[0052] Il sistema informatico 20 può includere uno o più dispositivi di archiviazione come uno o più dispositivi di archiviazione amovibili 27, uno o più dispositivi di archiviazione non amovibili 28, o una combinazione dei medesimi. Uno o più dispositivi di archiviazione rimovibili 27 e dispositivi di archiviazione non rimovibili 28 sono collegati al bus di sistema 23 tramite un'interfaccia di archiviazione 32. In un esempio, i dispositivi di archiviazione e i corrispondenti supporti di archiviazione leggibili da computer sono moduli indipendenti dall'alimentazione elettrica per la memorizzazione di istruzioni del computer, strutture di dati, moduli di programma e altri dati del sistema informatico 20. La memoria di sistema 22, i dispositivi di archiviazione rimovibili 27 e i dispositivi di archiviazione non rimovibili 28 possono utilizzare una varietà di supporti di archiviazione leggibili da computer. Esempi di supporti di archiviazione leggibili da computer includono memoria della macchina, come cache, SRAM, DRAM, zero capacitor RAM, twin transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; memoria flash o altra tecnologia di memorizzazione come unità a stato solido (SSD) o unità flash; cassette magnetiche, nastro magnetico e archiviazione su disco magnetico come unità di disco rigido o floppy disc; archivio ottico come in compact disc (CD-ROM) o dischi versatili digitali (DVD); e qualsiasi altro supporto che possa essere utilizzato per archiviare i dati desiderati e a cui sia possibile accedere tramite il sistema informatico 20.
[0053] La memoria di sistema 22, i dispositivi di archiviazione rimovibili 27 e i dispositivi di archiviazione non rimovibili 28 del sistema informatico 20 possono essere utilizzati per archiviare un sistema operativo 35, ulteriori applicazioni del programma 37, altri moduli del programma 38 e dati del programma 39. Il sistema informatico 20 può includere un'interfaccia periferica 46 per la comunicazione dei dati da dispositivi di input 40, come tastiera, mouse, stilo, controller di game, dispositivo di immissione vocale, dispositivo di ingresso touch o altri dispositivi periferici, come una stampante o uno scanner tramite una o più porte I/O, come una porta seriale, una porta parallela, un bus seriale universale (USB) o altra interfaccia periferica. Un dispositivo di visualizzazione 47 come uno o più monitor, proiettori o display integrati, possono essere collegati al bus del sistema 23 attraverso un'interfaccia di uscita 48, come un adattatore video. Oltre ai dispositivi di visualizzazione 47, il sistema informatico 20 può essere dotato di altri dispositivi di uscita periferici (non illustrati), quali altoparlanti e altri dispositivi audiovisivi.
[0054] Il sistema informatico 20 può operare in un ambiente di rete, utilizzando un collegamento di rete a uno o più computer remoti 49. Il computer remoto (o i computer remoti) 49 possono essere postazioni di lavoro o server informatici locali, comprendenti la maggior parte o tutti i suddetti elementi nel descrivere la natura di un sistema informatico 20. Altri dispositivi possono inoltre essere presenti nella rete informatica, quali ad esempio, non in modo esaustivo, router, stazioni di rete, dispositivi peero altri nodi di rete. Il sistema informatico 20 può includere una o più interfacce di rete 51 o adattatori di rete per la comunicazione con i computer remoti 49 tramite una o più reti quali una rete informatica a raggio locale (LAN) 50, una rete informatica ad ampio raggio (WAN), un intranet e Internet. Esempi dell'interfaccia di rete 51 possono includere un'interfaccia Ethernet, un'interfaccia Frame Relay, un'interfaccia SONET e interfacce wireless.
[0055] Il supporto di archiviazione leggibile da computer può essere un dispositivo tangibile che può conservare e memorizzare il codice del programma sotto forma di istruzioni o strutture di dati accessibili da un processore di un dispositivo di calcolo, come un sistema computerizzato 20. Il supporto di archiviazione leggibile dal computer può essere un dispositivo di archiviazione elettronico, un dispositivo di archiviazione magnetico, un dispositivo di archiviazione ottico, un dispositivo di archiviazione elettromagnetico, un dispositivo di archiviazione a semiconduttori oppure qualsiasi combinazione idonea dei medesimi. A titolo esemplificativo, tale supporto di archiviazione leggibile da computer può comprendere una memoria ad accesso casuale (RAM), una memoria di sola lettura (ROM), un EEPROM, una memoria di sola lettura a disco compatto portatile (CD-ROM), un disco digitale versatile (DVD), una memoria flash, un disco rigido, un dischetto per computer portatile, un memory stick o perfino un dispositivo codificato meccanicamente come schede perforate o strutture in rilievo in una scanalatura su cui siano registrate istruzioni. Secondo il presente utilizzo, il supporto di archiviazione leggibile dal computer non deve essere inteso come segnali transitori in sé, ad esempio onde radio o altre onde elettromagnetiche a propagazione libera, onde elettromagnetiche propagantisi attraverso una guida d'onda o supporti di trasmissione o segnali elettrici trasmessi via cavo.
[0056] Le istruzioni di programma leggibili da computer qui descritte possono essere scaricate nei rispettivi dispositivi di calcolo da un supporto di memorizzazione leggibile da computer o un computer esterno o un dispositivo di archiviazione esterno tramite una rete, ad esempio Internet, una rete di area locale, una rete ad ampio raggio e/o una rete wireless. La rete può comprendere cavi di trasmissione in rame, fibre ottiche di trasmissione, trasmissione wireless, router, firewall, interruttori, computer gateway e/o server perimetrali. Un'interfaccia di rete in ogni dispositivo di calcolo riceve istruzioni di programma leggibili da computer a partire dalla rete e inoltra le istruzioni di programma leggibili da computer per archiviare in un supporto di archiviazione leggibile da computer all'interno del rispettivo dispositivo di calcolo.
[0057] Le istruzioni di programma leggibili da computer per eseguire le operazioni della presente divulgazione possono essere istruzioni di assemblaggio, architettura dell'insieme delle istruzioni (ISA), istruzioni macchina, istruzioni dipendenti dalla macchina, microcodice, istruzioni firmware, dati sull'impostazione dello stato o un codice sorgente o codice oggetto scritto in qualsiasi combinazione di una o più linguaggi di programmazione, incluso un linguaggio di programmazione orientato all'oggetto e linguaggi di programmazione procedurali convenzionali. Le istruzioni di programma leggibili da computer possono eseguire interamente sul computer dell'utente, in parte sul computer dell'utente sotto forma di pacchetto software stand-alone, in parte sul computer dell'utente e in parte su un computer remoto o interamente sul computer o server remoto. In quest'ultimo scenario, il computer remoto può essere collegato al computer dell'utente tramite qualsiasi tipo di rete, ivi inclusa una LAN o WAN, oppure il collegamento può essere effettuato verso un computer esterno (ad esempio tramite Internet). In un esempio, la circuitistica elettronica, ivi inclusi, ad esempio, il circuito logico programmabile, gate array programmabili in campo (FPGA) o array logici programmabili (PLA), può eseguire istruzioni leggibili da computer utilizzando informazioni di stato delle istruzioni di programma leggibili da computer per personalizzare il circuito elettronico al fine di eseguire aspetti della presente divulgazione.
[0058] In vari esempi, i sistemi e i metodi descritti nella presente divulgazione possono essere indirizzati in termini di moduli. Il termine „modulo“ qui utilizzato si riferisce a un dispositivo del mondo reale, un componente o una disposizione di componenti implementati tramite hardware, ad esempio da un circuito integrato specifico per l'applicazione (ASIC) o FPGA, ad esempio, o come combinazione di hardware e software, ad esempio da un sistema a microprocessore e un insieme di istruzioni per implementare la funzionalità del modulo, che (durante l'esecuzione) trasforma il sistema di microprocessore in un dispositivo per scopi specifici. Un modulo può inoltre essere implementato come una combinazione dei due, con determinate funzioni facilitate dal solo hardware e altre funzioni facilitate da una combinazione di hardware e software. In determinate implementazioni, almeno una porzione, e in alcuni casi tutte le porzioni, di un modulo possono essere eseguite sul processore di un sistema informatico (ad esempio quello descritto in maggiore dettaglio nella suddetta Fig. 5). Di conseguenza, ogni modulo può essere realizzato in una varietà di configurazioni idonee e non dovrebbe essere limitato ad alcuna implementazione particolare qui esemplificata.
[0059] Ai fini della chiarezza, non vengono qui divulgate tutte le funzionalità di routine delle forme di realizzazione. Sarebbe apprezzato che, nello sviluppo di qualsiasi implementazione effettiva della presente divulgazione, venissero prese numerose decisioni per specifiche implementazioni al fine di ottenere gli obiettivi specifici dello sviluppatore e tali obiettivi specifici varieranno per diverse implementazioni e diversi sviluppatori. Resta inteso che tale sforzo di sviluppo potrebbe essere complesso e richiedere tempo ma sarebbe tuttavia un'attività ingegneristica di routine per gli esperti del settore che usufruiscano di questa divulgazione.
[0060] Inoltre, resta inteso che la fraseologia o la terminologia utilizzate in questo contesto sono puramente descrittive e non limitative, per cui la terminologia o fraseologia di cui alle presenti specifiche deve essere interpretata dagli esperti del settore alla luce degli insegnamenti e delle linee guida qui presentate, in combinazione alle conoscenze degli esperti nel rispettivo o nei rispettivi campi. Inoltre, qualunque termine riportato nelle specifiche o nelle rivendicazioni non è da intendersi come attribuibile a un significato insolito o speciale, salvo esplicitamente indicato come tale.
[0061] Sebbene siano state illustrate e descritte forme di realizzazione e applicazioni, risulta evidente agli esperti del settore che hanno il beneficio di consultare la presente divulgazione, che sono possibili molte più modifiche rispetto a quelle citate in precedenza, senza discostarsi dall'ambito di protezione delle rivendicazioni.

Claims (10)

1. Metodo per il ripristino selettivo di un sistema informatico a uno stato operativo, comprendente: creare un'immagine di backup del sistema informatico comprendente un insieme di blocchi di dati; archiviare l'immagine di backup del sistema informatico in un database di memorizzazione dell'archivio; determinare un sottoinsieme di blocchi di dati dell'immagine di backup che sono necessari per mantenere operativo il sistema informatico: creare e avviare una macchina virtuale in base all'immagine di backup; monitorare dei blocchi di dati acceduti a partire dall'immagine di backup durante l'avviamento della macchina virtuale; identificare i blocchi di dati monitorati nel sottoinsieme; in risposta alla determinazione che il sistema informatico debba essere ripristinato: il ripristinare il sottoinsieme di blocchi di dati in modo che il sistema informatico sia operativo durante l'avvio; e il ripristinare i blocchi di dati di detto insieme ad esclusione dei blocchi di dati di detto sottoinsieme dall'immagine di backup dopo l'avvio del sistema informatico, il metodo comprendente inoltre: posizionare i blocchi di dati monitorati in una cache di dati persistente ad accesso rapido, e dove detto ripristinare il sottoinsieme di blocchi di dati è effettuato da detta cache di dati persistente ad accesso rapido.
2. Metodo secondo la rivendicazione 1, che monitora i blocchi di dati mediante un driver di filtro.
3. Metodo secondo la rivendicazione 1, in cui i blocchi di dati monitorati vengono richiesti, da un disco virtuale della macchina virtuale, a partire dall'immagine di backup.
4. Metodo secondo la rivendicazione 1, in cui determinare il sottoinsieme comprende: rilevare che il sistema informatico ha iniziato il primo avvio; monitorare i blocchi di dati letti da un disco del sistema informatico durante il primo avvio; e identificare i blocchi di dati monitorati nel sottoinsieme.
5. Metodo secondo la rivendicazione 4, in cui l'immagine di backup viene memorizzata in un primo tipo di archivio del sistema informatico, comprendente inoltre: posizionare i blocchi di dati monitorati in un secondo tipo di archivio.
6. Metodo secondo la rivendicazione 5, in cui il primo tipo di archivio è un archivio offline sicuro e il secondo tipo di archivio è un archivio ad accesso frequente, e in cui le velocità di lettura e scrittura dei dati del secondo tipo di archiviazione sono più rapide rispetto alle velocità di lettura e scrittura dei dati del primo tipo di archiviazione.
7. Metodo secondo la rivendicazione 1, in cui determinare il sottoinsieme comprende inoltre: valutare una criticità dei blocchi di dati ed eventi che si verificano in un avvio iniziale del sistema informatico, in cui la criticità è definita in base al fatto che i blocchi di dati e gli eventi soddisfano criteri predeterminati; creare una serie di regole basate sulla criticità valutata; applicare l'insieme di regole ai blocchi di dati per dividere i blocchi di dati nel sottoinsieme e in un insieme rimanente.
8. Metodo secondo la rivendicazione 1, comprendente inoltre: organizzare l'insieme dei blocchi di dati in un ordine in cui l'insieme dei blocchi di dati devono essere letti durante il ripristino; e eseguire il ripristino dell'insieme dei blocchi di dati sulla base della organizzazione.
9. Metodo secondo la rivendicazione 1, in cui determinare che l'immagine di backup debba essere ripristinata si basa sul rilevamento di almeno: un attacco di malware al sistema informatico, una richiesta di ripristino d'emergenza e un evento che causa l'arresto anomalo del sistema informatico.
10. Metodo secondo la rivendicazione 1, in cui il sistema informatico è ritenuto operativo quando una pluralità di applicazioni pre-identificate e di dati importanti associati alla pluralità di applicazioni pre-identificate è funzionale e accessibile sul sistema informatico.
CH000679/2020A 2019-04-30 2020-06-08 Sistema e metodo per il ripristino selettivo di un sistema informatico a uno stato operativo. CH717425B1 (it)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962840513P 2019-04-30 2019-04-30
US16/863,233 US11249791B2 (en) 2019-04-30 2020-04-30 System and method of selectively restoring a computer system to an operational state

Publications (2)

Publication Number Publication Date
CH717425A2 CH717425A2 (it) 2021-11-15
CH717425B1 true CH717425B1 (it) 2023-08-31

Family

ID=73017358

Family Applications (1)

Application Number Title Priority Date Filing Date
CH000679/2020A CH717425B1 (it) 2019-04-30 2020-06-08 Sistema e metodo per il ripristino selettivo di un sistema informatico a uno stato operativo.

Country Status (4)

Country Link
US (3) US11249791B2 (it)
EP (1) EP3905046A1 (it)
JP (1) JP2021174495A (it)
CH (1) CH717425B1 (it)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11249791B2 (en) * 2019-04-30 2022-02-15 Acronis International Gmbh System and method of selectively restoring a computer system to an operational state
US11360856B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Manifest index for block-level snapshots
US11403185B2 (en) 2019-09-27 2022-08-02 Amazon Technologies, Inc. Network-accessible block-level snapshots
US11086542B1 (en) * 2020-02-24 2021-08-10 Amazon Technologies, Inc. Network-configurable snapshot load order properties
US11550816B1 (en) 2020-03-02 2023-01-10 Amazon Technologies, Inc. Variable replication levels for an object of a snapshot of a block storage volume

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065273B2 (en) * 2006-05-10 2011-11-22 Emc Corporation Automated priority restores
US20100262797A1 (en) 2009-04-10 2010-10-14 PHD Virtual Technologies Virtual machine data backup
EP3474138B1 (en) 2009-10-12 2023-09-13 Veeam Software Ag Item-level restoration and verification of image level backups
US8954669B2 (en) * 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US8966318B1 (en) * 2012-04-27 2015-02-24 Symantec Corporation Method to validate availability of applications within a backup image
US10846140B2 (en) * 2016-08-29 2020-11-24 Vmware, Inc. Off-site backup of workloads for multi-tenant cloud computing system
US10769032B2 (en) 2018-03-16 2020-09-08 EMC IP Holding Company LLC Automation and optimization of data recovery after a ransomware attack
US11249791B2 (en) * 2019-04-30 2022-02-15 Acronis International Gmbh System and method of selectively restoring a computer system to an operational state

Also Published As

Publication number Publication date
US11789766B2 (en) 2023-10-17
CH717425A2 (it) 2021-11-15
JP2021174495A (ja) 2021-11-01
US11698808B2 (en) 2023-07-11
US20220091876A1 (en) 2022-03-24
EP3905046A1 (en) 2021-11-03
US11249791B2 (en) 2022-02-15
US20200348876A1 (en) 2020-11-05
US20220091877A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
CH717425B1 (it) Sistema e metodo per il ripristino selettivo di un sistema informatico a uno stato operativo.
EP2840495B1 (en) Container-based processing method and apparatus
AU2012347883B2 (en) System and method for restoring application data
US8191063B2 (en) Method for migrating a plurality of virtual machines by associating files and state information with a single logical container
US10204019B1 (en) Systems and methods for instantiation of virtual machines from backups
JP6186374B2 (ja) 仮想化されたプラットフォームへ安全に移行するためのシステム及び方法
TWI547874B (zh) 虛擬機器影像分析
CH716436A2 (it) Sistema e metodo di controllo di parti di archivo alla ricerca di malware.
US20150331757A1 (en) One-click backup in a cloud-based disaster recovery system
US10255140B2 (en) Fully distributed intelligent rebuild
US10372547B1 (en) Recovery-chain based retention for multi-tier data storage auto migration system
US10534617B2 (en) Backing up virtual machine operating system data on sequential-access data storage systems
US9336131B1 (en) Systems and methods for enabling virtual environments to mount non-native storage disks
US8707107B1 (en) Systems and methods for proactively facilitating restoration of potential data failures
US9003139B1 (en) Systems and methods for recovering virtual machines after disaster scenarios
JP2021516837A (ja) 複数のクラウドサービスのデータ管理のためのシステム及び方法
US10037276B1 (en) Systems and methods for accelerating access to data by pre-warming the cache for virtual machines
US20160210198A1 (en) One-click backup in a cloud-based disaster recovery system
US11068353B1 (en) Systems and methods for selectively restoring files from virtual machine backup images
CH718167A2 (it) Sistemi e metodi per il riferimento incrociato di istantanee forensi nel tempo per l&#39;analisi delle cause alla radice
US20160266951A1 (en) Diagnostic collector for hadoop
US11188249B2 (en) Storage alteration monitoring
US20200310923A1 (en) System and method of performing recovery using a backup image
US11200206B2 (en) Maintaining metadata consistency of a mounted file system during runtime
KR102618274B1 (ko) 컨테이너에 포함된 데이터에 대한 관리 시스템 및 그 제어방법