X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fprojects;h=4342251e4970f9ab3614b1ff7d66d8cb8b2b8196;hb=9ad79153e2b3aa7903675ce5c8757d1217fb5b56;hp=24c6573c0854110c3fb3830a880102dcb32f374c;hpb=e052afc3fb61a02de0e7284927852e4dc69510f2;p=bacula%2Fbacula diff --git a/bacula/projects b/bacula/projects index 24c6573c08..4342251e49 100644 --- a/bacula/projects +++ b/bacula/projects @@ -1,175 +1,241 @@ Projects: Bacula Projects Roadmap - Status updated 26 January 2007 - After re-ordering in vote priority - -Items Completed: -Item: 18 Quick release of FD-SD connection after backup. -Item: 40 Include JobID in spool file name -Item: 25 Implement huge exclude list support using dlist + Status updated 14 Jun 2009 Summary: -Item: 1 Accurate restoration of renamed/deleted files -Item: 2 Implement a Bacula GUI/management tool. -Item: 3 Allow FD to initiate a backup -Item: 4 Merge multiple backups (Synthetic Backup or Consolidation). -Item: 5 Deletion of Disk-Based Bacula Volumes -Item: 6 Implement Base jobs. -Item: 7 Implement creation and maintenance of copy pools -Item: 8 Directive/mode to backup only file changes, not entire file -Item: 9 Implement a server-side compression feature -Item: 10 Improve Bacula's tape and drive usage and cleaning management. -Item: 11 Allow skipping execution of Jobs -Item: 12 Add a scheduling syntax that permits weekly rotations -Item: 13 Archival (removal) of User Files to Tape -Item: 14 Cause daemons to use a specific IP address to source communications -Item: 15 Multiple threads in file daemon for the same job -Item: 16 Add Plug-ins to the FileSet Include statements. -Item: 17 Restore only file attributes (permissions, ACL, owner, group...) -Item: 18* Quick release of FD-SD connection after backup. -Item: 19 Implement a Python interface to the Bacula catalog. -Item: 20 Archive data -Item: 21 Split documentation -Item: 22 Implement support for stacking arbitrary stream filters, sinks. -Item: 23 Implement from-client and to-client on restore command line. -Item: 24 Add an override in Schedule for Pools based on backup types. -Item: 25* Implement huge exclude list support using hashing. -Item: 26 Implement more Python events in Bacula. -Item: 27 Incorporation of XACML2/SAML2 parsing -Item: 28 Filesystem watch triggered backup. -Item: 29 Allow inclusion/exclusion of files in a fileset by creation/mod times -Item: 30 Tray monitor window cleanups -Item: 31 Implement multiple numeric backup levels as supported by dump -Item: 32 Automatic promotion of backup levels -Item: 33 Clustered file-daemons -Item: 34 Commercial database support -Item: 35 Automatic disabling of devices -Item: 36 An option to operate on all pools with update vol parameters -Item: 37 Add an item to the restore option where you can select a pool -Item: 38 Include timestamp of job launch in "stat clients" output -Item: 39 Message mailing based on backup types -Item: 40* Include JobID in spool file name - - -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 - - What: When restoring a fileset for a specified date (including "most - recent"), Bacula should give you exactly the files and directories - that existed at the time of the last backup prior to that date. - - Currently this only works if the last backup was a Full backup. - When the last backup was Incremental/Differential, files and - directories that have been renamed or deleted since the last Full - backup are not currently restored correctly. Ditto for files with - extra/fewer hard links than at the time of the last Full backup. - - Why: Incremental/Differential would be much more useful if this worked. - - Notes: Merging of multiple backups into a single one seems to - rely on this working, otherwise the merged backups will not be - truly equivalent to a Full backup. - - Kern: notes shortened. This can be done without the need for - inodes. It is essentially the same as the current Verify job, - but one additional database record must be written, which does - not need any database change. - - Kern: see if we can correct restoration of directories if - replace=ifnewer is set. Currently, if the directory does not - exist, a "dummy" directory is created, then when all the files - are updated, the dummy directory is newer so the real values - are not updated. - -Item 2: Implement a Bacula GUI/management tool. - Origin: Kern - Date: 28 October 2005 - Status: In progress - - What: Implement a Bacula console, and management tools - probably using Qt3 and C++. - - Why: Don't we already have a wxWidgets GUI? Yes, but - it is written in C++ and changes to the user interface - must be hand tailored using C++ code. By developing - the user interface using Qt designer, the interface - can be very easily updated and most of the new Python - code will be automatically created. The user interface - changes become very simple, and only the new features - must be implement. In addition, the code will be in - Python, which will give many more users easy (or easier) - access to making additions or modifications. - - Notes: There is a partial Python-GTK implementation - Lucas Di Pentima but - it is no longer being developed. - -Item 3: Allow FD to initiate a backup - Origin: Frank Volf (frank at deze dot org) - Date: 17 November 2005 +* => item complete + + Item 1: Ability to restart failed jobs +*Item 2: 'restore' menu: enter a JobId, automatically select dependents + Item 3: Scheduling syntax that permits more flexibility and options + Item 4: Data encryption on storage daemon +*Item 5: Deletion of disk Volumes when pruned (partial -- truncate when pruned) +*Item 6: Implement Base jobs + Item 7: Add ability to Verify any specified Job. + Item 8: Improve Bacula's tape and drive usage and cleaning management + Item 9: Allow FD to initiate a backup +*Item 10: Restore from volumes on multiple storage daemons + Item 11: Implement Storage daemon compression + Item 12: Reduction of communications bandwidth for a backup + Item 13: Ability to reconnect a disconnected comm line + Item 14: Start spooling even when waiting on tape +*Item 15: Enable/disable compression depending on storage device (disk/tape) + Item 16: Include all conf files in specified directory + Item 17: Multiple threads in file daemon for the same job + Item 18: Possibilty to schedule Jobs on last Friday of the month + Item 19: Include timestamp of job launch in "stat clients" output +*Item 20: Cause daemons to use a specific IP address to source communications + Item 21: Message mailing based on backup types + Item 22: Ability to import/export Bacula database entities +*Item 23: "Maximum Concurrent Jobs" for drives when used with changer device + Item 24: Implementation of running Job speed limit. + Item 25: Add an override in Schedule for Pools based on backup types + Item 26: Automatic promotion of backup levels based on backup size + Item 27: Allow inclusion/exclusion of files in a fileset by creation/mod times + Item 28: Archival (removal) of User Files to Tape + Item 29: An option to operate on all pools with update vol parameters + Item 30: Automatic disabling of devices +*Item 31: List InChanger flag when doing restore. + Item 32: Ability to defer Batch Insert to a later time + Item 33: Add MaxVolumeSize/MaxVolumeBytes statement to Storage resource + Item 34: Enable persistent naming/number of SQL queries +*Item 35: Port bat to Win32 + Item 36: Bacula Dir, FD and SD to support proxies + Item 37: Add Minumum Spool Size directive + Item 38: Backup and Restore of Windows Encrypted Files using Win raw encryption + Item 39: Implement an interface between Bacula and Amazon's S3. + Item 40: Convert Bacula existing tray monitor on Windows to a stand alone program + +Item 1: Ability to restart failed jobs + Date: 26 April 2009 + Origin: Kern/Eric + Status: + + What: Often jobs fail because of a communications line drop or max run time, + cancel, or some other non-critical problem. Currrently any data + saved is lost. This implementation should modify the Storage daemon + so that it saves all the files that it knows are completely backed + up to the Volume + + The jobs should then be marked as incomplete and a subsequent + Incremental Accurate backup will then take into account all the + previously saved job. + + Why: Avoids backuping data already saved. + + Notes: Requires Accurate to restart correctly. Must completed have a minimum + volume of data or files stored on Volume before enabling. + + +Item 2: 'restore' menu: enter a JobId, automatically select dependents +Origin: Graham Keeling (graham@equiinet.com) +Date: 13 March 2009 +Status: Done in 3.0.2 + +What: Add to the bconsole 'restore' menu the ability to select a job + by JobId, and have bacula automatically select all the + dependent jobs. + + Why: Currently, you either have to... + + a) laboriously type in a date that is greater than the date of the + backup that you want and is less than the subsequent backup (bacula + then figures out the dependent jobs), or + b) manually figure out all the JobIds that you want and laboriously + type them all in. It would be extremely useful (in a programmatical + sense, as well as for humans) to be able to just give it a single JobId + and let bacula do the hard work (work that it already knows how to do). + + Notes (Kern): I think this should either be modified to have Bacula + print a list of dates that the user can choose from as is done in + bwx-console and bat or the name of this command must be carefully + chosen so that the user clearly understands that the JobId is being + used to specify what Job and the date to which he wishes the restore to + happen. + + +Item 3: Scheduling syntax that permits more flexibility and options + Date: 15 December 2006 + Origin: Gregory Brauer (greg at wildbrain dot com) and + Florian Schnabel Status: - What: Provide some means, possibly by a restricted console that - allows a FD to initiate a backup, and that uses the connection - established by the FD to the Director for the backup so that - a Director that is firewalled can do the backup. - - Why: Makes backup of laptops much easier. - - -Item 4: Merge multiple backups (Synthetic Backup or Consolidation). - Origin: Marc Cousin and Eric Bollengier - Date: 15 November 2005 - Status: Waiting implementation. Depends on first implementing - project Item 2 (Migration) which is now done. - - What: A merged backup is a backup made without connecting to the Client. - It would be a Merge of existing backups into a single backup. - In effect, it is like a restore but to the backup medium. - - For instance, say that last Sunday we made a full backup. Then - all week long, we created incremental backups, in order to do - them fast. Now comes Sunday again, and we need another full. - The merged backup makes it possible to do instead an incremental - backup (during the night for instance), and then create a merged - backup during the day, by using the full and incrementals from - the week. The merged backup will be exactly like a full made - Sunday night on the tape, but the production interruption on the - Client will be minimal, as the Client will only have to send - incrementals. - - In fact, if it's done correctly, you could merge all the - Incrementals into single Incremental, or all the Incrementals - and the last Differential into a new Differential, or the Full, - last differential and all the Incrementals into a new Full - backup. And there is no need to involve the Client. - - Why: The benefit is that : - - the Client just does an incremental ; - - the merged backup on tape is just as a single full backup, - and can be restored very fast. - - This is also a way of reducing the backup data since the old - data can then be pruned (or not) from the catalog, possibly - allowing older volumes to be recycled - -Item 5: Deletion of Disk-Based Bacula Volumes - Date: Nov 25, 2005 + What: Currently, Bacula only understands how to deal with weeks of the + month or weeks of the year in schedules. This makes it impossible + to do a true weekly rotation of tapes. There will always be a + discontinuity that will require disruptive manual intervention at + least monthly or yearly because week boundaries never align with + month or year boundaries. + + A solution would be to add a new syntax that defines (at least) + a start timestamp, and repetition period. + + An easy option to skip a certain job on a certain date. + + + Why: Rotated backups done at weekly intervals are useful, and Bacula + cannot currently do them without extensive hacking. + + You could then easily skip tape backups on holidays. Especially + if you got no autochanger and can only fit one backup on a tape + that would be really handy, other jobs could proceed normally + and you won't get errors that way. + + + Notes: Here is an example syntax showing a 3-week rotation where full + Backups would be performed every week on Saturday, and an + incremental would be performed every week on Tuesday. Each + set of tapes could be removed from the loader for the following + two cycles before coming back and being reused on the third + week. Since the execution times are determined by intervals + from a given point in time, there will never be any issues with + having to adjust to any sort of arbitrary time boundary. In + the example provided, I even define the starting schedule + as crossing both a year and a month boundary, but the run times + would be based on the "Repeat" value and would therefore happen + weekly as desired. + + + Schedule { + Name = "Week 1 Rotation" + #Saturday. Would run Dec 30, Jan 20, Feb 10, etc. + Run { + Options { + Type = Full + Start = 2006-12-30 01:00 + Repeat = 3w + } + } + #Tuesday. Would run Jan 2, Jan 23, Feb 13, etc. + Run { + Options { + Type = Incremental + Start = 2007-01-02 01:00 + Repeat = 3w + } + } + } + + Schedule { + Name = "Week 2 Rotation" + #Saturday. Would run Jan 6, Jan 27, Feb 17, etc. + Run { + Options { + Type = Full + Start = 2007-01-06 01:00 + Repeat = 3w + } + } + #Tuesday. Would run Jan 9, Jan 30, Feb 20, etc. + Run { + Options { + Type = Incremental + Start = 2007-01-09 01:00 + Repeat = 3w + } + } + } + + Schedule { + Name = "Week 3 Rotation" + #Saturday. Would run Jan 13, Feb 3, Feb 24, etc. + Run { + Options { + Type = Full + Start = 2007-01-13 01:00 + Repeat = 3w + } + } + #Tuesday. Would run Jan 16, Feb 6, Feb 27, etc. + Run { + Options { + Type = Incremental + Start = 2007-01-16 01:00 + Repeat = 3w + } + } + } + + Notes: Kern: I have merged the previously separate project of skipping + jobs (via Schedule syntax) into this. + + +Item 4: Data encryption on storage daemon + Origin: Tobias Barth + Date: 04 February 2009 + Status: new + + What: The storage demon should be able to do the data encryption that can + currently be done by the file daemon. + + Why: This would have 2 advantages: + 1) one could encrypt the data of unencrypted tapes by doing a + migration job + 2) the storage daemon would be the only machine that would have + to keep the encryption keys. + + Notes from Landon: + As an addendum to the feature request, here are some crypto + implementation details I wrote up regarding SD-encryption back in Jan + 2008: + http://www.mail-archive.com/bacula-users@lists.sourceforge.net/msg28860.html + + +Item 5: Deletion of disk Volumes when pruned + Date: Nov 25, 2005 Origin: Ross Boylan (edited by Kern) - Status: + Status: Truncate operation implemented in 3.1.4 - What: Provide a way for Bacula to automatically remove Volumes + What: Provide a way for Bacula to automatically remove Volumes from the filesystem, or optionally to truncate them. Obviously, the Volume must be pruned prior removal. - Why: This would allow users more control over their Volumes and + Why: This would allow users more control over their Volumes and prevent disk based volumes from consuming too much space. - Notes: The following two directives might do the trick: + Notes: The following two directives might do the trick: Volume Data Retention =