Zálohovanie

Ján Pekľanský, 359171@mail.muni.cz

Obsah

Úvod

Zálohovanie je potrebné hlavne kôli možným technickým a softwerovým chybám. Ak k chybe dôjde, je podstatné, akú časť dát sa nám podarí obnoviť zo záloh, ale aj to ako rýchlo sme schopný dostať systém späť do pôvodného stavu. Dobrým príkladom sú inštitúcie s veľkým množstvom citlivých dát, ktoré tvoria podstatnú časť ich činnosti. Zálohovať sa však oplatí aj osobné dáta (fotky, videá, seminárne práce...) najmä pri dnešnom boome mobilných zariadený, kde vzrastá pravdepodobnosť odsudzenia celého zariadenia a tým aj všetkých (citlivých) dát.

Typy zálohovania

Nešktrukturalizované

Presunutie časti dát (súbory, celé adresáre) na pamäťové médium. Jedná sa o najjednoduchší typ zálohovania, využívajú sa externé HDD, CD, DVD, flash disky. Tento typ zálohovania je ideálny pre užívateľov, ktorý potrebujú zálohovať časť osobných dát. Nevýhodou je, že nemáme k dispozícii históriu zmien, zálohovanie väčšinou nieje zuatomatizované, takže užívateľ musí sám kontrolovať aktuálnosť záloh. K takémuto typu zálohovania je najvhodnejšie používať file manager (Nautilus, Thunar, mc), v príkazovej riadke potom existujú príkazy cp (copy) a mv (move).


