4 \chapter{Baculas Stand}
6 \index[general]{Baculas momentaner Stand }
8 (was gegenw\"{a}rtig implementiert und funktionsf\"{a}hig ist und was nicht)
10 \section{Was implementiert ist}
11 \index[general]{implementiert!Was ist }
12 \index[general]{Was implementiert ist }
15 \item Sicherung/Wiederherstellung im Netzwerkes unter der Regie eines
16 zentralen \textbf{Director}-Prozess.
18 \item automatische Ausf\"{u}hrung von
19 \ilink{Job}{JobDef}s nach einem festgelegten Zeitplan.
21 \item Terminplanung f\"{u}r mehrere Jobs zur gleichen Zeit.
23 \item die M\"{o}glichkeit einen oder mehrere Jobs zur gleichen Zeit auszuf\"{u}hren.
25 \item zeitliche Staffelung der Jobs entsprechend ihrer Priorit\"{a}t.
27 \item die Wiederherstellung einer oder mehrerer Dateien, die interaktiv
28 aus der letzten Sicherung oder einer Sicherung vor einem festgelegten
29 Zeitpunkt ausgew\"{a}hlt werden k\"{o}nnen.
31 \item die Wiederherstellung aller Dateien eines Systems auf einer
32 leeren Festplatte. Dieser Vorgang kann bei Linux- und
33 Solaris-Systemen (mit Einschr\"{a}nkungen) gr\"{o}{\ss}tenteils
34 automatisch ablaufen. N\"{a}heres hierzu im Kapitel
35 \ilink{``Disaster Recovery Using Bacula''}{_ChapterStart38}.
36 Benutzer berichten, dass dies auch mit Win2K/XP-Systemen
39 \item die Ermittlung und Wiederherstellung von Dateien mittels eigenst\"{a}ndiger
40 Hilfsprogramme wie {\bf bls} und {\bf bextract}. Unter anderem ist
41 es damit m\"{o}glich, Dateien wiederherzustellen, wenn Bacula
42 und/oder die \textbf{Catalog}-Datenbank nicht verf\"{u}gbar ist/sind.
43 Beachten Sie aber, dass wir hierf\"{u}r den ``restore''-Befehl an der
44 \textbf{Console} empfehlen und diese Hilfsprogramme nur f\"{u}r den
45 Notfall vorgesehen sind.
47 \item die M\"{o}glichkeit, die \textbf{Catalog}-Datenbank durch Auslesen
48 der \textbf{Volumes} mit dem Hilfsprogramm {\bf bscan} wieder herzustellen.
50 \item eine \ilink{Konsolen}{UADef}-Schnittstelle zum \textbf{Director}, \"{u}ber die
51 dieser vollkommen gesteuert werden kann. Die \textbf{Console} ist
52 als Shell-Programm, GNOME-GUI und wxWidgets-GUI verf\"{u}gbar.
53 Beachten Sie bitte, dass das GNOME-GUI gegen\"{u}ber dem
54 Shell-Programm zur Zeit nur sehr wenige zus\"{a}tzliche Funktionen
57 \item die Verifikation der Dateien, die zuvor in das
58 \textbf{Catalog}-Verzeichnis aufgenommen wurden, erlaubt eine
59 Funktionalit\"{a}t wie sie das Programm ``Tripwire'' hat (Intrusion
62 \item die Authentifizierung der Komponenten (D\"{a}monen) untereinander
63 durch CRAM-MD5 Passw\"{o}rter.
65 \item eine konfigurierbare \ilink{TLS (ssl)-Verschl\"{u}sselung }{_ChapterStart61}
66 zwischen den einzelnen Komponenten.
68 \item leicht verst\"{a}ndliche und erweiterbare
69 \ilink{Konfigurationsdateien}{_ChapterStart40} f\"{u}r jeden einzelnen
72 \item eine \textbf{Catalog}-Datenbank zur Aufzeichnung der \textbf{Volumes},
73 \textbf{Pools}, \textbf{Jobs} und der Informationen \"{u}ber die gesicherten
76 \item Unterst\"{u}tzung von \textbf{SQLite}, \textbf{PostgreSQL} und
77 \textbf{MySQL} \textbf{Catalog}-Datenbanksystemen.
79 \item vom Benutzer erweiterbare Datenbankabfragen an \textbf{SQLite}-,
80 \textbf{PostgreSQL} und \textbf{MySQL}-Datenbanksysteme.
82 \item gekennzeichnete \textbf{Volumes}, die ein versehentliches
83 \"{u}berschreiben (zumindest durch Bacula) verhindern.
85 \item eine beliebige Anzahl verschiedener \textbf{Jobs} und
86 \textbf{Clients} kann auf ein einzelnes \textbf{Volume} gesichert werden. Dies
87 bedeutet, dass von Linux-, Unix-, Sun- und Windows-Rechnern auf das gleiche
88 \textbf{Volume} gesichert werden kann. Das gleiche gilt f\"{u}r die
91 \item eine Sicherung kann sich \"{u}ber mehrere \textbf{Volumes} erstrecken. Sobald ein
92 \textbf{Volume} voll ist, fordert {\bf Bacula} automatisch das n\"{a}chste
93 \textbf{Volume} an und setzt die Sicherung fort.
95 \item die Verwaltung von \ilink{\textbf{Pools}
96 und \textbf{Volumes}}{PoolResource} erlaubt einen
97 anpassungsf\"{a}higen Umgang mit \textbf{Volumes} (z.B. Gruppen von
98 \textbf{Volumes} f\"{u}r die monatliche, w\"{o}chentliche,
99 t\"{a}gliche Sicherung, Gruppen von \textbf{Volumes} f\"{u}r
100 bestimmte \textbf{Clients}...).
102 \item das Datenformat der \textbf{Volumes} ist systemunabh\"{a}ngig. Bei Bedarf
103 k\"{o}nnen die Daten von Linux-, Solaris- und Windows-Clients in
104 dasselbe \textbf{Volumen} gespeichert werden.
106 \item ein konfigurierbares \ilink{Messages}{MessagesChapter}-Handling.
107 Dazu geh\"{o}rt der Versand von Botschaften aller D\"{a}mon-Prozesse
108 an den \textbf{Director} und die automatische Benachrichtigung des
109 Benutzers \"{u}ber das Mailsystem.
111 \item Implementierung der Prozesse als Multithread-Programme.
113 \item Programmtechnisch keine Begrenzung der L\"{a}nge der Dateinamen oder
116 \item GZIP-Komprimierung f\"{u}r jede einzelne Datei, die schon der Client
117 erledigt, sofern dies vor einer \"{U}bertragung im Netzwerk angefordert wird.
119 \item bei Bedarf die Berechnung von MD5 oder SHA1 Signaturen der
122 \item POSIX ACLs werden - wenn aktiviert - unter den meisten
123 Betriebssystemen gesichert und wiederhergestellt.
125 \item die Unterst\"{u}tzung von Autochangern \"{u}ber ein einfache Shell-Schnittstelle.
126 Damit ist es m\"{o}glich, praktisch mit jedem Autoloader-Programm zu kommunizieren.
127 Ein Skript f\"{u}r {\bf mtx} ist bereitgestellt.
129 \item unterst\"{u}tzt Autochanger-Barcodes -- entsprechend der Barcodes
130 wird das Band gekennzeichnet.
132 \item automatische Unterst\"{u}tzung mehrerer Autochanger-Magazine.
133 Hierbei wird entweder der Barcode oder das Band gelesen.
135 \item Unterst\"{u}tzung von Autochangern mit mehreren Laufwerken
137 \item Sicherung/Wiederherstellung als raw-Backup. Hierbei mu{\ss} die
138 Wiederherstellung auf den gleichen Datentr\"{a}ger erfolgen.
140 \item jeder Datenblock (etwa 64KByte) der \textbf{Volumes} enth\"{a}lt die
141 Pr\"{u}fsumme der Daten.
143 \item Zugangskontrolllisten f\"{u}r \textbf{Consolen}, die dem Benutzer
144 einen Zugang nur zu den eigenen Daten erlauben.
146 \item Zwischenspeicherung der zu sichernden Daten auf der Festplatte und
147 fortlaufende Beschreibung des Bandes mit den zwischengespeicherten Daten
148 verhindert den ``Schoe-Shine-Effekt'' bei einer inkrementiellen oder
149 differentiellen Sicherung.
151 \item Sicherung/Wiederherstellung von Dateien, die gr\"{o}{\ss}er sind als 2GB.
153 \item Unterst\"{u}tzung von 64Bit-Systemen wie z.B. AMD64.
155 \item es ist m\"{o}glich, die Kommunikation der D\"{a}monen untereinander durch
156 STunnel zu verschl\"{u}sseln.
158 \item Unterst\"{u}tzung von ANSI- und IBM Band-Labels.
160 \item Unterst\"{u}tzung von Unicode-Dateinamen (z.B. Chinesisch) auf
161 Win32-Rechnern mit der Version 1.37.28 und h\"{o}her.
163 \item konsistente Sicherung von ge\"{o}ffneten Dateien von Win32-Systemen
164 (WinXP, Win2003, nicht Win2000) durch Verwendung von Volume Shadow Copy
169 \section{Die Vorteile von Bacula gegen\"{u}ber anderen Sicherungsprogrammen}
170 \index[general]{Die Vorteile von Bacula gegen\"{u}ber anderen Sicherungsprogrammen}
171 \index[general]{Sicherungsprogrammen!Die Vorteile von Bacula gegen\"{u}ber anderen}
174 \item da f\"{u}r jeden Rechner ein eigener Client existiert, k\"{o}nnen die
175 Daten von Betriebssystemen aller Art gesichert und wiederhergestellt
176 werden, wobei immer gew\"{a}hrleistet ist, dass ihre Dateiattribute
177 korrekt gesichert und wiederhergestellt werden.
179 \item Man kann auch Clients sichern ohne eine Client-Software zu benutzen
180 und verwendet hierzu NFS oder Samba. Wir empfehlen jedoch, sofern
181 m\"{o}glich, auf jedem Rechner, von dem Daten gesichert werden
182 sollen, einen eigenen File-D\"{a}mon laufen zu haben.
184 \item Bacula kann mit Sicherungen umgehen, die auf mehrere Volumes verteilt
187 \item eine umfassende SQL-Datenbank aller gesicherter Dateien
188 erm\"{o}glicht den \"{U}berblick \"{u}ber alle gespeicherte Dateien in
189 jedem einzelnen Volume.
191 \item automatische Bereinigung der Datenbank (die Entfernung alter
192 Aufzeichnungen) und dadurch eine Vereinfachung der Datenbankadministration.
194 \item durch die Verwendung beliebiger SQL-Datenbanksysteme ist Bacula sehr
197 \item durch den modularen, dabei aber einheitlichen Entwurf ist Bacula in
198 hohem Ma{\ss}e skalierbar.
200 \item da Bacula D\"{a}monen auf den Client-Rechnern benutzt, ist es
201 m\"{o}glich, dort laufende Datenbank- oder sonstige Anwendungen mit
202 systemeigenen Befehlen zu beenden und nach einer Sicherung die
203 entsprechenden Anwendungen wieder zu starten. Dies alles kann aus einem
204 einzigen Bacula-Job heraus geschehen.
206 \item Bacula hat ein eingebautes Steuerungsprogramm f\"{u}r die
209 \item Das Format der \textbf{Volumes} ist dokumentiert und es gibt einfache
210 C-Programme mit denen sie gelesen und beschrieben werden k\"{o}nnen
212 \item Bacula benutzt eindeutige (bei der IANA registrierte) TCP/IP-Ports --
213 also weder RPCs noch Shared Memory.
215 \item Baculas Installation und Konfiguration ist gegen\"{u}ber anderen
216 vergleichbaren Produkten relativ einfach.
218 \item laut einem unserer Benutzer ist Bacula genau so schnell wie die
219 wichtigen gro{\ss}en kommerziellen Programme.
221 \item laut einem anderen Benutzer ist Bacula vier mal so schnell wie eine
222 andere kommerzielle Anwendung. Das vielleicht deswegen, weil diese
223 Anwendung ihre Verzeichnisinformationen in vielen einzelnen Dateien anstatt
224 in einer SQL-Datenbank speichert, wie Bacula es tut.
226 \item neben der grafischen Benutzeroberfl\"{a}che zur Verwaltung hat Bacula
227 eine umfassende Shell-Schnittstelle f\"{u}r die Wartungsaufgaben, wobei der
228 Administrator Werkzeuge wie z.B. ``ssh'' verwenden kann, um jeden Teil von
229 Bacula von \"{u}berall (sogar von Zuhause) zu administrieren.
231 \item Bacula hat eine Rettungs-CD f\"{u}r Linux-Systeme mit den folgenden Eigenschaften:
233 \item Sie kompilieren sie von Grund auf auf ihrem eigenen System mit
234 einem einzigen einfachen Befehl: ``make'' (...OK, Sie brauchen dann
235 noch ``make burn''...).
237 \item die Rettungs-CD verwendet Ihren Kernel
239 \item sie schreibt Skripte entsprechend der Parameter Ihrer Festplatte
240 mit denen Sie diese automatisch repartitionieren und formatieren
241 k\"{o}nnen, um den Ausgangszustand wieder herzustellen.
243 \item sie hat ein Skript, das Ihr Netzwerk wieder starten wird (mit der
244 korrekten IP-Adresse)
246 \item sie hat ein Skript, mit dem Ihre Festplatten automatisch gemountet werden.
248 \item eine vollwertiger Bacula-FD ist statisch eingebunden
250 \item sie k\"{o}nnen der Rettungs-CD auf einfache Weise zus\"{a}tzliche
251 Daten und Programme hinzuf\"{u}gen.
257 \section{Einschr\"{a}nkungen der aktuellen Implementierung}
258 \index[general]{Einschr\"{a}nkungen der aktuellen Implementierung }
259 \index[general]{aktuelle Implementierung! Einschr\"{a}nkungen der}
262 \item Pfade und Dateinamen mit mehr als 260 Zeichen werden auf
263 Win32-Systemen nicht unterst\"{u}tzt. Diese werden zwar gesichert,
264 k\"{o}nnen aber nicht wiederhergestellt werden. Durch Verwendung der
265 Direktive {\bf Portable=yes} in Ihrem FileSet k\"{o}nnen Dateien mit langen
266 Namen auf Unix- bzw. Linux-Systemen wiederhergestellt werden. Lange
267 Dateinamen f\"{u}r Win32-Systeme werden in einer sp\"{a}teren Version
270 \item Sollten Sie mehr als 4 Milliarden Dateieintr\"{a}ge in Ihrer
271 Datenbank gespeichert haben, wird der FileID der Datenbank vermutlich
272 \"{u}berlaufen. Dies w\"{a}re eine ziemlich gro{\ss}e Datenbank, aber
273 immerhin ist sie denkbar. Irgendwann einmal wird das Feld f\"{u}r den
274 FileID von Bacula von 32 auf 64 Bit erweitert werden und das Problem ist
275 gel\"{o}st. In der Zwischenzeit ist die Verwendung mehrerer Datenbanken
276 eine gute L\"{o}sung.
278 \item Dateien, die nach einer Vollsicherung gel\"{o}scht wurden, werden bei
279 einer Wiederherstellung eingeschlossen.
281 \item Datei-System-Module fehlen(dies w\"{a}ren konfigurierbare Routinen,
282 um spezielle Dateien zu sichern/wiederherzustellen).
284 \item Verschl\"{u}sselung des Dateninhalts der \textbf{Volumes}.
286 \item Bacula kann die Dateien eines einzelnen Jobs nicht von zwei oder
288 wiederherstellen. Daher wird eine Wiederherstellung einige Handarbeit
289 erfordern, wenn sie auf mehr als ein Sicherungsger\"{a}t oder verschiedene
290 Medientypen speichern.
294 \section{Grenzen und Beschr\"{a}nkungen des Software Design}
295 \index[general]{Restrictions!Design Limitations or }
296 \index[general]{Design Limitations or Restrictions }
299 \item Namen (\textbf{Resource}-Namen, \textbf{Volume}-Names und
300 \"{a}hnliche) in Baculas Konfigurationsdateien sind auf eine bestimmte
301 L\"{a}nge beschr\"{a}nkt . Momentan liegt die Grenze bei 127 Zeichen.
302 Beachten Sie bitte, dass diese Einschr\"{a}nkungen nicht die Dateinamen
303 betrifft, die beliebig lang sein k\"{o}nnen.
305 \item Durch die Nicht-Unicode Windows API, die wir auf Win32-Maschinen
306 verwenden, sind wir bei Dateinamen auf 260 Zeichen beschr\"{a}nkt. Wir
307 planen dies in einer zuk\"{u}nftigen Version zu korrigieren, indem wir die
308 Unicode-API verwenden.