Rješenje za backup: Bacula

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Srnec Matija, Zorković Matija


Sadržaj

Što je Bacula?


Bacula je skup računalnih programa koji admnistratoru sustava omogućuju upravljanje sigurnosnim pohranama (eng. backup), vraćanjem i verifikacijom računalnih podataka kroz mrežu računala svakakvih vrsta. Bacula se također može izvoditi i na samo jednom računalu, te sigurnosno kopirati na različite tipove medija, uključujući traku i disk.

U tehničkom smislu, Bacula je program koji je baziran na mreži Klijent/Server. Učinkovit je i jednostavan za korištenje, a nudi i mnoge napredne opcije za upravljanje pohranom (eng. storage management) koje olakšavaju pronalazak i oporavak izgubljenih ili oštećenih datoteka. Zbog modularnog dizajna, Bacula je stabilan od malih pojedinačnih do velikih računalnih sustava koji sadržavaju i nekoliko stotina računala rasprostranjenih duž velike računalne mreže.

--Matija.srnec 18:20, 16. siječnja 2013. (CET)

Kome je potreban Bacula?


Ako trenutno za sigurnosno kopiranje (eng. backup) koristite programe poput tar, dump ili bru, a želite mrežno rješenje koje je fleksibilnije ili koje nudi veći broj usluga, Bacula će vam najvjerojatnije ponuditi sve opcije koje želite. Međutim, ako ste novi korisnik Unix sustava ili nemate iskustva sa sofisticiranim sigurnosnim kopiranjem, ne preporuča se korištenje Bacula programa, jer ga je teže podesiti i koristiti nego npr. tar ili dump.

Ako pak želite da se Bacula ponaša kao ranije spomenuti jednostavni programi i da prepisuje podatke na bilo koju traku koju ubacite u pogon, tada će vam rad sam Bacula biti malo otežan. Naime, Bacula je dizajnirana za zaštitu podataka slijedeći pravila koje sami definirate, a to podrazumijeva ponovno korištenje iste trake samo ako je ona posljednje sredstvo. Moguće je natjerati da Bacula piše preko podataka bilo koje trake u pogonu, ali to je mnogo lakše napraviti sa jednostavnijim programima za baš takvu vrstu rada.

Ako želite program za sigurnosno kopiranje koji će zapisivati podatke na više medija (eng. multiple volumes), Bacula može ispuniti vaše potrebe. Osim toga, veći broj korisnika Bacula programa izvještavaju, da je Bacula jednostaviji za prilagođavanje i korištenje od ostalih ekvivalentnih programa.

Bacula pruža iste opcije kao i sofisticirani komercijalni alati poput Legato Networker.ARCserveIT, Arkeia ili PerfectBackup+, a još k tome je i besplatan unutar GNU Version 2 licence.

--Matija.srnec 18:20, 16. siječnja 2013. (CET)


Komponente ili servisi


Bacula je sastavljen od slijedećih pet glavnih komponenti ili servisa:

Slijedeća slika prikazuje interakciju između aplilacija Bacula-e:


BaculaAppInteractions.png


Slijedeći blok dijagram prikazuje tipičnu interakciju između Bacula servisa za posao sigurnosnog kopiranja. Svaki blok predstavlja odvojeni proces (obično servis). U principu, Upravitelj nadgledava protok informacija, te također sadržava i Katalog.

BaculaAppInteractionsChart.png

Upravitelj (eng. Director)

Servis Upravitelj je program koji nadzire sve operacije za sigurnosno kopiranje, oporavak, verifikaciju i arhiviranje podataka. Pomoću Upravitelja administrator sustava može oporaviti datoteke i napraviti raspored sigurnosnog kopiranja (eng. schedule backup). Upravitelj se kao servis izvršava u pozadini.

Konzola (eng. Console)

Konzola je servis koja omogućava trenutnu komunikaciju sa Upraviteljem, te je dostupna u tri verzije:

