%%
%%

\chapter{DVD Volumes}
\label{_DVDChapterStart}
\index[general]{DVD Volumes}
\index[general]{Volumes!DVD}

Bacula erlaubt es Ihnen Ihre Daten auf DVDs zu sichern,
dabei werden alle DVD-Formate, wie DVD+RW, DVD+R, DVD-R oder DVD-RW,
unterst\"{u}tzt. Bacula schreibt dabei die Daten zuerst in eine
Image-Datei im Spool-Verzeichnis und je nach Konfiguration,
zum Beispiel wenn die Image-Datei eine bestimmte Gr\"{o}{\ss}e
erreicht hat oder direkt nach dem Job, wird diese Image-Datei auf die
DVD geschrieben. Der eigentliche Schreibvorgang wird von dem
Script {\bf dvd-handler} gesteuert. Dieses Script verwendet das
Programm {\bf growisofs} um DVDs zu erstellen
oder weitere Daten zu einer DVD hinzuzuf\"{u}gen.

Um DVDs mit Bacula schreiben zu k\"{o}nnen, m\"{u}ssen Sie die
{\bf dvd+rw-tools} in der Version {\gt}= 7.1 auf Ihrem System
installiert haben. Falls Sie eine \"{a}ltere Version als 7.1
verwenden, m\"{u}ssen Sie den Quelltext patchen, Patches f\"{u}r
die Versionen 6.1 und 5.21.4.10.8 finden Sie im patch-Verzeichnis
des Bacula Quelltextes.

Da Bacula nicht direkt \"{u}ber das Betriebssystem auf die DVD
schreiben kann, macht den gesamten Proze{\ss} etwas komplizierter
als, zum Beispiel, das Beschreiben von Bandlaufwerken. Mit einer
entsprechenden angepassten Konfiguration funktioniert es aber.
Der Quelltext, der die Funktionen f\"{u}r die Sicherung auf
DVDs enth\"{a}lt, ist Momentan noch im BETA-Stadium, bitte
bedenken Sie das und testen Sie entsprechend sorgf\"{a}ltig
bevor Sie produktive Daten auf DVDs sichern.

Der Rest dieses Kapitels beschreibt die verschiedenen
Konfigurations-Parameter, die Sie benutzen k\"{o}nnen,
um den DVD-Schreibvorgang zu steuern.

\label{DVDdirectives}
\section{DVD spezifische SD Konfiguration} 
\index[general]{Konfiguration!DVD}
\index[general]{DVD spezifische SD Konfiguration }

Die folgenden DVD spezifischen Konfigurations-Parameter
k\"{o}nnen in der Storage-Dienst-Konfiguration verwendet werden:

\begin{description}

\item [Requires Mount = {\it Yes|No}]
   \index[sd]{Requires Mount  }
   F\"{u}r DVDs muss hier {\bf yes} gesetzt werden, bei allen anderen Ger\"{a}ten
   (Bandlaufwerke, Festplatten) muss {\bf no} konfiguriert werden. Hiermit wird
   angegeben, dass f\"{u}r das Ger\"{a}t ein {\bf Mount-Command} abgesetzt werden muss,
   bevor es durch Bacula genutzt werden kann. Um auf DVDs schreiben zu k\"{o}nnen,
   m\"{u}ssen zus\"{a}tzlich noch {\bf Mount Command}, {\bf Unmount Command} und
   {\bf Write Part Command} angegeben werden.

\item [Mount Point = {\it Verzeichnis}]
   \index[sd]{Mount Point}
   Das Verzeichnis in dem die DVD gemounted werden soll.

\item [Mount Command = {\it Zeichenkette}]
   \index[sd]{Mount Command}
   Das Kommando das zum Mounten des Ger\"{a}tes ausgef\"{u}hrt werden soll.
   Auch wenn die DVD direkt beschrieben wird, wird ein mount ben\"{o}tigt
   um den freien Speicherplatz auf der DVD zu ermitteln. Bei der Ausf\"{u}hrung
   dieses Kommandos werden die Platzhalter \%a durch das {\bf Archive Device}
   und \%m durch den {\bf Mount Point} ersetzt.

   In den meisten F\"{a}llen wird das Mount Command wie folgt aussehen:

\footnotesize
\begin{verbatim}
  Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
\end{verbatim}
\normalsize

Wenn Sie den DVD-Brenner in /etc/fstab angegeben haben, k\"{o}nnen Sie
auch ein Kommando in dieser Form verwenden:

\footnotesize
\begin{verbatim}
  Mount Command = "/bin/mount /media/dvd"
\end{verbatim}
\normalsize


