4 \chapter{Grundlegendes Volume-Management}
6 \index[general]{Grundlegendes Volume-Management}
7 \index[general]{Management!Grundlegendes Volume}
8 \index[general]{Disk/Festplatten Volumes}
10 In diesem Kapitel werden die grundlegenden Funktionen erkl\"{a}rt,
11 die zum Volume-Management ben\"{o}tigt werden. Die meisten dieser Konzepte
12 sind sowohl f\"{u}r Tape- als auch f\"{u}r Disk/Festplatten-Volumes g\"{u}ltig.
13 Allerdings wurde dieses Kapitel \"{u}rspr\"{u}nglich geschrieben,
14 um das Mangement von Disk-Volumes zu beschreiben. Sie werden diese
15 Tendenz sicher stellenweise bemerken, trotzdem gelten alle Konfigurations-
16 M\"{o}glichkeiten gleicherma{\ss}en f\"{u}r Tape- und Disk-Volumes.
18 Disk-Volumes werden normalerweise benutzt, wenn sowieso sehr viel Festplatten-
19 Platz verf\"{u}gbar ist, oder die Backup-Jobs innerhalb eines sehr kleinen
20 Zeitfensters laufen m\"{u}ssen, wo die Festplatten einen Geschwindigkeitsvorteil
21 gegen\"{u}ber den Bandlaufwerken haben.
23 \section{Schl\"{u}sselkonzepte und Konfigurations-Parameter}
25 \index[general]{Schl\"{u}sselkonzepte und Konfigurations-Parameter }
26 \index[general]{Records!Key Concepts and Resource }
28 Bacula dazu zu bringen, dass es auf Disk-Volumes statt auf Tapes schreibt
29 ist im einfachsten Fall sehr leicht zu bewerkstelligen. In der Konfiguration
30 des Storage-Dienstes geben Sie dazu als {\bf Archive Device} ein Verzeichnis an.
31 Wenn Sie, zum Beispiel, m\"{o}chten das Ihre Backups im Verzeichnis
32 {\bf /home/bacula/backups} gespeichert werden, k\"{o}nnen Sie folgende
33 Ger\"{a}te-Konfiguration verwenden:
40 Archive Device = /home/bacula/backups
49 Zus\"{a}tzlich muss der entsprechende {\bf Storage}-Eintrag in der Konfiguration
50 des Director-Dienstes vorhanden sein:
56 Address = host.firma.de
64 Bacula wird dann die Backup-Daten in die Datei
65 {\bf /home/bacula/backups/\lt{}Volume-Name\gt{}} schreiben.
66 \lt{}Volume-Name\gt{} ist dabei der Name eines vorher erstellten Volumes.
67 Falls Sie ein Volume namens {\bf Vol001} erstellt haben, wird Bacula also
68 in die Datei names {\bf /home/bacula/backups/Vol001} schreiben.
69 Obwohl Sie diese Datei sp\"{a}ter problemlos in ein anderes Verzeichnis
70 verschieben k\"{o}nnen, d\"{u}rfen Sie niemals den Namen der Datei \"{a}ndern.
71 Bacula verwendet den Datei-Namen des Volumes als Teil des internen Volume-Labels,
72 daher wird Bacula das Volume nicht mehr als korrekt erkennen, wenn der Dateiname
73 von Volume-Label abweicht.
75 Auch wenn bis jetzt alles sehr einfach aussieht gibt es doch ein paar Probleme
76 mit dieser Beispiel-Konfiguration. Das Erste ist, dass Bacula immer auf das
77 selbe Volume schreiben wird, so lange bis die Festplatte voll ist. Die
78 L\"{o}sung daf\"{u}r wird weiter unten beschrieben.
80 Zus\"{a}tzlich m\"{u}ssen Sie auch noch andere Details beachten, wenn Sie
81 zum Beispiel wollen, dass mehrere Backup-Jobs gleichzeitig laufen.
82 Eine Beispiel-Konfiguration f\"{u}r so ein Setup finden Sie am Ende
83 dieses Kapitels im Abschnitt \ilink{gleichzeitige Disk Jobs}{ConcurrentDiskJobs}.
86 \subsection{Pool-Konfigurations-Optionen zur Begrenzung der Volume-Benutzung}
87 \index[general]{Benutzung!Pool-Konfigurations-Optionen zur Begrenzung der Volume-}
88 \index[general]{Pool-Konfigurations-Optionen zur Begrenzung der Volume-Benutzung}
90 Hier ist eine Liste aller Optionen die Sie in der Pool-Konfiguration
91 angeben k\"{o}nnen, um die Benutzung der Volumes durch Bacula zu begrenzen:
94 \item Um jedes Volume nur einmal zu benutzen (in diesem Beispiel nur f\"{u}r einen
95 Backup-Job pro Volume) k\"{o}nnen Sie
97 {\bf UseVolumeOnce = yes}
99 in der Pool-Konfiguration angeben.
101 \item Um nnn Backup-Jobs auf jedes Volume zu schreiben, benutzen Sie:
103 {\bf Maximum Volume Jobs = nnn}.
105 \item Um die Gr\"{o}{\ss}e des Volumes zu begrenzen, konfigurieren Sie:
107 {\bf Maximum Volume Bytes = mmmm}.
109 Bitte beachten Sie, dass, wenn Sie Disk-Volumes mit Bacula-Version bis
110 1.39.28 verwenden, Sie die maximale Volume-Gr\"{o}{\ss}e auf einen
111 sinnvollen Wert, wie zum Beispiel 5 GB, setzen. Das ist notwendig,
112 weil Bacula w\"{a}hrend der Wiederherstellung das gesamte Volume
113 lesen muss, bis an den Punkt wo die wiederherzustellenden Daten
114 beginnen. Wenn Ihre Volumes 50GB gro{\ss} sind, dauert das
115 nat\"{u}rlich entsprechend l\"{a}nger. Auch bei einer teilweise
116 defekten Festplatte verlieren Sie wahrscheinlich weniger Volumes,
117 wenn diese entsprechend kleiner sind.
119 \item Um die Zeit einzuschr\"{a}nken in der ein Volume beschrieben werden darf,
120 k\"{o}nnen Sie diesen Parameter setzen:
122 {\bf Volume Use Duration = ttt}.
125 Obwohl Sie wahrscheinlich niemals die Anzahl der Bytes begrenzen wollen,
126 die auf ein Tape geschrieben werden d\"{u}rfen, k\"{o}nnen die anderen
127 genannten Konfigurations-Optionen auch bei Bandlaufwerken sehr n\"{u}tzlich
128 sein. Als Beispiel k\"{o}nnen Sie mit den oben beschriebenen Optionen
129 daf\"{u}r sorgen, dass Ihre B\"{a}nder in einer t\"{a}glichen Rotation
132 Wie schon erw\"{a}hnt, wird jede dieser Optionen innerhalb der Pool-
133 Konfiguration angegeben die f\"{u}r den Pool, in dem die Volumes sind,
134 gilt. Die Parameter {\bf Maximum Volume Job}, {\bf Maximum Volume Bytes}
135 und {\bf Volume Use Duration} k\"{o}nnen f\"{u}r jedes Volume einzelt
136 gesetzt werden. Dazu werden die Werte aus der Pool-Konfiguration beim
137 Labeln des Volumes in einen eigenen Datenbank-Eintrag, der nur f\"{u}r
138 das Volume g\"{u}ltig ist, \"{u}bernommen. Dieser Datenbank-Eintrag kann
139 dann mittels des Console-Kommandos {\bf update volume} seperat angepasst
140 werden. Dadurch das die Pool-Konfiguration als eigener Eintrag f\"{u}r
141 die Volumes in die Datenbank \"{u}bernommen wird, ist eine \"{A}nderung
142 in der Pool-Konfiguration nur f\"{u}r Volumes g\"{u}ltig die nachher
143 erstellt werden. Um die neue Pool-Konfiguration auch auf die
144 bereits bestehenden Volumes anzuwenden, muss in der Console bei dem
145 Kommando {bf update volume} die Funktion {bf All Volumes from Pool}
148 Als ein Beispiel f\"{u}r die Benutzung eines der oben genannten
149 Paramter, nehmen wir einmal an, Ihre Pool-Konfiguration sieht so aus:
156 Volume Use Duration = 23h
161 Wenn Ihre Backup-Jobs dann einmal am Tag laufen (also alle 24 Stunden)
162 wird Bacula f\"{u}r jeden Backup-Lauf ein neues Volume verwenden, da f\"{u}r
163 die Volumes eine maximale Benutzungs-Zeit von 23 Stunden gesetzt ist.
164 Die Zeit gilt dabei ab dem ersten Schreibvorgang auf dem Volume.
165 Bedenken Sie, dass das Setzen einer Use-Duration f\"{u}r Tape-Volumes dazu
166 f\"{u}hren kann, dass eventuell auch am Wochenende neue leere Tapes in das Laufwerk
167 gelegt werden m\"{u}ssen (sofern Sie keinen Autochanger benutzen).
169 \subsection{Automatisches labeln der Volumes}
170 \label{AutomaticLabeling}
171 \index[general]{Automatisches labeln der Volumes}
172 \index[general]{Labeln!Volumes automatisch }
174 Wenn Sie die genannten Konfigurations-Parameter benutzen, sto{\ss}en
175 Sie wahrscheinlich auf das n\"{a}chste Problem: Sie m\"{u}ssen die
176 Volumes labeln. Sie k\"{o}nnen dabei zwischen zwei Varianten w\"{a}hlen,
177 entweder Sie labeln die Volumes manuell bevor Bacula sie ben\"{o}tigt,
178 oder Sie lassen Sie automatisch durch Bacula, in dem Moment wo sie
179 gebraucht werden, labeln. Beim automatischen Labeln der Volumes
180 k\"{o}nnen Sie auf eine vielzahl von Informationen, Umgebungsvariablen
181 und internen Z\"{a}hlern von Bacula zugreifen, um sinnvolle Volume-Label
182 erstellen zu lassen. Sie k\"{o}nnen auch mittels eines Python-Script
183 das Bacula-Event "`NewVolume"' auswerten und durch das Script ein
184 neues Volume erstellen lassen. Dabei haben Sie dann alle Freiheit was
185 den Namen des zu erstellenden Volumes angeht. Mehr Informationen
186 \"{u}ber die Verwendung von Python-Scripten finden Sie im Kapitel
187 \ilink{Python Scripte}{PythonChapter} dieses Handbuchs.
189 Das automatische Labeln von Volumes kann auch mit Tapes benutzt werden,
190 dabei ist allerdings zu bendeken, dass die Tapes daf\"{u}r gemountet
191 werden m\"{u}ssen, was eventuell menschliches Eingreifen erfordert.
192 Automatisches Labeln nach Templates (Vorlagen) funktioniert mit Autochangern
193 nicht, da Bacula niemals auf Slots zugreift, die unbekannte Tapes enthalten.
194 Im Kapitel \ilink{Autochanger}{AutochangersChapter} dieses Handbuchs
195 sind mehrere Methoden beschrieben, wie alle Tapes innerhalb des Autochangers
196 gelabelt werden k\"{o}nnen.
198 Automatisches Labeln der Volumes wird durch Anpassungen in der Pool-
199 (Director) und Ger\"{a}te- (Storage) Konfiguration, wie unten
200 beschrieben, aktiviert. In der Pool-Konfiguration m\"{u}ssen Sie Bacula
201 das Label-Format vorgeben. In diesem Format werden dann die neuen Volumes
202 benannt. In der einfachsten Form ist das Format nur der Volume-Name
203 an den Bacula dann eine vierstellige laufende Nummer anh\"{a}ngt.
204 Diese Nummer beginnt bei 0000 und wird pro Volume immer uns Eins erh\"{o}ht.
205 Wenn Sie Ihre Pool-Konfiguration also folgend anpassen:
212 Volume Use Duration = 23h
218 wird Bacula Volumes names Vol0001, Vol0002 und so weiter immer dann erstellen
219 wenn sie ben\"{o}tigt werden. Weit komplexere und ausf\"{u}hrliche Namen
220 lassen sich mittels Variablen-Auswertung erstellen. Hilfe dazu finden Sie im
221 Kapitel \ilink{Variablen-Auswertung}{VarsChapter}.
223 N\"{a}here Angaben zum {\bf Label Format} finden Sie im Kapitel
224 "`Label Format"' des Bacula-Installations- und Konfigurations-Handbuchs.
226 Der zweite notwendige Schritt um das automatische Labeln zu aktivieren, ist es
227 dem Storage-Dienst das Labeln zu erlauben. Das tun Sie indem Sie {\bf LabelMedia = yes}
228 in der Ger\"{a}te-Konfiguration angeben:
235 Archive Device = /home/bacula/backups
237 AutomaticMount = yes;
245 \subsection{Wiederverwendung und Begrenzung der Anzahl der Volumes}
247 \index[general]{Wiederverwendung!Wiederverwendung und Begrenzung der Anzahl der Volumes}
248 \index[general]{Wiederverwendung und Begrenzung der Anzahl der Volumes}
250 Das oben beschriebene automatische Labeln der Volumes l\"{a}sst ein neues Problem
251 entstehen: es wird eine Art Volume-Management ben\"{o}tigt. Mit dem bisherigen
252 Schema wird jeden Tag ein neues Volume erstellt. Wenn Sie keine Aufbewarungszeitr\"{a}ume
253 konfiguriert haben, wird sich Ihre Katalog-Datenbank, zus\"{a}tzlich
254 zu den jeden Tag enstehenden Volumes, immer weiter mit den Informationen
255 \"{u}ber alle von Bacula gesicherten Dateien f\"{u}llen.
257 Bacula stellt folgende Konfigurations-Parameter zur Verf\"{u}gung
258 um diese Probleme automatisch handzuhaben:
261 \item der Aufbewarungszeitraum f\"{u}r Datei-Eintr\"{a}ge im Katalog, der
262 \ilink{File Retention = ttt}{FileRetention} Eintrag in der Client-Konfiguration
263 \item der Aufbewarungszeitraum f\"{u}r Job-Eintr\"{a}ge im Katalog, der
264 \ilink{Job Retention = ttt}{JobRetention} Eintrag in der Client-Konfiguration
266 \ilink{ AutoPrune = yes}{AutoPrune} Eintrag in der Client-Konfiguration
267 erlaubt Bacula die beiden oberen Augbewarungszeitr\"{a}ume anzuwenden.
269 \ilink{ Volume Retention = ttt}{VolRetention} Eintrag in der Pool-Konfiguration
270 bestimmt die Zeit, in der die Volumes nicht \"{u}berschrieben werden d\"{u}rfen.
272 \ilink{ AutoPrune = yes}{PoolAutoPrune} Eintrag in der Pool-Konfiguration
273 um Bacula die automatische Anwendung der Volume Retention zu erlauben.
275 \ilink{ Recycle = yes}{PoolRecycle} Eintrag in der Pool-Konfiguration
276 um Bacula zu erlauben, Volumes mit abgelaufener Aufbewarungzeit wiederzuverwenden.
278 \ilink{ Recycle Oldest Volume = yes}{RecycleOldest} Eintrag in der Pool-Konfiguration
279 sagt Bacula, dass die Ablaufzeitr\"{a}ume nur auf das \"{a}lteste Volume im Pool
280 angewendet werden sollen. Wenn alle enthaltenen Daten abgelaufen sind, wird das
281 Volume wiederverwendet.
283 \ilink{ Recycle Current Volume = yes}{RecycleCurrent} Eintrag in der Pool-Konfiguration
284 sagt Bacula, dass die Ablaufzeitr\"{a}ume nur auf das momentan gemountete Volume
285 angewendet werden sollen. Wenn alle enthaltenen Daten abgelaufen sind, wird das
286 Volume wiederverwendet.
288 \ilink{ Purge Oldest Volume = yes}{PurgeOldest} Eintrag in der Pool-Konfiguration
289 erlaubt Bacula die Wiederverwendung des \"{a}ltesten Volumes im Pool
290 zu erzwingen, wenn ein leeres Volume ben\"{o}tigt wird.
291 {\bf Achtung! Dabei werden keine Ablaufzeitr\"{a}ume beachtet. Das \"{a}lteste
292 vorhandene Volume wird einfach widerverwendet. Normalerweise sollte
293 "`Recycle Oldest Volume"' anstelle dieses Eintrags verwendet werden.}
295 \ilink{ Maximum Volumes = nnn}{MaxVolumes} Eintrag in der Pool-Konfiguration
296 begrenzt die maximale Anzahl von Volumes die Bacula f\"{u}r diesen Pool erstellen darf.
299 Die ersten drei Konfigurations-Eintr\"{a}ge (File Retention, Job Retention und AutoPrune)
300 bestimmen die Zeit, die die Job- und Datei-Eintr\"{a}ge in der Katalog-Datenbank
301 aufbewart werden. Eine genaue Beschreibung dieser Parameter finden Sie im Kapitel
302 \ilink{automatische Volume Wiederverwendung}{RecyclingChapter} in diesem Handbuch.
304 Volume Retention, AutoPrune und Recycle bestimmen, wie lange Bacula die Volumes
305 vor dem Wiederbeschreiben aufbewart. Auch das wird im Kapitel
306 \ilink{automatische Volume Wiederverwendung}{RecyclingChapter} n\"{a}her beschrieben.
308 Der Parameter "`Maximum Volumes"' kann in Verbindung mit der "`Volume Retention
309 Period"' dazu verwendet werden, die maximale Anzahl der Volumes zu begrenzen
310 die Bacula verwendet. Wenn eine angemessene Aufbewarungszeit f\"{u}r die Volumes
311 gesetzt ist, werden die Volumes, kurz bevor wieder ein neues Volume
312 ben\"{o}tigt wird, automatisch ablaufen. Das periodische Wiederverwenden einer
313 festen Anzahl von Volumes kann auch durch setzen von {\bf Recycle Oldest Volume = yes}
314 oder {\bf Recycle Current Volume = yes} erreicht werden. In diesem Fall wird Bacula,
315 wenn ein neues Volume ben\"{o}tigt wird, das enstsprechende Volume wiederverwenden.
317 \label{ConcurrentDiskJobs}
318 \section{parallele Festplatten-Jobs}
319 \index[general]{parallele Festplatten-Jobs}
321 Oberhalb wurde beschrieben, wie Sie ein einzelnes Storage-Ger\"{a}t
322 namens {\bf FileBackup} benutzen k\"{o}nnen, um die zu sichernden Daten
323 auf Volumes im Verzeichnis {\bf /home/bacula/backups} zu schreiben.
324 Nat\"{u}rlich ist es auch m\"{o}glich mehrere Jobs gleichzeitig auf
325 diesem einen Storage-Ger\"{a}t laufen zu lassen. Alle Jobs werden
326 dann parallel auf das Volume geschrieben.
329 Falls Sie mehrere Pools, was auch bedeutet mehrere Volumes,
330 verwenden wollen, oder m\"{o}chten das jeder Backup-Client
331 auf ein eigenes Volume gesichert wird, oder in ein seperates
332 Verzeichnis wie etwa {\bf /home/bacula/client1} und
333 {\bf /home/bacula/client2}, dann werden Sie das mit der bisherigen
334 Konfiguration nicht bewerkstelligen k\"{o}nnen. Das liegt daran,
335 dass Bacula Festplatten-Volumes nach den gleichen Regeln
336 behandelt wie Bandlaufwerke. Ein Storage-Ger\"{a}t kann zu
337 jeden beliebigen Zeitpunkt nur ein einziges Volume enthalten.
338 Wenn Sie also gleichzeitig auf mehreren Volumes schreiben
339 m\"{o}chten, m\"{u}ssen Sie auch mehrere Storage-Ger\"{a}te
340 in der Konfiguration des Storage-Dienstes und des Director-Dienstes
343 Mehrere Ger\"{a}te-Definitionen sind also notwendig, wenn auf mehr als
344 ein Storage-Ger\"{a}t oder in verschiedene Verzeichnisse gesichert werden soll.
345 Weiterhin m\"{u}ssen Sie wissen, dass in der Katalog-Datenbank nur die
346 Informationen \"{u}ber den "`Media-Type"' und nicht das spezielle
347 Storage-Ger\"{a}t gespeichert werden. Dadurch wird es m\"{o}glich,
348 dass, zum Beispiel ein Tape, in jedem anderen kompatiblen Storage-Ger\"{a}t
349 gemounted werden kann. Diese Kompitabilit\"{a}t wird durch einen identischen
350 Media-Type der verschiedene Storage-Ger\"{a}te erreicht. Das ist auch
351 f\"{u}r Festplatten-Volumes g\"{u}ltig. Da ein Volume, das vom Storage-
352 Ger\"{a}t in dem Verzeichnis {\bf /home/bacula/backups} beschrieben
353 wurde, nicht von einem Storage-Ger\"{a}t gelesen werden kann, dass
354 {\bf /home/bacula/client1} als "`ArchiveDevice"' konfiguriert hat,
355 werden Sie Probleme bei der Wiederherstellung von Daten bekommen,
356 falls beide Ger\"{a}te mit {Media Type = File} angegeben sind.
357 Bei der Wiederherstellung von Daten wird Bacula das erste zur Verf\"{u}gung
358 stehende Laufwerk mit dem passenden "`Media Type"' w\"{a}hlen,
359 unabh\"{a}hngig davon, ob es das Richtige ist. Falls das verwirrend klingt,
360 erinnern Sie sich daran, dass der Director-Dienst nur den Volume-Namen
361 und den Media-Type kennt. Auf welchen Ger\"{a}t das Volume beschrieben wurde,
362 und unter welchem Verzeichnis, ist zu diesem Zeitpunkt unbekannt. Daher
363 m\{u}ssen Sie Ihre Volumes, mittels des Media Types, den korrekten
364 Ger\"{a}ten zuordnen.
366 Das folgende Beispiel zeigt eine Konfiguration, bei der zwei Clients
367 zwei verschiedene Pools und Verzeichnisse zum speichern ihrer Daten
371 \section{Ein Beispiel}
372 \index[general]{Example }
373 %%TODO index => Example ..... for what??
375 The following example is not very practical, but can be used to demonstrate
376 the proof of concept in a relatively short period of time. The example
377 consists of a two clients that are backed up to a set of 12 archive files
378 (Volumes) for each client into different directories on the Storage
379 machine. Each Volume is used (written) only once, and there are four Full
380 saves done every hour (so the whole thing cycles around after three hours).
382 What is key here is that each physical device on the Storage daemon
383 has a different Media Type. This allows the Director to choose the
384 correct device for restores ...
386 The Director's configuration file is as follows:
392 QueryFile = "~/bacula/bin/query.sql"
393 PidDirectory = "~/bacula/working"
394 WorkingDirectory = "~/bacula/working"
395 Password = dir_password
399 Run = Level=Full hourly at 0:05
400 Run = Level=Full hourly at 0:20
401 Run = Level=Full hourly at 0:35
402 Run = Level=Full hourly at 0:50
405 Name = "RecycleExample"
409 FileSet= "Example FileSet"
411 Storage = FileStorage
413 Schedule = FourPerHour
417 Name = "RecycleExample2"
421 FileSet= "Example FileSet"
423 Storage = FileStorage1
425 Schedule = FourPerHour
429 Name = "Example FileSet"
430 Include = compression=GZIP signature=SHA1 {
431 /home/kern/bacula/bin
438 Password = client_password
445 Password = client1_password
451 Password = local_storage_password
459 Password = local_storage_password
466 dbname = bacula; user = bacula; password = ""
474 Use Volume Once = yes
476 LabelFormat = "Recycle-"
485 Use Volume Once = yes
487 LabelFormat = "Recycle1-"
497 and the Storage daemon's configuration file is:
503 WorkingDirectory = "~/bacula/working"
504 Pid Directory = "~/bacula/working"
505 MaximumConcurrentJobs = 10
509 Password = local_storage_password
514 Archive Device = /home/bacula/backups
517 AutomaticMount = yes;
525 Archive Device = /home/bacula/backups1
528 AutomaticMount = yes;
535 director = my-dir = all
540 With a little bit of work, you can change the above example into a weekly or
541 monthly cycle (take care about the amount of archive disk space used).
543 \label{MultipleDisks}
544 \section{Backing up to Multiple Disks}
545 \index[general]{Disks!Backing up to Multiple }
546 \index[general]{Backing up to Multiple Disks }
548 Bacula can, of course, use multiple disks, but in general, each disk must be a
549 separate Device specification in the Storage daemon's conf file, and you must
550 then select what clients to backup to each disk. You will also want to
551 give each Device specification a different Media Type so that during
552 a restore, Bacula will be able to find the appropriate drive.
554 The situation is a bit more complicated if you want to treat two different
555 physical disk drives (or partitions) logically as a single drive, which
556 Bacula does not directly support. However, it is possible to back up your
557 data to multiple disks as if they were a single drive by linking the
558 Volumes from the first disk to the second disk.
560 For example, assume that you have two disks named {\bf /disk1} and {\bf
561 /disk2}. If you then create a standard Storage daemon Device resource for
562 backing up to the first disk, it will look like the following:
569 Archive Device = /disk1
572 AutomaticMount = yes;
579 Since there is no way to get the above Device resource to reference both {\bf
580 /disk1} and {\bf /disk2} we do it by pre-creating Volumes on /disk2 with the
585 ln -s /disk2/Disk2-vol001 /disk1/Disk2-vol001
586 ln -s /disk2/Disk2-vol002 /disk1/Disk2-vol002
587 ln -s /disk2/Disk2-vol003 /disk1/Disk2-vol003
592 At this point, you can label the Volumes as Volume {\bf Disk2-vol001}, {\bf
593 Disk2-vol002}, ... and Bacula will use them as if they were on /disk1 but
594 actually write the data to /disk2. The only minor inconvenience with this
595 method is that you must explicitly name the disks and cannot use automatic
596 labeling unless you arrange to have the labels exactly match the links you
599 An important thing to know is that Bacula treats disks like tape drives
600 as much as it can. This means that you can only have a single Volume
601 mounted at one time on a disk as defined in your Device resource in
602 the Storage daemon's conf file. You can have multiple concurrent
603 jobs running that all write to the one Volume that is being used, but
604 if you want to have multiple concurrent jobs that are writing to
605 separate disks drives (or partitions), you will need to define
606 separate Device resources for each one, exactly as you would do for
607 two different tape drives. There is one fundamental difference, however.
608 The Volumes that you create on the two drives cannot be easily exchanged
609 as they can for a tape drive, because they are physically resident (already
610 mounted in a sense) on the particular drive. As a consequence, you will
611 probably want to give them different Media Types so that Bacula can
612 distinguish what Device resource to use during a restore.
613 An example would be the following:
620 Archive Device = /disk1
623 AutomaticMount = yes;
631 Archive Device = /disk2
634 AutomaticMount = yes;
641 With the above device definitions, you can run two concurrent
642 jobs each writing at the same time, one to {\bf /disk2} and the
643 other to {\bf /disk2}. The fact that you have given them different
644 Media Types will allow Bacula to quickly choose the correct
645 Storage resource in the Director when doing a restore.
647 \label{MultipleClients}
648 \section{Considerations for Multiple Clients}
649 \index[general]{Clients!Considerations for Multiple }
650 \index[general]{Multiple Clients}
652 If we take the above example and add a second Client, here are a few
656 \item Although the second client can write to the same set of Volumes, you
657 will probably want to write to a different set.
658 \item You can write to a different set of Volumes by defining a second Pool,
659 which has a different name and a different {\bf LabelFormat}.
660 \item If you wish the Volumes for the second client to go into a different
661 directory (perhaps even on a different filesystem to spread the load), you
662 would do so by defining a second Device resource in the Storage daemon. The
663 {\bf Name} must be different, and the {\bf Archive Device} could be
664 different. To ensure that Volumes are never mixed from one pool to another,
665 you might also define a different MediaType (e.g. {\bf File1}).
668 In this example, we have two clients, each with a different Pool and a
669 different number of archive files retained. They also write to different
670 directories with different Volume labeling.
672 The Director's configuration file is as follows:
678 QueryFile = "~/bacula/bin/query.sql"
679 PidDirectory = "~/bacula/working"
680 WorkingDirectory = "~/bacula/working"
681 Password = dir_password
683 # Basic weekly schedule
685 Name = "WeeklySchedule"
686 Run = Level=Full fri at 1:30
687 Run = Level=Incremental sat-thu at 1:30
690 Name = "Example FileSet"
691 Include = compression=GZIP signature=SHA1 {
692 /home/kern/bacula/bin
696 Name = "Backup-client1"
700 FileSet= "Example FileSet"
704 Schedule = "WeeklySchedule"
707 Name = "Backup-client2"
711 FileSet= "Example FileSet"
715 Schedule = "WeeklySchedule"
721 Password = client1_password
728 Password = client2_password
730 # Two Storage definitions with different Media Types
731 # permits different directories
735 Password = local_storage_password
742 Password = local_storage_password
748 dbname = bacula; user = bacula; password = ""
754 # Two pools permits different cycling periods and Volume names
755 # Cycle through 15 Volumes (two weeks)
758 Use Volume Once = yes
760 LabelFormat = "Client1-"
762 VolumeRetention = 13d
766 # Cycle through 8 Volumes (1 week)
769 Use Volume Once = yes
771 LabelFormat = "Client2-"
780 and the Storage daemon's configuration file is:
786 WorkingDirectory = "~/bacula/working"
787 Pid Directory = "~/bacula/working"
788 MaximumConcurrentJobs = 10
792 Password = local_storage_password
794 # Archive directory for Client1
798 Archive Device = /home/bacula/client1
801 AutomaticMount = yes;
805 # Archive directory for Client2
809 Archive Device = /home/bacula/client2
812 AutomaticMount = yes;
818 director = my-dir = all