]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/kernstodo
Zeroth integration of plugins
[bacula/bacula] / bacula / kernstodo
index a03728d99454e7ec47cfcce48ada020fdea6f1ed..a6703ff2d6255f332d35ba0a793a2be0fceef057 100644 (file)
@@ -1,9 +1,6 @@
                     Kern's ToDo List
-                     27 April 2007
+                       16 July 2007
 
-Major development:      
-Project                     Developer
-=======                     =========                         
 
 Document:
 - !!! Cannot restore two jobs a the same time that were
@@ -49,30 +46,89 @@ Professional Needs:
 - Backup conf/exe (all daemons) 
 - Backup up system state
 - Detect state change of system (verify)
+- Synthetic Full, Diff, Inc (Virtual, Reconstructed)
+- SD to SD
+- Modules for Databases, Exchange, ...
+- Novell NSS backup http://www.novell.com/coolsolutions/tools/18952.html
+- Compliance norms that compare restored code hash code.
+- When glibc crash, get address with
+    info symbol 0x809780c
+- How to sync remote offices.
+- Exchange backup:
+  http://www.microsoft.com/technet/itshowcase/content/exchbkup.mspx
+- David's priorities
+   Copypools
+   Extract capability (#25)
+   Continued enhancement of bweb
+   Threshold triggered migration jobs (not currently in list, but will be
+    needed ASAP)
+   Client triggered backups
+   Complete rework of the scheduling system (not in list)
+   Performance and usage instrumentation (not in list)
+   See email of 21Aug2007 for details.
+- Implement Diff,Inc Retention Periods
+- Look at: http://tech.groups.yahoo.com/group/cfg2html
+   and http://www.openeyet.nl/scc/ for managing customer changes
 
 Priority:
-- Please mount volume "xxx" on Storage device ... should also list
-  Pool and MediaType in case user needs to create a new volume.
+- Plugins
+- Scripts
+- Duplicate Jobs
+  Run, Fail, Skip, Higher, Promote, CancelLowerLevel
+  Proximity
+- Auto update of slot:
+   rufus-dir: ua_run.c:456-10 JobId=10 NewJobId=10 using pool Full priority=10
+   02-Nov 12:58 rufus-dir JobId 10: Start Backup JobId 10, Job=kernsave.2007-11-02_12.58.03
+   02-Nov 12:58 rufus-dir JobId 10: Using Device "DDS-4"
+   02-Nov 12:58 rufus-sd JobId 10: Invalid slot=0 defined in catalog for Volume "Vol001" on "DDS-4" (/dev/nst0). Manual load my be required.
+   02-Nov 12:58 rufus-sd JobId 10: 3301 Issuing autochanger "loaded? drive 0" command.
+   02-Nov 12:58 rufus-sd JobId 10: 3302 Autochanger "loaded? drive 0", result is Slot 2.
+   02-Nov 12:58 rufus-sd JobId 10: Wrote label to prelabeled Volume "Vol001" on device "DDS-4" (/dev/nst0)
+   02-Nov 12:58 rufus-sd JobId 10: Alert: TapeAlert[7]:   Media Life: The tape has reached the end of its useful life.
+   02-Nov 12:58 rufus-dir JobId 10: Bacula rufus-dir 2.3.6 (26Oct07): 02-Nov-2007 12:58:51
+- Encrypt sd_auth_key = s with director's key = d
+   k[i] = s[i] + (d[i] & 0xF)) & 0xFF + 'A'  skip -
+  Decrypt key = k with director's key
+   x  = k[i] - (d[i] & 0xF))
+   if (x < 0) {
+      x = k[i] - (d[i] & 0xF) + 16
+   }
+   s[i] = x + 'A';
+- Eliminate:  /var is a different filesystem. Will not descend from / into /var
+- Separate Files and Directories in catalog
+- Create FileVersions table
+- Look at rsysnc for incremental updates and dedupping
+- Add MD5 or SHA1 check in SD for data validation
+- modify pruning to keep a fixed number of versions of a file, 
+  if requested.
+- finish implementation of fdcalled -- see ua_run.c:105
+- Fix problem in postgresql.c in my_postgresql_query, where the
+  generation of the error message doesn't differentiate result==NULL
+  and a bad status from that result.  Not only that, the result is
+  cleared on a bail_out without having generated the error message.
+- Erabt if min_block_size > max_block_size
+- KIWI
+- Implement wait on multiple objects
+   - Multiple max times
+   - pthread signal
+   - socket input ready
+- Implement SDErrors (must return from SD)
+- Implement USB keyboard support in rescue CD.
+- Implement continue spooling while despooling.
+- Remove all install temp files in Win32 PLUGINSDIR.
+- Audit retention periods to make sure everything is 64 bit.
+- Use E'xxx' to escape PostgreSQL strings.
+- No where in restore causes kaboom.
+- Performance: multiple spool files for a single job.
+- Performance: despool attributes when despooling data (problem
+  multiplexing Dir connection).
+- Make restore use the in-use volume reservation algorithm.
+- Look at mincore: http://insights.oetiker.ch/linux/fadvise.html
+- Unicode input http://en.wikipedia.org/wiki/Byte_Order_Mark
+- Add TLS to bat (should be done).
+- When Pool specifies Storage command override does not work.
 - Implement wait_for_sysop() message display in wait_for_device(), which
