Bacula paigaldamine ja esmane seadistamine: Difference between revisions

From ICO wiki
Jump to navigationJump to search
 
(44 intermediate revisions by 2 users not shown)
Line 59: Line 59:
Antud artikli ''Bacula'' näitekeskkonnaks on Ubuntu Server 14.04.1 LTS (edaspidi ''varundusserver'') ja Ubuntu Desktop 14.04.1 LTS (edaspidi ''kliendimasin''). Serverile paigaldame ''Bacula direktorit'', ''Bacula salvestusteenuse'', ''Bacula konsooli'' ja ''Bacula failiteenuse kliendi''. Nagu on näha, ''direktor'' ja ''salvestusteenus'' on ühel nn. ''varundusserveril''. ''Konsooli'' võib paigaldada suvalise masinale, kuid lihtsuse mõistes antud näites see läheb varundusserverile. ''Failiteenuse kliendi'' paigaldamisega samale masinale varundatakse ka selle masina failid. ''Kliendimasinale'' peale läheb ainult ''Bacula failiteenuse klienti''.
Antud artikli ''Bacula'' näitekeskkonnaks on Ubuntu Server 14.04.1 LTS (edaspidi ''varundusserver'') ja Ubuntu Desktop 14.04.1 LTS (edaspidi ''kliendimasin''). Serverile paigaldame ''Bacula direktorit'', ''Bacula salvestusteenuse'', ''Bacula konsooli'' ja ''Bacula failiteenuse kliendi''. Nagu on näha, ''direktor'' ja ''salvestusteenus'' on ühel nn. ''varundusserveril''. ''Konsooli'' võib paigaldada suvalise masinale, kuid lihtsuse mõistes antud näites see läheb varundusserverile. ''Failiteenuse kliendi'' paigaldamisega samale masinale varundatakse ka selle masina failid. ''Kliendimasinale'' peale läheb ainult ''Bacula failiteenuse klienti''.


== Bacula direktori paigaldamine ==
== Bacula direktori paigaldamine ja seadistamine ==
NB! Enne paigaldamise alustamist on vaja kindlasti uuendada süsteemi tarkvara teegid (''apt-get update'')!
NB! Enne paigaldamise alustamist on vaja kindlasti uuendada süsteemi tarkvara teegid (''apt-get update'')!


Line 74: Line 74:
<u>Märkus:</u> teise andmebaasimootori valikul dialoog võib erineda (nt. ''PostgreSQL'' puhul on vaja lisaks ka määrata ''direktori'' ja andmebaasimootori vaheline salasõna)
<u>Märkus:</u> teise andmebaasimootori valikul dialoog võib erineda (nt. ''PostgreSQL'' puhul on vaja lisaks ka määrata ''direktori'' ja andmebaasimootori vaheline salasõna)


=== Paigalduse kontroll ===
=== Direktori paigalduse kontroll ===
Kui paigaldamise käigus või peale seda pole tekkinud vigu, siis ''Bacula direktori'' teenus peaks automaatselt käima minema. Selle kontrolliks kasutame käsku:
Kui paigaldamise käigus või peale seda pole tekkinud vigu, siis ''Bacula direktori'' teenus peaks automaatselt käima minema. Selle kontrolliks kasutame käsku:


Line 106: Line 106:
</pre>
</pre>


<u>Märkus:</u> Deffinitsioonides välja kommenteeritud vaikimisi konfiguratsiooni read on asendatud viimase ''DirAddresses'' definitsiooniga, kus on ära määratud kõik ip-aadressid ja pordid, mille pealt ''direktor'' kuulab.
<u>Märkus:</u> Deffinitsioonides välja kommenteeritud vaikimisi konfiguratsiooni read on asendatud viimase ''DirAddresses'' definitsiooniga, kus on ära määratud kõik ip-aadressid ja pordid, mille pealt ''direktor'' kuulab (ip-aadress 192.168.56.100 on antud serveri masina aadress).


Vastavad muudatused tuleb ära salvestada ning nende rakendamiseks taaskäivitada ''direktori'' teenust:
Vastavad muudatused tuleb ära salvestada ning nende rakendamiseks taaskäivitada ''direktori'' teenust:


<pre> service bacula-director restart </pre>
<pre> service bacula-director restart </pre>
<u>Märkus:</u> Teenus taaskäivitus samas kontrollib ka konfiguratsioonifaili õigsust.


Nüüd saab kontrollida, kas teostatud muudatused on ka õieti rakundunud:
Nüüd saab kontrollida, kas teostatud muudatused on ka õieti rakundunud:
Line 116: Line 118:
<pre> netstat -anp | grep LISTEN | grep bacula </pre>
<pre> netstat -anp | grep LISTEN | grep bacula </pre>


Seadete õigel rakendumisel tagastus peaks olema selline:
<pre>
tcp        0      0 192.168.56.100:9101    0.0.0.0:*              LISTEN      1070/bacula-dir
tcp        0      0 127.0.0.1:9101          0.0.0.0:*              LISTEN      1070/bacula-dir
</pre>


