]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/de/old/concepts/disk.tex
72ff6fcb4381c9747354e041e743ee0832195af4
[bacula/docs] / docs / manuals / de / old / concepts / disk.tex
1 %%
2 %%
3
4 \chapter{Grundlegendes Volume-Management}
5 \label{DiskChapter}
6 \index[general]{Grundlegendes Volume-Management}
7 \index[general]{Management!Grundlegendes Volume}
8 \index[general]{Disk/Festplatten Volumes}
9
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.
17
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.
22
23 \section{Schl\"{u}sselkonzepte und Konfigurations-Parameter}
24 \label{Concepts}
25 \index[general]{Schl\"{u}sselkonzepte und Konfigurations-Parameter }
26 \index[general]{Records!Key Concepts and Resource }
27
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:
34
35 \footnotesize
36 \begin{verbatim}
37 Device {
38   Name = FileBackup
39   Media Type = File
40   Archive Device = /home/bacula/backups
41   Random Access = Yes;
42   AutomaticMount = yes;
43   RemovableMedia = no;
44   AlwaysOpen = no;
45 }
46 \end{verbatim}
47 \normalsize
48
49 Zus\"{a}tzlich muss der entsprechende {\bf Storage}-Eintrag in der Konfiguration
50 des Director-Dienstes vorhanden sein:
51
52 \footnotesize
53 \begin{verbatim}
54 Storage {
55   Name = FileStorage
56   Address = host.firma.de
57   Password = xxxxx
58   Device = FileBackup
59   Media Type = File
60 }
61 \end{verbatim}
62 \normalsize
63
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.
74
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.
79
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}.
84
85
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}
89
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:
92
93 \begin{itemize}
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 
96
97    {\bf UseVolumeOnce = yes}
98
99 in der Pool-Konfiguration angeben.
100
101 \item Um nnn Backup-Jobs auf jedes Volume zu schreiben, benutzen Sie:
102
103    {\bf Maximum Volume Jobs = nnn}.
104
105 \item Um die Gr\"{o}{\ss}e des Volumes zu begrenzen, konfigurieren Sie:
106
107    {\bf Maximum Volume Bytes = mmmm}.
108
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.
118
119 \item Um die Zeit einzuschr\"{a}nken in der ein Volume beschrieben werden darf,
120    k\"{o}nnen Sie diesen Parameter setzen:
121
122 {\bf Volume Use Duration = ttt}.
123 \end{itemize}
124
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
130 verwendet werden.
131
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}
146 aufgrufen werden.
147
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:
150
151 \footnotesize
152 \begin{verbatim}
153 Pool {
154   Name = File
155   Pool Type = Backup
156   Volume Use Duration = 23h
157 }
158 \end{verbatim}
159 \normalsize
160
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).
168
169 \subsection{Automatisches labeln der Volumes}
170 \label{AutomaticLabeling}
171 \index[general]{Automatisches labeln der Volumes}
172 \index[general]{Labeln!Volumes automatisch }
173
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.
188
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.
197
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:
206
207 \footnotesize
208 \begin{verbatim}
209 Pool {
210   Name = File
211   Pool Type = Backup
212   Volume Use Duration = 23h
213   LabelFormat = "Vol"
214 }
215 \end{verbatim}
216 \normalsize
217
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}.
222
223 N\"{a}here Angaben zum {\bf Label Format} finden Sie im Kapitel
224 "`Label Format"' des Bacula-Installations- und Konfigurations-Handbuchs.
225
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:
229
230 \footnotesize
231 \begin{verbatim}
232 Device {
233   Name = File
234   Media Type = File
235   Archive Device = /home/bacula/backups
236   Random Access = Yes;
237   AutomaticMount = yes;
238   RemovableMedia = no;
239   AlwaysOpen = no;
240   LabelMedia = yes
241 }
242 \end{verbatim}
243 \normalsize
244
245 \subsection{Wiederverwendung und Begrenzung der Anzahl der Volumes}
246 \label{Recycling1}
247 \index[general]{Wiederverwendung!Wiederverwendung und Begrenzung der Anzahl der Volumes}
248 \index[general]{Wiederverwendung und Begrenzung der Anzahl der Volumes}
249
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.
256
257 Bacula stellt folgende Konfigurations-Parameter zur Verf\"{u}gung
258 um diese Probleme automatisch handzuhaben:
259
260 \begin{enumerate}
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
265 \item Der
266    \ilink{ AutoPrune = yes}{AutoPrune} Eintrag in der Client-Konfiguration
267    erlaubt Bacula die beiden oberen Augbewarungszeitr\"{a}ume anzuwenden.
268 \item Der
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.
271 \item Der
272    \ilink{ AutoPrune = yes}{PoolAutoPrune} Eintrag in der Pool-Konfiguration
273    um Bacula die automatische Anwendung der Volume Retention zu erlauben.
274 \item Der
275    \ilink{ Recycle = yes}{PoolRecycle} Eintrag in der Pool-Konfiguration
276    um Bacula zu erlauben, Volumes mit abgelaufener Aufbewarungzeit wiederzuverwenden.
277 \item Der
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.
282 \item Der
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.
287 \item Der
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.}
294 \item Der
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.
297 \end{enumerate}
298
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.
303
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.
307
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.
316
317 \label{ConcurrentDiskJobs}
318 \section{parallele Festplatten-Jobs}
319 \index[general]{parallele Festplatten-Jobs}
320
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.
327
328
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
341 angeben.
342
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.
365
366 Das folgende Beispiel zeigt eine Konfiguration, bei der zwei Clients
367 zwei verschiedene Pools und Verzeichnisse zum speichern ihrer Daten
368 benutzen.
369
370 \label{Example2}
371 \section{Ein Beispiel}
372 \index[general]{Example }
373 %%TODO index => Example ..... for what??
374
375 Das folgende Beispiel ist nicht sehr praxisnah, aber es reicht aus, um in kurzer
376 Zeit, den Ablauf zu demonstrieren. In diesem Beispiel gibt es zwei Clients
377 die auf je einen Satz von 12 Volumes und in zwei verschiedene Verzeichnisse
378 gesichert werden. Jedes Volume wird nur einmal benutzt und innerhalb einer
379 Stunden werden vier Vollbackups gestartet. Damit dauert der komplette Lauf
380 \"{u}ber alle 12 Volumes pro Client nur 3 Stunden.
381
382 Der Schl\"{u}ssel hierbei ist, dass die beiden physikalischen Storage-
383 Ger\"{a}te unterschiedliche Media Types benutzen. Das erm\"{o}glicht
384 dem Director-Dienst, bei der Wiederherstellung von Daten, das richtige
385 Gera\"{a}t auszuw\"{a}hlen.
386
387 Die Director-Dienst-Konfiguration sind wie folgend aus:
388
389 \footnotesize
390 \begin{verbatim}
391 Director {
392   Name = my-dir
393   QueryFile = "~/bacula/bin/query.sql"
394   PidDirectory = "~/bacula/working"
395   WorkingDirectory = "~/bacula/working"
396   Password = dir_password
397 }
398 Schedule {
399   Name = "FourPerHour"
400   Run = Level=Full hourly at 0:05
401   Run = Level=Full hourly at 0:20
402   Run = Level=Full hourly at 0:35
403   Run = Level=Full hourly at 0:50
404 }
405 Job {
406   Name = "RecycleExample"
407   Type = Backup
408   Level = Full
409   Client = Rufus
410   FileSet= "Example FileSet"
411   Messages = Standard
412   Storage = FileStorage
413   Pool = Recycle
414   Schedule = FourPerHour
415 }
416
417 Job {
418   Name = "RecycleExample2"
419   Type = Backup
420   Level = Full
421   Client = Roxie
422   FileSet= "Example FileSet"
423   Messages = Standard
424   Storage = FileStorage1
425   Pool = Recycle1
426   Schedule = FourPerHour
427 }
428
429 FileSet {
430   Name = "Example FileSet"
431   Include {
432         Options {
433         compression=GZIP
434         signature=SHA1 
435                 }
436     File = /home/kern/bacula/bin
437           }
438 }
439 Client {
440   Name = Rufus
441   Address = rufus
442   Catalog = BackupDB
443   Password = client_password
444 }
445
446 Client {
447   Name = Roxie
448   Address = roxie
449   Catalog = BackupDB
450   Password = client1_password
451 }
452
453 Storage {
454   Name = FileStorage
455   Address = rufus
456   Password = local_storage_password
457   Device = RecycleDir
458   Media Type = File
459 }
460
461 Storage {
462   Name = FileStorage1
463   Address = rufus
464   Password = local_storage_password
465   Device = RecycleDir1
466   Media Type = File1
467 }
468
469 Catalog {
470   Name = BackupDB
471   dbname = bacula; user = bacula; password = ""
472 }
473 Messages {
474   Name = Standard
475   ...
476 }
477 Pool {
478   Name = Recycle
479   Use Volume Once = yes
480   Pool Type = Backup
481   LabelFormat = "Recycle-"
482   AutoPrune = yes
483   VolumeRetention = 2h
484   Maximum Volumes = 12
485   Recycle = yes
486 }
487
488 Pool {
489   Name = Recycle1
490   Use Volume Once = yes
491   Pool Type = Backup
492   LabelFormat = "Recycle1-"
493   AutoPrune = yes
494   VolumeRetention = 2h
495   Maximum Volumes = 12
496   Recycle = yes
497 }
498
499 \end{verbatim}
500 \normalsize
501
502 und die Konfiguration des Storage-Dienstes: 
503
504 \footnotesize
505 \begin{verbatim}
506 Storage {
507   Name = my-sd
508   WorkingDirectory = "~/bacula/working"
509   Pid Directory = "~/bacula/working"
510   MaximumConcurrentJobs = 10
511 }
512 Director {
513   Name = my-dir
514   Password = local_storage_password
515 }
516 Device {
517   Name = RecycleDir
518   Media Type = File
519   Archive Device = /home/bacula/backups
520   LabelMedia = yes;
521   Random Access = Yes;
522   AutomaticMount = yes;
523   RemovableMedia = no;
524   AlwaysOpen = no;
525 }
526
527 Device {
528   Name = RecycleDir1
529   Media Type = File1
530   Archive Device = /home/bacula/backups1
531   LabelMedia = yes;
532   Random Access = Yes;
533   AutomaticMount = yes;
534   RemovableMedia = no;
535   AlwaysOpen = no;
536 }
537
538 Messages {
539   Name = Standard
540   director = my-dir = all
541 }
542 \end{verbatim}
543 \normalsize
544
545 Mit ein wenig Anpassung k\"{o}nnen Sie dieses Beispiel als Grundlage
546 f\"{u}r einen w\"{o}chentlichen oder monatlichen Backup-Ablauf
547 verwenden. Beacht6en Sie dabei aber den zur Verf\"{u}gung stehenden
548 Festplattenplatz.
549
550 \label{MultipleDisks}
551 \section{Backup auf mehrere Festplatten}
552 \index[general]{Festplatten!Backup auf mehrere }
553 \index[general]{Backup auf mehrere Festplatten }
554
555 Bacula kann nat\"{u}rlich auch auf mehrere Festplatten sichern, dabei muss
556 aber jede Festplatte in der Storage-Dienst-Konfiguration als eigenes Ger\"{a}t
557 angegeben werden. Dann kann \"{u}ber die Client-Konfiguration das zu
558 benutzende Ger\"{a}t, also die Festplatte, ausgew\"{a}hlt werden. Zus\"{a}tzlich
559 muss jedes Storage-Ger\"{a}t einen anderen Media Type benutzen, damit Bacula
560 bei der Wiederherstellung von Daten das richtige Ger\"{a}t ausw\"{a}hlen kann.
561
562 Wenn Sie zwei Festplatten oder Partitionen als ein logisches Storage-Ger\"{a}t
563 verwenden wollen, wird es etwas komplizierter, da Bacula so ein vorgehen nicht
564 direkt unterst\"{u}tzt. Trotzdem ist es m\"{o}glich zwei Festplatten als ein
565 Ger\"{a}t anzusprechen, indem Sie die Volume-Dateien auf den Festplatten
566 verlinken.
567
568 Angenommen Sie haben zwei Festplatten namens {\bf /disk1} und {\bf/disk2}.
569 Wenn Sie jetzt die Standard-Konfiguration f\"{u}r ein Backup auf die erste
570 Festplatte anlegen, sieht Ihre Storage-Dienst-Konfiguration wie folgt aus:
571
572 \footnotesize
573 \begin{verbatim}
574 Device {
575   Name = client1
576   Media Type = File
577   Archive Device = /disk1
578   LabelMedia = yes;
579   Random Access = Yes;
580   AutomaticMount = yes;
581   RemovableMedia = no;
582   AlwaysOpen = no;
583 }
584 \end{verbatim}
585 \normalsize
586
587 Da es keinen Weg gibt diese Ger\"{a}te-Konfiguration auf beide Festplatten zeigen
588 zu lassen, m\"{u}ssen Sie die Volumes auf /disk2 auf folgende Weise von Hand erstellen:
589
590 \footnotesize
591 \begin{verbatim}
592 ln -s /disk2/Disk2-vol001 /disk1/Disk2-vol001
593 ln -s /disk2/Disk2-vol002 /disk1/Disk2-vol002
594 ln -s /disk2/Disk2-vol003 /disk1/Disk2-vol003
595 ...
596 \end{verbatim}
597 \normalsize
598
599 An diesem Punkt k\"{o}nnen Sie die Volumes mit den folgenden Namen labeln:
600 {\bf Disk2-vol001}, {\bf Disk2-vol002}, ... . Bacula wird sie dann so benutzen
601 als w\"{a}ren sie auf /disk1, aber die Daten werden in Wirklichkeit auf /disk2
602 geschrieben. Die einzigen Unbequemlichkeit dabei sind, dass Sie die Namen
603 der Volumes ausdr\"{u}cklich angeben m\"{u}ssen und dass das automatische
604 Labeln der Volumes nur noch funktioniert, wenn die Label der Volumes
605 genau den Namen der Links entsprechen, die Sie angelegt haben.
606
607 Wichtig zu wissen ist, dass Bacula Volumes auf Festplatten, soweit wie
608 m\"{o}glich, als Bandlaufwerke zu behandelen zu versucht. Das bedeutet,
609 dass immer nur ein einziges Festplatten-Volume zur Zeit in einem,
610 in der Storage-Dienst-Konfiguration angebenen Ger\"{a}t, gemounted sein
611 kann. Sie k\"{o}nnen mehrere Backup-Jobs parallel auf das gerade
612 gemountete Volume schreiben lassen, aber wenn Sie die Jobs gleichzeitig
613 auf unterschiedliche Volumes schreiben lassen wollen, m\"{u}ssen Sie
614 mehrere Ger\"{a}te-Konfiguration, eine f\"{u}r jeden gleichzeitigen Job,
615 anlegen. Das ist dasselbe Vorgehen, wie es bei zwei Bandlaufwerken
616 erforderlich ist. Allerdings gibt es einen gro{\ss}en Unterschied,
617 die Volumes die Sie auf Festplatten erstellen k\"{o}nnen nicht so
618 ohne weiteres gegen einander ausgetauscht werden, wie es bei Bandlaufwerken
619 m\"{o}glich ist. Daher muss jedes Festplatten-Volume/-Ger\"{a}t einen
620 anderen Media Type verwenden, nur so kann sichergestellt werden,
621 dass Bacula bei der Wiederherstellung das korrekte Ger\"{a}t
622 ausw\"{a}hlt.
623
624 Ein Beispiel daf\"{u}r:
625
626 \footnotesize
627 \begin{verbatim}
628 Device {
629   Name = Disk1
630   Media Type = File1
631   Archive Device = /disk1
632   LabelMedia = yes;
633   Random Access = Yes;
634   AutomaticMount = yes;
635   RemovableMedia = no;
636   AlwaysOpen = no;
637 }
638
639 Device {
640   Name = Disk2
641   Media Type = File2
642   Archive Device = /disk2
643   LabelMedia = yes;
644   Random Access = Yes;
645   AutomaticMount = yes;
646   RemovableMedia = no;
647   AlwaysOpen = no;
648 }
649 \end{verbatim}
650 \normalsize
651
652 Mit den oben genannten Ger\"{a}te-Konfigurationen k\"{o}nnen Sie
653 zwei Backup-Jobs parallel auf zwei veschiedene Ger\"{a}te schreiben,
654 eine Job auf {\bf /disk1} und einen Job auf {\bf /disk2}. Durch den
655 unterschiedlichen Media Type kann Bacula das richtige Ger\"{a}tzur
656 Wiederherstellung von Daten bestimmen.
657
658 \label{MultipleClients}
659 \section{\"{U}berlegungen bez\"{u}glich mehrerer Clients}
660 \index[general]{Clients!\"{U}berlegungen bez\"{u}glich mehrerer }
661 \index[general]{mehrere Clients}
662
663 Bevor wir dem obigen Beispiel einen weiteren Client hinzuf\"{u}gen,
664 sollten, sollten folgende Aspekte bedacht werden:
665
666 \begin{itemize}
667 \item auch wenn der zweite Client auf den gleichen Satz Volumes gesichert werden kann,
668    wollen Sie eventuell einen eigene Satz Volumes f\"{u}r ihn verwenden.
669 \item Sie k\"{o}nnen die Daten auf anderen Volumes sichern, indem Sie einen zweiten
670    Pool anlegen, der einen anderen Namen hat und ein anderes {\bf LabelFormat} verwendet.
671 \item Wenn Sie die Volumes f\"{u}r den zweiten Client in einem anderen Verzeichnis,
672    oder zur Lastverteilung auf einer anderen Festplatte, speichern m\"{o}chten,
673    m\"{u}ssen Sie ein zweites Storage-Ger\"{a}t in der Storage-Dienst-Konfiguration
674    anlegen. Dabei muss der Ger\"{a}te-Name anders sein und das {\bf ArchiveDevice}
675    darf anders sein. Um sicherzustellen, dass sich die Volumes eindeutig den
676    Ger\"{a}ten und Pools zuordnen lassen, verwenden Sie unterschiedliche Media Types.
677 \end{itemize}
678
679 Hier ein Beispiel f\"{u}r zwei Backup-Clients die jeder in einen anderen
680 Pool und auf unterschiedlich viele Volumes gesichert werden. Zus\"{a}tzlich
681 schreiben sie in unterschiedliche Verzeichnisse mit unterschiedlich gelabelten
682 Volumes.
683
684 Hier die Konfiguration des Director-Dienstes: 
685
686 \footnotesize
687 \begin{verbatim}
688 Director {
689   Name = my-dir
690   QueryFile = "~/bacula/bin/query.sql"
691   PidDirectory = "~/bacula/working"
692   WorkingDirectory = "~/bacula/working"
693   Password = dir_password
694 }
695 # Basic weekly schedule
696 Schedule {
697   Name = "WeeklySchedule"
698   Run = Level=Full fri at 1:30
699   Run = Level=Incremental sat-thu at 1:30
700 }
701 FileSet {
702   Name = "Example FileSet"
703   Include {
704         Options {
705         compression=GZIP
706         signature=SHA1
707                 }
708     File = /home/kern/bacula/bin
709           }
710 }
711 Job {
712   Name = "Backup-client1"
713   Type = Backup
714   Level = Full
715   Client = client1
716   FileSet= "Example FileSet"
717   Messages = Standard
718   Storage = File1
719   Pool = client1
720   Schedule = "WeeklySchedule"
721 }
722 Job {
723   Name = "Backup-client2"
724   Type = Backup
725   Level = Full
726   Client = client2
727   FileSet= "Example FileSet"
728   Messages = Standard
729   Storage = File2
730   Pool = client2
731   Schedule = "WeeklySchedule"
732 }
733 Client {
734   Name = client1
735   Address = client1
736   Catalog = BackupDB
737   Password = client1_password
738   File Retention = 7d
739 }
740 Client {
741   Name = client2
742   Address = client2
743   Catalog = BackupDB
744   Password = client2_password
745 }
746 # Two Storage definitions with different Media Types
747 #  permits different directories
748 Storage {
749   Name = File1
750   Address = rufus
751   Password = local_storage_password
752   Device = client1
753   Media Type = File1
754 }
755 Storage {
756   Name = File2
757   Address = rufus
758   Password = local_storage_password
759   Device = client2
760   Media Type = File2
761 }
762 Catalog {
763   Name = BackupDB
764   dbname = bacula; user = bacula; password = ""
765 }
766 Messages {
767   Name = Standard
768   ...
769 }
770 # Two pools permits different cycling periods and Volume names
771 # Cycle through 15 Volumes (two weeks)
772 Pool {
773   Name = client1
774   Use Volume Once = yes
775   Pool Type = Backup
776   LabelFormat = "Client1-"
777   AutoPrune = yes
778   VolumeRetention = 13d
779   Maximum Volumes = 15
780   Recycle = yes
781 }
782 # Cycle through 8 Volumes (1 week)
783 Pool {
784   Name = client2
785   Use Volume Once = yes
786   Pool Type = Backup
787   LabelFormat = "Client2-"
788   AutoPrune = yes
789   VolumeRetention = 6d
790   Maximum Volumes = 8
791   Recycle = yes
792 }
793 \end{verbatim}
794 \normalsize
795
796 und die Storage-Dienst-Konfiguration:
797
798 \footnotesize
799 \begin{verbatim}
800 Storage {
801   Name = my-sd
802   WorkingDirectory = "~/bacula/working"
803   Pid Directory = "~/bacula/working"
804   MaximumConcurrentJobs = 10
805 }
806 Director {
807   Name = my-dir
808   Password = local_storage_password
809 }
810 # Archive directory for Client1
811 Device {
812   Name = client1
813   Media Type = File1
814   Archive Device = /home/bacula/client1
815   LabelMedia = yes;
816   Random Access = Yes;
817   AutomaticMount = yes;
818   RemovableMedia = no;
819   AlwaysOpen = no;
820 }
821 # Archive directory for Client2
822 Device {
823   Name = client2
824   Media Type = File2
825   Archive Device = /home/bacula/client2
826   LabelMedia = yes;
827   Random Access = Yes;
828   AutomaticMount = yes;
829   RemovableMedia = no;
830   AlwaysOpen = no;
831 }
832 Messages {
833   Name = Standard
834   director = my-dir = all
835 }
836 \end{verbatim}
837 \normalsize