Bareos
Juhend on mõeldud Keskmiste oskustega GNU/Linux administraatorile
Autor: Kristjan Indlo A41
Kuupäev: 2014.12.11, 2015.01.15, 2015.01.22, 2015.01.26
Eesmärk
Tutvustada varundustarkvarakomplekti Bareos ja pakkuda sellega asendust topeltlitsenseeridud tootele Bacula. Pakkuda lühidat ja lihtsat laborit, et tutvda Bareos'iga.
Teooriat
Bacula on pikka aega olnud populaarne lahendus varunduste loomiseks, eriti siis kui loodi Bacula open source versioon. Paraku on Bacula arendus aeglustunud ja sootuks seisma jäänud. Panused ja muudatused koodi juhtusid arva ja ainult "enterprise" versioonis. Bareos sündis aastal 2010, kui üks Bacula kommuuni liige tegi koodipanuseid, mis olid suunatud vaba Bacula versioonile. Paraku ta muudatused lükati tagasi ja neid sooviti ainult mittevabasse("enterprise") Bacula versiooni. See sündmus aintas kaasa otsusele, kus osad Bacula kommuuniliikmed lahkusid projektist ja lõid Bareos projekti.
Esmalt, kui Bareos loodi, kaevati ka projekti liikmed Bacula looja poolt kohtusse, süüdistades autoriõiguste rikkumist.
Siiski tuli välja, et autoriõiguste rikkumist ei tominud ja autori subjektiivse arvamuse järgi püüdis Bacula "tagasi maksta" antud Bareos arendajatele Bacula hülgamise pärast.
Viiteid toestamaks autori arvamust: [2][3][4][5]
Õnneks jõuti kompromissini, ning mõlemad projektid on aktiivsed.
Mis on bareos
Bareos on esitähtlühend fraasile: Backup Archiving REcovery Open Sourced.
Esmalt oli Bareos Bacula fork. Juhendites kirjeldatakse Baculalt Bareos'ile migreerumist kõige viimase Bacula versiooni paigaludsega ning sellelt juba Bareos paigalduse asendamisega.
Pärast Baculast forkimist on Bareosile lisandunud palju uut. Uute tunnustega tutvumiseks külasta bareos "whats new" lehte[6].
Bareos on oma tööpõhimõttelt sama nagu Bacula. Erinevus tuleb sisse selles, et kogu projekt on vaba tarkvara, kõike kasutajaid koheldakse võrdselt.
Bareos projekt on litsenseeritud AGPLv3 all.
Bareos on saranane oma ülesehituselt Baculale.
Keda lähemalt huvitab, siis saab vaadata Bareos esitlust aasta 2013 Fosdem esitlust: LINK (Video on 15 minutit pikk)
Bareos ülesehitus
Bareos ja Bacula ülesehitus on sarnased[7]
Bareos ülesehitus koosneb kolmest põhikomponendist, mis moodustavad ühtse terviku.
Direktor
Varunduse loogika, suurem osa konfiguratsioonist asub Direktoril.
Konfiguratsioonifailid Direktoris:
-Andmebaasi konfiguratsioon
NB! Andmebaas on on kataloogi rollis.
Kataloog talletab endas teabe failide, salvestusmeediumite ja tööde kohta.
NB!2 Andmebaas != Andmeladu
-Kõik kliendid, kuidas neile liginetakse
-Mida täpsemalt varundatakse
-Pluginate konfiguratsioon
-Andmelao konfiguratsioon ja omadused
-Adresssaatide e-posti aadressid, kunau sõnumeid edasi saata
-Varundusgraafikud
-Varundustööd ja varundustööde vaikeseaded
Failideemon
Vastutab kliendi andmete varundust ja taaste eest.
Failideemon asub kliendi süsteemis, ning kuulab Direktori käske.
Salvestusdeemon
Andmelao eest vastutav deemon.
Bareos võrreldes Baculaga
Bareos eelised ja nõrkused
+Aktiivne arendus: vea selgumisel parandatakse kiirelt ära
+100% Free Software(vaba tarkvara) NB! Vaba ei tähenda tasuta [8]
+Eemaldatud on palju murekohti, mis on kimbutanud Baculat aastaid, nagu näiteks tulemüürivahelised ühendused [9]
-Võib olla ebastabiilsem, kuna arednus on aktiivne ja uued vead on paratamatud, tuleb tihemini uuendada
Bacula eelised ja nõrkused
+Võib olla stabiilsem, kuna arendus on seiskunud, ei ole nii tihti vaja uuendada, samas vea esinemisel on kiiret parandust palju loota
-Topeltlitsensseringuga on olemas vaba versioon ja mittevaba, kliente koheldakse ebavõrdselt, eelistatakse neid kes ei hooli tarkvaravabadusest
-Vea esinemisel vabas versioonis võib paiga saamisega kaua aega minna, kui ise programmeerida ei oska
Laboris kasutatav tarkvara
Labor on viidud läbi QEMU+KVM+Virt-Manager tarkvarakomplektiga
Siin laboris asuvad Direktor ja Andmelao Deemon ühes süsteemis. Ülejäänud kahte süsteemi on paigaldatud failideemon.
Debian 7.8 Wheezy
Labori nõndanimetatud varundusserver. Sellele süsteemile on paigaltatud Direktor ja Andmelao deemon.
Andmetele on mõeldud eraldiseisev virtuaalketas.
CPU: 1x QEMU Virtual CPU
MEM: 2048M
Network: 2x virtio adapter
Eth0[DHCP]: 192.168.122.86/24
Eth1[STATIC]: 192.168.56.2/24
Disk: 2x virtio siiniga ketast
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 254:0 0 8G 0 disk └─vda1 254:1 0 8G 0 part / vdb 254:16 0 55G 0 disk └─vdb1 254:17 0 55G 0 part /media/varundus
Video: Cirrus Logic 9M
CentOS 7.0
Graafilise liideseta klient, mõeldud esindama rakenddusserverit.
CPU: 1x QEMU Virtual CPU
MEM: 512M
Network:
Eth0: DHCP
Eth1: 192.168.56.10
Disk:
Video: Cirrus Logic 9M
OpenSUSE 13.2 Harlequin
Graafilise liidesega klient. Mõeldud esindama tööjaamaarvutit.
CPU: 1x QEMU Virtual CPU
MEM: 1024M
Network:
Eth0:
Disk:
Video: QXL 64M
Paigaldus ja konfiguratsioon [10]
Varundusserver
Siin laoboris kasutataske varundusserverina Debian 7.8 süsteemi. Süsteemil asetseb nii Direktor(teenus: bareos-dir) kui ka Andmesalvestusdeemon(teenus: bareos-sd).
Laboris paigaldatakse ka uus postgresql varamu.
NB! Kõik käsud viidud läbi juurkasutaja õigustes(root)
Juurikaks saad:
sudo <käsk> |
sudo -i |
Ubuntudes ja deviraatides ei toimi:
su |
su -c "<käsk>" |
Paigalda Bareos varamu.
#URL väärtustamine bareos repo aadressiga ning selle lisamine varamunimistusse
URL=http://download.bareos.org/bareos/release/latest/Debian_7.0/
printf "deb $URL /\n" > /etc/apt/sources.list.d/bareos-latest.list
#varamuvõti(kasutatakse sama muutujat URL)
wget -q $URL/Release.key -O- | apt-key add -
Paigalda postgresql varamu
#Varamu aadressi suunamine uude faili
echo -e "deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main" >> /etc/apt/sources.list.d/pgdg.list
#varamuvõtme lisamine
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
sudo apt-key add -
Uuenda varamunimistu
apt-get update |
Paigalda vajalikud sõltuvused enne bareosi paigaldust.
apt-get install postgresql-9.4 apache2 php5 php5-pgsql -y |
Paigalda Bareos ja sobiv andmebaasi liides. [11]
Valida saab mysql, postgresql ja sqlite vahel.
Autor eelistab postgresql'i tema hea jõudluse tõttu.
NB! SQLite on mõeldud vaid testimise eesmärgil, seda pole soovitatud kasutada produktsioonikeskkonnas
apt-get install bareos bareos-database-postgresql -y |
Paigalduse käigus ilmub viisard, mis küsib andmebaasi konfigureerimise kohta. Kuna andmebaas pole varem üles seatud, ega ka käsitsi alguses konfigureerima ei hakka, siis kasuta viisardit.
Hea on teada, et viisardi kasutamisel luuakse baas automaatselt samade skriptidega, millega pärast uut baasi käsitsi teha saab.
Baas katki
Juhul, kui midagi läks andmebaasi konfiguratsiooniga nässu, saab alustada värskelt nullist.[12]
Muuda end postgres kasutajaks
su postgres |
Korista ära bareos baas
drop database bareos; |
exit |
Seda saab läbi viia postgresql kasutajas ning need käsud toimivad eeldusel, et postgresql tavakasutaja postgres on saadaval.
su postgres -c /usr/lib/bareos/scripts/create_bareos_database |
su postgres -c /usr/lib/bareos/scripts/make_bareos_tables |
su postgres -c /usr/lib/bareos/scripts/grant_bareos_privileges |
Direktori konfiguratsioon
Põhiline konfiguratsioonifail asub /etc/bareos/bareos-dir.conf
Define Myself
Direktori konfiguratsioon. Siin võib kõik vaikimisi jätta labori lihtsuse mõttes.
Director { # define myself
Name = debian-dir
QueryFile = "/usr/lib/bareos/scripts/query.sql"
Maximum Concurrent Jobs = 10
Password = "63o9IFq5mY/tE9JoIRRbADSVTdRd1aSXJTcmI+8mL9Kl" # Console password
Messages = Daemon
Auditing = yes
# remove comment in next line to load dynamic backends from specified directory
# Backend Directory = /usr/lib/bareos/backends
# remove comment from "Plugin Directory" to load plugins from specified directory.
# if "Plugin Names" is defined, only the specified plugins will be loaded,
# otherwise all director plugins (*-dir.so) from the "Plugin Directory".
#
# Plugin Directory = /usr/lib/bareos/plugins
# Plugin Names = ""
}
JobDefs
Defineerib ära vaikekonfiguratsiooni kahele või enamale varundustööle.
Eesmärgiks on vähendada hilisemat konfiguratsiooni.
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = debian-fd
FileSet = "SelfTest" # selftest fileset (#13)
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = Incremental
Priority = 10
Write Bootstrap = "/var/lib/bareos/%c.bsr"
Full Backup Pool = Full # write Full Backups into "Full" Pool (#05)
Differential Backup Pool = Differential # write Diff Backups into "Differential" Pool (#08)
Incremental Backup Pool = Incremental # write Incr Backups into "Incremental" Pool (#11)
}
2) Job
Defineerib ära varundatava kliendi
3) Schedule
Varundusgraafik
4) FileSet
5) Client
Defineerib ära kliendi mida kasutatakse Job või JobDefs poolt
6) Storage
7) Catalog
8) Messages
9) Pool
10) Console
Teenuse käivitamine
service bareos-dir start |
Käivitumise edukaks eelduseks on töötav andmebaas. Kui andmebaasi ühendus ei toimi siis:
1) vaata kas postgresql teenus töötab, kui mitte, käivita see postgres teenuse kontroll
service postgresql status
netstat -lntp | grep postgre
ps aux |grep postgre
Vajadusel käivita
service postgresql start |
2) Juhul, kui baas käivitub, kuid bareos-dir ei ühenda baasiga on mõistlik baas käsitsi uuesti luua.
Lase baas õhku ja alusta otsast peale, labori keskkonnas on see kiirem kui baasi probleeme leida ja eemaldada.
Vaata peatükki Baas Katki
Andmesalvestusdeemoni konfiguratsioon
Pühiline konfiguratsioonifail Andmesalvestusdeemonile asub /etc/bareos/bareos-sd.conf
Kuna selles laboris asub andmesalvesutsseade teisel kettal siis on vaja muuta kategooriat ...:
Kasutatud kirjandus
http://video.fosdem.org/2014/H2215_Ferrer/Saturday/Open_Source_Backup_from_Bacula_to_Bareos.webm
http://doc.bareos.org/master/html/bareos-manual-main-reference.html#InstallChapter
http://doc.bareos.org/master/bareos-manual-main-reference.pdf
http://www.bareos.org/en/HOWTO/articles/quickstart.html
http://www.bareos.org/en/faq/items/copyright_bacula_bareos.html
http://www.bareos.org/en/whats_new.html
http://www.mail-archive.com/bacula-users@lists.sourceforge.net/msg57308.html
http://www.admin-magazine.com/Articles/Free-Enterprise-Backup-with-Bareos
http://www.baculasystems.com/blog/bacula-systems-sa-files-lawsuit-against-bareos-gmbh-co-kg
http://blog.giuseppeurso.net/installing-bareos-bacula-fork-web-front-end-debian-wheezy/