Allikas: https://www.youtube.com/watch?v=rPh_NpaQjoA
Allikas: https://www.youtube.com/watch?v=rPh_NpaQjoA
== Bacula Storage paigaldamine ja seadistamine ==
''Bacula salvestusteenuse'' paigaldamisel tuleb jällegi määrata, mis andmebaasimootoriga seda hakatakse kasutama. Meie puhul ''SQLite3'':
<pre> sudo apt-get install bacula-sd-sqlite3 </pre>
=== Salvestusteenuse paigalduse kontroll ===
Kui paigaldamise käigus või peale seda pole tekkinud vigu, siis ''Bacula salvestusteenus'' teenus peaks automaatselt käima minema. Selle kontrolliks kasutame käsku:
<pre> service bacula-sd status </pre>
Kui kõik on korras, siis süsteem tagastab vastuse:
<pre> * bacula-sd is running </pre>
=== Bacula salvestusteenuse seadistamine ===
Kõige pealt tuleks luua varundute sihtkausta. Tavaliselt selleks kasutatakse varundusserveriga ühendatud lindirobotit, kuid antud näites loome selleks ''/var/bacula_backups'' kausta:
<pre>mkdir -p /var/bacula_backups</pre>
Siis tuleb ära muuta ''salvestusteenuse'' konfiguratsioonifailis ''/etc/bacula/bacula-sd.conf'', mis aadresside pealt teenus ootab ühendusi ja kuhu varundeid hakatakse kirjutama.
Selleks avame ''salvestusteenuse'' konfiguratsioonifaili tekstiredaktoriga:
<pre> nano /etc/bacula/bacula-sd.conf </pre>
1. Muudame ära vastavad read ''Storage'' definitsioonides:
<pre>
Storage {                            # definition of myself
  Name = server14-sd
  #SDPort = 9103                  # Director's port     
  WorkingDirectory = "/var/lib/bacula"
  Pid Directory = "/var/run/bacula"
  Maximum Concurrent Jobs = 20
  #SDAddress = 127.0.0.1
  SDAddresses = {
ip = { addr = 127.0.0.1; port = 9103; }
ip = { addr = 192.168.56.100; port = 9103; }
}
}
</pre>
2. Muudame ära varundite sihtkausta nime ''Device'' definitsioonides:
<pre>
Device {
  Name = FileStorage
  Media Type = File
  Archive Device = /var/bacula_backups
  LabelMedia = yes;                  # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;              # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}
</pre>
Vastavad muudatused tuleb ära salvestada ning nende rakendamiseks taaskäivitada ''salvestusteenust'':
<pre> service bacula-sd restart </pre>
Nüüd saab kontrollida, kas teostatud muudatused on ka õieti rakundunud:
<pre> netstat -anp | grep LISTEN | grep bacula </pre>
Seadete õigel rakendumisel tagastus peaks nüüd olema selline:
<pre>
tcp        0      0 192.168.56.100:9101    0.0.0.0:*              LISTEN      1070/bacula-dir
tcp        0      0 127.0.0.1:9101          0.0.0.0:*              LISTEN      1070/bacula-dir 
tcp        0      0 192.168.56.100:9103    0.0.0.0:*              LISTEN      1018/bacula-sd 
tcp        0      0 127.0.0.1:9103          0.0.0.0:*              LISTEN      1018/bacula-sd
</pre>
Allikad:
<p>1. https://www.youtube.com/watch?v=rPh_NpaQjoA</p>
<p>2. https://www.digitalocean.com/community/tutorials/installing-and-configuring-bacula-on-an-ubuntu-12-04-vps</p>
== Bacula File kliendi paigaldamine ja seadistamine ==
Nüüd, kui on paigaldatud ''direktor'' ja on seadistatud ''salvestusteenus'', võime alustada ''failiteenuse'' klientide paigaldamise ja seadistamisega. Alustame kõige lihtsamast - paigaldame kliendi varundusserverile ja teisele, samas alamvõrgus asuvale masinale:
<pre>sudo apt-get install bacula-fd</pre>
=== Failiteenuse paigalduse kontroll ===
''Bacula failiteenus'' peaks automaatselt käima minema. Selle kontrolliks kasutame käsku:
<pre> service bacula-fd status </pre>
Kui kõik on korras, siis süsteem tagastab vastuse:
<pre> * bacula-fd is running </pre>
=== Failiteenuse seadistamine ===
Kui varundusserverile paigaldatud ''failiteenuse'' klienti ei ole vaja täiendavalt seadistada, kõik õiged seaded lähevad peale automaatselt, siis teiste masinate kliente on. Selleks tuleb teha muudatused nii kliendi konfiguratsioonifailis ''/etc/bacula/bacula-fd.conf'' kui ka ''direktori'' konfiguratsiooni faili ''Client'' sektsioonis. Kõige pealt on vaja ära muuta kliendi konfiguratsioonifaili:
<pre>nano /etc/bacula/bacula-fd.conf</pre>
Selles tuleb ära määrata ''direktorit'', lisades sinna ''direktori'' ''FQDN''-i. Ühe alamvõrgu piires piisab ka ''hostname''-ist:
<pre>
# List Directors who are permitted to contact this File daemon
#
Director {
  Name = server14-dir
  Password = "eKA8a4Aa4hClPfbur-vg18GBvymGqAw-B"
}
</pre>
<p>NB! Salasõna muuta ei tohi! Range soovitus - salvestada see turvalisse kohta! See pärast läheb ''direktori'' konfiguratsioonifaili seda klienti kirjeldava ''Client'' sektsiooni.</p>
Järgmiseks on vaja ära määrata selle kliendi jälgimisseaded sellele ''Bacula konsooliga'' ligi saamiseks. Selleks tuleb sisestada konsooli juurdepääsu lubamiseks selle masina nimi, kust juurdepääs teostatakse ning sisestada vastav salasõna. Kuna ''Bacula konsooli'' kavatsema kasutada varundusserveris, siis tuleb sisestada selle nimi (''server14-mon'') ning <a>kopeerida selle ''bacula-dir.conf'' failist ''Console'' sektsioonist salasõna ja kleepida selle vastava ''direktori'' (vaikimisi ''Restricted Director'') salasõna kohale</a>:
<pre>
# Restricted Director, used by tray-monitor to get the
#  status of the file daemon
#
Director {
  Name = server14-mon
  Password = "a4UXlOaiy_6cnDgBlUCv3biFMExnIboFt"
  Monitor = yes
}
</pre>
<p>NB! Salasõna muuta ei tohi! Range soovitus - salvestada see turvalisse kohta! See pärast läheb ''direktori'' konfiguratsioonifaili jälgimisseadete ''Monitor'' sektsiooni.</p>
Siis tuleb seadistada ip-aadressi, mille pealt klient nö kuulab ''Bacula direktori'' korraldusi:
<pre>
# "Global" File daemon configuration specifications
#
FileDaemon {                          # this is me
  Name = deniss-14-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Maximum Concurrent Jobs = 20
  FDAddress = 192.168.56.101
}
</pre>
<u>Märkus:</u> Aadress 192.168.56.101 on antud juhul varundusserveri ip-aadress.
Ja viimaseks, tuleb seadistada kuhu klient saadab oma ''failiteenuse'' sõnumeid:
<pre>
# Send all messages except skipped files back to Director
Messages {
  Name = Standard
  director = server14-dir = all, !skipped, !restored
}
</pre>
Vastavad muudatused tuleb ära salvestada ning nende rakendamiseks ''failiteenus'' taaskäivitada:
<pre> service bacula-fd restart </pre>
Nüüd saab kontrollida, kas teostatud muudatused on ka õieti rakundunud:
<pre> netstat -anp | grep LISTEN | grep bacula </pre>
Seadete õigel rakendumisel tagastus peaks nüüd olema selline:
<pre>
tcp        0      0 192.168.56.101:9102    0.0.0.0:*              LISTEN      1038/bacula-fd
</pre>
=== Direktori klientide definitsioonide seadistamine ===
Nüüd vastavad kliendid tuleb ''direktori'' konfiguratsioonifailis ära seadistada. Selleks läheb vaja klientide ''FQDN''-e või hostinimesid ja ''bacula-fd.conf'' failis olevaid salasõnu.
Lisame ''bacula-fd.conf'' faili kliendi definitsiooni. Lisada on vaja kliendi nimi, ip-aadress ja salasõna, mille tuleb kopeerida kliendi ''bacula-fd.conf'' faili ''Director'' sektsioonist:
<pre>
# Second Client (File Services) to backup
#  You should change Name, Address, and Password before using
#
Client {
  Name = deniss-14-fd
  Address = 192.168.56.101
  FDPort = 9102
  Catalog = MyCatalog
  Password = "eKA8a4Aa4hClPfbur-vg18GBvymGqAw-B"        # password for FileDaemon 2
  File Retention = 30 days            # 30 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                    # Prune expired Jobs/Files
}
</pre>
Muudatuste rakendamiseks ja õigsuse kontrolliks ''direktori'' teenus taaskäivitada.
= Bacula klientide andmete varundamine =
Antud näites käsitleme ainult failiteenuse klientide andmete varundamist.
== Varundustööde teostamine Bacula konsooli kaudu ==
Kui antud etapis kõik teenused töötavad ja kõikides vajalikkes masinates kõikidel vajalikel aadressidel kuulatakse, siis võib katsetada varundustööde teostamist.
Selleks on vaja avada ''Bacula konsool''. Selles näites varundusserveri käsurealt:
<pre>sudo bconsole</pre>
Väljund:
<pre>
Connecting to Director localhost:9101
1000 OK: server14-dir Version: 5.2.6 (21 February 2012)
Enter a period to cancel a command.
*
</pre>
=== Klientide olemasolu kontroll ===
Kõige pealt kontrollime, kas kõik meie kliendid on ühendatud käsuga ''status'':
<pre>
*status
Status available for:
    1: Director
    2: Storage
    3: Client
    4: All
Select daemon type for status (1-4):
</pre>
Valime ''3'' ja see järel meid huvitavat klienti:
<pre>
Select daemon type for status (1-4): 3
The defined Client resources are:
    1: server14-fd
    2: deniss-14-fd
Select Client (File daemon) resource (1-2): 2
Connecting to Client deniss-14-fd at 192.168.56.101:9102
deniss-14-fd Version: 5.2.6 (21 February 2012)  x86_64-pc-linux-gnu ubuntu 14.04
Daemon started 10-Jan-15 19:00. Jobs: run=0 running=0.
Heap: heap=135,168 smbytes=16,041 max_bytes=16,188 bufs=49 max_bufs=50
Sizeof: boffset_t=8 size_t=8 debug=0 trace=0
Running Jobs:
Director connected at: 10-Jan-15 19:37
No Jobs running.
====
Terminated Jobs:
JobId  Level    Files      Bytes  Status  Finished        Name
======================================================================
    4  Full        209    6.405 M  OK      09-Jan-15 15:41 BackupClient2
====
You have messages.
*
</pre>
Teadete kuvamiseks tuleb sisestada ''message''
<u>Märkus:</u>Kättesaadavate käskude kuvamiseks tuleb sisestada ''help''.
=== Varundustöö teostamine ===
Varundi tegemiseks konsooli käsurealt tuleb kõige pealt tekitada varundatava faili nime. Selleks tuleb sisestada ''label'' ja seejärel ''2'' (''File''), kuna tahame varundada faile:
<pre>
*label
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
Automatically selected Storage: File
Enter new Volume name: TestArchive_20140109
Defined Pools:
    1: Default
    2: File
    3: Scratch
Select the Pool (1-3): 2
Connecting to Storage daemon File at 192.168.56.100:9103 ...
Sending label command for Volume "TestArchive_20140109" Slot 0 ...
3000 OK label. VolBytes=208 DVD=0 Volume="TestArchive_20140109" Device="FileStorage" (/var/bacula_backups)
Catalog record for Volume "TestArchive_20140109", Slot 0  successfully created.
Requesting to mount FileStorage ...
3906 File device ""FileStorage" (/var/bacula_backups)" is always mounted.
*
</pre>
Varundustöö alustamiseks tuleb sisestada käsk ''run'':
<pre>
*run
A job name must be specified.
The defined Job resources are:
    1: BackupClient1
    2: BackupClient2
    3: BackupCatalog
    4: RestoreFiles
Select Job resource (1-4): 2
Run Backup job
JobName:  BackupClient2
Level:    Incremental
Client:  deniss-14-fd
FileSet:  Full Set
Pool:    File (From Job resource)
Storage:  File (From Job resource)
When:    2015-01-10 19:45:53
Priority: 10
OK to run? (yes/mod/no):
</pre>
Valime ''yes''.
<u>Märkus:</u> kuna antud juhul täisvarundus on juba tehtud, siis pakutakse ainult ''Incremental'' (ainult muudatused) varundi tegemist.
Peale töö lõpetamist ilmub teade ''You have messages''. Sisestades käsku ''message'' saame ülevaadet teostatud töö kohta.
= Kokkuvõte =
''Bacula'' on väga suurte võimaluste varunduslahendus. Tundub, et see sobib hästi keskmisest alates arvutivõrkude jaoks. Suuremates võrkudes küll pole mõeldav, et varundatakse igat klienti. See pigem peaks toimuma teenusepõhiselt.
Antud artiklis kirjeldatu on ainult väike osa sellest, mida ''Bacula''-ga on võimalik teha.
Kuna autor kõige pealt katsetas siin kirjeldatu rakendamist ning artikli sisu mahukusest tulenevalt kirjeldas kõiki samme mälu järgi, siis on võimalik, et mõni asi on jäänud üles märkimata. Parandused on teretulnud!
= Näidetes kasutatud konfifailid =
<p>''Bacula direktor'': https://drive.google.com/file/d/0B4GAZkxHt7nUVnplRTdnVXkzZlk/view?usp=sharing</p>
<p>''Bacula salvestusteenus'': https://drive.google.com/file/d/0B4GAZkxHt7nUTERobGFQbl9vYXc/view?usp=sharing</p>
<p>''Bacula'' kliendimasin: https://drive.google.com/file/d/0B4GAZkxHt7nUX0ZManVVMGhEdGM/view?usp=sharing</p>
<p>''Bacula'' klient serveris: https://drive.google.com/file/d/0B4GAZkxHt7nUOGVVdG1FejhRZGs/view?usp=sharing</p>
= Kasutatud allikad =
<p>1. Bacula.org: http://bacula.org/</p>
<p>2. Bacula - Installing on Ubuntu: https://www.youtube.com/watch?v=rPh_NpaQjoA</p>
<p>3. https://www.digitalocean.com/community/tutorials/installing-and-configuring-bacula-on-an-ubuntu-12-04-vps</p>

Latest revision as of 15:08, 13 January 2015

Autor: Deniss Krajuhhin, AK31

Antud artikkel annab ülevaadet selle kohta, mis on Bacula, mis on selle toimimise põhimõte, kuidas teostada Bacula v.5.2.6 seadistamist Ubuntu 14.04.01 LTS Server ja Ubuntu 14.04.01 LTS Desktop näitel ning kuidas teostada lihtsamaid varundustöid.


Mis on Bacula?

Bacula on vabavaraline varundustarkvara (GNU Version 2 litsentsi all), mis võimaldab teostada andmete varundamist ja taastamist, tagades samas nende terviklikkust. Bacula töötab mitmel erineval operatsioonisüsteemi platvormil. Bacula saab töötada ainult ühel masinal (mis iseenesest poleks väga mõtekas valik) ja on võimeline varundama erinevatele andmekandjatele, k.a kõvaketale ja lindile (Bacula.org).

Tehniliselt Bacula on klient-server põhine üle võrgu töötav varundusprogramm. Bacula-t on suhteliselt lihtne kasutada ja see on efektiivne, pakkudes samas suurt funktsionaalsust salvestatud andmete halduse üle, mis teevad lihtsaks kahjustatud või kustutatud faili üles leidmise ja selle taastamise. Tänu oma modulaarsele ülesehitusele Bacula skaleerub ühest ainsast masinast kuni sadadest masinatest koosnevatest arvutivõrkudeni (Bacula.org).

Kui varunduslahendust on vaja selleks, et lihtsalt varundada arvuti andmeid, siis selleks paremani sobivad sellised lahendused nagu tar, dump või bru. Bacula on pigem mõeldud arvutivõrkudele ning tagab rohkem paindlikkust ja funktsionaalsust. Selle abil saab kaitsta andmeid vastavalt enda poolt defineeritud reeglitele ning andmeid saab kirjutada mitmesse kohta korraga erinevatesse salvestusüksustesse (ingl. Volume) (Bacula.org).

Bacula komponendid (teenused)

Bacula koosneb järgnevatest viiest komponendist (teenusest): Director, Console, File, Storage, ja Monitor services. Igal ühel on oma ülesanne. Mõnda paigaldatakse ainult kliendimasinatele, teisi aga ainult juhtimismasinatele (Bacula.org).

Allikas: Bacula.org

Bacula Director

Bacula Director teenus on programm, mis juhib kõiki varundus-, taaste-, kinnitus- ja arhiveerimistegevusi. Bacula Director (edaspidi direktor) on põhiline süsteemiadministraatori töövahend, mille abil saab kavandada varundite tegemist ja taastada faile. Direktor on deemon (ingl. daemon) (taustal töötav programm). Toimimiseks direktoril on vaja juurdepääsu andmebaasimootorile, kus ta hoiab infot varundite kohta, ning töötavat Bacula Storage salvestusteenust, et salvestada varundatud andmeid tegelikkele salvestusüksustele. Keskmise suurusega võrkudes kõik kolm (direktor, andmebaas ja salvestusteenus) tavaliselt töötavad ühel nn. varundusserveril (Bacula.org).

Täpsem informatsioon Bacula direktori kohta on kätesaadav Bacula Wiki-st (http://wiki.bacula.org/doku.php).

Bacula Console

Bacula Console on programm, mille abil administraator või kasutaja saavad suhelda direktoriga. Bacula Console on kätesaadav kolmes versioonis: tekstipõhine konsooliliides, GNOME-põhine liides ja wxWidgets graafiline liides (Bacula.org).

Täpsem informatsioon Bacula konsooli kohta on kätesaadav Bacula Wiki-st (http://wiki.bacula.org/doku.php).

Bacula File

Bacula File teenus (edaspidi failiteenus), mida samuti nimetatakse lihtsalt kliendiprogrammiks, on varundamist vajavale masinale paigaldatud programm (deemon). Igale erinevale operatsioonisüsteemile on vaja just selle operatsioonisüsteemi jaoks mõeldud failiteenuse programmi. Failiteenus vastutab failiatribuutide ja andmete edastamise eest direktorile. Failiteenus samuti vastutab failiatribuutide taastamise eest taasteoperatsiooni käigus (failisüsteemipõhiselt). Lisaks Unix/Linux kliendiprogrammidele on olemas ka Windows-i omad. Uuemad Bacula versioonid töötavad koos vanemate versioonite klientidega. Mille tõttu varundusserveri uuendamine ei ole probleemiks (nt. v 2.x klient töötab koos v 5.x direktoriga) (Bacula.org).

Täpsem informatsioon Bacula failiteenuse kohta on kätesaadav Bacula Wiki-st (http://wiki.bacula.org/doku.php).

Bacula Storage

Bacula Storage teenus (edaspidi salvestusteenus) koosneb programmidest, mis teostavad faili atribuutide ja andmete salvestamist ja taastamist välisele andmekandjale või salvestusüksusele. Lihtsamalt öeldes, salvestusteenus vastutab andmete lugemise ja andmekandjale kirjutamise eest. Salvestusteenus töötab taustprogrammina (deemonina) varundusseadmel nagu kettamassiiv või lindirobot (Bacula.org).

Täpsem informatsioon Bacula salvestusteenuse kohta on kätesaadav Bacula Wiki-st (http://wiki.bacula.org/doku.php).

Bacula Catalog

Bacula Catalog teenus (edaspidi kataloogiteenus) koosneb programmidest, mis vastutavad kõikide varundatud failide võtmeloendite (indekseerimise) ja salvestusüksuste andmebaaside üleval pidamise eest. Kataloogiteenus võimaldab kiiresti teha kindlaks suvalise faili asukoha ning taastada selle. Kataloogiteenus eristab Bacula-t teistest lihtsamatest varundusprogrammidest, sest kataloogis on olemas kirjed kõikide kasutusel olevate salvestusüksuste ja kõikide tehtud tööde kohta, mis võimaldab efektiivset taastamist ja salvestusüksuste haldust (Bacula.org). Selle artikli kirjutamise hetkel Bacula toetas kolme erinevat andmebaasimootorit: PostgreSQL, MySQL ja SQLite. Bacula paigaldamisel tuleb valida, millist andebaasimootorit kasutama hakatakse.

Täpsem informatsioon Bacula kataloogiteenuste kohta on kätesaadav Bacula Wiki-st (http://wiki.bacula.org/doku.php).

Bacula Monitor

Bacula Monitor teenus on programm, mille abil saab jälgida Bacula direktorite ning Bacula failiteenuse ja Bacula salvestusteenuse klientide olekut ja saada nende kohta infot. Artikli kirjutamise hetkel selle teenuse jaoks oli kätesaadav ainult GTK+ versioon, mis töötab koos GNOME, KDE või mõne teise FreeDesktop.org standardil põhineva aknahalduriga (Bacula.org).

Bacula paigaldamine

Süsteemi nõuded

Bacula oli loodud töötamaks OpenSuSe, FreeBSD ja Solaris süsteemidel (Bacula.org), kuid töötab praktiliselt kõikidel Unix/Linux distrodel ja teatud erisustega Windows süsteemidel.

Täpsem informatsioon Bacula süsteemi nõuete kohta on kätesaadav Bacula Wiki-st (http://wiki.bacula.org/doku.php?id=bacula_manual:system_requirements).

Keskkond

Antud artikli Bacula näitekeskkonnaks on Ubuntu Server 14.04.1 LTS (edaspidi varundusserver) ja Ubuntu Desktop 14.04.1 LTS (edaspidi kliendimasin). Serverile paigaldame Bacula direktorit, Bacula salvestusteenuse, Bacula konsooli ja Bacula failiteenuse kliendi. Nagu on näha, direktor ja salvestusteenus on ühel nn. varundusserveril. Konsooli võib paigaldada suvalise masinale, kuid lihtsuse mõistes antud näites see läheb varundusserverile. Failiteenuse kliendi paigaldamisega samale masinale varundatakse ka selle masina failid. Kliendimasinale peale läheb ainult Bacula failiteenuse klienti.

Bacula direktori paigaldamine ja seadistamine

NB! Enne paigaldamise alustamist on vaja kindlasti uuendada süsteemi tarkvara teegid (apt-get update)!

Bacula direktori paigaldamisel tuleb kõige pealt otsustada, millist andmebaasimootorit soovime antud teenuse jaoks kasutada. Nagu enne oli mainitud, valida on Postgre SQL, MySQL ja SQLite3 vahel. Valitud andmebaasimootorit võib paigaldada kas enne direktori paigaldamist, või koos seda sisalduva vastava bacula-director pakkiga. Antud näitekeskkonnas paigaldame direktorit koos SQLite3-ga:

 sudo apt-get install bacula-director-sqlite3 

Paigaldamise käigus tuleb ilmuvates dialoogiaknates teha mõningaid valikuid:

1. Meiliteenuse seadistamine veateadete saatmiseks direktori poolt - valime No configuration. Seda saab vajadusel ka hiljem seadistada.

2. Andmebaasimootori paigaldamiseks tuleb valida Yes.

Märkus: teise andmebaasimootori valikul dialoog võib erineda (nt. PostgreSQL puhul on vaja lisaks ka määrata direktori ja andmebaasimootori vaheline salasõna)

Direktori paigalduse kontroll

Kui paigaldamise käigus või peale seda pole tekkinud vigu, siis Bacula direktori teenus peaks automaatselt käima minema. Selle kontrolliks kasutame käsku:

 service bacula-director status 

Kui kõik on korras, siis süsteem tagastab vastuse:

 * bacula-dir is running 

Bacula direktori seadistamine

Kõige pealt tuleks ära muuta direktori konfiguratsioonifailis /etc/bacula/bacula-dir.conf, mis aadresside pealt direktor nö kuulatab. Selleks avame direktori konfiguratsioonifaili tekstiredaktoriga (antud artiklis kõik näited on nano tekstiredaktoriga) ja muudame vastavad read Director definitsioonides ära:

 nano /etc/bacula/bacula-dir.conf 
 
Director {                            # define myself
  Name = server14-dir
 #DIRport = 9101                # where we listen for UA connections
  QueryFile = "/etc/bacula/scripts/query.sql"
  WorkingDirectory = "/var/lib/bacula"
  PidDirectory = "/var/run/bacula"
  Maximum Concurrent Jobs = 1
  Password = "Xe8XliT0D8qy6Fm4xERoSpdg-Hvk5xmoC"         # Console password
  Messages = Daemon
  #DirAddress = 127.0.0.1
  DirAddresses = {
        ip = { addr = 127.0.0.1; port = 9101; }
        ip = { addr = 192.168.56.100; port = 9101; }
 }
}

Märkus: Deffinitsioonides välja kommenteeritud vaikimisi konfiguratsiooni read on asendatud viimase DirAddresses definitsiooniga, kus on ära määratud kõik ip-aadressid ja pordid, mille pealt direktor kuulab (ip-aadress 192.168.56.100 on antud serveri masina aadress).

Vastavad muudatused tuleb ära salvestada ning nende rakendamiseks taaskäivitada direktori teenust:

 service bacula-director restart 

Märkus: Teenus taaskäivitus samas kontrollib ka konfiguratsioonifaili õigsust.


Nüüd saab kontrollida, kas teostatud muudatused on ka õieti rakundunud:

 netstat -anp | grep LISTEN | grep bacula 

Seadete õigel rakendumisel tagastus peaks olema selline:

 
tcp        0      0 192.168.56.100:9101     0.0.0.0:*               LISTEN      1070/bacula-dir 
tcp        0      0 127.0.0.1:9101          0.0.0.0:*               LISTEN      1070/bacula-dir 

Allikas: https://www.youtube.com/watch?v=rPh_NpaQjoA

Bacula Storage paigaldamine ja seadistamine

Bacula salvestusteenuse paigaldamisel tuleb jällegi määrata, mis andmebaasimootoriga seda hakatakse kasutama. Meie puhul SQLite3:

 sudo apt-get install bacula-sd-sqlite3 

Salvestusteenuse paigalduse kontroll

Kui paigaldamise käigus või peale seda pole tekkinud vigu, siis Bacula salvestusteenus teenus peaks automaatselt käima minema. Selle kontrolliks kasutame käsku:

 service bacula-sd status 

Kui kõik on korras, siis süsteem tagastab vastuse:

 * bacula-sd is running 

Bacula salvestusteenuse seadistamine

Kõige pealt tuleks luua varundute sihtkausta. Tavaliselt selleks kasutatakse varundusserveriga ühendatud lindirobotit, kuid antud näites loome selleks /var/bacula_backups kausta:

mkdir -p /var/bacula_backups

Siis tuleb ära muuta salvestusteenuse konfiguratsioonifailis /etc/bacula/bacula-sd.conf, mis aadresside pealt teenus ootab ühendusi ja kuhu varundeid hakatakse kirjutama.

Selleks avame salvestusteenuse konfiguratsioonifaili tekstiredaktoriga:

 nano /etc/bacula/bacula-sd.conf 

1. Muudame ära vastavad read Storage definitsioonides:

 
Storage {                             # definition of myself
  Name = server14-sd
  #SDPort = 9103                  # Director's port      
  WorkingDirectory = "/var/lib/bacula"
  Pid Directory = "/var/run/bacula"
  Maximum Concurrent Jobs = 20
  #SDAddress = 127.0.0.1
  SDAddresses = {
	ip = { addr = 127.0.0.1; port = 9103; }
	ip = { addr = 192.168.56.100; port = 9103; }
 }
}

2. Muudame ära varundite sihtkausta nime Device definitsioonides:

Device {
  Name = FileStorage
  Media Type = File
  Archive Device = /var/bacula_backups
  LabelMedia = yes;                   # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}

Vastavad muudatused tuleb ära salvestada ning nende rakendamiseks taaskäivitada salvestusteenust:

 service bacula-sd restart 

Nüüd saab kontrollida, kas teostatud muudatused on ka õieti rakundunud:

 netstat -anp | grep LISTEN | grep bacula 

Seadete õigel rakendumisel tagastus peaks nüüd olema selline:

 
tcp        0      0 192.168.56.100:9101     0.0.0.0:*               LISTEN      1070/bacula-dir 
tcp        0      0 127.0.0.1:9101          0.0.0.0:*               LISTEN      1070/bacula-dir  
tcp        0      0 192.168.56.100:9103     0.0.0.0:*               LISTEN      1018/bacula-sd  
tcp        0      0 127.0.0.1:9103          0.0.0.0:*               LISTEN      1018/bacula-sd 

Allikad:

1. https://www.youtube.com/watch?v=rPh_NpaQjoA

2. https://www.digitalocean.com/community/tutorials/installing-and-configuring-bacula-on-an-ubuntu-12-04-vps

Bacula File kliendi paigaldamine ja seadistamine

Nüüd, kui on paigaldatud direktor ja on seadistatud salvestusteenus, võime alustada failiteenuse klientide paigaldamise ja seadistamisega. Alustame kõige lihtsamast - paigaldame kliendi varundusserverile ja teisele, samas alamvõrgus asuvale masinale:

sudo apt-get install bacula-fd

Failiteenuse paigalduse kontroll

Bacula failiteenus peaks automaatselt käima minema. Selle kontrolliks kasutame käsku:

 service bacula-fd status 

Kui kõik on korras, siis süsteem tagastab vastuse:

 * bacula-fd is running 

Failiteenuse seadistamine

Kui varundusserverile paigaldatud failiteenuse klienti ei ole vaja täiendavalt seadistada, kõik õiged seaded lähevad peale automaatselt, siis teiste masinate kliente on. Selleks tuleb teha muudatused nii kliendi konfiguratsioonifailis /etc/bacula/bacula-fd.conf kui ka direktori konfiguratsiooni faili Client sektsioonis. Kõige pealt on vaja ära muuta kliendi konfiguratsioonifaili:

nano /etc/bacula/bacula-fd.conf

Selles tuleb ära määrata direktorit, lisades sinna direktori FQDN-i. Ühe alamvõrgu piires piisab ka hostname-ist:

# List Directors who are permitted to contact this File daemon
#
Director {
  Name = server14-dir
  Password = "eKA8a4Aa4hClPfbur-vg18GBvymGqAw-B"
}

NB! Salasõna muuta ei tohi! Range soovitus - salvestada see turvalisse kohta! See pärast läheb direktori konfiguratsioonifaili seda klienti kirjeldava Client sektsiooni.

Järgmiseks on vaja ära määrata selle kliendi jälgimisseaded sellele Bacula konsooliga ligi saamiseks. Selleks tuleb sisestada konsooli juurdepääsu lubamiseks selle masina nimi, kust juurdepääs teostatakse ning sisestada vastav salasõna. Kuna Bacula konsooli kavatsema kasutada varundusserveris, siis tuleb sisestada selle nimi (server14-mon) ning <a>kopeerida selle bacula-dir.conf failist Console sektsioonist salasõna ja kleepida selle vastava direktori (vaikimisi Restricted Director) salasõna kohale</a>:

# Restricted Director, used by tray-monitor to get the
#   status of the file daemon
#
Director {
  Name = server14-mon
  Password = "a4UXlOaiy_6cnDgBlUCv3biFMExnIboFt"
  Monitor = yes
}

NB! Salasõna muuta ei tohi! Range soovitus - salvestada see turvalisse kohta! See pärast läheb direktori konfiguratsioonifaili jälgimisseadete Monitor sektsiooni.

Siis tuleb seadistada ip-aadressi, mille pealt klient nö kuulab Bacula direktori korraldusi:

# "Global" File daemon configuration specifications
#
FileDaemon {                          # this is me
  Name = deniss-14-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Maximum Concurrent Jobs = 20
  FDAddress = 192.168.56.101
}

Märkus: Aadress 192.168.56.101 on antud juhul varundusserveri ip-aadress.

Ja viimaseks, tuleb seadistada kuhu klient saadab oma failiteenuse sõnumeid:

# Send all messages except skipped files back to Director
Messages {
  Name = Standard
  director = server14-dir = all, !skipped, !restored
}

Vastavad muudatused tuleb ära salvestada ning nende rakendamiseks failiteenus taaskäivitada:

 service bacula-fd restart 

Nüüd saab kontrollida, kas teostatud muudatused on ka õieti rakundunud:

 netstat -anp | grep LISTEN | grep bacula 

Seadete õigel rakendumisel tagastus peaks nüüd olema selline:

 
tcp        0      0 192.168.56.101:9102     0.0.0.0:*               LISTEN      1038/bacula-fd

Direktori klientide definitsioonide seadistamine

Nüüd vastavad kliendid tuleb direktori konfiguratsioonifailis ära seadistada. Selleks läheb vaja klientide FQDN-e või hostinimesid ja bacula-fd.conf failis olevaid salasõnu.

Lisame bacula-fd.conf faili kliendi definitsiooni. Lisada on vaja kliendi nimi, ip-aadress ja salasõna, mille tuleb kopeerida kliendi bacula-fd.conf faili Director sektsioonist:

# Second Client (File Services) to backup
#  You should change Name, Address, and Password before using
#
Client {
  Name = deniss-14-fd
  Address = 192.168.56.101
  FDPort = 9102
  Catalog = MyCatalog
  Password = "eKA8a4Aa4hClPfbur-vg18GBvymGqAw-B"         # password for FileDaemon 2
  File Retention = 30 days            # 30 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Muudatuste rakendamiseks ja õigsuse kontrolliks direktori teenus taaskäivitada.

Bacula klientide andmete varundamine

Antud näites käsitleme ainult failiteenuse klientide andmete varundamist.

Varundustööde teostamine Bacula konsooli kaudu

Kui antud etapis kõik teenused töötavad ja kõikides vajalikkes masinates kõikidel vajalikel aadressidel kuulatakse, siis võib katsetada varundustööde teostamist. Selleks on vaja avada Bacula konsool. Selles näites varundusserveri käsurealt:

sudo bconsole

Väljund:

Connecting to Director localhost:9101
1000 OK: server14-dir Version: 5.2.6 (21 February 2012)
Enter a period to cancel a command.
*

Klientide olemasolu kontroll

Kõige pealt kontrollime, kas kõik meie kliendid on ühendatud käsuga status:

*status
Status available for:
     1: Director
     2: Storage
     3: Client
     4: All
Select daemon type for status (1-4): 

Valime 3 ja see järel meid huvitavat klienti:

Select daemon type for status (1-4): 3
The defined Client resources are:
     1: server14-fd
     2: deniss-14-fd
Select Client (File daemon) resource (1-2): 2
Connecting to Client deniss-14-fd at 192.168.56.101:9102

deniss-14-fd Version: 5.2.6 (21 February 2012)  x86_64-pc-linux-gnu ubuntu 14.04
Daemon started 10-Jan-15 19:00. Jobs: run=0 running=0.
 Heap: heap=135,168 smbytes=16,041 max_bytes=16,188 bufs=49 max_bufs=50
 Sizeof: boffset_t=8 size_t=8 debug=0 trace=0 
Running Jobs:
Director connected at: 10-Jan-15 19:37
No Jobs running.
====

Terminated Jobs:
 JobId  Level    Files      Bytes   Status   Finished        Name 
======================================================================
     4  Full        209    6.405 M  OK       09-Jan-15 15:41 BackupClient2
====
You have messages.
*

Teadete kuvamiseks tuleb sisestada message

Märkus:Kättesaadavate käskude kuvamiseks tuleb sisestada help.

Varundustöö teostamine

Varundi tegemiseks konsooli käsurealt tuleb kõige pealt tekitada varundatava faili nime. Selleks tuleb sisestada label ja seejärel 2 (File), kuna tahame varundada faile:

*label
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
Automatically selected Storage: File
Enter new Volume name: TestArchive_20140109
Defined Pools:
     1: Default
     2: File
     3: Scratch
Select the Pool (1-3): 2
Connecting to Storage daemon File at 192.168.56.100:9103 ...
Sending label command for Volume "TestArchive_20140109" Slot 0 ...
3000 OK label. VolBytes=208 DVD=0 Volume="TestArchive_20140109" Device="FileStorage" (/var/bacula_backups)
Catalog record for Volume "TestArchive_20140109", Slot 0  successfully created.
Requesting to mount FileStorage ...
3906 File device ""FileStorage" (/var/bacula_backups)" is always mounted.
*

Varundustöö alustamiseks tuleb sisestada käsk run:

*run
A job name must be specified.
The defined Job resources are:
     1: BackupClient1
     2: BackupClient2
     3: BackupCatalog
     4: RestoreFiles
Select Job resource (1-4): 2
Run Backup job
JobName:  BackupClient2
Level:    Incremental
Client:   deniss-14-fd
FileSet:  Full Set
Pool:     File (From Job resource)
Storage:  File (From Job resource)
When:     2015-01-10 19:45:53
Priority: 10
OK to run? (yes/mod/no): 

Valime yes.

Märkus: kuna antud juhul täisvarundus on juba tehtud, siis pakutakse ainult Incremental (ainult muudatused) varundi tegemist.

Peale töö lõpetamist ilmub teade You have messages. Sisestades käsku message saame ülevaadet teostatud töö kohta.

Kokkuvõte

Bacula on väga suurte võimaluste varunduslahendus. Tundub, et see sobib hästi keskmisest alates arvutivõrkude jaoks. Suuremates võrkudes küll pole mõeldav, et varundatakse igat klienti. See pigem peaks toimuma teenusepõhiselt. Antud artiklis kirjeldatu on ainult väike osa sellest, mida Bacula-ga on võimalik teha.

Kuna autor kõige pealt katsetas siin kirjeldatu rakendamist ning artikli sisu mahukusest tulenevalt kirjeldas kõiki samme mälu järgi, siis on võimalik, et mõni asi on jäänud üles märkimata. Parandused on teretulnud!

Näidetes kasutatud konfifailid

Bacula direktor: https://drive.google.com/file/d/0B4GAZkxHt7nUVnplRTdnVXkzZlk/view?usp=sharing

Bacula salvestusteenus: https://drive.google.com/file/d/0B4GAZkxHt7nUTERobGFQbl9vYXc/view?usp=sharing

Bacula kliendimasin: https://drive.google.com/file/d/0B4GAZkxHt7nUX0ZManVVMGhEdGM/view?usp=sharing

Bacula klient serveris: https://drive.google.com/file/d/0B4GAZkxHt7nUOGVVdG1FejhRZGs/view?usp=sharing

Kasutatud allikad

1. Bacula.org: http://bacula.org/

2. Bacula - Installing on Ubuntu: https://www.youtube.com/watch?v=rPh_NpaQjoA

3. https://www.digitalocean.com/community/tutorials/installing-and-configuring-bacula-on-an-ubuntu-12-04-vps