-now prints warnings too often.
-
-- the director seg faulted when I omitted the pool directive from a 
-job resource.  I was experimenting and thought it redundant that I had 
-specified Pool, Full Backup Pool. and Differential Backup Pool. but 
-apparently not.  This  happened when I removed the pool directive and 
-started the director.
-
-- On restore add Restore Client, Original Client.
-01-Apr 00:42 rufus-dir: Start Backup JobId 55, Job=kernsave.2007-04-01_00.42.48
-01-Apr 00:42 rufus-sd: Python SD JobStart: JobId=55 Client=Rufus
-01-Apr 00:42 rufus-dir: Created new Volume "Full0001" in catalog.
-01-Apr 00:42 rufus-dir: Using Device "File"
-01-Apr 00:42 rufus-sd: kernsave.2007-04-01_00.42.48 Warning: Device "File" (/tmp) not configured to autolabel Volumes.
-01-Apr 00:42 rufus-sd: kernsave.2007-04-01_00.42.48 Warning: Device "File" (/tmp) not configured to autolabel Volumes.
-01-Apr 00:42 rufus-sd: Please mount Volume "Full0001" on Storage Device "File" (/tmp) for Job kernsave.2007-04-01_00.42.48
-01-Apr 00:44 rufus-sd: Wrote label to prelabeled Volume "Full0001" on device "File" (/tmp)
-
-- Add Where: client:/.... to restore job report.
+  now prints warnings too often.
 - Ensure that each device in an Autochanger has a different
   Device Index.
 - Add Catalog = to Pool resource so that pools will exist
@@ -91,8 +147,14 @@ started the director.
    02-Feb 11:00 btape: Fatal Error because: Bacula interrupted by signal 11: Segmentation violation
    Kaboom! btape, btape got signal 11. Attempting traceback.
 
-- Ensure that moving a purged Volume in ua_purge.c to the RecyclePool
-  does the right thing.
+- Encryption -- email from Landon
+   > The backup encryption algorithm is currently not configurable, and is  
+   > set to AES_128_CBC in src/filed/backup.c. The encryption code  
+   > supports a number of different ciphers (as well as adding arbitrary  
+   > new ones) -- only a small bit of code would be required to map a  
+   > configuration string value to a CRYPTO_CIPHER_* value, if anyone is  
+   > interested in implementing this functionality.
+
 - Why doesn't @"xxx abc" work in a conf file?
 - Figure out some way to "automatically" backup conf changes.
 - Add the OS version back to the Win32 client info.
