BaculaBackup » Cronologia » Versione 29
Simone Piccardi, 22-12-2010 15:01
1 | 28 | Amministratore Truelite | h1. Backup con Bacula |
---|---|---|---|
2 | 1 | Amministratore Truelite | |
3 | 28 | Amministratore Truelite | |
4 | "Bacula":http://www.bacula.org/ è un potente sistema che consente la centralizzazione dei backup di varie macchine all'interno di una rete, e la gestione automatica degli stessi. |
||
5 | |||
6 | 1 | Amministratore Truelite | L'architettura di bacula è composta da tre componenti principali: |
7 | |||
8 | 28 | 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 | * lo _Storage Daemon_ che va installato sulla macchina su cui è presente il dispositivo di registrazione dei dati (nastro, disco o quant'altro). |
||
10 | * 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 | 14 | Amministratore Truelite | |
12 | 1 | 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 | |||
14 | 29 | Simone Piccardi | |_Servizio|_File di configurazione|_Script di avvio| |
15 | |File Daemon|@bacula-fd.conf@|bacula-fd| |
||
16 | |Storage Daemon|@bacula-sd.conf@||bacula-sd| |
||
17 | |Director|@bacula-dir.conf@||bacula-director| |
||
18 | 1 | Amministratore Truelite | |
19 | 29 | Simone Piccardi | a questi si aggiuinge poi la console di comando, @bconsole@. |
20 | 22 | Amministratore Truelite | |
21 | |||
22 | 28 | Amministratore Truelite | h2. Installazione e configurazione |
23 | 1 | Amministratore Truelite | |
24 | 28 | Amministratore Truelite | |
25 | Tratteremo dell'installazione e della configurazione di base con Debian Lenny. Una delle caratteristiche di "Bacula":http://www.bacula.org/ è 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 ultima revisione di queste note) che usa [[GnuTLS]]. |
||
26 | |||
27 | <pre> |
||
28 | <pre> |
||
29 | 1 | Amministratore Truelite | deb http://www.backports.org/debian lenny-backports main contrib |
30 | 28 | Amministratore Truelite | </pre> |
31 | 22 | Amministratore Truelite | e poi installare la versione per il database scelto con: |
32 | 28 | Amministratore Truelite | <pre> |
33 | 22 | Amministratore Truelite | apt-get install bacula-director-sqlite3 bacula-sd bacula-fd |
34 | 28 | Amministratore Truelite | </pre> |
35 | 23 | Amministratore Truelite | |
36 | 22 | Amministratore Truelite | |
37 | |||
38 | |||
39 | 28 | Amministratore Truelite | h2. Configurazione con SSL |
40 | 22 | Amministratore Truelite | |
41 | 1 | Amministratore Truelite | |
42 | 28 | Amministratore Truelite | <pre> |
43 | |||
44 | <pre> |
||
45 | |||
46 | <pre> |
||
47 | 22 | Amministratore Truelite | Director { # define myself |
48 | Name = backup1-dir |
||
49 | DIRport = 9101 # where we listen for UA connections |
||
50 | 28 | Amministratore Truelite | [[QueryFile]] = "/etc/bacula/scripts/query.sql" |
51 | [[WorkingDirectory]] = "/var/lib/bacula" |
||
52 | [[PidDirectory]] = "/var/run/bacula" |
||
53 | 22 | Amministratore Truelite | Maximum Concurrent Jobs = 1 |
54 | 1 | Amministratore Truelite | Password = "xxx" # Console password (lunga e complicata) |
55 | Messages = Daemon |
||
56 | 23 | Amministratore Truelite | TLS Enable = yes |
57 | 1 | Amministratore Truelite | TLS Require = yes |
58 | 23 | Amministratore Truelite | TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem |
59 | 1 | Amministratore Truelite | TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem |
60 | TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem |
||
61 | TLS Verify Peer = yes |
||
62 | TLS DH File = /etc/bacula/dh1024.pem |
||
63 | } |
||
64 | 28 | Amministratore Truelite | </pre> |
65 | 23 | Amministratore Truelite | |
66 | 28 | Amministratore Truelite | in questo caso le varie direttive servono a dichiarare chiave e certificato SSL usato dal _Director_, ed indicare la CA con cui vengono verificati le connessioni dai client verso il _Director_. Devono poi essere configurate le modalità di accesso SSL client del _Director_ verso gli altri servizi indicando con quali certificato e chiave ci si vuole collegare ad essi (nel caso useremo sempre gli stessi). In particolare per le varie voci rispetto alla configurazione installata di default si dovranno inserire delle configurazioni del tipo: |
67 | 23 | Amministratore Truelite | |
68 | 28 | Amministratore Truelite | <pre> |
69 | 1 | Amministratore Truelite | Client { |
70 | ... |
||
71 | 23 | Amministratore Truelite | TLS Enable = yes |
72 | TLS Require = yes |
||
73 | TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem |
||
74 | TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem |
||
75 | TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem |
||
76 | } |
||
77 | ... |
||
78 | ... |
||
79 | 1 | Amministratore Truelite | Storage { |
80 | ... |
||
81 | 23 | Amministratore Truelite | TLS Enable = yes |
82 | 1 | Amministratore Truelite | TLS Require = yes |
83 | TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem |
||
84 | TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem |
||
85 | TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem |
||
86 | } |
||
87 | 28 | Amministratore Truelite | </pre> |
88 | <pre> |
||
89 | 1 | Amministratore Truelite | |
90 | 28 | Amministratore Truelite | <pre> |
91 | <pre> |
||
92 | 1 | Amministratore Truelite | Storage { |
93 | ... |
||
94 | TLS Enable = yes |
||
95 | 23 | Amministratore Truelite | TLS Require = yes |
96 | TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem |
||
97 | TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem |
||
98 | TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem |
||
99 | } |
||
100 | 28 | Amministratore Truelite | </pre> |
101 | per definire il certificato usato per le connessioni allo _Storage Daemon_, mentre per le connessioni effettuate verso l'esterno (in questo caso solo il _Director_ per rispondere ad interrogazioni dalla console) si dovrà mettere qualcosa del tipo: |
||
102 | <pre> |
||
103 | 1 | Amministratore Truelite | Director { |
104 | ... |
||
105 | 23 | Amministratore Truelite | TLS Enable = yes |
106 | TLS Require = yes |
||
107 | TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem |
||
108 | TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem |
||
109 | TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem |
||
110 | TLS Verify Peer = yes |
||
111 | TLS Allowed CN = "bacula.fi.trl" |
||
112 | } |
||
113 | 28 | Amministratore Truelite | </pre> |
114 | <pre> |
||
115 | 11 | Amministratore Truelite | |
116 | 1 | Amministratore Truelite | |
117 | |||
118 | 28 | Amministratore Truelite | h2. Uso dell'autochanger |
119 | 1 | Amministratore Truelite | |
120 | |||
121 | 28 | Amministratore Truelite | <pre> |
122 | |||
123 | <pre> |
||
124 | |||
125 | <pre> |
||
126 | <pre> |
||
127 | 1 | Amministratore Truelite | Device { |
128 | Name = DDS-4 # |
||
129 | Media Type = DDS-4 |
||
130 | Archive Device = /dev/nst0 |
||
131 | 28 | Amministratore Truelite | [[AutomaticMount]] = yes; # when device opened, read it |
132 | [[AlwaysOpen]] = yes; |
||
133 | [[RemovableMedia]] = yes; |
||
134 | [[RandomAccess]] = no; |
||
135 | 1 | Amministratore Truelite | Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d" |
136 | Changer Device = /dev/sg1 |
||
137 | 28 | Amministratore Truelite | [[AutoChanger]] = yes |
138 | Alert Command = "sh -c 'tapeinfo -f %c |grep [[TapeAlert]]|cat'" |
||
139 | 1 | Amministratore Truelite | } |
140 | 28 | Amministratore Truelite | </pre> |
141 | <pre> |
||
142 | <pre> |
||
143 | 10 | Amministratore Truelite | Storage { |
144 | 1 | Amministratore Truelite | Name = File |
145 | 14 | Amministratore Truelite | Address = bacula.truelite.it # N.B. Use a fully qualified name here |
146 | 1 | Amministratore Truelite | SDPort = 9103 |
147 | Password = "xxxxxxx" |
||
148 | Device = DDS-4 |
||
149 | Media Type = DDS-4 |
||
150 | Autochanger = yes |
||
151 | } |
||
152 | 28 | Amministratore Truelite | </pre> |
153 | 1 | Amministratore Truelite | |
154 | 28 | Amministratore Truelite | <pre> |
155 | <pre> |
||
156 | 1 | Amministratore Truelite | *label slot=5 |
157 | Using default Catalog name=MyCatalog DB=bacula |
||
158 | Automatically selected Storage: File |
||
159 | Enter new Volume name: Volume005 |
||
160 | Automatically selected Pool: Default |
||
161 | Connecting to Storage daemon File at bacula.truelite.it:9103 ... |
||
162 | Sending label command for Volume "Volume005" Slot 5 ... |
||
163 | 3301 Issuing autochanger "loaded drive 0" command. |
||
164 | 3302 Autochanger "loaded drive 0", result is Slot 4. |
||
165 | 3303 Issuing autochanger "unload slot 4, drive 0" command. |
||
166 | 3304 Issuing autochanger "load slot 5, drive 0" command. |
||
167 | 3305 Autochanger "load slot 5, drive 0", status is OK. |
||
168 | block.c:264 Volume data error at 0:0! Wanted ID: "BB02", got "". Buffer discarded. |
||
169 | 3000 OK label. Volume=Volume005 Device=/dev/nst0 |
||
170 | 11 | Amministratore Truelite | Catalog record for Volume "Volume005", Slot 5 successfully created. |
171 | Requesting to mount DDS-4 ... |
||
172 | 15 | Amministratore Truelite | 3001 Device /dev/nst0 is mounted with Volume "Volume005" |
173 | 28 | Amministratore Truelite | </pre> |
174 | 15 | Amministratore Truelite | da ripetere per tutti i nastri disponibili. |
175 | |||
176 | 28 | Amministratore Truelite | Una volta inizializzati i vari nastri si può rendere noto al _Director_ la presenza dei vari nastri con il comando: |
177 | <pre> |
||
178 | 1 | Amministratore Truelite | update slots scan |
179 | 28 | Amministratore Truelite | </pre> |
180 | 1 | Amministratore Truelite | |
181 | |||
182 | |||
183 | 28 | Amministratore Truelite | h2. Come gestire manualmente i nastri |
184 | |||
185 | |||
186 | 13 | Amministratore Truelite | Per la rimozione dei dati presenti sui nastri si devono seguire i seguenti passi: |
187 | 11 | Amministratore Truelite | |
188 | 28 | Amministratore Truelite | <pre> |
189 | * inserire il nastro nel dispositivo, se si dispone dell'autochanger si può fare con: |
||
190 | <pre> |
||
191 | 16 | Amministratore Truelite | /etc/bacula/scripts/mtx-changer /dev/sg1 load N |
192 | 28 | Amministratore Truelite | </pre> |
193 | 17 | Amministratore Truelite | dove N è il numero dello slot. |
194 | 28 | Amministratore Truelite | <pre> |
195 | <pre> |
||
196 | 1 | Amministratore Truelite | |
197 | 28 | 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, |
198 | 1 | Amministratore Truelite | |
199 | Nel qual caso si potrà ridurre il periodo di ritenzione con il comando: |
||
200 | 28 | Amministratore Truelite | <pre> |
201 | update volume=VolumeXXX [[VolRetention]]=ddd |
||
202 | </pre> |
||
203 | <pre> |
||
204 | 1 | Amministratore Truelite | |
205 | |||
206 | |||
207 | 28 | Amministratore Truelite | h2. Cosa fare quando si esaurisce lo spazio disponibile |
208 | 17 | Amministratore Truelite | |
209 | 28 | Amministratore Truelite | |
210 | La maggiore forza di "Bacula":http://www.bacula.org/ è 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 "Bacula":http://www.bacula.org/ è quello di bloccare i backup rispettando i termini del periodo di ritenzione dei dati impostato. |
||
211 | |||
212 | <pre> |
||
213 | <pre> |
||
214 | 18 | Amministratore Truelite | *list volumes |
215 | 16 | Amministratore Truelite | Using default Catalog name=MyCatalog DB=bacula |
216 | 1 | Amministratore Truelite | Pool: Default |
217 | 16 | Amministratore Truelite | +---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+ |
218 | 28 | Amministratore Truelite | | [[MediaId]] | [[VolumeName]] | [[VolStatus]] | [[VolBytes]] | [[VolFiles]] | [[VolRetention]] | Recycle | Slot | [[InChanger]] | [[MediaType]] | [[LastWritten]] | |
219 | 19 | Amministratore Truelite | +---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+ |
220 | 1 | Amministratore Truelite | | 1 | Volume0013 | Full | 13156318147 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-08-06 02:53:16 | |
221 | 20 | Amministratore Truelite | | 2 | Volume0014 | Full | 15260956061 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-08-15 01:12:48 | |
222 | | 3 | Volume0015 | Full | 10288088510 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-07-30 02:03:26 | |
||
223 | 21 | Amministratore Truelite | | 4 | Volume0016 | Full | 28805889791 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-08-06 01:26:31 | |
224 | 1 | Amministratore Truelite | | 5 | Volume0017 | Full | 14412428094 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-07-29 01:27:50 | |
225 | 21 | Amministratore Truelite | +---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+ |
226 | 28 | Amministratore Truelite | </pre> |
227 | 21 | Amministratore Truelite | dopo di che, considerato che i dati più vecchi si trovano sul Volume0017, se potrà cancellare il contenuto con: |
228 | 28 | Amministratore Truelite | <pre> |
229 | 21 | Amministratore Truelite | * purge volume=Volume0017 |
230 | |||
231 | This command is can be DANGEROUS!!! |
||
232 | |||
233 | It purges (deletes) all Files from a Job, |
||
234 | 28 | Amministratore Truelite | [[JobId]], Client or Volume; or it purges (deletes) |
235 | 21 | Amministratore Truelite | all Jobs from a Client or Volume without regard |
236 | for retention periods. Normally you should use the |
||
237 | PRUNE command, which respects retention periods. |
||
238 | |||
239 | 28 | Amministratore Truelite | </pre> |
240 | 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: |
241 | 28 | Amministratore Truelite | <pre> |
242 | 22 | Amministratore Truelite | *list volumes |
243 | 21 | Amministratore Truelite | Using default Catalog name=MyCatalog DB=bacula |
244 | 22 | Amministratore Truelite | Pool: Default |
245 | 21 | Amministratore Truelite | |
246 | 1 | Amministratore Truelite | +---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+ |
247 | 28 | Amministratore Truelite | | [[MediaId]] | [[VolumeName]] | [[VolStatus]] | [[VolBytes]] | [[VolFiles]] | [[VolRetention]] | Recycle | Slot | [[InChanger]] | [[MediaType]] | [[LastWritten]] | |
248 | 24 | Amministratore Truelite | +---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+ |
249 | 27 | Amministratore Truelite | | 1 | Volume0013 | Full | 13156318147 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-08-06 02:53:16 | |
250 | 25 | Amministratore Truelite | | 2 | Volume0014 | Full | 15260956061 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-08-15 01:12:48 | |
251 | 1 | Amministratore Truelite | | 3 | Volume0015 | Full | 10288088510 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-07-30 02:03:26 | |
252 | 27 | Amministratore Truelite | | 4 | Volume0016 | Full | 28805889791 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-08-06 01:26:31 | |
253 | | 5 | Volume0017 | Purged | 968063348 | 0 | 1814400 | 1 | 0 | 0 | File | 2006-08-21 11:59:28 | |
||
254 | +---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+ |
||
255 | 28 | Amministratore Truelite | </pre> |
256 | 1 | Amministratore Truelite | |
257 | 27 | Amministratore Truelite | |
258 | |||
259 | 28 | Amministratore Truelite | h2. Configurazione Webacula |
260 | |||
261 | |||
262 | "Webacula":http://webacula.sourceforge.net/ è una interfaccia di gestione via Web di Bacula, basata su PHP e Zendframework, pertanto per installarla si sono preventivamente installati i seguenti pacchetti con: |
||
263 | <pre> |
||
264 | 27 | Amministratore Truelite | apt-get install zendframework php5-gd |
265 | 28 | Amministratore Truelite | </pre> |
266 | 27 | Amministratore Truelite | |
267 | 28 | Amministratore Truelite | <pre> |
268 | 27 | Amministratore Truelite | |
269 | 28 | Amministratore Truelite | <pre> |
270 | <pre> |
||
271 | 26 | Amministratore Truelite | [general] |
272 | db.adapter = PDO_SQLITE |
||
273 | db.config.dbname = /var/lib/bacula/bacula.db |
||
274 | |||
275 | 1 | Amministratore Truelite | def.timezone = "Europe/Rome" |
276 | bacula.sudo = "" |
||
277 | bacula.bconsole = "/usr/bin/bconsole" |
||
278 | |||
279 | 27 | Amministratore Truelite | [webacula] |
280 | db.adapter = PDO_SQLITE |
||
281 | db.config.dbname = /var/www/webacula/webacula.db |
||
282 | 28 | Amministratore Truelite | </pre> |
283 | 27 | Amministratore Truelite | |
284 | |||
285 | 28 | Amministratore Truelite | <pre> |
286 | 27 | Amministratore Truelite | chown www-data /var/www/webacula/webacula.db |
287 | usermod -aG bacula www-data |
||
288 | usermod -aG ssl-cert www-data |
||
289 | 28 | Amministratore Truelite | </pre> |
290 | 27 | Amministratore Truelite | |
291 | 28 | Amministratore Truelite | <pre> |
292 | <pre> |
||
293 | 27 | Amministratore Truelite | a2enmod rewrite |
294 | 28 | Amministratore Truelite | </pre> |
295 | <pre> |
||
296 | <pre> |
||
297 | # [[RewriteLog]] "/var/log/httpd/rewrite.log" |
||
298 | # [[RewriteLogLevel]] 3 |
||
299 | # [[SetEnv]] APPLICATION_ENV development |
||
300 | [[SetEnv]] APPLICATION_ENV production |
||
301 | 27 | Amministratore Truelite | |
302 | Alias /webacula /var/www/webacula/html |
||
303 | <Directory /var/www/webacula/html> |
||
304 | 28 | Amministratore Truelite | [[RewriteEngine]] On |
305 | 27 | Amministratore Truelite | |
306 | 28 | Amministratore Truelite | [[RewriteBase]] /webacula |
307 | [[RewriteCond]] %{REQUEST_FILENAME} -s [OR] |
||
308 | [[RewriteCond]] %{REQUEST_FILENAME} -l [OR] |
||
309 | [[RewriteCond]] %{REQUEST_FILENAME} -d |
||
310 | [[RewriteRule]] ^.*$ - [NC,L] |
||
311 | [[RewriteRule]] ^.*$ index.php [NC,L] |
||
312 | 1 | Amministratore Truelite | |
313 | php_flag magic_quotes_gpc off |
||
314 | php_flag register_globals off |
||
315 | |||
316 | 28 | Amministratore Truelite | Options Indexes [[FollowSymLinks]] |
317 | [[AllowOverride]] All |
||
318 | 1 | Amministratore Truelite | Order deny,allow |
319 | |||
320 | |||
321 | 28 | Amministratore Truelite | # [[AuthType]] Basic |
322 | # [[AuthName]] "Webacula" |
||
323 | # [[AuthUserFile]] /etc/httpd/conf/webacula.users |
||
324 | 1 | Amministratore Truelite | # Require valid-user |
325 | </Directory> |
||
326 | |||
327 | 28 | Amministratore Truelite | </pre> |