X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fprojects;h=c007947ba051a3acc9f5fa9a96b99e42c237e436;hb=5f07e231e263958d8486a3291b0a1c0ccd3634a9;hp=fca2ed9e96f22e689cfdbb4e2036f8e7ff95eb46;hpb=9a656a099eb63f7fde30c28e543c51b704208e80;p=bacula%2Fbacula diff --git a/bacula/projects b/bacula/projects index fca2ed9e96..c007947ba0 100644 --- a/bacula/projects +++ b/bacula/projects @@ -1,9 +1,7 @@ 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: @@ -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) - 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 @@ -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 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 @@ -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 - 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. @@ -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. - + 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 @@ -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 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 @@ -1110,6 +1155,146 @@ Item h10: Clustered file-daemons 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 + 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 + 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 + + 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 ================================ @@ -1117,7 +1302,7 @@ Item n: make changing "spooldata=yes|no" possible for manual/interactive jobs Origin: Marc Schiffbauer 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.