]> git.sur5r.net Git - bacula/bacula/blob - bacula/projects
02Aug05
[bacula/bacula] / bacula / projects
1                 
2 Projects:
3                      Bacula Projects Roadmap 
4                        22 July 2005
5
6 The following major projects are scheduled for 1.37:
7
8
9 Below, you will find more information on those projects as
10 well of other projects planned at a future time.
11
12 Item 1:   Implement Base jobs.
13   Status: Voted by users not to be implemented in 1.37
14   
15   What:   A base job is sort of like a Full save except that you 
16           will want the FileSet to contain only files that are
17           unlikely to change in the future (i.e.  a snapshot of
18           most of your system after installing it).  After the
19           base job has been run, when you are doing a Full save,
20           you specify one or more Base jobs to be used.  All
21           files that have been backed up in the Base job/jobs but
22           not modified will then be excluded from the backup.
23           During a restore, the Base jobs will be automatically
24           pulled in where necessary.
25
26   Why:    This is something none of the competition does, as far as
27           we know (except perhpas BackupPC, which is a Perl program that
28           saves to disk only).  It is big win for the user, it
29           makes Bacula stand out as offering a unique
30           optimization that immediately saves time and money.
31           Basically, imagine that you have 100 nearly identical
32           Windows or Linux machine containing the OS and user
33           files.  Now for the OS part, a Base job will be backed
34           up once, and rather than making 100 copies of the OS,
35           there will be only one.  If one or more of the systems
36           have some files updated, no problem, they will be
37           automatically restored.
38
39   Notes:  Huge savings in tape usage even for a single machine.
40           Will require more resources because the DIR must send
41           FD a list of files/attribs, and the FD must search the
42           list and compare it for each file to be saved.
43
44 Item 2:   Add Plug-ins to the FileSet Include statements.
45   Status: In progress in 1.37 using Python scripting.
46
47   What:   Allow users to specify wild-card and/or regular
48           expressions to be matched in both the Include and
49           Exclude directives in a FileSet.  At the same time,
50           allow users to define plug-ins to be called (based on
51           regular expression/wild-card matching).
52
53   Why:    This would give the users the ultimate ability to control
54           how files are backed up/restored.  A user could write a
55           plug-in knows how to backup his Oracle database without
56           stopping/starting it, for example.
57
58 Item 3:   Implement a Migration job type that will move the job
59           data from one device to another.
60   Status: Partially coded in 1.37 -- much more to do.
61
62   What:   The ability to copy, move, or archive data that is on a
63           device to another device is very important. 
64
65   Why:    An ISP might want to backup to disk, but after 30 days
66           migrate the data to tape backup and delete it from
67           disk.  Bacula should be able to handle this
68           automatically.  It needs to know what was put where,
69           and when, and what to migrate -- it is a bit like
70           retention periods.  Doing so would allow space to be
71           freed up for current backups while maintaining older
72           data on tape drives.
73
74   Notes:  Migration could be triggered by:
75            Number of Jobs
76            Number of Volumes
77            Age of Jobs
78            Highwater size (keep total size)
79            Lowwater mark
80
81 Item  9:  Implement data encryption (as opposed to communications
82           encryption)
83   Status: Landon Fuller has agreed to work on this.
84                   
85   What:   Currently the data that is stored on the Volume is not
86           encrypted. For confidentiality, encryption of data at
87           the File daemon level is essential. 
88           Data encryption encrypts the data in the File daemon and
89           decrypts the data in the File daemon during a restore.
90
91   Why:    Large sites require this.
92
93
94 Items completed for release 1.38.0:
95 #4   Embedded Python Scripting (implemented in all Daemons)
96 #5   Events that call a Python program (Implemented in all
97        daemons, but more cleanup work to be done).
98 #6   Select one from among Multiple Storage Devices for Job.
99        This is already implemented in 1.37.
100 #7   Single Job Writing to Multiple Storage Devices. This is
101        currently implemented with a Clone feature.
102 #-   Full multiple drive Autochanger support (mostly implemented).
103 #-   We will have built in support for communications 
104        encryption (TLS) done by Landon Fuller.
105 #    We will most likely have support for Unicode characters
106        (via UTF-8) on Win32 machines thanks to Thorsten Engle.
107 Item  8:  Break the one-to-one Relationship between a Job and a
108           Specific Storage Device (or Devices if #10 is implemented).
109
110 Completed items from last year's list:
111 Item 1:   Multiple simultaneous Jobs. (done)
112 Item 3:   Write the bscan program -- also write a bcopy program (done).
113 Item 5:   Implement Label templates (done).
114 Item 6:   Write a regression script (done)
115 Item 9:   Add SSL to daemon communications (For now, implement with
116           stunnel)
117 Item 10:  Define definitive tape format (done)
118 Item 3:   GUI for interactive restore. Partially Implemented in 1.34
119           Note, there is now a complete Webmin plugin, a partial
120           GNOME console, and an excellent wx-console GUI.
121 Item 4:   GUI for interactive backup
122 Item 2:   Job Data Spooling.
123     Done: Regular expression matching.
124 Item 10:  New daemon communication protocol (this has been dropped).