Hello Bastian, On 07/24/2012 03:28 PM, Bastian Friedrich wrote: > > we are using Bacula's raw block device backup features for backing up virtual > machines that use raw devices (logical volumes, or DRBD) as their storage. As > advised by the bacula documentation (obviously, for the purpose of sparing > storage space), we set "sparse = yes" for the respective file sets.
Can you be more specific on where the documentation says that we advise to use sparse option with a raw device ? At least, it needs to be fixed. What you describe is exactly what the code is supposed to do, but it works well only if you restore to a filesystem that supports "sparse blocks", and a raw device doesn't support it. > Recently, we discovered a problem with systems backed up in this way. > > Bacula does not only back up sparse data; it also restores the data in such a > way, which can result in problems. Imagine a virtual machine that has a (non- > sparse!) file with large chunks of zero data in its file system. When these > data are backed up, these null data are stored as a sparse stream. > > During restore, however, this can result in a problem: The sparse data (all > zeros) are not written to the disk; instead, the respective chunk is just > skipped (via seek). As a result, the virtual machine now has random data in > its (formerly all-zero) file. > > While Bacula's auto-detection of sparse (32k-)blocks is more than welcome in > our scenario, it can result in real data corruption. The solution -- as > configured and implemented by us, though -- is flawed. > > Would you regard this behavior as a bug? Restored data are not identical with > what was backed up. Or is this inteded behavior (which one should, I guess, > document in a better fashion), and we are using the technology in a wrong way? If you restore the device image to the filesystem then you copy it with dd to your device, it will work. > Btw: When restoring a block device that has a number of zeros at its end into > a file (e.g., by pre-creating such a file -- see mail thread "Behavior w.r.t. > block device backup and restore", March 2011, for more information) differs > from a file created e.g. by "dd if=/dev/foo of=output" directly. That being > said, zeroing a raw block device before restoring is not a solution for all > cases. If you don't want to initialize your disk before doing the restore, you should switch off the sparse option. The compression will still work pretty very well on blocks that contains only zeros. Bye -- Need professional help and support for Bacula ? Visit http://www.baculasystems.com ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Bacula-devel mailing list Bacula-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-devel