Prva verzija je ujedno i najjednostavnija verzija za pokretanje Konzole u prozoru ljuske (eng. shell window). Većina admnistratora sustava smatra ju adekvatnom. Druga verzija je GNOME GUI sučelje koje je daleko od stadija završenosti, ali prilično funkcionalna, jer ima većinu mogućnosti prve verzije Konzole. Treća verzija je wxWidgets grafičko sučelje sa interaktivnim vraćanjem datoteka (eng. file restore). Također sadrži većinu mogućnosti prve verzije, dozvoljava dovršavanje komande pomoću tabulatora i daje trenutnu podršku o komandi koja se trenutno upisuje.

Datoteka (eng. File)

Ovaj servis je poznat još kao i klijentski program (eng. Client program) i on je instaliran na računalo koje treba izvršiti sigurnosno kopiranje. Specifičan je, ovisno o operativnom sustavu koji se koristi na kojem se izvršava i na kojem je odgovoran za dodjelu atributa datotekama i za podatke koji su zatraženi od strane Upravitelja. Ovaj servis je također odgovoran za datotečni sustav ovisnog dijela vraćanja atributa datoteka i podataka tijekom operacije oporavka. Ovaj program se izvršava kao daemon na računalu s kojeg se radi sigurnsno kopiranje.

Spremnik (eng. Storage)

Ovaj servis ili komponenta se sastoji od softverskih programa koji obavljaju pohranjivanje i oporavak atributa datoteka i podataka na fizički medij za sigurnosnu pohranu. Drugim riječima, ovaj servis odgovoran je za čitanje i pisanje na trake (ili druge medije za pohranu). Komponenta se izvršava kao daemon na računalu koji ima uređaj za sigurnosnu pohranu (npr. tape drive).

Katalog (eng. Catalog)

Katalog komponenta sastoji se od računalnih programa koji su zaduženi za održavanje indeksa datoteka i 'volume' baza podataka za sve datoteke koje su sigurnosno pohranjene. Ovaj servis korisniku ili admnistratoru sustava dozvoljava lociranje i vraćanje bilo koje željene datoteke. Bacula trenutno podržava tri različite baze podataka:

od kojih jedna mora biti izabrana prilikom podešavanje Bacula-e. Te tri različite baze podataka osiguravaju prilično mnogo opcija, uključujući brzo indeksiranje, proizvoljne upite i sigurnost.

Instalacijski paketi za MySQL i PostgreSQL su dostupni za nekoliko operativnih sustava. Alternativno, instalacija iz 'source' koda je prilično jednostavna, više informacija na slijedećima adresama: [1] i [2]. Konfiguracija SQLite baze podataka je još jednostavnija.

Monitorski servis (eng. Monitor services)

Monitor je program koji administratoru ili korisniku dozvoljava praćenje trenutnih stanja komponenti Upravitelja, Datoteke i Spremnika. Trenutno je dostupna samo GTK+ verzija koja radi sa GNOME, KDE ili bilo kojim upraviteljem prozorima (eng. window manager) koji podržava FreeDesktop.org sistemski standard.

Za uspješno spremanje ili vraćanje datoteka, moraju se konfigurirati i izvoditi slijedeći procesi:

--Matija.srnec 19:42, 16. siječnja 2013. (CET)

Konfiguracija


Da bi Bacula razumio vaš sustav, kako i na koji način želite sigurnosno kopiranje, morate kreirati niz konfiguracijskih datoteka koje sadrže resurse ili objekte. Slijedeća slika prikazuje najčešću situaciju toga:

BaculaObjectDefinitions.png

--Matija.srnec 12:00, 17. siječnja 2013. (CET)


Terminologija


Ovdje će biti opisani pojedini pojmovi koji su potrebni za razumijevanje rada Bacula skupa programa.

Administrator

Sigurnosno kopiranje (eng. backup)

Bootstrap datoteka

Katalog

Klijent

Konzola

Daemon

Upravitelj

Diferencijalno sigurnosno kopiranje

Atributi datoteka

Servis datoteka (eng. File daemon)

FileSet

Inkrementalno sigurnosno kopiranje

Posao (eng. Job)

Monitor

Resurs

Vraćanje (eng. Restore)

Raspored (eng. Schedule)

Servis

Koordinate pohrane (eng. Storage Coordinates)

Servis pohranjivanja (eng. Storage Daemon)

