]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/projects
Get correct selection when clicking a dir in bat restore
[bacula/bacula] / bacula / projects
index fca2ed9e96f22e689cfdbb4e2036f8e7ff95eb46..c007947ba051a3acc9f5fa9a96b99e42c237e436 100644 (file)
@@ -1,9 +1,7 @@
                 
 Projects:
                      Bacula Projects Roadmap 
                 
 Projects:
                      Bacula Projects Roadmap 
-                    Status updated 18 August 2007
-                  After removing items completed in version  
-                       2.2.0 and renumbering
+                    Status updated 19 March 2008
 
 Items Completed:
 
 
 Items Completed:
 
@@ -38,7 +36,7 @@ Item 25:  Archival (removal) of User Files to Tape
 Item  1:  Accurate restoration of renamed/deleted files
   Date:   28 November 2005
   Origin: Martin Simmons (martin at lispworks dot com)
 Item  1:  Accurate restoration of renamed/deleted files
   Date:   28 November 2005
   Origin: Martin Simmons (martin at lispworks dot com)
-  Status: Robert Nelson will implement this
+  Status: 
 
   What:   When restoring a fileset for a specified date (including "most
           recent"), Bacula should give you exactly the files and directories
 
   What:   When restoring a fileset for a specified date (including "most
           recent"), Bacula should give you exactly the files and directories
@@ -260,8 +258,54 @@ Item  8:  Implement Copy pools
   Notes:  I would commit some of my developers' time if we can agree
           on the design and behavior. 
 
   Notes:  I would commit some of my developers' time if we can agree
           on the design and behavior. 
 
-  Notes:  I get the idea, but would like more details on the precise
-          syntax of the necessary directives and what they would do.
+  Notes:  Additional notes from David:
+          I think there's two areas where new configuration would be needed. 
+
+          1) Identify a "SD mux" SD (specify it in the config just like a normal
+          SD. The SD configuration would need something like a "Daemon Type =
+          Normal/Mux" keyword to identify it as a multiplexor. (The director code
+          would need modification to add the ability to do the multiple session
+          setup, but the impact of the change would be new code that was invoked
+          only when a SDmux is needed).
+
+          2) Additional keywords in the Pool definition to identify the need to
+          create copies. Each pool would acquire a Copypool= attribute (may be
+          repeated to generate more than one copy. 3 is about the practical limit,
+          but no point in hardcoding that). 
+
+          Example:
+          Pool {
+            Name = Primary
+            Pool Type = Backup
+            Copypool = Copy1
+            Copypool = OffsiteCopy2
+          }
+
+          where Copy1 and OffsiteCopy2 are valid pools.
+
+          In terms of function (shorthand):
+          Backup job X is defined normally, specifying pool Primary as the pool to
+          use. Job gets scheduled, and Bacula starts scheduling resources.
+          Scheduler looks at pool definition for Primary, sees that there are a
+          non-zero number of copypool keywords. The director then connects to an
+          available SDmux, passes it the pool ids for Primary, Copy1, and
+          OffsiteCopy2 and waits. SDmux then goes out and reserves devices and
+          volumes in the normal SDs that serve Primary, Copy1 and OffsiteCopy2.
+          When all are ready, the SDmux signals ready back to the director, and
+          the FD is given the address of the SDmux as the SD to communicate with.
+          Backup proceeds normally, with the SDmux duplicating blocks to each
+          connected normal SD, and returning ready when all defined copies have
+          been written. At EOJ, FD shuts down connection with SDmux, which closes
+          down the normal SD connections and goes back to an idle state. 
+          SDmux does not update database; normal SDs do (noting that file is
+          present on each volume it has been written to). 
+
+          On restore, director looks for the volume containing the file in pool
+          Primary first, then Copy1, then OffsiteCopy2. If the volume holding the
+          file in pool Primary is missing or busy (being written in another job,
+          etc), or one of the volumes from the copypool list that have the file in
+          question is already mounted and ready for some reason, use it to do the
+          restore, else mount one of the copypool volumes and proceed.
 
 
 Item  9:  Scheduling syntax that permits more flexibility and options
 
 
 Item  9:  Scheduling syntax that permits more flexibility and options
