Po roce vývoje byl uveden na trh zálohovací systém restic 0.13, který nabízí nástroje pro ukládání záloh do verzionovaného úložiště, jež může být umístěno na externích serverech a v cloudových úložištích. Data jsou uchovávána v šifrované podobě. Je možné definovat flexibilní pravidla pro zahrnutí a vyloučení souborů a složek při vytváření záloh. Podporováno je používání v Linuxu, macOS, Windows, FreeBSD a OpenBSD. Kód projektu je napsán v jazyce Go a je distribuován pod licencí BSD.
Hlavní funkce:
- Podpora ukládání záloh v lokálním souborovém systému, na externím serveru s přístupem přes SFTP/SSH nebo HTTP REST, v cloudech Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage a Google Cloud Storage, jakož i v jakýchkoli úložištích, pro které existují backendy rclone. Pro organizaci ukládání může být také použit speciální rest server, který zajišťuje vyšší výkon ve srovnání s ostatními backendy a může pracovat v režimu pouze pro doplnění, který neumožňuje mazat nebo měnit zálohy v případě kompromitace původní serveru a přístupu k šifrovacím klíčům.
- Podpora definice flexibilních pravidel pro vyloučení souborů a složek při vytváření záloh (např. pro vyloučení logů, dočasných souborů a snadno reprodukovatelných dat). Formát pravidel pro ignorování je běžný a připomíná rsync nebo gitignore.
- Jednoduché instalace, používání a obnovy informací. Pro práci se zálohami stačí zkopírovat jeden spustitelný soubor, který lze používat bez dalších nastavení. Pro samotný spustitelný soubor je zajištěna opakovatelná sestava, která umožňuje ověřit si, že binární sestava byla vytvořena z poskytovaných zdrojových textů.
- Podporovány jsou snímky, které odrážejí stav určité složky se všemi soubory a vnořenými složkami k určitému okamžiku. Při každém vytvoření nové zálohy se vytvoří s ní asociovaný snímek, který umožňuje obnovit stav v daném okamžiku. Možné je kopírování snímků mezi různými repozitáři.
- Pro úsporu dat během vytváření záloh se kopírují pouze změněná data. Pro efektivní ukládání se data v úložišti neduplikuje a dodatečné snapshoty pokrývají pouze změněná data. Systém pracuje ne s celými soubory, ale s bloky proměnné velikosti, vybíranými pomocí Rabinova podpisu. Informace jsou ukládány na základě obsahu, nikoliv názvů souborů (s názvy a objekty související s daty jsou definovány na úrovni metadat bloku). Deduplikace a vyloučení nadbytečného kopírování dat se provádí na základě SHA-256 hash hodnoty obsahu.
- Pro přehledné hodnocení obsahu úložiště a usnadnění obnovení může být snapshot se zálohou namontován jako virtuální oddíl (montáž se provádí pomocí FUSE). Také jsou k dispozici příkazy pro analýzu změn a selektivní extrakci souborů.
- Informace na externích serverech jsou uchovávány v šifrované podobě (pro kontrolní součty se používá SHA-256, pro šifrování AES-256-CTR a pro zajištění integrity jsou použity autentizační kódy na bázi Poly1305-AES). Systém je původně navržen tak, aby zálohy byly uchovávány v nedůvěryhodných prostředích a jejich získání cizími osobami by nemělo ohrozit systém. Šifrování může být zajištěno jak pomocí přístupových klíčů, tak hesel.
- Je poskytována možnost verifikace zálohy podle kontrolních součtů a autentizačních kódů pro potvrzení, že integrita souborů nebyla narušena a potřebné soubory mohou být obnoveny a nezahrnují skryté modifikace.
V nové verzi:
- Byla přidána podpora negativních vzorů vyloučení. Například "—exclude ‘/home/user/*’ —exclude ‘!/home/user/.config'" pro vyloučení veškerého obsahu /home/user kromě adresáře /home/user/.config.
- Do příkazu "backup" byl přidán režim "—dry-run", který při spuštění s volbou "—verbose" umožňuje bez skutečných změn sledovat, které soubory budou zahrnuty do zálohy.
- Do různých úložišť byla přidána podpora kontrolních součtů pro dodatečné ověření nahrávaných dat.
- Byla provedena optimalizace týmu „restore“, který nyní pracuje dvakrát rychleji. Také byla zvýšena výkonnost týmu „copy“.
Zdroj: opennet.ru