@@ -101,7 +163,6 @@ started the director.
   to a DVD (the device is not open -- see bug #732).
 - Look at the possibility of adding "SET NAMES UTF8" for MySQL,
   and possibly changing the blobs into varchar.
-- Check if gnome-console works with TLS.
 - Ensure that the SD re-reads the Media record if the JobFiles
   does not match -- it may have been updated by another job.
 - Look at moving the Storage directive from the Job to the
@@ -110,11 +171,37 @@ started the director.
 - Test Volume compatibility between machine architectures
 - Encryption documentation
 - Wrong jobbytes with query 12 (todo)
-- bacula-1.38.2-ssl.patch
 - Bare-metal recovery Windows (todo)
    
 
 Projects:
+- Pool enhancements
+  - Access Mode = Read-Only, Read-Write, Unavailable, Destroyed, Offsite
+  - Pool Type = Copy
+  - Maximum number of scratch volumes
+  - Maximum File size
+  - Next Pool (already have)
+  - Reclamation threshold
+  - Reclamation Pool
+  - Reuse delay (after all files purged from volume before it can be used)
+  - Copy Pool = xx, yyy (or multiple lines).
+  - Catalog = xxx
+  - Allow pool selection during restore.
+
+- Average tape size from Eric
+    SELECT COALESCE(media_avg_size.volavg,0) * count(Media.MediaId) AS volmax,                                                              GROUP BY Media.MediaType, Media.PoolId, media_avg_size.volavg
+           count(Media.MediaId)  AS volnum,
+           sum(Media.VolBytes)   AS voltotal,
+           Media.PoolId          AS PoolId,
+           Media.MediaType       AS MediaType
+    FROM Media
+    LEFT JOIN (SELECT avg(Media.VolBytes) AS volavg,
+                      Media.MediaType     AS MediaType
+               FROM Media
+              WHERE Media.VolStatus = 'Full'
+              GROUP BY Media.MediaType
+               ) AS media_avg_size ON (Media.MediaType = media_avg_size.MediaType)
+    GROUP BY Media.MediaType, Media.PoolId, media_avg_size.volavg
 - GUI
   - Admin
   - Management reports
@@ -122,13 +209,11 @@ Projects:
   - Look at Webmin
      http://www.orangecrate.com/modules.php?name=News&file=article&sid=501
 - Performance
-  - FD-SD quick disconnect
   - Despool attributes in separate thread
   - Database speedups
   - Embedded MySQL
   - Check why restore repeatedly sends Rechdrs between
     each data chunk -- according to James Harper 9Jan07.
-  - Building the in memory restore tree is slow.
 - Features
   - Better scheduling  
   - Full at least once a month, ...
@@ -140,6 +225,7 @@ Projects:
 
 
 For next release:
+- Try to fix bscan not working with multiple DVD volumes bug #912.
 - Look at mondo/mindi
 - Don't restore Solaris Door files:
    #define   S_IFDOOR   in st_mode.
@@ -180,6 +266,26 @@ Low priority:
 - Article: http://www.osreviews.net/reviews/admin/bacula
 - Article: http://www.debianhelp.co.uk/baculaweb.htm
 - Article: 
+- Wikis mentioning Bacula
+  http://wiki.finkproject.org/index.php/Admin:Backups
+  http://wiki.linuxquestions.org/wiki/Bacula
+  http://www.openpkg.org/product/packages/?package=bacula
+  http://www.iterating.com/products/Bacula
+  http://net-snmp.sourceforge.net/wiki/index.php/Net-snmp_extensions
+  http://www.section6.net/wiki/index.php/Using_Bacula_for_Tape_Backups
+  http://bacula.darwinports.com/
+  http://wiki.mandriva.com/en/Releases/Corporate/Server_4/Notes#Bacula
+  http://en.wikipedia.org/wiki/Bacula
+
+- Bacula Wikis
+  http://www.devco.net/pubwiki/Bacula/
+  http://paramount.ind.wpi.edu/wiki/doku.php
+  http://gentoo-wiki.com/HOWTO_Backup
+  http://www.georglutz.de/wiki/Bacula
+  http://www.clarkconnect.com/wiki/index.php?title=Modules_-_LAN_Backup/Recovery
+  http://linuxwiki.de/Bacula   (in German)
+
+- Possibly allow SD to spool even if a tape is not mounted.
 - It appears to me that you have run into some sort of race
   condition where two threads want to use the same Volume and they
   were both given access.  Normally that is no problem.  However,
@@ -1699,20 +1805,30 @@ Block Position: 0
 - Look at using posix_fadvise(2) for backups -- see bug #751.
   Possibly add the code at findlib/bfile.c:795
 /* TCP socket options */
-#define TCP_NODELAY             1       /* Turn off Nagle's algorithm. */
-#define TCP_MAXSEG              2       /* Limit MSS */
-#define TCP_CORK                3       /* Never send partially complete segments */
 #define TCP_KEEPIDLE            4       /* Start keeplives after this period */
-#define TCP_KEEPINTVL           5       /* Interval between keepalives */
-#define TCP_KEEPCNT             6       /* Number of keepalives before death */
-#define TCP_SYNCNT              7       /* Number of SYN retransmits */
-#define TCP_LINGER2             8       /* Life time of orphaned FIN-WAIT-2 state */
-#define TCP_DEFER_ACCEPT        9       /* Wake up listener only when data arrive */
-#define TCP_WINDOW_CLAMP        10      /* Bound advertised window */
-#define TCP_INFO                11      /* Information about this connection. */
-#define TCP_QUICKACK            12      /* Block/reenable quick acks */
-#define TCP_CONGESTION          13      /* Congestion control algorithm */
 - Fix bnet_connect() code to set a timer and to use time to
   measure the time.
 - Implement 4th argument to make_catalog_backup that passes hostname.
 - Test FIFO backup/restore -- make regression
+- Please mount volume "xxx" on Storage device ... should also list
+  Pool and MediaType in case user needs to create a new volume.
+- On restore add Restore Client, Original Client.
+01-Apr 00:42 rufus-dir: Start Backup JobId 55, Job=kernsave.2007-04-01_00.42.48
+01-Apr 00:42 rufus-sd: Python SD JobStart: JobId=55 Client=Rufus
+01-Apr 00:42 rufus-dir: Created new Volume "Full0001" in catalog.
+01-Apr 00:42 rufus-dir: Using Device "File"
+01-Apr 00:42 rufus-sd: kernsave.2007-04-01_00.42.48 Warning: Device "File" (/tmp) not configured to autolabel Volumes.
+01-Apr 00:42 rufus-sd: kernsave.2007-04-01_00.42.48 Warning: Device "File" (/tmp) not configured to autolabel Volumes.
+01-Apr 00:42 rufus-sd: Please mount Volume "Full0001" on Storage Device "File" (/tmp) for Job kernsave.2007-04-01_00.42.48
+01-Apr 00:44 rufus-sd: Wrote label to prelabeled Volume "Full0001" on device "File" (/tmp)
+- Check if gnome-console works with TLS.
+- the director seg faulted when I omitted the pool directive from a 
+  job resource.  I was experimenting and thought it redundant that I had 
+  specified Pool, Full Backup Pool. and Differential Backup Pool. but 
+  apparently not.  This  happened when I removed the pool directive and 
+  started the director.
+- Add Where: client:/.... to restore job report.
+- Ensure that moving a purged Volume in ua_purge.c to the RecyclePool
+  does the right thing.
+- FD-SD quick disconnect
+- Building the in memory restore tree is slow.