@@ -451,7 +495,7 @@ Item 12:  Add Plug-ins to the FileSet Include statements.
 Item 13:  Restore only file attributes (permissions, ACL, owner, group...)
   Origin: Eric Bollengier
   Date:   30/12/2006
 Item 13:  Restore only file attributes (permissions, ACL, owner, group...)
   Origin: Eric Bollengier
   Date:   30/12/2006
-  Status:
+  Status: Implemented by Eric, see project-restore-attributes-only.patch
 
   What:   The goal of this project is to be able to restore only rights
           and attributes of files without crushing them.
 
   What:   The goal of this project is to be able to restore only rights
           and attributes of files without crushing them.
@@ -467,7 +511,8 @@ Item 13:  Restore only file attributes (permissions, ACL, owner, group...)
           If the file isn't here, we can create an empty one and apply
           rights or do nothing.
 
           If the file isn't here, we can create an empty one and apply
           rights or do nothing.
 
-
+          This will not work with win32 stream, because it seems that we 
+          can't split the WriteBackup stream to get only ACL and ownerchip.
 
 Item 14:  Add an override in Schedule for Pools based on backup types
 Date:     19 Jan 2005
 
 Item 14:  Add an override in Schedule for Pools based on backup types
 Date:     19 Jan 2005
@@ -633,7 +678,7 @@ Item 19:  Automatic disabling of devices
 Item 20:  An option to operate on all pools with update vol parameters
   Origin: Dmitriy Pinchukov <absh@bossdev.kiev.ua>
    Date:  16 August 2006
 Item 20:  An option to operate on all pools with update vol parameters
   Origin: Dmitriy Pinchukov <absh@bossdev.kiev.ua>
    Date:  16 August 2006
-  Status:
+  Status: Patch made by  Nigel Stepp
 
    What:  When I do update -> Volume parameters -> All Volumes
           from Pool, then I have to select pools one by one.  I'd like
 
    What:  When I do update -> Volume parameters -> All Volumes
           from Pool, then I have to select pools one by one.  I'd like
@@ -1110,6 +1155,146 @@ Item h10: Clustered file-daemons
           implement it. A lot more design detail should be presented
           before voting on this project.
 
           implement it. A lot more design detail should be presented
           before voting on this project.
 