cp /home/public_html/mylog.txt /mnt/Toshiba_HDD/backup/mylog.bak //kópia jedného súboru
cp -r /home/hope/files/* /home/hope/backup //rekurzívne kopírovanie podadresárov
mv /home/public_html/mylog.txt /mnt/Toshiba_HDD/backup/mylog.bak //presunutie súboru

Kompletné

Kompletné zálohovanie sa využíva pri zálohovaní celého disku. Tento typ zálohy je však náročný na miesto. Pri zálohe celého disku sa vytvorý obraz (image) disku, ktorý potom dovoľuje obnoviť systém do pôvodnej podoby. Dokážeme zálohovať buď len samostatnú partíciu alebo celý disk vrátanie partition table. Vhodné ak chceme experimentovať s veľmi drahými zariadeniami a chceme si uchovať počiatočnú konfiguráciu. :) Na tento typ zálohovania sa hodí nástroj dd.


dd if=/dev/sda1 of=proto_sda.iso bs=2048

Základné parametre sú if (input file) o of (output file) a bs (určuje veľkosť vstupných aj výstupných blokov).

Špeciálnou varáciou takéhoto zálohovania sú snapshoty. Snapshot je zálohovanie, pri ktorom prvá záloha je veľká a každá ďalšia záloha (snapshot) má spravené hardlinky na pôvodnú zálohu. Hardlinky sú spravné na celé bloku nie na jednotlivé súbory. Pokiaľ sa zmení blok, nahraje sa nový a pôvodné hardlinky zostanú nezmené. So snapshotmi dokážu pracovať napr. Súborový systém btrfs. Nástroj rsnapshot.

Inkrementálne

Je zálohovanie, pri ktorom si držíme jednú plnú zálohu a každá ďalšia záloha sú len zmeny v dátach. Takže pri obnovaní takejto zálohy potrebujeme poslednú plnú zálohu + všektz inkrementálne zálohy do bodu do ktorého chceme dáta obnoviť. Na takýto typ zálohovani je možné využiť rsync.


rsync -e ssh -va --link-dest=$dst/hourly.1 $remoteserver:$remotepath $dst/hourly.0

Reverzné

Je špeciálny prípad inkrementálneho zálhovania, kedy posledná záloha je plná a udržiavajú sa len zmeny do minulosti. Pri obnove máme k dispozícii aktuálne verzie súborov a zálohovací nástroj je schopný dopočítať rozdiel z minulosti ak požadujeme staršiu verziu súboru.


rdiff-backup source target //vytvorenie zálohy

rdiff-backup --restory-as-of [time] [target] //obnova zo zálohy

Meniace sa dáta

Pri dátach, u ktoých často dochádza ku zmene, je dobré skontrolovať ich integritu. Rsnyc ponúka túto možnosť so zapnutou voľbou -n


rsync -a -v --rsync-path=/mnt/cdrom/rsync --rsh=/usr/bin/ssh trippy:/ /data/trippy-backup
rsync -a -v -n --rsync-path=/mnt/cdrom/rsync --rsh=/usr/bin/ssh  trippy:/ /data/trippy-backup

Prvý príkaz skopíruje dáta, zatiaľ čo druhý skontroluje integritu dát.
Ďalšia možnosť je vytvárať konstrolné hash sumy pomocou md5sum alebo pomocou sha1sum:


ssh myuser@myhost “sha1sum image.img” & sudo sha1sum /dev/hda

Úložiská

Flash disk

Obrovská výhoda takéhoto tzpu úložiska je v okamžitej dostupnosit dát. V jej prospech takisto hovrí aj pomer cena/dáta a jednoduchá obsluha. Rýhclosť prenosu dát, ktorá sa reálne pohybuje okolo 320 Mb/s. Problémom je životnosť, ktorá je obmedzená na pevný počet prístupov do pamäte.

Server

Výhoda servrového zálohovania spočíva v tom, že administrátor má všetky zálohy pod kontrolou a užívateľovi odpáda povinnosť vytvárania záloh a ich aktualizovanie. Pri servrovom riešení je možné zálohovať niekoľko klientov naraz a proces zálohovania tak zautomatizovať. Zálohovať je možné celý systém alebo len určité adresáre. Dôležitá súčasť zálohovania je aj šifrovanie záloh a komunikácie po sieti. Na šifrovanie môžme využiť nástroje ako openssl alebo TrueCrypt.

NAS

V podstate platí to iste ako u servru. Dnešné NAS majú v sebe aj operačný systém, takže neslúžia len ako hlúpe úložiská. Oproti servrom však zaostávajú vo výkone a v správe diskov.

Cloud

Zálohovanie v cloude prebieha pomocou architektúry klient-server. Neslúžia väčšinou na kompletnú zálohu systému, ale ako dočasné úložsiko súborov. Ich výhoda spočíva v dostupnosti a nezávislosti na platforme. Z komerčných úložisť je možné využiť služby ako Dropbox alebo Google Drive. Owncloud aj open source cloud, ktorý je možné nasadiť na vlasntý server. Bezpečnosť je dosiahnutá pomocou HTTPS.

Páska

Páska sa využíva na zálohovanie z viacerých dôvodov. Má priaznivú cenu, poskytuje dostatočnú kapacitu na zálohovanie a jej životnosť je najdlhšia spomedzi ostatných pamäťových médii. Na prácu s páskou slúži príkaz mt. Príklad práce s páskou:


mt -f /dev/nftape erase //mazanie pásky ntftape je špeciálny súbor, ktorý umožňuje prístup k páske
mt -f /dev/nftape fsf 2 //pretáčanie pásky o dva súbory vpred
mt -f /dev/nftape retension // napnutie pásky

Nástroje

rsync

Rsync je aplikácia, ktorá dokáže synchronizovať celé súbory alebo adresáre pomocou delta encodingu. Býva v základnom balíku väčšiny unixových systémov. Rsync optimalizuje veľkosť prenášaných dát pomocou špeciálneho algoritmu. V skratke, pokiaľ je to možné, rsync nekopíruje celé súbory, ale iba rozdiely medzi nimi. Takisto zachováva oprávnenia a vlastnícke informácie u súborov, kopírovanie symbolických odkoazov. Podporuje aj kompresiu dát, čo predstavuje výhodu najmä pri zálohovaniu cez sieť.

Syntax: rsync [options] SRC DEST

Príklad práce s rsync:


rsync -av /home/xpeklans/Documents /mnt/zaloha // -a pracuje v archivačnom móde a -v je množstvo vypisovných informácií (3x)

rsync -av --exclude="*.bak" /etc /mnt/zalohy/ // --exlcude dovoľuje explicitne zadať zoznam súborov/adresárov, ktoré majú byť vynechané

rsync -av --delete /mnt/data/fotky /mnt/sda1/ //zmaže z cieľovej destinácie súbory, ktoré niesú v zdrojovej destinácii

rsync -ave ssh user@remotehost.cz:/mnt/data/fotky-dovolena /mnt/data/ // tunelované zálohovanie pomocou ssh

--compress – kompresia dát pri prenose cez sieť
--progress – progress bar prenášaných súborov

rsyncd – deamon pre rsync, rýchlejšie zálohovanie ako rsync

Ručné zálohovanie by bolo veľmi pracné, preto existuje niekoľko možností ako proces zautomatizovať, či už pomocou deamona alebo crona.

rsyncd – deamon pre rsync, rýchlejšie zálohovanie ako rsync


00 23 * * * rsync -av --delete / /mnt/zalohy/denni

rsnapshot

Rsnapshot je utility určená predovšetkým pre automatizované inkrementálne zálohovanie. Dokáže zálohovať jednotlivé súbory laeob celý systém. Je napísaná v jazyku Perl a využíva rsync, OpenSSH, GNU cp, GNU du a BSD logger. Nachádza sa v repozitároch všetkých väčších linuxových distribúcií. Konfiguračný súbor sa nachádza v /etc/rsnapshot.conf

Ukážka konfigurácie:


interval    hourly  6		//interval – prvá hodnota je názov adresára a druhá určuje počet záloh, ktoré chceme ponechať (počíta od 0)
interval    daily   7
interval    weekly  4
interval    monthly 3
snapshot_root   /mnt/backup/ //adresár do ktorého budeme zálohovať
backup  /etc/   localhost/ //prvá hodnota je adresár, ktorý chceme zálohovať, druhá je adresár za snapshot_root
backup  /home/  localhost/
backup  /var/   localhost/
exclude /var/log/ localhost/ //vynechanie adresáru

Konfigurácia sa dá overiť pomocou rsnapshot configtest.

Pri zálohovaní môžeme využiť aj ssh, v konfiguráku stačí odkomentovať 2 riadky:


cmd_ssh /usr/bin/ssh
ssh_args        -p 22 -i /cesta/k/ssh/klici

Ak chceme zálohovať viac strojov, stačí sopírovať konfiguračný súbor pre každý z nich a potom pomocu cornu zavolať:


rsnapshot -c /etc/rsnapshot.conf-server1 hourly, rsnapshot -c /etc/rsnapshot.conf-server2 hourly

Clonezilla

Clonezilla je špecializovaná linuxová distribúcia, zameraná na zálohu a obnovu diskov. Podporuje veľké množstvo súborových systémov a je plne opensource. Existuje v dvoch vairantách - Clonezilla Live a Clonezilla SE. Prvá je určená skôr na klonovanie diskov a druhá je vhodná na hromadnú inštaláciu väčšieho množstva PC po sieti.
Pri použití Live verzie sa postup pri klonovaní dá shrnúť do piatich jednoduchých korkov:

Bacula

Bacula je skupina programov, umožňujúcich admistrátorom spravovať zálohovanie počítačov po sieti. Zálohovať je možné počítače rôznych konfigurácií a operačných systémov. Dokáže zálohovať na rôzne média vrátana pások a diskov. Bacula funguje na archtitektúre Klient-Server. Bacula sa nachádza v repozitároch väčších distribúcií, takže inštalácia je možná pomocou balíčkovacieho systému.

Inštalácia:

je potrebné nainštalovať balíčky pre bacula a databázu (PostgresSQL, MySQL) na servrovej časti a bacula-client na strane klienta.

Configurácia:

Zaujímavá je práca s bconsole, ktorá nám umožňuje spravovať zálohovanie. Zapína sa pomocou príkazu bconsole a je v interaktívnom móde. Pomocou príkazu sta client, môžeme vypísať zoznam klientov a spustiť job na danom klientovy ručne.

Amanda

Amanda, čiže Advanced Marylans Automatic Network Disk Archiver, je zálohovaći sytém, ktorý umožňuje zálohovanie po LAN sieti. Umožňuje jednému, master, zálohovaciemu servru zálohovať viacerých klientov, na pásku, diskové pole alebo cloud. Amanda využíva klasické dump a GNU tar nástroje. Taktiež dokáže zálohovať klientov s operačným systémom Windows. K zálohovaniu používa buď amanda-cleint alebo samba protokol.

Inštalácia:

amanda je dostupná v repozitároch väčších distribúcií. Na servrovej aj klientskej časti je potrebné doinštalovať príslušné balíčky.

Bacula vs. Amanda
Na stránke wiki.bacula.org je možné nájsť porovnanie Bacula vs. ostatné zálohovacie systémy. V obecných diskusiách sa ľudia prikláňajú skôr k Bacula vďaka jej jednoduchému nastaveniu.

Šifrovanie dát

Dáta môžu byť šfrované už na strane klienta a takto posielané cez sieť a zálohované na servy, čím nemusíme spotrebovávať servrový čas. Nástroje ako rsync ale rsnapshot umožňujú používať na spojenie so servrom ssh protokol. Pokiaľ dáta na server dorazia nešifrované, je možné použiť nástroje ako openssl a TrueCrypt na zašifrovanie dát pre možné napadnutie zálohovacieho servra a únik citlivých informácii.

Príklad šifrovania dát s použitím nástrojov tar, openssl, dd:

Záloha dát:


tar zcvf - /array22/vol4/home | openssl des3 -salt  -k "Your-Password-Here" | dd of=/dev/st0

Čítanie súborov:

dd if=/dev/st0 | openssl des3 -d -salt -k "Your-Password-Here" | tar ztvf -

Obnova dát:

dd if=/dev/st0 | openssl des3 -d -salt -k "Your-Password-Here" | tar xzf -

Šifrovanie Bacula:

Bacula podporuje:

Na šifrovanie komunikácie použivá Bacula TLS. Pre TLS komunikáciu je potrebné TLS povoliť v konfigurácii servra a vygenerovať pomocou openssl slef-signed certifikáty.

Literatura