Efter et års udvikling præsenteres version 0.13 af backup-systemet restic, der tilbyder værktøjer til at gemme sikkerhedskopier i et versioneret repository, som kan placeres på eksterne servere og i cloud-lagringsløsninger. Data opbevares i krypteret form. Det er muligt at definere fleksible regler for inkludering og ekskludering af filer og mapper ved oprettelse af backup. Der understøttes drift på Linux, macOS, Windows, FreeBSD og OpenBSD. Projektets kode er skrevet i Go og distribueres under BSD-licensen.
Hovedfunktioner:
- Understøttelse af opbevaring af sikkerhedskopier i lokal filsystem, på eksterne serveren med adgang via SFTP/SSH eller HTTP REST, i cloudtjenester som Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage og Google Cloud Storage, samt i enhver lagerløsning, hvor der findes backends til rclone. Der kan også anvendes en speciel rest-server til at organisere opbevaring, hvilket giver højere ydeevne sammenlignet med andre backends, og som kan fungere i en kun-tilføjelse-tilstand, der forhindrer sletning eller ændring af sikkerhedskopier i tilfælde af kompromittering server og adgang til krypteringsnøgler.
- Understøttelse af definitionen af fleksible regler for ekskludering af filer og mapper ved oprettelse af sikkerhedskopier (f.eks. til at udelukke logs, midlertidige filer og let reproducerbare data fra backupen). Formatet for eksklusionsreglerne er velkendt og minder om rsync eller gitignore.
- Simpel installation, brug og gendannelse af oplysninger. For at arbejde med sikkerhedskopier er det tilstrækkeligt at kopiere én eksekverbar fil, som kan bruges uden yderligere konfiguration. For selve den eksekverbare fil sikres der en reproducerbar build, hvilket giver mulighed for selv at verificere, at den binære build er dannet ud fra de leverede kildekoder.
- Snapshots understøttes, som reflekterer tilstanden af en bestemt mappe med alle filer og underliggende mapper på et bestemt tidspunkt. Ved hver oprettelse af en ny sikkerhedskopi oprettes der et tilknyttet snapshot, hvilket muliggør gendannelse af tilstanden på det tidspunkt. Det er muligt at kopiere snapshots mellem forskellige repositories.
- For traffic saving during backup creation, only the changed data is copied. To ensure efficient storage, data in the repository is not duplicated, and additional snapshots cover only the changed data. The system manipulates not whole files, but floating-sized blocks chosen using Rabin's signature. Information is stored tied to content, not file names (data-related names and objects are defined at the block metadata level). Deduplication and elimination of unnecessary data copying are performed based on the SHA-256 hash of the content.
- To visually assess the contents of the repository and simplify recovery, a snapshot with a backup can be mounted as a virtual partition (mounting is done using FUSE). Commands for analyzing changes and selectively extracting files are also provided.
- Information on external servers is stored in encrypted form (SHA-256 is used for checksums, AES-256-CTR for encryption, and authentication codes based on Poly1305-AES to ensure integrity). The system is originally designed for backups to be stored in untrusted environments, and the loss of a backup to unauthorized parties should not compromise the system. Encryption can be ensured using either access keys or passwords.
- The ability to verify backups using checksums and authentication codes is provided to confirm that the integrity of the files has not been compromised and that necessary files can be restored without hidden modifications.
I den nye version:
- Support for negative exclusion patterns has been added. For example, "--exclude '/home/user/*' --exclude '!/home/user/.config'" to exclude all contents in /home/user except for the directory /home/user/.config.
- The 'backup' command has added a '--dry-run' mode, which when run with the '--verbose' option, allows tracking of which files will be included in the backup without making any actual changes.
- Support for checksums for additional verification of uploaded data has been added to various storage backends.
- Optimeringen af kommandoen «restore» er gennemført, hvilket gør den to gange hurtigere. Derudover er ydeevnen for kommandoen «copy» også forbedret.
Kilde: opennet.ru
