Bareos

From EIK wiki

Juhend on mõeldud Keskmiste oskustega GNU/Linux administraatorile

NB!

Juhend on poolik ja autoril ei ole esmapilgul võimalust artiklit lõpetada.

Huvilistel on võimalus artikkel lõpuni viia.

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.

Bareos ülesehitus[1]


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

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

Eth0: DHCP

Eth1: 192.168.56.10

Disk:

NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                      252:0    0    8G  0 disk
|-vda1                   252:1    0  500M  0 part /boot
`-vda2                   252:2    0  7.5G  0 part
  |-centos_rakendus-swap 253:0    0  820M  0 lvm  [SWAP]
  `-centos_rakendus-root 253:1    0  6.7G  0 lvm  /


Video: Cirrus Logic 9M

OpenSUSE 13.2 Harlequin

Graafilise liidesega klient. Mõeldud esindama tööjaamaarvutit.

CPU: 1x QEMU Virtual CPU

MEM: 1024M

Eth0:DHCP

Eth1: 192.168.56.13

Disk:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0    8G  0 disk
├─sda1   8:1    0  995M  0 part [SWAP]
└─sda2   8:2    0    7G  0 part /


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
Andmebaasi konfiguratsiooniviisard

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

Järgneb lühike seletus koos näidetega

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)
}


Job

Ressurss, mille all saab ära konfigureerida mis varundus- või taastetööd Bareos tegema peab.

Lihtne varnudustöö, mis kasutab ära DefaultJob minelist vaikevarundussätet.

#
# Define the main nightly save backup job
#   By default, this job will back up to disk in /var/lib/bareos/storage
Job {
  Name = "BackupClient1"
  JobDefs = "DefaultJob"
}


Varundab ära kataloogi pärast viimast varundustööd

#
# Backup the catalog database (after the nightly save)
#
Job {
  Name = "BackupCatalog"
  JobDefs = "DefaultJob"
  Level = Full
  FileSet="Catalog"
  Schedule = "WeeklyCycleAfterBackup"

  # This creates an ASCII copy of the catalog
  # Arguments to make_catalog_backup.pl are:
  #  make_catalog_backup.pl <catalog-name>
  RunBeforeJob = "/usr/lib/bareos/scripts/make_catalog_backup.pl MyCatalog"

  # This deletes the copy of the catalog
  RunAfterJob  = "/usr/lib/bareos/scripts/delete_catalog_backup"

  # This sends the bootstrap via mail for disaster recovery.
  # Should be sent to another system, please change recipient accordingly
  Write Bootstrap = "|/usr/bin/bsmtp -h localhost -f \"\(Bareos\) \" -s \"Bootstrap for Job %j\" root@l\
ocalhost" # (#01)
  Priority = 11                   # run after main backup
}

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://www.debianadmin.com/how-to-install-bareos-fork-of-bacula-backup-application-in-debian-7-0.html

http://blog.giuseppeurso.net/installing-bareos-bacula-fork-web-front-end-debian-wheezy/

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-160001.8