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 Solaris-Systemen (mit
33 Einschr\"{a}nkungen) gr\"{o}{\ss}tenteils automatisch ablaufen. N\"{a}heres hierzu im Kapitel
34 \ilink{``Disaster Recovery Using Bacula''}{_ChapterStart38}. Benutzer
35 berichten, dass dies auch mit Win2K/XP-Systemen funktioniert.
37 \item die Ermittlung und Wiederherstellung von Dateien mittels eigenst\"{a}ndiger
38 Hilfsprogramme wie {\bf bls} und {\bf bextract}. Unter anderem ist es damit
39 m\"{o}glich, Dateien wiederherzustellen, wenn Bacula und/oder die
40 \textbf{Catalog}-Datenbank nicht verf\"{u}gbar ist/sind. Beachten Sie aber, dass wir
41 hierf\"{u}r den ``restore''-Befehl an der \textbf{Console} empfehlen und diese
42 Hilfsprogramme nur f\"{u}r den Notfall vorgesehen sind.
44 \item die M\"{o}glichkeit, die \textbf{Catalog}-Datenbank durch Auslesen
45 der \textbf{Volumes} mit dem Hilfsprogramm {\bf bscan} wieder herzustellen.
47 \item eine \ilink{Konsolen}{UADef}-Schnittstelle zum \textbf{Director}, \"{u}ber die
48 dieser vollkommen gesteuert werden kann. Die \textbf{Console} ist als
49 Shell-Programm, GNOME-GUI und wxWidgets-GUI verf\"{u}gbar. Beachten Sie bitte, dass
50 das GNOME-GUI gegen\"{u}ber dem Shell-Programm zur Zeit nur sehr wenige zus\"{a}tzliche
53 \item die Verifikation der Dateien, die zuvor in das
54 \textbf{Catalog}-Verzeichnis aufgenommen wurden, erlaubt eine Funktionalit\"{a}t
55 wie sie das Programm ``Tripwire'' hat (Intrusion Detection).
57 \item die Authentifizierung der Komponenten (D\"{a}monen) untereinander
58 durch CRAM-MD5 Passw\"{o}rter.
60 \item eine konfigurierbare \ilink{TLS (ssl)-Verschl\"{u}sselung }{_ChapterStart61}
61 zwischen den einzelnen Komponenten.
63 \item leicht verst\"{a}ndliche und erweiterbare
64 \ilink{Konfigurationsdateien}{_ChapterStart40} f\"{u}r jeden einzelnen
67 \item eine \textbf{Catalog}-Datenbank zur Aufzeichnung der \textbf{Volumes},
68 \textbf{Pools}, \textbf{Jobs} und der Informationen \"{u}ber die gesicherten
71 \item Unterst\"{u}tzung von \textbf{SQLite}, \textbf{PostgreSQL} und
72 \textbf{MySQL} \textbf{Catalog}-Datenbanksystemen.
74 \item vom Benutzer erweiterbare Datenbankabfragen an \textbf{SQLite}-,
75 \textbf{PostgreSQL} und \textbf{MySQL}-Datenbanksysteme.
77 \item gekennzeichnete \textbf{Volumes}, die ein versehentliches
78 Überschreiben (zumindest durch Bacula) verhindern.
80 \item eine beliebige Anzahl verschiedener \textbf{Jobs} und
81 \textbf{Clients} kann auf ein einzelnes \textbf{Volume} gesichert werden. Dies
82 bedeutet, dass von Linux-, Unix-, Sun- und Windows-Rechnern auf das gleiche
83 \textbf{Volume} gesichert werden kann. Das gleiche gilt f\"{u}r die
86 \item eine Sicherung kann sich \"{u}ber mehrere \textbf{Volumes} erstrecken. Sobald ein
87 \textbf{Volume} voll ist, fordert {\bf Bacula} automatisch das n\"{a}chste
88 \textbf{Volume} an und setzt die Sicherung fort.
90 \item die Verwaltung von \ilink{\textbf{Pools}
91 und \textbf{Volumes}}{PoolResource} erlaubt einen anpassungsf\"{a}higen Umgang mit
92 \textbf{Volumes} (z.B. Gruppen von \textbf{Volumes} f\"{u}r die monatliche,
93 w\"{o}chentliche, t\"{a}gliche Sicherung, Gruppen von \textbf{Volumes} f\"{u}r bestimmte
96 \item das Datenformat der \textbf{Volumes} ist systemunabh\"{a}ngig. Bei Bedarf
97 k\"{o}nnen die Daten von Linux-, Solaris- und Windows-Clients in
98 dasselbe \textbf{Volumen} gespeichert werden.
100 \item ein konfigurierbares \ilink{Messages}-Handling.
101 Dazu geh\"{o}rt der Versand von Botschaften aller D\"{a}mon-Prozesse an den \textbf{Director}
102 und die automatische Benachrichtigung des Benutzers \"{u}ber das Mailsystem.
104 \item Implementierung der Prozesse als Multithread-Programme.
106 \item Programmtechnisch keine Begrenzung der L\"{a}nge der Dateinamen oder
109 \item GZIP-Komprimierung f\"{u}r jede einzelne Datei, die schon der Client
110 erledigt, sofern dies vor einer Übertragung im Netzwerk angefordert wird.
112 \item bei Bedarf die Berechnung von MD5 oder SHA1 Signaturen der
115 \item POSIX ACLs werden - wenn aktiviert - unter den meisten Betriebssystemen gesichert und wiederhergestellt.
117 \item die Unterst\"{u}tzung von Autochangern \"{u}ber ein einfache Shell-Schnittstelle.
118 Damit ist es m\"{o}glich, praktisch mit jedem Autoloader-Programm zu kommunizieren.
119 Ein Skript f\"{u}r {\bf mtx} ist bereitgestellt.
121 \item unterst\"{u}tzt Autochanger-Barcodes -- entsprechend der Barcodes
122 wird das Band gekennzeichnet.
124 \item automatische Unterst\"{u}tzung mehrerer Autochanger-Magazine. Hierbei wird entweder der Barcode oder das Band gelesen.
126 \item Unterst\"{u}tzung von Autochangern mit mehreren Laufwerken
128 \item Sicherung/Wiederherstellung als raw-Backup. Hierbei mu{\ss} die Wiederherstellung auf den gleichen Datentr\"{a}ger erfolgen.
130 \item jeder Datenblock (etwa 64KByte) der \textbf{Volumes} enth\"{a}lt die
131 Pr\"{u}fsumme der Daten.
133 \item Zugangskontrolllisten f\"{u}r \textbf{Consolen}, die dem Benutzer einen Zugang nur zu den eigenen Daten erlauben.
135 \item Zwischenspeicherung der zu sichernden Daten auf der Festplatte und
136 fortlaufende Beschreibung des Bandes mit den zwischengespeicherten Daten
137 verhindert den ``Schoe-Shine-Effekt'' bei einer inkrementiellen oder
138 differentiellen Sicherung.
140 \item Sicherung/Wiederherstellung von Dateien, die gr\"{o}{\ss}er sind als 2GB.
142 \item Unterst\"{u}tzung von 64Bit-Systemen wie z.B. AMD64.
144 \item es ist m\"{o}glich, die Kommunikation der D\"{a}monen untereinander durch
145 STunnel zu verschl\"{u}sseln.
147 \item Unterst\"{u}tzung von ANSI- und IBM Band-Labels.
149 \item Unterst\"{u}tzung von Unicode-Dateinamen (z.B. Chinesisch) auf Win32-Rechnern mit der Version 1.37.28 und h\"{o}her.
151 \item konsistente Sicherung von ge\"{o}ffneten Dateien von Win32-Systemen (WinXP, Win2003, nicht Win2000) durch Verwendung von Volume Shadow Copy (VSS).
155 \section{Die Vorteile von Bacula gegen\"{u}ber anderen Sicherungsprogrammen}
156 \index[general]{Die Vorteile von Bacula gegen\"{u}ber anderen Sicherungsprogrammen}
157 \index[general]{Sicherungsprogrammen!Die Vorteile von Bacula gegen\"{u}ber anderen}
160 \item da f\"{u}r jeden Rechner ein eigener Client existiert, k\"{o}nnen die Daten von Betriebssystemen aller Art gesichert und wiederhergestellt werden, wobei immer gew\"{a}hrleistet ist,
161 dass ihre Dateiattribute korrekt gesichert und wiederhergestellt werden.
163 \item Man kann auch Clients sichern ohne eine Client-Software zu benutzen und
164 verwendet hierzu NFS oder Samba. Wir empfehlen jedoch, sofern m\"{o}glich, auf jedem
165 Rechner, von dem Daten gesichert werden sollen, einen eigenen File-D\"{a}mon laufen zu
168 \item Bacula kann mit Sicherungen umgehen, die auf mehrere Volumes verteilt
171 \item eine umfassende SQL-Datenbank aller gesicherter Dateien erm\"{o}glicht den Überblick \"{u}ber alle gespeicherte Dateien in jedem einzelnen Volume.
173 \item automatische Bereinigung der Datenbank (die Entfernung alter Aufzeichnungen) und dadurch eine Vereinfachung der Datenbankadministration.
175 \item durch die Verwendung beliebiger SQL-Datenbanksysteme ist Bacula sehr anpassungsf\"{a}hig.
177 \item durch den modularen, dabei aber einheitlichen Entwurf ist Bacula in hohem Ma{\ss}e skalierbar.
179 \item da Bacula D\"{a}monen auf den Client-Rechnern benutzt, ist es m\"{o}glich, dort laufende Datenbank- oder sonstige Anwendungen mit systemeigenen Befehlen zu beenden und nach einer Sicherung die entsprechenden Anwendungen wieder zu starten. Dies alles kann aus einem einzigen Bacula-Job heraus geschehen.
181 \item Bacula hat ein eingebautes Steuerungsprogramm f\"{u}r die Sicherungsjobs.
183 \item Das Format der \textbf{Volumes} ist dokumentiert und es gibt einfache C-Programme mit denen sie gelesen und beschrieben werden k\"{o}nnen
185 \item Bacula benutzt eindeutige (bei der IANA registrierte) TCP/IP-Ports -- also weder RPCs noch Shared Memory.
187 \item Baculas Installation und Konfiguration ist gegen\"{u}ber anderen vergleichbaren Produkten relativ einfach.
189 \item laut einem unserer Benutzer ist Bacula genau so schnell wie die wichtigen gro{\ss}en kommerziellen Programme.
191 \item laut einem anderen Benutzer ist Bacula vier mal so schnell wie eine andere kommerzielle Anwendung. Das vielleicht deswegen, weil diese Anwendung ihre Verzeichnisinformationen in vielen einzelnen Dateien anstatt in einer SQL-Datenbank speichert, wie Bacula es tut.
193 \item neben der grafischen Benutzeroberfl\"{a}che zur Verwaltung hat Bacula eine umfassende Shell-Schnittstelle f\"{u}r die Wartungsaufgaben, wobei der Administrator Werkzeuge wie z.B. ``ssh'' verwenden kann, um jeden Teil von Bacula von \"{u}berall (sogar von Zuhause) zu administrieren.
195 \item Bacula hat eine Rettungs-CD f\"{u}r Linux-Systeme mit den folgenden Eigenschaften:
197 \item Sie kompilieren sie von Grund auf auf ihrem eigenen System mit einem einzigen einfachen Befehl:
198 ``make'' (...OK, Sie brauchen dann noch ``make burn''...).
199 \item die Rettungs-CD verwendet Ihren Kernel
200 \item sie schreibt Skripte entsprechend der Parameter Ihrer Festplatte mit denen Sie diese automatisch
201 repartitionieren und formatieren k\"{o}nnen, um den Ausgangszustand wieder herzustellen.
203 \item sie hat ein Skript, das Ihr Netzwerk wieder starten wird (mit der korrekten IP-Adresse)
205 \item sie hat ein Skript, mit dem Ihre Festplatten automatisch gemountet werden.
207 \item eine vollwertiger Bacula-FD ist statisch eingebunden
209 \item sie k\"{o}nnen der Rettungs-CD auf einfache Weise zus\"{a}tzliche Daten und Programme hinzuf\"{u}gen.
214 \section{Einschr\"{a}nkungen der aktuellen Implementierung}
215 \index[general]{Einschr\"{a}nkungen der aktuellen Implementierung }
216 \index[general]{aktuelle Implementierung! Einschr\"{a}nkungen der}
219 \item Pfade und Dateinamen mit mehr als 260 Zeichen werden auf Win32-Systemen nicht unterst\"{u}tzt. Diese werden zwar gesichert, k\"{o}nnen aber nicht wiederhergestellt werden. Durch Verwendung der Direktive {\bf Portable=yes} in Ihrem FileSet k\"{o}nnen Dateien mit langen Namen auf Unix- bzw. Linux-Systemen wiederhergestellt werden.
220 Lange Dateinamen f\"{u}r Win32-Systeme werden in einer sp\"{a}teren Version implementiert sein.
222 \item Sollten Sie mehr als 4 Milliarden Dateieintr\"{a}ge in Ihrer Datenbank gespeichert haben, wird der FileID der Datenbank vermutlich \"{u}berlaufen. Dies w\"{a}re eine ziemlich gro{\ss}e Datenbank, aber immerhin ist sie denkbar. Irgendwann einmal wird das Feld f\"{u}r den FileID von Bacula von 32 auf 64 Bit erweitert werden und das Problem ist gel\"{o}st. In der Zwischenzeit ist die Verwendung mehrerer Datenbanken eine gute L\"{o}sung.
224 \item Dateien, die nach einer Vollsicherung gel\"{o}scht wurden, werden bei einer Wiederherstellung eingeschlossen.
226 \item Datei-System-Module fehlen(dies w\"{a}ren konfigurierbare Routinen, um spezielle Dateien zu sichern/wiederherzustellen).
228 \item Verschl\"{u}sselung des Dateninhalts der \textbf{Volumes}.
230 \item Bacula kann die Dateien eines einzelnen Jobs nicht von zwei oder mehreren Speicherger\"{a}ten oder verschiedenen Speichermedien wiederherstellen. Daher wird eine Wiederherstellung einige Handarbeit erfordern, wenn sie auf mehr als ein Sicherungsger\"{a}t oder verschiedene Medientypen speichern.
234 \section{Grenzen und Beschr\"{a}nkungen des Software Design}
235 \index[general]{Restrictions!Design Limitations or }
236 \index[general]{Design Limitations or Restrictions }
239 \item Namen (\textbf{Resource}-Namen, \textbf{Volume}-Names und \"{a}hnliche) in Baculas Konfigurationsdateien sind auf eine bestimmte L\"{a}nge beschr\"{a}nkt . Momentan liegt die Grenze bei 127 Zeichen. Beachten Sie bitte, dass diese Einschr\"{a}nkungen nicht die Dateinamen betrifft, die beliebig lang sein k\"{o}nnen.
241 \item Durch die Nicht-Unicode Windows API, die wir auf Win32-Maschinen verwenden, sind wir bei Dateinamen auf 260 Zeichen beschr\"{a}nkt. Wir planen dies in einer zuk\"{u}nftigen Version zu korrigieren, indem wir die Unicode-API verwenden.