Project

General

Profile

BaculaBackup » History » Version 22

Amministratore Truelite, 07/09/2010 03:57 PM

1 5 Amministratore Truelite
[[TracNav(TOC)]]
2 1 Amministratore Truelite
= Backup con Bacula =
3 1 Amministratore Truelite
4 2 Amministratore Truelite
[http://www.bacula.org/ Bacula] è un potente sistema che consente la centralizzazione dei backup di varie macchine all'interno di una rete, e la gestione automatica degli stessi.
5 1 Amministratore Truelite
6 1 Amministratore Truelite
L'architettura di bacula è composta da tre componenti principali:
7 1 Amministratore Truelite
8 2 Amministratore Truelite
 * il ''File Daemon'', che va installato sulle macchine di cui si vuole effettuare il backup ed ha il compito di gestire i file di cui deve essere eseguito il backup.
9 14 Amministratore Truelite
 * lo ''Storage Daemon'' che va installato sulla macchina su cui è presente il dispositivo di registrazione dei dati (nastro, disco o quant'altro).
10 14 Amministratore Truelite
 * il ''Director'' che va installato su una macchina qualsiasi (ma in genere si usa quella dove sta il dispositivo di backup) e che è il servizio che controlla tutti gli altri e gestisce i backup.
11 1 Amministratore Truelite
12 14 Amministratore Truelite
Ciascuno di questi tre servizi ha un suo script di avvio ed un suo file di configurazione, come illustrato nella seguente tabella:
13 1 Amministratore Truelite
14 1 Amministratore Truelite
||Servizio||File di configurazione||Script di avvio||
15 3 Amministratore Truelite
||File Daemon||{{{bacula-fd.conf}}}||bacula-fd||
16 3 Amministratore Truelite
||Storage Daemon||{{{bacula-sd.conf}}}||bacula-sd||
17 3 Amministratore Truelite
||Director||{{{bacula-dir.conf}}}||bacula-director||
18 1 Amministratore Truelite
19 22 Amministratore Truelite
a questi si aggiuinge poi la console di comando. 
20 22 Amministratore Truelite
21 22 Amministratore Truelite
== Installazione e configurazione ==
22 22 Amministratore Truelite
23 22 Amministratore Truelite
Tratteremo dell'installazione e della configurazione di base con Debian Lenny. Una delle caratteristiche di [http://www.bacula.org/ Bacula] è quella di salvare su un database il suo stato, mantenendo quello che viene chiamato dal programma stesso il ''catalogo''. Il programma supporta tre tipi di database, MySQL, PostgreSQL e SQLite. Dato che la versione ufficiale di Debian Lenny non aveva abilitato (per questioni di licenza con OpenSSL) il supporto per le connessioni cifrate, useremo la versione ottenuta da backports (la 5.0.2 al momento della scrittura di queste note) che usa GnuTLS. 
24 22 Amministratore Truelite
25 22 Amministratore Truelite
Per installare il necessario sul server di backup occorre anzitutto inserire la seguente riga in {{{/etc/apt/sources.list}}}:
26 22 Amministratore Truelite
{{{
27 22 Amministratore Truelite
deb http://www.backports.org/debian lenny-backports main contrib
28 22 Amministratore Truelite
}}}
29 22 Amministratore Truelite
e poi installare la versione per il database scelto con:
30 22 Amministratore Truelite
{{{
31 22 Amministratore Truelite
apt-get install bacula-director-sqlite3
32 22 Amministratore Truelite
}}}
33 22 Amministratore Truelite
34 22 Amministratore Truelite
35 22 Amministratore Truelite
36 22 Amministratore Truelite
37 22 Amministratore Truelite
38 22 Amministratore Truelite
== Configurazione con SSL ==
39 22 Amministratore Truelite
40 22 Amministratore Truelite
Con la versione 1.38 (presente di default su Debian Etch), Bacula ha il supporto nativo per l'uso di SSL per il trasferimento dei dati, che però è stato disabilitato con Lenny per questioni di conflitto di licenza. In precedenza era necessario impostare gli opportuni tunnel SSL con {{{stunnel}}}, in questo caso la cosa si semplifica leggermente. In caso di presenza di un firewall occorre comunque ricordare che la struttura di Bacula prevede che il ''File Daemon'' deve poter contattare lo ''Storage Daemon'' ed occorrerà pertanto prevedere gli opportuni ''pin-holes'' per eventuali accessi da server dalla DMZ (si presuppone ovviamente che il server di backup sia nella rete interna).
41 22 Amministratore Truelite
42 22 Amministratore Truelite
Il primo passo è quello di procurarsi i certificati necessari, questi andranno anzitutto installati sul ''Director'' per quanto riguarda tutti i vari servizi: il ''Director'' stesso, che viene contattato dalla console, ed il ''File Daemon'', che viene contattato dai vari ''File Daemon''. Occorre allora anzitutto configurare l'accesso al ''Director'' definendo la relativa voce in {{{bacula-dir.conf}}}:
43 22 Amministratore Truelite
44 22 Amministratore Truelite
{{{
45 22 Amministratore Truelite
Director {                            # define myself
46 22 Amministratore Truelite
  Name = backup1-dir
47 22 Amministratore Truelite
  DIRport = 9101                # where we listen for UA connections
48 22 Amministratore Truelite
  QueryFile = "/etc/bacula/scripts/query.sql"
49 22 Amministratore Truelite
  WorkingDirectory = "/var/lib/bacula"
50 22 Amministratore Truelite
  PidDirectory = "/var/run/bacula"
51 22 Amministratore Truelite
  Maximum Concurrent Jobs = 1
52 22 Amministratore Truelite
  Password = "xxx"         # Console password (lunga e complicata)
53 22 Amministratore Truelite
  Messages = Daemon
54 22 Amministratore Truelite
#  DirAddress = 127.0.0.1
55 22 Amministratore Truelite
  TLS Enable = yes
56 22 Amministratore Truelite
  TLS Require = yes
57 22 Amministratore Truelite
  TLS CA Certificate File = /etc/bacula/cacert.pem
58 22 Amministratore Truelite
  TLS Certificate = /etc/bacula/backup1-cert.pem
59 22 Amministratore Truelite
  TLS Key = /etc/bacula/backup1-key.pem
60 22 Amministratore Truelite
  TLS Verify Peer = yes
61 22 Amministratore Truelite
  TLS Allowed CN = "backup1.privata.ittig.cnr.it"
62 22 Amministratore Truelite
}
63 22 Amministratore Truelite
}}}
64 22 Amministratore Truelite
65 22 Amministratore Truelite
66 11 Amministratore Truelite
== Uso dell'autochanger ==
67 1 Amministratore Truelite
68 11 Amministratore Truelite
Perché sia possibile utilizzare un dispositivo cambianastri (quello che in gergo viene chiamato ''Autochanger''), deve essere disponibile e funzionante lo script {{{/etc/bacula/scripts/mtx-changer}}}.
69 1 Amministratore Truelite
70 14 Amministratore Truelite
Normalmente i dispositivi cambianastri sono pilotati direttamente attraverso l'interfaccia SCSI, utilizzando il dispositivo generico (se avete solo il nastro SCSI questo sarà {{{/dev/sg0}}}, in generale va verificato). Per inviare i comandi viene usato un programma apposito, {{{mtx}}}, cui lo script installato di default si appoggia. Esistono però anche cambianastri pilotati con modalità diverse, nel qual caso occorrerà uno script dedicato, un esempio per un ''IBM Ultrium LTO 3581 L28'', che viene comandato via {{{telnet}}}, è allegato alla pagina.
71 1 Amministratore Truelite
72 11 Amministratore Truelite
Per poter utilizzare il cambianastri si deve anzitutto segnalarne la presenza nella sezione Device del file {{{bacula-sd.conf}}}, ed indicare il file di dispositivo da usare, un possibile esempio è il seguente:
73 1 Amministratore Truelite
{{{
74 1 Amministratore Truelite
Device {
75 1 Amministratore Truelite
  Name = DDS-4                        #
76 1 Amministratore Truelite
  Media Type = DDS-4
77 1 Amministratore Truelite
  Archive Device = /dev/nst0
78 1 Amministratore Truelite
  AutomaticMount = yes;               # when device opened, read it
79 1 Amministratore Truelite
  AlwaysOpen = yes;
80 1 Amministratore Truelite
  RemovableMedia = yes;
81 1 Amministratore Truelite
  RandomAccess = no;
82 1 Amministratore Truelite
  Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d"
83 1 Amministratore Truelite
  Changer Device = /dev/sg1
84 1 Amministratore Truelite
  AutoChanger = yes
85 1 Amministratore Truelite
  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
86 1 Amministratore Truelite
}
87 1 Amministratore Truelite
}}}
88 13 Amministratore Truelite
inoltre deve essere reso noto al ''Director'' che lo storage supporta l'autochanger; questo si fa con una analoga riga {{{AutoChanger = yes}}} nella sua configurazione; cioè si dovrà avere dentro {{{bacula-dir.conf}}} qualcosa del tipo:
89 10 Amministratore Truelite
{{{
90 10 Amministratore Truelite
Storage {
91 10 Amministratore Truelite
  Name = File
92 10 Amministratore Truelite
  Address = bacula.truelite.it   # N.B. Use a fully qualified name here
93 10 Amministratore Truelite
  SDPort = 9103
94 10 Amministratore Truelite
  Password = "xxxxxxx"
95 10 Amministratore Truelite
  Device = DDS-4
96 10 Amministratore Truelite
  Media Type = DDS-4
97 10 Amministratore Truelite
  Autochanger = yes
98 10 Amministratore Truelite
}
99 10 Amministratore Truelite
}}}
100 1 Amministratore Truelite
101 14 Amministratore Truelite
Fatto questo diventa possibile usare l'attributo {{{slot}}} nel comando {{{label}}} da console. Con questo diventa possibile etichettare i vari nastri dell'autochanger con una serie di comandi del tipo:
102 1 Amministratore Truelite
{{{
103 1 Amministratore Truelite
*label slot=5
104 1 Amministratore Truelite
Using default Catalog name=MyCatalog DB=bacula
105 1 Amministratore Truelite
Automatically selected Storage: File
106 1 Amministratore Truelite
Enter new Volume name: Volume005
107 1 Amministratore Truelite
Automatically selected Pool: Default
108 10 Amministratore Truelite
Connecting to Storage daemon File at bacula.truelite.it:9103 ...
109 1 Amministratore Truelite
Sending label command for Volume "Volume005" Slot 5 ...
110 1 Amministratore Truelite
3301 Issuing autochanger "loaded drive 0" command.
111 1 Amministratore Truelite
3302 Autochanger "loaded drive 0", result is Slot 4.
112 1 Amministratore Truelite
3303 Issuing autochanger "unload slot 4, drive 0" command.
113 1 Amministratore Truelite
3304 Issuing autochanger "load slot 5, drive 0" command.
114 1 Amministratore Truelite
3305 Autochanger "load slot 5, drive 0", status is OK.
115 1 Amministratore Truelite
block.c:264 Volume data error at 0:0! Wanted ID: "BB02", got "". Buffer discarded.
116 1 Amministratore Truelite
3000 OK label. Volume=Volume005 Device=/dev/nst0
117 1 Amministratore Truelite
Catalog record for Volume "Volume005", Slot 5  successfully created.
118 1 Amministratore Truelite
Requesting to mount DDS-4 ...
119 1 Amministratore Truelite
3001 Device /dev/nst0 is mounted with Volume "Volume005"
120 1 Amministratore Truelite
}}}
121 1 Amministratore Truelite
da ripetere per tutti i nastri disponibili. 
122 1 Amministratore Truelite
123 1 Amministratore Truelite
Una volta inizializzati i vari nastri si può rendere noto al ''Director'' la presenza dei vari nastri con il comando:
124 1 Amministratore Truelite
{{{
125 1 Amministratore Truelite
update slots scan
126 1 Amministratore Truelite
}}}
127 11 Amministratore Truelite
128 11 Amministratore Truelite
129 11 Amministratore Truelite
== Come gestire manualmente i nastri ==
130 11 Amministratore Truelite
131 11 Amministratore Truelite
Per la rimozione dei dati presenti sui nastri si devono seguire i seguenti passi:
132 11 Amministratore Truelite
133 15 Amministratore Truelite
 * rimuovere i dati dal catalogo con {{{purge}}} scegliendo il volume da cancellare.
134 15 Amministratore Truelite
 * inserire il nastro nel dispositivo, se si dispone dell'autochanger si può fare con:
135 15 Amministratore Truelite
{{{
136 15 Amministratore Truelite
/etc/bacula/scripts/mtx-changer /dev/sg1 load N
137 15 Amministratore Truelite
}}}
138 15 Amministratore Truelite
   dove N è il numero dello slot.
139 15 Amministratore Truelite
 * cancellarne il contenuto a mano con {{{btape test}}} o scrivendoci direttamente
140 13 Amministratore Truelite
 * usare {{{label}}} per modificarne l'etichetta
141 11 Amministratore Truelite
142 11 Amministratore Truelite
Se invece si è configurato correttamente il periodo di ritenzione dei dati, sarà ''Bacula'' che provvederà a cercare il primo nastro libero, posto che il periodo non sia eccessivo e lo spazio disponibile esaurito, 
143 11 Amministratore Truelite
144 11 Amministratore Truelite
Nel qual caso si potrà ridurre il periodo di ritenzione con il comando:
145 11 Amministratore Truelite
{{{
146 11 Amministratore Truelite
update volume=VolumeXXX VolRetention=ddd
147 11 Amministratore Truelite
}}}
148 11 Amministratore Truelite
si tenga presente che cambiare il perido di ritenzione direttamente dentro {{{bacula-dir.conf}}} non è sufficiente in quanto questi dati sono registrati all'interno del singolo volume e non cambiano fintanto che non se ne aggiorna il valore.
149 16 Amministratore Truelite
150 16 Amministratore Truelite
151 16 Amministratore Truelite
== Cosa fare quando si esaurisce lo spazio disponibile ==
152 16 Amministratore Truelite
153 16 Amministratore Truelite
La maggiore forza di [http://www.bacula.org/ Bacula] è quella, una volta configurato correttamente, di essere in grado di gestire tutta la procedura di backup in maniera automatica. In genere questo funziona correttamente senza nessun intervento manuale. L'incidente più comune che può capitare è che si esaurisca lo spazio (disco o nastro) disponibile per i backup, nel qual caso il comportamento di [http://www.bacula.org/ Bacula] è quello di bloccare i backup rispettando i termini del periodo di ritenzione dei dati impostato. 
154 16 Amministratore Truelite
155 16 Amministratore Truelite
Perciò se si desidera che i backup proseguano sovrascrivendo i vecchi dati occorrerà liberare lo spazio necessario. Questo dovrà essere fatto andando a rimuovere i dati più vecchi; per questo su può utilizzare il comando {{{purge}}}, ma occorrerà individuare opportunamente cosa rimuovere. Un esempio di utilizzo allora potrebbe essere il seguente; prima si potrà verificare lo stato dei volumi utilizzati con il comando:
156 17 Amministratore Truelite
{{{
157 17 Amministratore Truelite
*list volumes
158 17 Amministratore Truelite
Using default Catalog name=MyCatalog DB=bacula
159 17 Amministratore Truelite
Pool: Default
160 17 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
161 17 Amministratore Truelite
| MediaId | VolumeName | VolStatus | VolBytes    | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten         |
162 17 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
163 17 Amministratore Truelite
| 1       | Volume0013 | Full      | 13156318147 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-06 02:53:16 |
164 17 Amministratore Truelite
| 2       | Volume0014 | Full      | 15260956061 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-15 01:12:48 |
165 17 Amministratore Truelite
| 3       | Volume0015 | Full      | 10288088510 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-07-30 02:03:26 |
166 17 Amministratore Truelite
| 4       | Volume0016 | Full      | 28805889791 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-06 01:26:31 |
167 17 Amministratore Truelite
| 5       | Volume0017 | Full      | 14412428094 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-07-29 01:27:50 |
168 17 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
169 17 Amministratore Truelite
}}}
170 17 Amministratore Truelite
dopo di che, considerato che i dati più vecchi si trovano sul Volume0017, se potrà cancellare il contenuto con:
171 17 Amministratore Truelite
{{{
172 17 Amministratore Truelite
* purge volume=Volume0017
173 17 Amministratore Truelite
174 18 Amministratore Truelite
This command is can be DANGEROUS!!!
175 16 Amministratore Truelite
176 16 Amministratore Truelite
It purges (deletes) all Files from a Job,
177 19 Amministratore Truelite
JobId, Client or Volume; or it purges (deletes)
178 19 Amministratore Truelite
all Jobs from a Client or Volume without regard
179 1 Amministratore Truelite
for retention periods. Normally you should use the
180 20 Amministratore Truelite
PRUNE command, which respects retention periods.
181 20 Amministratore Truelite
182 21 Amministratore Truelite
}}}
183 1 Amministratore Truelite
(il comando impiegherà un certo tempo per eseguire l'operazione), a questo punto si potrà verificare che il volume è diventato disponibile con:
184 21 Amministratore Truelite
{{{
185 21 Amministratore Truelite
*list volumes
186 21 Amministratore Truelite
Using default Catalog name=MyCatalog DB=bacula
187 21 Amministratore Truelite
Pool: Default
188 21 Amministratore Truelite
189 21 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
190 21 Amministratore Truelite
| MediaId | VolumeName | VolStatus | VolBytes    | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten         |
191 21 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
192 21 Amministratore Truelite
| 1       | Volume0013 | Full      | 13156318147 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-06 02:53:16 |
193 21 Amministratore Truelite
| 2       | Volume0014 | Full      | 15260956061 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-15 01:12:48 |
194 21 Amministratore Truelite
| 3       | Volume0015 | Full      | 10288088510 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-07-30 02:03:26 |
195 21 Amministratore Truelite
| 4       | Volume0016 | Full      | 28805889791 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-06 01:26:31 |
196 21 Amministratore Truelite
| 5       | Volume0017 | Purged    | 968063348   | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-21 11:59:28 |
197 21 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
198 21 Amministratore Truelite
}}}
199 1 Amministratore Truelite
200 21 Amministratore Truelite
201 22 Amministratore Truelite
== Configurazione Webacula ==
202 21 Amministratore Truelite
203 22 Amministratore Truelite
[http://webacula.sourceforge.net/ Webacula] è una interfaccia di gestione via Web di Bacula, basata su PHP e Zendframework, pertanto per installarla si sono preventivamente installati i seguenti pacchetti con:
204 21 Amministratore Truelite
{{{
205 22 Amministratore Truelite
apt-get install zendframework php5-gd
206 1 Amministratore Truelite
}}}