Hi all, As mentioned in -users, I am beginning my adventure with getting Bacula to use tapes instead of disk.
Since I am just a home user, my storage method is cheap and so my disks can't always keep up with the tape. For partitions with many small files the disks are much slower, and for partitions with a few large files the same disks are more than twice as fast as tape. This means that I can't write directly to tape, otherwise it will shoe-shine when it gets to the many small files on the slow disks. So I have set up a spool file to avoid this. However the spool file has two drawbacks. One is that I don't have enough free space to make it large enough to cover an entire tape, so I am forced to use a small 8GB spool file. Unfortunately, when I am backing up the large fast files, this causes *more* shoe-shining because the tape stops every 8GB while the next spool file is built, even though the disks can run fast enough to keep up with the tape. The second drawback is that the drive is idle during spooling, and the network is idle during despooling, which makes the backups take a very long time to complete. I started a full backup two days ago and it has still not completed. Before I set up Bacula, I tried a full backup using 'tar' and the 'mbuffer' program, and I had little to no shoe-shining and the whole backup completed in approx 12 hours. So Bacula is considerably slower. I would like to try to address this, which is why I am posting in -devel. I am wondering whether the spool/despool process can be changed, so that instead of writing a full spool file and then despooling in full, the processes could happen simultaneously. I am thinking that mbuffer-style logic would work well, where the spool file is constructed until it reaches 80% of its maximum size, then the despool operation starts writing data to tape (but still reading data over the network) with the fd-read and sd-write happening in parallel until the spool file becomes empty. At this point the tape is stopped until the spool file reaches 80% again. I am willing to attempt to implement this myself, however I'm not really sure where to start. It looks like it might be possible to do this by modifying only spool.c however some advice on this would be greatly appreciated. I am also wondering whether patches for this would be accepted, as there is little point adding this functionality if it would not make it into the official distribution. Any advice about how one might best insert this function into the Bacula codebase would be greatly appreciated! Many thanks, Adam. _______________________________________________ Bacula-devel mailing list Bacula-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-devel