È stato pubblicato il rilascio del sistema di backup restic 0.15 che prevede l'archiviazione delle copie di backup in forma crittografata in un repository versionato. Il sistema è stato inizialmente progettato per garantire che le copie di backup siano archiviate in ambienti non affidabili e che, se una copia di backup cade nelle mani sbagliate, non dovrebbe compromettere il sistema. È possibile definire regole flessibili per includere ed escludere file e directory durante la creazione di un backup (il formato delle regole è simile a rsync o gitignore). Supporta il lavoro su Linux, macOS, Windows, FreeBSD e OpenBSD. Il codice del progetto è scritto in Go e distribuito sotto la licenza BSD.
I backup possono essere archiviati in un file system locale, su un file system esterno server Accessibile tramite SFTP/SSH o HTTP REST, nei cloud Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage e Google Cloud Storage, nonché in qualsiasi servizio di storage con backend rclone. È possibile utilizzare anche un server REST dedicato per l'archiviazione, che offre prestazioni più elevate rispetto ad altri backend e può essere eseguito in modalità append-only, impedendo l'eliminazione o la modifica dei backup se l'originale è compromesso. server e accesso alle chiavi di crittografia.
Sono supportate le istantanee, che riflettono lo stato di una directory specifica con tutti i file e le sottodirectory in un determinato momento. Ogni volta che viene creato un nuovo backup, viene creata una istantanea associata, che consente di ripristinare lo stato in quel momento. È possibile copiare istantanee tra diversi repository. Per risparmiare traffico, durante il processo di backup vengono copiati solo i dati modificati. Per valutare visivamente il contenuto del repository e semplificare il ripristino, è possibile montare un'istantanea con una copia di backup sotto forma di partizione virtuale (il montaggio viene eseguito utilizzando FUSE). Vengono inoltre forniti comandi per analizzare le modifiche ed estrarre selettivamente i file.
Il sistema non manipola interi file, ma blocchi di dimensioni variabili selezionati utilizzando la firma Rabin. Le informazioni vengono archiviate in relazione al contenuto, non ai nomi dei file (i nomi e gli oggetti associati ai dati sono definiti a livello di metadati del blocco). In base all'hash SHA-256 del contenuto, viene eseguita la deduplicazione ed eliminata la copia non necessaria dei dati. Sui server esterni, le informazioni vengono archiviate in forma crittografata (SHA-256 viene utilizzato per i checksum, AES-256-CTR viene utilizzato per la crittografia e i codici di autenticazione basati su Poly1305-AES vengono utilizzati per garantire l'integrità). È possibile verificare la copia di backup utilizzando checksum e codici di autenticazione per confermare che l'integrità dei file non sia compromessa.
Nella nuova versione:
- È stato implementato un nuovo comando di riscrittura che consente di rimuovere i dati non necessari da uno snapshot quando file che non erano originariamente destinati al backup (ad esempio file con informazioni riservate o log molto grandi e senza valore) venivano accidentalmente inclusi nella copia di backup .
- Al comando backup è stata aggiunta l'opzione “--read-concurrency” per impostare il livello di parallelizzazione durante la lettura dei file, consentendo di velocizzare la copia su unità veloci come NVMe.
- L'opzione “--no-scan” è stata aggiunta al comando backup per disabilitare la fase di scansione dell'albero dei file.
- Il comando sfoltisci ha ridotto significativamente il consumo di memoria (fino al 30%).
- Aggiunta l'opzione "--sparse" al comando di ripristino per ripristinare in modo efficiente i file con ampie aree vuote.
- Per la piattaforma Windows è stato implementato il supporto per il ripristino dei collegamenti simbolici.
- macOS ha aggiunto la possibilità di montare un repository con backup utilizzando macFUSE.
Fonte: opennet.ru