\item [Unmount Command = {\it Zeichenkette}]
   \index[sd]{Unmount Command}
   Das unmount-Kommando wird verwendet um die Laufwerkseinbindung zu beenden.
   Command that must be executed to unmount the device. Bei der Ausf\"{u}hrung
   dieses Kommandos werden die Platzhalter \%a durch das {\bf Archive Device}
   und \%m durch den {\bf Mount Point} ersetzt.

   Eine gebr\"{a}uchliche Form ist:

\footnotesize
\begin{verbatim}
  Unmount Command = "/bin/umount %m"
\end{verbatim}
\normalsize

\item [Write Part Command = {\it Zeichenkette}]
   \index[sd]{Write Part Command  }
   Das Kommando, dass ausgef\"{u}hrt werden soll, wenn eine weitere Session,
   ein weiterer Teil Daten, auf die DVD geschrieben werden soll.Bei der
   Ausf\"{u}hrung dieses Kommandos werden die Platzhalter \%a durch
   das {\bf Archive Device}, \%m durch den {\bf Mount Point}, \%e wird
   durch 1 wenn der erste Teil und durch 0 bei weiteren Teilen ersetzt
   und \%v durch den Namen des aktuell geschriebenen Teils der Daten.

   F\"{u}r DVDs werden Sie meistens das von Bacula mitgelieferte Script
   {\bf dvd-handler} wie folgt verwenden:  

\footnotesize
\begin{verbatim}
  Write Part Command = "/Pfad/dvd-handler %a write %e %v"
\end{verbatim}
\normalsize

  Hierbei ist {\bf /Pfad} der komplette Pfad zum Verzeichnis
  in dem das Script liegt. In der Standard-Konfiguration des
  Storage-Dienstes ist dieses Kommando bereits angegeben,
  aber auskommentiert. Um es zu verwenden, entfernen Sie einfach
  das Symbol \# an Anfang der Zeile.

\item [Free Space Command = {\it Zeichenkette}]
   \index[sd]{Free Space Command  }
   Das Kommando, dass ausgef\"{u}hrt werden soll,um den freien
   Speicherplatz auf der DVD zu ermitteln. Vor der Ausf\"{u}hrung
   wird der Platzhalter \%a durch das {\bf Archive Device} ersetzt.

   F\"{u}r DVDs werden Sie meistens das von Bacula mitgelieferte Script
   {\bf dvd-handler} wie folgt verwenden:  

\footnotesize
\begin{verbatim}
  Free Space Command = "/path/dvd-handler %a free"
\end{verbatim}
\normalsize

  Hierbei ist {\bf /Pfad} der komplette Pfad zum Verzeichnis
  in dem das Script liegt. Wenn Sie ein eigenes Kommando benutzen
  wollen, schauen Sie sich bitte an, wie und welche Informationen
  das Script an Bacula \"{u}bergibt. In der Standard-Konfiguration des
  Storage-Dienstes ist dieses Kommando bereits angegeben,
  aber auskommentiert. Um es zu verwenden, entfernen Sie einfach
  das Symbol \# an Anfang der Zeile.

  Wenn diese Kommando nicht konfiguriert ist, geht Bacula davon aus,
  dass immer freier Speicherplatz auf der DVD verf\"{u}gbar ist.

\end{description}

Zus\"{a}tzlich zu den oben genannten Paramtern m\"{u}ssen auch die
nicht DVD-spezifischen Standard-Eintr\"{a}ge vorhanden sein. Sehen
Sie sich hierzu bitte die beispielhafte DVD-Konfiguration in der
Konfigurations-Datei des Storage-Dienstes an. Stellen Sie bitte sicher,
dass Sie einen Ger\"{a}te-Eintrag als {\bf Archive Device} angeben,
zum Beispiel {\bf /dev/cdrom} und nicht ein Verzeichnis wie {\bf
/media/cdrom}. Abweichend k\"{o}nnen die Eintr\"{a}ge auch {\bf
/dev/cdrecorder}, {\bf /dev/dvd} oder {\bf /dev/sr0} hei{\ss}en.

Letztendlich muss noch {\bf growisofs} in der Lage sein gen\"{u}gend
Arbeitsspeicher sperren zu d\"{u}rfen. Wenn dies nicht gelingt,
kann es zu Fehlern f\"{u}hren. Falls Sie die {\bf bash} verwenden,
k\"{o}nnen Sie mit dem folgenden Kommando den sperrbaren Speicher
auf unbegrenzt festlegen:

\footnotesize  
\begin{verbatim}
ulimit -l unlimited
\end{verbatim}
\normalsize

\section{Platzhalter bei DVD Kommandos} 
\index[general]{Kommandos!DVD Platzhalter}
\index[general]{Platzhalter bei DVD Kommandos }

