1. Úvod
Zálohování na Linuxu patří svými možnostmi k velmi pokročilému a dneska si společně ukážeme pár takových základních nástrojů, jejich použití a rozdíly mezi němi. Jedná se o:
- rsync
- rdiff-backup
- duplicity
- rsnapshot
2. Nástroje
2.1. rsync
Je úplně ten nejvíc triviální nástroj, ze kterého vychází všechny ostatní dále popisované utilitky. Rsync umí v základu prostě zkopírovat data z bodu A do bodu B a bere v ohled změny souborů. Umí to lokálně i vzdáleně a umí k tomu nějaké pokročilé parametry. Ty jednoduché základy, ty si můžete nastudovat třeba zde. My si ukážeme jeden drobný příklad, dle kterého potom budeme porovnávat rozdíly s ostatními možnostmi:
rsync -av --append-verify -e ssh --include 'Dokumenty/' --include 'homes/' --include 'faktury/' --include 'hudba/' --include 'NetworkBackups/' --include 'PasswordDatabases/' --include 'photo/' --include --exclude '/volume1/NetworkBackups/Test' --exclude 'NetworkBackups/Les/' --exclude '@*' root@192.168.1.1:/svazek1/ /home/uzivatel/
Výše sepasaným příkazem říkáme rsyncu:
- Naloguj se na vzdálenou mašinu do adresáře svazek1/
- Zkopíruj data ze svazek1/ na můj localhost do home/uzivatel/
- Ať kopírování obsahuje adresáře Dokumenty, faktury, homes, hudba atd..
- Ať to ale neobsahuje žádný adresář, který začíná na „@“ nebo některé vnořené, třeba obsah v /NetworkBackups/Les/
- kopírování souborů je:
- e – vzdálené (přes SSH)
- a – archivační (zachovává symlinky a práva souborů, je ekvivalentní rltgoD ). Tedy pro nás to nejdůležitější – je současně i rekurzní – (kopíruje i podsoubory a podsložky v nadřazených adresářích.
- v – ukecanější než obvykle (bonzuje každou blbost do terminálu při kopírování)
- –append verify – Pokud by se přenos nějak přerušil, tak se rsync pokusí najít částečně přenesený soubor a navázat na něj (s kontrolou, že částečná data nejsou poškozená. (prostě kontrolní mechanismus jestli se zkopírovalo vše tak jak má) Toto je velmi užitečné, kopírujete-li data např přes 5GHz pásmo.
rsync má doplňkový parametr -u (update). Při užití tohoto parametru se při zálohovcání zapíše zálohovaný soubor pouze, pokud se v cíli nevyskytuje jeho novější verze.
2. 2. rdiff-backup
Je na první pohled skoro to samo jako rsync, ale není to samo.
- Na rozdíl od rsync je rdiff-backup napsán v pythonu a dělá inkrementální (přírustkové) zálohy. Umožní Vám znovu obnovit nějaký soubor a to i několik dní zpátky.
- Rozdílové zálohy jsou ukládány do podadresáře rdiff-backup-data. Tedy můžete si to představit jako rsync s doplňkem -u, ale máme dostupnou i historii změn souborů.
- rdiff-backup udělá první zálohu (aktuální snapshot) a potom každou další kopírovanou zálohu udělá přírůstkově. V momentě, když potřebujete nějakou zálohu obnovit, tak obnova se dělá tak, že se vybere konkrétní záloha a zadá se příkaz na její obnovu.
- rdiff-backup umí sice komprese souborů ale neumí šifrovat přenášený obsah.
- Rychlost kopírování je podobná rychlosti kopírování s rsync.
Chceme-li dělat vzdálené zálohy, musí být rdiff-backup na mašině, která se takto bude zálohovat. Zní to triviálně, ale je to velmi důležité. Představte si,že chcete kopírovat data ze Synology NAS na nějakou jinou mašinu. Rdiff-backup nelze použít, protože musí být instalová na NAS. Musíme to obejít namoutěním vzdálené Synology NAS pomocí sshfs a potom s namoutěným adresářem pracovat lokálně.
2.3. duplicity
Duplicity je trochu „úspornější a rychlejší“ rdiff-backup. V Hlavní rozdíly oproti rdiff-backup:
- Duplicity umí šifrovat kopírovanou zálohu a hned v základu komprimovat přenášený obsah.
- Duplicity na rozdíl od rsync nebo rdiff-backup nepočítá kontrolní součty tak, že si čekne zdrojový a cílový adresář a pak provede součet. Duplicity si hodí tyto výpočty hodí stranou při vytváření zálohy a spočítá si je lokálně a nic nepřenáší. Tím také urychluje zálohovací čas.
- Pří přenášení dat ze vzdáleného serveru není potřeba, aby vzdálený server a lokální mašina oba měli nainstalované duplicity.
Pro lepší porování rozdílů slouží následující přejaté tabulky:
2.4. rsnapshot
rsnapshot je napsán v jazyce perl a utváří virtuální image disku. Hodí se tedy pro zálohu celých operačních systémů.
- Rsnapshot vezme aktuální stav zdrojových dat a zkopíruje je tam, kam chceme. Při dalším kopírování se nevezme celý image, ale jen „hardlinky“, které odkazují na ty soubory z předchozího, které nijak nebyly změněné. Tímto způsobem naši poslední zálohy hned „vidíme“. není potřeba zadávat příkaz pro vydolování zálohy.
- rsnapshot nepodporuje komprimaci a nemusí být nainstalován na obou mašinách, je-li kopírováno vzdáleně.
- Rsnapshot není úsporný na prostor jako rdiff-backup nebo duplicity.
Pro lepší návaznost je dodána převzatá tabulka v originálním jazyce, která vyobrazuje rozdíly mezi rdiff-backup a rsnapshot.
3. Doporučení
Tak jaký nástroj tedy vybrat? Vždy to záleží na tom, na co si jako uživatel zvyknete a také nezapomínejte, že účel světí prostředky. Není jeden nástroj lepší nebo horší, vždy musí sloužit nějakému účelu. Pojďme si ukázat takové modelové důvody, kdy použít jaký nástroj:
- Pro začínajícího je nejsnažší jít po základech – tedy začít používat rsync a modifikovat jej pro své potřeby. Je nejvíc simple, dá se snadno znásilnit.
- Pokud potřebujete dělat versioning souborů, je lepší rovnou začít používat rdiff-backup místo rsync
- Kopírujete-li mezi zdrojem a cílem, který je mimo vaši bezpečnou síť a potřebujete šifrovat, je duplicity ideální.
- Pokud kopírujeme data z nějaké mašiny, na kterou nejde instalovat rdiff-backup, pak volíme duplicity.
- Máte-li mizernou konektivitu, pak je rozhodně lepší duplicity než rdiff-backup nebo rsync.
- Obsluhujete-li klienty, kteří u Vás mají VPS, pak rsnapshot je dobrá volba v momentě, kdy Vám Váš klient napíše, že potřebuje svoji 2 dny starou zálohu ze serveru.
4. Zdroje:
rsync: http://www.abclinuxu.cz/clanky/rsync-inteligentni-kopirovani-souboru
rdiff-backup: https://www.root.cz/clanky/zaloha-dat-pomoci-rdiff-backup/
Duplicity: https://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-zalohovani-pomoci-duplicity
rsnapshot: https://www.root.cz/clanky/zalohujeme-s-rsnapshot/
Porovnání rozdílů mezi rsync a rdiff-backup: https://cookuop.co.uk/rsync-vs-rdiff-backup/
Výhody a nevýhody rsync vs rdiff-backup: https://books.google.co.uk/books?id=6-w4fXbBInoC&pg=PA197&dq=rsync+vs+rdiff-backup&hl=en&sa=X&ei=qZg5U6fJFMGp7Aba6YCIAQ#v=onepage&q=rsync%20vs%20rdiff-backup&f=true
Grafy: Rozdíl mezi rdiff-backup a duplicity: https://blog.roundside.com/duplicity-vs-rdiff-backup-in-action/
tabulka: Rozdíly mezi rdiff-backup a rsnapshot: http://www.admin-magazine.com/Articles/Backups-using-rdiff-backup-and-rsnapshot/(offset)/9