Bacula paigaldamine ja esmane seadistamine
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
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!
Kasutatud allikad
1. Bacula.org: http://bacula.org/
2. Bacula - Installing on Ubuntu: https://www.youtube.com/watch?v=rPh_NpaQjoA