Bevor die Kommandos, die f\"{u}r {\bf Mount Command}, {\bf Unmount Command}, 
{\bf Write Part Command} oder {\bf Free Space Command} konfiguriert
sind, an das Betriebssystem zur Ausf\"{u}hrung \"{u}bergeben werden,
ersetzt Bacula folgende Paltzhalter durch die angegeben Parameter:

\footnotesize
\begin{alltt}
    %% = %
    %a = das Archive Device, z.B. /dev/dvdrecorder
    %e = erase, ersetzt durch 1 wenn das mounten nicht m\"{o}glich war
         oder wenn der erste Teil der DVD geschrieben wird, ansonsten 0
    %n = die Nummer des aktuell geschriebenen Teils
    %m = der Mount Point, z.B. /media/dvd
    %v = der Dateiname des aktuell geschriebenen Teils
\end{alltt}
\normalsize



\section{DVD spezifische Director Konfiguration} 
\index[general]{Konfiguration!DVD}
\index[general]{DVD spezifische Director Konfiguration }

Die folgenden DVD spezifischen Parameter k\"{o}nnen
in der Konfiguration des Director-Dienstes angegeben werden:

\label{WritePartAfterJob}
\begin{description}
\item [Write Part After Job = \lt{}yes|no\gt{}]
   \index[dir]{Write Part After Job }
   Wenn Sie hier {\bf yes} angeben, der Standard ist {\bf no},
   werden die Daten des Backup-Jobs sofort nach dessen Ende
   auf die DVD geschrieben. Dazu wird eine tempor\"{a}re
   Image-Datei erstellt, die dann, an die Daten auf der DVD,
   als neuer Teil/neue Session, angef\"{u}gt wird.

   Bei Ger\"{a}ten die gemounted werden m\"{u}ssen (zum Beispiel DVDs),
   sollten Sie es auf {\bf yes} setzen. Nur so k\"{o}nnen Sie sicher sein,
   dass alle Job-Daten auf das Ger\"{a}t geschrieben werden und keine Daten
   in der tempor\"{a}ren Datei auf der Festplatte verbleiben. Allerdings
   wird bei einigen Medien, wie DVD-R und DVD+R, f\"{u}r jede Session/
   jeden "`Part"' in etwa 10 Mb zus\"{a}tzlicher Speicherplatz verbraucht.
   Wenn Sie also mehrere Jobs nacheinander laufen lassen, sollte {\bf WritePartAfterJob}
   bei allen Jobs, ausser bei dem Letzten, auf {\bf no} gesetzt werden.
   Dadurch wird verhindert, dass zu viel Speicherplatz verschwendet wird
   und trotzdem sichergestellt, dass alle Daten auf das Medium geschrieben werden.

   Dieser Parameter wird nur ausgewertet, wenn als Ger\"{a}te-Typ DVD angegeben ist.

\end{description}


\label{DVDpoints}
\section{Hinweise zur Verwendung von DVDs}
\index[general]{Hinweise!Verwendung von DVDs}
\index[general]{Hinweise zur Verwendung von DVDs}

\begin{itemize}
\item Stellen Sie bitte sicher, dass jede Art von automatischem
   mounten auf Ihrem System abgeschaltet ist (zum Beispiel via /etc/fstab oder
   hotplug). Wenn die DVD automatisch vom Betriebssystem eingebunden wird,
   werden Probleme auftreten, wenn Bacula versucht die DVD zu mounten/unmounten.
\item Setzen Sie {\bf Write Part After Job} auf {\bf yes}, ansonsten wird
   der letzte Teil der Backup-Daten eventuell nicht auf die DVD geschrieben
   und verbleibt in der tempor\"{a}ren Datei auf der Festplatte.
   Wenn Sie mehrere Jobs nacheinander laufen lassen reicht es aus,
   wenn {\bf Write Part After Job} f\"{u}r den letzten Job auf {\bf yes}
   gesetzt ist.
\item Bacula ist momentan noch nicht darauf ausgelegt mehrere Jobs parallel
   auf eine DVD zu schreiben. Stelln Sie daher sicher, dass niemals zwei Jobs
   gleichzeitig versuchen auf die DVD zu schreiben.
\item auch wenn das Lesen und Schreiben von DVD+RW sehr zuverl\"{a}ssig
   funktioniert, gibt es kaum Erfahrungen ob das auch f\"{u}r DVD-RW und
   andere DVD-Formate gilt.
