31
Software / Zálohování na USB disk v Linuxu jednoduše
« kdy: 17. 06. 2015, 21:09:44 »
Dlouho jsem se potýkal s problémem zálohování svého linuxového stroje. Prošel jsem si spoustu nástrojů na zálohování, ale u většiny jsem vždy narazil na zásadní problémy - buďto byly příliš primitivní (neumožňovali excludovat složky, inkrementální zálohy, šifrování, komprese), nebo se jednalo o komplexní enterprise nástroje (vyžadovali vlastní SQL databázi, složitou konfiguraci, agenta, server atd... což je pro jeden počítač trošku moc).
Proto jsem uvažoval na to jak to řešit, nejdříve jsem chtěl napsat vlastní aplikaci v Pythonu, která bude dělat inkrementální ZIP soubory, řešit šifrování, mít vlastní databázi v SQLite apod., ale nebyl na to čas a i tak mi dané řešení přišlo příliš složité.
Postupem času jsem našel relativně jednoduché a funkční řešení. Používám dm-crypt, btrfs a rsync. Přes dmcrypt vytvořím šifrovaný container, v btrfs zapnu kompresi a přes snapshoty udělám inkrementální zálohy tím, že do nového snapshotu nakopíruji RSyncem změny.
Co jsem si s tím tak hrál, tak výsledky jsou velmi dobré. Všechno vyžadovalo skript o 20ti řádkách, software není potřeba žádný (obnova je tedy jednoduchá), žádná databáze a inkrementální zálohování je opravdu velmi, velmi rychlé (na 1TB disku, kde je 600GB dat například při změně 1GB proběhne inkrementální záloha na usb disk do minuty).
Celé své dílo jsem pod GNU/GPL v3 zveřejnil na https://github.com/koss822/misc
Uvažuji o následujících věcech:
Řekl bych, že dané řešení je poměrně dost elegantní, rychlé, přehledné a nabízí i možnosti jako například použití šifrovacího klíče z disku (takže není třeba zadávat heslo).
Kdyby někoho trápilo to samé, a chtěli byste to například otestovat, dát mi feedback atd., ocenil bych to... Nerad si dělám věci do šuplíku a danou utilitu už 2 měsíce ke své spokojenosti používám...
Proto jsem uvažoval na to jak to řešit, nejdříve jsem chtěl napsat vlastní aplikaci v Pythonu, která bude dělat inkrementální ZIP soubory, řešit šifrování, mít vlastní databázi v SQLite apod., ale nebyl na to čas a i tak mi dané řešení přišlo příliš složité.
Postupem času jsem našel relativně jednoduché a funkční řešení. Používám dm-crypt, btrfs a rsync. Přes dmcrypt vytvořím šifrovaný container, v btrfs zapnu kompresi a přes snapshoty udělám inkrementální zálohy tím, že do nového snapshotu nakopíruji RSyncem změny.
Co jsem si s tím tak hrál, tak výsledky jsou velmi dobré. Všechno vyžadovalo skript o 20ti řádkách, software není potřeba žádný (obnova je tedy jednoduchá), žádná databáze a inkrementální zálohování je opravdu velmi, velmi rychlé (na 1TB disku, kde je 600GB dat například při změně 1GB proběhne inkrementální záloha na usb disk do minuty).
Celé své dílo jsem pod GNU/GPL v3 zveřejnil na https://github.com/koss822/misc
Uvažuji o následujících věcech:
- Jak zajistit retention (dochází místo na usb disku, jak to detekovat a promazat starší zálohy)
- Jak vylepšit dokumentaci a vysvětlení (chtěl bych, aby to používalo více lidí, protože vím, že to dost lidí poměrně řeší)
- Nějaké nápady na rozšíření vylepšení?
Řekl bych, že dané řešení je poměrně dost elegantní, rychlé, přehledné a nabízí i možnosti jako například použití šifrovacího klíče z disku (takže není třeba zadávat heslo).
Kdyby někoho trápilo to samé, a chtěli byste to například otestovat, dát mi feedback atd., ocenil bych to... Nerad si dělám věci do šuplíku a danou utilitu už 2 měsíce ke své spokojenosti používám...