]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/kernstodo
Revert James' patch to simplify the Win32/64 build process
[bacula/bacula] / bacula / kernstodo
index fa05632af6eb9ed8b80e57fe78d5952b55e39f14..fe4d5703501cba30b30372920506725eb86c3dae 100644 (file)
@@ -48,6 +48,12 @@ Document:
   for disaster recovery.
  
 Professional Needs:
+- Nexenta (zfs + hardy + iscsi + nas + smf support)
+- NDMP
+  - For NAS OpenNAS
+  - ndmfs -- File Server extention in NDMPv4.
+  - ndmjob -- NDMP backup/restore NDMPv2, NDMPv3, and NDMPv4
+- Base jobs
 - Migration from other vendors
   - Date change
   - Path change
@@ -78,17 +84,6 @@ Professional Needs:
 Priority:
 ================
 
-- When reserving a device to read, check to see if the Volume
-  is already in use, if so wait.  Probably will need to pass the
-  Volume.  See bug #1313.  Create a regression test to simulate
-  this problem and see if VolumePollInterval fixes it. Possibly turn
-  it on by default.
-
-- Fix restore of acls and extended attributes to count ERROR
-  messages and make errors non-fatal.
-- Put save/restore various platform acl/xattrs on a pointer to simplify
-  the code.
-
 - Why no error message if restore has no permission on the where
   directory?
 - Possibly allow manual "purge" to purge a Volume that has not
@@ -96,16 +91,6 @@ Priority:
   is_volume_purged().
 - Add disk block detection bsr code (make it work).
 - Remove done bsrs.
-- Add blast attributes to DIR to SD.
-- Detect deadlocks in reservations.
-- Plugins:
-  - Add list during dump
-  - Add in plugin code flag
-  - Add bRC_EndJob -- stops more calls to plugin this job
-  - Add bRC_Term (unload plugin)
-  - remove time_t from Jmsg and use utime_t?
-- Deadlock detection, watchdog sees if counter advances when jobs are
-  running.  With debug on, can do a "status" command.
 - User options for plugins.
 - Pool Storage override precedence over command line.
 - Autolabel only if Volume catalog information indicates tape not
@@ -140,15 +125,16 @@ Priority:
   not exist, back it up, then try a full restore.  It fails.
 - Softlinks that point to non-existent file are not restored in restore all,
   but are restored if the file is individually selected.  BUG!
-- New directive "Delete purged Volumes"
 - Prune by Job
 - Prune by Job Level (Full, Differential, Incremental)
 - Strict automatic pruning 
-- Implement unmount of USB volumes.
 - Use "./config no-idea no-mdc2 no-rc5" on building OpenSSL for
   Win32 to avoid patent problems.
 - Implement multiple jobid specification for the cancel command,
   similar to what is permitted on the update slots command.
+  - Better yet allow wild-cards or regexes.
+- Add Group resource for grouping Jobs so they can all be
+  run at the same time or canceled at the same time.
 - modify pruning to keep a fixed number of versions of a file, 
   if requested.
 - the cd-command should allow complete paths
@@ -1445,6 +1431,109 @@ Need:
   VolSessionId and VolSessionTime.
 =========================================================  
 
+=========================================================
+        Preliminary design of Deletion of disk volumes
+
+tem  5: Deletion of disk Volumes when pruned
+  Date:  Nov 25, 2005
+  Origin: Ross Boylan <RossBoylan at stanfordalumni dot org> (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 = <time period>
+          Remove Volume After = <time period>
+
+          The migration project should also remove a Volume that is
+          migrated. This might also work for tape Volumes.
+
+  Notes: (Kern). The data fields to control this have been added
+          to the new 3.0.0 database table structure.
+
+As noted above, in version 3.0.0, we added a new Media column
+named ActionOnPurge, which is a TINYINT (smallint in PostgreSQL).
+The purpose of this field is to have a flag set with each Volume
+that determines certain actions that will be performed when a 
+Volume is being marked Purged (i.e. when there are no longer any
+Job records pointing to that Volume).  
+
+We have envisioned that ActionOnPurge could take on the following
+values (some are exclusive and others inclusive):
+
+  Flag Value                 Comments
+   Delete                    Delete the Volume from the catalog and disk
+                                What delete means for a tape is unclear.
+   Truncate                  Truncate the Volume
+   Erase                     Erase the Volume (overwrite data) could be
+                                very time consuming. Erase could be specified
+                                with either Truncate or Delete.
+
+Implementation details:
+- ActionOnPurge is probably a bit mask.
+- There needs to be a new Directive in the Pool resource that allows
+  setting of this flag.
+- The flag must be passed to the SD along with the current Volume information.
+- There needs to be a new command sent from the Director to the SD
+  that indicates that a Purge was done, the Volume name, and that it
+  should be handled.
+- For security reasons the SD must very carefully check that it actually
+  can find the correct volume. This means, it must mount it, read the label
+  or already have done so, and verify that the Volume is really there.
+  Then the SD can perform the requested function (delete or truncate).
+- Doing an Erase could be implemented later.
+- In the above Feature Request, the proposed Volume Data Retention 
+  directive is already implemented with Volume Retention Interval.
+- In the above Feature Request, the proposed Remove Volume After is
+  a bit problematic as it means that some action must occur some time
+  later, and currently Bacula has no mechanism to handle such events.
+  This will probably be considered as a feature to be added later
+  if there is sufficient demand. 
+
+=========================================================
+
+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.
+
+ Implementation notes:
+ - Must define new I job termination code for incomplete Jobs -- Done
+ - In the SD must track the position of the attributes being spooled
+   when data is actually written to the Volume -- Done
+ - In the SD, truncate the attributes to the last valid file written
+   to the Volume
+ - The Dir must past restart flag to SD -- Done
+ - If restart flag is sent in SD, and Job fails, must truncate attribute
+   file and send it to Dir marking the job as I (incomplete).
+ - In Dir when a Job is restarted, if there is an Incomplete job, must
+   send Accurate information to FD.
+ - In FD must use accurate information
+ - If Incomplete job finishes, must mark it T.
+
+
 ====
    Handling removable disks
 
@@ -1474,3 +1563,27 @@ Need:
 ===
 - Fix bpipe.c so that it does not modify results pointer.
   ***FIXME*** calling sequence should be changed.
+
+- When reserving a device to read, check to see if the Volume
+  is already in use, if so wait.  Probably will need to pass the
+  Volume.  See bug #1313.  Create a regression test to simulate
+  this problem and see if VolumePollInterval fixes it. Possibly turn
+  it on by default.
+
+- Fix restore of acls and extended attributes to count ERROR
+  messages and make errors non-fatal.
+- Put save/restore various platform acl/xattrs on a pointer to simplify
+  the code.
+- Add blast attributes to DIR to SD.
+- Detect deadlocks in reservations.
+- Plugins:
+  - Add list during dump
+  - Add in plugin code flag
+  - Add bRC_EndJob -- stops more calls to plugin this job
+  - Add bRC_Term (unload plugin)
+  - remove time_t from Jmsg and use utime_t?
+- Deadlock detection, watchdog sees if counter advances when jobs are
+  running.  With debug on, can do a "status" command.
+- New directive "Delete purged Volumes"
+- Implement unmount of USB volumes.
+