Open-source

BorgBackup

Výkonný deduplikační archivační nástroj s kompresí a šifrováním na straně klienta. Jeden z nejoblíbenějších zálohovacích nástrojů pro Linux servery a pokročilé uživatele.

2015
Rok vzniku
BSD
Licence
Python/C
Programovací jazyk
10k+
GitHub hvězd

Co je BorgBackup?

BorgBackup (zkráceně Borg) je open-source zálohovací program, který se zaměřuje na deduplikaci dat, kompresi a šifrování. Jedná se o fork staršího projektu Attic, který vznikl v roce 2015 s cílem pokračovat ve vývoji a přidávat nové funkce, které v původním projektu chyběly. Borg je napsán primárně v jazycích Python a C/Cython, což mu umožňuje kombinovat snadnou rozšiřitelnost s vysokým výkonem při zpracování dat.

Hlavní filozofií BorgBackupu je efektivní ukládání dat prostřednictvím deduplikace. Místo toho, aby se při každé záloze ukládaly kompletní kopie souborů, Borg rozděluje data na menší bloky (chunky) pomocí techniky zvané content-defined chunking. Pokud se stejný blok dat vyskytne vícekrát — ať už v různých souborech nebo v různých verzích téhož souboru — uloží se pouze jednou. Tento přístup dramaticky snižuje nároky na úložný prostor, zejména při pravidelném zálohování, kde se většina dat mezi jednotlivými zálohami nemění.

Historie a vznik projektu

Projekt Attic, ze kterého BorgBackup vychází, byl jedním z prvních zálohovacích nástrojů, který nabízel pokročilou deduplikaci na úrovni bloků dat. Když však vývoj Atticu zpomalil a komunita požadovala nové funkce a opravy chyb, skupina vývojářů se rozhodla vytvořit fork. Tak v roce 2015 vznikl BorgBackup.

Od svého vzniku prošel Borg značným vývojem. Původní verze se soustředila na stabilizaci kódu a zajištění zpětné kompatibility s repozitáři vytvořenými v Atticu. Postupně přibyly nové kompresní algoritmy, vylepšení výkonu a bezpečnostní funkce. V současné době je Borg jedním z nejpoužívanějších zálohovacích nástrojů v linuxové komunitě a těší se velké oblibě zejména mezi správci serverů a pokročilými uživateli.

Jak funguje deduplikace v Borgu

Deduplikace je klíčovou vlastností BorgBackupu, která ho odlišuje od mnoha jiných zálohovacích řešení. Borg používá techniku zvanou content-defined chunking (CDC), která rozděluje data na bloky proměnlivé velikosti na základě obsahu dat. Na rozdíl od fixed-size chunking, kde se soubor rozdělí na bloky pevné velikosti, CDC používá speciální hashovací funkci, která detekuje přirozené hranice v datech.

Výhodou content-defined chunking je, že i při drobných změnách v souboru (například vložení textu na začátek dokumentu) zůstane většina bloků stejná. Pokud by se použily bloky pevné velikosti, vložení dat na začátek by posunulo všechny následující bloky a deduplikace by byla neúčinná. CDC tento problém elegantně řeší a zajišťuje vynikající poměr deduplikace i při reálném používání.

Každý blok dat je identifikován svým hashem. Když Borg zpracovává novou zálohu, porovnává hashe jednotlivých bloků s již uloženými bloky v repozitáři. Pokud blok s daným hashem již existuje, není třeba ho znovu ukládat — místo toho se pouze vytvoří odkaz na existující blok. Tento mechanismus funguje napříč všemi archivy v repozitáři, takže deduplikace probíhá nejen v rámci jedné zálohy, ale i mezi různými zálohami a dokonce různými zálohovanými stroji.

Komprese a šifrování

BorgBackup podporuje několik kompresních algoritmů, které uživatel může zvolit podle svých priorit. K dispozici jsou algoritmy lz4 (velmi rychlý, nižší kompresní poměr), zstd (vynikající poměr rychlosti a komprese), zlib (klasický kompresní algoritmus) a lzma (nejvyšší kompresní poměr, ale pomalejší). Uživatel si může vybrat algoritmus i úroveň komprese, případně kompresi zcela vypnout pro maximální rychlost.

Šifrování v BorgBackupu probíhá na straně klienta, což znamená, že data jsou zašifrována ještě předtím, než opustí počítač uživatele. Borg používá šifrovací algoritmus AES-256 v kombinaci s HMAC-SHA256 pro zajištění integrity dat. Šifrovací klíč může být odvozen z hesla zadaného uživatelem, nebo může být uložen jako soubor s klíčem. Díky šifrování na straně klienta jsou data chráněna i v případě, že je úložiště kompromitováno — bez znalosti hesla nebo klíče nelze zálohy přečíst.

Append-only režim a bezpečnost

Jednou z důležitých bezpečnostních funkcí BorgBackupu je append-only režim. V tomto režimu může klient do repozitáře pouze přidávat nová data, ale nemůže mazat ani upravovat existující archivy. Tato funkce je klíčová pro ochranu před ransomwarem nebo kompromitovaným klientem — i kdyby útočník získal přístup k zálohovacímu klientu, nemůže zničit existující zálohy.

