\chapter{Nuevas funcionalidades Bacula Enterprise}
Esta capítulo muestra las nuevas funcionalidades que se adicionarán a la 
versión actual de Bacula Enterprise, que está en desarrollo. La misma será 
liberada en fechas posteriores, probablemente a fines de Junio de 2011. 
Estas características únicamente están disponibles para quienes poseen 
una suscripción con Bacula Systems.

Adicional a las funcionalidades indicadas en este capítulo, también 
se incluyen las de la Comunidad, descritas en el capítulo Nuevas Funcionalidades 
para la Comunidad.

\section{Reiniciar un job incompleto}

\medskip
Este proyecto fue propuesto por Bacula Systems y está disponible 
con Bacula Enterprise Edition.

\section{Soporte para respaldos de MSSQL a nivel de bloques}

Este proyecto fue propuesto por Bacula Systems y está disponible 
con Bacula Enterprise Edition.

\section{Soporte para el protocolo NDMP}

El nuevo plugin \texttt{ndmp} permite realizar respaldos a una NAS utilizando 
el protocolo NDMP con el uso del enfoque \textbf{Filer to server}, donde 
Filer indica la copia que se realiza a través de la LAN al servidor de Bacula.

La opción Accurate debe estar activa en el recurso de Job.
\begin{verbatim}
Job {
 Accurate = yes
 FileSet = NDMPFS
 ...
}

FileSet {
 Name = NDMPFS
 ...
 Include {
   Plugin = "ndmp:host=nasbox user=root pass=root file=/vol/vol1"
 }
}
\end{verbatim}

Este proyecto fue desarrollado por Bacula Systems y está disponible 
con Bacula Enterprise Edition.

\section{Limitación de ancho de banda por job}

La nueva directiva {\bf Job Bandwidth Limitation} se puede añadir a la configuración 
del director o la del file daemon, para limitar el ancho de banda utilizado por un 
job o un cliente. Se puede definir en el archivo de configuración del file daemon 
para todos los jobs que corren en dicho equipo, o en el archivo de configuración del 
director, en cuyo caso pueden aplicarse definiciones particulares por job.

Por ejemplo:
\begin{verbatim}
FileDaemon {
  Name = localhost-fd
  Working Directory = /some/path
  Pid Directory = /some/path
  ...
  Maximum Bandwidth Per Job = 5Mb/s
}
\end{verbatim}

La configuración anterior hará que cualquier job que se ejecuten para este cliente 
(file daemon) no excedan de 5 Mb/s de rendimiento cuando envíen la data al demonio 
de almacenamiento (storage daemon).

Se puede indicar el parámetro de velocidad en k/s, Kb/s, m/s, Mb/s.

Por ejemplo:
\begin{verbatim}
Job {
  Name = locahost-data
  FileSet = FS_localhost
  Accurate = yes
  ...
  Maximum Bandwidth = 5Mb/s
  ...
}
\end{verbatim}

Este ejemplo, provocaría que el job \texttt{localhost-data} no exceda los 5 Mb/s 
de rendimiento para el envío de la data desde del demonio del cliente al demonio de almacenamiento.

Un nuevo comando de consola \texttt{setbandwidth}, permite definir de manera dinámica el 
máximo rendimiento para un job en ejecución o futuros jobs para un cliente particular.

\begin{verbatim}
* setbandwidth limit=1000000 jobid=10
\end{verbatim}

El parámetro \texttt{limit} está en Kb/s.

\medskip
Este proyecto fue desarrollado por Bacula Systems y está disponible 
con Bacula Enterprise Edition.

\section{Diferenciación de respaldos a nivel de bloques para backups incrementales y diferenciales}

El nuevo plugin \texttt{delta} es capaz de calcular y aplicar firmas basadas en las 
diferencias de archivos. Se puede utilizar para respaldar únicamente los cambios 
hechos a un archivo binario, tales como PST de Outlook, imágenes de 
VirtualBox/Vmware o archivos de base de datos.

Se puede utilizar en respaldos incrementales y diferenciales y almacena las bases de 
datos de firmas en el directorio de trabajo del cliente (file daemon). Este plugin 
está disponible en todas las plataformas, incluyendo Windows 32 y 64 bits.

La opción Accurate debe estar activa en el recurso de Job.
\begin{verbatim}
Job {
 Accurate = yes
 FileSet = DeltaFS
 ...
}

FileSet {
 Name = DeltaFS
 ...
 Include {
   Plugin = "delta:/home/eric/.VirtualBox/HardDisks/lenny-i386.vdi"
 }
}
\end{verbatim}

Nota: las funcionalidades básicas para implementar esta funcionalidad se incluyen 
en la interfaz de plugin para la comunidad, así como en el código básico de la comunidad.

Este proyecto fue desarrollado por Bacula Systems y está disponible con Bacula 
Enterprise Edition.

\section{Incluir todos las unidades de Windows en el FileSet}

El plugin de Windows \texttt{alldrives} permite que se puedan incluir todas las unidades 
locales con una directiva simple. Dicho plugin está disponible para Windows 32 y 64 bits.

\begin{verbatim}
FileSet {
 Name = EverythingFS
 ...
 Include {
   Plugin = "alldrives"
 }
}
\end{verbatim}

Se pueden excluir algunas unidades específicas con la opción \texttt{exclude}.

\begin{verbatim}
FileSet {
 Name = EverythingFS
 ...
 Include {
   Plugin = "alldrives: exclude=D,E"
 }
}
\end{verbatim}


Este proyecto fue desarrollado por Bacula Systems y está disponible con Bacula 
Enterprise Edition.


\section{Siempre respaldar un archivo}

Cuando el modo Accurate está activo, se puede indicar si el elemento a respaldar 
siempre será un archivo, con la siguiente opción:

\begin{verbatim}
Job {
   Name = ...
   FileSet = FS_Example
   Accurate = yes
   ...
}

FileSet {
 Name = FS_Example
 Include {
   Options {
     Accurate = A
   }
   File = /file
   File = /file2
 }
 ...
}
\end{verbatim}

Este proyecto fue desarrollado por Bacula Systems y basado en una idea de James Harper, 
y está disponible con Bacula Enterprise Edition.

\section{Estableciendo el modo Accurate al momento de la corrida}

Ahora se puede especifar el modo Accurate en el comando \texttt{run} y el recurso Schedule.

\begin{verbatim}
* run accurate=yes job=Test
\end{verbatim}

\begin{verbatim}
Schedule {
  Name = WeeklyCycle
  Run = Full 1st sun at 23:05
  Run = Differential accurate=yes 2nd-5th sun at 23:05
  Run = Incremental  accurate=no  mon-sat at 23:05
}
\end{verbatim}

Esto permite ahorrar memoria y recursos de CPU en el servidor donde está el catálogo, 
en algunos casos.

Estas opciones avanzadas de entonación están disponibles con Bacula Enterprise Edition.
