]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manuals/en/main/newfeatures.tex
Update setbandwidth to specify K bit instead of K bytes
[bacula/docs] / docs / manuals / en / main / newfeatures.tex
index 609769c77634b2eb8c43a70d96442ef21fe25fe0..505782c133407416d2d35fe1b49b9c2e693a9bd5 100644 (file)
-\chapter{New Features in 5.1.x}
+\chapter{Community Bacula New Features in 5.1.x}
 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.
+current Community version of Bacula that is under development. This version will be
+released at some later date, probably near the end of April 2011.
+
+There are additional features (plugins) available in the Enterprise version
+that are described in another chapter. A subscription to Bacula Systems
+is required for the Enterprise version.
+
+\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}
+
+Since the old integrated Windows tray monitor doesn't work anymore with
+recent Windows versions, we have written a new Qt Tray Monitor that is available
+for both Linux and Windows.  This new version allows you to run Backup from
+the tray monitor 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
+the Enterprise Edition and the Community Edition.
+
+\section{Purge Migration Job}
+
+The new {\bf Purge Migration Job} directive may be added to the Migration
+Job definition in the Director's configuration file. When it is enabled 
+the Job that was migrated during a migration will be purged at
+the end of the migration job.
+
+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}
+
+The new {\bf Job Bandwidth Limitation} directive may be added to the File
+daemon's and/or Director's configuration to limit the bandwidth used by a Job
+on a Client.  It can be set in the File daemon's conf file for all Jobs run in
+that File daemon, or it can be set for each Job in the Director's conf 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 from the File daemon 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 in
+the Enterprise Edition and the Community Edition.
+
+
+\section{SQL Catalog Enhancements}
+
+% TODO: Marco can explain more things
+Bacula uses a new catalog backend structure, it allows to build all SQL drivers
+with the same \texttt{./configure ; make} session.
+
+We also added cursor support for PostgreSQL backend, this improves memory usage
+for large installation.
 
 \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 +171,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 +192,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 +209,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 +321,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 +375,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 +432,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 +522,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 +556,10 @@ typedef enum {
   bEventVssRestoreLoadComponentMetadata = 15,
   bEventVssRestoreSetComponentsSelected = 16,
   bEventRestoreObject                   = 17,
-  bEventEndFileSet                      = 18
+  bEventEndFileSet                      = 18,
+  bEventPluginCommand                   = 19,
+  bEventVssBeforeCloseRestore           = 20,
+  bEventVssPrepareSnapshot              = 21
 
 } bEventType;
 \end{verbatim}
@@ -412,9 +570,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 +708,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.