Rješenje za backup: BackupPC
Soni Jozeljic Ivica Kordic
Sadržaj |
Uvod
Backup je proces kopiranja podataka. Podatci se kopiraju radi njihovog sačuvanja u slučaju greške pri radu računalnih komponenti ili neke vrste katastrofe koja može dovest do njihovog uništavanja. Sačuvanje podataka je kritičan dio poslovanja velikih i malih poduzeća, razlog tomu je što pri gubitku podataka mogu nastati nepovratne novčane štete. Kao i za poduzeća , tako je sačuvanje podataka bitno i za osobnu upotrebu. Nažalost većina korisnika osobnih računala zanemaruje tu potrebu iako imaju poveći izbor mogućnosti sačuvanja tih podataka.
Neke od mogućnosti backup-a podataka za korisnike osobnih računala su npr. da kritični sadržaj svog tvrdog diska pohrane na vanjske medije kao što su DVD ili Blu-Ray. Također postoji mogućnost da svoje podatke dižu na tzv. "cloud" kao što je Amazon Simple Storage Service ili jednostavno podatke pohrane na eksterni disk. Sve to mogu učinit "ručno" ako žele, ili uz malo truda upotrijebiti neki od alata koji omogućuju automatski ažuriran backup.
Velika poduzeća se naravno ne mogu koristiti tako "jednostavnim" načinima sačuvanja podataka. Razloga iz toga postoji više, ne samo da nije financijski opravdano, već se postavlja i pitanje sigurnosti tih podataka. Pogotovu kada se radi o prenosivim medijima ili servisima koji se ne nalaze na intranetu poduzeća.
BackupPC je open source alat pomoću kojeg mrežni administratori takvog jednog poduzeća mogu postaviti vlastiti server za backup kritičnih podataka. BackupPC je alat visokih performansa za backup podataka Linux, Windows i MacOS računala. Pisan je u jeziku Pearl te za arhiviranje i raspakiranje koristi SMB protokol te koristeći Samba-u uz tar pomoću ssh /rsh /nfs ili rsync-a
Mogućnosti BackupPCa
- Smanjenje korištenja diskovnog prostora i općenito korištenje tvrdog diska. To se ostvaruje tako da se identični podatci s više računala pohranjuju samo jednom.
- Dodatni načini kompresije podataka također smanjuju količinu zahtijevanog diskovnog prostora. S obzirom na to da se samo novi podatci moraju kompresirati smanjuje se vrijeme zauzeća procesora.
- Za korištenje nije nužno upotrebljavat klijentski program. Za pohranu i sažimanje na Windows platformi se koristi standardni SMB protokol. Za linux platformu se rabi tar putem ssh/rsh ili nfs sustava. Također je moguće ostvarivati backup putem klijentskih računala koja rabe rsync ili rsyncd.
- Web sučelje administratorima dozvoljava pregledavanje log datoteka, konfiguracije, trenutačnog statusa te im omogućava da iniciraju i zaustave ažurirane backupove. Administratori također imaju mogućnost pregledavat sačuvane podatke te ih naravno i obnoviti u slučaju potrebe.
- Više načina povratka podataka je omogućeno, direktno putem smb klijenta, tar ili rysinc-a ili skidanjem zip ili tar datoteke na vanjski mediji.
- Podržava mobilnu okolinu u kojoj su prijenosna računala samo povremeno spojena na mrežu, te imaju dinamičan IP.
- Fleksibilno konfiguriranje parametara dozvoljava paralelno izvođenje backupa. Konfiguracije sadrže parametre kao što su to koji backup, kada , iz kojeg direktorija u koji , njegovu vrstu i druge. Također je moguće obavještavanje putem e-mail clienta. Parametre je moguće postaviti za cijeli sustav ili pojedinačno za svako računalo.
- Korisnicima se šalju obavijesti u slučaju da njihovo osobno računalo duže vrijeme nije bilo dostupno za backup.
- BackupPC je testiran na sustavima Linux, Freeenix, Solaris, Linux te Windows 95/98/2000 i XP.
- Također je moguće imati veći broj potpunih backupa. To znači da je moguće imati potpune backupe na računala koji su npr. u razmaku starosti od 2, 4, 8 ili 16 tjedana.
Specifičnosti backupa
Inkrementalni backup je takav tip backupa pri kojem su novo pohranjeni podatci razlika podataka između prošlog ili potpunog backupa. BackupPC podržava višeslojni inkrementalni backup. Potpuni backup pri tomu sadrži inkrement "0" a daljnji inkrementi "N". Naredba $Conf{IncrLevels} se koristi za specificiranje sloja idućeg inkrementa. U slučaju da se koriste višeslojni inkrementi vjerojatno je nužan veći broj inkrementa kako bi se moglo rekonstruirati potpuni backup.
Za SMB i tar pohranu BackupPC koristi modifikaciju time (mtime) da bi odredio koje su razlike u datotekama od posljednjeg inkrementa. Drugim riječima to sprječava mogućnosti da SMB ili tar prepoznaju obrisane, preimenovane ili nove datoteke čije su se modifikacije dogodile prije prošlog/ najmlađeg inkrementa.
U slučaju neuspjelog potpunog backupa , stvara se djelomični backup. Nad djelomičnom backupu moguće je obavljati sve funkcije kao i na potpunom backupu. Djelomični backup se briše u slučaju pokretanja novog potpunog backupa osim kod rsync metode , gdje se djelmoični backup koristi kao "nastavak" potpunog backupa.
Također BackupPC "poola" identične datoteke koristeći tzv. "hardlinks". To znači da se datoteke jednakog sadržaja brišu, no ne pohranjuje se njihov "meta data" kao što su vlasništvo, dopuštenja ili vrijeme modifikacije na istom mjestu. Tako se npr. dvije identične datoteke istog korisnika backupaju, ali se jedna briše i postaje datoteka oboje korisnika. Pri vraćanju tih datoteka se prosljeđuju njihovim korisnicima te se naknadno sa drugog mjesta pohrane tim datotekama pridružuju vlasništvo, dopuštenja i zadnje vrijeme modifikacije koje je pohranjeno.
Ovisno o potrebama korisnika nužno je izraditi tzv. "Backup policy". BackupPC nije dizajniran kako bi omogućio potpunu rekonstrukciju pokvarenih/uništenih tvrdih diskova. Razlog tomu je što BackupPC radi samo kopiju na jednom mjestu. Da bi se povećala sigurnost i omogućilo potpuno rekonstruiranje tvrdih diskova nužno je podatke koje BackupPC pohranjuje pohraniti još nekom dodatnom metodom. BackupPC za to ima nativnu funkciju arhiviranja , no ona nije automatizirana i administrator ju sam mora pokrenuti i izvršiti.
Instalacija
BackupPC možemo instalirati na 2 načina, koristeći Ubuntu softver center ili ručno preko terminala.
Instalacija preko Ubuntu softver centra
Koristeći ubuntu softver center imamo sljedeće korake. Prvi korak je pronalaženje istog na centru
Nakon pronalaska tu nam se otvaraju pojedine opcije o programu. Vidimo koje addone možemo s njim instalirati, neke općenite namjene programa, verziju, screenshotove i slično. Nakon toga kliknemo na dugme Install u gornjem desnom kutu I instalacija će početi. Ubrzo dolazimo do drugog koraka, a to je odabir servera na koji ćemo instalirati BackupPC.
Kao što se vidi na slici, BackupPC podržava bilo koju instalaciju web servera, ali automatsko konfiguriranje podržava samo Apache. Nakon odabira Apache servera kliknemo na gumb Forward I nastavljamo na treći korak. U trećem koraku nam program daje podatke za pristup web serveru na samom početku.
Ti podatci su username I lozinka koji nam kasnije trebaju za autentikaciju na server. I ovime završava komunikacija između korisnika I programa tijekom instalacije. Nakon ovog, instaliraju se preostali paketi I alat je spreman za korištenje.
Instalacija putem terminala
Drugi način instalacije je putem terminala. Također je relativno jednostavan jer se sastoji samo od utipkavanja sljedeće naredbe
-sudo apt-get install backuppc
To se vidi I na slici
Nakon upisivanja naredbe, slično kao I u prethodnom načinu, slijedi odabir web servera u našem slučaju Apache web server
Nakon odabira servera, odabiremo Ok I nastavljamo dalje sa instalacijom. Nakon što smo odabrali web server, program će nam dati početne podatke za logiranje za autentikaciju na web sučelje kao I kod prvog načina instalacije. To izgleda ovako
Korištenje aplikacije
U narednim poglavljima osvrnut ćemo se na korištenje aplikacije I na pojedine opcije koje ona nudi, te će biti opisane glavne karakteristike aplikacije I njene mogućnosti.
Prvi susret s aplikacijom
Nakon upisivanja “ivica-desktop/backuppc” sljedećeg linka u preglednik otvara nam se forma za autentikaciju na serveru. Sjećate se onih podataka za prijavu koje ste dobili prilikom instalacije programa? Ti podatci se unose u formu na slici I klikom na gumb OK se prijavljujemo u sustav
Ukoliko je prijava bila uspješna pojavit će se početna stranica programa kao što je prikazano na slici
Snalaženje u sučelju
Nakon što smo učitali web sučelje za rad sa BackupPC-em, dobro je znati nekih osnovnih par stvari o tome gdje se što nalazi. U lijevom gornjem kutu imamo opciju odabira hosta kojeg želimo pregledavati. Ispod toga redom imamo opcije pregledavanja statusa hostova, neke općenite informacije o hostovima, editiranje konfiguracija, editiranje hostova, administratorske opcije, pregledavanje LOG zapisa sustava (sadašnjeg I prijašnjih LOG zapisa), podatci o radu sa maiovima, backupi u redu čekanja, pregled dokumentacije, wiki BackupPC-a I SourceForge gdje se vide svi detalji o sustavu od koda u datotekama I slično. To se jasno vidi na slici
Dodavanje novog hosta
Dodavanje novog hosta se obavlja pod opcijom EditConfi. Kada odaberemo tu opciju otvori nam se Main Configuration Editor. Nakon toga pod opcijom Host kliknemo na gumb Add I u kolonu host napišemo ime željenog hosta a u kolonu user, napišemo backuppc. U suprotnom neće funkcionirati. Pod opcijom more users možemo dodati I još neke korisnike. Na slici je prikaz izgleda Main Configuration Editor I ostalih kolona.
Backup
Nakon odabira nekog od kreirnih hostova, web sučelje nam pokaže neke podatke o njemu, kao na primjer povjest backup-a ili restora. Pored prikazanih informacija, u gornjem lijevom kutu imamo navigaciju u kojoj su ostvarene funkcije pregledavanja backup-a, pregledavanje log zapisa, pregledavanja povjesti grešaka i na kraju opcija za editiranje postavki hosta. Na stranici se nalaze 3 gumba. Zapravo u početku se nalaze 2 gumba, te se kasnije nakon izrade full backup-a pojave 3 gumba. Ta 3 gumba okidaju sljedeće operacije pokretanje inkrementalnog backup-a, pokretanje full backup-a, te zaustavljanje prije pokrenutog backup-a. Ovo je prikazano na slici
Backup se odvija tako što najprije uredimo postavke na hostu, a zatim okinemo operaciju pritiskom na određeni gumb. Postavke kojima možemo upravljati su algoritam backup-a, podešavanje slanja maila o uspješnom ili neuspješnom backup-u, postavljanje nekih tehničkih postavki oko backup-a, te postavljanje rasporeda backup-a.Ranije smo spomenuli koje sve algoritme backup-a alat podržava pa sada nećemo o tom, ali ćemo napomenuti samo kako se algoritam bira pod opcijom XferMethod, a pod opcijom TarShareName odabiremo direktorij ili više njih koji želimo backupirati. To se vidi na sljedećoj slici
Nakon što smo to sve postavili, direktorij ili više njih su se mogu backupirati na server. Nakon ovoga odlazimo na HostSummary, odabiremo host kojeg smo konfigurirali i započnemo backup. Nakon što se izvrši operacija backupa, on je vidljiv pod opcijom BrowseBackup. To izgleda kao što je prikazano na slici. Na slici smo backupirali /etc direktorij
Restore
Restore opcija na backupPC-u se nalazi pod Browse backups. Kada otvorimo taj dio web aplikacije, vidimo pri vrhu backup koji pregledavamo. Ispod toga, upisujemo direktorij unutar tog backupa koji želimo pogledati. Nakon što smo odabrali te dvije opcije, prikazuje nam se sadržaj tog direktorija I odmah imamo opciju da označimo dokumente nad kojima želimo izvršiti restore. Nakon što smo odabrali datoteke koje želimo povratiti, kliknemo na restore selected files I pokrećemo operaciju restoreanja. Nakon toga nam se otvara Restore Options for host_name (u našem slučaju, localhost).
Imamo 3 opcije, direkt restore, Download Zip archive I Download Tar archive.
Direct Restore opcija vraća podatke iz određenog backupa na server. U slučaju da su se neki dokumenti promijenili, oni će biti zamijenjeni I njihov se sadržaj gubi.
Download Zip archive downloda Zip file sa podatcima iz odabranog backupa
Download Tar archive downloada Tar arhivu sa podactima iz odabranog backupa
RsyncD Windows 8
Kao naš sustav koji zahtjeva backup smo odabrali Windows 8. Razlog tomu je što u slučaju kućne uporabe većina računala koriste operacijski sustav Windows. Također smatramo da je zapravo najzanimljivije ova konfiguracija kada backup server koristi Ubuntu , a klijentsko računalo neku inačicu Windows-a. Postoje 2 načina kako postaviti interakciju između Windows i Ubuntu sustava.
1. Način je da se koristi SSH uz rsync.
2. Način je da se koristi rsyncd uz pomoć cgywin.
Obadva sustava nude rsync metodu pohrane podataka. Razlika je u tomu da se rsyncd brži i bolji u slučaju da se backup vrši pomoću serveru koji se nalazi na intranetu. Dok je ssh putem rsynca bolji za internetsku pohranu. Razlog tomu je da su podatci tako bolje zaštićeni od vanjske intruzije.
Pošto se mi nalazimo na lokalnoj mreži, mi smo odabrali rsyncd inačicu putem cgywin.
Priprema Windows računala
Za postavljanje rsyncd sustava za Windows sučelje nužno je posjetiti ovaj link [1] te skinuti .zip datoteku u kojoj se nalazi readme.txt datoteka sa uputama. 1. Korak je uređivanje rsyncd.secrets datoteke. U datoteci se umjesto UUU:PPP postavlja username i password. Na slici je postavljen jednostavan username i password "Soni/Soni", radi jednostavnosti.
U drugom koraku postavljamo rsyncd.config datoteku. U toj datoteci nužno je "auth user=" postaviti na prijašnje odabrani usernam, backuppc
kao i prikazano na slici.
Također je nužno postaviti lokaciju rsyncd.secret datoteke ukoliko se ona nazali na drugoj lokaciji.
Pod "hosts allow=" nužno je izbrisati prefix # , te postaviti IP adresu BackupPC servera.
Također imamo izbor dali želimo omogučiciti BackupPC da rabi restore funkicju. Ako ne želimo da server ima pristup našem računalu
"read only= " postavljamo na true , u slučaju da želimo postavljamo na false.
Ako je "read only= true" onda jedini način da rabimo restore funkciju jest da nam admin sa servera prosljedi .zip datoteku koja sadrži
sve naše backupane podatke.
Također je na dnu datoteke nužno obaviti identične izmjene. Vidljivo na slici.
Dalje u config datoteci postavljamo putanju foldera u kojemu se nalaze datoteke za pohranu "path= ".
Bitno za napomenut je da se ne koristi znak "\" kao uobičajno, nego smo prisiljeni koristiti znak "/" pri unosu putanje.
U slučaju da ovaj parametar ne diramo BackupPC će pohraniti sve datoteke
koje se nalaze unutar Documents foldera na računalu korisnika.
Pod "comment= " stavljamo opis podataka za pohranu. Možemo ostaviti i
prazno mjesto, no radi boljeg snalaženja sa podatcima poželjno je komentirati.
Na donjoj slici je prikazano postavljanja dopuštenja na rsyncd.secrets datoteku. Bitno je datoteku postaviti na read only kako se njezin sadržaj nebi mjenjao.
Pokretanje rsync.exe je moguće na više načina. Rsync.exe je zapravo inačica daemon-a. Možemo ju ručno pokretati pomoću cygrunsvr.exe ili ju možemo postaviti da se automatski pokreće pri dizanju sustava. U tom slučaju rsync.exe "postaje" servis. Da bi postala servis nužno je da putem Command prompta upišemo na slici prikazanu liniju koda. Bitno je CMD pokrenut sa administrativnim pravima kako bi se naredba uspješno izvela. Postoji mogućnost da se servis ne želi pokrenuti. U tom slučaju preporučujemo brisanje servisa pomoću cygrunsrv.exe. Ovisno o sustavu briše se na različite načine. Za pomoć preporučujemo u CMD upisati cygrzunsrv --help kako bi se ispisale potebne naredbe. Nakon toga je preporučljivo se prebaciti na "skrivenog" administrativnog korisnika sustava, te ponoviti instalaciju rsync.exe. Kada je rsync.exe uspješno pokrenut, u folderu gdje se nalazi će se stvoriti nova datoteka rsync.PID.
U ovom koraku izrađujemo skriptu koju administrator postavlja na server. Naziv skripte mora sadržavati ime računala, u ovom slučaju "aspire", preporućuje se kraći nazivi radi problema koji mogu nastati pri importiranju skripte. Najbolje ju je izraditi u Notepadu te ju pohraniti sa nastavkom ".pl"
Kao na slici prikazano u njoj definiramo username i password. "RsyncdShareName" postavljamo na docs u slučaju da smo u prijašnjem koraku odredili drugu putanju "path=", ako putanja nije mijenjanja nužno je "RsyncdShareName" ostaviti nepromjenjeno. Na kraju preostaje pod "ClientNameAlias" postaviti IP adresu klijenta. Nakon izrade skripte nju prosljeđujemo adminu koji ju postavlja na server. Bitno je također omogućiti u firewallu port 873 iz razloga što je taj port defaultni port za rsync servis.
Ako su sva podešenja dobro postavljena, server bi trebao biti u mogučnosti prepoznati vaše računalo. U ovom slučaju Soni1.
Dodatno razlika između prijašnjeg username Soni i Soni1 nastale iz razloga potrebe rušenja servisa. Ponovnim postavljanjem
radi problema sa nepotpunim brisanjem skripti sa servera, dodan je drugi username.
Tar opcija za backup Linux klijenta
Glavni problem koji možemo susresti je problem dozvola. Na https://help.ubuntu.com/community/BackupPC je opisano kako se može konfigurirati BackupPC da radi sa sudo naredbama preko web sučelja. Za to nam je potrebno obaviti ovih par koraka:
1. Naredbom (gedit se može zamijenit s nano) -sudo gedit /etc/backuppc/config.pl” da bi otvorili datoteku config.pl-
2. Izmjeniti neke varijable u config.pl datoteci tako da izgledaju ovako:
$Conf{TarClientCmd} = ‘sudo $tarPath -c -v -f - -C $shareName’ . ‘ –totals’;
$Conf{TarClientRestoreCmd} = ‘sudo $tarPath -x -p –numeric-owner –same-owner’. ‘ -v -f - -C $shareName’;
$Conf{TarIncrArgs} = '--newer=$incrDate $fileList+';
$Conf{BackupFilesExclude} = ['/proc', '/dev', '/tmp', '/mnt', '/media', '/sys', '/lost+found', '/usr/src', '/var/lib', '/var/tmp', '/var/cache', '/var/spool', '/var/run', '/var/lock', '/var/games', '/home/*/.Trash', '/home/*/.mozilla/*/*/Cache', '/home/*/.mozilla/*/*/Cache.Trash']; (postaviti ju u mod za čitanje, jer nam često ti podatci nisu potrebni)
3. pokrenuti -sudo visudo- 4. na kraj dodati ovaj odlomak
# Allow backuppc to run tar without a password backuppc ALL=NOPASSWD: /bin/tar
Zaključak
Prema našem iskustvu BackupPC je snažan i sposoban alat za backup podataka. Krasi ga veliki broj mogućnosti kao što je pooling i činjenica da je besplatan. Veoma zanimljiv je iz razloga što pruža mogu nost backupa za razne operacijske sustave bez potrebe klijenta kojeg je nužno instalirati na njih. Drugim rije ima moguće ga je tako postaviti da korisnici klijentskih računala nikada ne znaju da se vrši backup na njihovim računalima. To je veoma povoljno jer se na taj način isključuje mogu nost ljudske interferencije sa backupom, tj. neka starija gospođa ne može "slučajno" kliknut "close" za aplikaciji koja joj se pojavila na ekranu i "nešto vrti". No kao i svaki open source alat BackupPC ima nekolicinu mana te "ne radi" uvijek onako kako si je to korisnik zamislio. Pri postavljanju servera i klijentskog računala smo se susreli za povećim brojem ograničenja/problema koje je trebalo zaobilaziti a koji nisu navedeni na službenim stranicama. Na svu sreću smo te probleme uspjeli riješiti uz pomoć "community" koji je izgrađen oko alata. BackupPC svakako preporučujemo bilo kojem manjem ili osrednje velikom poduzeću koje želi imati backup rješenje. Pogotovu u slučaju da su novčano ograničeni , te im to stvara probleme pri nabavci jačih računalnih komponenti i diskovnog prostora. No smatramo da za naprednije i bogatije tvrtke ipak bolje koristiti neka komercijalna rješenja koja nude vlastiti support i koja su jednostavnije za postaviti i održavati.
Literatura
https://help.ubuntu.com/community/BackupPC (učitano 11.1.2013.)
http://manpages.ubuntu.com/manpages/natty/man8/backuppc.8.html (učitano 13.1.2013.)
http://backuppc.sourceforge.net/faq/BackupPC.html (učitano 05.1.2013.)
http://www.howtoforge.com/linux_backuppc_p2 (učitano 08.1.2013.)