From: Kern Sibbald Date: Sun, 14 May 2017 13:30:50 +0000 (+0200) Subject: Updates to the New Features chapter X-Git-Tag: Release-7.9.0~11 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=770b226aba2e10ef45d6e17430c0fa68acc49813;p=bacula%2Fdocs Updates to the New Features chapter --- diff --git a/docs/images/hires/tray-icon.eps b/docs/images/hires/tray-icon.eps index 1fc04643..b3469ecc 100644 --- a/docs/images/hires/tray-icon.eps +++ b/docs/images/hires/tray-icon.eps @@ -1,7 +1,7 @@ %!PS-Adobe-3.0 EPSF-3.0 %%Creator: (ImageMagick) %%Title: (hires/tray-icon.eps) -%%CreationDate: (2014-03-23T15:15:05+01:00) +%%CreationDate: (2013-03-01T11:20:31+01:00) %%BoundingBox: -0 -0 55 18 %%HiResBoundingBox: 0 0 54.5143 18 %%DocumentData: Clean7Bit diff --git a/docs/images/hires/tray-monitor.eps b/docs/images/hires/tray-monitor.eps index b92e50b0..05c29c6f 100644 --- a/docs/images/hires/tray-monitor.eps +++ b/docs/images/hires/tray-monitor.eps @@ -1,7 +1,7 @@ %!PS-Adobe-3.0 EPSF-3.0 %%Creator: (ImageMagick) %%Title: (hires/tray-monitor.eps) -%%CreationDate: (2014-03-23T15:15:02+01:00) +%%CreationDate: (2013-03-01T11:20:24+01:00) %%BoundingBox: -0 -0 142 112 %%HiResBoundingBox: 0 0 141.732 112 %%DocumentData: Clean7Bit diff --git a/docs/images/hires/tray-monitor1.eps b/docs/images/hires/tray-monitor1.eps index f44fa182..0bd4bbd2 100644 --- a/docs/images/hires/tray-monitor1.eps +++ b/docs/images/hires/tray-monitor1.eps @@ -1,7 +1,7 @@ %!PS-Adobe-3.0 EPSF-3.0 %%Creator: (ImageMagick) %%Title: (hires/tray-monitor1.eps) -%%CreationDate: (2014-03-23T15:15:02+01:00) +%%CreationDate: (2013-03-01T11:20:24+01:00) %%BoundingBox: -0 -0 142 104 %%HiResBoundingBox: 0 0 141.53 104 %%DocumentData: Clean7Bit diff --git a/docs/images/tray-monitor1.png b/docs/images/tray-monitor1.png index 7c697a78..14d12703 100644 Binary files a/docs/images/tray-monitor1.png and b/docs/images/tray-monitor1.png differ diff --git a/docs/latex/external-references.tex b/docs/latex/external-references.tex index 3c69789d..ee7113e7 100644 --- a/docs/latex/external-references.tex +++ b/docs/latex/external-references.tex @@ -61,6 +61,7 @@ \externaldocument[main-]{../main/requirements} \externaldocument[main-]{../main/catmaintenance} \externaldocument[main-]{../main/sqlite} +\externaldocument[main-]{../main/xnewfeatures} \externaldocument[main-]{../main/messagesres} \externaldocument[main-]{../main/storedconf} \externaldocument[main-]{../main/quickstart} diff --git a/docs/manuals/bacula.sty b/docs/manuals/bacula.sty index e154b0c1..69310557 100644 --- a/docs/manuals/bacula.sty +++ b/docs/manuals/bacula.sty @@ -79,7 +79,50 @@ \pdfminorversion=4 -\def\version{7.4.8} +%%% +%%% Include a graphic, horizontally +%%% Parameters: +%%% #1: image filename, witout extension +%%% #2: Caption +%%% +%%% A label is automatically added. The name +%%% bsysimg-image_filename +\newcommand*{\bsysimageN}[3]{ + \begin{figure}[htpb] + \begin{center} + \includegraphics{#1} + \caption{#2}\ifthenelse{\equal{#3}{}}{\label{bsysimg-#1}}{\label{#3}} + \end{center} + \end{figure} +} +\newcommand*{\bsysimageH}[3]{ + \begin{figure}[htpb] + \begin{center} + \includegraphics[width=0.95\linewidth]{#1} + \caption{#2}\ifthenelse{\equal{#3}{}}{\label{bsysimg-#1}}{\label{#3}} + \end{center} + \end{figure} +} +%%% +%%% Include a graphic, vertically +%%% Parameters: +%%% #1: image filename, witout extension +%%% #2: Caption +%%% +%%% A label is automatically added. The name +%%% bsysimg-image_filename +\newcommand*{\bsysimageV}[3]{ + \begin{figure}[htpb] + \begin{center} + \includegraphics[height=0.95\linewidth]{#1} + \caption{#2}\ifthenelse{\equal{#3}{}}{\label{bsysimg-#1}}{\label{#3}} + \end{center} + \end{figure} +} +%%% + + +\def\version{7.9.0} %% diff --git a/docs/manuals/bacula.sty.in b/docs/manuals/bacula.sty.in index ef97379f..4c3c1a3a 100644 --- a/docs/manuals/bacula.sty.in +++ b/docs/manuals/bacula.sty.in @@ -79,6 +79,49 @@ \pdfminorversion=4 +%%% +%%% Include a graphic, horizontally +%%% Parameters: +%%% #1: image filename, witout extension +%%% #2: Caption +%%% +%%% A label is automatically added. The name +%%% bsysimg-image_filename +\newcommand*{\bsysimageN}[3]{ + \begin{figure}[htpb] + \begin{center} + \includegraphics{#1} + \caption{#2}\ifthenelse{\equal{#3}{}}{\label{bsysimg-#1}}{\label{#3}} + \end{center} + \end{figure} +} +\newcommand*{\bsysimageH}[3]{ + \begin{figure}[htpb] + \begin{center} + \includegraphics[width=0.95\linewidth]{#1} + \caption{#2}\ifthenelse{\equal{#3}{}}{\label{bsysimg-#1}}{\label{#3}} + \end{center} + \end{figure} +} +%%% +%%% Include a graphic, vertically +%%% Parameters: +%%% #1: image filename, witout extension +%%% #2: Caption +%%% +%%% A label is automatically added. The name +%%% bsysimg-image_filename +\newcommand*{\bsysimageV}[3]{ + \begin{figure}[htpb] + \begin{center} + \includegraphics[height=0.95\linewidth]{#1} + \caption{#2}\ifthenelse{\equal{#3}{}}{\label{bsysimg-#1}}{\label{#3}} + \end{center} + \end{figure} +} +%%% + + \def\version{@VERSION@} diff --git a/docs/manuals/en/main/main.tex b/docs/manuals/en/main/main.tex index 698cd8bf..fbef017e 100644 --- a/docs/manuals/en/main/main.tex +++ b/docs/manuals/en/main/main.tex @@ -19,7 +19,8 @@ \usepackage{float} \usepackage{graphicx} \usepackage{bacula} -\usepackage{longtable} +\usepackage{longtable,graphicx,fancyhdr,lastpage,eurosym,dcolumn,ltxtable,textcomp,varioref, +lscape,pdfpages,ifthen,setspace,colortbl,diagbox} \usepackage{makeidx} \usepackage{index} \usepackage{setspace} diff --git a/docs/manuals/en/main/newfeatures.tex b/docs/manuals/en/main/newfeatures.tex index 7cb823c6..ccad286c 100644 --- a/docs/manuals/en/main/newfeatures.tex +++ b/docs/manuals/en/main/newfeatures.tex @@ -1,3 +1,847 @@ +\chapter{New Features in 9.0.0} +\subsection{Maximum Virtual Full Interval Option} +Two new director directives have been added: + +\begin{verbatim} + Max Virtual Full Interval +and + Virtual Full Backup Pool +\end(verbatime) + +The {\bf Max Virtual Full Interval} directive should behave similar to the +{\bf Max Full Interval}, but for Virtual Full jobs. If Bacula sees that +there has not been a Full backup in Max Virtual Full Interval time then it +will upgrade the job to Virtual Full. If you have both {\bf Max Full +Interval} and {\bf Max Virtual Full Interval} set then Max Full Interval +should take precedence. + +The {\bf Virtual Full Backup Pool} directive allows one to change the pool +as well. You probably want to use these two directives in +conjunction with each other but that may depend on the specifics of one's +setup. If you set the {\bf Max Full Interval} without setting {\bf Max +Virtual Full Interval} then Bacula will use whatever the "default" pool is +set to which is the same behavior as with the Max Full Interval. + +\subsection{Progressive Virtual Full} + +In Bacula version 9.0.0, we have added a new Directive named {\bf Backups To Keep} that +permits you to implement Progressive Virtual Fulls within Bacula. Sometimes +this feature is known as Incremental Forever with Consolidation. + +\smallskip + +\begin{figure}[htbp] + \centering + \includegraphics[width=.8\linewidth]{pvf-slidingbackups} + \caption{Backup Sequence Slides Forward One Day, Each Day} + \label{fig:slidingbackups} +\end{figure} + +To implement this the Progressive Virtual Full feature, you add the +{\bf Backups To Keep} directive to your Job resource. The value +specified on the directive indicates the number of backup jobs that should +not be merged into the Virtual Full. The default is zero and behaves the +same way the prior script {\bf pvf} worked. + +\subsubsection{Backups To Keep Directive} +The new {\bf BackupsToKeep} directive is specified in the Job Resource and +has the form: + +\begin{verbatim} + Backups To Keep = 30 +\end{verbatim} + +where the value (30 in the above figure and example) is the number of +backups to retain. When this directive is present during a Virtual Full +(it is ignored for other Job types), it will look for a Full backup that +has more subsequent backups than the value specified. In the above example +the Job will simply terminate unless there is a Full back followed by at +least 31 backups of either level Differential or Incremental. + +\smallskip +Assuming that the last Full backup is followed by 32 Incremental backups, a +Virtual Full will be run that consolidates the Full with the first two +Incrementals that were run after the Full. The result is that you will end +up with a Full followed by 30 Incremental backups. The Job Resource +in {\bf bacula-dir.conf} to accomplish this would be: + +\begin{verbatim} + Job { + Name = "VFull" + Type = Backup + Level = VirtualFull + Client = "my-fd" + File Set = "FullSet" + Accurate = Yes + Backups To Keep = 10 + } +\end{verbatim} + +\subsubsection{Delete Consolidated Jobs} +The new directive {\bf Delete Consolidated Jobs} expects a {\bf yes} +or {\bf no} value that if set to {\bf yes} will cause any old Job that is +consolidated during a Virtual Full to be deleted. In the example above +we saw that a Full plus one other job (either an Incremental or +Differential) were consolidated into a new Full backup. The original Full +plus the other Job consolidated will be deleted. The default value is +{\bf no}. + +\subsubsection{Virtual Full Compatibility} +Virtual Full as well as Progressive Virtual Full works with any +standard backup Job. + +\smallskip +However, it should be noted that Virtual Full jobs are not compatible with +any plugins that you may be using. + +\subsection{TapeAlert Enhancements} +There are some significant enhancements to the TapeAlert feature of Bacula. +Several directives are used slightly differently, and there is a minor +compatibility problem with the old TapeAlert implementation. + +\subsubsection{What is New} +First, you must define a \textbf{Alert Command} directive in the Device +resource that calls the new \textbf{tapealert} script that is installed in +the scripts directory (normally: /opt/bacula/scripts). It is defined as +follows: + +\begin{verbatim} +Device { + Name = ... + Archive Device = /dev/nst0 + Alert Command = "/opt/bacula/scripts/tapealert %l" + Control Device = /dev/sg1 # must be SCSI ctl for /dev/nst0 + ... +} +\end{verbatim} + +The \textbf{Control Device} directive in the Storage Daemon's conf file was +previously used only for the SAN Shared Storage feature. With Bacula +version 8.8, it is also used for the TapeAlert command to permit Bacula to +detect tape alerts on a specific device (normally only tape devices). + +Once the above mentioned two directives (Alert Command and Control Device) +are in place in each of your Device resources, Bacula will check for tape +alerts at two points: + +\begin{itemize} +\item After the Drive is used and it becomes idle. +\item After each read or write error on the drive. +\end{itemize} + +At each of the above times, Bacula will call the new \textbf{tapealert} +script, which uses the \textbf{tapeinfo} program. The tapeinfo utility is +part of the apt sg3-utils and rpm sg3\_utils packages. Then for each tape +alert that Bacula finds for that drive, it will emit a Job message that is +either INFO, WARNING, or FATAL depending on the designation in the Tape +Alert published by the T10 Technical Committee on SCSI Storage Interfaces +(www.t10.org). For the specification, please see: +www.t10.org/ftp/t10/document.02/02-142r0.pdf + +\smallskip +As a somewhat extreme example, if tape alerts 3, 5, and 39 are set, you +will get the following output in your backup job. + +{\small + \begin{verbatim} + 17-Nov 13:37 rufus-sd JobId 1: Error: block.c:287 + Write error at 0:17 on device "tape" + (/home/kern/bacula/k/regress/working/ach/drive0) + Vol=TestVolume001. ERR=Input/output error. + + 17-Nov 13:37 rufus-sd JobId 1: Fatal error: Alert: + Volume="TestVolume001" alert=3: ERR=The operation has stopped because + an error has occurred while reading or writing data which the drive + cannot correct. The drive had a hard read or write error + + 17-Nov 13:37 rufus-sd JobId 1: Fatal error: Alert: + Volume="TestVolume001" alert=5: ERR=The tape is damaged or the drive + is faulty. Call the tape drive supplier helpline. The drive can no + longer read data from the tape + + 17-Nov 13:37 rufus-sd JobId 1: Warning: Disabled Device "tape" + (/home/kern/bacula/k/regress/working/ach/drive0) due to tape alert=39. + + 17-Nov 13:37 rufus-sd JobId 1: Warning: Alert: Volume="TestVolume001" + alert=39: ERR=The tape drive may have a fault. Check for availability + of diagnostic information and run extended diagnostics if applicable. + The drive may have had a failure which may be identified by stored + diagnostic information or by running extended diagnostics (eg Send + Diagnostic). Check the tape drive users manual for instructions on + running extended diagnostic tests and retrieving diagnostic data. + + \end{verbatim} +} + +Without the tape alert feature enabled, you would only get the first error +message above, which is the error return Bacula received when it gets the +error. Notice also, that in this case the alert number 5 is a critical +error, which causes two things to happen. First the tape drive is disabled, +and second the Job is failed. + +\smallskip +If you attempt to run another Job using +the Device that has been disabled, you will get a message similar to the +following: + +\begin{verbatim} +17-Nov 15:08 rufus-sd JobId 2: Warning: + Device "tape" requested by DIR is disabled. +\end{verbatim} + +and the Job may be failed if no other drive can be found. +\smallskip +Once the problem with the tape drive has been corrected, you can +clear the tape alerts and re-enable the device with the Bacula bconsole +command such as the following: + +\begin{verbatim} + enable Storage=Tape +\end{verbatim} + +Note, when you enable the device, the list of prior tape alerts for that +drive will be discarded. + + +\smallskip +Since is is possible to miss tape alerts, Bacula maintains a temporary list +of the last 8 alerts, and each time Bacula calls the \textbf{tapealert} +script, it will keep up to 10 alert status codes. Normally there will only +be one or two alert errors for each call to the tapealert script. + +\smallskip +Once a drive has one or more tape alerts, you can see them by using the +bconsole status command as follows: +\begin{verbatim} +status storage=Tape +\end{verbatim} +which produces the following output: +\begin{verbatim} +Device Vtape is "tape" (/home/kern/bacula/k/regress/working/ach/drive0) +mounted with: + Volume: TestVolume001 + Pool: Default + Media type: tape + Device is disabled. User command. + Total Bytes Read=0 Blocks Read=1 Bytes/block=0 + Positioned at File=1 Block=0 + Critical Alert: at 17-Nov-2016 15:08:01 Volume="TestVolume001" + alert=Hard Error + Critical Alert: at 17-Nov-2016 15:08:01 Volume="TestVolume001" + alert=Read Failure + Warning Alert: at 17-Nov-2016 15:08:01 Volume="TestVolume001" + alert=Diagnostics Required +\end{verbatim} +if you want to see the long message associated with each of the alerts, +simply set the debug level to 10 or more and re-issue the status command: +\begin{verbatim} +setdebug storage=Tape level=10 +status storage=Tape +\end{verbatim} +\begin{verbatim} + ... + Critical Alert: at 17-Nov-2016 15:08:01 Volume="TestVolume001" + flags=0x0 alert=The operation has stopped because an error has occurred + while reading or writing data which the drive cannot correct. The drive had + a hard read or write error + Critical Alert: at 17-Nov-2016 15:08:01 Volume="TestVolume001" + flags=0x0 alert=The tape is damaged or the drive is faulty. Call the tape + drive supplier helpline. The drive can no longer read data from the tape + Warning Alert: at 17-Nov-2016 15:08:01 Volume="TestVolume001" flags=0x1 + alert=The tape drive may have a fault. Check for availability of diagnostic + information and run extended diagnostics if applicable. The drive may + have had a failure which may be identified by stored diagnostic information + or by running extended diagnostics (eg Send Diagnostic). Check the tape + drive users manual for instructions on running extended diagnostic tests + and retrieving diagnostic data. + ... +\end{verbatim} +The next time you \textbf{enable} the Device by either using +\textbf{bconsole} or you restart the Storage Daemon, all the saved alert +messages will be discarded. + +\subsubsection{Handling of Alerts} +Tape Alerts numbered 7,8,13,14,20,22,52,53, and 54 will cause Bacula to +disable the current Volume. + +\smallskip +Tape Alerts numbered 14,20,29,30,31,38, and 39 will cause Bacula to disable +the drive. + +\smallskip +Please note certain tape alerts such as 14 have multiple effects (disable +the Volume and disable the drive). + +\subsection{New Console ACL Directives} +By default, if a Console ACL directive is not set, Bacula will assume that the +ACL list is empty. If the current Bacula Director configuration uses restricted +Consoles and allows restore jobs, it is mandatory to configure the new +directives. + +\subsubsection{DirectoryACL} +\index[dir]{Directive!DirectoryACL} + +This directive is used to specify a list of directories that can be accessed by +a restore session. Without this directive, the console cannot restore any +file. Multiple directories names may be specified by separating them with +commas, and/or by specifying multiple DirectoryACL directives. For example, +the directive may be specified as: + +\footnotesize +\begin{verbatim} + DirectoryACL = /home/bacula/, "/etc/", "/home/test/*" +\end{verbatim} +\normalsize + +With the above specification, the console can access the following directories: +\begin{itemize} +\item \texttt{/etc/password} +\item \texttt{/etc/group} +\item \texttt{/home/bacula/.bashrc} +\item \texttt{/home/test/.ssh/config} +\item \texttt{/home/test/Desktop/Images/something.png} +\end{itemize} + +But not to the following files or directories: +\begin{itemize} +\item \texttt{/etc/security/limits.conf} +\item \texttt{/home/bacula/.ssh/id\_dsa.pub} +\item \texttt{/home/guest/something} +\item \texttt{/usr/bin/make} +\end{itemize} + +If a directory starts with a Windows pattern (ex: c:/), Bacula will +automatically ignore the case when checking directories. + +\subsection{New Bconsole ``list'' Command Behavior} + +The bconsole \texttt{list} commands can now be used safely from a +restricted bconsole session. The information displayed will respect the +ACL configured for the Console session. For example, if a Console has +access to JobA, JobB and JobC, information about JobD will not appear in +the \texttt{list jobs} command. + +\subsection{New Console ACL Directives} +\index[dir]{Directive!BackupClientACL} +It is now possible to configure a restricted Console to distinguish Backup +and Restore jobs permissions. The \texttt{BackupClientACL} can restrict +backup jobs on a specific set of clients, while the +\texttt{RestoreClientACL} can restrict restore jobs. + +{\small +\begin{verbatim} +# cat /opt/bacula/etc/bacula-dir.conf +... + +Console { + Name = fd-cons # Name of the FD Console + Password = yyy +... + ClientACL = localhost-fd # everything allowed + RestoreClientACL = test-fd # restore only + BackupClientACL = production-fd # backup only +} +\end{verbatim} +} + +The \texttt{ClientACL} directive takes precedence over the +\texttt{RestoreClientACL} and the \texttt{BackupClientACL}. In the Console +resource resource above, it means that the bconsole linked to the Console{} +named "fd-cons" will be able to run: + +\begin{itemize} +\item backup and restore for ``localhost-fd'' +\item backup for ``production-fd'' +\item restore for ``test-fd'' +\end{itemize} + +At the restore time, jobs for client ``localhost-fd'', ``test-fd'' and +``production-fd'' will be available. + +If \texttt{*all*} is set for \texttt{ClientACL}, backup and restore will be +allowed for all clients, despite the use of \texttt{RestoreClientACL} or +\texttt{"BackupClientACL}. + +\subsection{Client Initiated Backup} +\label{sec:featurecib} +A console program such as the new \texttt{tray-monitor} or +\texttt{bconsole} can now be configured to connect a File Daemon. There +are many new features available (see the New Tray Monitor section below), +but probably the most important is the ability for the user to initiate a +backup of his own machine. The connection established by the FD to the +Director for the backup can be used by the Director for the backup, thus +not only can clients (users) initiate backups, but a File Daemon that is +NATed (cannot be reached by the Director) can now be backed up without +using advanced tunneling techniques. + +\smallskip +The flow of information is shown in the picture below: +\bsysimageH{nat}{Client Initiated Backup Network Flow}{fig:nat3} + +\newpage +\subsection{Configuring Client Initiated Backup} +\smallskip +In order to ensure security, there are a number of new directives +that must be enabled in the new \texttt{tray-monitor}, the File +Daemon and in the Director. +A typical configuration might look like the following: + +{\small +\begin{verbatim} +# cat /opt/bacula/etc/bacula-dir.conf +... + +Console { + Name = fd-cons # Name of the FD Console + Password = yyy + + # These commands are used by the tray-monitor, it is possible to restrict + CommandACL = run, restore, wait, .status, .jobs, .clients + CommandACL = .storages, .pools, .filesets, .defaults, .estimate + + # Adapt for your needs + jobacl = *all* + poolacl = *all* + clientacl = *all* + storageacl = *all* + catalogacl = *all* + filesetacl = *all* +} +\end{verbatim} +} + +{\small +\begin{verbatim} +# cat /opt/bacula/etc/bacula-fd.conf +... + +Console { # Console to connect the Director + Name = fd-cons + DIRPort = 9101 + address = localhost + Password = "yyy" +} + +Director { + Name = remote-cons # Name of the tray monitor/bconsole + Password = "xxx" # Password of the tray monitor/bconsole + Remote = yes # Allow to use send commands to the Console defined +} +\end{verbatim} +} + +{\small +\begin{verbatim} +cat /opt/bacula/etc/bconsole-remote.conf +.... + +Director { + Name = localhost-fd + address = localhost # Specify the FD address + DIRport = 9102 # Specify the FD Port + Password = "notused" +} + +Console { + Name = remote-cons # Name used in the auth process + Password = "xxx" +} +\end{verbatim} +} + +{\small +\begin{verbatim} +cat ~/.bacula-tray-monitor.conf +Monitor { + Name = remote-cons +} + +Client { + Name = localhost-fd + address = localhost # Specify the FD address + Port = 9102 # Specify the FD Port + Password = "xxx" + Remote = yes +} +\end{verbatim} +} + +\bsysimageH{conf-nat}{Relation Between Resources (bconsole)}{fig:nat} +\bsysimageH{conf-nat2}{Relation Between Resources (tray-monitor)}{fig:nat2} + +\medskip +A more detailed description with complete examples is available in +chapter~\ref{TrayMonitorChapter}. + +\subsection{New Tray Monitor} + +A new tray monitor has been added to the 9.0 release, the tray monitor offers +the following features: + +\begin{itemize} +\item Director, File and Storage Daemon status page +\item Support for the Client Initiated Backup protocol (See + \vref{sec:featurecib}). To use the Client Initiated Backup option from the + tray monitor, the Client option ``Remote'' should be checked in the + configuration (Fig \vref{fig:tray2}). +\item Wizard to run new job (Fig \vref{fig:tray4}) +\item Display an estimation of the number of files and the size of the next + backup job (Fig \vref{fig:tray4}) +\item Ability to configure the tray monitor configuration file directly from + the GUI (Fig \vref{fig:tray2}) +\item Ability to monitor a component and adapt the tray monitor task bar icon + if a jobs are running. +\item TLS Support +\item Better network connection handling +\item Default configuration file is stored under \texttt{\$HOME/.bacula-tray-monitor.conf} +\item Ability to ``schedule'' jobs +\item Available on Linux and Windows platforms +\end{itemize} + +% \medskip +% Please see chapter \ref{TrayMonitorChapter} for more details about this new +% functionality. + + +\begin{figure}[htbp] + \centering + \includegraphics[width=0.8\linewidth]{tray-monitor-status} + \caption{Tray Monitor Status} + \label{fig:tray0} +\end{figure} + +\begin{figure}[htbp] + \centering + \includegraphics[width=0.9\linewidth]{tray-monitor-conf-fd} + \caption{Tray Monitor Client Configuration} + \label{fig:tray2} +\end{figure} + +\begin{figure}[htbp] + \centering + \includegraphics[width=0.8\linewidth]{tray-monitor-run1} + \smallskip + \includegraphics[width=0.8\linewidth]{tray-monitor-run2} + \caption{Tray Monitor Run a Job} + \label{fig:tray4} +\end{figure} + +\subsection{Schedule Jobs via the Tray Monitor} + +The Tray Monitor can scan periodically a specific directory ``Command +Directory'' and process ``*.bcmd'' files to find jobs to run. + +The format of the ``file.bcmd'' command file is the following: +\begin{verbatim} +: +: +... + + = string + = string (bconsole command line) +\end{verbatim} + +For example: +\begin{verbatim} +localhost-fd: run job=backup-localhost-fd level=full +localhost-dir: run job=BackupCatalog +\end{verbatim} + +The command file should contain at least one command. The component specified +in the first part of the command line should be defined in the tray +monitor. Once the command file is detected by the tray monitor, a popup is +displayed to the user and it is possible for the user to cancel the job directly. + +\smallskip{} + +The file can be created with tools such as ``cron'' or the ``task scheduler'' +on Windows. It is possible to verify the network connection at that time to +avoid network errors. + +\begin{verbatim} +#!/bin/sh +if ping -c 1 director &> /dev/null +then + echo "my-dir: run job=backup" > /path/to/commands/backup.bcmd +fi +\end{verbatim} + +%\bsysimageH{tray-monitor-status}{Tray Monitor Status}{fig:tray0} +%\bsysimageH{tray-monitor1}{Tray Monitor Configuration}{fig:tray1} +%\bsysimageH{tray-monitor-conf-fd}{Tray Monitor Client Configuration}{fig:tray2} +%\bsysimageH{tray-monitor-conf-dir}{Tray Monitor Director Configuration}{fig:tray3} +%\bsysimageH{tray-monitor-run1}{Tray Monitor Run new Job}{fig:tray4} +% find a way to group them together +%\bsysimageH{tray-monitor-run2}{Tray Monitor Setup new Job}{fig:tray5} + + +\subsection{Accurate Option for Verify ``Volume Data'' Job} + +Since Bacula version 8.4.1, it has been possible to have a Verify Job +configured with \texttt{level=Data} that will reread all records from a job +and optionally check the size and the checksum of all files. Starting with + +\smallskip +Bacula version 9.0, it is now possible to use the \texttt{accurate} option to check +catalog records at the same time. When using a Verify job with +\texttt{level=Data} and \texttt{accurate=yes} can replace the +\texttt{level=VolumeToCatalog} option. + +For more information on how to setup a Verify Data job, see +\vref{label:verifyvolumedata}. + +To run a Verify Job with the \texttt{accurate} option, it is possible to set +the option in the Job definition or set use the \texttt{accurate=yes} on the +command line. + +\begin{verbatim} +* run job=VerifyData jobid=10 accurate=yes +\end{verbatim} + +\subsection{FileDaemon Saved Messages Resource Destination} + +It is now possible to send the list of all saved files to a Messages +resource with the \texttt{saved} message type. It is not recommended to +send this flow of information to the director and/or the catalog when the +client FileSet is pretty large. To avoid side effects, the \texttt{all} +keyword doesn't include the \texttt{saved} message type. The +\texttt{saved} message type should be explicitely set. + +\begin{verbatim} +# cat /opt/bacula/etc/bacula-fd.conf +... +Messages { + Name = Standard + director = mydirector-dir = all, !terminate, !restored, !saved + append = /opt/bacula/working/bacula-fd.log = all, saved, restored +} +\end{verbatim} + +\subsection{Minor Enhancements} + +\subsubsection{New Bconsole ".estimate" Command} + +The new \texttt{.estimate} command can be used to get statistics about a +job to run. The command uses the database to approximate the size and the +number of files of the next job. On a PostgreSQL database, the command +uses regression slope to compute values. On SQLite or MySQL, where these +statistical functions are not available, the command uses a simple +``average'' estimation. The correlation number is given for each value. + +{\small +\begin{verbatim} +*.estimate job=backup +level=I +nbjob=0 +corrbytes=0 +jobbytes=0 +corrfiles=0 +jobfiles=0 +duration=0 +job=backup + +*.estimate job=backup level=F +level=F +nbjob=1 +corrbytes=0 +jobbytes=210937774 +corrfiles=0 +jobfiles=2545 +duration=0 +job=backup +\end{verbatim} +} + +\subsubsection{Traceback and Lockdump} + +After the reception of a signal, \texttt{traceback} and \texttt{lockdump} +information are now stored in the same file. + +\subsection{Bconsole ``list jobs'' command options} + +The \texttt{list jobs} bconsole command now accepts new command line options: + +\begin{itemize} +\item \textbf{joberrors} Display jobs with JobErrors +\item \textbf{jobstatus=T} Display jobs with the specified status code +\item \textbf{client=cli} Display jobs for a specified client +\item \textbf{order=asc/desc} Change the output format of the job list. The + jobs are sorted by start time and JobId, the sort can use ascendant (asc) or + descendant (desc) (default) value. +\end{itemize} + +\subsection{Minor Enhancements} + +\subsubsection{New Bconsole "Tee All" Command} + +The ``@tall'' command allows logging all input/output from a console session. + +\begin{verbatim} +*@tall /tmp/log +*st dir +... +\end{verbatim} + +\subsection{Bconsole ``list jobs'' command options} + +The \texttt{list jobs} bconsole command now accepts new command line options: + +\begin{itemize} +\item \textbf{joberrors} Display jobs with JobErrors +\item \textbf{jobstatus=T} Display jobs with the specified status code +\item \textbf{client=cli} Display jobs for a specified client +\item \textbf{order=asc/desc} Change the output format of the job list. The + jobs are sorted by start time and JobId, the sort can use ascendant (asc) or + descendant (desc) (default) value. +\end{itemize} + +\subsection{New Bconsole "Tee All" Command} + +The ``@tall'' command allows logging all input/output from a console session. + +\begin{verbatim} +*@tall /tmp/log +*st dir +... +\end{verbatim} + +\subsection{New Job Edit Codes \%I} +In various places such as RunScripts, you have now access to \%I to get the +JobId of the copy or migration job started by a migrate job. + +\begin{verbatim} +Job { + Name = Migrate-Job + Type = Migrate + ... + RunAfter = "echo New JobId is %I" +} +\end{verbatim} + + +\subsection*{.api version 2} + +In Bacula version 9.0 and later, we introduced a new .api version +to help external tools to parse various Bacula bconsole output. + +% waa - 20150317 - this section needs just a little more to explain what the "43" in "s43" mean. Perhaps +% if it is not a good place to list the possibilities here, then list where a reference +% is. Also, I think .api 2 ... Means "use API version 2" but that should be stated too + +The \texttt{api\_opts} option can use the following arguments: +\begin{itemize} +\item [C] Clear current options +\item [tn] Use a specific time format (1 ISO format, 2 Unix Timestamp, 3 Default Bacula time format) +\item [sn] Use a specific separator between items (new line by default). +\item [Sn] Use a specific separator between objects (new line by default). +\item [o] Convert all keywords to lowercase and convert all non \textsl{isalpha} characters to \_ +\end{itemize} + +% waa - 20150317 - I think there should either be more output listed here to give a better feeling +% or, perhaps another output listing for different .status commands + +\begin{verbatim} + .api 2 api_opts=t1s43S35 + .status dir running +================================== +jobid=10 +job=AJob +... +\end{verbatim} + +\subsection*{New Debug Options} + +In Bacula version 9.0 and later, we introduced a new \texttt{options} parameter for +the \texttt{setdebug} bconsole command. + +\smallskip{} + +The following arguments to the new \texttt{option} parameter are available to control debug functions. + +\begin{itemize} +\item [0] Clear debug flags +\item [i] Turn off, ignore bwrite() errors on restore on File Daemon +\item [d] Turn off decomp of BackupRead() streams on File Daemon +\item [t] Turn on timestamps in traces +\item [T] Turn off timestamps in traces + +% waa - 20150306 - does this "c" item mean to say "Truncate trace file if one exists, otherwise append to it" ??? +\item [c] Truncate trace file if trace file is activated + +\item [l] Turn on recoding events on P() and V() +\item [p] Turn on the display of the event ring when doing a bactrace +\end{itemize} + +\smallskip{} + +The following command will enable debugging for the File Daemon, truncate an existing trace file, +and turn on timestamps when writing to the trace file. + +\begin{verbatim} +* setdebug level=10 trace=1 options=ct fd +\end{verbatim} + +\smallskip{} + +It is now possible to use a \textsl{class} of debug messages called \texttt{tags} +to control the debug output of Bacula daemons. + +\begin{itemize} +\item [all] Display all debug messages +\item [bvfs] Display BVFS debug messages +\item [sql] Display SQL related debug messages +\item [memory] Display memory and poolmem allocation messages +\item [scheduler] Display scheduler related debug messages +\end{itemize} + +\begin{verbatim} +* setdebug level=10 tags=bvfs,sql,memory +* setdebug level=10 tags=!bvfs + +# bacula-dir -t -d 200,bvfs,sql +\end{verbatim} + +The \texttt{tags} option is composed of a list of tags. Tags are separated by +``,'' or ``+'' or ``-'' or ``!''. To disable a specific tag, use ``-'' or ``!'' +in front of the tag. Note that more tags are planned for future versions. + +%\LTXtable{\linewidth}{table_debugtags} + +\subsection{Communication Line Compression} +Bacula version 9.0.0 and later now includes communication +line compression. It is turned on by default, and if the +two Bacula components (Dir, FD, SD, bconsole) are both +version 6.6.0 or greater, communication line compression) +will be enabled, by default. If for some reason, you do not want +communication line compression, you may disable it with the +following directive: + +\begin{verbatim} +Comm Compression = no +\end{verbatim} + +This directive can appear in the following resources: +\begin{verbatim} +bacula-dir.conf: Director resource +bacula-fd.conf Client (or FileDaemon) resource +bacula-sd.conf: Storage resource +bconsole.conf: Console resource +bat.conf: Console resource +\end{verbatim} + +\smallskip +In many cases, the volume of data transmitted across the +communications line can be reduced by a factor of three when +this directive is enabled (default) In the case that the compression is not +effective, Bacula turns it off on a. record by record basis. + +\smallskip +If you are backing up data that is already compressed the comm line +compression will not be effective, and you are likely +to end up with an average compression ratio that is very small. +In this case, Bacula reports {\bf None} in the Job report. + + \chapter{New Features in 7.4.0} This chapter presents the new features that have been added to the various versions of Bacula. @@ -32,6 +876,7 @@ if you run a console command that requires a response, the results are not determined (i.e. it will probably fail). + \section{New Features in 7.4.0} \subsection{Verify Volume Data} @@ -350,8 +1195,6 @@ Job { \smallskip{} - - In RunScripts, the \texttt{AfterSnapshot} keyword for the \texttt{RunsWhen} directive will allow a command to be run just after the Snapshot creation. \texttt{AfterSnapshot} is a synonym for the \texttt{AfterVSS} keyword. @@ -568,7 +1411,7 @@ refer to the OpenSSL documentation to understand the pros and cons regarding the } \end{verbatim} -\subsubsection*{New Option Letter ``M'' for Accurate Directive in FileSet} +\subsubsection*{New Option Letter ``M'' for Accurate Directive in FileSet} % waa - 20150317 - is 8.0.5 correct here? Added in version 8.0.5, the new ``M'' option letter for the Accurate directive @@ -623,64 +1466,6 @@ causing files to be needlessly backed up. } \end{verbatim} -\subsubsection*{New Debug Options} - -In Bacula Enterprise version 8.0 and later, we introduced a new \texttt{options} parameter for -the \texttt{setdebug} bconsole command. - -\smallskip{} - -The following arguments to the new \texttt{option} parameter are available to control debug functions. - -\begin{itemize} -\item [0] Clear debug flags -\item [i] Turn off, ignore bwrite() errors on restore on File Daemon -\item [d] Turn off decomp of BackupRead() streams on File Daemon -\item [t] Turn on timestamps in traces -\item [T] Turn off timestamps in traces - -% waa - 20150306 - does this "c" item mean to say "Truncate trace file if one exists, otherwise append to it" ??? -\item [c] Truncate trace file if trace file is activated - -\item [l] Turn on recoding events on P() and V() -\item [p] Turn on the display of the event ring when doing a bactrace -\end{itemize} - -\smallskip{} - -The following command will enable debugging for the File Daemon, truncate an existing trace file, -and turn on timestamps when writing to the trace file. - -\begin{verbatim} -* setdebug level=10 trace=1 options=ct fd -\end{verbatim} - -\smallskip{} - -It is now possible to use a \textsl{class} of debug messages called \texttt{tags} -to control the debug output of Bacula daemons. - -\begin{itemize} -\item [all] Display all debug messages -\item [bvfs] Display BVFS debug messages -\item [sql] Display SQL related debug messages -\item [memory] Display memory and poolmem allocation messages -\item [scheduler] Display scheduler related debug messages -\end{itemize} - -\begin{verbatim} -* setdebug level=10 tags=bvfs,sql,memory -* setdebug level=10 tags=!bvfs - -# bacula-dir -t -d 200,bvfs,sql -\end{verbatim} - -The \texttt{tags} option is composed of a list of tags. Tags are separated by -``,'' or ``+'' or ``-'' or ``!''. To disable a specific tag, use ``-'' or ``!'' -in front of the tag. Note that more tags are planned for future versions. - -%%\LTXtable{\linewidth}{table_debugtags} - \subsection{Read Only Storage Devices} This version of Bacula allows you to define a Storage deamon device to be read-only. If the {\bf Read Only} directive is specified and @@ -693,24 +1478,6 @@ drives for restores. An example is: Read Only = yes \end{verbatim} -\subsection{New Truncate Command} -We have added a new truncate command to bconsole which -will truncate a volume if the volume is purged, and if -the volume is also marked {\bf Action On Purge = Truncate}. -This feature was originally added in Bacula version 5.0.1, -but the mechanism for actually doing the truncate required -the user to enter a complicated command such as: - -\begin{verbatim} -purge volume action=truncate storage=File pool=Default -\end{verbatim} - -The above command is now simplified to be: - -\begin{verbatim} -truncate storage=File pool=Default -\end{verbatim} - \subsection{New Resume Command} The new \texttt{resume} command does exactly the same thing as a {\bf restart} command, but for some users the diff --git a/docs/manuals/en/pattern-to-handle b/docs/manuals/en/pattern-to-handle index e2fe4f6b..eb89ce36 100644 --- a/docs/manuals/en/pattern-to-handle +++ b/docs/manuals/en/pattern-to-handle @@ -1,5 +1,4 @@ -s/\\borgxrlink{\(.*\)}{\(.*\)}{\(.*\)}{\([^}]*\)}/__XRANCHOR_\1_\2_\3_\4__/g; -s/\\borgxrlinkdocument{\(.*\)}{\(.*\)}{\(.*\)}{\([^}]*\)}/__XRANCHOR_\1_\2_\3_\4__/g; +s/\\bsysxrlink{\(.*\)}{\(.*\)}{\(.*\)}{\([^}]*\)}/__XRANCHOR_\1_\2_\3_\4__/g; s/\\vb{}/\|/g; s/lstlisting/verbatim/g; s/lstinline/verb/g; @@ -17,6 +16,4 @@ s/\\mainman{}/\\mbacula{} Main Manual/g; s/\\devman{}/\\mbacula{} Developers Manual/g; s/\\utilityman{}/\\mbacula{} Utility programs/g; s/\\problemsman{}/\\mbacula{} Problem Resolution Guide/g; -s/\\mbacula{}/Bacula Enterprise/g; -s/\\raisebox{0.1ex}{\\textsuperscript\\textregistered}/\\textregistered{}/g; -s/\\elink{\([^}]*\)}{\([^}]*\)}/__HREF_\2_\1__/g; \ No newline at end of file +s/\\mbacula{}/Bacula Enterprise/g; \ No newline at end of file diff --git a/docs/manuals/version.tex b/docs/manuals/version.tex index 2b9506c2..0b634ad7 100644 --- a/docs/manuals/version.tex +++ b/docs/manuals/version.tex @@ -1 +1 @@ -7.4.8 (10 April 2017) +7.9.0 (08 May 2017)