X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fprojects;h=c007947ba051a3acc9f5fa9a96b99e42c237e436;hb=b9958fb15c49eb66e6d2029fcfa2232717b22d64;hp=74cb82fa0b8fc297bf88c9fecaef7b01e3165118;hpb=f08636c7319483dccc2fa337e924182ffca88797;p=bacula%2Fbacula diff --git a/bacula/projects b/bacula/projects index 74cb82fa0b..c007947ba0 100644 --- a/bacula/projects +++ b/bacula/projects @@ -1,108 +1,187 @@ Projects: Bacula Projects Roadmap - 24 November 2005 + Status updated 19 March 2008 + +Items Completed: + +Summary: +Item 1: Accurate restoration of renamed/deleted files +Item 2: Allow FD to initiate a backup +Item 3: Merge multiple backups (Synthetic Backup or Consolidation) +Item 4: Implement Catalog directive for Pool resource in Director +Item 5: Add an item to the restore option where you can select a Pool +Item 6: Deletion of disk Volumes when pruned +Item 7: Implement Base jobs +Item 8: Implement Copy pools +Item 9: Scheduling syntax that permits more flexibility and options +Item 10: Message mailing based on backup types +Item 11: Cause daemons to use a specific IP address to source communications +Item 12: Add Plug-ins to the FileSet Include statements. +Item 13: Restore only file attributes (permissions, ACL, owner, group...) +Item 14: Add an override in Schedule for Pools based on backup types +Item 15: Implement more Python events and functions +Item 16: Allow inclusion/exclusion of files in a fileset by creation/mod times +Item 17: Automatic promotion of backup levels based on backup size +Item 18: Better control over Job execution +Item 19: Automatic disabling of devices +Item 20: An option to operate on all pools with update vol parameters +Item 21: Include timestamp of job launch in "stat clients" output +Item 22: Implement Storage daemon compression +Item 23: Improve Bacula's tape and drive usage and cleaning management +Item 24: Multiple threads in file daemon for the same job +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: -Below, you will find more information on future projects: + 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. -Item 1: Implement a Migration job type that will move the job - data from one device to another. - Origin: Sponsored by Riege Sofware International GmbH. Contact: - Daniel Holtkamp - Date: 28 October 2005 - Status: Partially coded in 1.37 -- much more to do. Assigned to - Kern. - - What: The ability to copy, move, or archive data that is on a - device to another device is very important. - - Why: An ISP might want to backup to disk, but after 30 days - migrate the data to tape backup and delete it from - disk. Bacula should be able to handle this - automatically. It needs to know what was put where, - and when, and what to migrate -- it is a bit like - retention periods. Doing so would allow space to be - freed up for current backups while maintaining older - data on tape drives. - - Notes: Riege Software have asked for the following migration - triggers: - Age of Job - Highwater mark (stopped by Lowwater mark?) - - Notes: Migration could be additionally triggered by: - Number of Jobs - Number of Volumes - - -Item 2: Implement extraction of Win32 BackupWrite data. - Origin: Thorsten Engel - Date: 28 October 2005 - Status: Assigned to Thorsten. Implemented in current CVS + 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. - What: This provides the Bacula File daemon with code that - can pick apart the stream output that Microsoft writes - for BackupWrite data, and thus the data can be read - and restored on non-Win32 machines. + Why: Incremental/Differential would be much more useful if this worked. - Why: BackupWrite data is the portable=no option in Win32 - FileSets, and in previous Baculas, this data could - only be extracted using a Win32 FD. With this new code, - the Windows data can be extracted and restored on - any OS. + 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. + Note: 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. -Item 3: Implement a Bacula GUI/management tool using Python - and Qt. + Notes: 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. - Origin: Kern - Date: 28 October 2005 - Status: +Item 2: Allow FD to initiate a backup + Origin: Frank Volf (frank at deze dot org) + Date: 17 November 2005 + Status: - What: Implement a Bacula console, and management tools - using Python and Qt. - - 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. - -Item 4: Implement a Python interface to the Bacula catalog. - Date: 28 October 2005 - Origin: Kern - 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. - What: Implement an interface for Python scripts to access - the catalog through Bacula. + Why: Makes backup of laptops much easier. - Why: This will permit users to customize Bacula through - Python scripts. -Item 5: Implement more Python events in Bacula. - Date: 28 October 2005 - Origin: +Item 3: Merge multiple backups (Synthetic Backup or Consolidation) + Origin: Marc Cousin and Eric Bollengier + Date: 15 November 2005 Status: - What: Allow Python scripts to be called at more places - within Bacula and provide additional access to Bacula - internal variables. + 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. - Why: This will permit users to customize Bacula through - Python scripts. + 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. - Notes: Recycle event - Scratch pool event - NeedVolume event - MediaFull event + 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 4: Implement Catalog directive for Pool resource in Director + Origin: Alan Davis adavis@ruckus.com + Date: 6 March 2007 + Status: Submitted + + What: The current behavior is for the director to create all pools + found in the configuration file in all catalogs. Add a + Catalog directive to the Pool resource to specify which + catalog to use for each pool definition. + + Why: This allows different catalogs to have different pool + attributes and eliminates the side-effect of adding + pools to catalogs that don't need/use them. + + Notes: Kern: I think this is relatively easy to do, and it is really + a pre-requisite to a number of the Copy pool, ... projects + that are listed here. + +Item 5: Add an item to the restore option where you can select a Pool + Origin: kshatriyak at gmail dot com + Date: 1/1/2006 + Status: + + What: In the restore option (Select the most recent backup for a + client) it would be useful to add an option where you can limit + the selection to a certain pool. + Why: When using cloned jobs, most of the time you have 2 pools - a + disk pool and a tape pool. People who have 2 pools would like to + select the most recent backup from disk, not from tape (tape + would be only needed in emergency). However, the most recent + backup (which may just differ a second from the disk backup) may + be on tape and would be selected. The problem becomes bigger if + you have a full and differential - the most "recent" full backup + may be on disk, while the most recent differential may be on tape + (though the differential on disk may differ even only a second or + so). Bacula will complain that the backups reside on different + media then. For now the only solution now when restoring things + when you have 2 pools is to manually search for the right + job-id's and enter them by hand, which is a bit fault tolerant. -Item 6: Implement Base jobs. + Notes: Kern: This is a nice idea. It could also be the way to support + Jobs that have been Copied (similar to migration, but not yet + implemented). + + + +Item 6: Deletion of disk Volumes when pruned + Date: Nov 25, 2005 + Origin: Ross Boylan (edited + by Kern) + Status: + + 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 + prevent disk based volumes from consuming too much space. + + Notes: The following two directives might do the trick: + + Volume Data Retention =