+========= Added since the last vote =================
+
+Item: Store and restore extended attributes, especially selinux file contexts
+   Date: 28 December 2007
+   Origin: Frank Sweetser <fs@wpi.edu>
+   What: The ability to store and restore extended attributes on
+         filesystems that support them, such as ext3.
+
+   Why: Security Enhanced Linux (SELinux) enabled systems make extensive
+        use of extended attributes.  In addition to the standard user,
+        group, and permission, each file has an associated SELinux context
+        stored as an extended attribute.  This context is used to define
+        which operations a given program is permitted to perform on that
+        file.  Storing contexts on an SELinux system is as critical as
+        storing ownership and permissions.  In the case of a full system
+        restore, the system will not even be able to boot until all
+        critical system files have been properly relabeled.
+
+ Notes: Fedora ships with a version of tar that has been patched to handle
+        extended attributes.  The patch has not been integrated upstream
+        yet, so could serve as a good starting point.
+
+        http://linux.die.net/man/2/getxattr
+        http://linux.die.net/man/2/setxattr
+        http://linux.die.net/man/2/listxattr
+        ===
+        http://linux.die.net/man/3/getfilecon
+        http://linux.die.net/man/3/setfilecon
+
+Item 1:   enable/disable compression depending on storage device (disk/tape)
+  Origin: Ralf Gross ralf-lists@ralfgross.de
+  Date:   2008-01-11
+  Status: Initial Request
+
+  What:   Add a new option to the storage resource of the director. Depending
+          on this option, compression will be enabled/disabled for a device.
+
+  Why:    If different devices (disks/tapes) are used for full/diff/incr
+          backups, software compression will be enabled for all backups
+          because of the FileSet compression option. For backup to tapes wich
+          are able to do hardware compression this is not desired.
+          
+
+  Notes: http://news.gmane.org/gmane.comp.sysutils.backup.bacula.devel/cutoff=11124
+         It must be clear to the user, that the FileSet compression option must
+         still be enabled use compression for a backup job at all. Thus a name
+         for the new option in the director must be well-defined.
+
+  Notes: KES I think the Storage definition should probably override what
+         is in the Job definition or vice-versa, but in any case, it must
+         be well defined.
+
+
+Item 1: Backup and Restore of Windows Encrypted Files through raw encryption functions
+
+  Origin: Michael Mohr, SAG  Mohr.External@infineon.com
+  
+  Date:   22 February 2008
+  
+  Status:
+
+  What:   Make it possible to backup and restore Encypted Files from and
+          to Windows systems without the need to decrypt it by using the raw encryption
+          functions API 
+          (see: http://msdn2.microsoft.com/en-us/library/aa363783.aspx)
+
+          that is provided for that reason by Microsoft.
+          If a file ist encrypted could be examined by evaluating the 
+          FILE_ATTRIBUTE_ENCRYTED flag of the GetFileAttributes
+          function.
+
+  Why:    Without the usage of this interface the fd-daemon running
+          under the system account can't read encypted Files because
+          the key needed for the decrytion is missed by them. As a result 
+          actually encrypted files are not backed up
+          by bacula and also no error is shown while missing these files.
+
+  Notes:  ./.
+
+   Item 1: Possibilty to schedule Jobs on last Friday of the month
+   Origin: Carsten Menke <bootsy52 at gmx dot net>
+   Date:   02 March 2008
+   Status:
+
+   What:   Currently if you want to run your monthly Backups on the last
+           Friday of each month this is only possible with workarounds (e.g 
+           scripting) (As some months got 4 Fridays and some got 5 Fridays)
+           The same is true if you plan to run your yearly Backups on the last 
+           Friday of the year. It would be nice to have the ability to use the builtin 
+           scheduler for this.
+
+   Why:    In many companies the last working day of the week is Friday (or 
+           Saturday), so to get the most data of the month onto the monthly tape, the 
+           employees are advised to insert the tape for the monthly backups on the last 
+           friday of the month.
+
+   Notes:  To give this a complete functionality it would be nice if the "first" 
+           and "last" Keywords could be implemented in the scheduler, so it is also 
+           possible to run monthy backups at the first friday of the month and many things 
+           more. So if the syntax would expand to this {first|last} {Month|Week|Day|Mo-Fri} 
+           of the {Year|Month|Week} you would be able to run really flexible jobs.
+
+           To got a certain Job run on the last Friday of the Month for example one could 
+           then write
+
+              Run = pool=Monthly last Fri of the Month at 23:50
+
+              ## Yearly Backup
+
+              Run = pool=Yearly last Fri of the Year at 23:50
+
+              ## Certain Jobs the last Week of a Month
+
+              Run = pool=LastWeek last Week of the Month at 23:50
+
+              ## Monthly Backup on the last day of the month
+
+              Run = pool=Monthly last Day of the Month at 23:50
+
+   Date: 20 March 2008
+
+   Origin: Frank Sweetser <fs@wpi.edu>
+
+   What: Add a new SD directive, "minimum spool size" (or similar).  This
+         directive would specify a minimum level of free space available for
+         spooling.  If the unused spool space is less than this level, any new
+         spooling requests would be blocked as if the "maximum spool size"
+         threshold had bee reached.  Already spooling jobs would be unaffected
+         by this directive.
+
+   Why: I've been bitten by this scenario a couple of times:
+
+        Assume a maximum spool size of 100M. Two concurrent jobs, A and B, are
+        both running.  Due to timing quirks and previously running jobs, job A
+        has used 99.9M of space in the spool directory.  While A is busy
+        despooling to disk, B is happily using the remaining 0.1M of spool
+        space.  This ends up in a spool/despool sequence every 0.1M of data.
+        In addition to fragmenting the data on the volume far more than was
+        necessary, in larger data sets (ie, tens or hundreds of gigabytes) it
+        can easily produce multi-megabyte report emails!
 
 ========== Already implemented ================================
 
 
 ========== Already implemented ================================
 
@@ -1117,7 +1302,7 @@ Item  n:  make changing "spooldata=yes|no" possible for
           manual/interactive jobs
   Origin: Marc Schiffbauer <marc@schiffbauer.net>
   Date:   12 April 2007)
           manual/interactive jobs
   Origin: Marc Schiffbauer <marc@schiffbauer.net>
   Date:   12 April 2007)
-  Status: Already implemented by Eric
+  Status: 
 
   What:   Make it possible to modify the spooldata option
           for a job when being run from within the console.
 
   What:   Make it possible to modify the spooldata option
           for a job when being run from within the console.