Univerzální zálohování
Matematicko-fyzikální fakulta Univerzity Karlovy v Praze
Daniel Douša
Řešení Význam níže využívaných slov:
server – datové úložiště určené pro zálohování
klient – aplikace běžící na stroji řídící zálohování a synchronizaci dat
Řešení projektu poskytuje několik způsobů zálohování:
• plný (kopíruje se vše)
• inkrementální (změny od poslední zálohy)
• diferenciální (změny od poslední plné zálohy)
Všechny uvedené způsoby podporují verzování a mají též
variantu se synchronizací.
Pro snížení přenosu dat lze zvolit jen zaznamenávání
přesunutých souborů bez jejich odesílání na server.
Cíl Cílem projektu bylo vyřešit distribuované
zálohování dat z více zdrojů bez nutnosti využití
aplikačního serveru. V rámci projektu
je implementace řešení problému.
Úvod do problematiky V současnosti je běžné, že jeden uživatel využívá
více zařízení pracujících s daty (počítače,
notebooky apod.). Potřeba a náročnost udržet
všechna potřebná data na všech zařízeních
se neúměrně zvyšuje s počtem strojů. Kromě
synchronizace dat je nutné řešit jejich zálohování.
Tento projekt řeší souběžné zálohování
a synchronizaci dat, čímž zabraňuje zbytečnému
hromadění dat na zálohovacím médiu.
Velkým omezením projektu je nemožnost využití
aplikačního serveru, ale pouze datového.
Bez tohoto omezení již existují plně funkční
řešení (např. SVN). Výhodou řešení s tímto
omezením je poskytnutí zálohování
a synchronizace proti síťově dostupným médiím
bez možnosti spuštění serverové aplikace (např.
datový server) nebo připojení k ní (např. blokace
firewallem).
Hlavním problémem distribuovaného přístupu
k datům je zabránění, případně řešení kolizí.
V aplikačně-serverových řešeních kolize přístupů
zcela řeší běžící aplikace, kterou v tomto projektu
nemůžeme využít.
Technologie K implementaci řešení je využit programovací
jazyk C++ a pro vytvoření grafického
uživatelského prostředí využity QT knihovny.
Závěr Navržené řešení je plně funkční. Je vhodné pro využití v případech, kdy není možné zajistit běh
aplikace na serveru nebo množství zálohovaných strojů není velké. Při větším množství strojů
a pomalejším síťovém propojení zálohovaných strojů s datovým úložištěm by bylo vhodné
časové plánování spouštění zálohování, aby se předešlo dlouhému čekání na uvolnění serveru.
Dále řešení umožňuje provádět zálohování a synchronizaci na přenosné datové médium,
které se fyzicky přesouvá mezi stroji. Poděkování Děkuji vedoucímu práce Martinu Pergelovi
za připomínky a podněty.
Další informace Daniel Douša, 2013, Bakalářská práce: Univerzální zálohování
Kontakt na autora práce: [email protected]
Při distribuovaném zálohování mohou nastat kolize nad zálohovanými daty (změna dat
u klienta i na serveru oproti poslední záloze klienta). Kolize jsou řešeny dotazy uživateli nebo
podle nastavení klienta uživatelem.
Server
Schéma zálohy
Verze
Zdroj
Adresářová struktura na serveru
Pro zabránění kolizí při současném přístupu
k serveru se využívá zamykání celého serveru dvěma
způsoby:
• přes zamykací soubor (primární)
• přímou komunikací klientů (sekundární)
Primární způsob využívá synchronizační soubor
umísťovaný na serveru. Nezaručuje pořadí čekání,
ale je vždy dostupný.
Sekundární způsob je nadstavbou primárního
umožňující předávání zámku nad serverem podle
pořadí čekání. V synchronizačním souboru jsou
informace pro připojení k majiteli zámku. Připojení
není zaručeno. Při nezdařilém spojení přechází klient
na primární způsob.
Implementace projektu zajišťuje portabilitu. V rámci bakalářské práce je implementována
podpora pro systémy Windows a Linux, ale další rozšíření je možné.
V základu jsou implementovány transportní protokoly pro lokální přenosy v systémech
Windows a Linux. Rozšíření o další protokoly lze provést umístěním vhodných knihoven
do určeného adresáře u klienta.
Komunikace mezi klienty s blokací sekundárního
způsobu jednoho klienta firewallem sítě
Synchronizační soubor
Server
Majitel zámku
Komunikace s uživatelem se provádí přes příkazový
řádek nebo okenní rozhraní. V příkazovém řádku se
uživateli hned po spuštění nabízí vypsání nápovědy.
Uživatelsky přívětivé okenní rozhraní je intuitivně
ovladatelné. Rozhraní pro komunikaci s uživatelem
je snadno rozšiřitelné.
Pro rozšiřování aplikace na další systémy jsou
připraveny testy ověřující správnou funkčnost
změněných částí aplikace. Okenní rozhraní programu