Sesija

Provjera (eng. Verify)

Volume

--Matija.srnec 15:48, 17. siječnja 2013. (CET)


Što Bacula nije?


Bacula je program za sigurnosno kopiranje, vraćanje i verifikaciju datoteka i nije sustav za potpuni oporavak od štete, ali može biti ključni dio ako se planira oprezno i slijedi uputa iz prakse.

Pravilnim planiranjem Bacula može biti središnja komponenta oporavka sustava od štete. Na primjer, ako imamo kreiran emergency boot disk i/ili Bacula Rescue disk za spremanje trenutnog stanja tvrdog diska, i održavamo sigurnosno kopiranje, moguće je oporaviti sustav.

--Matija.srnec 15:58, 17. siječnja 2013. (CET)

Instalacija i pokretanje Bacule


Instalacija Bacule na Windows operacijske sustave

Instalacija Bacule na Windows operativne sustave je jako jednostavna i svodi se na svega par klikova mišem. Za pojašnjenje instalacije koristit ću Windows 7 operacijski sustav. Pa počnimo s instalacijom Bacule:

1) Potrebno je skinuti Baculu. Moguće ju je skinuti sa sljedećeg linka. Izvršnu datoteku jednostavno možete pronaći u direktoriju Downloads. Dvostrukim klikom pokrećete instalaciju Bacule.

2)Prikazuje nam se početni prozor aplikacije. Za nastavak aplikacije jednostavno kliknite Next.


01Welcome.jpg


Na sljedećem prozoru potrebno je kliknuti gumb I Agree te tako potvrđujete da se slažete sa uvjetima korištenja aplikacije i nastavljate instalaciju Bacule


02liceseAgreement.jpg


3) Sljedeći prozor daje nam da odaberemo automatsku ili naprednu instalaciju. Odbiremo naprednu instalaciju (Custom Install) što će nam omogućiti da postavimo svoj direktorij i clijentske postavke u nastavku instalacije umjesto ručnog postavljanja nakon instalacije.


03installationType.jpg

U prozoru koji nam omogućuje odabir komponenti klikćemo tipku Next i ne mijenjamo defaultne postavke.

04ChooseComponents.jpg

4) Sljedeći prozor nam daje mogućnost početne lokacije kamo će se instalirati Bacula. Možete ostaviti defaultne postavke.

05InstallLocation.jpg

5) U nastavku instalacije od vas će se zatražiti točni podaci za konfiguraciju klijenta. Naziv klijenta bit će automatski generiran na temelju naziva vašeg računala. Preporuča se da ne mijenjate naziv osim ukoliko ćete mijenjati naziv računala i DNS zapisa. Postavljeni port također ne bi trebali mijenjati. Možete promjeniti maksimalan broj poslova iako ga možete i ostaviti na defaultnim postavkama od 5 poslova. Unesite lozinku, npr. ovdje koristimo lozinku "demo411". Ova lozinka bit će postavljena za defaultnu lozinku direktorija. Ostavite uključene postavke Install as service i Start after intall.

06configuration.jpg

6) U ovom prozoru morat ćemo postaviti postavke za pristup početnom direktoriju. Da bi sustav radio trebamo unijeti točne podatke. Svi podaci će na početku biti prazni i unosi ih sam korisnik.

07configuration2.jpg

Sad unosimo podatke o direktoriju. Svaka jedinica za beckup ima u svojem gornjem desnom uglu podatke o početnom direktoriju na svom poslužitelju. U ovom slučaju ime direktorija je Cachengo-104C. Naziv direktorija je case sensitive. Unesite ime direktorija sa nastavkom -dir. Ukoliko ime direktorija nije točno ili nedostaje nastavak -dir klijent neće raditi dobro. Unosimo password koji smo unijeli i prije a to je u ovom slučaju Demo411. U polje DIR Address možemo unijeti IP adresu ili DNS ime servera. U oba slučaja adrese direktorija program će dobro raditi. Sad bi program trebao biti potpuno konfiguriran i možemo završtit sa instalacijom.

08configuration3.jpg

