Kern's ToDo List
- 22 February 2005
+ 09 April 2005
Major development:
Project Developer
1.37 Major Projects:
#3 Migration (Move, Copy, Archive Jobs)
-#4 Embedded Python Scripting
- (Implemented in Dir/SD)
-#5 Events that call a Python program
- (Implemented in Dir/SD)
-#6 Select one from among Multiple Storage Devices for Job
#7 Single Job Writing to Multiple Storage Devices
+ (probably not)
## Integrate web-bacula into a new Bacula project with
bimagemgr.
## Consider moving docs to their own project.
-
-Suggestions for Preben:
-- Look at adding Client run command that will use the
- port opened by the client.
-- Optimized bootstrap.
+## Move rescue to its own project.
Autochangers:
-- Fix
- Please use the "label" command to create a new Volume for:
- Storage: DDS-4-changer
- Media type:
- Pool: Default
- label
- The defined Storage resources are:
-- Copy Changer Device and Changer Command from Autochanger
- to Device resource in SD if none given in Device resource.
+- 3. Prevent two drives requesting the same Volume in any given
+ autochanger, by checking if a Volume is mounted on another drive
+ in an Autochanger.
+- 7. Implement new Console commands to allow offlining/reserving drives,
+ and possibly manipulating the autochanger (much asked for).
+- Make "update slots" when pointing to Autochanger, remove
+ all Volumes from other drives. "update slots all-drives"?
+
+For 1.37:
+- Look at dird_conf.c:1000: warning: `int size'
+ might be used uninitialized in this function
+- Make a callback when Rerun failed levels is called.
+- Give Python program access to Scheduled jobs.
+- Implement some way to turn off automatic pruning in Jobs.
+- Implement a way an Admin Job can prune, possibly multiple
+ clients -- Python script?
+- Implement "NewVolumeEachJob = yes|no" in Dir.
+- FD Python
+ - Python script to save with Python, not save, save with Bacula.
+ - Python script to do backup.
+- Create a new GUI chapter explaining all the GUI programs.
+- Look at Preben's acl.c error handling code.
+- Look at adding full Volume and Pool information to a Volume
+ label so that bscan can get *all* the info.
+- Implement Maximum Job Spool Size
+- Remove all old Device resource code in Dir and code to pass it
+ back in SD -- better, rework it to pass back device statistics.
+- Finish implementation of passing all Storage and Device needs to
+ the SD.
+- Check locking of resources -- be sure to lock devices where previously
+ resources were locked.
+- Add global lock on all devices when creating a device structure.
+- Make sure that Python has access to Client address/port so that
+ it can check if Clients are alive.
+- Cleanup and complete Python scripting.
+ - What events?
+ - Change the Priority, Client, Storage, JobStatus (error)
+ at the start of a job.
+
+Maybe in 1.37:
+- If the user puts "Purge Oldest Volume = yes" or "Recycle Oldest Volume = yes"
+ and there is only one volume in the pool, refuse to do it -- otherwise
+ he fills the Volume, then immediately starts reusing it.
+- Implement copies and stripes.
+- Add history file to console.
+- Each file on tape creates a JobMedia record. Peter has 4 million
+ files spread over 10000 tape files and four tapes. A restore takes
+ 16 hours to build the restore list.
+- By the way: on page http://www.bacula.org/?page=tapedrives , at the
+ bottom, the link to "Tape Testing Chapter" is broken. It goes to
+ /html-manual/... while the others point to /rel-manual/...
+- OS linux 2.4
+ 1) ADIC, DLT, FastStor 4000, 7*20GB
+ 2) Sun, DDS, (Suns name unknown - Archive Python DDS drive), 1.2GB
+ 3) Wangtek, QIC, 6525ES, 525MB (fixed block size 1k, block size etc.
+ driver dependent - aic7xxx works, ncr53c8xx with problems)
+ 4) HP, DDS-2, C1553A, 6*4GB
- Doc the following
to activate, check or disable the hardware compression feature on my
exb-8900 i use the exabyte "MammothTool" you can get it here:
There is a solaris version of this tool. With option -C 0 or 1 you can
disable or activate compression. Start this tool without any options for
a small reference.
-- 3.Prevent two drives requesting the same Volume in any given
- autochanger.
-- 4. Use Changer Device and Changer Command specified in the
- Autochanger resource, if none is found in the Device resource.
- You can continue to specify them in the Device resource if you want
- or need them to be different for each device.
-- 5. Implement a new Device directive (perhaps "Autoselect = yes/no")
- that can allow a Device be part of an Autochanger, and hence the changer
- script protected, but if set to no, will prevent the Device from being
- automatically selected from the changer. This allows the device to
- be directly accessed through its Device name, but not through the
- AutoChanger name.
-- 7. Implement new Console commands to allow offlining/reserving drives,
- and possibly manipulating the autochanger (much asked for).
-- 8. Automatic updating of Drive status from SD to DIR when something
- changes (Volume, offline, append, read, ...).
-
-Autochangers Done:
-- 1. Automatic use of more than one drive in an autochanger (done)
-- 2. Automatic selection of the correct drive for each Job (i.e.
- selects a drive with an appropriate Volume for the Job) (done)
-- 6. Allow multiple simultaneous Jobs referencing the same pool write
- to several tapes (some new directive(s) are are probably needed for
- this) (done)
-- Locking (done)
-- Key on Storage rather than Pool (done)
-- Allow multiple drives to use same Pool (change jobq.c DIR) (done).
-- Synchronize multiple drives so that not more
- than one loads a tape and any time (done)
-
-
-For 1.37:
- Linux Sony LIB-D81, AIT-3 library works.
- Device resource needs the "name" of the SD.
-- Add and option to see if the file size changed
- during backup.
-- Implement "update device" from SD so that DIR will
- always have current version of device.
-- Add disk seeking on restore.
-- Add Python writable variable for changing the Priority,
- Client, Storage, JobStatus (error), ...
-- SD Autochanger work
- - Lock all devices when using changer script.
- - Check if Volume is mounted on another device
- - Find a free drive if Changer name used.
-- SD Python
- - Solicit Events
-- FD Python
- - Python script to save with Python, not save, save with Bacula.
- - Python script to do backup.
+- Add and option to see if the file size changed during backup.
- Windows restore:
data-fd: RestoreFiles.2004-12-07_15.56.42 Error:
> ..\findlib\../../findlib/create_file.c:275 Could not open e:/: ERR=Der
and fix SD messages.
- Make sure SD deletes spool files on error exit.
- Delete old spool files when SD starts.
-- When Python creates a new label, the tape is immediately
- recycled and no label created. This happens when using
- autolabeling -- even when Python doesn't generate the name.
- Add a restore directory-x
- When labeling tapes, if you enter 000026, Bacula uses
the tape index rather than the Volume name 000026.
- Max Vols limit in Pool off by one?
-- Look at Preben's acl.c error handling code.
-- See multiple-store.txt for Multiple Storage implementation
- design.
-- Create a new GUI chapter explaining all the GUI programs.
- Tell the "restore" user when browsing is no longer possible.
- Require restore via the restore command or make a restore Job
get the bootstrap file.
- Add offline tape command to Bacula console.
- Document that Bootstrap files can be written with cataloging
turned off.
-- Look at adding full Volume and Pool information to a Volume
- label so that bscan can get *all* the info.
-- Scratch Pool where the volumes can be re-assigned to any Pool.
- Upgrade to MySQL 4.1.1 See:
http://dev.mysql.com/doc/mysql/en/Server_SQL_mode.html
+- Add client version to the Client name line that prints in
+ the Job report.
- Bug:
Enter MediaId or Volume name: 32
Enter new Volume name: DLT-20Dec04
1.37 Possibilities:
+- A HOLD command to stop all jobs from starting.
+- A PAUSE command to pause all running jobs ==> release the
+ drive.
+- Media Type = LTO,LTO-2,LTO-3
+ Media Type Read = LTO,LTO2,LTO3
+ Media Type Write = LTO2, LTO3
+
=== From Carsten Menke <bootsy52@gmx.net>
Following is a list of what I think in the situations where I'm faced with,
list, also it is maybe a good idea to check for the return value and
execute different actions based on the return value
-2. Priorities also for the Schedule Resource
-
- Why:
-
- With this it is possible to run monthly jobs at the end of the month
- instead of the beginning of the next month, so one could define
- weekly and monthly pools to be run on Fridays and if there are
- 2 Jobs resulting on the same time, the one with the higher priority
- takes precedence. This is also helpfull to implement a daily
- rotation scheme with an additional 2 weeks changing weekly pool
-
-Example:
- Schedule {
- Name = "NightlyBackup"
- Run = Priority = 1,Pool=Weekly friday at 21:00
- Run = Priority = 2,Pool=Weekly monthly on friday at 21:00
- Run = Priority = 3,Pool=Weekly yearly on friday at 21:00
- }
3. offline capability to bconsole
format string. Then I have the tape labeled automatically with weekday
name in the correct language.
==========
+- Make output from status use html table tags for nicely
+ presenting in a browser.
- Can one write tapes faster with 8192 byte block sizes?
- Specify a single directory to restore.
-- Implement Maximum Job Spool Size
- Document security problems with the same password for everyone in
rpm and Win32 releases.
- Browse generations of files.
- Bootstrap from JobMedia records.
- Implement WildFile and WildDir to solve problem of
saving only *.doc files.
+- Fix
+ Please use the "label" command to create a new Volume for:
+ Storage: DDS-4-changer
+ Media type:
+ Pool: Default
+ label
+ The defined Storage resources are:
+- Copy Changer Device and Changer Command from Autochanger
+ to Device resource in SD if none given in Device resource.
+- 1. Automatic use of more than one drive in an autochanger (done)
+- 2. Automatic selection of the correct drive for each Job (i.e.
+ selects a drive with an appropriate Volume for the Job) (done)
+- 6. Allow multiple simultaneous Jobs referencing the same pool write
+ to several tapes (some new directive(s) are are probably needed for
+ this) (done)
+- Locking (done)
+- Key on Storage rather than Pool (done)
+- Allow multiple drives to use same Pool (change jobq.c DIR) (done).
+- Synchronize multiple drives so that not more
+ than one loads a tape and any time (done)
+- 4. Use Changer Device and Changer Command specified in the
+ Autochanger resource, if none is found in the Device resource.
+ You can continue to specify them in the Device resource if you want
+ or need them to be different for each device.
+- 5. Implement a new Device directive (perhaps "Autoselect = yes/no")
+ that can allow a Device be part of an Autochanger, and hence the changer
+ script protected, but if set to no, will prevent the Device from being
+ automatically selected from the changer. This allows the device to
+ be directly accessed through its Device name, but not through the
+ AutoChanger name.
+#6 Select one from among Multiple Storage Devices for Job
+#5 Events that call a Python program
+ (Implemented in Dir/SD)
+- Make sure the Device name is in the Query packet returned.
+- Don't start a second file job if one is already running.
+- Implement EOF/EOV labels for ANSI labels
+- Implement IBM labels.
+- When Python creates a new label, the tape is immediately
+ recycled and no label created. This happens when using
+ autolabeling -- even when Python doesn't generate the name.
+- Scratch Pool where the volumes can be re-assigned to any Pool.
+- 28-Mar 23:19 rufus-sd: acquire.c:379 Device "DDS-4" (/dev/nst0)
+ is busy reading. Job 6 canceled.
+- Remove separate thread for opening devices in SD. On the other
+ hand, don't block waiting for open() for devices.
+- Fix code to either handle updating NumVol or to calculate it in
+ Dir next_vol.c
+- Ensure that you cannot exclude a directory or a file explicitly
+ Included with File.
+#4 Embedded Python Scripting
+ (Implemented in Dir/SD/FD)
+- Add Python writable variable for changing the Priority,
+ Client, Storage, JobStatus (error), ...
+- SD Python
+ - Solicit Events
+- Add disk seeking on restore; turn off seek on tapes.
+ stored/match_bsr.c