Hi,

I would like to propose and develop a new Bacula feature, partial file
restoration. I am hoping this will be accepted into the official
Bacula source code and therefor I'm writing to the Bacula development
list to request comments on the planned implementation details and
also to take advantage of any previous efforts. However searching
through the Bacula archives, the Bacula accepted projects list and the
web I have not seen any indication of previous work in this area.

Justification
In some workflows only one or more small pieces of a file are needed.
This could be the beginning or end of a big archive file to determine
its content or parts of video files. Similar features exists in for
example Quantum's A-Series autoloaders using an embedded FTP server and
extended FTP commands.

Implementation
The partial file selection will be done during the file marking stage
of starting a restoration job. This will introduce a new command
"markpartial" to supplement "mark" and "markdir". The file list import
will also be extended to support file offsets.

Example usage:
$ markpartial 0 209715200 bigfile.tar.gz
1 file segment marked.

This would indicate we want to restore the first 200MiB of
bigfile.tar.gz. The segment to be restored would be added to a linked
list which can contain multiple restore segments, so the following
example would also be possible:

$ markpartial 0 1024 video.mov
1 file segment marked.
$ markpartial 2048 4096 video.mov
1 file segment marked.

This would result in two parts of video.mov being restored.

The format for marking file using the "file=<filelist.txt" syntax
would be extended to support file offsets. A way to support this using
the examples above could be:

<offset>,<length>; … \0<filename>\n

0,209715200;\0/path/to/bigfile.tar.gz
0,1024;2048,4096;\0/path/to/video.mov

Output format
There are at least two options for how the files are restored to disk.
* Allow the user to specify a output filename at the time of marking
the restoration ranges allowing one filename per segment.
* Use a sparse file and restore the requested ranges to the original
positions using the original filename.

I have not included very detailed implementation details at this stage
as I would like some feedback on what the Bacula community would like
to see from this feature.


Sincerely,
Alexander Wigen


------------------------------------------------------------------------------
What happens now with your Lotus Notes apps - do you make another costly 
upgrade, or settle for being marooned without product support? Time to move
off Lotus Notes and onto the cloud with Force.com, apps are easier to build,
use, and manage than apps on traditional platforms. Sign up for the Lotus 
Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to