\item DVD+RW unterst\"{u}tzt nur 1000 Schreibvorg\"{a}nge und jedesmal
   wenn die DVD mit Schreibzugriff eingebunden/gemounted wird, z\"{a}hlt
   das als ein Schreibzugriff. Dadurch k\"{o}nnen die 1000 Schreibzugriffe
   sehr schnell zustande kommen. Es empfiehlt sich daher, dass Sie die DVD+RW
   nur lesbar (read-only) einbinden. Bacula greift beim Schreiben direkt
   auf die Hardware zu, daher spielt es keine Rolle wie die DVD eingebunden ist.
\item durch mehrmaliges formatieren oder neu formatieren kann es passieren,
   dass eine DVD+RW unbrauchbar wird. Normalerweise sollte es nicht notwendig
   sein eine DVD+RW erneut zu formatieren, falls doch, erkennen aktuelle
   Versionen von growisofs dies automatisch.
\item Bei der Benutzung von DVD-RW (nicht bei DVD+RW) k\"{o}nnen Probleme
   autreten, da diese Medien zwei verschiedene Schreib-Methoden kennen:
   {\bf Incremental Sequential} und {\bf Restricted Overwrite}. In
   Abh\"{a}ngigkeit von Ihrem Laufwerk und dem verwendeten Medium kann
   es passieren, dass eine dieser Methoden nicht korrekt funktioniert.

  Um sich die aktuell verwendete Schreib-Methode anzeigen zu lassen,
  k\"{o}nnen Sie diese Kommando ausf\"{u}hren:
\begin{verbatim}
  dvd+rw-mediainfo /dev/xxx
\end{verbatim}
  wobei Sie {\bf xxx} mit dem Ger\"{a}te-namen Ihres DVD-Brenners ersetzen m\"{u}ssen.
  Die gew\"{u}nschte Information finden Sie dann in der Zeile die mit
  {\bf Mounted Media} anf\"{a}ngt.

  Um den DVD-Brenner in den {\bf Restricted Overwrite} Modus zu versetzen,
  f\"{u}hren Sie dieses Kommando aus:
\begin{verbatim}
  dvd+rw-format /dev/xxx
\end{verbatim}
  In dem Modus {\bf Incremental Sequential} setzen Sie Ihr Laufwerk mittels:
\begin{verbatim}
  dvd+rw-format -blank /dev/xxx
\end{verbatim}

\item Bacula akzeptiert zum schreiben nur leere DVDs. Um eine DVD schnell zu
  l\"{o}schen f\"{u}hren Sie dieses Kommando aus:
\begin{verbatim}
  dd if=/dev/zero bs=1024 count=512 | growisofs -Z /dev/xxx=/dev/fd/0
\end{verbatim}
  Danach k\"{o}nnen Sie versuchen die DVD zu mounten, falls die fehlschl\"{a}gt,
  war der L\"{o}schvorgang erfolgreich und Bacula kann diese DVD verwenden.
  Ansonsten m\"{u}ssen Sie die Daten auf der DVD komplett l\"{o}schen.
\item Um eine DVD komplett zu l\"{o}schen verwenden Sie dieses Kommando:
\begin{verbatim}
  growisofs -Z /dev/xxx=/dev/zero
\end{verbatim}
  Dadurch wird die gesamte DVD gel\"{o}scht. Dieser Vorgang kann, abh\"{a}ngig
  von Ihrem Laufwerk, bis zu 30 Minuten dauern.
\item DVD-RW und DVD+RW lassen sich circa 1000 Mal neu beschreiben,
  verwenden Sie also nicht \"{u}ber mehrere Jahre dieselben DVDs.

Das Kommando um eine leere DVD zum ersten Mal zu beschreiben ist:
\begin{verbatim}
  growisofs -Z /dev/xxx filename
\end{verbatim}

weitere Sessions werden dann mittels:
\begin{verbatim}
  growisofs -M /dev/xxx filename
\end{verbatim}
auf die DVD geschrieben.

Seit growisofs 5.20 gibt es die Option {\bf -use-the-force-luke=4gms}.
Dadurch wird verhindert das growisofs das Limit von 4GB beachtet.
Auf allen Kernel ab 2.6.8 sollte diese Option verwendet werden,
da diese Kernel auch mehr als 4GB schreiben k\"{o}nnen. Weiter
Informationen dazu finden Sie, auf Englisch, unter dem unten genannten Link.

\item Mehr Informationen zum Thema DVDs brennen finden Sie auf der 
\elink{Homepage der dvd+rw-tools}{http://fy.chalmers.se/~appro/linux/DVD+RW/}.

\item Dem Fehlerbericht Nummer 912 zufolge, kann bscan keine multisession DVDs lesen.
Dieses Problem wird in der Zukunft behoben, je eher jemand einen Patch schreibt,
desto schneller.
\end{itemize}