7) Nakon instalacije morate otići u direktorij u koji ste snimali Baculu. U našem slučaju to je c:\programs files. Kliknite desni klik na baculin direktorij i provjerite dali taj folder ima sve dozvole za editiranje. Ovo će vam dati popup meni za odabir dozvola za editiranje ako već nisu sve dozvolo postavljene.

8) Zatim treba urediti bacula-fd datoteku. Na karaju nalazi se dio u kojem se definira setup monitora, te njega treba odkomentirati. Taj dio nije potpuno prenesen na 64 bitne inačice operativnih sustava te postoji mogućnost da bacula u tom slučaju neće raditi uredu. Fajl bacula-fd možete pronaći u c:\program files\bacula\bacula-fd.conf


#
# Restricted Director, used by tray-monitor to get the
#   status of the file daemon
#
#Director {
#  Name = @monitor_name@
#  Password = “@monitor_password@”
#  Monitor = yes
#}
#
# Send all messages except skipped files back to Director

9) Sad bi trebali biti u mogućnosti ručno pokrenuti bacula-fd servise u windows task menager-u

09taskmanager.jpg

Zatim kliknite na gunb servisa.

10services.jpg

Desnim klikom na bacula-fd servis postavljate razinu pokretanja bacule. Za većinu slučaja korištenja automatski mod će biti sasvim dovoljan. Ukoliko imate specifične razloge koji se događaju kod izvođenja programa možete program postaviti na manual razinu pokretanja.

11filepropertyservices.jpg

10) Prije pokretanja bconsole moramo se uvjeriti dali postoji datoteka bconsole.conf na lokaciji c:\ProgramData\Bacula\bconsole.conf. Ako datoteka ne postoji treba ju kreirati i to tako da se kopira bconsole.conf s lokacije c:\program files\bacula u c:\ProgramData\Bacula. Sad možemo pokrenuti bconsole odnosno samu baculu.

12bconsole.jpg

Instalacija Bacule na Linux operacijske sustave

Baculu za Linux, u ovom slučaju za Ubuntu, možemo skinuti na sljedećem linku. Postoji više inačica Bacule. Po defaultu instaliravši Baculu dobijemo inačicu sa Bacula-director-sqlite3 paketom koja koristi SQLite za izradu kataloga u programu. Ukoliko za izradu kataloga želite imati ili MySQL ili PostgreSQL morate instalirati inačice sa bacula-director-mysql ili bacula-director-pgsql paketima. Paketi i sama Bacula se instalira kao i sve ostale komponente u Linux operacijski sustavima pomoću terminala. Za dodatne upute pročitajte sljedeći link. Nakon instalacije Bacule bacula-sd demon moće imati problema kod pokretanja jer nema konfiguriranih uređaja za pohranu. Ta greškica se ispravlja u /etc/bacula/bacula-sd.conf i to unošenjem slijedeće naredbe koja izvršava instalaciju paketa

sudo apt-get install -f

Za rad Bacule također je potreban Mail Transfer Agent. Za Ubuntu standarda je MTA je Postfix. Moguće je koristi i neki drugi MTA-i. Ukoliko trabate upute za konfiguraciju Postfix-a možete ih pronaći na slijedećoj stranici.

Konfiguracija

Konfiguracija Bacule za Linux operacijski sustav provodi se pomoću konfiguracjskih datoteka koje se sastoje od naredbi u blokovina omeđenima vitičastim zagradama {}. Konfiguracjske datoteke nalaze se u /etc/bacula direktoriju i postoji datoteka za svaku komponentu. Raznorazne Baculine datoteke moraju biti kompatibilne jedna sa drugom. To je omogućeno korištenjem jedinstvene lozinke. Po defaultu Bacula konfigurira FileSet i posao za bekapiranje samog sebe. Ime tog posla je Client1 i to je defaultna vrijednost. Ako planirate koristiti server za bekapiranje više korisnika tada bi vam naziv posla morao biti točnije nazvan kako bi se znala o kojem se klijentu radi. Za promjenu imena posla morete editirati /etc/bacula/bacula-dir.conf:

#
# Define the main nightly save backup job
#   By default, this job will back up to disk in 
Job {
  Name = "BackupServer"
  JobDefs = "DefaultJob"
  Write Bootstrap = "/var/lib/bacula/Client1.bsr"
}