Append-only režim se konfiguruje na straně serveru, takže ho klient nemůže obejít. Pro skutečné mazání starých archivů (například v rámci pravidel retence) je nutné provést operaci přímo na serveru, kde běží repozitář. Tento přístup poskytuje silnou ochranu proti nejrůznějším hrozbám a je jedním z důvodů, proč je Borg oblíbený v prostředích s vysokými nároky na bezpečnost.

Vzdálené zálohování přes SSH

BorgBackup podporuje vzdálené zálohování prostřednictvím protokolu SSH. Na vzdáleném serveru musí být nainstalován Borg, ale veškerá komunikace probíhá přes standardní SSH spojení. To znamená, že není třeba otevírat žádné další porty na firewallu a lze využít stávající SSH infrastrukturu včetně autentizace klíči.

Při vzdáleném zálohování Borg přenáší pouze nové nebo změněné bloky dat, což minimalizuje objem přenesených dat. V kombinaci s kompresí to umožňuje efektivní zálohování i přes pomalejší síťová spojení. Borg také podporuje přerušení a obnovení zálohy (checkpoint/resume), takže pokud dojde k výpadku spojení, záloha může pokračovat od místa, kde byla přerušena.

Borg 2.0 — budoucnost projektu

V současné době je ve vývoji verze Borg 2.0, která přinese řadu významných změn. Mezi plánované novinky patří nový formát repozitáře s lepší škálovatelností, vylepšené šifrování s podporou moderních algoritmů, oddělení dat a metadat pro efektivnější správu a mnoho dalších vylepšení. Borg 2.0 není zpětně kompatibilní s repozitáři verze 1.x, ale bude k dispozici nástroj pro migraci.

Přestože je Borg 2.0 stále ve vývoji, současná verze 1.x je plně stabilní a vhodná pro produkční nasazení. Většina uživatelů a organizací využívá právě tuto verzi a její dlouhodobá podpora je zajištěna i po vydání nové hlavní verze.

Komunita a ekosystém

BorgBackup má aktivní komunitu vývojářů a uživatelů. Projekt je hostován na GitHubu, kde má více než 10 000 hvězd, což svědčí o jeho popularitě. Kolem Borgu vznikl bohatý ekosystém nástrojů a služeb. Nejznámějším doplňkem je borgmatic — konfigurační wrapper, který zjednodušuje nastavení a automatizaci zálohování pomocí jednoduchého YAML konfiguračního souboru.

Pro uživatele, kteří nechtějí spravovat vlastní zálohovací server, existují hostované služby jako BorgBase, které nabízejí předkonfigurované repozitáře optimalizované pro BorgBackup. Další možností je služba rsync.net, která také podporuje Borg a nabízí cenově dostupné úložiště pro zálohy.

Pro koho je BorgBackup vhodný?

BorgBackup je ideální volbou pro správce linuxových serverů, vývojáře a pokročilé uživatele, kteří oceňují efektivní deduplikaci, silné šifrování a flexibilitu příkazové řádky. Je zvláště vhodný pro scénáře, kde je třeba zálohovat velké objemy dat s minimálními nároky na úložný prostor, nebo kde je bezpečnost dat klíčovou prioritou.

Borg není ideální pro uživatele, kteří hledají grafické rozhraní nebo podporu Windows. Také není vhodný pro scénáře, kde je potřeba zálohovat přímo do cloudového úložiště bez SSH přístupu — pro tyto případy jsou vhodnější alternativy jako Restic nebo Duplicati. Přesto však BorgBackup zůstává jedním z nejefektivnějších a nejbezpečnějších zálohovacích nástrojů dostupných na trhu.

Tip pro začátečníky Pokud začínáte s BorgBackupem, doporučujeme nainstalovat i nástroj borgmatic, který výrazně zjednodušuje konfiguraci a automatizaci záloh. Borgmatic umožňuje definovat vše potřebné v jednom YAML souboru a integruje se se systemd pro automatické spouštění záloh.

Klíčové vlastnosti BorgBackupu

📦

Deduplikace

Content-defined chunking pro maximální úsporu místa. Stejná data se ukládají pouze jednou, i napříč různými archivy a stroji.

🔒

Šifrování

AES-256 šifrování na straně klienta s HMAC-SHA256 pro integritu dat. Vaše zálohy jsou chráněny i na nedůvěryhodném úložišti.

🗜️

Komprese

Výběr z algoritmů lz4, zstd, zlib a lzma. Možnost optimalizovat mezi rychlostí a kompresním poměrem podle potřeby.

🛡️

Append-only mód

Ochrana před ransomwarem — klient může pouze přidávat data, ale nemůže mazat existující zálohy. Bezpečnost na úrovni serveru.

🌐

Vzdálené zálohy

Zálohování přes SSH na vzdálený server. Přenos pouze změněných bloků dat pro maximální efektivitu i na pomalých linkách.

📁

FUSE mounting

Připojení archivů jako virtuálního souborového systému. Snadné procházení a obnovení jednotlivých souborů bez extrakce celé zálohy.