Hello, I have some project ideas. If people like it, maybe it can be developed in next bacula versions.
I am running bacula 5.0.3. My experience with bacula was long & slow at the beginning. This was due to various concept that I didn't understood and also for some missing function that I developed myself via python over bconsole. Moreover, some packages didn't included some options or where including bugs I ran ./configure and the compilation from source myself and a lot of problem disappeared. Idea --- Have a COPY/MIGRATE functionality just like the RESTORE functionality => You simply select the jobs that you want to copy and the destination storage. => An estimation indicates the size of the selected jobs => That functionality can be integrated in bat. Why: => You cant manually copy many jobs from bconsole eg: run job=MyCopyJob jobid=1000<here i cant specify many jobs> => Copy job are, in my opinion, mostly used for Archiving on a separate device so it cant be a "Fully automated process" ( tape size…). In my case, an external python script loads sequentially bconsole commands to run job. This script let me choose which job I want to add to the tape. With bacula integrated options for copy such as "Sql Query" or "Pool Uncopied" , I would like to check the job list before running the job, eg: I want to limit one tape by month so my archiving should no exceed the estimated size of an LTO3 Tape (~400Go). Idea --- Disable only one occurrence of a job or pre-upgrade the next occurrence of a job. => Add an upgrade command => Add a next option to the disable command Why: => Simply imagine that your backups are growing faster than expected, you want that the next time the job run with an higher level. => You do not want to reload you configuration => There is already the run command and the "Allow Duplicate Jobs = No" directive but for the moment, but it conflicts with Copy jobs => You may not be able to re-enable the job just after ( eg : you want to run the job during the week end ) Idea --- The pruning algorithm between 5.0 and 5.2 versions of bacula. That would be great if it's possible to select which algorithm to use /pool or /job Idea --- Enable running virtual-full in the same pool as my full job Idea --- Ability to bextract cyphered jobs => My Disaster recovery plan is a little tricky without this functionality Idea --- Ability to dynamically use a specific encryption key on a file daemon. => eg : You are in BAT, you want to restore files from a job on a file daemon that is different from the backup client. Why: => Be able to restore on a different file daemon without deploying massively ( in clear text) the master key. Solution 1: => Add a menu in bat that upload the key on the file daemon Solution 2: => Predeploy an encrypted version of the master key on the file daemons, bat or bconsole ask the user for a passphrase in order to decrypt this key. Idea --- Disable "auto" in ./configure script. Why => Some bacula version implements ACL other ones do not and it's the same for lots of libraries. When you are installing bacula you are expecting ACL and many functionality but theses ones are there only if the libraries are on the system. => When I installed various builds of bacula from various repository (MacPort, Sourceforge, Apt, RPM…) on various systems ( MacOSX, Windows, CentOS, Debian) I had a lot of bug coming from some version that were build without some options. To make this right, I had to run installation from source on many systems with the same configure options. Solution: => By default, all Bacula versions should implement the same options on compression, encryption, acl, batch inserts…. If the user want it without ACL he can do it himself by deselecting with ./configure. I really think that it's better to have a defined number of options that are officially supported that should be integrated in every version. I don't think that many people can do backups without acl, encryption… Idea --- Add an option to automatically run a new full if the estimated size of the [incremental|differential] job reaches a certain ratio compared to the previous full. Why: eg: On my file server, people can add no more files during months and sometimes there is a huge activity. => It can happen that some incremental jobs are larger than the differential and some differentials larger than the full. In this case, you have better to run a new full. Solution1: => Implement directly this functionality Solution2: => Implement upgrade-level directive and "post estimate" runscript directive with a variable integration. Idea --- Having a programming interface that can talk like bconsole. It's not always easy to talk to another shell and bconsole uses As I understood, python integration in bacula is effective only on a bacula event. Please correct me if I am wrong. I created a library in python (via pexpect) in order to have an interface for my scripts. It's talking to bconsole and directly to the catalog (read only). I can give this python lib to anyone but I am not a very good programmer so many things may need to be revisited. It allowed me to write many scripts (management, monitoring, pruning…) including the one that run my copy jobs that is mentioned at the beginning. I hope you understood my English. Thank you in advance for your comments about theses ideas. If someone is interested I will be happy to share parts of my python code. If some features are developed I might have time to help developing or try theses functionalities Hugo ------------------------------------------------------------------------------ Learn Windows Azure Live! Tuesday, Dec 13, 2011 Microsoft is holding a special Learn Windows Azure training event for developers. It will provide a great way to learn Windows Azure and what it provides. You can attend the event by watching it streamed LIVE online. Learn more at http://p.sf.net/sfu/ms-windowsazure _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users