Konzolu Bacule možemo iskoristiti za postavljanje upita o poslovima, ali da bi koristili konzolu s non-root korisnicima oni moraju biti upisani u Baculinu grupu korisnika odnosno poslova. Kako bi upisali korisnike u Baculinu frupu korisnika moramo u terminal upisati sljedeću naredbu:

sudo adduser $username bacula

Localhost Backup

U ovom djelu ćemo opisati kako backupirati određene datoteke s jednog host računala na lokalnu traku odnosno lokalni direktorij. Prvo moramo konfigurirati uređaj za pohranu i to tako da editiramo /etc/bacula/bacula-sd.conf na sljedeći način:

Device {
  Name = "Tape Drive"
  Device Type = tape
  Media Type = DDS-4
  Archive Device = /dev/st0
  Hardware end of medium = No;
  AutomaticMount = yes;               # when device opened, read it
  AlwaysOpen = Yes;
  RemovableMedia = yes;
  RandomAccess = no;
  Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
}

Nakon uređivanja /etc/bacula/bacula-sd.conf baculu će biti potrebno ponovno pokrenuti pomoću naredbe:

sudo /etc/init.d/bacula-sd restart

Sada moramo dodati resurs za pohranu u /etc/bacula/bacula-dir.conf kako bi koristili novi uređaj

# Definition of "Tape Drive" storage device
Storage {
  Name = TapeDrive
  # Do not use "localhost" here    
  Address = backupserver               # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"
  Device = "Tape Drive"
  Media Type = tape
}

Stvorimo novi FileSet koji će odrediti što sve moramo bekapirati.

# LocalhostBacup FileSet.
FileSet {
  Name = "LocalhostFiles"
  Include {
    Options {
      signature = MD5
      compression=GZIP
    }
    File = /etc
    File = /home
  }
}

Nadalje stvaramo novi raspored backupa.

# LocalhostBackup Schedule -- Daily.
Schedule {
  Name = "LocalhostDaily"
  Run = Full daily at 00:01
}

Na posljetku kreiramo posao za backup

# Localhost backup.
Job {
  Name = "LocalhostBackup"
  JobDefs = "DefaultJob"
  Enabled = yes
  Level = Full
  FileSet = "LocalhostFiles"
  Schedule = "LocalhostDaily"
  Storage = TapeDrive
  Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr"
}

U ovom primjeru događat će se potpuni backup u 00:01. Ukoliko se dogodi da traka nema labele Bacula će poslati email kako bi vas obavjestila o tom problemu. Da bi dodale labele na traku trebamo u terminal upisati slijedeće:

bconsole 

Otvorivši konzolu Bacule upisujemo u Baculinu konzolu slijedeće

label

Nakon toga će vas se zatražiti da unesete resurs za pohranu

Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
The defined Storage resources are:
     1: File
     2: TapeDrive
Select Storage resource (1-2): 2

Unesite novi naziv Volume:

Enter new Volume name: Sunday
Defined Pools:
     1: Default
     2: Scratch

Odaberite Pool:

Select the Pool (1-2): 1
Connecting to Storage daemon TapeDrive at backupserver:9103 ...
Sending label command for Volume "Sunday" Slot 0 ...

I tako ste postavili Baculu da backupira direktorije koje ste odabrali.

--Matija.Zorković 14:00, 17. siječnja 2013. (ČET)

Podržani operativni sustavi


Podržani operacijski sustavi
Operacijski sustav Verzija Client Daemon Director Daemon Storage Daemon
GNU/Linux Sve X X X
FreeBSD >=5.0 X X X
Solaris >=8 X X X
OpenSolaris X X X
MS Windows 32bit Win98/Me X
WinNT/2K X * *
XP X * *
2008/Vista X * *
MS Windows 64bit 2008/Vista X * *
MacOS X/Darwin X * *
OpenBSD X *
NetBSD X *
Irix *
True64 *
AIX >=4.3 *
BSDI *
HPUX *

--Matija.srnec 18:14, 20. siječnja 2013. (NED)


Literatura



Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima