]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manuals/en/main/newfeatures.tex
More work on 5.2 new features
[bacula/docs] / docs / manuals / en / main / newfeatures.tex
index 609769c77634b2eb8c43a70d96442ef21fe25fe0..5a211bbd7d9cbc33bbf866456c70c70e9f5102cf 100644 (file)
@@ -3,14 +3,226 @@ This chapter presents the new features that have been added to the
 current version of Bacula that is under development. This version will be
 released at some later date, probably near the end of 2010.
 
+\section{Restart Incomplete Job}
+
+
+\medskip
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition and Community Edition.
+
+\section{New Tray Monitor}
+
+As the default Windows tray monitor doesn't work anymore with recent windows
+version, we added a new QT Tray Monitor that is available for both Linux and
+Windows. This new version allows you to run Backup from the menu.
+
+\begin{figure}[htbp]
+  \centering
+  \includegraphics[width=10cm]{\idir tray-monitor}
+  \label{fig:traymonitor}
+  \caption{New tray monitor}
+\end{figure}
+
+\begin{figure}[htbp]
+  \centering
+  \includegraphics[width=10cm]{\idir tray-monitor1}
+  \label{fig:traymonitor1}
+  \caption{Run a Job through the new tray monitor}
+\end{figure}
+
+\medskip
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition and Community Edition.
+
+\section{Purge Migration Job when Completed}
+
+A new directive may be added to the Migration Job definition in the Director
+configuration file to purge the job migrated at the end of a migration.
+
+For example:
+\begin{verbatim}
+Job {
+  Name = "migrate-job"
+  Type = Migrate
+  Level = Full
+  Client = localhost-fd
+  FileSet = "Full Set"
+  Messages = Standard
+  Storage = DiskChanger
+  Pool = Default
+  Selection Type = Job
+  Selection Pattern = ".*Save"
+...
+  Purge Migrated Job = yes
+}
+\end{verbatim}
+
+\medskip
+
+This project was submited by Dunlap Blake, testing and documentation was funded
+by Bacula Systems.
+
+\section{Job Bandwidth Limitation}
+
+A new directive may be added to FileDaemon or Director to allow users to limit
+the bandwidth used by a Job on a Client. It can be set for all Jobs globally, 
+per Directors in the File Daemon configuration, or per Job in the Director
+configuration file.
+
+For example:
+\begin{verbatim}
+FileDaemon {
+  Name = localhost-fd
+  Working Directory = /some/path
+  Pid Directory = /some/path
+  ...
+  Maximum Bandwidth Per Job = 5MB/s
+}
+\end{verbatim}
+
+The above example would cause any jobs running with the FileDaemon to not
+exceed 5MB/s of throughput when sending data to the Storage Daemon.
+
+You can specify the speed parameter in k/s, KB/s, m/s, MB/s.
+
+For example:
+\begin{verbatim}
+Job {
+  Name = locahost-data
+  FileSet = FS_localhost
+  Accurate = yes
+  ...
+  Maximum Bandwidth = 5MB/s
+  ...
+}
+\end{verbatim}
+
+The above example would cause job \texttt{localhost-data} to not exceed 5MB/s
+of throughput when sending data to the Storage Daemon.
+
+A new console command \texttt{setbandwidth} permits to set dynamically the
+maximum throughput of a running Job or for future jobs of a Client.
+
+\begin{verbatim}
+* setbandwidth limit=1000000 jobid=10
+\end{verbatim}
+
+The \texttt{limit} parameter is in KB/s.
+
+\medskip
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition and Community Edition.
+
+\section{Support for MSSQL Block Level Backup}
+
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition.
+
+\section{Support for NDMP protocol}
+
+The new \texttt{ndmp} Plugin is able to backup a NAS through NDMP protocol
+using \textbf{Filer to server} approach, where the Filer is backing up across
+the LAN to your Bacula server.
+
+Accurate option should be turned on in the Job resource.
+\begin{verbatim}
+Job {
+ Accurate = yes
+ FileSet = NDMPFS
+ ...
+}
+
+FileSet {
+ Name = NDMPFS
+ ...
+ Include {
+   Plugin = "ndmp:host=nasbox user=root pass=root file=/vol/vol1"
+ }
+}
+\end{verbatim}
+
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition.
+
+\section{Incremental/Differential Block Level Difference Backup}
+
+The new \texttt{delta} Plugin is able to compute and apply signature-based file
+differences. It can be used to backup only changes in a big binary file like
+Outlook PST, VirtualBox/VmWare images or database files.
+
+It supports both Incremental and Differential backups and stores signatures
+database in the File Daemon working directory. This plugin is available on all
+plateform including Windows 32 and 64bit.
+
+Accurate option should be turned on in the Job resource.
+\begin{verbatim}
+Job {
+ Accurate = yes
+ FileSet = DeltaFS
+ ...
+}
+
+FileSet {
+ Name = DeltaFS
+ ...
+ Include {
+   Plugin = "delta:/home/eric/.VirtualBox/HardDisks/lenny-i386.vdi"
+ }
+}
+\end{verbatim}
+
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition.
+
+\section{Include All Windows Drives in FileSet}
+
+The \texttt{alldrives} Windows Plugin allows you to include all local drives
+with a simple directive. This plugin is available for Windows 64 and 32 bit.
+
+\begin{verbatim}
+FileSet {
+ Name = EverythingFS
+ ...
+ Include {
+   Plugin = "alldrives"
+ }
+}
+\end{verbatim}
+
+You exclude some specific drives with the \texttt{exclude} option.
+
+\begin{verbatim}
+FileSet {
+ Name = EverythingFS
+ ...
+ Include {
+   Plugin = "alldrives: exclude=D,E"
+ }
+}
+\end{verbatim}
+
+
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition.
+
 \section{Changes in Bvfs (Bacula Virtual FileSystem)}
 
 Bat has now a bRestore panel that uses Bvfs to display files and
 directories. It's still experimental.
 
+\begin{figure}[htbp]
+  \centering
+  \includegraphics[width=12cm]{\idir bat-brestore}
+  \label{fig:batbrestore}
+  \caption{Bat Brestore Panel}
+\end{figure}
+
 \texttt{Important}, the Bvfs module is not currently compatible with BaseJobs,
 Copy and Migration jobs.
 
+\medskip
+This project was funded by Bacula Systems.
+
 \subsection*{General notes}
 
 \begin{itemize}
@@ -34,7 +246,7 @@ Bvfs allows you to query the catalog against any combination of jobs. You
 can combine all Jobs and all FileSet for a Client in a single session.
 
 To get all JobId needed to restore a particular job, you can use the
-\texttt{.bvfs_get_jobids} command.
+\texttt{.bvfs\_get\_jobids} command.
 
 \begin{verbatim}
 .bvfs_get_jobids jobid=num [all]
@@ -55,7 +267,7 @@ this client.
 
 \subsection*{Generating Bvfs cache}
 
-The \texttt{.bvfs_update} command computes the directory cache for jobs
+The \texttt{.bvfs\_update} command computes the directory cache for jobs
 specified in argument, or for all jobs if unspecified.
 
 \begin{verbatim}
@@ -72,8 +284,9 @@ You can run the cache update process in a RunScript after the catalog backup.
 \subsection*{Get all versions of a specific file}
 
 Bvfs allows you to find all versions of a specific file for a given Client with
-the \texttt{.bvfs_version} command. To avoid problems with encoding, this function
-uses only PathId and FilenameId. The jobid argument is mandatory but unused.
+the \texttt{.bvfs\_version} command. To avoid problems with encoding, this
+function uses only PathId and FilenameId. The jobid argument is mandatory but
+unused.
 
 \begin{verbatim}
 .bvfs_versions client=filedaemon pathid=num filenameid=num jobid=1
@@ -183,7 +396,7 @@ OK
 \subsection*{Cleanup after restore}
 
 To drop the table used by the restore command, you can use the
-\texttt{.bvfs_cleanup} command.
+\texttt{.bvfs\_cleanup} command.
 
 \begin{verbatim}
 .bvfs_cleanup path=b20001
@@ -237,23 +450,33 @@ Priority:    10
 OK to run? (yes/mod/no):
 \end{verbatim}
 
+\medskip
+This project was funded by Bacula Systems and is available with Bacula
+Enterprise Edition and Community Edition.
+
 \section{Additions to RunScript variables}
-You can have access to JobBytes and JobFiles using %b and %f in your runscript
-command.
+You can have access to JobBytes and JobFiles using \%b and \%f in your runscript
+command. The Client address is now available through \%h.
 
 \begin{verbatim}
-RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%f"
+RunAfterJob = "/bin/echo Job=%j JobBytes=%b JobFiles=%f ClientAddress=%h"
 \end{verbatim}
 
-\section{Changes in drivetype.exe}
+%\section{Changes in drivetype.exe}
+%
+%Now the \texttt{drivetype.exe} program allows you to list all local hard
+%drives. It can help to build dynamic FileSet on Windows.
+%
+%\begin{verbatim}
+%File = "\\|\"c:/program files/bacula/bin32/drivetype\" -l -a"
+%\end{verbatim}
+%
 
-Now the \texttt{drivetype.exe} program allows you to list all local hard
-drives. It can help to build dynamic FileSet on Windows.
+\section{ACL/Extended Attributes}
 
-\begin{verbatim}
-File = "\\|\"c:/program files/bacula/bin32/drivetype\" -l -a"
-\end{verbatim}
+We added support for NFSv4 ACLs on FreeBSD 8.1 and IRIX extended attributes.
 
+This project was funded by Marco van Wieringen.
 
 \section{Additions to the Plugin API}
 The bfuncs structure has been extended to include a number of
@@ -284,8 +507,9 @@ typedef struct s_baculaFuncs {
    bRC (*AddExclude)(bpContext *ctx, const char *file);
    bRC (*AddInclude)(bpContext *ctx, const char *file);
    bRC (*AddIncludeOptions)(bpContext *ctx, const char *opts);
-   bRC (*AddRegexToInclude)(bpContext *ctx, const char *item, int type);
-   bRC (*AddWildToInclude)(bpContext *ctx, const char *item, int type);
+   bRC (*AddRegex)(bpContext *ctx, const char *item, int type);
+   bRC (*AddWild)(bpContext *ctx, const char *item, int type);
+   bRC (*checkChanges)(bpContext *ctx, struct save_pkt *sp);
 
 } bFuncs;
 \end{verbatim}
@@ -373,6 +597,12 @@ typedef struct s_baculaFuncs {
   \item [F] regex applies only to the filename (directory or path stripped).
   \item [D] regex applies only to the directory (path) part of the name.
   \end{description}
+
+\item [checkChanges] call the \texttt{check\_changes()} function in Bacula code
+  that can use Accurate code to compare the file information in argument with
+  the previous file information. The \texttt{delta\_seq} attribute of the
+  \texttt{save\_pkt} will be updated, and the call will return
+  \texttt{bRC\_Seen} if the core code wouldn't decide to backup it.
   
 \end{description}
   
@@ -401,7 +631,10 @@ typedef enum {
   bEventVssRestoreLoadComponentMetadata = 15,
   bEventVssRestoreSetComponentsSelected = 16,
   bEventRestoreObject                   = 17,
-  bEventEndFileSet                      = 18
+  bEventEndFileSet                      = 18,
+  bEventPluginCommand                   = 19,
+  bEventVssBeforeCloseRestore           = 20,
+  bEventVssPrepareSnapshot              = 21
 
 } bEventType;
 \end{verbatim}
@@ -412,9 +645,13 @@ typedef enum {
 
 \item [bEventVssBackupAddComponents] 
 
+\item [bEventVssPrepareSnapshot] is called before creating VSS snapshots, it
+  provides a char[27] table where the plugin can add Windows drives that will
+  be used during the Job. You need to add them without duplicates, and you can
+  use in \texttt{fd\_common.h} \texttt{add\_drive()} and \texttt{copy\_drives()}
+  for this purpose.
 \end{description}
 
-
 \chapter{Release Version 5.0.3}
 
 There are no new features in version 5.0.2.  This version simply fixes a
@@ -546,50 +783,7 @@ Now for the OS part, a Base job will be backed up once, and rather than making
 100 copies of the OS, there will be only one.  If one or more of the systems
 have some files updated, no problem, they will be automatically restored.
 
-A new Job directive \texttt{Base=Jobx, Joby...} permits to specify the list of
-files that will be used during Full backup as base.
-
-\begin{verbatim}
-Job {
-   Name = BackupLinux
-   Level= Base
-   ...
-}
-
-Job {
-   Name = BackupZog4
-   Base = BackupZog4, BackupLinux
-   Accurate = yes
-   ...
-}
-\end{verbatim}
-
-In this example, the job \texttt{BackupZog4} will use the most recent version
-of all files contained in \texttt{BackupZog4} and \texttt{BackupLinux}
-jobs. Base jobs should have run with \texttt{level=Base} to be used.
-
-By default, Bacula will compare permissions bits, user and group fields,
-modification time, size and the checksum of the file to choose between the
-current backup and the BaseJob file list. You can change this behavior with the
-\texttt{BaseJob} FileSet option. This option works like the \texttt{verify=}
-one, that is described in the \ilink{FileSet}{FileSetResource} chapter.
-
-\begin{verbatim}
-FileSet {
-  Name = Full
-  Include = {
-    Options {
-       BaseJob  = pmugcs5
-       Accurate = mcs
-       Verify   = pin5
-    }
-    File = /
-  }
-}
-\end{verbatim}
-
-\textbf{Important note}: The current implementation doesn't permit to scan
-volume with \textbf{bscan}. The result wouldn't permit to restore files easily.
+See the \ilink{Base Job Chapter}{basejobs} for more information.
 
 This project was funded by Bacula Systems.